IP Library Granted Patent US 10,275,518
Granted Patent B2
US 10,275,518 · App. 13/098,435 · Granted Apr 30, 2019

Integrated phonetic matching methods and systems

Inventor: Kirk G. Kanzelberger (Shoreline, WA)
Assignee: TIBCO SOFTWARE INC.
G06F17/30681
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,275,518
App. No.
13/098,435
Granted
Apr 30, 2019
Kind
B2
Abstract

Methods and systems for searching a database for a query using an integrated approach of associating transduced query string comparisons with literal query string comparisons reduces computation time and results in more relevant and accurate results. The methods and systems include a processor receiving a query, searching a database for the query, and providing results of the search. The query may be compared to data entries from the database, and a transduced version of the query may be compared to transduced data entries. Results from the comparisons between the query and the data entries may be used to guide the comparisons between the transduced query and the transduced data entries. Search results are determined based on the guided comparisons.

Claims (60)

1. A method for searching a database for a query, wherein the database is stored in a data store in communication with a user computing environment, the method comprising:

receiving a user's request for searching the database for the query from the user computing environment;

performing a first matching process, the first matching process including:

comparing the query to data entries in the database stored in the data store in communication with the user computing environment; and

identifying matching data entries;

assigning a numerical score to each of the identified matching data entries;

wherein matching data entries are identified by determining at least one n-gram from the query and scanning the data entries for the at least one n-gram;

performing a second matching process after performing the first matching process, the second matching process including:

transducing, using string transduction, the query to a phonetic equivalent of the query, the phonetic equivalent of the query comprising a transduced version of the query;

comparing the transduced version of the query to transduced data entries in a transduced database;

identifying matching transduced data entries based on the results from the first matching process, the identified matching transduced data entries identified by:

determining at least one n-gram from the transduced version of the query;

scanning the transduced data entries for the at least one n-gram;

determining matching transduced data entries from among the transduced data entries in the transduced database that match the at least one n-gram from the transduced version of the query, and

eliminating, from only the determined matching transduced data entries that have been determined to match the at least one n-gram from the transduced version of the query, at least one of the determined matching transduced data entries, each eliminated matching transduced data entry being eliminated based on the results from the first matching process; and

adjusting the numerical score assigned to each of the identified matching data entries based on the results from the second matching process.

2. The method of claim 1 , wherein identifying matching data entries and identifying matching transduced data entries further comprises using bipartite matching.

3. The method of claim 1 , wherein identifying matching data entries further comprises:

determining one or more n-grams based on the query, wherein the n-grams are strings of length n; and

scanning the data entries for the one or more n-grams.

4. The method of claim 3 , further comprising determining data entries having one or more of the n-grams.

5. The method of claim 4 , wherein identifying matching transduced data entries further comprises:

determining one or more transduced n-grams based on the transduced version of the query, wherein the transduced n-grams are strings of length n; and

scanning the transduced data entries for one or more of the transduced n-grams.

6. The method of claim 5 , further comprising determining transduced data entries having one or more of the transduced n-grams.

7. The method of claim 1 , wherein identifying matching transduced data entries based on the identified matching data entries further comprises:

associating matching transduced data entries with the matching data entries; and

eliminating one or more of the matching transduced data entries based on the matching data entries.

8. The method of claim 1 , further comprising:

determining a level of association between the query and the identified matching data entries and between the transduced query and the identified matching transduced data entries; and

providing search results based on the level of association and a heuristic.

9. The method of claim 8 , further comprising using a look up table to determine the level of association between the query and the identified matching data entries and between the transduced query and the identified matching transduced data entries.

10. The method of claim 1 , wherein the matching data entries include an n-gram from the query and wherein the matching transduced data entries include a transduced n-gram from the transduced query, and wherein the n-gram and the transduced n-gram are strings of length n, and further comprising repeating identifying matching data entries and identifying matching transduced data entries for decremental length n-grams.

