WO2014127500A1 - Natural language processing based search - Google Patents

Natural language processing based search Download PDF

Info

Publication number
WO2014127500A1
WO2014127500A1 PCT/CN2013/071652 CN2013071652W WO2014127500A1 WO 2014127500 A1 WO2014127500 A1 WO 2014127500A1 CN 2013071652 W CN2013071652 W CN 2013071652W WO 2014127500 A1 WO2014127500 A1 WO 2014127500A1
Authority
WO
WIPO (PCT)
Prior art keywords
search
query
tree
knowledge graph
filter
Prior art date
Application number
PCT/CN2013/071652
Other languages
French (fr)
Inventor
Guanghua Li
David Francois HUYNH
Yanlai HUANG
Yuan Gao
Ying CHAI
Manish Rai JAIN
Yong Zhang
Original Assignee
Google Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google Inc. filed Critical Google Inc.
Priority to CN201380073339.8A priority Critical patent/CN105900081B/en
Priority to PCT/CN2013/071652 priority patent/WO2014127500A1/en
Priority to EP13875916.2A priority patent/EP2959405A4/en
Publication of WO2014127500A1 publication Critical patent/WO2014127500A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems

Definitions

  • the present disclosure relates to processing search queries.
  • Conventional techniques for processing search queries include keyword searching and word matching.
  • Methods, systems, and computer-readable media are provided for natural language processing based search.
  • a system comprising one or more processors.
  • the system may parse a first search query into one or more search units, wherein a search unit comprises one or more words.
  • the system may identify elements of a knowledge graph corresponding to each of the one or more search units.
  • the system may generate a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree.
  • the system may generate a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph.
  • the system may retrieve a search result from a knowledge graph based at least in part on the first query tree.
  • FIG. 1 shows an information flow diagram in accordance with some implementations of the present disclosure
  • FIG. 5 shows a flow diagram including illustrative steps for partitioning a search query in accordance with some implementations of the present disclosure
  • User device 1602 may be coupled to network 1604 directly through connection 1606, through wireless repeater 1610, by any other suitable way of coupling to network 1604, or by any combination thereof.
  • Network 1604 may include the Internet, a dispersed network of computers and servers, a local network, a public intranet, a private intranet, other coupled computing systems, or any combination thereof.
  • Accelerometer 1712 may be capable of receiving information about the motion characteristics, acceleration characteristics, orientation characteristics, inclination characteristics and other suitable characteristics, or any combination thereof, of user device 1602.
  • Accelerometer 1712 may be a mechanical device, microelectromechanical, or MEMS, device, nanoelectromechanical, or NEMS, device, solid state device, any other suitable sensing device, or any combination thereof.
  • accelerometer 1712 may be a 3-axis piezoelectric microelectromechanical integrated circuit which is configured to sense acceleration, orientation, or other suitable characteristics by sensing a change in the capacitance of an internal structure.
  • Accelerometer 1712 may be coupled to touchscreen 1708 such that information received by accelerometer 1712 with respect to a gesture is used at least in part by processing equipment 1704 to interpret the gesture.
  • GPS receiver 1736 may be capable of receiving signals from global positioning satellites.
  • GPS receiver 1736 may receive information from one or more satellites orbiting the earth, the information including time, orbit, and other information related to the satellite. This information may be used to calculate the location of user device 1602 on the surface of the earth.
  • GPS receiver 1736 may include a barometer, not shown, to improve the accuracy of the location.
  • GPS receiver 1736 may receive information from other wired and wireless communication sources regarding the location of user device 1602. For example, the identity and location of nearby cellular phone towers may be used in place of, or in addition to, GPS data to determine the location of user device 1602.
  • Speaker 1714 and microphone 1716 may be contained within user device 1602, maybe remote devices coupled to user device 1602 by any suitable wired or wireless connection, or any combination thereof.
  • Memory 1726 may include random access memory, or RAM, flash memory, programmable read only memory, or PROM, erasable programmable read only memory, or EPROM, magnetic hard disk drives, magnetic tape cassettes, magnetic floppy disks optical CD-ROM discs, CD-R discs, CD-RW discs, DVD discs, DVD+R discs, DVD-R discs, any other suitable storage medium, or any combination thereof.
  • RAM random access memory
  • PROM programmable read only memory
  • EPROM erasable programmable read only memory
  • EPROM erasable programmable read only memory
  • magnetic hard disk drives magnetic tape cassettes
  • magnetic floppy disks optical CD-ROM discs, CD-R discs, CD-RW discs, DVD discs, DVD+R discs, DVD-R discs, any other suitable storage medium, or any combination thereof.
  • a circuit of transformers, resistors, inductors, capacitors, transistors, and other suitable electronic components included in power supply 1732 may convert the 1620V AC from a wall outlet power to 5 volts at 0 Hz, e.g. , direct current.
  • a lithium-ion battery including a lithium metal oxide- based cathode and graphite-based anode may supply 3.7V to the components of user device 1602.
  • Power supply 1732 may be fully or partially integrated into user device 1602,or mayfunction as a stand-alone device.
  • Power supply 1732 may power user device 1602 directly, may power user device 1602 by charging a battery, may provide power by any other suitable way, or any combination thereof.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Methods, systems, and computer-readable media are provided for natural language processing based search. In some embodiments, a search system may parse a received search query and build a structured search. In some embodiments, building a structure search includes building a phrase tree based on the received search query, and building a query tree based on the phrase tree and data stored in a data structure such as a knowledge graph. In some embodiments, search results are retrieved from the data structure using the query tree. In some embodiments, the search system identifies filter facets and filters search results using query trees and relationships in the data structure.

Description

