IP Library Granted Patent US 9,495,444
Granted Patent B2
US 9,495,444 · App. 14/566,283 · Granted Nov 15, 2016

Rules-based generation of search results

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 9,495,444
App. No.
14/566,283
Granted
Nov 15, 2016
Kind
B2
Abstract

A method including receiving a search query containing one or more query terms from a remote device and determining one or more query parses based on the search query and a knowledge base. Each query parse indicates one or more entity types, wherein each entity type corresponds to a query term or a combination of query terms contained in the search query. The method further includes obtaining a set of app-specific rules, each app-specific rule respectively corresponding to a respective software application. The method further includes generating a set of unparameterized function identifiers based on the plurality of app-specific rules and the one or more query parses. For each of the set of unparameterized function identifiers, the method includes parameterizing the function identifier based on the query terms. The method further includes generating search results based on the parameterized function identifiers and transmitting the search results to the remote device.

Claims (87)

1. A method comprising:

receiving, by a processing system, a search query containing one or more query terms from a remote device;

determining, by the processing system, one or more query parses based on the search query and a knowledge base, each query parse indicating one or more entity types, wherein each entity type corresponds to a query term or a combination of query terms contained in the search query and one or more characteristics of a corresponding entity;

obtaining, by the processing system, a set of app-specific rules, each app-specific rule corresponding to a respective software application of a plurality of software applications executable on the remote device, the app-specific rules respectively defining a template to generate an unparameterized function identifier given a set of entity types and instructions defining a manner by which the template is used, wherein the unparameterized function identifier:

identifies the respective software application and includes one or more unparameterized parameter fields; and

when the one or more unparameterized parameter fields are parameterized with one or more values, corresponds to one or more access mechanisms for accessing a state of the identified software application;

generating, by the processing system, a set of unparameterized function identifiers based on the set of app-specific rules and the one or more query parses;

parameterizing, by the processing system, each unparameterized function identifier based on the query terms;

generating, by the processing system, search results based on the parameterized function identifiers; and

transmitting, by the processing system, the search results to the remote device.

2. The method of claim 1 , wherein generating the set of unparameterized function identifiers comprises, for each app-specific rule:

for each of the query parses:

determining, whether the app-specific rule defines a template that accepts one or more of the entity types defined in the query parse; and

when the app-specific rules defines the template that accepts the one or more of the entity types defined in the query parse, generating an unparameterized function identifier based on the one or more entity types accepted by template, the unparameterized function identifier including one or more unparameterized parameter fields respectively corresponding to the accepted entity types.

3. The method of claim 2 , wherein parameterizing the unparameterized function identifiers comprises:

for each unparameterized function identifier:

for each unparameterized parameter field in the unparameterized function identifier:

determining a value with which to populate the unparameterized parameter field based on a subset of the one or more query terms; and

inserting the value in the unparameterized parameter field.

4. The method of claim 3 , wherein determining the value with which to populate the unparameterized parameter field comprises:

determining the subset of the one or more query terms based on the corresponding accepted entity type; and

determining the value based on the subset of the query terms and the knowledge base.

5. The method of claim 4 , wherein determining the value based on the subset of the query terms and the knowledge base comprises:

identifying a slug in the knowledge base corresponding to the subset of the query terms, the slug being represented in a format that is understood by the software application to which the app-specific rule and the unparameterized function identifier correspond.

6. The method of claim 5 , wherein the knowledge base is at least partially structured according to an ontology that associates general entity types with different general entity types based on a relationship between the general entity types, general entity types with one or more general entities of the entity type, general entity types with corresponding application-specific entity types, and application-specific entity types with corresponding application-specific entity types, wherein the application-specific entity types define entity types used by a respective software application and the application-specific entity types define entities as understood by the respective software application.

7. The method of claim 5 , wherein the slug is an application-specific entity corresponding to the subset of the query terms.

8. The method of claim 1 , wherein generating the search results comprises:

determining a result score for each of the parameterized function identifiers;

selecting one or more of the parameterized function identifiers on which to base the search results on; and

for each selected parameterized function identifier:

determining the one or more access mechanisms based on the selected parameterized function identifier; and

generating a result object based on the one or more access mechanisms.

9. The method of claim 1 , further comprising:

identifying, by the processing system, one or more stored function identifiers respectively indicating one or more records from a plurality of records based on the one or more query terms and/or the one or more query parses, each of the plurality of records respectively corresponding to a state of one of the plurality of software applications and storing information relating to the state of the corresponding software application and a stored function identifier corresponding to the state of the corresponding software application; and

wherein generating the search results is further based on the identified stored function identifiers.

10. The method of claim 9 , wherein generating the search results comprises:

determining a result score for each of the parameterized function identifiers and each of the identified stored function identifiers to obtain a set of scored function identifiers; and

selecting one or more of the set of scored function identifiers on which to base the search results on;

for each selected function identifier:

determining the one or more access mechanisms based on the selected function identifier;

generating a result object based on the one or more access mechanisms; and

including the result object in a container, the container having the search results encoded therein.

11. A search system comprising:

a storage system that stores:

a knowledge base, the knowledge base being at least partially structured according to an ontology that associates: general entity types with different general entity types based on a relationship between the general entity types, general entity types with one or more general entities of the entity type, general entity types with corresponding application-specific entity types, and application-specific entity types with corresponding application-specific entity types, wherein the application-specific entity types define entity types used by a respective software application and the application-specific entity types define entities as understood by the respective software application; and

a plurality of app-specific rules, each app-specific rule of the plurality of app-specific rules respectively corresponding to a respective software application of a plurality of software applications executable on a remote device, the app-specific rules respectively defining a template to generate an unparameterized function identifier given a set of entity types and instructions defining a manner by which the template is used, wherein the unparameterized function identifier:

identifies the respective software application and includes one or more unparameterized parameter fields; and

when the one or more unparameterized parameter fields are parameterized with one or more values, corresponds to one or more access mechanisms for accessing a state of the identified software application; and

a processing system that executes computer-readable instructions, the computer-readable instructions, when executed by the processing system, causing the processing system to:

receive a search query containing one or more query terms from the remote device;

determine one or more query parses based on the search query and a knowledge base, each query parse indicating one or more entity types, wherein each entity type corresponds to a query term or a combination of query terms contained in the search query and one or more characteristics of a corresponding entity;

generate a set of unparameterized function identifiers based on the app-specific rules and the one or more query parses;

parameterize each unparameterized function identifier based on the query terms;

generate search results based on the parameterized function identifiers; and

transmit the search results to the remote device.

12. The search system of claim 11 , wherein generating the set of unparameterized function identifiers comprises, for each app-specific rule:

for each of the query parses:

determining, whether the app-specific rule defines the template that accepts the one or more of the entity types defined in the query parse; and

when the app-specific rules defines a template that accepts one or more of the entity types defined in the query parse, generating an unparameterized function identifier based on the one or more entity types accepted by template, the unparameterized function identifier including one or more unparameterized parameter fields respectively corresponding to the accepted entity types.

13. The search system of claim 12 , wherein parameterizing the unparameterized function identifiers comprises:

for each unparameterized function identifier:

for each unparameterized parameter field in the unparameterized function identifier:

determining a value with which to populate the unparameterized parameter field based on a subset of the one or more query terms; and

inserting the value in the unparameterized parameter field.

14. The search system of claim 13 , wherein determining the value with which to populate the unparameterized parameter field comprises:

determining the subset of the one or more query terms based on the corresponding accepted entity type; and

determining the value based on the subset of the query terms and the knowledge base.

15. The search system of claim 14 , wherein determining the value based on the subset of the query terms and the knowledge base comprises:

identifying a slug in the knowledge base corresponding to the subset of the query terms, the slug being represented in a format that is understood by the software application to which the app-specific rule and the unparameterized function identifier correspond.

16. The search system of claim 15 , wherein the slug is an application-specific entity corresponding to the subset of the query terms.

17. The search system of claim 11 , wherein generating the search results comprises:

determining a result score for each of the parameterized function identifiers; and

selecting one or more of the parameterized function identifiers on which to base the search results on;

for each selected parameterized function identifier:

determining the one or more access mechanisms based on the selected parameterized function identifier; and

generating a result object based on the one or more access mechanisms.

18. The search system of claim 11 , wherein:

the storage system further stores a plurality of records, each of the plurality of records respectively corresponding to a state of one of the plurality of software applications and storing information relating to the state of the corresponding software application and a stored function identifier corresponding to the state of the corresponding software application; and

the computer-readable instructions, when executed by the processing system, further causing the processing system to identify one or more stored function identifiers respectively indicating one or more records from a plurality of records based on the one or more query terms and/or the one or more query parses, wherein generating the search results is further based on the identified stored function identifiers.

19. The search system of claim 18 , wherein generating the search results comprises:

determining a result score for each of the parameterized function identifiers and each of the identified stored function identifiers to obtain a set of scored function identifiers; and

selecting one or more of the set of scored function identifiers on which to base the search results on;

for each selected function identifier:

determining the one or more access mechanisms based on the selected function identifier;

generating a result object based on the one or more access mechanisms; and

including the result object in a container, the container having the search results encoded therein.

20. The search system of claim 11 , wherein the remote device is one of a user device and a partner device, wherein the partner device receives the search query from the user device and provides the search results received from the search system to the user device.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2017
From: QUIXEY, INC.
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 044300/0981 →
RELEASE OF SECURITY INTEREST Recorded Oct 23, 2017
From: ALIBABA.COM U.S. INVESTMENT HOLDING CORPORATION
To: QUIXEY, INC.
Reel/Frame 044575/0410 →
SECURITY INTEREST Recorded Aug 1, 2016
From: QUIXEY, INC.
To: ALIBABA.COM U.S. INVESTMENT HOLDING CORPORATION
Reel/Frame 039521/0041 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2015
From: SHAPIRA, LIRON; BEN-TZUR, JONATHAN
To: QUIXEY, INC.
Reel/Frame 034920/0966 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2014
From: HARRIS, MICHAEL
To: QUIXEY, INC.
Reel/Frame 034591/0386 →