Natural Language Query Responses

Sharing is caring!

Natural Language Query Responses at Google

The nature of the Internet and the ease with which searchers can access the Web from many sources can enable searchers to share information and search for information related to their interests.

Searchers may share or search for things such as:

  • Photographs
  • Videos
  • Music
  • Blogs
  • Messages
  • Comments
  • Other information

This patent solves this problem:

Much information does not get recorded or shared because conventional communication and recording information can be cumbersome to set up.

You’ve probably seen this on the Web and wondered how the information you may be recording might become useful.

An App Example

Some devices and applications allow searchers to record and store certain specific types of information and receive summaries of the recorded information.

Fitness and exercise tracking devices allow searchers to enter the types and amount of food items eaten every day, the amount of exercise performed, a weight loss or calorie goal, etc.

Those devices can only store a limited amount of information.

They cannot derive information from natural language declarations and text entries.

Other solutions require searchers to enter information in predetermined formats explicitly.

Some devices may provide searchers with a limited amount of feedback in the form of summary information generated from the information entered by the searcher and/or the limited information stored on these devices.

When people share information with a computer system like this, there are times when they might want to search for that information too.

Finding Data to Use in Natural Language Query Responses

This patent lets you search for information on a computer. It aggregates information from natural language declarations provided by a searcher and inferences based on that information.

The information from natural language declarations is stored in the form of structured tuples. This patent doesn’t tell us about is how this information might be set up on the Web to make it useful for this patent.

I have written about Google collecting entity information and tuple information to make this kind of information searchable. I wrote Entity Extractions for Knowledge Graphs at Google and Extracting Entities with Automated Data Wrappers to describe how Google might better understand entity information and tuples that it finds on web pages, and extract that information. Those extraction processes fit well with this patent, describing some of the next steps in using that data.

But we are told what happens to those entities and tuples once they are found on web pages.

This patent tells us that:

Segments of the tuples may be linked to knowledge graphs, social graphs, and/or entity graphs of structured information, which may provide inferences and feedback to the searcher.

How to Respond to a Query

The patent shows a system for analyzing and responding to a searcher query.

That system would store a set of instructions and a processor to execute the instructions to receive a searcher’s query and divide the query into query segments based on grammar rules.

The processor uses the instructions to:

  • Choose a first segment from the query segments
  • Receive a tuple stored in association with the searcher
  • Select a second segment from the at least one tuple

The processor executes the instructions to receive information related to the first and second segments and responds to the query based on the information.

A method is provided for analyzing and responding to a searcher query.

The processors receive a query from the searcher and divide the query into query segments based on grammar rules.

The instructions also cause the processors to select a first segment from the query segments, receive at least one tuple stored in association with the searcher, and select a second segment from at least one tuple.

In addition, the instructions cause the processors to receive information related to the first and second segments, generate a response to the query based on the received information, and transmit information to a display device for displaying the response to the searcher.

This Natural Language Query Responses patent is at:

Systems and methods for generating responses to natural language queries
Inventors: Ian Macgillivray, Engin Cinar Sahin, Emma Sarah Persky, Max Bogue, Angela Ni-Hwey Chang, and Konrad Piotr Delong
Assignee: Google LLC
US Patent: 10,990,603
Granted: April 27, 2021
Filed: February 20, 2019

Abstract

Computer-implemented systems and methods are provided to analyze and respond to a searcher query.

Consistent with certain embodiments, systems and methods are provided to receive a query from the searcher and divide the query into query segments based on a set of grammar rules.

Further, systems and methods are provided for selecting the first segment from the query segments, receiving at least one tuple stored in association with the searcher, selecting a second segment from at least one tuple.

Additionally, systems and methods are provided to receive information about the first and second segments and respond to the query based on the received information.

In addition, systems and methods are provided for transmitting information to a display device for presenting the response to the searcher.

How Are Grammar Rules Used for Natural Language Declarations?

We are told that this patent presents computer-implemented systems and methods for aggregating and storing information derived from natural language declarations made by searchers.

Natural Language declaration

A searcher may receive that natural language declaration at a computer.