NATURAL LANGUAGE PROCESSING
BASED SEARCH
Background
The present disclosure relates to processing search queries. Conventional techniques for processing search queries include keyword searching and word matching.
Summary
Methods, systems, and computer-readable media are provided for natural language processing based search.
In some implementations, a first search query is parsed into one or more search units, wherein a search unit comprises one or more words. Elements of a knowledge graph are identified corresponding to each of the one or more search units. A phrase tree is generated by assigning each of the one or more search units to a node or edge of the phrase tree. A query tree is generated with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph. A search result is retrieved from a knowledge graph based at least in part on the first query tree.
In some implementations, a first query tree is generated based at least in part on a first search query, wherein the nodes and edges of the first query tree are associated with elements of a knowledge graph. A first search result is retrieved from the knowledge graph based at least in part on the first query tree. The first search result is provided to a user. A filter query is received, wherein the filter query relates to a refinement of the first search result. A second search query is generated based at least in part on the first search query and the filter query, wherein the second query tree comprises one or more nodes and edges associated with elements of a knowledge graph. The first query tree and the second query tree are compared. Based on the comparison, a search filter is determined. A second search result is provided based at least in part on the first search result and the search filter.
In some implementations, a first search result is provided from a knowledge graph to a user. A filter query is received, wherein the filter query relates to a refinement of the first search result. One or more elements in the knowledge graph associated with the filter query are identified. One or more relationships between the one or more elements in the knowledge graph associated with the filter query and each respective search result of the first plurality of search results are mapped. Based on the one or more relationships, a search filter is determined. A second search result is provided, based at least in part on the first search result and the search filter.
In some implementations, a system comprising one or more processors is provided. The system may parse a first search query into one or more search units, wherein a search unit comprises one or more words. The system may identify elements of a knowledge graph corresponding to each of the one or more search units. The system may generate a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree. The system may generate a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph. The system may retrieve a search result from a knowledge graph based at least in part on the first query tree.
In some implementations, a system comprising one or more processors is provided. The system may generate a first query tree based at least in part on a first search query, wherein the nodes and edges of the first query tree are associated with elements of a knowledge graph. The system may retrieve a first search result from the knowledge graph based at least in part on the first query tree. The system may provide the first search result to a user. The system may receive a filter query, wherein the filter query relates to a refinement of the first search result. The system may generate a second query tree based at least in part on the first search query and the filter query, wherein the second query tree comprises one or more nodes and edges associated with elements of a knowledge graph. The system may compare the first query tree and the second query tree. Based on the comparison, the system may determine a search filter. The system may provide a second search result based at least in part on the first search result and the search filter.
In some implementations, a system comprising one or more processors is provided. The system may provide a first search result from a knowledge graph to a user. The system may receive a filter query, wherein the filter query relates to a refinement of the first search result. The system may identify one or more elements in the knowledge graph associated with the filter query. The system may map one or more relationships between the one or more elements in the knowledge graph associated with the filter query and each respective search result of the first plurality of search results. Based on the one or more relationships, the system may determine a search filter. The system may provide a second search result based at least in part on the first search result and the search filter.
In some implementations, a non-transitory computer-readable media having computer program instructions recorded thereon is provided. The instructions include parsing a first search query into one or more search units, wherein a search unit comprises one or more words. The instructions include identifying elements of a knowledge graph corresponding to each of the one or more search units. The instructions include generating a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree. The instructions include generating a query tree with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph. The instructions include retrieving a search result from a knowledge graph based at least in part on the first query tree.
In some implementations, a non-transitory computer-readable media having computer program instructions recorded thereon is provided. Instructions include generating a first query tree based at least in part on a first search query, wherein the nodes and edges of the first query tree are associated with elements of a knowledge graph. Instructions include retrieving a first search result from the knowledge graph based at least in part on the first query tree. Instructions include providing the first search result to a user. Instructions include receiving a filter query, wherein the filter query relates to a refinement of the first search result. Instructions include generating a second search query based at least in part on the first search query and the filter query, wherein the second query tree comprises one or more nodes and edges associated with elements of a knowledge graph. The first query tree and the second query tree are compared. Instructions include determining a search filter based on the comparison. Instructions include providing a second search result based at least in part on the first search result and the search filter.
In some implementations, a non-transitory computer-readable media having computer program instructions recorded thereon is provided. Instructions include providing a first search result from a knowledge graph to a user. Instructions include receiving a filter query, wherein the filter query relates to a refinement of the first search result. Instructions include identifying one or more elements in the knowledge graph associated with the filter query. Instructions include mapping one or more relationships between the one or more elements in the knowledge graph associated with the filter query and each respective search result of the first plurality of search results. Instructions include determining a search filter based on the one or more relationships. Instructions include providing a second search result, based at least in part on the first search result and the search filter.
Brief Description of the Figures
FIG. 1 shows an information flow diagram in accordance with some implementations of the present disclosure;
FIG. 2 shows an illustrative knowledge graph portion containing nodes and edges in accordance with some implementations of the present disclosure;
FIG. 3 shows another illustrative knowledge portion in accordance with some implementations of the present disclosure;
FIG. 4 shows another illustrative knowledge portion in accordance with some implementations of the present disclosure;
FIG. 5shows a flow diagram including illustrative steps for partitioning a search query in accordance with some implementations of the present disclosure;
FIG. 6shows illustrative natural language processing in accordance with some implementations of the present disclosure;
FIG. 7shows illustrative tree topologies in accordance with some implementations of the present disclosure; FIG. 8shows an illustrative phrase tree in accordance with some implementations of the present disclosure;
FIG. 9 shows an illustrative query tree in accordance with some implementations of the present disclosure;
FIG. lOshows a flow diagram including illustrative steps for generating a query tree in accordance with some implementations of the present disclosure;
FIG. 11 shows an illustrative user interface with search filters in accordance with some implementations of the present disclosure;
FIG. 12 shows an illustrative filter query tree in accordance with some implementations of the present disclosure;
FIG. 13 shows an illustrative user interface with filtered results in accordance with some implementations of the present disclosure;
FIG. 14shows a flow diagram including illustrative steps for filtering search results in accordance with some implementations of the present disclosure;
FIG. 15shows a flow diagram including illustrative steps for providing filtered search results in accordance with some implementations of the present disclosure;
FIG. 16 shows an illustrative computer system that may be used to implement some or all features of the search system in accordance with some implementations of the present disclosure; and
FIG. 17 is a block diagram of a user device in accordance with some implementations of the present disclosure.
Detailed Description of the Figures
In some implementations, a search system may provide search results from a data structure or other index based on a received search query. For example, an internet search engine may retrieve webpage links from an index built based on data from the internet. In some implementations, a natural language search query may not retrieve relevant search results, as it is not structured with knowledge of the data structure or index being searched. In some implementations, a search system may interpret a natural language search query and build a structured search based on that interpretation, where the structured query is used to search a data structure or index.
In some implementations, a search system provides a large number of results. In some implementations, filtering or refining the search results is based on the contents of the search results, receiving additional search queries, or other techniques. In some implementations, it may be desirable to provide a user with filter categories for facets, as the user may not be aware of the most useful filters. In some implementations, the search system may receive a second search query, for example, from a user. The second search query is used to search for filters that can be applied to the search results, i some implementations, filters are identified and applied based on the relationships between data in a data structure.
The following description and accompanying FIGS. 1-17 provide additional details and features of some implementations of the search system.
FIG. 1 shows information flow diagram lOOin accordance with some implementations of the present disclosure. The information flow diagram includes processing block 108, query block 102, data structure block 104, content block 106 and search results block 110. In some implementations, the search system uses information from data structure block 104, content block 106, other sources not shown, or any combination thereof, to generate an output to search results block llObased on a query received in query block 102.
Query block 102 includes a search query provided to processing block 108. In some implementations, the search query is a query received from a user. In some implementations, search queries are directed towards internet searches, text searches, image searches, database searches, searches of any other suitable index, searchers of any other suitable collection of content, or any combination thereof. In some implementations, a search query is used to query a data structure such as data structure block 104, webpages of content block 106, any other suitable data, or any combination thereof. In some implementations, the search query is text-based, image-based, audio-based, of any other suitable format, or any combination thereof. In an example, the search query is a text-based search for webpages. In another example, the search query is an image-based search for images. In some implementations, search queries are received from other applications, for example, a calendar program or web browser, from any other suitable source, or any combination thereof. For example, a search query may include data received from a calendar application.
In some implementations, search results related to the search query may be retrieved in search query block 102, may be retrieved in processing block 108, may be retrieved in any other suitable process, or any combination thereof. In an example, search results from a data structure such as data structure blockl04 are determined by processing block 108. In another example, search results from a search of content block 106 may be retrieved by processing block 108. In some implementations, the generating search results are retrieved from data stored in data structure 104.
Data structure block 104 includes a data structure containing structured or otherwise organized, information. In some implementations, search results are retrieved from data structure block 104. In some implementations, metrics are determined based on data stored in data structure block 104. In some implementations, data structure block 104 contains a data graph, a database, an index, any other suitable collection of content, or any combination thereof. In an example, data structure block 104 includes a collection of data stored as nodes and edges in a graph structure. In some implementations, data structure block 104 includes a knowledge graph. In some implementations, a knowledge graph includes data organized in a graph containing nodes and edges. The data of a knowledge graph may include states about relationships between things and concepts, and those statements may be represented as nodes and edges of a graph. The nodes of a knowledge graph each contain a piece or pieces of data and the edges represent relationships between the data contained in the nodes that the edges connect. A particular implementation of a knowledge graph, is described below in FIGS. 2-4
Content block 106 includes web sites and other suitable content. In an example, content block 106 includes webpages on the internet containing text, images, videos, links, other suitable content, or any combination thereof. In some implementations, content block 106 includes information from a database, private intranet, public network, private network, any other suitable collection of information, or any combination thereof.
In some implementations, processing block 108 includes an index, list, table, or other suitable data determined based on the content of content block 106. In an example, processing block 108 includes an index of webpages from content block 106 that may be used, for example, for search.
Processing block 108 includes processing steps for processing of a search query, filtering search results, determining search filters, other suitable processing steps, or any combination thereof, i some implementations, steps performed by processing block 108 are described below in reference to the flow diagrams of FIGS. 10, 14, and 15. In some implementations, processing block 108 includes steps for parsing a search query received from query block 102. Elements associated with the parsed query are identified in data structure blockl04. The parsed query and the identified data structure elements are used to build a structured search. In some implementations, the structured search is referred to as a query tree. In some implementations, the query tree is used to retrieve search results from data structure block 104, content block 106, from any other suitable source, or any combination thereof.
In an example, query block 102 may contain the query [Tom Hanks Movies]. In some implementations, processing block 108 divides the query into [Tom Hanks] and [Movies] . In some implementations, the search system identifies elements of a data structure block 104 associated with each of the search units. In some implementations, a query tree is generated based on the terms "Tom Hanks" and "Movies" and the identified elements of data structure block 104.
In some implementations, processing block 108 includes processing steps for determining search filters. In some implementations, the search filters are generated based on a received filter query, that is, a second search term intended to refine search results. In some implementations, the search system may use the query tree defined in retrieving the search results to determine search filters. In some implementations, search filters are determined based on relationships between the received filter query and the search results as defined in data structure blockl04. In some implementations, the filters are used to refine search results, and the results are output to search results block 110. Search results block llOincludes the output of processing block 108. In some implementations, search results include results of a search of data stored in data structure block 104, an index of content block 106, a search of any other suitable content, or any combination thereof. In some implementations, search results of search results block HOare presented to a user, for example, using the display screen of a computer and/or a speaker. In some implementations, search filters determined by processing block 108 are used to refine and/or update the displayed search results. In some implementations, search results are presented based on their relevance. In some implementations, presentation techniques may include visual techniques, audio techniques, any other suitable techniques, or any combination thereof.
The following description and accompanying FIGS. 2-4 described an illustrative data structure referred to herein as a knowledge graph that may be used with some implementations of the present disclosure. In some implementations, the knowledge graph is a particular implementation of the data included in data structure block 104. It will be understood that the knowledge graph is merely an example of a data structure that may be used by the search system, and that any suitable data structure may be used.
In some implementations, data may be organized in a database using any one or more data structuring techniques. For example, data may be organized in a graph containing nodes connected by edges. In some implementations, the data may include statements about relationships between things and concepts, and those statements may be represented as nodes and edges of a graph. The nodes each contain a piece or pieces of data and the edges represent relationships between the data contained in the nodes that the edges connect. In some implementations, the graph includes one or more pairs of nodes connected by an edge. In some implementations, the edge, and thus the graph, may be directed, undirected, or both. In an example, directed edges form a unidirectional connection. In an example, undirected edges form bidirectional connections. In an example, a combination of both directed and undirected edges may be included in the same graph. Nodes may include any suitable data or data representation. Edges may describe any suitable relationships between the data. In some implementations, an edge is labeled or annotated, such that it includes both the connection between the nodes, and descriptive information about that connection. A particular node may be connected by distinct edges to one or more other nodes, or to itself, such that an extended graph is formed. For purposes of clarity, a graph based on the structure described immediately above is referred to herein as a knowledge graph. In some implementations, the knowledge graph may be a useful for representing information and in providing information in search.
FIG. 2 shows illustrative knowledge graph portion200 containing nodes and edges in accordance with implementations of the present disclosure. Illustrative knowledge graph portion 200 includes nodes 202, 204, 206, and 208. Knowledge graph portion 200 includes edge 210 connecting node 202 and node 204. Knowledge graph portion 200 includes edge 212 connecting node 202 and node 206. Knowledge graph portion 200 includes edge 214connecting node 204 and node 208. Knowledge graph portion 200 includes edge 216 and edge 218 connecting node 202 and node 208. Knowledge graph portion200 includes edge 220 connecting node 208 to itself. Each aforementioned group of an edge and one or two distinct nodes may be referred to as a triple or 3 -tuple. As illustrated, node 202 is directly connected by edges to three other nodes, while nodes 204 and 208 are directly connected by edges to two other nodes. Node 206 is connected by an edge to only one other node, and in some implementations, node 206 is referred to as a terminal node. As illustrated, nodes 202 and 208 are connected by two edges, indicating that the relationship between the nodes is defined by more than one property. As illustrated, node 208 is connected by edge 220 to itself, indicating that a node may relate to itself. While illustrative knowledge graph portion200 contains edges that are not labeled as directional, it will be understood that each edge may be unidirectional or bidirectional. It will be understood that this example of a graph is merely an example and that any suitable size or arrangement of nodes and edges may be employed.
Generally, nodes in a knowledge graph can be grouped into several categories. Nodes may represent entity references, organizational data such as entity types and properties, literal values, and models of relationships between other nodes.
In some implementations, entity types, properties, and other suitable content is created, defined, redefined, altered, or otherwise generated by any suitable technique. For example, content may be generated by manual user input, by automatic responses to user interactions, by importation of data from external sources, by any other suitable technique, or any combination thereof. For example, if a commonly searched for term is not represented in the knowledge graph, one or more nodes representing that node may be added. In another example, a user may manually add information and organizational structures.
A node of a knowledge graph may represent an entity. An entity is a thing or concept that is singular, unique, well-defined and distinguishable. For example, an entity may be a person, place, item, idea, abstract concept, concrete element, other suitable thing, or any combination thereof. It will be understood that in some implementations, the knowledge graph contains an entity reference, and not the physical embodiment of the entity. For example, an entity may be the physical embodiment of George Washington, while an entity reference is an abstract concept that refers to George Washington. In another example, the entity "New York City" refers to the physical city, and the knowledge graph uses a concept of the physical city as represented by, for example, an element in a data structure, the name of the entity, any other suitable element, or any combination thereof. Where appropriate, based on context, it will be understood that the term entity as used herein may correspond to an entity reference, and the term entity reference as used herein may correspond to an entity.
Nodes are unique, in that no two nodes refer to the same thing or concept. Generally, entities include things or concepts represented linguistically by nouns. For example, the color "Blue," the city "San Francisco," and the imaginary animal "Unicorn" may each be entities. An entity reference generally refers to the concept of the entity. For example, the entity reference "New York City" refers to the physical city, and the knowledge graph uses a concept of the physical city as represented by, for example, an element in a data structure, the name of the entity, any other suitable element, or any combination thereof.
A node representing organizational data may be included in a knowledge graph. These may be referred to herein as entity type nodes. As used herein, an entity type node may refer to a node in a knowledge graph, while an entity type may refer to the concept represented by an entity type node. An entity type may be a defining characteristic of an entity reference. For example, entity type node Y may be connected to an entity node X by an "Is A" edge or link, discussed further below, such that the graph represents the information "The Entity X Is Type Y." For example, the entity reference node "George Washington" may be connected to the entity type node "President. " An entity reference node may be connected to multiple entity type nodes, for example, "George Washington" may also be connected to entity type node "Person" and to entity type node "Military Commander." In another example, the entity type node "City" may be connected to entity reference nodes "New York City" and "San Francisco." In another example, the concept "Tall People," although incompletely defined, for example the knowledge graph may not necessarily include a strict definition of "tall," may exist as an entity type node in the knowledge graph anyway. In some implementations, the presence of the entity type node "Tall People," and other entity type nodes, may be based on user interaction.
In some implementations, an entity type node may include or be connected to data about: a list of properties associated with that entity type node, the domain to which that entity type node belongs, descriptions, values, any other suitable information, or any combination thereof. A domain refers to a collection of related entity types. For example, the domain "Film" may include, for example, the entity types "Actor," "Director," "Filming Location," "Movie," any other suitable entity type, or any combination thereof. In some implementations, entities are associated with types in more than one domain. For example, the entity reference node "Benjamin Franklin" may be connected with the entity type node "Politician" in the domain "Government" as well as the entity type node "Inventor" in the domain "Business".
In some implementations, properties associated with entity reference nodes or entity type nodes may also be represented as nodes. For example, nodes representing the property "Population" or "Location" may be connected to the entity type node "City." The combination and/or arrangement of an entity type and its properties is referred to as a schema. In some implementations, schemas are stored in tables or other suitable data structures associated with an entity type node, i some implementations, the knowledge graph may be self-defining or bootstrapping, such that it includes particular nodes and edges that define the concept of nodes, edges, and the graph itself. For example, the knowledge graph may contain an entity reference node "Knowledge Graph" that is connected to property nodes that describe a knowledge graph's properties such as "Has Nodes" and "Has Edges."
Specific values, in some implementations referred to as literals, may be associated with a particular entity reference in a terminal node by an edge defining the relationship. Literals may refer to values and/or strings of information. For example, literals may include dates, names, and/or numbers. In an example, the entity reference node "San Francisco" may be connected to a terminal node containing the literal "815,000" by an edge annotated with the property "Has Population." In some implementations, terminal nodes may contain a reference or link to long text strings and other information stored in one or more documents external to the knowledge graph. In some implementations, literals are stored as nodes in the knowledge graph. In some implementations, literals are stored in the knowledge graph but are not assigned a unique identification reference as described below, and are not capable of being associated with multiple entities, hi some implementations, literal type nodes may define a type of literal, for example "Date/Time," "Number," or "GPS Coordinates."
In some implementations, the grouping of an edge and two nodes is referred to as a triple. The triple represents the relationship between the nodes, or in some implementations, between the node and itself. In some implementations, higher order relationships are modeled, such as quaternary and «-ary relationships, where n is an integer greater than 2. In some implementations, information modeling the relationship is stored in a node, which may be referred to as a mediator node. In an example, the information "Person X Donates Artifact Y To Museum Z" is stored in a mediator node connected entity reference nodes to X, Y, and Z, where each edge identifies the role of each respective connected entity reference node.
In some implementations, the knowledge graph may include information for differentiation and disambiguation of terms and/or entities. As used herein, differentiation refers to the many-to-one situation where multiple names are associated with a single entity reference. As used herein, disambiguation refers to the one-to-many situation where the same name is associated with multiple entities. In some implementations, nodes may be assigned a unique identification reference. In some implementations, the unique identification reference may be an alphanumeric string, a name, a number, a binary code, any other suitable identifier, or any combination thereof. The unique identification reference may allow the system to assign unique references to nodes with the same or similar textual identifiers. In some implementations, the unique identifiers and other techniques are used in differentiation, disambiguation, or both.
In some implementations of differentiation, a node may be associated with multiple terms or differentiation aliases in which the terms are associated with the same entity reference. For example, the terms "George Washington," "Geo. Washington," "President Washington," and "President George Washington" may all be associated with a single entity reference, for example a node in the knowledge graph. This may provide differentiation and simplification in the knowledge graph.
In some implementations of disambiguation, multiple nodes with the same or similar names are defined by their unique identification references, by associated nodes in the knowledge graph, by any other suitable information, or any combination thereof. For example, there may be an entity reference node related to the city "Philadelphia," an entity reference node related to the movie "Philadelphia," and an entity reference node related to the cream cheese brand "Philadelphia." Each of these nodes may have a unique identification reference, stored for example as a number, for disambiguation within the knowledge graph. In some implementations, disambiguation in the knowledge graph is provided by the connections and relationships between multiple nodes. For example, the city "New York" may be disambiguated from the state "New York" because the city is connected to an entity type "City" and the state is connected to an entity type "State." It will be understood that more complex relationships may also define and disambiguate nodes. For example, a node may be defined by associated types, by other entities connected to it by particular properties, by its name, by any other suitable information, or any combination thereof. These connections may be useful in disambiguating, for example, the node "Georgia" that is connected to the node "United States" may be understood represent the U.S. State, while the node "Georgia" connected to the nodes "Asia" and "Eastern Europe" may be understood to represent the country in eastern Europe.
In some implementations, a node may include or connect to data defining one or more attributes. The attributes may define a particular characteristic of the node. The particular attributes of a node may depend on what the node represents. In some implementations, an entity reference node may include or connect to: a unique identification reference, a list of entity types associated with the node, a list of differentiation aliases for the node, data associated with the entity reference, a textual description of the entity, links to a textual description of the entity, other suitable information, or any combination thereof. As described above, nodes may contain a reference or link to long text strings and other information stored in one or more documents external to the knowledge graph. In some implementations, the storage technique may depend on the particular information. For example, a unique identification reference may be stored within the node, a short information string may be stored in a terminal node as a literal, and a long description of an entity may be stored in an external document linked to by a reference in the knowledge graph.
An edge in a knowledge graph may represent a semantic connection defining a relationship between two nodes. The edge may represent a prepositional statement such as "Is A," "Has A," "Is Of A Type," "Has Property," "Has Value," any other suitable statement, or any combination thereof. For example, the entity reference node of a particular person may be connected by a "Date Of Birth" edge to a terminal node containing a literal of his or her specific date of birth. In some implementations, the properties defined by edge connections of an entity reference may relate to nodes connected to the type of that entity reference. For example, the entity type node "Movie" may be connected to entity reference nodes "Actor" and "Director," and a particular movie may be connected by an edge property "Has Actor" to an entity reference node representing a particular actor.
In some implementations, nodes and edges define the relationship between an entity type node and its properties, thus defining a schema. For example, an edge may connect an entity type node to a node associated with a property, which may be referred to as a property node. Entities of the type may be connected to nodes defining particular values of those properties. For example, the entity type node "Person" may be connected to property node "Date of Birth" and a node "Height." Further, the node "Date of Birth" may be connected to the literal type node "Date/Time," indicating that literals associated with "Date of Birth" include date/time information. The entity reference node "George Washington," which is connected to entity type node "Person" by an "Is A" edge, may also be connected to a literal "Feb 22, 1732" by the edge "Has Date Of Birth." In some implementations, the entity reference node "George Washington" is connected to a "Date Of Birth" property node. It will be understood that in some implementations, both schema and data are modeled and stored in a knowledge graph using the same technique. In this way, both schema and data can be accessed by the same search techniques. In some implementations, schemas are stored in a separate table, graph, list, other data structure, or any combination thereof. It will also be understood that properties may be modeled by nodes, edges, literals, any other suitable data, or any combination thereof.
For example, the entity reference node "George Washington" may be connected by an "Is A" edge to the entity type node representing "Person," thus indicating an entity type of the entity reference, and may also be connected to a literal "Feb 22, 1732" by the edge "Has Date Of Birth," thus defining a property of the entity reference. In this way, the knowledge graph defines both entity types and properties associated with a particular entity reference by connecting to other nodes, i some implementations, "Feb 22, 1732" may be a node, such that it is connected to other events occurring on that date. In some implementations, the date may be further connected to a year node, a month node, and a day of node. It will be understood that this information may be stored in any suitable combination of literals, nodes, terminal nodes, interconnected entities, any other suitable arrangement, or any combination thereof.
FIG. 3 shows an illustrative knowledge graph portion 300in accordance with some implementations of the present disclosure. Knowledge graph portion 300 includes information related to the entity reference "George Washington," represented by "George Washington" node 302. "George Washington" node 302 is connected to "U.S. President" entity type node 304 by "Is A" edge 314 with the semantic content "Is A," such that the 3-tuple defined by nodes 302 and 304 and the edge 314 contains the information "George Washington is a U.S. President." Similarly, the information "Thomas Jefferson Is A U.S. President" is represented by the tuple of "Thomas Jefferson" node 310, "Is A" edge 320, and "U.S. President" node 304. Knowledge graph portion 300 includes entity type nodes "Person" 324, and "U.S. President" node 304. The person type is defined in part by the connections from "Person" node 324. For example, the type "Person" is defined as having the property "Date Of Birth" by node 330 and edge 332, and is defined as having the property "Gender" by node 334 and edge 336. These relationships define in part a schema associated with the entity type "Person."
"George Washington" node 302 is shown in knowledge graph portion 300 to be of the entity types "Person" and "U.S. President," and thus is connected to nodes containing values associated with those types. For example, "George Washington" node 302 is connected by "Has Gender" edge 318 to "Male" node 306, thus indicating that "George Washington has gender "Male." Further, "Male" node 306 may be connected to the "Gender" node 334 indicating that "Male Is A Type Of Gender." Similarly, "George Washington" node 302 is be connected by "Has Date of Birth" edge 316 to "Feb 22, 1732" node 308, thus indicating that "George Washington Has Date Of Birth Feb 22, 1732. ""George Washington" node 302 may also be connected to "1789" node 328 by "Has Assumed Office Date" edge 330.
Knowledge graph portion 300 also includes "Thomas Jefferson" node 310, connected by "Is A" edge 320 to entity type "U.S. President" node 304 and by "Is A" edge 328 to "Person" entity type node 324. Thus, knowledge graph portion 300 indicates that "Thomas Jefferson" has the entity types "U.S. President" and "Person." In some implementations, "Thomas Jefferson" node 310 is connected to nodes not shown in FIG. 3 referencing his date of birth, gender, and assumed office date.
It will be understood that knowledge graph portion 300 is merely an example and that it may include nodes and edges not shown. For example, "U.S. President" node 304 may be connected to all of the U.S. Presidents. "U.S. President" node 304 may also be connected to properties related to the entity type such as a duration of term, for example "4 Years," a term limit, for example "2 Terms," alocation of office, for example "Washington D.C.," any other suitable data, or any combination thereof. For example, "U.S. President" node 304 is connected to "Assumed Office Date" node 338 by "Has Property" edge 340, defining in part a schema for the type "U.S. President." Similarly, "Thomas Jefferson" node 310 may be connected to any suitable number of nodes containing further information related to his illustrated entity type nodes "U.S. President," and "Person," and to other entity type nodes not shown such as "Inventor," "Vice President," and "Author." In a further example, "Person" node 324 may be connected to all entities in the knowledge graph with the type "Person. " i a further example, "1789" node 328 may be connected to all events in the knowledge graph with the property of year "1789. "" 1789" node 328 is unique to the year 1789, and disambiguated from, for example, a book entitled "1789," not shown in FIG. 3, by its unique identification reference. In some implementations, "1789" node 328 is connected to the entity type node "Year."
FIG. 4 shows another illustrative knowledge graph portion 400 in accordance with some implementations of the present disclosure. Knowledge graph portion 400 includes "California" node 402, which may also be associated with differentiation aliases such as, for example, "CA,""Calif," "Golden State," any other suitable differentiation aliases, or any combination thereof. In some implementations, these differentiations are stored in "California" node 402. California is connected by "Is A" edge 404 to the "U.S. State" entity type node 406. "New York" node 410 and "Texas" node 414 are also connected to "U.S. State" node 406 by "Is A" edges 408 and 412, respectively. "California" node 402 is connected by "Has Capital City" edge 420 to "Sacramento" node 422, indicating the information that "California Has Capital City Sacramento." Sacramento node 422 is further connected by "Is A" edge 424 to the "City" entity type node 426. Similarly, "Texas" node 414 is connected by "Has City" edge 420 to "Houston" node 428, which is further connected to the "City" entity type node 426 by "Is A" edge 340. "California" node 402 is connected by "Has Population" edge 416 to node 418 containing the literal value "37,691,912." In an example, the particular value "37,691,912" may be periodically automatically updated by the knowledge graph based on an external website or other source of data. Knowledge graph portion 400 may include other nodes not shown. For example, "U.S. State" entity type node 406 maybe connected to nodes defining properties of that type such as "Population" and "Capital City." These type— property relationships may be used to define other relationships in knowledge graph portion 400 such as "Has Population" edge 416 connecting entity reference node "California" 402with terminal node 418 containing the literal defining the population of California.
It will be understood that while knowledge graph portion 300 of FIG. 3 and knowledge graph portion 400 of FIG. 4 below show portions of a knowledge graph, all pieces of information may be contained within a single graph and that these selections illustrated herein are merely an example. In some implementations, separate knowledge graphs are maintained for different respective domains, for different respective entity types, or according to any other suitable delimiting characteristic. In some implementations, separate knowledge graphs are maintained according to size constraints. In some implementations, a single knowledge graph is maintained for all entities and entity types.
A knowledge graph may be implemented using any suitable software constructs. In an example, a knowledge graph is implemented using object oriented constructs in which each node is an object with associated functions and variables. Edges, in this context, may be objects having associated functions and variables, hi some implementations, data contained in a knowledge graph, pointed to by nodes of a knowledge graph, or both, is stored in any suitable one or more data repositories across one or more servers located in one or more geographic locations coupled by any suitable network architecture.
FIG. 5 shows flow diagram 500 including illustrative steps for partitioning a search query in accordance with some implementations of the present disclosure. In some implementations, a received search request may be partitioned one or more times.
Step 510 includes received search request 512 including the string [Wordl Word2 Word3 Word4 Word5 Word6 Word7 Word8 Word9]. In some implementations, the search system partitions this search request into, for example, two shorter search queries. It will be understood that in some implementations, the system need not partition received search request 512, and thus the received search request is used as partitioned search query 522. Step 520 includes partitioned search query 522 including the string [Wordl Word2 Word3] and partitioned search query 524 including the string [Word4 Word5 Word6 Word7 Word8 Word9] . In some implementations, the system partitions a search query to, for example, separate concepts that will be analyzed by the system separately. It will be understood that the received search request may be partitioned into any suitable number of search queries. It will also be understood that step 520 is optional and that a received search query need not be partitioned. It will also be understood that a search query may include all of the words and/or elements of the received search query. It will also be understood that partitions may overlap, be non-consecutive, and be non-contiguous, such that any suitable words and/or elements from a received search query may be used to form a partitioned search query. For example, a word in a received search request may not be used in any search query. In another example, a particular word in a received search request may be used in two partitioned search queries.
Step 530 includes search query 532. In some implementations, partitioned search query 532 is generated based on the partitioning in step 520. In the illustrated example, search query 532 corresponds to partitioned search query 522.
Step 540 illustrates parsing of search query 532 into first search unit 542 including the string [Wordl] and into second search unit 544 including the string [Word2 Word3]. As used herein, parsing refers to dividing and/or segmenting search queries into search units that correspond to entities, for example, in a knowledge graph. For example, the query [Tom Hanks Movies] may be parsed into the search units [Tom Hanks] and [Movies]. It will be understood that any suitable parsing of a search query into search units may be used. In some implementations, partitioning of a received search request into one or more search partitioned search queries and/or parsing of a search query into one or more search units includes any suitable processing techniques. For example, processing may include natural language processing, described below, keyword matching, aggregated user selection data, predetermined parameters, any other suitable processing techniques, or any combination thereof. In some implementations, search queries and/or search units are compared to data in a knowledge graph or other suitable data structure. In some implementations, multiple arrangements of the partitions for partitioning search queries and/or the divisions for parsing search units are generated, a score is determined for each, and the best arrangement and/or division is selected based on the score. For example, the search query of step 530 can be parsed in 4 ways: [Wordl | Word2 Word3], [Wordl Word2 | Word3], [Wordl | Word2 | Word3], and [Wordl Word2 Word3], where the "|" character represents the divisions between the parsed search units. In the example, entities associated with the parsed search units may be identified in the knowledge graph and the best parsing of the search units may be selected based on popularity or any other suitable metric. For example, where the string is [Tom Hanks Movies], the search system may identify the presence of a [Tom Hanks] entity reference in the knowledge graph and use that information to parse the search query as [Tom Hanks | Movies] rather than identifying separate related entities for "Tom" and "Hanks."
FIG. 6 shows illustrative natural language processing diagram 600in accordance with some implementations of the present disclosure, i some implementations, the search system uses natural language processing to parse a search query into one or more search units. In some implementations, the search units are a word or phrase. In an example, a search query may include search query 532 of FIG. 5 and may be parsed by natural language processing into search units 542 and 544 of FIG. 5.
In some implementations, diagram 600 shows natural language processing of the search query [Tom Hanks Movies in 2010]. In some implementations, the search system may divide the query into search units [Tom Hanks]604, [Movies] 602, [In]606 and [2010] 608. In some implementations, the search system may divide the search query based on a phrase dictionary, search history, user preferences, predetermined parameters, system settings, any other suitable parameters, or any combination thereof.
In some implementations, the search system may determine the part of speech of each search unit. For example, the search system may determine that [Movies] 602 is a common noun, [Tom Hanks] 604 is a proper noun, [In] 606 is a preposition, and [2010] 608 is a number. It will be understood that this particular part of speech notation is merely exemplary and that any suitable identification and notation may be used.
In some implementations, the search system may determine the semantic function and/or dependency of the search unit in the search query. For example, the search system may determine that [Movies] 602 is the root of the query, [Tom Hanks] 604 is a noun modifier in that it modifies the root, [In] 606 is a preposition, and [2010] 608 is the object of the preposition. In some implementations, the search system may assign directional relationships between the search units as illustrated in diagram 600. For example, [In] 606 and [Tom Hanks] 604 may be child nodes of the root [Movies] 602, and 2010 may be a child of [In] 606. In some implementations, the arrows of natural language processing diagram 600 indicate the dependencies. In some implementations, natural language processing may be used to identify related entities in a knowledge graph, may use information from the knowledge graph, may relate to the knowledge graph in any suitable way, may use data from data structure block 104 of FIG. 1, or any combination thereof. It will also be understood that the search system may perform natural language processing without relying on the knowledge graph.
FIG. 7 shows illustrative tree topologies in accordance with some implementations of the present disclosure. In some implementations, the search system generates one or more topologies that may be related to the search units. For example, the search system generates topologies with the same number of nodes as search units identified by natural language processing. In some implementations, the tree topologies may include a tree topology of the dependency identified by natural language processing. In some implementations, tree topologies are generated randomly. In some implementations, the number of nodes may not be equal to the number of search units. For example, the search system may omit the articles "a" and "the"in determining the number of nodes.
The tree topologies of FIG. 7 show four possible arrangements of a four node tree. Tree topology 700 shows a root node with three child nodes. Tree topology 710 shows a linear topology. Tree topology 720 shows a root node with two branches. The first branch includes a child node with a grandchild node, with respect to the root. The second branch includes a child node. Tree topology 730 shows a root node with two branches. The first branch includes a child node. The second branch includes a child node with a grandchild node, with respect to the root.
In some implementations, the search system populates the nodes of the various tree topologies with search units. In some implementations, the search system generates a score for each topology and selects a desired topology based on those scores. The search system may generate scores and/or select a topology based on data in the knowledge graph, based on natural language processing, based on any other suitable technique, or any combination thereof.
In some implementations, scores are generated based on relationships between the nodes in the tree topology and data in the knowledge graph. For example, if populating a tree topology with search units indicates a connection between two search units that have no corresponding connection in the knowledge graph, that topology may be assigned a relatively lower score. For example, if populating a tree topology results in a connection between [Tom Hanks] and [Movies], and there is a corresponding connection in the knowledge graph between a [Tom Hanks] entity reference and a [Movies type], that tree topology may be assigned a relatively higher score. In the example, if a particular population of a tree topology results in a connection between two entity references for which there is not a corresponding connection in the knowledge graph, for example, [Tom Hanks] and [U.S. Presidents] that topology may be assigned a lower score. In some implementations, scores for topologies are determined based on a strength of connection or other confidence metric. For example, the connections [Tom Hanks]— [Movies] and [Tom Hanks]— [2010] may both exist in the knowledge graph, however the system may determine that the [Tom Hanks]— [Movies] connection is stronger. This determination may be based on the uniqueness of the connection, for example, many person-type entity references may be connected to the node [2010], while a relatively smaller number of person-type entity references are connected to [Movies], indicating that the connection to movies is stronger. In another example, [Movies] and [Tom Hanks] may share a relatively large number of mutual knowledge graph connections, while [2010] and [Tom Hanks] share relatively less mutual connections.
In another example, natural language processing is used to score and select a tree topology. In some implementations, natural language processing may correspond to the processing described in natural language processing diagram 600 of FIG. 6. For example, if parts of speech are assigned to tree topologies that result in more logical or grammatically correct language, that topology may receive a higher score. In an example, the preposition [in] connecting a root with an object of a preposition, thus resulting in the terms [Movies in 2010], may receive a higher score than the preposition [in] connecting a root and a noun modifier, thus resulting in the terms [Movies in Tom Hanks]. In another example, the system may determine that a tree topology that places a preposition as a child node without any grandchild would result in a grammatically incorrect structure such as [Movies Tom Hanks In]. In some implementations, the system may determine that for the natural language query [Tom Hanks Movies in 2010], tree topology 730 is the desired topology based on natural language processing.
FIG. 8 shows illustrative phrase tree 800in accordance with some implementations of the present disclosure. In some implementations, the phrase tree may be generated by assigning search units to a tree topology. In some implementations, a tree topology was selected as described in relation to FIG. 7. For example, the search units of diagram 600 may be assigned to tree topology 730 to generate phrase tree 800. The search unit [Movies] is assigned to root node 802. The search unit [Tom Hanks] is assigned to child node 804. The search unit [In] is assigned to edge 806. The search unit [2010] is assigned to grandchild node 808. It will be understood that in some implementations, nodes of tree topologies may be associated with edges or nodes in a phrase tree, e.g. , edge 806. In some implementations, the dependencies identified by natural language processing relates to the structure of the phrase tree. It will be understood this is merely exemplary and that in some implementations, other techniques may be used.
It will be understood that phrase tree 800 is merely exemplary and that any suitable tree may be generated based on any suitable search query. It will also be understood that in some implementations, the query tree is a theoretical construct and that the search system, while relying on the relationships described by the phrase tree, does not use a graphical representation as shown in FIG. 8.
FIG. 9 shows an illustrative query tree in accordance with some implementations of the present disclosure. In some implementations, the search system generates one or more query trees based on one or more phrase trees. In some implementations, a query tree will have an identical topology as a corresponding phrase tree. In some implementations, the search system identifies data in the knowledge graph associated with each of the search units assigned to a phrase tree. The search system generates a query tree by placing the knowledge graph data, or a reference to the data, in a location on the query tree corresponding to the related search unit's location on a phrase tree.
Query tree 900 includes a query tree that relates to phrase tree 800 of FIG. 8. Query tree 900 includes "Type: Film" root node 902. In some implementations, root node 902 corresponds to "Movies" root node 802 of FIG. 8. i some implementations, the search system may identify based on data in the knowledge graph that the search unit [Movies] relates to the knowledge graph entity type "Film." The search system may build a query tree where the root node is associated with the "Film" entity reference of the knowledge graph. In some implementations, the query tree may also include unique identification references associated with related knowledge graph nodes, strings, values, node relationship information, any other suitable information, or any combination thereof.
Query tree 900 includes "Entity: Tom Hanks" node 906 connected to root node 902 by "Property: Film Performed By" edge 904. Similar to the root node, node 906 may be assigned based on the identification knowledge graph data associated with phrase tree node 804. Query tree 900 includes "Value:2010" node 910, connected to root node 902 by "Property: Release Date" edge 908. Node 910 may be associated with, for example, a terminal node containing the literal "2010" in the knowledge graph. It will be understood that query tree 900 is merely exemplary and that any suitable query tree may be generated based on any suitable search query.
In some implementations, the search system may identify related knowledge graph data based on popularity, system settings, user preferences, predetermined parameters, ranked lists, relationships with other search units, any other suitable information, or any combination thereof. For example, the search system may assign the famous actor "Tom Hanks" to node 906 rather than "Tom Hanks" the seismologist because of an aggregated popularity score associated with the actor. In some implementations, "Tom Hanks" the actor may be selected due to the word "Movies" in the search query. In some implementations, a search query for "Tom Hanks Earthquake" may result in the search unit "Tom Hanks" being associated with "Tom Hanks" the seismologist in the knowledge graph. In another example, where "Tom Hanks" is the only search unit, the search system may rely on a popularity score.
In some implementations, the search system may assign information to the edges of the query tree based on relationships in the knowledge graph between knowledge graph nodes related to the query tree nodes. For example, the search system may identify a "Tom Hanks" entity reference in the knowledge graph and a "Film" entity type in the knowledge graph. The search system may determine that the relationship between the knowledge graph nodes is "Film Performed By." The search system may assign "Film Performed By" to edge 904 of the query tree. In some implementations, edges of the query tree may be assigned based on knowledge graph relationships, knowledge graph properties, search units, related search queries, user input, user preferences, system settings, predetermined parameters, any other suitable information, or any combination thereof.
In some implementations, several query trees may be generated based on several phrase trees. In some implementations, query trees may be generated for multiple tree topologies. In some implementations, a topology may be selected based on the relationships identified between nodes of the knowledge graph. Thus, if the topology of a query tree requires a relationship to be assigned between two nodes that are not related or are weakly related in a knowledge graph, the search system may consider that tree topology to be less favorable than a topology where the unrelated nodes are on separate branches of the tree. In some implementations, the search system assigns a score to each generated query tree and selects the tree with the most desirable score. In some implementations, the score is based on relationships in the knowledge graph between associated nodes, aggregated user selection data, system settings, predetermined parameters, any other suitable information, or any combination thereof. For example, a higher score may be assigned to a query tree including edge properties that are more commonly accessed and/or more popular in the knowledge graph than a less commonly accessed and/or popular property. In another example, edge properties include a ranking that contributes to a query tree's score. FIG. 10 shows flow diagram lOOOincluding illustrative steps for generating a query tree in accordance with some implementations of the present disclosure. In some implementations, steps of flow diagram 1000 may relate to the techniques illustrated inFIGS. 5-9.
In step 1002, the search system parses a first search query to identify search units. In some implementations, the search system parses a search query as illustrated in flow diagram 500of FIG. 5. In some implementations, a received search request is partitioned into several search queries. In some implementations, a search query is parsed into one or more search units. In some implementations, a search unit includes one or more words. For example, a search unit may be a single word such as [Movies], or phrase such as [Tom Hanks]. In some implementations, search units may be identified by matching parts of a search query with nodes in the knowledge graph. In an example, the search query [Best Buy] may be identified as related to the electronics store [Best Buy], a single knowledge graph node, and may be identified as relating to two separate knowledge graph nodes for "Best" and "Buy. "In some implementations, the search system determines partitioning based on aggregated user selection data, user input, system settings, any other suitable information, or any combination thereof. In some implementations, the search system presents several possible search units to the user for refinement and/or selection. In some implementations, the search system performs subsequent steps of flow diagram 1000 using multiple combinations of search units and selects a search unit combination based on, for example, query trees or search results. In some implementations, parsing a search query includes natural language processing such as the processing illustrated in diagram 600of FIG. 6.
In step 1004, the search system identifies elements of a knowledge graph corresponding to search units. For example, the search system may identify a node or edge in a knowledge graph that corresponds to the search units identified in step 1002. In some implementations, identifying a corresponding node or edge includes identifying similar or matching text, similar or matching related properties, any other suitable technique, or any combination thereof. For example, the search query [Movies] may be identified as corresponding to the knowledge graph node "Film." In some implementations, multiple possible corresponding nodes are identified and a node is selected from the multiple possibilities based on aggregated user selection data, closeness of the match, related nodes in the knowledge graph, other search units, user input, predetermined parameters, system settings, any other suitable information, or any combination thereof.
In step 1006, the search system generates a topology. In some implementations, generating a topology includes determining tree topologies such as those illustrated in FIG. 7. In some implementations, topologies include an arrangement of nodes and edges. In some implementations, the number of nodes is the same as the number of search units. In some implementations, the search system generates several topologies. In some implementations, the search system selects one of the several topologies in subsequent processing steps, such as after generating query trees from each of the tree topologies. In some implementations, the particular arrangement of the topology is based in part on natural language processing or any other suitable technique for identifying dependencies and relationships between search units. In some implementations, the number of nodes may be the same as the number of search units. In some implementations, the number of nodes may be adjusted from the number of search units based on the content of those units. For example, articles such as "a" and "the" may not be used to determine the number of nodes.
In step 1008, the search system generates a phrase tree. In some implementations, phrase tree 800of FIG. 8is an example of the phrase tree generated in step 1008. In some implementations, the phrase tree of step 1008 may include the tree topology generated in step 1006. In some implementations, the search system assigns the search units identified in step 1002 to the nodes of the tree topology generated in step 1006. In some implementations, the nodes of the tree topology are assigned to edges of the phrase tree. For example, as illustrated in phrase tree 800of FIG. 8, the search unit [In] is assigned to an edge. In some implementations, multiple phrase trees are generated by assigning search units in different arrangements to the nodes of the tree topologies. Similarly, multiple phrase trees are generated based on the multiple tree topologies. In some implementations, a phrase tree is selected from the multiple phrase trees based on data in the knowledge graph, natural language processing, user input, system settings, further processing of the phrase tree such as the generation of query trees, predetermined parameters, any other suitable information, or any combination thereof.
In step 1010, the search system generates a query tree. In some implementations, a query tree is generated using the phrase tree generated in step 1008 and the elements of the knowledge graph corresponding to search units identified in step 1004. In some implementations, query tree 900 of FIG. 9 is an example of the query tree generated in step 1010. In some implementations, the query tree generated in step 1010 may have the same topology as the phrase tree generated in step 1008. In some implementations, the search system may assign data from the knowledge graph to a node of the query tree. In some implementations, the data from the knowledge graph is the data identified as corresponding to the search unit that was assigned to the node of the phrase tree in the same location. Thus, generating the query tree may be viewed as replacing the search units assigned to the nodes of the phrase tree with their corresponding knowledge graph elements.
In some implementations, information is assigned to the edges of the query tree as described for query tree 900of FIG. 9. In some implementations, relationships between nodes of the query tree may be identified based on relationships between corresponding nodes in the knowledge graph. For example, if the nodes corresponding to two nodes in a query tree are connected by a particular property in the knowledge graph, the query tree edge connecting those nodes may be assigned that property. In some implementations, query tree edges may be assigned based on knowledge graph data, search units, search queries, user input, system settings, aggregated user selection data, any other suitable preferences, or any combination thereof. In some implementations, nodes of the query tree are associated with any suitable data from the knowledge graph, for example, entities nodes, entity type nodes, literals, strings, or any combination thereof. In some implementations, multiple query trees are generated based on multiple tree topologies of step 1006 and/or multiple phrase trees of step 1008. A query tree may be selected from the multiple query trees based on a score as described above, user input, any other suitable technique, or any combination thereof.
In some implementations, a query tree includes a sub-tree corresponding to a phrase tree node, such that the query tree includes more nodes than its corresponding phrase tree. In an example, a phrase tree node "volcano" corresponds to a sub-tree in a query tree including sub-tree root type node "Type Mountain" connected to child node "Entity: Volcano" by edge "Property :Mountain_Type." In some implementations, sub-trees are identified by looking up a list of entities that also correspond to a type. For example, "Volcano" may be an entity of the type "Mountain" and may also be a type for the entities "Mt. Fuji" and "Mt. Vesuvius."
In step 1012, the search system retrieves search results using the query tree, i some implementations, the search system may retrieve search results from the knowledge graph using the query tree. For example, the search system may retrieve entities from the knowledge graph with relationships that match the relationships described by the query tree. In some implementations, the search system may use the query tree to retrieve search results from the internet, from a database, from a list of information, from any other suitable data or data structure, or any combination thereof. In an example, the search system may identify a portion of the knowledge graph with relationships similar to those mapped by the query tree, and identify entities related to the entities included in the mapped relationships. In the example of query tree 900 of FIG. 9, the search system may identify entities of the knowledge graph associated with the entity type film that are connected to the entity reference'Tom Hanks" by the property "Film Performed By" and connected to the value "2010" by the property release date. It will be understood that mapping and comparing are performed by any suitable technique in any suitable order.
It will be understood that the particular steps listed in flow diagram 1000 are merely exemplary and that steps may be added, removed, changed, otherwise suitably modified, or any combination thereof.
FIG. 11 shows illustrative user interface llOOwith search filters in accordance with some implementations of the present disclosure, i some implementations, user interface 1100 includes content presented in relation to the steps of flow diagram 1000. In some implementations, user interface 1100 includes content presented in relation to receiving a search filter.
User interface 1100 includes search query input 1102, display option bar 1104, pivot menu 1106, compare menu 1108, filter search query input 1110, search result title 1112, search result number 1114, first search result 1116, second search result 1118, third search result 1120, fourth search result 1122, fifth search result 1124, initial release filter 1126, genre filter 1134, and rating filter 1138. Search query input 1102 may receive user input including a desired search query. For example, the search system may receive the search query [Tom Hanks Movies in 2010] by text input received in search query input 1102. The search system may determine a set of search results in response to the received search query by any suitable technique. For example, the search system may generate a query tree and retrieve search results from the knowledge graph, as described above. In another example, the search system may perform a search of the internet, an index, a database, perform any other suitable search, or any combination thereof. The search system may present, for example, five search results. The search results may be presented with search result title 1112 [Movies with Tom Hanks in 2010]. In some implementations, for example where the search results have been retrieved using a query tree, the search result title 1112 may be based on the query tree. In some implementations, search query title 1112 may be based on the received search query, other system settings, preferences, inputs, or any combination thereof. In some implementations, search result title 1112 may be omitted. In some implementations, search result number 1114 indicates the number of presented search results. In some implementations, search result number 1114 may be omitted.
In some embodiments, search results in user interface 1100 may be sorted based on aggregated user selection data, an intrinsic order in the search results, an order related to the search results as defined in a data structure such as a knowledge graph, an order determined by calculating domain-specific metrics for each search results and combining them into a ranking score, by system settings, by any other suitable technique, or any combination thereof.
In some implementations, display option bar 1104 receives input indicating a desired presentation technique. For example, search results may be presented as a list, grid, timeline, map, any other suitable technique, or any combination thereof. In some implementations, receiving a selection of one of the techniques in display option bar 1104 may cause the presentation of search results to be reconfigured.
In some implementations, pivot menu 1106 includes a pull down menu or any other suitable arrangement including links to related collections of search results, i some implementations, other collections are identified based on data in the knowledge graph, user input, aggregated user selection data, popularity, user preferences, system settings, predetermined parameters, any other suitable information, or any combination thereof. In some implementations, compare menu 1108 receives input indicating a desired to compare collections of search results. For example, the search system may compare and/or present the currently presented set of search results to a previously presented set of search results. For example, the system may present the combination of the two sets, may present the overlapping elements of the two sets, may present any other suitable combination, or any combination thereof.
In some implementations, filter search query input 1110 receives input from a user related to a desired filtering and/or refinement of the presented set of search results. For example, where the search results are a set of movies released in 2010, the received filter [Comedy] may indicate a desire to present only movies in the presented set with the property [Comedy]. In some implementations, filter search query input 1110 is a text box. In some implementations, filter search query input 1110 includes a search button. In some implementations, filtering is triggered by receiving input indicating the search button, receiving an enter key input, receiving a mouse click, receiving any other suitable input, or any combination thereof.
Initial release filter 1126 may filter search results by their initial release date. In some implementations, a restriction on a particular property of a set of search results is identified in a received query. In some implementations, a search filter related to that restriction is presented. For example, where the search query is for movies in the year 2010, a filter for movie release dates may be presented. In some implementations, content of a filter is based on the type of information used as a filter. In an example, date filters include a timeline and category filters include a checkbox list. Initial release filter 1126 includes timeline 1130. Timeline 1130 includes date indicator 1128, presenting the range of selected dates. Timeline 1130 includes sliders 1136 that may receive input indicating a desired reconfiguration of the range of dates included. In some implementations, an initially selected date, or other suitable filter, is selected based on the received search query. For example, the date range 2010 may be selected following receiving the search query, and the system may present other years or ranges of years based on receiving input to initial release filter 1126. It will be understood that filtering by the initial release of a movie is merely exemplary and that any suitable filter of any suitable collection of search results may be used.
Genre filter 1134 may include a collection of genres, presented as individual filter facets such as [Action] and [Adventure]. In some implementations, one or more filter related to the search results, though not indicated in the received search query, is presented. For example, where the search results are a collection of movies, a genre filter may be presented automatically. In another example, not shown, where the search results are a collection of cities, a filter for countries where those cities are located may be automatically presented. In some implementations, the filter may include checkboxes or other indicators such that one or more filter facet may be selected. In some implementations, a filter is configured such that only one filter facet may be selected.
In some implementations, a filter may be in a collapsed and/or contracted view and the search system may receive input to present more of that filter. For example, rating filter 1138 may be collapsed and the search system may receive input of arrow 1140, indicating a desire to expand the presentation of that filter. It will be understood that arrow 1140 is merely exemplary and that any suitable indicator such as a plus sign or pull down bar may be used.
FIG. 12 shows illustrative filter query tree 1200in accordance with some implementations of the present disclosure. In some implementations, the search system filters search results based on a received filter query. The filter query may be received, for example, in filter search query box 1110 of FIG. 11. In some implementations, the search system generates a query tree, as described above, based on the combination of the original search query and the filter query. For example, if the original search query was [Tom Hanks Movies In 2010] and the filter query was [Comedy], the search system may generate a phrase tree based on [Tom Hanks Movies in 2010 Comedy]. In some implementations, the search system may compare a query tree based on the original search query and the new query tree based on the combination, and determine a filter for search results based on the comparison. Filter query tree 1200 includes root node 1202 "Film," child node 1206 "Tom Hanks" connected to root node 1202 by edge 1204 "Film Performed by," child node 1210 "2010 "connect to root node 1202 by edge 1208 "Release Date," and child node 1214 "Comedy" connected to root node 1202 by edge 1212 "Genre." In some implementations, filter query tree 1200 is generated using the steps of flow diagram 1000. In some implementations, the search system uses a query tree including the original search results in part for disambiguation of the filter query. For example, relationships identified in generating the query tree may help disambiguate a search for [Java] between the java programming language, the island of java, and the colloquialism for coffee, based on the presence of related terms in the query tree. It will be understood that in some implementations, the system does perform all of the processing steps to generate the query tree, but rather adds the new node to the previously known query tree.
In some implementations, filter query tree 1200 is compared to a query tree generated for the originally received search results. For example, where the original search query is [Tom Hanks Movies in 2010] and the filter query is [Comedy], filter query tree 1200 is compared to query tree 900. In some implementations, the additional nodes in filter query tree 1200 are identified with respect to query tree 900. For example, the additional child node 1214 "Comedy" may be identified and used as a filter query. In this example, the existing set of search results is filtered to present only those meeting the filter condition of having the genre comedy.
It will be understood that the aforementioned example of filter query trees and query trees is merely exemplary. The search system may use any suitable arrangement, number, configuration, and/or technique involving query trees, phrase trees, indexes, databases, lists, the knowledge graph, any other suitable information, or any combination thereof, to identify filter queries. In an example, the search system may identify more than one additional node based on a filter query. In an example, the search system may generate multiple query trees based on the filter query, and compare each of those to the original query tree individually.
FIG. 13 shows illustrative user interface 1300with filtered search results in accordance with some implementations of the present disclosure. In some implementations, user interface 1300 includes content presented in response to receiving a [Comedy] filter query based on the presented content of user interface 1100 of FIG. 11. In some implementations, the content of user interface 1300 is determined based in part on filter query tree 1200 of FIG. 12. User interface 1300 includes search query title 1312. In some implementations, search query title 1312 includes information related to a filter search query tree, such as filter search query tree 1200 of FIG. 12. In some implementations, the number of search results is indicated by search result number 1314. For example, where the original set of search results presented in user interface 1100 of FIG. llcontained five movies, after filtering the movies to present only movies of the genre comedy, the search system presents only two movies.
In some implementations, genre filter 1310 presents a list of genres. Indicator 1318 indicates that the comedy genre is selected. In some implementations, other facets in the filter are identified based on related entities in the knowledge graph. In some implementations, the search system automatically presents and selects the comedy filter facet in genre filter 1310 based on receiving user input [Comedy] in the filter query box.
It will be understood that the filter and its facets may or may not be presented before receiving the filter query related to that filter. For example, where filters for [Genre] and [Initial Release] are presented, the search system may receive a filter for [France], and the search system may determine that the filter query relates to the country of origin, and presents a filter for Country of Origin with the facet [France] automatically selected. In some implementations, the particular presented filters and those filters facets are determined based on the presented search results, the search query, filter queries, relationships and other data in the knowledge graph, system settings, predetermined parameters, aggregated user selection data, any other suitable information, or any combination thereof.
FIG. 14 shows flow diagram 1400including illustrative steps for filtering search results in accordance with some implementations of the present disclosure. In some implementations, flow diagram 1400 includes steps to identify a search results filter by generating a filter query tree such as filter query tree 1200 of FIG. 12.
In step 1402, the search system generates a first query tree. In some implementations, the first query tree is generated as described in step 1010 of FIG. 10. In an example, a search query is parsed to identify search units. A phrase tree is generated based on the search units and a tree topology. A query tree is generated using the phrase tree and data from a knowledge graph associated with each respective search element.
In step 1404, the search system provides a first set of search results. In some implementations, a first set of search results are retrieved as described in step 1012 of FIG. 10. In an example, the query tree generated in step 1402 is used to identify search results in the knowledge graph. In another example, the query tree is used to generate a web search query.
In step 1406, the search system receives a filter query. In some implementations, a filter query is received in a second search box presented on a display screen. In an example, a filter query is received in filter search query input 1110 of FIG. 11. In some implementations, a filter query is received in the same search box as the original search query was received, in a second search box, by any other suitable input method, or any combination thereof. A filter query may include text, images, voice input, any other suitable filter search, or any combination thereof.
In step 1408, the search system generates a second query tree. In some implementations, the search system generates a query tree as described in filter query tree 1200 of FIG. 12. i an example, the search system generates a query tree based on the concatenation of the original search query and the filter search query. In another example, the search system generates a filter search query based on the filter search query and the parsing of the original search query.
In step 1410, the search system determines a search filter based on a comparison of the first and second query tree. In some implementations, the search system compares the first query tree generated in step 1402 with the filter query tree generated in step 1408. In some implementations, query trees are compared as described for filter query tree 1200 of FIG. 12. In some implementations, the search system identifies nodes or other content present in the filter query tree that are not present in the original query tree, thus identifying additional nodes and/or content. It will be understood that this comparison is merely exemplary and that any suitable comparison between the original and filter query trees may be used. For example, in some implementations uses the second query tree as a filter.
In step 1412, the search system provides a second search result based on the filter. In some implementations, the search filter is determined based on the additional nodes identified in step 1410. In some implementations, the search filter is based only on the second query tree. In some implementations, the filter includes contextual information that may be associated with data in the knowledge graph. In an example, the filter query [Comedy] may be identified as related to the genre of movies [Comedy], based on other movie related data in the query trees. In another example, the filter query [2010] may be identified as relating to a book publishing year [2010], based on other book-related data in the query trees. In some implementations, the search system may identify both a filter facet and other related filters. For example, where the additional node identified in step 1410 is associated with an entity type in a knowledge graph, other entities of that type may be provided as filter facets. For example, where the query involves movies, a search for [German] may be identified by the search system as indicating movies in the language German. The search system may identify other movie languages, such as French, English, and Spanish, and may present the additional languages as optional filter facets. In an example, the search system may present a filter as illustrated in user interface 1300of FIG. 13with a list of languages, and with "German" selected automatically.
In some implementations, the search system does not automatically update search results in step 1412 and only presents identified filters. For example, the search system may present[Comedy] and other genre filters in genre filter 1134 of FIG. 11, but may not update search results without receiving further user input.
It will be understood that the particular steps listed in flow diagram 1400 are merely exemplary and that steps may be added, removed, changed, otherwise suitably modified, or any combination thereof.
FIG. 15 shows flow diagram 1500 including illustrative steps for providing filtered search results in accordance with some implementations of the present disclosure. In some implementations, flow diagram 1500 includes steps to determine a filter query by mapping relationships between a received filter query and the search results. In some implementations, flow diagram 1500 describes an alternative technique to the technique described in flow diagram 1400 of FIG. 14 for determining a filter. It will be understood that the search system may determine a filter using the technique of flow diagram 1500, the technique of flow diagram 1400of FIG. 14, any other suitable technique, or any combination thereof.
In step 1502, the search system provides a first set of search results. In some implementations, a first set of search results are retrieved as described in step 1012 of FIG. 10. In some implementations, the search system may provide a first set of search results using any suitable search technique. For example, the search system may use a query tree, a keyword search, a web search, any others suitable search, or any combination thereof.
In step 1504, the search system receives a filter query. In some implementations, a filter query is received in a second search box presented on a display screen. In an example, a filter query is received in filter search query input 1110 of FIG. 11. In some implementations, a filter query is received in the same search box as the original search query was received, a second search box, by any other suitable input method, or any combination thereof. A filter query may include text, images, voice input, any other suitable filter search, or any combination thereof.
In step 1506, the search system identifies elements in the knowledge graph associated with the filter query. Elements in the knowledge graph may include nodes, edges, terminal nodes, literals, entities, entity types, any other suitable knowledge graph data, or any combination thereof. In some implementations, the search system identifies elements in the knowledge graph, in any other suitable data structure, or any combination thereof. In some implementations, the search system identifies a node in the knowledge graph associated with the received query. For example, where the received query is the text string [Comedy], the search system may identify a node in the knowledge graph associated with the Genre "Comedy."
In step 1508, the search system maps relationships between the elements in the knowledge graph and the search results. In some implementations, each search result of the set of search results is associated with an entity reference in the knowledge graph. In some implementations, the search system maps the relationships between the elements of the knowledge graph identified in step 1506 and each respective search result. For example, where the identified element is a node associated with the movie genre "Comedy" and the search results are all of the type "Film," the search system may identify that the received filter query indicates an intention to filter the search results for films having the genre "Comedy." It will be understood that the search system may map any suitable relationship between the filter query and the search results, and may determine any suitable filters based on the mapping.
In step 1510, the search system determines a filter based on the relationships between the elements in the knowledge graph and the search results. In some implementations, the search system presents the filter and the selected filter facet as described for user interface 1300 of FIG. 13. In some implementations, related filter facets are also provided.
In step 1512, the search system provides a second set of search results based on the filter. In some implementations, the search system reconfigures the presented search results to only include those meeting filter criteria. In an example, the results presented for user interface 1300 of FIG. 13 are presented in response to receiving the filter query [Comedy] in filter search query input 1110 of FIG. 11.
It will be understood that the particular steps listed in flow diagram 1500 are merely exemplary and that steps may be added, removed, changed, otherwise suitably modified, or any combination thereof.
The following description and accompanying FIGS. 16-17describe illustrative computer systems that may be used in some implementations of the present disclosure. It will be understood that the knowledge graph and associated techniques may be implemented on any suitable computer or combination of computers.
FIG. 16 shows an illustrative computer system in accordance with some implementations of the present disclosure. System 1600 may include one or more user device 1602. In some implementations, user device 1602 may include a smartphone, tablet computer, desktop computer, laptop computer, personal digital assistant, PDA, portable audio player, portable video player, mobile gaming device, other suitable user device capable of providing content, or any combination thereof.
User device 1602 may be coupled to network 1604 directly through connection 1606, through wireless repeater 1610, by any other suitable way of coupling to network 1604, or by any combination thereof. Network 1604 may include the Internet, a dispersed network of computers and servers, a local network, a public intranet, a private intranet, other coupled computing systems, or any combination thereof.
User device 1602 may be coupled to network 1604 by wired connection 1606. Connection 1606 may include Ethernet hardware, coaxial cable hardware, DSL hardware, T-l hardware, fiber optic hardware, analog phone line hardware, any other suitable wired hardware capable of communicating, or any combination thereof. Connection 1606 may include transmission techniques including TCP/IP transmission techniques, IEEE 1702 transmission techniques, Ethernet transmission techniques, DSL transmission techniques, fiber optic transmission techniques, ITU-T transmission techniques, any other suitable transmission techniques, or any combination thereof.
User device 1602 may be wirelessly coupled to network 1604 by wireless connection 1608. In some implementations, wireless repeater 1610 receives transmitted information from user device 1602 by wireless connection 1608 and communicates it with network 1604 by connection 1612. Wireless repeater 1610 receives information from network 1604 by connection 1612 and communicates it with user device 1602 by wireless connection 1608. In some implementations, wireless connection 1608 may include cellular phone transmission techniques, code division multiple access, or CDMA, transmission techniques, global system for mobile communications, or GSM, transmission techniques, general packet radio service, or GPRS, transmission techniques, , satellite transmission techniques, infrared transmission techniques, Bluetooth transmission techniques, Wi-Fi transmission techniques, WiMax transmission techniques, any other suitable transmission techniques, or any combination thereof.
Connection 1612 may include Ethernet hardware, coaxial cable hardware, DSL hardware, T-l hardware, fiber optic hardware, analog phone line hardware, wireless hardware, any other suitable hardware capable of communicating, or any combination thereof. Connection 1612 may include wired transmission techniques including TCP/IP transmission techniques, IEEE 1702 transmission techniques, Ethernet transmission techniques, DSL transmission techniques, fiber optic transmission techniques, ITU-T transmission techniques, any other suitable transmission techniques, or any combination thereof. Connection 1612 may include may include wireless transmission techniques including cellular phone transmission techniques, code division multiple access, or CDMA, transmission techniques, global system for mobile communications, or GSM, transmission techniques, general packet radio service, or GPRS, transmission techniques, satellite transmission techniques, infrared transmission techniques, Bluetooth transmission techniques, Wi-Fi transmission techniques, WiMax transmission techniques, any other suitable transmission techniques, or any combination thereof.
Wireless repeater 1610 may include any number of cellular phone transceivers, network routers, network switches, communication satellites, other devices for communicating information from user device 1602 to network 1604, or any combination thereof. It will be understood that the arrangement of connection 1606, wireless connection 1608 and connection 1612 is merely illustrative and that system 1600 may include any suitable number of any suitable devices coupling user device 1602 to network 1604. It will also be understood that any user device 1602, may be communicatively coupled with any user device, remote server, local server, any other suitable processing equipment, or any combination thereof, and may be coupled using any suitable technique as described above.
In some implementations, any suitable number of remote servers 1614, 1616, 1618, 1620, may be coupled to network 1604. Remote servers may be general purpose, specific, or any combination thereof. One or more search engine servers 1622 may be coupled to the network 1604. In some implementations, search engine server 1622 may include the knowledge graph, may include processing equipment configured to access the knowledge graph, may include processing equipment configured to receive search queries related to the knowledge graph, may include any other suitable information or equipment, or any combination thereof. One or more database servers 1624 may be coupled to network 1604. In some implementations, database server 1624 may store the knowledge graph. In some implementations, where there is more than one knowledge graph, the more than one may be included in database server 1624, may be distributed across any suitable number of database servers and general purpose servers by any suitable technique, or any combination thereof. It will also be understood that the system may use any suitable number of general purpose, specific purpose, storage, processing, search, any other suitable server, or any combination.
FIG. 17 is a block diagram of a user device of the illustrative computer system of FIG. 16 in accordance with some implementations of the present disclosure. User device 1602 may include input/output equipment 1702 and processing equipment 1704. Input/output equipment 1702 may include display 1706, touchscreen 1708,button 1710,accelerometer 1712, global positions system, or GPS, receiver 1736, camera 1738, keyboard 1740, mouse 1742, and audio equipment 1734 including speaker 1714 and microphone 1716. In some implementations, the equipment illustrated in FIG. 17 may be representative of equipment included in a smartphone user device. It will be understood that the specific equipment included in the illustrative computer system may depend on the type of user device. For example, the Input/output equipment 1702 of a desktop computer may include a keyboard 1740 and mouse 1742 and may omit accelerometer 1712 and GPS receiver 1736. It will be understood that user device 1602 may omit any suitable illustrated elements, and may include equipment not shown such as media drives, data storage, communication devices, display devices, processing equipment, any other suitable equipment, or any combination thereof. In some implementations, display 1706 may include a liquid crystal display, light emitting diode display, organic light emitting diode display, amorphous organic light emitting diode display, plasma display, cathode ray tube display, projector display, any other suitable type of display capable of displaying content, or any combination thereof. Display 1706 may be controlled by display controller 1718 or by processor 1724 in processing equipment 1704, by processing equipment internal to display 1706, by other controlling equipment, or by any combination thereof. In some implementations, display 1706 may display data from a knowledge graph.
Touchscreen 1708 may include a sensor capable of sensing pressure input, capacitance input, resistance input, piezoelectric input, optical input, acoustic input, any other suitable input, or any combination thereof. Touchscreen 1708 may be capable of receiving touch-based gestures. Received gestures may include information relating to one or more locations on the surface of touchscreen 1708, pressure of the gesture, speed of the gesture, duration of the gesture, direction of paths traced on its surface by the gesture, motion of the device in relation to the gesture, other suitable information regarding a gesture, or any combination thereof. In some implementations, touchscreen 1708 may be optically transparent and located above or below display 1706. Touchscreen 1708 may be coupled to and controlled by display controller 1718, sensor controller 1720,processor 1724, any other suitable controller, or any combination thereof. In some implementations, touchscreen 1708 may include a virtual keyboard capable of receiving, for example, a search query used to identify data in a knowledge graph.
In some embodiements, a gesture receieved by touchscreen 1708 may cause a corresponding display element to be displayed substantially concurrently, e.g. , immediately following or with a short delay, by display 1706. For example, when the gesture is a movement of a finger or stylus along the surface of touchscreen 1708, the search system may cause a visible line of any suitible thickness, color, or pattern indicating the path of the gesture to be displayed on display 1706. In some implementations, for example, a desktop computer using a mouse, the functions of the touchscreen may be fully or partially replaced using a mouse pointer displayed on the display screen.
Button 1710 may be one or more electromechanical push-button mechanism, slide mechanism, switch mechanism, rocker mechanism, toggle mechanism, other suitable mechanism, or any combination thereof. Button 1710 may be included in touchscreen 1708 as a predefined region of the touchscreen, e.g. , soft keys. Button 1710 may be included in touchscreen 1708 as a region of the touchscreen defined by the search system and indicated by display 1706. Activation of button 1710 may send a signal to sensor controller 1720,processor 1724,display controller 1720, any other suitable processing equipment, or any combination thereof. Activation of button 1710 may include receiving from the user a pushing gesture, sliding gesture, touching gesture, pressing gesture, time-based gesture, e.gbased on the duration of a push, any other suitable gesture, or any combination thereof.
Accelerometer 1712 may be capable of receiving information about the motion characteristics, acceleration characteristics, orientation characteristics, inclination characteristics and other suitable characteristics, or any combination thereof, of user device 1602. Accelerometer 1712 may be a mechanical device, microelectromechanical, or MEMS, device, nanoelectromechanical, or NEMS, device, solid state device, any other suitable sensing device, or any combination thereof. In some implementations, accelerometer 1712 may be a 3-axis piezoelectric microelectromechanical integrated circuit which is configured to sense acceleration, orientation, or other suitable characteristics by sensing a change in the capacitance of an internal structure. Accelerometer 1712 may be coupled to touchscreen 1708 such that information received by accelerometer 1712 with respect to a gesture is used at least in part by processing equipment 1704 to interpret the gesture.
Global positioning system, or GPS, receiver 1736 may be capable of receiving signals from global positioning satellites. In some implementations, GPS receiver 1736 may receive information from one or more satellites orbiting the earth, the information including time, orbit, and other information related to the satellite. This information may be used to calculate the location of user device 1602 on the surface of the earth. GPS receiver 1736 may include a barometer, not shown, to improve the accuracy of the location. GPS receiver 1736 may receive information from other wired and wireless communication sources regarding the location of user device 1602. For example, the identity and location of nearby cellular phone towers may be used in place of, or in addition to, GPS data to determine the location of user device 1602.
Camera 1738 may include one or more sensors to detect light. In some implementations, camera 1738 may receive video images, still images, or both. Camera 1738 may include a charged coupled device, or CCD, sensor, a complementary metal oxide semiconductor, or CMOS, sensor, a photocell sensor, an IR sensor, any other suitable sensor, or any combination thereof. In some implementations, camera 1738 may include a device capable of generating light to illuminate a subject, for example, an LED light. Camera 1738 may communicate information captured by the one or more sensor to sensor controller 1720, to processor 1724, to any other suitable equipment, or any combination thereof. Camera 1738 may include lenses, filters, and other suitable optical equipment. It will be understood that user device 1602 may include any suitable number of camera 1738.
Audio equipment 1734 may include sensors and processing equipment for receiving and transmitting information using acoustic or pressure waves. Speaker 1714 may include equipment to produce acoustic waves in response to a signal. In some implementations, speaker 1714 may include an electroacoustic transducer wherein an electromagnet is coupled to a diaphragm to produce acoustic waves in response to an electrical signal. Microphone 1716 may include electroacoustic equipment to convert acoustic signals into electrical signals. In some implementations, a condenser-type microphone may use a diaphragm as a portion of a capacitor such that acoustic waves induce a capacitance change in the device, which may be used as an input signal by user device 1602.
Speaker 1714 and microphone 1716 may be contained within user device 1602, maybe remote devices coupled to user device 1602 by any suitable wired or wireless connection, or any combination thereof.
Speaker 1714 and microphone 1716 of audio equipment 1734 may be coupled to audio controller 1722 in processing equipment 1704. This controller may send and receive signals from audio equipment 1734 and perform pre-processing and filtering steps before transmitting signals related to the input signals to processor 1724. Speaker 1714 andmicrophone 1716 may becoupled directly to processor 1724. Connections from audio equipment 1734 to processing equipment 1704 may be wired, wireless, other suitable arrangements for communicating information, or any combination thereof.
Processing equipment 1704 of user device 1602 may include display controller 1718, sensor controller 1720, audio controller 1722,processor 1724, memory 1726, communication controller 1728, and power supply 1732.
Processor 1724 may include circuitry to interpret signals input to user device 1602 from, for example, touchscreen 1708 and microphone 1716. Processor 1724 may include circuitry to control the output to display 1706 and speaker 1714. Processor 1724 may include circuitry to carry out instructions of a computer program. In some implementations, processor 1724 may be an integrated electronic circuit based, capable of carrying out the instructions of a computer program and include a plurality of inputs and outputs.
Processor 1724 may be coupled to memory 1726. Memory 1726 may include random access memory, or RAM, flash memory, programmable read only memory, or PROM, erasable programmable read only memory, or EPROM, magnetic hard disk drives, magnetic tape cassettes, magnetic floppy disks optical CD-ROM discs, CD-R discs, CD-RW discs, DVD discs, DVD+R discs, DVD-R discs, any other suitable storage medium, or any combination thereof.
The functions of display controller 1718, sensor controller 1720, and audio controller 1722, as have been described above, may be fully or partially implemented as discrete components in user device 1602, fully or partially integrated into processor 1724, combined in part or in full into combined control units, or any combination thereof.
Communication controller 1728 may be coupled to processor 1724 of user device 1602. In some implementations, communication controller 1728 may communicate radio frequency signals using antenna 1730. In some implementations, communication controller 1728 may communicate signals using a wired connection, not shown. Wired and wireless communications communicated by communication controller 1728 may use Ethernet, amplitude modulation, frequency modulation, bitstream, code division multiple access, or CDMA, global system for mobile communications, or GSM, general packet radio service, or GPRS, satellite, infrared, Bluetooth, Wi-Fi, WiMax, any other suitable communication configuration, or any combination thereof. The functions of communication controller 1728 may be fully or partially implemented as a discrete component in user device 1602, may be fully or partially included in processor 1724, or any combination thereof. In some implementations, communication controller 1728 may communicate with a network such as network 1604 of FIG. 16 and may receive information from a knowledge graph stored, for example, in database 1624 of FIG. 16.
Power supply 1732 may be coupled to processor 1724 and to other components of user device 1602. Power supply 1732 may include a lithium- polymer battery, lithium-ion battery, NiMH battery, alkaline battery, lead-acid battery, fuel cell, solar panel, thermoelectric generator, any other suitable power source, or any combination thereof. Power supply 1732 may include a hard wired connection to an electrical power source, and may include electrical equipment to convert the voltage, frequency, and phase of the electrical power source input to suitable power for user device 1602. In some implementations of power supply 1732, a wall outlet may provide 1620 volts, 60Hz alternating current, or AC. A circuit of transformers, resistors, inductors, capacitors, transistors, and other suitable electronic components included in power supply 1732 may convert the 1620V AC from a wall outlet power to 5 volts at 0 Hz, e.g. , direct current. In some implementations of power supply 1732, a lithium-ion battery including a lithium metal oxide- based cathode and graphite-based anode may supply 3.7V to the components of user device 1602. Power supply 1732 may be fully or partially integrated into user device 1602,or mayfunction as a stand-alone device. Power supply 1732 may power user device 1602 directly, may power user device 1602 by charging a battery, may provide power by any other suitable way, or any combination thereof.
The foregoing is merely illustrative of the principles of this disclosure and various modifications may be made by those skilled in the art without departing from the scope of this disclosure. The above described implementations are presented for purposes of illustration and not of limitation. The present disclosure also may take many forms other than those explicitly described herein. Accordingly, it is emphasized that this disclosure is not limited to the explicitly disclosed methods, systems, and apparatuses, but is intended to include variations to and modifications thereof, which are within the spirit of the following claims.