11. A system for searching a database for a query, wherein the database is stored in a data store in communication with a user computing environment, and wherein the database and user computing environment are in communication with the system, the system comprising:

a processor;

a memory element;

program memory; and

a communications device, wherein the processor and memory element are in communication via the communications device, and wherein the processor is further in communication with the program memory, and wherein the program memory includes instructions which when executed by the processor cause the processor to perform:

receiving a user's request for searching the database for the query from the user computing environment;

performing a first matching process, the first matching process including:

comparing the query to data entries in the database; and

identifying matching data entries;

assigning a numerical score to each of the identified matching data entries;

wherein matching data entries are identified by determining at least one n-gram from the query and scanning the data entries for the at least one n-gram;

performing a second matching process after performing the first matching process, the second matching process including:

transducing, using string transduction, the query to a phonetic equivalent of the query, the phonetic equivalent of the query comprising a transduced version of the query;

comparing the transduced version of the query to transduced data entries in a transduced database;

identifying matching transduced data entries based on the results from the first matching process, the identified matching transduced data entries identified by:

determining at least one n-gram from the transduced version of the query;

scanning the transduced data entries for the at least one n-gram;

determining matching transduced data entries from among the transduced data entries in the transduced database that match the at least one n-gram from the transduced version of the query, and

eliminating, from only the determined matching transduced data entries that have been determined to match the at least one n-gram from the transduced version of the query, at least one of the determined matching transduced data entries, each eliminated matching transduced data entry being eliminated based on the results from the first matching process; and

adjusting the numerical score assigned to each of the identified matching data entries based on the results from the second matching process.

12. The system of claim 11 , wherein the data entries in the database are duplicated in the memory element, and wherein the processor accesses the data entries in the database by accessing the duplicated data entries in the memory element.

13. The system of claim 11 , further comprising a display element for displaying search results to a user.

14. The system of claim 11 , further comprising an input element for receiving the query from a user.

15. The system of claim 11 , wherein the processor is further operable to determine the transduced version of the query.

16. The system of claim 11 , wherein the matching data entries include an n-gram from the query, and wherein the n-gram is of a length n, and wherein the matching transduced data entries include a transduced n-gram from the transduced query, and wherein the transduced n-gram is of the length n.

17. The system of claim 11 , wherein the system is located at the user computer environment, and wherein the database is located at the user computer environment.

18. The system of claim 11 , wherein the system is located remotely from the user computing environment, and wherein the database is located remotely from the system.

Assignments (15)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
CHANGE OF NAME Recorded Feb 7, 2023
From: TIBCO SOFTWARE INC.
To: CLOUD SOFTWARE GROUP, INC.
Reel/Frame 062714/0634 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
RELEASE REEL 052115 / FRAME 0318 Recorded Oct 3, 2022
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: TIBCO SOFTWARE INC.
Reel/Frame 061588/0511 →
RELEASE (REEL 034536 / FRAME 0438) Recorded Sep 30, 2022
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 061574/0963 →
RELEASE (REEL 054275 / FRAME 0975) Recorded May 7, 2021
From: JPMORGAN CHASE BANK, N.A.
To: TIBCO SOFTWARE INC.
Reel/Frame 056176/0398 →
SECURITY AGREEMENT Recorded Nov 2, 2020
From: TIBCO SOFTWARE INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 054275/0975 →
SECURITY AGREEMENT Recorded Mar 6, 2020
From: TIBCO SOFTWARE INC.
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 052115/0318 →
SECURITY INTEREST Recorded Dec 5, 2014
From: TIBCO SOFTWARE INC.; TIBCO KABIRA LLC; NETRICS.COM LLC
To: JPMORGAN CHASE BANK., N.A., AS COLLATERAL AGENT
Reel/Frame 034536/0438 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2011
From: KANZELBERGER, KIRK G.
To: TIBCO SOFTWARE INC.
Reel/Frame 026605/0898 →
Continuity (1)
Related Publication 20120278315A1 · Nov 1, 2012