# US 10,372,781 B2 · Heuristic caching to personalize applications

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,781 B2
- Document ID: US10372781B2
- Status: Granted
- Kind: B2
- Application number: 14/957,904
- Filed: 2015-12-03
- Published: 2016-03-31
- Granted: 2019-08-06
- Earliest claimed: 2012-07-25
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Reza B'Far; Alan Waxman; Kent Spaulding
- Web page: https://patentgrep.com/patent/US10372781B2

## CPC

- G06F 16/9574: {of access to content, e.g. by caching}
- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 3/04847: Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Heuristic caching techniques are used to improve application usability within the constraints of computing resources. A user's behavior in connection with an application is recorded and used to intelligently determine which transitions of a user interface of the application to cache. In addition, the user may have one or more characteristics. Such characteristics may also be used to identify other users so that the other users' behavior in connection with the application can be used for intelligently determining which transitions of the user interface to cache.

## Claims

### Claim 1

One or more non-transitory computer-readable storage media having collectively stored thereon instructions executable by one or more processors of a computer system, the instructing comprising:
instructions for determining a first user transition score based in part on a first user interface state of an application utilized by a user, a next user interface state, and a first weighting factor;
instructions for determining a second user transition score for a plurality of other users that share a common characteristic with the user, the second user transition score based at least in part on a second weighting factor, different from the first weighting factor, that corresponds to the plurality of other users;
instructions for selecting a subset of one or more user interface transitions to be cached, the subset of the one or more user interface transitions to be cached corresponding to at least the first user transition score and the second user transition score and being selected by:
identifying a time of transition for the user associated with the one or more user interface transitions;
calculating a number of transitions for a session based at least in part on the time of transition for the user associated with the one or more user interface transitions;
calculating a transition frequency of the user for transitioning from a first user interface transition to the one or more user interface transitions based at least in part on the number of transitions and a browsing session length for the session; and
calculating a combined user transition score based at least in part on the first user transition score and the second user transition score; and
instructions for causing one or more actions to be taken that result in caching each user interface transition within the subset based at least in part on the transition frequency and the combined user transition score.

### Claim 2 (depends on 1)

The one or more non-transitory computer-readable storage media of claim 1, wherein the first user transition score indicates a historically measured frequency associated with transitions from the user interface state to the next user interface state.

### Claim 3 (depends on 1)

The one or more non-transitory computer-readable storage media of claim 1, wherein caching each user interface transition within the subset comprises caching user interface transitions that are potential future transitions of the user.

### Claim 4 (depends on 1)

The one or more non-transitory computer-readable storage media of claim 1, further comprising instructions for identifying the plurality of potential user interface transitions available to the user by identifying, from the user interface state, a pluralty of selectable user interface elements.

### Claim 5 (depends on 4)

The one or more non-transitory computer-readable storage media of claim 4, wherein each selectable user interface element of the plurality of potential user interface elements is configured to cause navigation to a corresponding user interface state.

### Claim 6 (depends on 1)

The one or more non-transitory computer-readable storage media of claim 1, wherein first data specific to the characteristic of the user comprises data that corresponds to past navigational behavior of the user.

### Claim 7 (depends on 1)

The one or more non-transitory computer-readable storage media of claim 1, wherein selecting the subset of the one or more user interface transitions comprises ordering the plurality of potential user interface transitions based at least in part on first data specific to the characteristic of the user and second data regarding the plurality of other users.

### Claim 8 (depends on 7)

The one or more non-transitory computer-readable storage media of claim 7, wherein selecting the subset of the one or more user interface transitions further comprises selecting the subset based at least in part on positions in the plurality of potential user interface transitions of members of the subset.

### Claim 9 (depends on 1)

The one or more non-transitory computer-readable storage media of claim 1, wherein the plurality of potential user interface transitions comprise transitions of the application utilized by an organization.

### Claim 10 (depends on 9)

The one or more non-transitory computer-readable storage media of claim 9, wherein the user and the other users use the application in connection with operations of the organization.

### Claim 11 (depends on 1)