Claims

What is claimed:
1. A method comprising:
parsing, using one or more computers, a first search query into one or more search units, wherein a search unit comprises one or more words;
identifying, using one or more computers, elements of a knowledge graph corresponding to each of the one or more search units;
generating, using one or more computers, a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree;
generating, using one or more computers, a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph; and
retrieving, using one or more computers, a search result from a knowledge graph based at least in part on the first query tree.
2. The method of claim 1, wherein generating the query tree comprises mapping search units to the knowledge graph elements of the nodes and edges of the corresponding topology.
3. The method of claim 1, further comprising partitioning a received search request to generating one or more search queries, that comprise at least the first search query.
4. The method of claim 1, wherein generating a phrase tree comprises generating a plurality of phrase trees comprising one or more topologies.
5. The method of claim 1, wherein determining a query tree comprises:
generating a plurality of query trees comprising one or more topologies;
assigning a score to each of the plurality of query trees; and selecting a query tree from the plurality of query trees based at least in part on the score.
6. The method of claim 5, wherein the score is based at least in part on user interactions.
7. The method of claim 5, wherein the score is based at least in part on data in the knowledge graph.
8. The method of claim 1, wherein determining a query tree comprises providing multiple query trees to a user and receiving user input related to a desired selection of one of the multiple query trees.
9. The method of claim 1, wherein parsing a first search query comprises using natural language processing.
10. The method of claim 1, further comprising presenting the search result using a display screen.
11. A method comprising: generating, using one or more computers, a first query tree based at least in part on a first search query, wherein the nodes and edges of the first query tree are associated with elements of a knowledge graph;
retrieving, using one or more computers, a first search result from the knowledge graph based at least in part on the first query tree;
providing, using one or more computers, the first search result to a user;
receiving, using one or more computers, a filter query, wherein the filter query relates to a refinement of the first search result;
generating, using one or more computers, a second query tree based at least in part on the first search query and the filter query, wherein the second query tree comprises one or more nodes and edges associated with elements of a knowledge graph;
comparing, using one or more computers, the first query tree and the second query tree;
based on the comparison, determining, using one or more computers, a search filter; and
providing, using one or more computers, a second search result based at least in part on the first search result and the search filter.
12. The method of claim 11, wherein generating a query tree further comprises:
parsing, using one or more computers, a first search query into one or more search units, wherein a search unit comprises one or more words;
identifying, using one or more computers, elements of a knowledge graph corresponding to each of the one or more search units;
generating, using one or more computers, a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree; and
generating, using one or more computers, a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph.
13. The method of claim 12, wherein generating the query tree comprises mapping search units to the knowledge graph elements of the nodes and edges of the corresponding topology.
14. The method of claim 11, wherein receiving a filter query comprises receiving a text filter query in a text input box.
15. The method of claim 11, wherein providing the first search result comprises presenting links on a display screen.
16. The method of claim 11, wherein comparing the first query tree and the second query tree comprises identifying data included in the second query tree that is not included in the first query tree.
17. The method of claim 11, wherein providing a second search result comprises providing a link to the search filter.
18. The method of claim 11, wherein providing a link to the search filter comprises providing links to one or more related search filters.
19. A method comprising:
providing, using one or more computers, a first search result from a knowledge graph to a user;
receiving, using one or more computers, a filter query, wherein the filter query relates to a refinement of the first search result;
identifying, using one or more computers, one or more elements in the knowledge graph associated with the filter query;
mapping, using one or more computers, one or more relationships between the one or more elements in the knowledge graph associated with the filter query and each respective search result of the first plurality of search results;
based on the one or more relationships, determining, using one or more computers, a search filter.
providing, using one or more computers, a second search result based at least in part on the first search result and the search filter.
20. The method of claiml9, wherein providing a first search result further comprises identifying search results using a query tree.
21. The method of claim 20, wherein generating a query tree further comprises:
parsing, using one or more computers, a first search query into one or more search units, wherein a search unit comprises one or more words;
identifying, using one or more computers, elements of a knowledge graph corresponding to each of the one or more search units;
generating, using one or more computers, a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree; and
generating, using one or more computers, a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph.
22. The method of claim 21, wherein generating the query tree comprises mapping search units to the knowledge graph elements of the nodes and edges of the corresponding topology.
23. The method of claim 19, wherein receiving a filter query comprises receiving a text filter query in a text input box.
24. The method of claim 19, wherein providing the first search result comprises presenting links on a display screen.
25. The method of claim 19, wherein providing a second search result comprises providing a link to the search filter.
26. The method of claim 19, wherein providing a link to the search filter comprises providing links to one or more related search filters.
27. The method of claim 19, wherein mapping one or more relationships further comprises identifying connections in the knowledge graph between the one or more elements in the knowledge graph associated with the filter query and each respective search result of the first plurality of search results.
28. A system comprising:
a database comprising a knowledge graph; and
one or more computers configured to perform operations comprising:
parsing a first search query into one or more search units, wherein a search unit comprises one or more words,
identifying elements of the knowledge graph corresponding to each of the one or more search units,
generatinga phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree,
generating a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph, and
retrieving a search result from a knowledge graph based at least in part on the first query tree.
29. The system of claim 28, wherein generating the query tree comprises mapping search units to the knowledge graph elements of the nodes and edges of the corresponding topology.
30. The system of claim 28, wherein the one or more computers are configured to perform operations further comprising partitioning a received search request to generating one or more search queries that comprise at least the first search query.
31. The system of claim 28, wherein generating a phrase tree comprises generating a plurality of phrase trees comprising one or more topologies.
32. The system of claim 28, wherein the one or more computers are configured to perform operations further comprising:
generating a plurality of query trees comprising one or more topologies;
assigning a score to each of the plurality of query trees; and selecting a query tree from the plurality of query trees based at least in part on the score.
33. The system of claim 32, wherein the score is based at least in part on user interactions.
34. The system of claim 32, wherein the score is based at least in part on data in the knowledge graph.
35. The system of claim 28, wherein determining a query tree comprises providing multiple query trees to a user and receiving user input related to a desired selection of one of the multiple query trees.
36. The system of claim 28, wherein parsing a first search query comprises using natural language processing.
37. The system of claim 28, wherein the one or more computers are further configured to perform operations comprising presenting the search result using a display screen.
38. A system comprising:
a database comprising a knowledge graph; and
one or more computers configured to perform operations including:
generating a first query tree based at least in part on a first search query, wherein the nodes and edges of the first query tree are associated with elements of a knowledge graph,
retrievinga first search result from the knowledge graph based at least in part on the first query tree,
providing the first search result to a user, receiving a filter query, wherein the filter query relates to a refinement of the first search result,
generating a second query tree based at least in part on the first search query and the filter query, wherein the second query tree comprises one or more nodes and edges associated with elements of a knowledge graph,
comparing the first query tree and the second query tree, based on the comparison, determininga search filter, and providing a second search result based at least in part on the first search result and the search filter.
39. The systemof claim 38, wherein the one or more computers are configured to perform operations further comprising:
parsing a first search query into one or more search units, wherein a search unit comprises one or more words;
identifying elements of a knowledge graph corresponding to each of the one or more search units; generating a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree; and
generating a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph.
40. The system of claim 39, wherein generating the query tree comprises mapping search units to the knowledge graph elements of the nodes and edges of the corresponding topology.
41. The system of claim 38, wherein receiving a filter query comprises receiving a text filter query in a text input box.
42. The system of claim 38, wherein providing the first search result comprises presenting links on a display screen.
43. The system of claim 38, wherein comparing the first query tree and the second query tree comprises identifying data included in the second query tree that is not included in the first query tree.
44. The system of claim 38, wherein providing a second search result comprises providing a link to the search filter.
45. The system of claim 38, wherein providing a link to the search filter comprises providing links to one or more related search filters.
46. A system comprising: a database comprising a knowledge graph; and
one or more computers configured to perform operations comprising:
providing a first search result from a knowledge graph to a user,
receiving a filter query, wherein the filter query relates to a refinement of the first search result,
identifying one or more elements in the knowledge graph associated with the filter query,
mapping one or more relationships between the one or more elements in the knowledge graph associated with the filter query and each respective search result of the first plurality of search results,
based on the one or more relationships, determining a search filter, and
providing a second search result based at least in part on the first search result and the search filter.
47. The system of claim 46, wherein providing a first search result further comprises identifying search results using a query tree.
48. The system of claim 47, wherein the one or more computers are configured to perform operations further comprising:
parsing a first search query into one or more search units, wherein a search unit comprises one or more words;
identifying elements of a knowledge graph corresponding to each of the one or more search units;
generating a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree; and
generating a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph.
49. The system of claim 48, wherein generating the query tree comprises mapping search units to the knowledge graph elements of the nodes and edges of the corresponding topology.
50. The system of claim 46, wherein receiving a filter query comprises receiving a text filter query in a text input box.
51. The system of claim 46, wherein providing the first search result comprises presenting links on a display screen.
52. The system of claim 46, wherein providing a second search result comprises providing a link to the search filter.
53. The system of claim 46, wherein providing a link to the search filter comprises providing links to one or more related search filters.
54. The system of claim 46, wherein the one or more computers are configured to perform operations further comprising identifying connections in the knowledge graph between the one or more elements in the knowledge graph associated with the filter query and each respective search result of the first plurality of search results.
55. A non-transitory computer-readable medium, the computer- readable medium having computer program instructions recorded thereon for:
parsing, using one or more computers, a first search query into one or more search units, wherein a search unit comprises one or more words;
identifying, using one or more computers, elements of a knowledge graph corresponding to each of the one or more search units;
generating, using one or more computers, a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree;
generating, using one or more computers, a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph; and
retrieving, using one or more computers, a search result from a knowledge graph based at least in part on the first query tree.
56. The non-transitory computer-readable medium claim 55, wherein generating the query tree comprises mapping search units to the knowledge graph elements of the nodes and edges of the corresponding topology.
57. The non-transitory computer-readable medium claim 55, further comprising partitioning a received search request to generating one or more search queries, that comprise at least the first search query.
58. The non-transitory computer-readable medium claim 55, wherein generating a phrase tree comprises generating a plurality of phrase trees comprising one or more topologies.
59. The non-transitory computer-readable medium claim 55, wherein determining a query tree comprises:
generating a plurality of query trees comprising one or more topologies;
assigning a score to each of the plurality of query trees; and selecting a query tree from the plurality of query trees based at least in part on the score.
60. The non-transitory computer-readable medium claim 59, wherein the score is based at least in part on user interactions.
61. The non-transitory computer-readable medium claim 59, wherein the score is based at least in part on data in the knowledge graph.
62. The non-transitory computer-readable medium claim 55, wherein determining a query tree comprises providing multiple query trees to a user and receiving user input related to a desired selection of one of the multiple query trees.
63. The non-transitory computer-readable medium claim 55, wherein parsing a first search query comprises using natural language processing.
64. The non-transitory computer-readable medium claim 55, further comprising presenting the search result using a display screen.
65. A non-transitory computer-readable medium, the computer- readable medium having computer program instructions recorded thereon for: generating, using one or more computers, a first query tree based at least in part on a first search query, wherein the nodes and edges of the first query tree are associated with elements of a knowledge graph;
retrieving, using one or more computers, a first search result from the knowledge graph based at least in part on the first query tree;
providing, using one or more computers, the first search result to a user;
receiving, using one or more computers, a filter query, wherein the filter query relates to a refinement of the first search result;
generating, using one or more computers, a second query tree based at least in part on the first search query and the filter query, wherein the second query tree comprises one or more nodes and edges associated with elements of a knowledge graph;
comparing, using one or more computers, the first query tree and the second query tree;
based on the comparison, determining, using one or more computers, a search filter; and
providing, using one or more computers, a second search result based at least in part on the first search result and the search filter.
66. The non-transitory computer-readable medium claim 65, wherein generating a query tree further comprises:
parsing, using one or more computers, a first search query into one or more search units, wherein a search unit comprises one or more words;
identifying, using one or more computers, elements of a knowledge graph corresponding to each of the one or more search units;
generating, using one or more computers, a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree; and
generating, using one or more computers, a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph.
67. The non-transitory computer-readable medium claim 66, wherein generating the query tree comprises mapping search units to the knowledge graph elements of the nodes and edges of the corresponding topology.
68. The non-transitory computer-readable medium claim 65, wherein receiving a filter query comprises receiving a text filter query in a text input box.
69. The non-transitory computer-readable medium claim 65, wherein providing the first search result comprises presenting links on a display screen.
70. The non-transitory computer-readable medium claim 65, wherein comparing the first query tree and the second query tree comprises identifying data included in the second query tree that is not included in the first query tree.
71. The non-transitory computer-readable medium claim 65, wherein providing a second search result comprises providing a link to the search filter.
72. The non-transitory computer-readable medium claim 65, wherein providing a link to the search filter comprises providing links to one or more related search filters.
73. A non-transitory computer-readable medium, the computer- readable medium having computer program instructions recorded thereon for:
providing, using one or more computers, a first search result from a knowledge graph to a user;
receiving, using one or more computers, a filter query, wherein the filter query relates to a refinement of the first search result;
identifying, using one or more computers, one or more elements in the knowledge graph associated with the filter query;
mapping, using one or more computers, one or more relationships between the one or more elements in the knowledge graph associated with the filter query and each respective search result of the first plurality of search results;
based on the one or more relationships, determining, using one or more computers, a search filter.
providing, using one or more computers, a second search result based at least in part on the first search result and the search filter.
74. The non-transitory computer-readable medium claim 73, wherein providing a first search result further comprises identifying search results using a query tree.
75. The non-transitory computer-readable medium claim 74, wherein generating a query tree further comprises:
parsing, using one or more computers, a first search query into one or more search units, wherein a search unit comprises one or more words; identifying, using one or more computers, elements of a knowledge graph corresponding to each of the one or more search units;
generating, using one or more computers, a phrase tree by assigning each of the one or more search units to a node or edge of the phrase tree; and
generating, using one or more computers, a query tree, with an identical topology to the phrase tree, wherein the nodes and edges of the query tree are defined based at least in part on the phrase tree and the knowledge graph.
76. The non-transitory computer-readable medium claim 75, wherein generating the query tree comprises mapping search units to the knowledge graph elements of the nodes and edges of the corresponding topology.
77. The non-transitory computer-readable medium claim 73, wherein receiving a filter query comprises receiving a text filter query in a text input box.
78. The non-transitory computer-readable medium claim 73, wherein providing the first search result comprises presenting links on a display screen.
79. The non-transitory computer-readable medium claim 73, wherein providing a second search result comprises providing a link to the search filter.
80. The non-transitory computer-readable medium claim 73, wherein providing a link to the search filter comprises providing links to one or more related search filters.
81. The non-transitory computer-readable medium claim 73, wherein mapping one or more relationships further comprises identifying connections in the knowledge graph between the one or more elements in the knowledge graph associated with the filter query and each respective search result of the first plurality of search results.
PCT/CN2013/071652 2013-02-19 2013-02-19 Natural language processing based search WO2014127500A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201380073339.8A CN105900081B (en) 2013-02-19 2013-02-19 Search based on natural language processing
PCT/CN2013/071652 WO2014127500A1 (en) 2013-02-19 2013-02-19 Natural language processing based search
EP13875916.2A EP2959405A4 (en) 2013-02-19 2013-02-19 Natural language processing based search

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/071652 WO2014127500A1 (en) 2013-02-19 2013-02-19 Natural language processing based search