The searcher may evaluate the natural language declaration to identify data items based on a set of grammar rules (e.g., nouns, verbs, prepositions, adverbs, adjectives, subject, predicate, etc.).

That information may be combined into tuples and stored in association with the searcher.

This patent also tells us how it may generate natural language query responses to a searcher.

The natural language query may be received from a searcher at a client device.

After the natural language declaration is evaluated to identify query segments based on a set of grammar rules (e.g., nouns, verbs, subject, predicate, etc.).

The searcher may then access a knowledge graph to retrieve information about one or more query segments. The searcher can also look for data items associated with the searcher.

Query Responses may be created based on the retrieved information.

How Natural Language Query Responses May be Stored

The system may include computers owned or operated by searchers, who add information to the Web.

These computing devices include smartphones, tablets, netbooks, electronic readers, personal digital assistants (PDAs), web-enabled television sets, personal computers, laptop computers, desktop computers, and/or other types of electronics or communication devices.

They may transmit information (e.g., a natural language declaration by the searcher or a natural language query based on input provided by searchers) through the network to an appropriate server, such as a server.

They may also receive information (e.g., natural language query responses), to requests, from the server through a network.

Those servers may implement or provide search engines, natural language interpretation and classification engines, sets of grammar rules, or applications or programs to receive and store natural language declarations or generate natural language query responses.

Information Contained in Knowledge Graphs

A knowledge graph may include one or more logically and/or physically separate databases configured to store data.

The data stored in the knowledge graph may be received from the server, client devices, and/or provided as input using conventional methods.

Data stored in the knowledge graph may be documents, presentations, textual content, audio files, video files, information, and data items stored in the form of tuples, grammar rules, and various other electronic data any other combination thereof.

A knowledge graph item about any subject or data item may include a corpus of information and content items associated with the subject of the data item.

A corpus of information can include names, places, things, events, and/or content items.

The knowledge graph may include links to the corpus of information. It can also include references or links to other knowledge graph items and/or databases containing the corpus of information.

An Example of Data in a Knowledge Graph

A knowledge graph item for a data item “banana” may include a corpus of information including:

  • Varieties of banana
  • Where banana is cultivated
  • Pricing and availability of banana
  • Nutritional content in a banana
  • Recipes based on the use of banana
  • Festivals or events associated with banana
  • Etc.

The knowledge graph item may include additional information such as the frequency with which searchers may have searched for information or posted comments regarding “banana,” comments, messages, and/or blog posts regarding bananas, etc.

These are only examples. Audio and video information may be included in the knowledge graph item.

The tuples database may store information obtained from natural language declarations and social graphs of the searcher.

That information could include documents, presentations, news items, articles, blog posts, books, book reviews, magazines, magazine articles, audio or video recordings, text messages, e-mail messages, social media content, or any other type of information authored by a searcher and/or the searcher’s social media contacts or by preferred contacts identified by the searcher.

It may also contain search logs with search strings used by the searcher to search for content items and/or quotes.

You may store information in the tuples database in the form of tuples associated with the searcher.

The knowledge graph may be implemented using a single computer-readable storage medium.

It may be maintained in a network-attached storage device, a storage area network, or a combination.

It can also be maintained and queried using numerous languages, such as SQL, MySQL, and IBM DB2.RTM., Microsoft Access.RTM., PERL, C/C++, Java.RTM., etc.

It may also be a standalone database accessible through a network or associated with the part of a system or environment that may be accessible to client devices and/or other components.

The Tuples database may have a structure and function similar to the knowledge graph and may be maintained and queried like the knowledge graph.

The system may include only a knowledge graph, which may perform both a knowledge graph and tuples database.

Or, the system may include only a tuples database, which may perform both a knowledge graph and a tuples database.

And the system may include both knowledge graph and tuples database.

The patent tells us that this system may include any number of knowledge graphs, tuples databases, and/or any other databases.

The Process Behind Using Natural Language Declarations to Respond to a Query

A natural language declaration may be a sentence, quote, phrase, question, etc., written or expressed in some form by a searcher.

“Natural language” as used here refers to how searchers may communicate with each other using spoken or written words in a language.

