# US 8,751,508 B1 · Contextual indexing of applications

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

- Number: US 8,751,508 B1
- Document ID: US8751508B1
- Status: Granted
- Kind: B1
- Application number: 13/198,185
- Filed: 2011-08-04
- Granted: 2014-06-10
- Earliest claimed: 2011-08-04
- Assignees: Amazon Technologies, Inc.
- Applicants: Zahur A. Peracha; Mekka C. Okereke
- Inventors: Zahur A. Peracha; Mekka C. Okereke
- Web page: https://patentgrep.com/patent/US8751508B1

## CPC

- G06F 16/51: Indexing; Data structures therefor; Storage structures
- G06F 16/907: Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed are various embodiments for the contextual indexing of applications using an application analyzer. In one embodiment, the application analyzer identifies at least one used element present in an application. The application analyzer computes a weight for the at least one used element, then provides the at least one used element and the respective weight to a contextual index service.

## Claims

### Claim 1

A non-transitory computer-readable medium embodying a program executable in a computing device, the program comprising:
code that identifies a plurality of used elements invoked in a user interface of an application during execution of the application, including at least one of:
text present in an image of the application;
at least one object present in the image; and
a spoken word present in an audio segment of the application;
code that calculates a number of times the used elements are invoked during the execution of the application;
code that calculates a weight for each of the used elements;
code that determines a degree of correlation between a plurality of previously existing descriptive tags associated with the application and the used elements; and
code that provides a plurality of positively correlated ones of the descriptive tags and the used elements to a contextual index service, wherein the positively correlated ones of the descriptive tags and the used elements are employed to determine if the application is relevant to a search.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein each of the weights is calculated based at least upon a prominence of a respective one of the used elements.

### Claim 3 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the program further comprises code that provides the used elements and the respective weights to the contextual index service, wherein at least the used elements and the respective weights are employed to determine if the application is relevant to the search.

### Claim 4 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein code that identifies the used elements is further configured to trace all of a plurality of reachable paths of execution within the application.

### Claim 5

A system, comprising:
at least one computing device; and
an application analyzer executable in the at least one computing device, the application analyzer comprising:
logic that identifies a plurality of used elements present in a user interface generated during an execution of an application;
logic that computes a weight for each of the used elements; and
logic that provides the used elements and the respective weights to a contextual index service, wherein the used elements and the respective weights are indexed to make the application responsive to a search.

### Claim 6 (depends on 5)

The system of claim 5, wherein the application analyzer further comprises logic that traces all of a plurality of reachable paths of execution within the application.

### Claim 7 (depends on 5)

The system of claim 5, wherein the execution of the application is directed by a plurality of instructions received from a client device over a network.

### Claim 8 (depends on 5)

The system of claim 5, wherein the application analyzer further comprises:
logic that generates a degree of correlation between the used elements and a plurality of previously existing descriptive tags associated with the application; and
logic that provides a plurality of positively correlated ones of the descriptive tags to the contextual index service, wherein the positively correlated ones of the descriptive tags are indexed in order to make the application responsive to the search.

### Claim 9 (depends on 8)

The system of claim 8, wherein the application analyzer further comprises:
logic that identifies at least one unused element present in the application, wherein the at least one unused element is not along a reachable path of execution within the application;
logic that instructs the contextual index service to remove the positively correlated ones of the descriptive tags from the contextual index service.

### Claim 10 (depends on 8)

The system of claim 8, wherein the application analyzer further comprises:
logic that identifies at least one unused element present in the application, wherein the at least one unused element is not along a reachable path of execution within the application;
logic that generates a degree of correlation between the at least one unused element and the descriptive tags associated with the application; and
logic that prevents submission of a portion of the descriptive tags to the contextual index service, the portion being positively correlated with the at least one unused element.

### Claim 11 (depends on 5)

The system of claim 5, wherein the logic that identifies the used elements further comprises logic that identifies a plurality of text strings present in at least one image associated with the application.

### Claim 12 (depends on 11)

The system of claim 11, wherein the at least one image is included in a sequence of a plurality of images comprising a video.

### Claim 13 (depends on 5)

The system of claim 5, wherein the logic that identifies the used elements further comprises logic that recognizes at least one object present in at least one image associated with the application.

### Claim 14 (depends on 13)

The system of claim 13, wherein the at least one image is included in a sequence of a plurality of images comprising a video.

### Claim 15 (depends on 5)

The system of claim 5, wherein the logic that identifies the used elements further comprises logic that recognizes a plurality of spoken words present in an audio segment associated with the application.

### Claim 16 (depends on 5)

The system of claim 5, wherein the logic that calculates the weight for each of the used elements further calculates the weight based at least upon a frequency of use for respective ones of the used elements.

### Claim 17 (depends on 5)

The system of claim 5, wherein the logic that calculates the weight for each of the used elements further calculates the weight based at least upon a prominence of respective ones of the used elements.

### Claim 18

A method, comprising the steps of:
performing, in a computing device, a binary analysis of a plurality of portions of an application to identify a plurality of used elements, the used elements being present within a user interface generated during execution of the application;
generating, in the computing device, a degree of correlation between the used elements and ones of a plurality of previously existing descriptive tags; and
providing, in the computing device, a plurality of positively correlated ones of the descriptive tags and the used elements to a contextual index service, wherein at least the positively correlated ones of the descriptive tags and the used elements are employed to determine if the application is relevant to a search.

### Claim 19 (depends on 18)

The method of claim 18, wherein the portions of the application comprise all of a plurality of reachable paths of execution within the application.

### Claim 20 (depends on 18)

The method of claim 18, wherein at least some of the portions of the application are invoked via a plurality of instructions received from a client device over a network.

### Claim 21 (depends on 18)

The method of claim 18, further comprising the steps of:
wherein the binary analysis of the plurality of portions of the application is further performed to identify at least one unused element; and
providing, in the computing device, instruction to the contextual index service to disqualify the positively correlated ones of the descriptive tags from the contextual index service.

### Claim 22 (depends on 18)

The method of claim 18, wherein providing the positively correlated ones of the descriptive tags occurs only if all of the descriptive tags were positively correlated.
