IP Library Granted Patent US 7,890,492
Granted Patent B2
US 7,890,492 · App. 11/273,519 · Granted Feb 15, 2011

Organizing pointers to objects in an array to improve the speed of object retrieval

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,890,492
App. No.
11/273,519
Granted
Feb 15, 2011
Kind
B2
Abstract

The invention may be a method of organizing pointers. The pointers may identify addresses where objects are stored. The pointers may be stored in arrays so that the pointers corresponding to the most recently selected objects are stored nearer to ends of the arrays than are the pointers corresponding to less recently selected objects. The invention may be embodied as a machine designed to carry out the method, or as a memory device that is capable of causing a computer to carry out the method.

Claims (44)

1. A computer-implemented method of providing objects, comprising:

providing with a computer, a plurality of objects, each object being potentially desired by a user;

storing, with the computer, the objects in a database, each object having a unique address;

storing, with the computer, pointers in an array, the array having a start and an end, and each pointer identifying one of the unique addresses;

receiving, with the computer, an input from a user;

retrieving, with the computer, one of the pointers to provide a first pointer that corresponds to the input, the first pointer being located at the end of the array;

retrieving, with the computer, one of the objects to provide a first object, the first object being located at the address identified by the first pointer;

retrieving, with the computer, one of the pointers to provide a second pointer that corresponds to the input, the second pointer being located further from the end of the array than the first pointer;

retrieving, with the computer, one of the objects to provide a second object, the second object being located at the address identified by the second pointer;

providing, with the computer, the first object and the second object to the user;

receiving, with the computer, a selection from the user indicating which of the provided objects is a desired object; and

storing, with the computer, the pointer corresponding to the desired object so that the pointer corresponding to the desired object is located at the end of the array.

2. The method of claim 1 , wherein the step of providing the first object and the second object includes providing, with the computer, the first object before the second object.

3. The method of claim 2 , wherein providing the first object before the second object includes providing, with the computer, the first object temporally before the second object.

4. The method of claim 2 , wherein providing the first object before the second object includes providing, with the computer, the first object spatially before the second object.

5. The method of claim 4 , wherein the first object is provided above the second object.

6. The method of claim 1 , further comprising removing, with the computer, duplicate entries of pointers from the array.

7. The method of claim 1 , wherein prior to storing the pointer corresponding to the desired object, the pointer is deleted from the array.

8. The method of claim 1 , further comprising:

retrieving, with the computer, one of the pointers to provide a third pointer that corresponds to the input, the third pointer being located further from the end of the array than the second pointer;

retrieving, with the computer, one of the objects to provide a third object, the third object being located at the address identified by the third pointer; and

providing, with the computer, the third object to the user.

9. The method of claim 1 , wherein the first pointer is retrieved before the second pointer.

10. A machine, comprising:

an input device having at least two keys;

a database of objects, each object being potentially desired by a user, and each object having a unique address;

an array of pointers, the array having a start and an end, and each pointer identifying one of the unique addresses;

a processor capable of executing instructions;

executable instructions capable of causing the processor to (a) receive an input from a user, the input corresponding to keys selected by the user, (b) retrieve one of the pointers to provide a first pointer that corresponds to the input, the first pointer being located at the end of the array, (c) retrieve one of the objects to provide a first object, the first object being located at the address identified by the first pointer, (d) retrieve one of the pointers to provide a second pointer that corresponds to the input, the second pointer being located further from the end of the array than the first pointer, (e) retrieve one of the objects to provide a second object, the second object being located at the address identified by the second pointer, (f) provide the first object and the second object to the user, (g) receive a selection from the user indicating which of the provided objects is a desired object, and (h) store the pointer corresponding to the desired object so that the pointer corresponding to the desired object is located at the end of the array.

11. The machine of claim 10 , further comprising a monitor capable of displaying the first object and the second object.

12. The machine of claim 11 , wherein the monitor is capable of displaying the first object before the second object.

13. The machine of claim 12 , wherein monitor is capable of temporally providing the first object before the second object.

14. The machine of claim 12 , wherein the monitor is capable of spatially providing the first object before the second object.

15. The machine of claim 14 , wherein the first object is provided above the second object.

16. The machine of claim 10 , wherein the instructions are capable of causing the processor to remove duplicate entries of pointers from the array.

17. The method of claim 10 , wherein the instructions are capable of deleting from the array the pointer corresponding to the desired object, prior to the pointer being saved at the end of the array.

18. The machine of claim 10 , wherein the instructions are capable of causing the processor to retrieve the first pointer before the second pointer.

19. The machine of claim 10 , wherein at least one of the keys corresponds to more than one character.

20. A computer readable medium having stored thereon instructions for retrieving objects, the computer program product comprising:

instructions causing a computer to (a) receive an input from a user, (b) retrieve a first pointer from an array that corresponds to the input, the first pointer being located at the end of the array, (c) retrieve an object from a database to provide a first object, the first object being located at the address identified by the first pointer, (d) retrieve one of the pointers to provide a second pointer that corresponds to the input, the second pointer being located further from the end of the array than the first pointer, (e) retrieve one of the objects to provide a second object, the second object being located at the address identified by the second pointer, (f) provide the first object and the second object to the user, (g) receive a selection from the user indicating which of the provided objects is a desired object, and (h) store the pointer corresponding to the desired object so that the pointer corresponding to the desired object is located at the end of the array.

21. The memory device of claim 20 , wherein the instructions are capable of causing the computer to display the first object and the second object on a monitor.

22. The memory device of claim 21 , wherein the instructions cause the first object to be displayed before the second object.

23. The memory device of claim 20 , wherein the instructions are capable of causing the computer to remove duplicate entries of pointers from the array.

24. The memory device of claim 20 , wherein the instructions are capable of deleting from the array the pointer corresponding to the desired object, prior to the pointer being saved at the end of the array.

Assignments (7)
RELEASE (REEL 052935 / FRAME 0584) Recorded Jan 2, 2025
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: CERENCE OPERATING COMPANY
Reel/Frame 069797/0818 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE THE CONVEYANCE DOCUMENT WITH THE NEW ASSIGNMENT PREVIOUSLY RECORDED AT REEL: 050836 FRAME: 0191. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 19, 2022
From: NUANCE COMMUNICATIONS, INC.
To: CERENCE OPERATING COMPANY
Reel/Frame 059804/0186 →
SECURITY AGREEMENT Recorded Jun 15, 2020
From: CERENCE OPERATING COMPANY
To: WELLS FARGO BANK, N.A.
Reel/Frame 052935/0584 →
RELEASE OF SECURITY INTEREST Recorded Jun 12, 2020
From: BARCLAYS BANK PLC
To: CERENCE OPERATING COMPANY
Reel/Frame 052927/0335 →
SECURITY AGREEMENT Recorded Nov 7, 2019
From: CERENCE OPERATING COMPANY
To: BARCLAYS BANK PLC
Reel/Frame 050953/0133 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 050836 FRAME: 0191. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY AGREEMENT. Recorded Oct 29, 2019
From: NUANCE COMMUNICATIONS, INC.
To: CERENCE OPERATING COMPANY
Reel/Frame 050871/0001 →
INTELLECTUAL PROPERTY AGREEMENT Recorded Oct 23, 2019
From: NUANCE COMMUNICATIONS, INC.
To: CERENCE INC.
Reel/Frame 050836/0191 →