A sentence, such as “I ate an apple,” may represent a natural language declaration.

A phrase such as “love yogurt” or “go USA” may represent a natural language declaration.

A natural language declaration may also include a paragraph or collection of sentences or phrases.

This process includes receiving a natural language declaration, including accessing or receiving a natural language declaration from a storage or database, such as a storage or database associated with the system.

Receiving a natural language declaration may include retrieving the natural language declaration from data stored in the main memory or storage medium of client devices and/or servers.

Receiving a natural language declaration may also include receiving the natural language declaration when searcher inputs or provides the natural language declaration using the I/O devices associated with client devices with the server.

Grammar Rules for Natural Language Query Responses

The process can also include accessing a set of grammar rules.

Grammar rules can identify or classify words or phrases of a natural language declaration and associate contextual meaning with the phrases.

Grammar rules based on the English language may help determine whether a word or phrase used in the natural language declaration constitutes a noun, pronoun, verb, preposition, adjective, adverb, conjunction, subject, predicate, etc.

They may help categorize words in the natural language declaration.

As an example, grammar rules may indicate that “banana,” “an apple,” “carrot,” “milk,” etc. are food items and further that “banana” and “apple” are fruits, “carrot” is a vegetable, and “milk” is a dairy product.

They can help associate words in a natural language declaration with contextual meanings.

They can also relate to mathematics or scientific disciplines to help to assign meanings to symbols or scientific terms or provide context to the jargon used in a particular branch of mathematics or science.

For example, grammar rules related to mathematics may help identify symbols such as “=” (equal), “>” (greater than), “<” (less than) etc.

A relation to mathematics may be made and can help recognize shapes such as a triangle, square, pentagon, and hexagon may include three, four, five, or six sides, respectively.

Grammar rules may be based on positional relationships of the words or phrases in the natural language declaration.

A declaration containing a matrix of text and/or numbers with column headings, the column headings, and/or the relative positions of the columns, for example, from left to right, may be used to identify and/or classify the text and/or numbers.

These rules may also include rules to allow interpretation of certain natural language terms.

For example, articles “a,” or “an,” may be associated with a quantity of “one.”

Similarly, for example, the words “double,” “triple,” or “quadruple” may be associated with a quantity of “two,” “three,” or “four,” respectively.

By way of another example, terms like “exercise,” “running,” “walking,” “aerobics,” etc., may be associated with a decrease in calories and/or increase in muscle mass.

The rules may be stored in a knowledge graph, tuples database, and/or any other storage associated with the system.

Or, the rules may be stored in an entity graph of known entities such as nouns (objects of things), verbs (activities), etc.

Information indicating that certain nouns represent food items, fruits, or vegetables, may be stored in an entity graph.

That entity graph may include information regarding the nutritional content of various foods or calories burnt in a certain activity.

Also, commonly known information such as the number of days in a year, number of hours in a day, etc., may be stored in an entity graph.

Accessing grammar rules may include processes similar to those described above about natural language declarations from storage or database associated with the system.

Also, new grammar rules can be learned.

This process may allow a searcher to provide one or more natural language declarations and identify and/or classify each word or group of words in the one or more natural language declarations provided by the searcher.

The searchers’ natural language declarations may train the system to classify and/or identify words or phrases.

The system may then derive grammar rules based on the classifications provided by the searcher and store the grammar rules in a knowledge graph, tuples database, or any other storage associated with the system.

Breaking Natural Language Declarations into Segments

The process may also include dividing the natural language declaration into segments.

Natural Language Declaration Segments

A segment may constitute a data item represented by one word or groups of words selected from the natural language declaration.

Segments in a natural language declaration may be identified using classifications based on grammar rules.

By way of example, classifications based on English language grammar rules may be used to divide the natural language declaration into parts of speech, for example, nouns, pronouns, verbs, etc.

The natural language declaration “I ate a banana yesterday” may be divided into five portions, the pronoun “I,” the verb “ate,” the noun “banana,” the article “a,” and the date indicator “yesterday.”

Grammar rules may interpret one or more of these portions and associate contextual meanings to generate segments corresponding to the natural language declaration.