Publications (1)

Publication Number Publication Date
WO2014127500A1 true WO2014127500A1 (en) 2014-08-28

Family

ID=51390462

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/071652 WO2014127500A1 (en) 2013-02-19 2013-02-19 Natural language processing based search

Country Status (3)

Country Link
EP (1) EP2959405A4 (en)
CN (1) CN105900081B (en)
WO (1) WO2014127500A1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016119874A1 (en) * 2015-01-30 2016-08-04 Longsand Limited Selecting an entity from a knowledge graph when a level of connectivity between its neighbors is above a certain level
CN106250393A (en) * 2016-07-13 2016-12-21 广州安望信息科技有限公司 The short text understanding method of a kind of knowledge based collection of illustrative plates and device
WO2017079217A1 (en) * 2015-11-05 2017-05-11 Microsoft Technology Licensing, Llc Techniques for digital entity correlation
WO2018028443A1 (en) * 2016-08-11 2018-02-15 阿里巴巴集团控股有限公司 Data processing method, device and system
US20180349353A1 (en) * 2017-06-05 2018-12-06 Lenovo (Singapore) Pte. Ltd. Generating a response to a natural language command based on a concatenated graph
EP3704601A4 (en) * 2017-10-31 2020-09-09 Yext, Inc. Knowledge search engine platform for enhanced business listings
US10776409B2 (en) 2017-06-21 2020-09-15 International Business Machines Corporation Recommending responses to emergent conditions
CN111753198A (en) * 2020-06-22 2020-10-09 北京百度网讯科技有限公司 Information recommendation method and device, electronic equipment and readable storage medium
CN114297404A (en) * 2021-12-29 2022-04-08 北京信息科技大学 Knowledge graph construction method for field evaluation expert behavior track
EP4131022A1 (en) * 2021-08-06 2023-02-08 Beijing Baidu Netcom Science Technology Co., Ltd. Method and apparatus of determining location information, electronic device, storage medium, and program product
WO2023148558A1 (en) * 2022-02-07 2023-08-10 International Business Machines Corporation Building knowledge graphs based on partial topologies formulated by users
US12039272B2 (en) 2018-10-13 2024-07-16 IPRally Technologies Oy Method of training a natural language search system, search system and corresponding use

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10977303B2 (en) * 2018-03-21 2021-04-13 International Business Machines Corporation Image retrieval using interactive natural language dialog
US10956487B2 (en) 2018-12-26 2021-03-23 Industrial Technology Research Institute Method for establishing and processing cross-language information and cross-language information system
CN109670033B (en) * 2019-02-01 2021-01-12 海信视像科技股份有限公司 Content retrieval method, device, equipment and storage medium
CN112905848A (en) * 2021-02-10 2021-06-04 北京有竹居网络技术有限公司 Information query method, device, electronic equipment, storage medium and program product

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1225517A2 (en) * 2001-01-17 2002-07-24 International Business Machines Corporation System and methods for computer based searching for relevant texts
US20070288436A1 (en) 2006-06-07 2007-12-13 Platformation Technologies, Llc Methods and Apparatus for Entity Search
US20090164441A1 (en) 2007-12-20 2009-06-25 Adam Cheyer Method and apparatus for searching using an active ontology
US20090171921A1 (en) * 2007-12-28 2009-07-02 Sybase, Inc. Accelerating Queries Based on Exact Knowledge of Specific Rows Satisfying Local Conditions
CN101630314A (en) * 2008-07-16 2010-01-20 中国科学院自动化研究所 Semantic query expansion method based on domain knowledge
CN102591952A (en) * 2011-12-28 2012-07-18 用友软件股份有限公司 Data query device and data query method based on semanteme

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0998714A1 (en) * 1997-07-22 2000-05-10 Microsoft Corporation System for processing textual inputs using natural language processing techniques
US7774198B2 (en) * 2006-10-06 2010-08-10 Xerox Corporation Navigation system for text
US9286345B2 (en) * 2009-06-12 2016-03-15 International Business Machines Corporation Query tree navigation
US8983989B2 (en) * 2010-02-05 2015-03-17 Microsoft Technology Licensing, Llc Contextual queries
MY151371A (en) * 2010-12-28 2014-05-30 Mimos Berhad A semantic similarity matching system and a method thereof

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1225517A2 (en) * 2001-01-17 2002-07-24 International Business Machines Corporation System and methods for computer based searching for relevant texts
US20070288436A1 (en) 2006-06-07 2007-12-13 Platformation Technologies, Llc Methods and Apparatus for Entity Search
US20090164441A1 (en) 2007-12-20 2009-06-25 Adam Cheyer Method and apparatus for searching using an active ontology
US20090171921A1 (en) * 2007-12-28 2009-07-02 Sybase, Inc. Accelerating Queries Based on Exact Knowledge of Specific Rows Satisfying Local Conditions
CN101630314A (en) * 2008-07-16 2010-01-20 中国科学院自动化研究所 Semantic query expansion method based on domain knowledge
CN102591952A (en) * 2011-12-28 2012-07-18 用友软件股份有限公司 Data query device and data query method based on semanteme

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2959405A4 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016119874A1 (en) * 2015-01-30 2016-08-04 Longsand Limited Selecting an entity from a knowledge graph when a level of connectivity between its neighbors is above a certain level
US11030534B2 (en) 2015-01-30 2021-06-08 Longsand Limited Selecting an entity from a knowledge graph when a level of connectivity between its neighbors is above a certain level
WO2017079217A1 (en) * 2015-11-05 2017-05-11 Microsoft Technology Licensing, Llc Techniques for digital entity correlation
CN108292310A (en) * 2015-11-05 2018-07-17 微软技术许可有限责任公司 For the relevant technology of digital entities
US10628490B2 (en) 2015-11-05 2020-04-21 Microsoft Technology Licensing, Llc Techniques for digital entity correlation
CN106250393A (en) * 2016-07-13 2016-12-21 广州安望信息科技有限公司 The short text understanding method of a kind of knowledge based collection of illustrative plates and device
CN106250393B (en) * 2016-07-13 2017-08-25 广州安望信息科技有限公司 The short text understanding method and device of a kind of knowledge based collection of illustrative plates
WO2018028443A1 (en) * 2016-08-11 2018-02-15 阿里巴巴集团控股有限公司 Data processing method, device and system
US10789425B2 (en) * 2017-06-05 2020-09-29 Lenovo (Singapore) Pte. Ltd. Generating a response to a natural language command based on a concatenated graph
US20180349353A1 (en) * 2017-06-05 2018-12-06 Lenovo (Singapore) Pte. Ltd. Generating a response to a natural language command based on a concatenated graph
US10776409B2 (en) 2017-06-21 2020-09-15 International Business Machines Corporation Recommending responses to emergent conditions
US10803101B2 (en) 2017-06-21 2020-10-13 International Business Machines Corporation Recommending responses to emergent conditions
EP3704601A4 (en) * 2017-10-31 2020-09-09 Yext, Inc. Knowledge search engine platform for enhanced business listings
US11521252B2 (en) 2017-10-31 2022-12-06 Yext, Inc. Method, system, and non-transitory computer readable medium for enhanced business listings
US12039272B2 (en) 2018-10-13 2024-07-16 IPRally Technologies Oy Method of training a natural language search system, search system and corresponding use
CN111753198A (en) * 2020-06-22 2020-10-09 北京百度网讯科技有限公司 Information recommendation method and device, electronic equipment and readable storage medium
CN111753198B (en) * 2020-06-22 2024-01-12 北京百度网讯科技有限公司 Information recommendation method and device, electronic equipment and readable storage medium
EP4131022A1 (en) * 2021-08-06 2023-02-08 Beijing Baidu Netcom Science Technology Co., Ltd. Method and apparatus of determining location information, electronic device, storage medium, and program product
CN114297404A (en) * 2021-12-29 2022-04-08 北京信息科技大学 Knowledge graph construction method for field evaluation expert behavior track
WO2023148558A1 (en) * 2022-02-07 2023-08-10 International Business Machines Corporation Building knowledge graphs based on partial topologies formulated by users

Also Published As

Publication number Publication date
EP2959405A4 (en) 2016-10-12
CN105900081B (en) 2020-09-08
CN105900081A (en) 2016-08-24
EP2959405A1 (en) 2015-12-30

Similar Documents

Publication Publication Date Title
US11868357B2 (en) Search result ranking and presentation
US11928168B2 (en) Question answering using entity references in unstructured data
CN105900081B (en) Search based on natural language processing
US10108700B2 (en) Question answering to populate knowledge base
US20160063106A1 (en) Related Entity Search
CN108959394B (en) Clustered search results
US10235423B2 (en) Ranking search results based on entity metrics
US9875320B1 (en) Providing search results based on sorted properties
US10055462B2 (en) Providing search results using augmented search queries
US20160117349A1 (en) Collective reconciliation
US20240362287A1 (en) Question answering using entity references in unstructured data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13875916

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2013875916

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE