IP Library Granted Patent US 8,161,020
Granted Patent B2
US 8,161,020 · App. 11/273,361 · Granted Apr 17, 2012

Searching for and providing objects using byte-by-byte comparison

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 8,161,020
App. No.
11/273,361
Granted
Apr 17, 2012
Kind
B2
Abstract

Keys on an input device are selected to input a first selection and a second selection to form a byte. The byte is compared to a first byte of identification codes in a database. Such a method may use identification codes to identify pointers that correspond to objects in the database, and the pointers may indicate the address in a database where desired objects are stored. The input device has a database, a processor and executable instructions. The executable instructions may cause the processor to carry out a method of providing the objects.

Claims (69)

1. A method of providing information comprising:

providing an input mobile device having at least two keys, each of said at least two keys corresponding to more than one character;

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

storing pointers in the database, each pointer identifying at least one of the unique addresses, and each pointer having an identification code that is at least one byte in length;

accepting selection of a first key press of one of the at least two keys to produce a first binary number;

following said accepting selection of the first key press, accepting selection of a second key press of one of the at least two keys to produce a second binary number;

concatenating the first and second binary numbers to create a first input having exactly one byte in length, wherein the first binary number is a first nibble of the first input and the second binary number is a second nibble of the first input;

comparing the byte of the first input to a first one of the bytes of the identification codes and based on the comparison, creating a set of identification codes, each identification code in the set having a first byte that matches the byte of the first input;

identifying a pointer for each identification code in said set of identification codes, to provide a first group of pointers; and

providing objects corresponding to the identified pointers;

wherein when it is desired to reduce the number of objects provided:

accepting selection of a third key press of one of the at least two keys to produce a third binary number, wherein the third binary number is a third nibble of first input;

comparing the third binary number with a first nibble in a second byte of identification codes associated with the first group of pointers and, based on said comparison, identifying from among the first group of pointers those pointers having a first nibble in a second byte that matches the third binary number, to provide a second group of pointers that is a subset of the first group of pointers; and

providing objects corresponding to the second group of pointers.

2. The method of claim 1 , further comprising:

following said accepting selection of the third key press, accepting selection of a fourth key press of one of the at least two keys to produce a fourth binary number;

concatenating the third and fourth binary numbers to create a second input having exactly one byte in length, wherein the third binary number is a first nibble of the second input and the fourth binary number is a second nibble of the second input;

comparing the byte of the second input to a second one of the bytes of the identification codes associated with the first group of pointers and based on the comparison, creating a second set of identification codes, each identification code in the second set having a second byte that matches the byte of the second input;

identifying a pointer for each identification code in said second set of identification codes, to provide a second group of pointers; and

providing objects corresponding to the identified pointers from the second group.

3. The method of claim 1 , wherein the identification codes are addresses of the database.

4. The method of claim 1 , wherein at least one of the pointers is a start address corresponding to a location where a first one of the objects corresponding to the first input may be found.

5. The method of claim 4 , wherein at least one of the pointers is an end address corresponding to a location where a last one of the objects corresponding to the first input may be found.

6. The method of claim 4 , wherein at least one of the pointers is a number representing how many objects correspond to the first input.

7. A machine, comprising:

an input device having at least two keys;

a database, having stored therein a plurality of objects, each object being potentially desired by a user, and having stored therein pointers, each pointer identifying at least one address of an object and each pointer having an identification code that is at least one byte in length;

a processor capable of executing instructions; and

executable instructions capable of instructing the processor to perform the steps of:

accepting selection of a first key press of one of the at least two keys to produce a first binary number;

following said accepting selection of the first key press, accepting selection of a second key press of one of the at least two keys to produce a second binary number;

concatenating the first and second binary numbers to create a first input having exactly one byte in length, wherein the first binary number is a first nibble of the first input and the second binary number is a second nibble of the first input;

comparing the byte of the first input to a first one of the bytes of the identification codes and based on the comparison, creating a set of identification codes, each identification code in the set having a first byte that matches the byte of the first input;

identifying a pointer for each identification code in said set of identification codes, to provide a first group of pointers; and

providing objects corresponding to the identified pointers;

wherein when it is desired to reduce the number of objects provided:

accepting selection of a third key press of one of the at least two keys to produce a third binary number, wherein the third binary number is a third nibble of first input;

comparing the third binary number with a first nibble in a second byte of identification codes associated with the first group of pointers and, based on said comparison, identifying from among the first group of pointers those pointers having a first nibble in a second byte that matches the third binary number, to provide a second group of pointers that is a subset of the first group of pointers; and

providing objects corresponding to the second group of pointers.

8. The machine of claim 7 , wherein the executable instructions have instructions capable of instructing the processor to perform the steps of:

following said accepting selection of the third key press, accepting selection of a fourth key press of one of the at least two keys to produce a fourth binary number;

concatenating the third and fourth binary numbers to create a second input having exactly one byte in length, wherein the third binary number is a first nibble of the second input and the fourth binary number is a second nibble of the second input;

comparing the byte of the second input to a second one of the bytes of the identification codes associated with the first group of pointers and based on the comparison, creating a second set of identification codes, each identification code in the second set having a second byte that matches the byte of the second input;

identifying a pointer for each identification code in said second set of identification codes, to provide a second group of pointers; and

providing objects corresponding to the identified pointers from the second group.

9. The machine of claim 7 , wherein the identification codes correspond to addresses of the database.

10. The machine of claim 7 , wherein at least one of the identified pointers is a start address corresponding to a location where a first one of the objects corresponding to the first input may be found.

11. The machine of claim 10 , wherein at least one of the identified pointers is an end address corresponding to a location where a last one of the objects corresponding to the first input may be found.

12. The machine of claim 10 , wherein at least one of the identified pointers is a number representing how many objects correspond to the first input.

13. A computer readable memory device having stored thereon instructions that are executable by a computer, the instructions causing a computer to perform the steps of:

accepting selection of a first key press of one of the at least two keys to produce a first binary number;

following said accepting selection of the first key press, accepting selection of a second key press of one of the at least two keys to produce a second binary number;

concatenating the first and second binary numbers to create a first input having exactly one byte in length, wherein the first binary number is a first nibble of the first input and the second binary number is a second nibble of the first input;

comparing the byte of the first input to a first one of the bytes of the identification codes and based on the comparison, creating a set of identification codes, each identification code in the set having a first byte that matches the byte of the first input;

identifying a pointer for each identification code in said set of identification codes, to provide a first group of pointers; and

providing objects corresponding to the identified pointers;

wherein when it is desired to reduce the number of objects provided:

accepting selection of a third key press of one of the at least two keys to produce a third binary number, wherein the third binary number is a third nibble of first input;

comparing the third binary number with a first nibble in a second byte of identification codes associated with the first group of pointers and, based on said comparison, identifying from among the first group of pointers those pointers having a first nibble in a second byte that matches the third binary number, to provide a second group of pointers that is a subset of the first group of pointers; and

providing objects corresponding to the second group of pointers.

14. The memory device of claim 13 , wherein the instructions further include instructions which cause the computer to perform the steps of:

following said accepting selection of the third key press, accepting selection of a fourth key press of one of the at least two keys to produce a fourth binary number;

concatenating the third and fourth binary numbers to create a second input having exactly one byte in length, wherein the third binary number is a first nibble of the second input and the fourth binary number is a second nibble of the second input;

comparing the byte of the second input to a second one of the bytes of the identification codes associated with the first group of pointers and based on the comparison, creating a second set of identification codes, each identification code in the second set having a second byte that matches the byte of the second input;

identifying a pointer for each identification code in said second set of identification codes, to provide a second group of pointers; and

providing objects corresponding to the identified pointers from the second group.

15. The memory device of claim 13 , wherein one of the pointers in the first group is a start address corresponding to a location where a first one of the objects corresponding to the first input may be found.

16. The memory device of claim 13 , wherein one of the pointers in the first group is an end address corresponding to a location where a last one of the objects corresponding to the first input may be found.

17. The memory device of claim 13 , wherein one of the pointers in the first group is a number representing how many objects correspond to the first input.

Assignments (8)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2006
From: WEIR, CHARLES; WILDENFLYCHT, TOMMY
To: ZI CORPORATION OF CANADA, INC.
Reel/Frame 017601/0360 →