The article “a” may be identified as an indicator of the number of bananas that the searcher ate and may be represented by a segment “one.”

The word “yesterday” may be interpreted as a date on which the declaration was made.

A searcher could make a declaration on Jun. 15, 2014, and the word “yesterday” may be represented by a segment “20140614,” indicating that the searcher ate the banana on Jun. 14, 2014.

Natural language declarations may be divided into segments based on grammar rules in many other ways.

A list or matrix of text or numbers may be divided based on the separator symbol separating the text or numbers.

A list of text or numbers separated by commas, tabs, or spaces may be divided into segments consisting of the text or numbers between a pair of commas, tabs, or spaces.

Similarly, for example, a matrix of numbers or text may be divided into segments based on the row and column position of the numbers or text in the matrix.

Another example is that the word “hexagon” may be represented by segments characterizing the geometric shape based on mathematical grammar rules.

Thus, the word hexagon may be represented by segments including, for example, “shape,” “polygon,” “regular,” “six-sided,” etc.

Using Tuples Based on Segments from Natural Language Declarations

This process may also include generating several tuples.

A tuple consists of two or more segments stored in association with each other.

Triples may be from the segments of a natural language declaration.

A triple, as used here, is a tuple, which consists of three segments.

Tuples or triples may be generated by selecting one or more segments corresponding to a natural language declaration.

A tuple may also include segments such as labels and/or segments representing characteristics of a segment included in the tuple.

Characteristics of segments may be derived from the grammar rules used to divide the natural language declaration into segments.

Or those characteristics of segments may be obtained from an entity graph.

The following triples may represent the natural language declaration “I ate a banana yesterday” provided by a searcher “XYZ”: “XYZ/action-eat/label 1,” “label 1/food/banana,” “label 1/quantity/1,” and “label 1/date/20140614.”

A segment “label 1” may be selected to be a part of each triple corresponding to a particular natural language declaration, thereby helping to identify triples associated with that particular natural language declaration.

The searcher identifier such as “XYZ” may serve the same function as a label.

The number of triples generated for different natural language declarations may be different. For example, it may depend on the amount of information included in each natural language declaration and/or the amount of information derived from grammar rules or entity graphs used to process the natural language declaration.

Personal Tuples for Natural Language Query Responses

In addition to tuples related to the natural language declaration, the process may generate personal tuples based on a searcher’s profile information or other social graph information associated with the searcher.

Personal triples may include three data items, at least one of which may comprise, for example, gender, age, physical characteristics, hobbies, and/or interests of the searcher.

Personal triples may also be from natural language declarations made by the searcher. This is true in emails, search queries, blogs, personal electronic diaries or journals, information in a searcher profile, or information including photos, music, or other hobbies and interests shared by searchers on social media.

By way of example, personal triples for a searcher “XYZ” may include “XYZ/age/28,” “XYZ/gender/male,” “XYZ/hobby/photography,” etc.

Searchers may be provided with an opportunity to control whether the disclosed systems or methods collect searcher information. The searcher information can be information about a searcher’s social network, social actions or activities, profession, a searcher’s preferences, or a searcher’s current location. It can also control whether and/or how to receive natural language declarations that may be more relevant to the searcher.

In addition, certain data may be treated in one or more ways before it is stored or used to remove personally identifiable information.

For example, a searcher’s identity may be treated so that no personally identifiable information can be determined for the searcher. Or a searcher’s geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level) so that a particular location of searcher cannot be determined.

Thus, that searcher may control how information is collected about the searcher and what information is stored in personal triples using the disclosed systems and methods.

The process may also include storing the generated tuples.

In association with the searcher who provided the natural language declaration, Tuples may be stored in the tuples database.

Tuples may also be stored in a knowledge graph or any other database or storage associated with the system in other embodiments.

Tuples can also be stored in separate databases associated with the system, and an association table may be used to link the tuples to a searcher.

A flowchart of an example process generating triples from a natural language declaration

The process may be implemented on the server without access to client devices and/or networks.

The process may be implemented on client devices without accessing the server and/or network.

The process may use one or more of the client’s devices and/or servers communicating via the network.

Modifications may be made to the process by, for example, adding, combining, removing, and/or rearranging the steps for the process.

The process may include receiving segments of a natural language declaration.

The client device may receive the segments, including processes similar to those described above concerning accessing a natural language declaration from storage or database associated with the system.

It may also include selecting a segment previously.

Selecting the segment may include arbitrarily selecting a segment from the list of segments associated with the natural language declaration.

Selecting the segment may also include selecting a segment based on a relative ordering or ranking of the segments associated with the natural language declaration.

Grammar rules may rank or order the segments associated with the natural language declaration.

For example, a word identified as a “subject,” representing an actor in the natural language declaration, may be ranked higher than a word identified as a “verb,” representing an action performed by the actor. Similarly, the “verb” may be ranked higher than a noun identified as a “predicate,” on which or related to which the actor may act.

Other segments of the natural language declaration may be assigned lower rankings compared to the subject, verb, and/or predicate.

The natural language declaration segment may be ranked based on their position in the natural language declaration.

Grammar Rules for Rankng Segments Associated with a Natural Language Declaration

A variety of grammar rules may be used for ranking segments associated with a natural language declaration.

In the natural language declaration “I ate a banana yesterday,” the subject “I” may be represented by a segment “XYZ” corresponding to an identifier of the declarant and may have a higher rank than the verb “ate” or the predicate “banana.”

The segment “one” corresponding to the article “a” and the segment “20140614” corresponding to “yesterday” may be ranked lower than the subject, verb, and predicate.

A segment “XYZ” may be selected from among all the segments corresponding to the natural language declaration “I ate a banana yesterday.”

The process may also include generating a triple, including the selected segment and two other segments.

One of the other two segments may be a label, for example, “label 1,” which may be used to associate or relate triples corresponding to a particular natural language declaration.

It is contemplated that the searcher identifier, “XYZ,” may perform a label function.

The remaining segment of the triple may be a segment selected from the segments associated with the natural language declaration but may differ from the previously selected segments.

Thus the previously unselected segment corresponding to the verb “eat” may be selected as a second segment for generating the triple “XYZ/action-eat/label 1,” corresponding to the natural language declaration “I ate a banana yesterday.”

The process may also include selecting another segment different from the previously selected segments.

Selecting another segment may include selecting a data item not included in previously generated triples.

This process may also include generating a new triple, including a previously unselected segment of the natural language declaration and/or the label used to generate the triple.

Some of the triple segments may include segments representing characterized selected segments, as determined by the grammar rules used to generate the segments.

For example, a new triple such as “label 1/food/banana” may be generated in this step.

The data item “label 1” may be the same as the label used in the triple “XYZ/action-eat/label 1.”

The previously unselected data item “banana,” corresponding to the example natural language declaration “I ate a banana yesterday,” may be selected for the generation of the new triple.

Grammar rules or information from the knowledge graph, entity graph, or database associated with the system may be used to determine that “banana” is a “food.”

The characteristic of “banana,” namely “food,” may be selected as a segment to generate the new triple “label 1/food/banana.”

As can be seen in this example, “label 1” relates the triple “label 1/food/banana” generated to the triple “XYZ/action-eat/label 1” because the data item “label 1” occurs in both triples.

The process may also include determining whether all segments of the natural language declaration have been selected for the generation of triples.

When it is determined that all segments have not been selected for the generation of triples, the process may return to select another segment different from the previously selected segments.

When it is determined that all the segments received have been selected for the generation of triples, the process may store the triples associated with the searcher.

A flowchart of Generating Inferences in Natural Language Query Responses or Declarations

This process may include receiving a natural language query or declaration.

Natural language queries may take many different forms.

A natural language query may be identified as a natural language declaration that ends with a question mark.

Such a natural language query may include text such as “Am I eating enough potassium?”

The symbol “?” may identify the natural language declaration as a natural language query.

Specific words in the natural language declaration may be used to determine whether it is a query.

Question words, such as “who,” “what,” “why,” “when,” “where,” “how,” etc., may indicate that the natural language declaration is a natural language query.

Grammar rules may be used to determine whether a natural language declaration may be a natural language query.

A natural language declaration such as “Can I eat more apples” may be determined to be a natural language query by detecting that the words “Can I” precede the verb “eat.”

For example, many other types of grammar rules, for example, based on the usage, position, or contextual meaning of the words in the natural language declaration, may be used to identify a natural language query.

A searcher may input the natural language query into the client device using one or more I/O devices associated with the client device.

A client device may receive the natural language query from the server or vice-versa.

The process may also include accessing grammar rules.

Grammar rules may be used to determine whether a natural language declaration is a natural language query.

Grammar rules may be used to identify and classify various segments of the natural language query.

This process may also include dividing the natural language query into query segments.

The process may also include selecting one or more query segments from the query segments corresponding to the natural language query.

Selecting a query segment may include arbitrarily selecting the query segment from the query segment list corresponding to the natural language query.

In the natural language declaration “Am I eating enough potassium?” the subject “I” may have a higher rank compared to the verb “eat,” which may have a higher rank than the predicate “potassium.”

Further, for example, the subject “I” may be represented by a query segment “XYZ,” corresponding to an identifier of the declarant or searcher who provided the natural language query.

In this example, “XYZ” and “eat” may be selected as the query segments.

The process may include receiving tuples associated with the searcher.

Receiving tuples accessing or receiving tuples from any storage or database associated with the system.

Receiving tuples may include retrieving the tuples from data stored in the main memory or storage medium of client devices and/or servers.

Receiving tuples may include accessing the tuples stored in association with the searcher in the tuples database.

The process may also include selecting tuples related to the query segments.

Natural Language Tuple Segments

Selecting tuples may include comparing the selected query segments with tuple segments included in the tuples associated with the searcher.

A vector distance or cosine distance between the selected query segments and the tuples associated with the searcher may be used to identify tuples related to the selected query segments.

Selecting tuples may include selecting one or more tuples, representing vector distance or cosine distance less than a threshold distance, from the selected query segments.

Query segments “eat” and “potassium” may be selected from the natural language query “Am I eating enough potassium?”

Tuples associated with searcher “XYZ” related to “eat” may be selected from the tuples stored in association with searcher “XYZ.”

For example, the triples “XYZ/action-eat/label 1” and “label 1/food/banana” may be selected from the tuples associated with searcher “XYZ.”

The process of selecting tuples related to more than one selected query segment may occur sequentially or simultaneously.

For example, in a sequential process, tuples having vector or cosine distance values lower than a threshold distance from a first query segment may be selected.

This process of selecting tuples may be repeated for each of the selected query segments.

The totality of the selected tuples related to each of the selected query segments may form the set of selected tuples.

Vector or cosine distances between all selected query segments and all tuples associated with the searcher may be computed. In addition, tuples with vector or cosine distances below a threshold distance may be selected from the entire set of tuples associated with the searcher for further processing.

Selecting tuple segments may include selecting one or more segments from each of the selected tuples.

The tuple segments may be selected so that the selected tuple segments are different from the selected query segments.

Selecting tuple segments may include processes similar to those described above.

By way of example, the tuple segment “banana” from the triple “label 1/food/banana” associated with searcher “XYZ” may be selected.

The process may include receiving information related to the selected query segments and/or the selected tuple segments from a knowledge graph or entity graph.

Receiving information may include receiving first information related to the selected query segments and receiving second information related to the selected tuple segments from a knowledge graph.

Knowledge graph and/or any entity graph associated with the system may also store information in the form of tuples.

The first and second information may include knowledge graph tuples associated with the selected query segments and selected tuple segments, respectively.

Identifying knowledge graph tuples and/or entity graph tuples may include processes similar to those described above concerning computing vector distances or cosine distances.

Thus, the first information related to query segment “potassium” may be received from the knowledge graph.

For example, triples such as “potassium/min_daily_amount/1.5 g” and “potassium/max_daily_amount/2.3 g,” which provide information about the USDA recommended amount of potassium, may be obtained as triples related to the query segment “potassium.”