The one or more non-transitory computer-readable storage media of claim 1, wherein the caching of the subset of the one or more user interface transitions is caused by causing data for the one or more user interface transitions to be cached.

### Claim 12 (depends on 1)

The one or more non-transitory computer-readable storage media of claim 1, wherein selecting the subset of the one or more user interface transitions comprises identifying a plurality of users as users sharing the characteristic.

### Claim 13 (depends on 12)

The one or more non-transitory computer-readable storage media of claim 12, wherein selecting the subset of the one or more user interface transitions comprises scoring, based at least in part on past navigational behavior of the plurality of users in connection with the user interface, the plurality of potential user interface transitions to produce scores corresponding to each of the plurality of potential user interface transitions, wherein selecting the subset of the one or more user interface transitions is based at least in part on the scores.

### Claim 14 (depends on 13)

The one or more non-transitory computer-readable storage media of claim 13, wherein selecting the subset of the one or more user interface transitions based at least in part on the scores comprises selecting a threshold number of the scores that are the highest.

### Claim 15 (depends on 1)

The one or more non-transitory computer-readable storage media of claim 1, wherein selecting the subset of the one or more user interface transitions comprises identifying a set of users that have navigated the user interface to the user interface state, and wherein selecting the subset of the one or more user interface transitions is based at least in part on behavior of the set of users that have navigated the user interface to the user interface state.

### Claim 16 (depends on 1)

The one or more non-transitory computer-readable storage media of claim 1, further comprising instructions for determining, based at least in part on an activity measurement of the user in connection with the user interface, a value determinative of a size of the one or more user interface transitions, wherein the one or more user interface transitions are in accordance with the value, and wherein the value is a number of transitions to cache.

### Claim 17

A computer-implemented method of facilitating navigation in an electronic environment, comprising:
identifying, by one or more processors of a computing device, a first user interface state of an application utilized by a user;
determining, by the one or more processors of the computing device, a first user transition score based at least in part on the first user interface state, a next user interface state, and a first weighting factor;
determining, by the one or more processors of the computing device, a second user transition score for a plurality of other users that share a common characteristic with the user, the second user transition score based at least in part on a second weighting factor, different from the first weighting factor, that corresponds to the plurality of other users;
selecting, by the one or more processors of the computing device, a subset of one or more user interface transitions to be cached, the subset of the one or more user interface transitions to be cached corresponding to at least the first user transition score and the second user transition score and being selected by:
identifying a time of transition for the user associated with the one or more user interface transitions;
calculating a number of transitions for a session based at least in part on the time of transition for the user associated with the one or more user interface transitions;
calculating a transition frequency of the user for transitioning from a first user interface transition to the one or more user interface transitions based at least in part on the number of transitions and a browsing session length for the session; and
calculating a combined user transition score based at least in part on the first user transition score and the second user transition score; and
causing, by the one or more processors of the computing device, one or more actions to be taken that result in caching each interface transition within the subset based at least in part on the transition frequency and the combined user transition score.

### Claim 18

A computer system for facilitating navigation, comprising:
one or more processors; and
memory including instructions that, when executed by the one or more processors, cause the one or more processors to at least:
identify a first user interface state of an application utilized by a user;
determine a first user transition score based at least in part on the first user interface state, a next user interface state, and a first weighting factor;
determine a second user transition score for a plurality of other users that share a common characteristic with the user, the second user transition score based at least in part on a second weighting factor, different from the first weighting factor, that corresponds to the plurality of other users;
select a subset of one or more user interface transitions to be cached, the subset of the one or more user interface transitions to be cached corresponding to at least the first user transition score and the second user transition score and being selected by:
identifying a time of transition for the user associated with the one or more user interface transitions;
calculating a number of transitions for a session based at least in part on the time of transition for the user associated with the one or more user interface transitions;
calculating a transition frequency of the user for transitioning from a first user interface transition to the one or more user interface transitions based at least in part on the number of transitions and a browsing session length for the session; and
calculating a combined user transition score based at least in part on the first user transition score and the second user transition score; and
cause one or more actions to be taken that result in caching each user interface transition within the subset based at least in part on the transition frequency and the combined user transition score.
