OPTIMIZED ONTOLOGY BASED INTERNET SEARCH SYSTEMS AND METHODS
First Claim
Patent Images
1. A method of providing suggested completions to search results, comprising:
- receiving at a server at least one search term;
locating nodes in a stored ontology, wherein nodes consist of classes or instances of information, that correspond to the at least one search term;
when two or more nodes are located in the stored ontology that match the at least one search term, for each located node, retrieving at least one neighbor and/or extended neighbor of the two or more located nodes in the stored ontology, wherein neighbors of a class comprise parent classes, child classes and classes that are reachable from a class by traversing a semantic relationship, and wherein neighbors of an instance are the class to which the instance belongs, object properties and data type properties of the instance;
wherein extended neighbors of a class comprise ancestor classes, descendant classes and classes that are reachable from a class by traversing a path of at least one semantic relationship followed by another semantic relationship and wherein extended neighbors of an instance are classes which are reachable as parent or ancestors from the class to which the instance belongs, class properties and data type properties of the class to which the instance belongs;
when the node is an instance;
when the node is a class, retrieving first a parent or ancestor;
when the node is an instance, retrieving first the class of which it is an instance or at least one of its ancestors;
optionally, limiting the retrieved information to a subset; and
generating suggested completions in a format using at least one visually distinguishing feature that may be presented to a user.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus for providing suggested completions to search results are disclosed which employ locating nodes in a stored ontology, wherein nodes consist of classes or instances of information, that correspond to the at least one search term, retrieving neighbors of located nodes in the stored ontology, and generating suggested completions in a format which separates homonymic terms. Methods and apparatus are disclosed for building ontologies and dynamically expanding ontologies.
-
Citations
21 Claims
-
1. A method of providing suggested completions to search results, comprising:
-
receiving at a server at least one search term; locating nodes in a stored ontology, wherein nodes consist of classes or instances of information, that correspond to the at least one search term; when two or more nodes are located in the stored ontology that match the at least one search term, for each located node, retrieving at least one neighbor and/or extended neighbor of the two or more located nodes in the stored ontology, wherein neighbors of a class comprise parent classes, child classes and classes that are reachable from a class by traversing a semantic relationship, and wherein neighbors of an instance are the class to which the instance belongs, object properties and data type properties of the instance;
wherein extended neighbors of a class comprise ancestor classes, descendant classes and classes that are reachable from a class by traversing a path of at least one semantic relationship followed by another semantic relationship and wherein extended neighbors of an instance are classes which are reachable as parent or ancestors from the class to which the instance belongs, class properties and data type properties of the class to which the instance belongs;
when the node is an instance;when the node is a class, retrieving first a parent or ancestor; when the node is an instance, retrieving first the class of which it is an instance or at least one of its ancestors; optionally, limiting the retrieved information to a subset; and generating suggested completions in a format using at least one visually distinguishing feature that may be presented to a user. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus, including a processor operating to perform actions in response to executing computer program instructions, the actions comprising:
-
providing suggested completions to search results comprising receiving at a server at least one search term; locating nodes in a stored ontology, wherein nodes consist of classes or instances of information, that correspond to the at least one search term; when two or more nodes are located in the stored ontology that match the at least one search term, for each located node, retrieving at least one neighbor and/or extended neighbor of the two or more located nodes in the stored ontology, wherein neighbors of a class comprise parent classes, child classes and classes that are reachable from a class by traversing a semantic relationship, and wherein neighbors of an instance are the class to which the instance belongs, object properties and data type properties of the instance;
wherein extended neighbors of a class comprise ancestor classes, descendant classes and classes that are reachable from a class by traversing a path of at least one semantic relationship followed by another semantic relationship and wherein extended neighbors of an instance are classes which are reachable as parent or ancestors from the class to which the instance belongs, class properties and data type properties of the class to which the instance belongs;
when the node is an instance;when the node is a class, retrieving first a parent or ancestor; when the node is an instance, retrieving first the class of which it is an instance or at least one of its ancestors; optionally, limiting the retrieved information to a subset; and generating suggested completions in a format using at least one visually distinguishing feature that may be presented to a user. - View Dependent Claims (11, 12)
-
-
13. A non-transitory, computer readable storage medium containing a computer program, which when executed by a computer processor causes the computer processor to perform actions, the actions comprising:
-
providing suggested completions to search results comprising receiving at a server at least one search term; locating nodes in a stored ontology, wherein nodes consist of classes or instances of information, that correspond to the at least one search term; when two or more nodes are located in the stored ontology that match the at least one search term, for each located node, retrieving at least one neighbor and/or extended neighbor of the two or more located nodes in the stored ontology, wherein neighbors of a class comprise parent classes, child classes and classes that are reachable from a class by traversing a semantic relationship, and wherein neighbors of an instance are the class to which the instance belongs, object properties and data type properties of the instance;
wherein extended neighbors of a class comprise ancestor classes, descendant classes and classes that are reachable from a class by traversing a path of at least one semantic relationship followed by another semantic relationship and wherein extended neighbors of an instance are classes which are reachable as parent or ancestors from the class to which the instance belongs, class properties and data type properties of the class to which the instance belongs;
when the node is an instance;when the node is a class, retrieving first a parent or ancestor; when the node is an instance, retrieving first the class of which it is an instance or at least one of its ancestors; optionally, limiting the retrieved information to a subset; and generating suggested completions in a format using at least one visually distinguishing feature that may be presented to a user. - View Dependent Claims (14, 15)
-
-
16. A method of building an ontology comprising:
-
querying a search engine with common terms; extracting at least one term of interest from results generated by the search engine; assigning the at least one term of interest to a top value category; querying a separate database with the at least one term; saving type and relationship data for term(s) found in the separate database; removing all terms not correlated to the selected term type; creating mappings for disambiguation tags; assigning terms to an ontology type, analyzing the types of relationships for each type, and retaining the most common relationships for each type.
-
-
17. An apparatus, including a processor operating to perform actions in response to executing computer program instructions, the actions comprising:
-
building an ontology comprising querying a search engine with common terms; extracting at least one term of interest from results generated by the search engine; assigning the at least one term of interest to a top value category; querying a separate database with the at least one term; saving type and relationship data for term(s) found in the separate database; removing all terms not correlated to the selected term type; creating mappings for disambiguation tags.
-
-
18. A non-transitory, computer readable storage medium containing a computer program, which when executed by a computer processor causes the computer processor to perform actions, the actions comprising:
-
building an ontology comprising querying a search engine with common terms; extracting at least one term of interest from results generated by the search engine; assigning the at least one term of interest to a top value category; querying a separate database with the at least one term; saving type and relationship data for term(s) found in the separate database; removing all terms not correlated to the selected term type; creating mappings for disambiguation tags.
-
-
19. A method for dynamically expanding an ontology comprising receiving a name or fragment thereof by a server running an ontology supported web search, processing the name comprising passing the name to a search engine which provides suggested search queries and retrieves the suggested search queries, and checking the suggested completions generated by the search engine for valid names;
- querying a second database to determine whether any of the names correlate to an actual person;
when a name correlates to an actual person, determining whether the person already exists in the ontology;
if the person does not exist in the ontology, determining the correct class and creating a new instance of the class in the ontology;
wherein if the instance exists in the ontology, but only as a stub, promoted the stub to a full instance;
querying the second database for applicable relationships and targets;
creating a new instance for a target before including the relationship if a target does not exist in the ontology;
adding the instance to a list of valid suggestions after the instance has been created within the ontology; and
generating the list of valid suggestions.
- querying a second database to determine whether any of the names correlate to an actual person;
-
20. An apparatus, including a processor operating to perform actions in response to executing computer program instructions, the actions comprising:
expanding an ontology dynamically comprising receiving a name or fragment thereof by a server running an ontology supported web search;
processing the name comprising passing the name to a search engine which provides suggested search queries and retrieves the suggested search queries, and checking the suggested completions generated by the search engine for valid names, querying a second database to determine whether any of the names correlate to an actual person;
when a name correlates to an actual person, determining whether the person already exists in the ontology;
if the person does not exist in the ontology, determining the correct class and creating a new instance of the class in the ontology;
wherein if the instance exists in the ontology, but only as a stub, promoted the stub to a full instance;
querying the second database for applicable relationships and targets;
creating a new instance for a target before including the relationship if a target does not exist in the ontology;
adding the instance to a list of valid suggestions after the instance has been created within the ontology; and
generating the list of valid suggestions.
-
21. A non-transitory, computer readable storage medium containing a computer program, which when executed by a computer processor causes the computer processor to perform actions, the actions comprising:
expanding an ontology dynamically comprising receiving a name or fragment thereof by a server running an ontology supported web search, processing the name comprising passing the name to a search engine which provides suggested search queries and retrieves the suggested search queries, and checking the suggested completions generated by the search engine for valid names;
querying a second database to determine whether any of the names correlate to an actual person;
when a name correlates to an actual person, determining whether the person already exists in the ontology;
if the person does not exist in the ontology, determining the correct class and creating a new instance of the class in the ontology;
wherein if the instance exists in the ontology, but only as a stub, promoted the stub to a full instance;
querying the second database for applicable relationships and targets;
creating a new instance for a target before including the relationship if a target does not exist in the ontology;
adding the instance to a list of valid suggestions after the instance has been created within the ontology; and
generating the list of valid suggestions.
Specification