Similarly, second information related to the tuple segment “banana” may be obtained from a knowledge graph tuple or an entity graph tuple such as “banana/potassium/422 mg.”

Third, information may be obtained from previously unselected tuples associated with searcher “XYZ.”

For example, triples “label 1/quantity/1” and “label 1/date/20140614” associated with searcher “XYZ” may indicate the number of bananas and, therefore, the amount of potassium consumed by the searcher. “XYZ” in one day.

The process may also include generating natural language query responses.

Generating the response may include selecting data items from the received information comprising knowledge graph tuples, entity graph tuples, and/or tuples associated with the searcher.

The selected data items may generate natural language query responses.

For example, tuple segments selected from the knowledge graph tuples “potassium/min_daily_amount/1.5 g,” “potassium/max_daily_amount/2.3 g,” and “banana/potassium/422 mg” combined with the tuples “label 1/quantity/1,” and “label 1/date/20140614” associated with searcher “XYZ” may be used to infer that searcher “XYZ” has only eaten one banana yesterday and therefore only consumed 422 mg of potassium, which is much smaller than the minimum recommended amount of potassium of 1.5 g.

Thus, a response indicating to searcher “XYZ” that searcher “XYZ” should eat more potassium may be generated in the process.

Pushed Inferences Based on Tuples Associated with a Searcher

“Pushed inferences” used in this patent refer to inferences generated without receiving any natural language queries from searchers.

Tuple Segment Inference

The process may be implemented without the need to access client devices and/or networks.

And it may be implemented using one or more of the client’s devices and/or servers communicating via the network.

Modifications may be made to this process by adding, combining, removing, and/or rearranging the steps for the process.

The process may be performed as an offline process periodically.

Each time one of the client devices or server receives a natural language declaration from the searchers, the process may be performed.

The process may be performed when initiated by the searchers and/or a server administrator.

The process may include receiving tuples associated with the searcher.

Receiving tuples may include accessing or receiving tuples from any storage or database associated with the system.

Receiving tuples may include retrieving the tuples from data stored in the main memory or storage medium of client devices and/or servers.

They may also include accessing the tuples stored in association with the searcher in the tuples database.

Receiving tuples may include processes similar to those described above concerning accessing grammar rules from storage or database associated with the system.

The process may include selecting tuple segments from the tuples received.

Selecting tuple segments may include selecting one or more segments from each of the received tuples.

By way of example, the tuple segment “banana” from the triple “label 1/food/banana” associated with searcher “XYZ” may be selected.

The process may include receiving information related to the selected tuple segments from a knowledge graph or entity graph.

Knowledge graph and/or any entity graph associated with the system may also store information in the form of tuples.

Information received from the knowledge graph and/or entity graph may include knowledge graph tuples or entity graph tuples associated with the selected tuple segments.

Identifying knowledge graph tuples and/or entity graph tuples may include processes similar to those described above concerning computing vector distances or cosine distances.

Thus, the first information related to the tuple segment “banana” may be received from a knowledge graph.

For example, triples such as “banana/potassium/422 mg,” which provides information regarding the amount of potassium in a banana, may be obtained from the knowledge graph.

Triples such as “potassium/min_daily_amount/1.5 g” and “potassium/max_daily_amount/2.3 g,” which provide information about the USDA recommended amount of potassium, may be obtained as triples related to the query segment “potassium.”

The second information may be obtained from other tuples associated with searcher “XYZ.” For example, triples “label 1/quantity/1” and “label 1/date/20140614” associated with searcher “XYZ” may indicate the number of bananas and, therefore, the amount of potassium consumed by the searcher. “XYZ” in one day.

The process may also include generating an inference based on the tuples associated with the searchers.

Generating the inference may include selecting data items from the received information comprising knowledge graph tuples, entity graph tuples, and/or tuples associated with the searcher.

The selected data items may be used to generate natural language query responses.

The tuple segments selected from the knowledge graph tuples “potassium/min_daily_amount/1.5 g,” “potassium/max_daily_amount/2.3 g,” and “banana/potassium/422 mg” combined with the tuples “label 1/quantity/1,” and “label 1/date/20140614” associated with searcher “XYZ” may be used to infer that searcher “XYZ” has only eaten one banana yesterday. They have therefore only consumed 422 mg of potassium, which is much smaller than the minimum recommended amount of potassium of 1.5 g.

Thus, an inference indicating to searcher “XYZ” that searcher “XYZ” should eat more potassium may be generated.

Tuples related to other searchers may be obtained from a knowledge graph.

Tuples indicating how mother searchers in New York ate many bananas could determine an average amount of potassium being consumed by other searchers in New York.

The amount of potassium consumed by searcher “XYZ,” for example, 422 mg, may be compared with the average amount of potassium to infer that searcher “XYZ” eats less potassium than other searchers in New York.

Natural Language Query Responses

The searcher interface may present one or more natural language query responses.

The searcher interface may include a display window.

The display window may include a logo portion for displaying a logo, a natural language declaration or query input portion, and an icon portion.

The Logo portion may display a logo related to a provider of the searcher interface or a system provider.

The natural language declaration or query input portion may allow a searcher to enter a natural language query or declaration.

A searcher may enter a natural language declaration or query using conventional methods (e.g., data entry, data transfer, data uploading, etc.).

The searchers may enter a natural language declaration or query using one or more input/output devices associated with client devices and/or servers.

An example natural language declaration or query portion displays the natural language declaration such as, “I ran two miles yesterday.”

The Icon portion may display an icon indicating that the searcher may request a response to the natural language declaration or query by activating the icon portion.

For example, the icon portion may display an icon of a magnifying glass to indicate that activating the icon portion will cause the searcher interface to display information related to the natural language declaration or query entered in the portion. The searchers may activate the icon portion using one or more input/output devices.

The display window may additionally or include links that may enable searchers to filter natural language query responses.

The link may allow searchers to filter the responses to show only websites.

A link may also allow searchers to only display images corresponding to the natural language declaration or query.

Searchers may only display videos corresponding to a natural language declaration or query.

The display window may display images showing charts and graphs in response to the natural language declaration or query entered.

An example would be a bar chart showing the number of calories burnt by the searcher on each day of the week based on the exercise regimen followed by the searcher.

The bar chart may include a data item showing the number of calories burnt by the searcher the previous day by running two miles.

The display window may also include a display portion which may display a set of links to articles, blogs, reports, messages, comments, and/or other content items related to the natural language query entered.

Hyperlink Inferences

Hyperlink 1 may be a universal resource locator (“URL” or another pointer to an article about the experience of another searcher when that searcher ran two miles.

Similarly, hyperlink 2 may be a URL or pointer to another article indicating how much weight the searcher may lose by running two miles each day.

Although the display portion displays only two links, the display portion may display any number of links.

The display portion may initially display only one or two links. It may include a scroll bar or other graphical widget to allow searchers to scroll the text to see additional links not initially displayed in the display portion.

Sharing is caring!

8 thoughts on “Natural Language Query Responses”

  1. Hi Bill,

    Thank you for continuing to write these really informative articles. You provide probably the best SEO content on the web that allows us to peer behind the curtain of how Google works.

    I remember reading your blog when I first started in SEO over a decade. I am grateful and impressed that you’re still providing such useful content.

    Daniel

  2. Hi Daniel,

    Thanks. I am glad that you liked this post. There are a few natural language query response patents recently from Google. I’m working on a couple more.

    There is a lot to learn in search still. They are keeping it interesting.

  3. Good information to read. I am also working on a natural language processing project and this is very useful for me.

  4. I’m still learning and the more I read the more I realise I have to learn! Thankfully have great blogs like this. Appreciate the content.

  5. Amazing post! Your given information about Natural Language Query Responses is really informative and useful. Thanks for sharing your blog post.

  6. I love reading your posts! This one is so true and so crucial and I’m just beginning to learn that. Failure is definitely not an option and as I learn, I can’t wait to gain more readership and for the blog to grow!

  7. It’s fantastic. This is one of the most well-known websites, with a variety of useful information. Keep up the good job; your writing is fantastic, and I really appreciate this page.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.