IP Library › Granted Patent US 10,552,398
Granted Patent B2
US 10,552,398 · App. 15/555,417 · Granted Feb 4, 2020

Database records associated with a tire

Inventors: Evan Kirshenbaum (Palo Alto, CA); George Forman (Port Orchard, WA)
Assignee: MICRO FOCUS LLC
G06F16/2246G06F1/03G06F16/24539G06F16/90344G06F16/9014
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 10,552,398
App. No.
15/555,417
Filed
Sep 1, 2017
Granted
Feb 4, 2020
Kind
B2
Art Unit
2165
USPC
707/797
Abstract

Example implementations relate to database records associated with a trie. For example, a computing device may include at least one processor to receive a query string and determine, based on the query string, a lookup string associated with a plurality of words in an order. The at least one processor may identify, based on the lookup string and a trie associated with the lookup string, a set of records from a database of records, each record in the set being associated with a score that is associated with a degree to which each record matches the query string, wherein the set is identified based on a penalty value calculated for each record based on a hypothesized collection of typing errors sufficient to transform a prefix of a string associated with each record into the lookup string. The at least one processor may provide a result based on the set.

Claims (50)

1. A computing device comprising:

at least one processor to:

receive a first query string;

determine, based on the first query string, a first lookup string associated with a first plurality of words in a first order;

identify, based on the first lookup string and a first trie associated with the first lookup string, a first set of records from a database of records, each record in the first set of records being associated with a first score that is associated with a degree to which each record matches the first query string, wherein the first set of records is identified based on a penalty value calculated for each record based on a first hypothesized collection of typing errors sufficient to transform a prefix of a string associated with each record into the first lookup string; and

provide a result based on the first set of records.

2. The computing device of claim 1 , wherein the at least one processor is further to:

identify a first cursor set based on the first lookup string, wherein each cursor in the first cursor set is associated with a node in the first trie and with a corresponding penalty value computed based on a second hypothesized collection of typing errors sufficient to transform a prefix associated with the node into the first lookup string; and

calculate, based on the first cursor set and a character in the first lookup string, a second cursor set.

3. The computing device of claim 1 , wherein the first trie is associated with a first data field associated with the database of records and wherein the at least one processor is further to:

determine a second lookup string that is non-overlapping with the first lookup string; and

calculate, based on the second lookup string and a second trie associated with a second data field, a second set of records, wherein each record in the second set of records is associated with a second score that is associated with a degree to which each record in the second set of records matches the first query string, wherein the result is based on the first set of records and the second set of records.

4. The computing device of claim 1 , wherein at least one string associated with at least one record is an alternative form of another string included in data associated with the at least one record.

5. The computing device of claim 1 , wherein the at least one processor is further to:

receive a second query string;

determine, based on the second query string, a second lookup string associated with a second plurality of words in a second order, wherein the second plurality of words has the same words as the first plurality of words and the second order differs from the first order; and

identify, based on the second lookup string and the first trie, a second set of records from the database of records, wherein the second set of records differs from the first set of records.

6. The computing device of claim 1 , wherein the penalty value is calculated based on a first penalty value associated with a first class of typing error and a second penalty value associated with a second class of typing error, the second penalty value being different from the first penalty value.

7. The computing device of claim 1 , wherein the at least one processor is further to:

access a cache; and

determine that at least a portion of the first query string is associated with data stored in the cache, wherein the first set of records is identified based on establishing a starting context based on the data stored in the cache.

8. A method, comprising:

receiving, by a computing device, a query string;

based on the query string, determining, by the computing device, a first lookup string associated with a first data field and a second lookup string that is non-overlapping with the first lookup string;

based on the first lookup string and a first trie associated with the first lookup string, identifying, by the computing device, a first set of records from a database of records, each record in the first set of records being associated with a first score that is associated with a degree to which each record matches the query string, wherein the first set of records is identified based on a penalty value calculated for each record based on a first hypothesized collection of typing errors sufficient to transform a prefix of a string associated with each record into the first lookup string;

based on the second lookup string and a second trie associated with a second data field, calculating, by the computing device, a second set of records from the database of records, each record in the second set of records being associated with a second score that is associated with a degree to which each record in the second set of records matches the query string; and

providing, by the computing device, a result based on the first set of records and the second set of records.

9. The method of claim 8 , wherein the first lookup string is associated with a first plurality of words in a first order and wherein the method further comprises:

receiving, by the computing device, a second query string;

based on the second query string, determining, by the computing device, a third lookup string associated with a second plurality of words in a second order, wherein the second plurality of words has the same words as the first plurality of words and the second order differs from the first order; and

based on the third lookup string and the first trie, identifying, by the computing device, a third set of records from the database of records, wherein the third set of records differs from the first set of records.

10. The method of claim 8 , further comprising:

identifying, by the computing device, a first cursor set based on the first lookup string, wherein each cursor in the first cursor set is associated with a node in the first trie and with a corresponding penalty value computed based on a second hypothesized collection of typing errors sufficient to transform a prefix associated with the node into the first lookup string; and

based on the first cursor set and a character in the first lookup string, calculating, by the computing device, a second cursor set.

11. The method of claim 8 , wherein at least one string associated with at least one record is an alternative form of another string included in data associated with the at least one record.

12. A non-transitory machine-readable storage medium storing instructions that, if executed by at least one processor of a computing device, cause the computing device to:

receive a first query string;

determine, based on the first query string, a first lookup string;

identify, based on the first lookup string and a first trie associated with the first lookup string, a first set of records from a database of records, each record in the first set of records being associated with a first score that is associated with a degree to which each record matches the first query string, wherein the first set of records is identified based on a penalty value calculated for each record based on a first hypothesized collection of typing errors sufficient to transform a prefix of a string associated with each record into the first lookup string, wherein at least one string associated with at least one record is an alternative form of another string included in data associated with the at least one record; and

provide a result based on the first set of records.

13. The non-transitory machine-readable storage medium of claim 12 , wherein the instructions further cause the computing device to:

identify a first cursor set based on the first lookup string, wherein each cursor in the first cursor set is associated with a node in the first trie and with a corresponding penalty value computed based on a second hypothesized collection of typing errors sufficient to transform a prefix associated with the node into the first lookup string; and

calculate, based on the first cursor set and a character in the first lookup string, a second cursor set.

14. The non-transitory machine-readable storage medium of claim 12 , wherein the first lookup string is associated with a first plurality of words in a first order and wherein the instructions further cause the computing device to:

receive a second query string;

based on the second query string, determine a second lookup string associated with a second plurality of words in a second order, wherein the second plurality of words has the same words as the first plurality of words and the second order differs from the first order; and

based on the second lookup string and the first trie, identify a second set of records from the database of records, wherein the second set of records differs from the first set of records.

15. The non-transitory machine-readable storage medium of claim 12 , wherein the first trie is associated with a first data field associated with the database of records and wherein the instructions further cause the computing device to:

determine a second lookup string that is non-overlapping with the first lookup string; and

calculate, based on the second lookup string and a second trie associated with a second data field, a second set of records, wherein each record in the second set of records is associated with a second score that is associated with a degree to which each record in the second set of records matches the first query string, wherein the result is based on the first set of records and the second set of records.

Assignments (8)
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 043790/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2017
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 043787/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2017
From: KIRSHENBAUM, EVAN R; FORMAN, GEORGE
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 043528/0606 →
Continuity (1)
Related Publication 20180039661A1 · Feb 8, 2018