CN113536158A - Providing updated answers to queries - Google Patents

Providing updated answers to queries Download PDF

Info

Publication number
CN113536158A
CN113536158A CN202110372455.6A CN202110372455A CN113536158A CN 113536158 A CN113536158 A CN 113536158A CN 202110372455 A CN202110372455 A CN 202110372455A CN 113536158 A CN113536158 A CN 113536158A
Authority
CN
China
Prior art keywords
answer
computing device
remote computing
updated
query
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN202110372455.6A
Other languages
Chinese (zh)
Inventor
林友仁
约翰·布利策
马里奥·塔内夫
阿里·埃萨姆·阿里·埃尔克尔什
梅加·穆哈贝
罗帕利·维基
萨默尔·哈桑·哈桑
米拉德·阿莱姆扎德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 LLC filed Critical Google LLC
Publication of CN113536158A publication Critical patent/CN113536158A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • 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/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • 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/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The present disclosure relates to providing updated answers to queries. The computing system receives a query provided by user input from a remote computing device. The computing system identifies a plurality of search results responsive to the query. The computing system determines that the query matches a first question in a set of questions having a corresponding answer in the set of answers. The computing system transmits the first information for receipt by the remote computing device to cause the remote computing device to present a plurality of search results responsive to the query and a first answer corresponding to the first question. The computing system determines that the first answer has been updated. The computing system sends the second information for receipt by the remote computing device to cause the remote computing device to present a notification that the first answer has been updated.

Description

Providing updated answers to queries
Cross Reference to Related Applications
This application claims priority to U.S. provisional application serial No. 63/009,893, filed on 14/4/2020.
Technical Field
This document typically involves providing an updated answer to the query.
Background
Individuals can use computing devices to access information on the internet that can answer the individual's questions. For example, a person may use a web browser of a laptop computer to enter a search query at a search engine web page. In response to entering the search query, the search engine may provide the laptop with information that the laptop used to render the web page presenting the search result list. Sometimes, the web page includes information that precedes the search result list and represents the determined answer to the query.
Sometimes, the answers to the user questions may change over time. Examples of such situations may occur during an infection outbreak during which information such as optimal preventive measures may be altered on a daily or weekly basis. In these cases, after a certain amount of time, the information provided by the search engine may no longer be accurate. This potential inaccuracy of information may be confusing to users and may cause those users to repeatedly search for updated answers to common questions even if no such updates are present.
Disclosure of Invention
This document describes techniques, methods, systems, and other mechanisms for providing updated answers to queries. In general, a computing system may be configured to receive a user query and provide an answer to the query, where the answer is sometimes presented in a search results page that also includes a plurality of search results. The computing system may monitor the source of the answer and, upon determining that the answer has been updated, notify the user who previously submitted the query related to the answer that the answer has been updated. A notification of the updated answer may be presented to the user on a lock screen or notification panel of the computing device.
As an additional description of the embodiments described below, the present disclosure describes the following embodiments.
Embodiment 1 is a method comprising receiving, by a computing system from a remote computing device, a query provided by user input; identifying, by the computing system, a plurality of search results responsive to the query; determining, by the computing system, that the query matches a first question in a set of questions having a corresponding answer in a set of answers, the first question having a corresponding first answer in the set of answers; sending, by the computing system and in response to the computing system receiving the query, first information for receipt by the remote computing device to cause the remote computing device to present: (i) the plurality of search results in response to the query, and (ii) the first answer corresponding to the first question; determining, by the computing system, that the first answer has been updated since the computing system sent the first information to cause the remote computing device to present the plurality of search results and the first answer; determining, by the computing system, that a criterion has been met that informs the remote computing device that the first answer has been updated; and sending, by the computing system, second information for receipt by the remote computing device to cause the remote computing device to present a notification that the first answer has been updated.
Embodiment 2 is the method of embodiment 1, wherein determining that the query matches the first question comprises using one or more natural language processing algorithms to determine that (i) the query is asking a question, and (ii) the question asked by the query matches an aspect of the first question.
Embodiment 3 is the method of any one of embodiments 1 or 2, wherein: the content of each answer in the answer set is crawled from various websites through a web crawling algorithm; and the first answer represents content selected from the web page in response to crawling the web page by the web crawling algorithm.
Embodiment 4 is the method of any of embodiments 1-3, wherein sending the first information for receipt by the remote computing device causes the remote computing device to concurrently present the plurality of search results and the first answer.
Embodiment 5 is the method of embodiment 4, wherein: sending the first information for receipt by the remote computing device to cause the remote computing device to present the plurality of search results and the first answer concurrently with the first question; and the first answer is different from the plurality of search results and presented in a different manner than presentation of the plurality of search results.
Embodiment 6 is the method of any of embodiments 1-5, wherein sending the first information for receipt by the remote computing device causes the remote computing device to present a link associated with the first answer that, when selected by user input, causes the remote computing device to navigate to a web page from which the first answer was obtained.
Embodiment 7 is the method of any of embodiments 1-6, wherein determining that the first answer has been updated includes the computing system determining that content in a web page representing the first answer has changed.
Embodiment 8 is the method of embodiment 7, wherein determining that the content in the web page representing the first answer has changed comprises determining that the content in the web page representing the first answer has changed to represent an updated answer that answers the first question more accurately than the first answer.
Embodiment 9 is the method of any one of embodiments 1-8, wherein: sending the first information for receipt by the remote computing device to cause the remote computing device to present a selectable user interface element that a user input at the remote computing device can select to subscribe to an update to the first answer; and wherein determining that the criterion of notifying the remote computing device that the first answer has been updated has been met comprises determining that a user input has selected the user interface element presented by the remote computing device to subscribe to an update to the first answer.
Embodiment 10 is the method of any of embodiments 1-9, wherein determining that the criterion that notifies the remote computing device that the first answer has been updated has been met comprises determining that: the remote computing device provides the query for receipt by the computing system within a determined recent amount of time that the first answer was updated or that the computing system determined that the first answer was updated.
Embodiment 11 is the method of any of embodiments 1-10, wherein determining that the criterion of notifying the remote computing device that the first answer has been updated has been met comprises determining that a user input at the remote computing device interacted with the presentation of the first answer by the remote computing device.
Embodiment 12 is the method of any one of embodiments 1-11, wherein: determining that the first answer has been updated comprises the computing system determining that a web page from which the first answer was obtained has changed; and determining that the criterion of notifying the remote computing device that the first answer has been updated has been met comprises analyzing a web history of a user account of the remote computing device to determine that the user account has not visited the web page since the web page change.
Embodiment 13 is the method of any of embodiments 1-12, wherein sending the second information to cause the remote computing device to present the notification that the first answer has been updated comprises sending the second information to cause the remote computing device to present a notification on a lock screen of the remote computing device indicating that the first answer has been updated.
Embodiment 14 is the method of embodiment 13, wherein the notification is configured such that user selection of the notification causes the remote computing device to present the updated first answer without the user entering a query.
Embodiment 15 is the method of embodiment 13 or 14, wherein the notification is configured such that user selection of the notification causes the remote computing device to present the updated first answer concurrently with the first question.
Embodiment 16 is the method of any of embodiments 13-15, wherein the notification is configured such that user selection of the notification causes the remote computing device to display a search results page presenting: (i) a plurality of search results, and (ii) an updated first answer.
Embodiment 17 is a computer system comprising one or more processors; and one or more non-transitory computer-readable devices comprising instructions stored thereon, which, when executed by the one or more processors, cause the computer system to perform operations of the method of any of embodiments 1-16.
Embodiment 18 is a computer-implemented method comprising: receiving, by a computing system from a remote computing device, a query provided by a user input; identifying, by the computing system, a plurality of search results responsive to the query; sending, by the computing system and in response to receiving the query, first information for receipt by the remote computing device to cause the remote computing device to present the plurality of search results in response to the query; determining, by the computing system, that the query matches a first question in a set of questions having a corresponding answer in a set of answers, the first question having a corresponding first answer in the set of answers; determining, by the computing system, that the first answer has been updated since the computing system sent the first information to cause the remote computing device to present the plurality of search results; determining, by the computing system, that a criterion has been met that informs the remote computing device that the first answer has been updated; and sending, by the computing system, second information for receipt by the remote computing device to cause the remote computing device to present a notification that the first answer has been updated.
Embodiment 19 is a computer system comprising one or more processors; and one or more non-transitory computer-readable devices comprising instructions stored thereon, which, when executed by the one or more processors, cause the computer system to perform operations of the method of embodiment 18.
In some cases, particular embodiments may realize one or more of the following advantages. Informing the user that updates to a previously issued query may not only provide the user with updated information, but may indeed provide the updated information more quickly than if the user repeatedly searched for updates on their own. In addition, providing updates to the user from sources determined to be authoritative may guide the user toward accurate information, while users searching for updated information may locate conflicting or inaccurate information themselves. Providing accurate information may help save lives in situations where the information is relevant to a public emergency (e.g., an infection outbreak or a natural disaster).
Configuring the system to identify updates to answers, identify users who have previously expressed interest in those answers, and notify the users of the updated answers may save significant computing resources and speed up information delivery to the user's computing device. For example, notifying the user immediately upon determining that an updated answer is available may provide information to the user more quickly than if the user repeatedly searched for information. By proactively providing information to the user, such a system may eliminate the need for the user to even type in a query. As such, the system described herein may limit or eliminate the need for a user device to transmit requests to a remote computing system, and thus may conserve computing resources associated with such requests. Because the user may not know when updated information is available, and thus may send multiple such requests, the system described herein may conserve resources associated with multiple such requests. Limiting repeated requests by the user in this manner may save network bandwidth for communicating requests, server system resources for processing requests, and client device resources (e.g., power and computational cycles) for sending requests.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.
Drawings
FIG. 1 illustrates a diagram of a computing system that provides updated answers to queries to mobile computing devices.
Fig. 2 shows two different user interfaces illustrating different ways in which a mobile computing device may present a user interface showing answers.
Fig. 3 shows a user interface including a notification that an answer has been updated and a user interface showing an updated answer.
Fig. 4A-E illustrate a flow diagram of a process for providing updated answers to queries.
FIG. 5 is a conceptual diagram of a system that may be used to implement the systems and methods described in this document.
FIG. 6 is a block diagram of a computing device that may be used to implement the systems and methods described in this document as either a client or a server or multiple servers.
Like reference symbols in the various drawings indicate like elements.
Detailed Description
This document generally describes a mechanism for providing updated answers to queries.
The accuracy of certain types of information is often, and sometimes quickly, altered. This is particularly true in emergency situations such as outbreaks of infectious disease or natural disasters. For example, a disease case that has not been reported under a certain condition may be accurately spoken a day, but the information may not be accurate after a few days or even hours. It may be helpful to provide updates to certain problems in rapidly evolving situations. For example, users who have previously searched for ways to protect themselves from infection with infectious diseases and who are informed of the unnecessary wearing of masks may benefit from information that public health guidelines have changed to indicate that masks are to be worn.
Therefore, a system that can determine that the accuracy or content of information has changed and can proactively distribute the changed information to users may be particularly beneficial. The system described herein may facilitate distribution of updated information to users who have previously expressed an interest in such information.
Fig. 1 shows a diagram of a computing system 150 that provides updated answers to queries to a mobile computing device 100. The diagram illustrates five numbered operations to assist the reader in understanding the order in which the components in the diagram may operate, although the actual operation of the system may involve other operations, some of which are described in this document.
In step #1, the mobile computing device 100 sends a query 102 to the computing system 150. For example, a user who is concerned about a recent outbreak of an infectious disease that may have passed through the air may access a search engine web page, type in the query "how you should maintain social distance", and provide user input to send the query 110 to a search engine. In response, the mobile computing device 100 may transmit the query 110 over the internet to a computing system 150 hosting a search engine.
The computing system 150 may include a search result identifier 152 that may access the index of internet resources and perform other operations to identify a ranked set of internet resources that are responsive to the user's query 110. For example, the search result identifier 152 can access the search result corpus 170 and identify a set of search results 112 from the search result corpus 170 that are responsive to the query 110, as illustrated by step # 2A.
In step #3, the computing system 150 sends the search results to the mobile computing device 100 to cause the mobile computing device 100 to present the search results. For example, the mobile computing device 100 may receive information representing search results and, in response, present the search results in a web page of a web browser.
In some implementations, the computing system 150 not only identifies the search results 112 as being responsive to the query 110, but also identifies the answers 114 from a question and answer (Q & a) store 172 that is responsive to the query 110. Q & a store 172 includes information identifying a plurality of questions and a plurality of corresponding questions. The questions in Q & a store 172 may be generated by question identifier 154, which question identifier 154 analyzes the search engine user queries to determine common questions asked by the users. The question identifier 154 may determine that various different queries that are differently worded are related to the same question semantics by using natural language processing techniques. Thus, from the potentially large number of queries, the issue identifier 154 may not only identify which queries are relevant to an issue (e.g., the issue "how popular is COVID-19 (how contagious is COVID-19) as compared to the non-issue" Denver, CO "), but may also identify a small number of issues related to those queries identified as issues. In addition, the issue identifier 154 may determine popularity and other statistics of issue usage and may store the issues and associated statistics in the Q & a store 172.
Answers to the questions may be generated by an answer crawler 156, which answer crawler 156 may crawl internet resources (e.g., web pages) and use natural language processing techniques to identify content that answers the various questions. The answer crawler 156 may determine the most authoritative answer from a plurality of different candidate answers and store the most authoritative answer in the question and answer repository 172.
In some implementations, questions and/or answers are curated. For example, the question identifier 154 may generate information indicating which questions the users of the search engine most commonly ask, and make this information available to identify individuals who have answers to some questions from known authoritative sources (e.g., the world health organization). These curated answers may be stored in the Q & a store 172 along with an indication of the resource from which the answer was obtained (e.g., the URL of the world health organization web page). The answer may be content copied from the underlying resource, in some examples, without modification.
As indicated previously, in some implementations, the computing system 150 not only identifies search results 112 that are responsive to the query 110, but also identifies answers 114 that are responsive to the query 110. For example, question identifier 154 may analyze query 110 and determine whether there is a question in Q & A store 172 that matches query 110. Determining whether there is a question in Q & a store 172 that matches query 110 may involve using natural language processing techniques to determine whether query 110 represents a question, and if so, whether the semantics of query 110 correspond to the semantics of any question in Q & a store 172 (e.g., by ranking the relevance of the question to query 110 and selecting the highest ranked question if the highest ranked question is above a relevance threshold).
Upon identifying a question that matches the query 110, the computing system 150 selects the corresponding answer 114, as illustrated in step #2B, and then, in step #3, provides the mobile computing device 100 with a combination 116 of the search results and the answer responsive to the query 110. Mobile computing device 10 receives the combination of search results and answers and presents user interface 102 showing the received information.
Fig. 2 shows two different user interfaces 200 and 250, which illustrate different ways in which the mobile device 100 may present the user interface 102. By way of example, the user interface 200 illustrates a web page that includes a user-entered query 202 and one or more search results 204. The user interface 200 also shows the question and corresponding answer and related information selected from the Q & a repository 172. For example, the user interface 200 includes a question 206, an answer 208, a URL210 showing the content source of the answer 208, and a user-selectable link 212 that, when selected, causes the web browser to navigate to the URL 210.
Aspects of the question 206 and answer 208 may differ from one or more search results in that the question and answer are placed over the search results, presented in different font sizes and/or types, identified as a "common question," and associated with a user interface element 214 that identifies the question 206 and answer 208 as being relevant to a common emergency event. Additionally, while answers 208 may be copied from source documents accessible at URLs 210, questions 206 may not be copied from base source documents accessible at URLs 210. Further, the content shown in connection with the question 206 and answer 208 may include a selectable "Update me" user interface element 216, selection of which causes the computing system 250 to assign a user account as eligible to receive an updated answer to the question.
User interface 250 is similar to user interface 200. It also shows a user-entered query 252 in a query entry field and includes a plurality of search results (not shown in the figure). User interface 250 differs from user interface 200 in that user interface 250 is configured to display a plurality of questions 256a-e instead of only one, and to present an answer when the user selects the corresponding question, with only answer 258c shown expanded as in this illustration. Each question may be accompanied by its own user interface element 266 to subscribe to updates, or similar interface elements may be presented over all questions.
The computing system 150 may be configured to send information to generate a user interface (e.g., user interface 250) including multiple questions and answers, rather than a user interface (e.g., user interface 200) including a single question and answer, based on how closely the computing system 150 determines that the query matches one of the questions in the Q & a repository 172. If it is determined that the query does not match any one question particularly well (e.g., by not above a certain threshold level) but still matches multiple questions reasonably well (e.g., above a lower threshold level), the system may send information to the client computing device to present multiple different questions and answers.
Returning to fig. 1, after the mobile computing device 100 has presented a user interface showing search results responsive to the query 110 (and, in some embodiments as just described above, one or more answers responsive to the query 110), the answer update analyzer 158 may monitor whether any answers in the Q & a repository 172 have been updated. For example, each answer in the Q & a repository may be associated with a source resource assigned in the user interface 200 by the URL210, and the answer update analyzer 158 may occasionally request a copy of the source resource and analyze the source resource to determine whether content in the source resource has changed.
If the answer update analyzer 158 determines that the content in the source resource has meaningfully changed, the computing system 150 may update the answers in the Q & A repository 172 and retrieve a copy of the updated answer 118, as illustrated in step # 4. In an embodiment where the answer is curated, the answer update analyzer 158 may similarly determine that the answer has been updated (e.g., due to manual user intervention to access the Q & a repository 172 and alter the answer) and retrieve a copy of the updated answer 118.
The update criteria determiner 160 may perform various operations to determine whether users should be notified of updated answers, how often these users should be notified, and which updated answers should be notified to those users. These operations are discussed in additional detail later in this disclosure, but in this example, for illustrative purposes, the system identifies a single updated answer 118 at step #5 and provides an updated answer notification 120 to the mobile computing device 100.
The mobile computing device 100 receives the updated answer notification 120 and presents a notification that the updated answer is available. An example user interface 300 for presenting such notifications is shown in fig. 3. In particular, the user interface 300 shows a lock screen of the mobile computing device 100 where the user needs to unlock the mobile computing device (e.g., by performing an unlock gesture, providing an authentication biometric, and/or entering an unlock pin password) to access more complete functionality of the mobile computing device. The user interface 300 includes a notification 310 stating "Updated info from WHO for your search ' social distinguishing coronavirus '. Tap to search for ' How short you main social distinguishing to previous the social distinguishing? ' "(updated information from WHO for your search" social distance coronavirus ". click to search for" how do you should maintain social distance to prevent coronavirus disease.
User selection of notification 310 causes the computing device to present user interface 350. The form of the user interface 300 may be similar to the form of the user interface 200 in fig. 2, and may include questions 356, answers 358, search results (not shown), queries in the query field 352, URLs 360 identifying the source of the answers 358, and links 362 leading to navigation to web pages that are the source of the answers. The content of the answer may be different (e.g., user interface 350 indicates that the user should remain "6 feet (6 feet)" apart, but earlier versions of this answer may have indicated that the user should remain "4 feet (4 feet)").
In this illustration, the user may have never typed the query "How would the user find the social distance to the previous? (How should you keep social distance to prevent coronavirus illness. In this way, the mobile computing device 100 may present a notification of an updated answer corresponding to a particular query even if the user has never previously typed a query of "How she would you main mail social distance …". Of course, in some examples, the query entered by the user may be the same as the question corresponding to the updated answer.
Fig. 4A-E illustrate a flow diagram of a process for providing updated answers to queries. The processes described in the flow charts provide additional detail for the processes and systems described with respect to fig. 1-3.
At block 410, the computing system generates a collection of questions and answers. For example, the computing system performs operations to store a plurality of questions and their corresponding answers in the Q & a store 172. As previously described in this disclosure, a computing system may generate a question by analyzing a query submitted by a user of a search engine. These questions may also be curated by individuals with appropriate permissions to modify the questions in the Q & a store 172. Example issues include: (i) do you get coronavirus twice? (ii) How to perform coronavirus detection; (iii) the presence of coronavirus vaccines; and (iv) the coronavirus is airborne.
At block 412, at least some of the answers are curated by individuals with appropriate permissions to modify the answers in the Q & a repository 172. Such individuals may identify questions that users frequently ask, and may then identify content from authoritative sources that answer those questions. For example, an individual may analyze search query logs to identify frequently asked questions about infectious diseases, may select content from a World Health Organization (WHO) web page that answers the questions, and may then modify the Q & a repository 172 to specify that content from the WHO web page should be presented as answers to the questions in the Q & a repository 172.
At block 414, in response to the web crawling algorithm identifying answers on various web pages, the computing system determines at least some of the answers. For example, the computing system may identify questions that require answers and then utilize a web crawling algorithm to navigate through various web pages to analyze the web pages for content determined to answer the identified questions. The computing system may use a web-crawling algorithm to automatically select answers to a given question, or may use a web-crawling algorithm to generate a list of candidate answers for presentation to the individual curating the answers.
At block 420, the computing system receives a query provided by user input at a remote computing device. For example, the computing system 150 may receive a query 110 at the computing device 100 that a user may have entered using a virtual keyboard of the computing device. The computing system may receive the query via a transmission sent over the internet. The computing system may be located remotely from the computing device. The computing system may include a server system, and the computing device may include a client device in communication with the server system.
At block 422, the computing system identifies a plurality of search results responsive to the query. For example, search result identifier 152 of computing system 150 may identify a plurality of search results from search result corpus 170 that are responsive to query 110. The selection of search results responsive to the query can be based on various factors, including the prevalence of terms in the query within the source resource to which the search results correspond. Each search result may represent a generalized form of the source resource (e.g., including a title of the source resource and a description of the source resource) and include information identifying a URL of the source resource.
At block 430, the computing system determines that the query matches a first question in the set of questions having corresponding answers. In some examples, the computing system initially determines that the query is asking a question (block 432), as opposed to a query that does not ask a question. For example, the computing system may initially analyze the query using one or more natural language processing algorithms to infer whether the user submitting the query is attempting to ask a question with the query. The analysis may include determining whether the query includes a question mark and/or whether the query includes a question word (e.g., how, when, why, who, where).
At block 432, the computing system may determine that the query matches the first question. For example, in response to the computing system determining that the query asks a question (see block 430), the computing system may then perform a matching process to determine which questions (if any) in the query Q & a store 172 match the query (in some implementations, it is not necessary for the system to perform the operations of block 430 to determine whether the query asks a question). The matching process may involve assigning a similarity score to each query-question pair. The determination that the query matches the first question in the question set may involve the first question having the highest similarity score from among all questions in the question set. In order for the computing system to determine that the query matches the first question, the similarity score may also have to exceed a first threshold similarity value. In some examples, the computing system may select multiple questions when matching the query, for example, because the multiple questions exceed the second threshold similarity value (e.g., in some implementations, but none of the questions exceed the first threshold similarity value).
At block 440, the computing system transmits the first information for receipt by the remote computing device to cause the remote computing device to present content responsive to the query. The transmitted information may correspond to the information described with respect to step #3 in fig. 1.
At block 442, the content presented by the remote computing device includes a plurality of search results. For example, the remote computing device may present a web page showing a plurality of search results responsive to the search query. Each search result may include: (i) a selectable title that, when selected by user input, causes the web browser to navigate to a login page; and (ii) a description including content selected from the login web page. Both the title and description may be selected from the landing page and specified by the landing page. The user interface 200 in fig. 2 shows example search results 204.
At block 444, the content presented by the remote computing device includes a first answer. For example, user interface 200 in FIG. 2 may include answer 208. The answers may have been selected from a repository of questions and answers, as previously described in this disclosure. There may be no analysis as to whether the content in the answer matches the query, but rather the answer may have been selected because its corresponding question has been determined to match the user query. The answer may have been copied from the source resource, such as the source resource identified by URL210, and may be navigated by user selection of link 212.
At block 446, the content presented by the remote computing device includes a first question. For example, user interface 200 in FIG. 2 may include question 206. While the first question may have been determined by the computing system as being of sufficient characteristics for the search query sharing computing device to determine that the first question matches the query, the first question presented by the remote computing system may be different from the search query. A plurality of different queries may match a question related to a topic such that a plurality of different queries that may reference the topic may be determined by the computing system to match the question. The question may correspond to a single answer, such that any query determined to match the question may result in the same question and answer pair being displayed. The remote computing device may concurrently present the query, the question matching the query, and the answer corresponding to the question, for example, as illustrated in user interface 200.
At block 448, the content presented by the remote computing device includes a link, and user selection of the link causes navigation to a web page from which the first answer was obtained. For example, the user interface 200 includes a link 212 that, when selected, causes the remote computing device to change the display device from presenting the user interface 200 to presenting a resource-defined user interface accessible via the address of the connection 212 (e.g., the address specified by the URL 210).
At block 450, the content presented by the remote computing device includes a user interface element that is selectable to subscribe to updates to the first answer. For example, the user interface 200 includes an "Update me" interface element 216 that, when selected by a user input, causes the remote computing device to send a request to the computing system to notify the remote computing device (or log into a user account of the remote computing device when the interface element 216 is selected) if the computing system determines that the answer 208 has been updated.
User interface 250 includes a plurality of such "Update me" interface elements. In particular, each of the questions 256a-e in the user interface 250 includes a user-selectable interface element 266, which the user can select to identify a particular question of interest to the user. In some implementations, the "Update me" interface element 266 is presented above or otherwise in relation to multiple questions such that user selection of the interface element indicates that the user is interested in updates to a topic that is common to multiple questions (e.g., a codv-19 outbreak), and not necessarily one particular question (e.g., a symptom of codv-19).
At block 460, the computing system determines that the first answer has been updated. For example, at some point after the user submits the query and views the list of search results responsive to the query (and possibly answers to questions matching the query), the computing system performs operations to determine that there is a changed answer to the first question (see block 462).
At block 464, the calculation determines that the first answer has been updated based on determining that the content of the web page from which the first answer was obtained has been updated. For example, the computing system may periodically access a web page from which the first answer was obtained and determine whether the web page as a whole has changed or whether the content corresponding to the first answer from the web page is now different. If there is a difference, the computing system may determine whether the updated content is more accurate than the original content (see block 466). For example, the computing system may identify that a portion of the answer has changed and compare the changed portion to other resources that have been determined to be authoritative to determine whether the changed portion reflects an updated answer that is a more accurate answer than the original answer.
In an example of curating answers, a determination that the first answer has been updated may be triggered due to a user input that alters the first answer. For example, a person curating a question and/or answer may determine that the WHO has changed the distance that people should space themselves apart (e.g., increasing the distance from six feet to ten feet), and may log into a system that allows the curator to update the content of the first answer. In some examples, the computing system automatically monitors whether the source resource from which the first answer is obtained has changed, and upon detecting any such changes may notify individuals curated the answers that the first answer has changed. The individual that curated the answer at that time may access the source resource, compare the updated answer to the original answer, and determine whether to update the first answer.
At block 470, the computing system may determine that a criterion has been met that informs the remote computing device that the first answer has been updated. The computing system may determine whether the criteria are met because the computing system may not send each updated answer to each individual who has previously submitted a query to the computing system. Rather, the computing system may weigh various factors in order to determine whether to notify a particular user that an answer has been updated, including the content of a query previously submitted by the user, the degree to which a change in answer has been detected, and the level of interest in the question to which the updated answer corresponds among various users, to name a few. In other words, the computing system may filter and sort the updated answers so that a single user is not overwhelmed by too many notifications of updated answers, and so that those notifications sent to the user reflect the updated answer that the computing system determined to have the greatest value. The computing system may optimize when and whether any given notification is sent to a particular user in order to avoid overwhelming the user.
At block 472, the criteria for notifying the remote computing device that the first answer has been updated includes determining that the remote computing device sent a query that matches a first question corresponding to the first answer. In certain embodiments, this determination is quite straightforward. For example, because the computing system has previously sent first answers for presentation to those users, the computing system may identify the users as being eligible to receive updates to the first answers.
In some implementations, the determination may be less straightforward. In such a case, the computing system may identify a user who has never previously viewed the first answer as being eligible to view the update to the first answer. For example, the user may not have been previously presented with the first answer, but may be notified of an update to the first answer because the user has previously submitted a query determined to be similar to the first question corresponding to the first answer. Updates to the answer may be distributed more broadly in this manner when it is determined that the updated answer has a particular value. In this case, the computing system may disseminate the updated answer to a broader set of computing devices, not just those computing devices that have presented the original answer.
At block 474, the criteria for notifying the remote computing device of the updated first answer includes identifying that the query to which the original first answer was responsive was provided to the computing system within a determined recent amount of time. In other words, the amount of time since the user provided the query that prompted the presentation of the first answer may be a factor in determining whether the computing system notified the user of the update to the first answer. For example, the longer since the user submitted the query that caused the first answer to be displayed, the less likely the computing system will notify the user that the first answer has been updated.
At block 476, the criteria for notifying the remote computing device of the updated first answer includes identifying whether a user input at the remote computing device interacted with the presentation of the first answer. In other words, the user's interaction with the first answer may indicate that the user of the remote computing device is interested in the first answer, and thus may be interested in the updated first answer.
Referring to answer 208 in FIG. 2, example user interactions with the presentation of the first answer include a user selection of link 212 or a user selection of "update me" interface element 216. Another example interaction with the presentation of the answer may include interacting with the remote computing device to cause the remote computing device to change from presenting only the question to presenting an answer to solve the question, as is the case with the extensible question-answer pair shown in the user interface 250 of fig. 2. Such interaction may be used as a factor in determining whether the user should be notified that the answer has been updated, and may be weighed in favor of notifying the user that the answer has been updated.
At block 478, the criteria for notifying the remote computing device of the updated answer includes determining that the updated answer is not outdated for a user of the remote computing device. In other words, the computing system may perform operations to determine whether the user of the remote computing device is aware of the updated answer. One example technique for determining whether an answer is out-of-date for a user is to monitor the user's web history (e.g., search history and/or history of web pages visited) to determine whether the user has visited a source resource from which to obtain an updated answer (see block 480). Accessing a source resource since the source resource has updated an answer may be weighed in a manner that is not conducive to notifying the user that the source resource has been updated.
Another technique for determining whether the user of the remote computing device has already learned the updated answer is to determine whether the user has obtained the updated answer through any other source (see block 482). For example, the computing system may determine whether the user has viewed any internet-accessible news article, and then the computing system determines that the news article has provided or otherwise referenced the updated answer.
The computing system may weigh any combination of the above factors in determining whether to notify the user that an update to the answer already exists. Other factors that may be considered by a computing system are: (i) whether the user has generally opted out of updating a particular question-answer pair or opted out of updating an answer; (ii) a length of time since the computing system sent the notification to the user, either a notification of the updated answer or any type of notification, to limit the amount of notifications sent to the user within a given time period; (iii) the number of queries submitted by users that match the question corresponding to the updated answer (e.g., more queries matched indicating greater interest in the topic); and (iv) the updated answer to user determination.
The determined value of the updated answer may be determined by the number of users interacting with the answer before the answer is updated (e.g., by selecting an "update me" interface element), the number of users interacting with a notification indicating that the answer has been updated, the degree of change of the updated answer, and the degree to which the updated answer is propagated over the internet (e.g., the sharing level of the updated answer and the level of a new article referring to the updated answer).
At block 490, the computing system sends the second information for receipt by the remote computing device to cause the remote computing device to present a notification that the first answer has been updated. For example, the computing system 150 in fig. 1 may send (at step #5) the updated answer notification 120 to the mobile computing device 100. The second information may be configured to cause the remote computing device to present the notification in any of a number of different notification presentation techniques.
One possible way in which the remote computing device may present the notification is on a lock screen of the remote computing device (see block 492). User interface 300 in fig. 3 shows one such example of a lock screen. The user interface 300 example shows three notifications on the lock screen: new email notifications, upcoming calendar event notifications, and updated answer notifications 310. User selection of the updated answer notification 310 may cause the mobile computing device 100 to transition from the locked state to the unlocked state (possibly requesting the user to enter an unlocking pin to authenticate that the user is allowed access to the unlocked state), and then present the full contents of the updated answer. Each notification on the lock screen can be removed by sliding laterally over the respective notification.
Another potential way in which notifications may be presented is in the notification panel. The notification panel may be a user interface component that a user may access by sliding away from a side of the display device toward a center of the display device to display a collection of different notifications, such as three notifications presented in the lock screen of the user interface 300. Notifications presented on the lock screen may be replicated in the notification panel.
Another way in which the remote computing device may present the updated answer notification is as a query suggestion. For example, a user may interact with a query input field presented by a remote computing device, and in response, the remote computing device may present a drop-down list of one or more query suggestions, where one of the query suggestions informs the user of the updated query suggestion. User interaction with the query input field may involve the user typing a character in the query input field, or simply giving the query input field focus (e.g., by clicking on a touch screen device at the location of the query input field).
Another way in which the remote computing device may present updated answer notifications is by presenting the updated answers on a search results page. For example, the user may submit a query related to "COVID-19" and the computing system may choose to present the updated answer at the top of the search results page delivered to the remote computing device (although in some embodiments, the computing system may choose to present the updated answer in the search results page in response to a query unrelated to the subject matter of the updated answer). The computing system may choose to present the updated answer at the top of the search results page even though the query would normally not trigger the display of the updated answer. Presentation of the updated answer may be accompanied by text indicating that the answer has been "updated". Presentation of the updated answer may be accompanied by a question corresponding to the updated answer. Presentation of the updated answer may be similar to presentation of the answer in user interface 350 shown in FIG. 3.
The notification presented by the remote computing device may indicate that there is an update to the answer, and may include the words "update", "revise", "change", "modify", or variants thereof. For example, the computing system may generate information to cause the notification to be presented according to the following templates: "Updated info from $ source for your search:," $ past _ query. "$ to search for," $ past _ query "(update information from $ source for your search:" $ past _ query ". click to search" $ new _ query) ". In this example template, the $ source field indicates the source resource (e.g., WHO webpage) from which the answer and/or the content of the updated answer is obtained. The $ past _ query field indicates the query that the user has previously entered and is determined to match the question corresponding to the answer. The $ new _ query field indicates the question corresponding to the updated answer.
In some examples, the question corresponding to the answer is a search query that the user may submit to have the answer and search results presented in response to the search query. In this way, user selection of a notification that the system has updated the answer may cause the remote computing device to send a query to the server system, where the query sent to the server system is a question corresponding to the answer. The user may not type or otherwise specify the query content to be sent to the server system. But the user may have simply selected the notification (e.g., by clicking or double-clicking on the notification).
At block 495, the computing system sends the second information for receipt by the remote computing device and causes the notification to be presented without the user entering the query (or any query). For example, user input on the computing device or any user account associated with the user of the computing device may never have entered $ new _ query that prompted the display of an updated answer. Further, the presentation of the notification by the remote computing device may be initiated by the computing system rather than any query specified by user input on the remote computing device. In other words, the user has not searched for updates, and the only query specified by the user to be related to the updated answer may be the original query that caused the original answer to be presented. The user may not have typed another query related to the question and answer since typing the original query. The web page presented in response to the user's selection of the notification may be the same as if the user submitted the same query to the computing system as the question (e.g., by typing the question into a query input field).
At block 496, the notification may be configured such that user selection of the notification causes the remote computing device to navigate to a web page from which the updated answer is obtained. For example, user selection of a notification may cause the remote computing device to navigate directly to a web browser presentation of a WHO web page (e.g., as opposed to navigating to a web page that shows answers concurrently with search results responsive to the query).
At block 497, the notification may be configured such that user selection of the notification causes the remote computing device to present the updated answer with the first question. For example, user selection of notification 310 from user interface 300 of fig. 3 may cause the remote computing device to present user interface 350 from fig. 3, which displays both the updated answer and the corresponding question. The user interface 350 may also present queries to which updated answers respond in the query input field 352, which may be the same as the question.
Referring now to FIG. 5, there is illustrated a conceptual diagram of a system that may be used to implement the systems and methods described in this document. In this system, a mobile computing device 510 may communicate wirelessly with a base station 540, which base station 540 may provide wireless access to a number of hosted services 560 for the mobile computing device over a network 550.
In this illustration, the mobile computing device 510 is depicted as a handheld mobile phone (e.g., a smartphone or an application phone) that includes a touchscreen display device 512 for presenting content to a user of the mobile computing device 510 and receiving touch-based user input and/or presence-sensitive user input (e.g., as detected over a surface of the computing device using a radar detector installed in the mobile computing device 510). Other visual, tactile, and audible output components (e.g., LED lights, vibration mechanisms for tactile output, or speakers for providing output of tones, voice generation, or recordings), as well as various different input components (e.g., keyboard 514, physical buttons, a trackball, an accelerometer, a gyroscope, and a magnetometer) may also be provided.
An example visual output mechanism in the form of a display device 512 may take the form of a display with resistive or capacitive touch capabilities. The display device may be used to display video, graphics, images, and text, as well as to coordinate user touch input locations with the location of displayed information so that the device 510 may associate user contact at the location of a displayed item with the item. The mobile computing device 510 may also take alternative forms, including being a laptop computer, a tablet computer or tablet computer, a personal digital assistant, an embedded system (e.g., a car navigation system), a desktop personal computer, or a computerized workstation.
An example mechanism for receiving user input includes keyboard 514, which may be a full-key keyboard or a conventional keyboard including keys for the numerals ' 0-9 ', ' and ' # '. The keyboard 514 receives input when a user physically contacts or presses a keyboard key. User manipulation of the trackball 516 or interaction with the trackpad enables the user to supply the mobile computing device 510 with the direction and rate of movement information (e.g., manipulating the position of a cursor on the display device 512).
The mobile computing device 510 can determine the location of physical contact with the touch screen display device 512 (e.g., the contact location of a finger or stylus). Using the touch screen 512, various "virtual" input mechanisms may be generated in which a user interacts with graphical user interface elements depicted on the touch screen 512 by contacting the graphical user interface elements. An example of a "virtual" input mechanism is a "software keyboard," where a keyboard is displayed on the touch screen and the user selects a key by pressing the area of the touch screen 512 corresponding to each key.
The mobile computing device 510 may include mechanical or touch-sensitive buttons 518 a-d. Additionally, the mobile computing device may include buttons for adjusting the volume output by the one or more speakers 520, as well as buttons for turning the mobile computing device on or off. The microphone 522 allows the mobile computing device 510 to convert audible sound into electrical signals that may be digitally encoded and stored in a computer-readable memory, or transmitted to another computing device. The mobile computing device 510 may also include a digital compass, an accelerometer, a proximity sensor, and an ambient light sensor.
The operating system may provide an interface between the hardware (e.g., input/output mechanisms and a processor executing instructions retrieved from a computer-readable medium) and software of the mobile computing device. Example operating systems include ANDROID, CHROME, IOS, MAC OS X, WINDOWS7, WINDOWS PHONE 7, SYMBIAN, BLACKBERRY, WEBOS, various UNIX operating systems; or a proprietary operating system of the computer device. The operating system may provide a platform for executing application programs that facilitate interaction between the computing device and the user.
The mobile computing device 510 may present a graphical user interface using a touch screen 512. The graphical user interface is a collection of one or more graphical interface elements and may be static (e.g., the display appears to remain unchanged for a period of time) or may be dynamic (e.g., the graphical user interface includes graphical interface elements that animate without user input).
The graphical interface elements may be text, lines, shapes, images, or combinations thereof. For example, a graphical interface element may be an icon displayed on a desktop and associated text for the icon. In some examples, the graphical interface element may be selected by user input. For example, a user may select a graphical interface element by pressing a region of the touch screen corresponding to the display of the graphical interface element. In some examples, a user may manipulate a trackball to highlight a single graphical interface element as having focus. User selection of a graphical interface element may invoke a predefined action of the mobile computing device. In some examples, the selectable graphical interface elements further or alternatively correspond to buttons on the keyboard 514. User selection of a button may invoke a predefined action.
In some examples, the operating system provides a "desktop" graphical user interface that is displayed after the mobile computing device 510 is turned on, after the mobile computing device 510 is activated from a sleep state, after the mobile computing device 510 is "unlocked," or after a user selection of the "home" button 518c is received. The desktop graphical user interface may display several graphical interface elements that, when selected, invoke corresponding applications. The invoked application may present a graphical interface that replaces the desktop graphical user interface until the application terminates or is hidden from view.
The user input may affect the order of execution of the operations of the mobile computing device 510. For example, a single-action user input (e.g., a single click of a touchscreen, a swipe across a touchscreen, a contact with a button, or a combination of these occurring simultaneously) may invoke an operation that alters the display of the user interface. Without user input, the user interface may not change at a particular time. For example, multi-touch user input with the touch screen 512 may invoke a mapping application to "zoom in" at a location, even though the mapping application may default to being zoomed in after a few seconds.
The desktop graphical interface may also display "widgets". A widget is one or more graphical interface elements associated with an executing application and displaying content controlled by the executing application on the desktop. The widget's application may be launched when the mobile device is turned on. Furthermore, the widget may not be concerned with full screen. Instead, the widget may only "own" a small portion of the desktop, display content and receive touch screen user input within that portion of the desktop.
The mobile computing device 510 may include one or more location identification mechanisms. The location identification mechanism may include a collection of hardware and software that provides an operating system and applications with an estimate of the geographic location of the mobile device. The location identification mechanism may employ satellite-based positioning techniques, base station transmit antenna identification, multiple base station triangulation, internet access point IP location determination, inferred identification of user locations based on search engine queries, and user-supplied location identification (e.g., by receiving a user "checking in" to a location).
The mobile computing device 510 may include other applications, computing subsystems, and hardware. The call handling unit may receive an indication of an incoming telephone call and provide the user with the ability to answer the incoming telephone call. The media player may allow a user to listen to music or play movies that are stored in local memory of the mobile computing device 510. The mobile computing device 510 may include a digital camera sensor and corresponding image and video capture and editing software. An internet browser may enable a user to view content in a web page by typing in an address corresponding to the web page or selecting a link to the web page.
The mobile computing device 510 may include an antenna for wirelessly communicating information with the base station 540. The base station 540 may be one of many base stations in a collection of base stations (e.g., a mobile telephone cellular network) that enable the mobile computing device 510 to maintain communication with the network 550 when the mobile computing device is geographically moved. The computing device 510 may alternatively or additionally communicate with the network 550 through a Wi-Fi router or wired connection (e.g., ethernet, USB, or firewire). The computing device 510 may also communicate wirelessly with other computing devices using the bluetooth protocol, or may employ an ad hoc wireless network.
A service provider operating a network of base stations may connect the mobile computing device 510 to the network 550 to enable communication between the mobile computing device 510 and other computing systems providing the service 560. Although the service 560 may be provided over different networks (e.g., the service provider's intranet, the public switched telephone network, and the internet), the network 550 is illustrated as a single network. The service provider may operate a server system 552, which server system 552 routes information packets and voice data between the mobile computing device 510 and a computing system associated with the service 560.
The network 550 may connect the mobile computing device 510 to a Public Switched Telephone Network (PSTN)562 in order to establish voice or fax communication between the mobile computing device 510 and another computing device. For example, the service provider server system 552 may receive an indication of an incoming call for the mobile computing device 510 from the PSTN 562. Instead, the mobile computing device 510 may send a communication to the service provider server system 552 that initiates a telephone call using a telephone number associated with a device accessible through the PSTN 562.
The network 550 may connect the mobile computing device 510 with a voice over internet protocol (VoIP) service 564, which routes voice communications over an IP network, as opposed to the PSTN. For example, a user of the mobile computing device 510 may invoke a VoIP application and initiate a call using the program. The service provider server system 552 may forward voice data from the call to a VoIP service that may route the call over the internet to a corresponding computing device, possibly using the PSTN for the final stage of the connection.
The application store 566 may provide the user of the mobile computing device 510 with the ability to browse a list of remotely stored application programs that the user may download and install on the mobile computing device 510 over the network 550. The application store 566 may serve as a repository for applications developed by third-party application developers. An application installed on the mobile computing device 510 is able to communicate over the network 550 with a server system assigned for the application. For example, a VoIP application may be downloaded from the application store 566, thereby enabling the user to communicate with the VoIP service 564.
The mobile computing device 510 may access content on the internet 568 through the network 550. For example, a user of the mobile computing device 510 may invoke a web browser application that requests data from a remote computing device that is accessible at an assigned universal resource location. In various examples, some of the services 560 may be accessible over the internet.
The mobile computing device may communicate with a personal computer 570. For example, the personal computer 570 may be a home computer for a user of the mobile computing device 510. Thus, the user may be able to stream media from his personal computer 570. The user may also view the file structure of his personal computer 570 and transfer selected documents between the computerized devices.
The voice recognition service 572 may receive voice communication data recorded with the microphone 522 of the mobile computing device and convert the voice communication into corresponding text data. In some examples, the translated text is provided to a search engine as a web query, and responsive search engine search results are transmitted to the mobile computing device 510.
The mobile computing device 510 may communicate with a social network 574. The social network may include a number of members, some of which have been agreed to be related to acquaintances. An application on the mobile computing device 510 may access the social network 574 to retrieve information based on acquaintances of the user of the mobile computing device. For example, an "address book" application may retrieve telephone numbers associated with an acquaintance of the user. In various examples, content may be delivered to the mobile computing device 510 based on social network distances and connection relationships from the user to other members in the member's social network diagram. For example, the content of advertisements and news articles may be selected for a user based on the level of interaction with such content by members who are "close" to the user (e.g., members who are "friends" or "friends of friends").
The mobile computing device 510 may access the personal set of contacts 576 over the network 550. Each contact may identify an individual and include information about the individual (e.g., a phone number, an email address, and a birthday). Because the set of contacts is remotely hosted to the mobile computing device 510, the user may access and maintain the contacts 576 across several devices as a common set of contacts.
The mobile computing device 510 may access the cloud-based application 578. Cloud computing provides applications (e.g., word processor or email programs) that are remotely hosted from the mobile computing device 510 and may be accessed by the device 510 using a web browser or a dedicated program. Example cloud-based applications include GOOGLE DOCS word processor and spreadsheet service, GOOGLE GMAIL web mail service, and PICASA picture manager.
The mapping service 580 may provide street maps, route planning information, and satellite images to the mobile computing device 510. An example mapping service is GOOGLE MAPS. The mapping service 580 may also receive queries and return location-specific results. For example, the mobile computing device 510 may send the estimated location of the mobile computing device and a user entered "pizza places" query to the mapping service 580. The mapping service 580 may return a street map with "tags" superimposed on a map identifying the geographic locations of nearby "pizza places".
A turn-by-turn navigation (turn-by-turn) service 582 may provide turn-by-turn navigation guidance to the user-supplied destination to the mobile computing device 510. For example, the turn-by-turn navigation service 582 may transmit a street level view of the estimated location of the device and a data stream to the device 510 providing audio commands and overlaid arrows that guide the user of the device 510 to a destination.
The mobile computing device 510 may request various forms of streaming media 584. For example, the computing device 510 may request a stream of pre-recorded video files, live television programs, or live radio programs. Example services that provide streaming media include YOUTUBE and PANDORA.
Microblog service 586 may receive a user-entered post from mobile computing device 510 that does not identify the recipient of the post. The micro-blogging service 586 may disseminate the post to other members of the micro-blogging service 586 who agree to subscribe to the user.
The search engine 588 may receive a user-entered textual or spoken query from the mobile computing device 510, determine a set of internet-accessible documents that are responsive to the query, and provide information to the device 510 to display a search result list for the responsive documents. In the example of receiving a spoken query, the speech recognition service 572 may convert the received audio into a text query, which is sent to a search engine.
These and other services may be implemented in the server system 590. A server system may be a combination of hardware and software that provides a service or a collection of services. For example, a collection of physically separate and networked computerized devices may operate together as a logical server system unit to handle the operations required to provision services to hundreds of computing devices. A server system is also referred to herein as a computing system.
In various implementations, an operation that is performed "in response to" another operation or "as a result of" another operation (e.g., determined or identified) is not performed if the previous operation was unsuccessful (e.g., if determined not to be performed). An operation that is performed "automatically" is an operation that is performed without user intervention (e.g., intervening user input). The functions in this document described in conditional language may describe alternative embodiments. In some examples, "transmitting" from the first device to the second device includes the first device placing data into the network for receipt by the second device, but may not include the second device receiving the data. Conversely, "receiving" from the first device may include receiving data from the network, but may not include the first device transmitting data.
"determining" by the computing system may include the computing system requesting another device to perform the determination and supplying the result to the computing system. Further, "displaying" or "presenting" of the computing system may include the computing system transmitting data for causing another device to display or present the reference information.
FIG. 6 is a block diagram of a computing device 600, 650, which computing device 600, 650 may be used as a client or server or servers to implement the systems and methods described in this document. Computing device 600 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Computing device 650 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations described and/or claimed in this document.
Computing device 600 includes a processor 602, memory 604, a storage device 606, a high-speed controller 608 connected to memory 604 and high-speed expansion ports 610, and a low-speed controller 612 connected to low-speed expansion ports 614 and storage device 606. Each of the components 602, 604, 606, 608, 610, and 612, are interconnected using various buses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 602 can process instructions for execution within the computing device 600, including instructions stored in the memory 604 or on the storage device 606 to display graphical information for a GUI on an external input/output device, such as display 616 coupled to high speed controller 608. In other embodiments, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. In addition, multiple computing devices 600 may be connected, with each computing device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
The memory 604 stores information within the computing device 600. In one implementation, the memory 604 is a volatile memory unit or units. In another implementation, the memory 604 is a non-volatile memory unit or units. The memory 604 may also be another form of computer-readable medium, such as a magnetic or optical disk.
The storage device 606 can provide mass storage for the computing device 600. In one implementation, the storage device 606 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state storage device, or an array of devices, including devices in a storage area network or other configurations. The computer program product may be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-or machine-readable medium, such as the memory 604, the storage device 606, or memory on processor 602.
The high-speed controller 608 manages bandwidth-intensive operations for the computing device 600, while the low-speed controller 612 manages lower bandwidth-intensive operations. This allocation of functionality is merely an example. In one embodiment, the high-speed controller 608 is coupled to memory 604, display 616 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 610, which high-speed expansion ports 610 may accept various expansion cards (not shown). In this embodiment, low-speed controller 612 is coupled to storage device 606 and low-speed expansion port 614. The low-speed expansion port, which may include various communication ports (e.g., USB, bluetooth, ethernet, wireless ethernet), may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, for example, through a network adapter.
As shown in the figure, computing device 600 may be implemented in many different forms. For example, it may be implemented as a standard server 620, or multiple times in a group of such servers. It may also be implemented as part of a rack server system 624. Further, it may be implemented in a personal computer such as a laptop computer 622. Alternatively, components from computing device 600 may be combined with other components in a mobile device (not shown), such as device 650. Each of such devices may contain one or more of computing device 600, 650, and an entire system may include multiple computing devices 600, 650 in communication with each other.
Computing device 650 includes a processor 652, a memory 664, an input/output device such as a display 654, a communication interface 666, and a transceiver 668, among other components. The device 650 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the components 650, 652, 664, 654, 666, and 668, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
The processor 652 may execute instructions within the computing device 650, including instructions stored in the memory 664. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors. In addition, a processor may be implemented using any of a variety of architectures. For example, the processor may be a CISC (Complex instruction set computer) processor, RISC (reduced instruction set computer) processor, or MISC (minimal instruction set computer) processor. The processor may provide, for example, for coordination of the other components of the device 650, such as control of user interfaces, applications run by device 650, and wireless communication by device 650.
Processor 652 may communicate with a user through control interface 658 and display interface 656 coupled to a display 654. The display 654 may be, for example, a TFT (thin film transistor liquid crystal display) display or an OLED (organic light emitting diode) display or other suitable display technology. The display interface 656 may comprise appropriate circuitry for driving the display 654 to present graphical and other information to a user. The control interface 658 may receive commands from a user and convert them for submission to the processor 652. In addition, an external interface 662 may be provided in communication with processor 652 to enable near area communication of device 650 with other devices. External interface 662 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.
The memory 664 stores information within the computing device 650. The memory 664 may be implemented as one or more of the following: one or more computer-readable media, one or more volatile memory units, or one or more non-volatile memory units. Expansion memory 674 may also be provided and connected to device 650 through expansion interface 672, which may include, for example, a SIMM (Single in line memory Module) card interface. Such expansion memory 674 may provide additional storage space for device 650, or may also store applications or other information for device 650. Specifically, expansion memory 674 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example, expansion memory 674 may be provided as a security module for device 650, and may be programmed with instructions that permit secure use of device 650. In addition, secure applications may be provided via the SIMM card, as well as additional information, such as placing identifying information on the SIMM card in a non-hackable manner.
The memory may include, for example, flash memory and/or NVRAM memory, as discussed below. In one embodiment, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-or machine-readable medium, such as the memory 664, expansion memory 674, or memory on processor 652, that may be received, for example, over transceiver 668 or external interface 662.
Device 650 may communicate wirelessly through communication interface 666, which communication interface 666 may include digital signal processing circuitry as necessary. Communication interface 666 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 668. Further, short-range communication may occur, such as using a bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (global positioning system) receiver module 670 may provide additional navigation-and location-related wireless data to device 650, which may be used as appropriate by applications running on device 650.
Device 650 may also communicate audibly using audio codec 660, which audio codec 660 may receive spoken information from a user and convert it to usable digital information. Audio codec 660 may likewise generate audible sound for a user, such as through a speaker, e.g., in a headset of device 650. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 650.
As shown in the figure, computing device 650 may be implemented in a number of different forms. For example, it may be implemented as a cellular telephone 680. It may also be implemented as part of a smart phone 682, personal digital assistant, or other similar mobile device.
Additional computing devices 600 or 650 may include a Universal Serial Bus (USB) flash drive. The USB flash drive may store an operating system and other applications. The USB flash drive may include input/output components, such as a wireless transmitter or a USB connector that may be plugged into a USB port of another computing device.
Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs (also known as programs, software applications or code) include machine instructions for a programmable processor, and may be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms "machine-readable medium," "computer-readable medium" refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices may also be used to provide for interaction with a user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, voice, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), peer-to-peer networks (with ad hoc or static members), grid computing infrastructure, and the internet.
The computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Although some embodiments have been described in detail above, other modifications are possible. In addition, other mechanisms for performing the systems and methods described in this document may be used. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. Other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.

Claims (18)

1. A computer-implemented method, comprising:
receiving, by a computing system from a remote computing device, a query provided by a user input;
identifying, by the computing system, a plurality of search results responsive to the query;
determining, by the computing system, that the query matches a first question in a set of questions having a corresponding answer in a set of answers, the first question having a corresponding first answer in the set of answers;
sending, by the computing system and in response to the computing system receiving the query, first information for receipt by the remote computing device to cause the remote computing device to present:
(i) the plurality of search results responsive to the query, an
(ii) The first answer corresponding to the first question;
determining, by the computing system, that the first answer has been updated since the computing system sent the first information to cause the remote computing device to present the plurality of search results and the first answer;
determining, by the computing system, that a criterion has been met that informs the remote computing device that the first answer has been updated; and
sending, by the computing system, second information for receipt by the remote computing device to cause the remote computing device to present a notification that the first answer has been updated.
2. The computer-implemented method of claim 1, wherein determining that the query matches the first question comprises using one or more natural language processing algorithms to determine that (i) the query is asking a question, and (ii) the question asked by the query matches an aspect of the first question.
3. The computer-implemented method of claim 1, wherein:
the content of each answer in the answer set is crawled from various websites through a web crawling algorithm; and
the first answer represents content selected from a web page in response to crawling the web page through the web crawling algorithm.
4. The computer-implemented method of claim 1, wherein sending the first information for receipt by the remote computing device causes the remote computing device to concurrently present the plurality of search results and the first answer.
5. The computer-implemented method of claim 4, wherein:
sending the first information for receipt by the remote computing device to cause the remote computing device to present the plurality of search results and the first answer concurrently with the first question; and
the first answer is different from the plurality of search results and is presented in a different manner than presentation of the plurality of search results.
6. The computer-implemented method of claim 1, wherein the first information is sent for receipt by the remote computing device that causes the remote computing device to present a link associated with the first answer, the link, when selected by user input, causing the remote computing device to navigate to a web page from which the first answer was obtained.
7. The computer-implemented method of claim 1, wherein determining that the first answer has been updated comprises the computing system determining that content in a web page representing the first answer has changed.
8. The computer-implemented method of claim 7, wherein determining that the content in the web page representing the first answer has changed comprises determining that the content in the web page representing the first answer has changed to represent an updated answer that answers the first question more accurately than the first answer.
9. The computer-implemented method of claim 1, wherein:
sending the first information for receipt by the remote computing device to cause the remote computing device to present a selectable user interface element that a user input at the remote computing device can select to subscribe to an update to the first answer; and
wherein determining that the criterion of notifying the remote computing device that the first answer has been updated has been met comprises determining that a user input has selected the user interface element presented by the remote computing device to subscribe to an update to the first answer.
10. The computer-implemented method of claim 1, wherein determining that the criterion that notifies the remote computing device that the first answer has been updated has been met comprises determining that: the remote computing device provides the query for receipt by the computing system within a determined recent amount of time that the first answer was updated or that the computing system determined that the first answer was updated.
11. The computer-implemented method of claim 1, wherein determining that the criterion that notifies the remote computing device that the first answer has been updated has been met comprises determining that a user input at the remote computing device interacted with the presentation of the first answer by the remote computing device.
12. The computer-implemented method of claim 1, wherein:
determining that the first answer has been updated comprises the computing system determining that a web page from which the first answer was obtained has changed; and
determining that the criterion of notifying the remote computing device that the first answer has been updated has been met includes analyzing a web history of a user account of the remote computing device to determine that the user account has not visited the web page since the web page changed.
13. The computer-implemented method of claim 1, wherein sending the second information to cause the remote computing device to present the notification that the first answer has been updated comprises sending the second information to cause the remote computing device to present a notification on a lock screen of the remote computing device indicating that the first answer has been updated.
14. The computer-implemented method of claim 13, wherein the notification is configured such that user selection of the notification causes the remote computing device to present the updated first answer without the user entering a query.
15. The computer-implemented method of claim 13, wherein the notification is configured such that user selection of the notification causes the remote computing device to present the updated first answer concurrently with the first question.
16. The computer-implemented method of claim 13, wherein the notification is configured such that user selection of the notification causes the remote computing device to display a search results page presenting:
(i) a plurality of search results, an
(ii) The updated first answer.
17. A computer system, comprising:
one or more processors; and
one or more non-transitory computer-readable devices comprising instructions stored thereon, which, when executed by the one or more processors, cause the computer system to perform operations comprising:
receiving, by a computing system from a remote computing device, a query provided by a user input;
identifying, by the computing system, a plurality of search results responsive to the query;
determining, by the computing system, that the query matches a first question in a set of questions having a corresponding answer in a set of answers, the first question having a corresponding first answer in the set of answers;
sending, by the computing system and in response to the computing system receiving the query, first information for receipt by the remote computing device to cause the remote computing device to present:
(i) the plurality of search results responsive to the query, an
(ii) The first answer corresponding to the first question;
determining, by the computing system, that the first answer has been updated since the computing system sent the first information to cause the remote computing device to present the plurality of search results and the first answer;
determining, by the computing system, that a criterion has been met that informs the remote computing device that the first answer has been updated; and
sending, by the computing system, second information for receipt by the remote computing device to cause the remote computing device to present a notification that the first answer has been updated.
18. A computer-implemented method, comprising:
receiving, by a computing system from a remote computing device, a query provided by a user input;
identifying, by the computing system, a plurality of search results responsive to the query;
sending, by the computing system and in response to receiving the query, first information for receipt by the remote computing device to cause the remote computing device to present the plurality of search results in response to the query;
determining, by the computing system, that the query matches a first question in a set of questions having a corresponding answer in a set of answers, the first question having a corresponding first answer in the set of answers;
determining, by the computing system, that the first answer has been updated since the computing system sent the first information to cause the remote computing device to present the plurality of search results;
determining, by the computing system, that a criterion has been met that informs the remote computing device that the first answer has been updated; and
sending, by the computing system, second information for receipt by the remote computing device to cause the remote computing device to present a notification that the first answer has been updated.
CN202110372455.6A 2020-04-14 2021-04-07 Providing updated answers to queries Pending CN113536158A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063009893P 2020-04-14 2020-04-14
US63/009,893 2020-04-14
US202016991850A 2020-08-12 2020-08-12
US16/991,850 2020-08-12

Publications (1)

Publication Number Publication Date
CN113536158A true CN113536158A (en) 2021-10-22

Family

ID=78094395

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110372455.6A Pending CN113536158A (en) 2020-04-14 2021-04-07 Providing updated answers to queries

Country Status (1)

Country Link
CN (1) CN113536158A (en)

Similar Documents

Publication Publication Date Title
US11675794B2 (en) Providing results to parameterless search queries
US10846050B2 (en) Context-based command surfacing
JP6063965B2 (en) Geocoding personal information
EP3097704B1 (en) Determing data associated with proximate computing devices
US9646611B2 (en) Context-based actions
KR101404209B1 (en) Custom event and attraction suggestions
US8195203B1 (en) Location-based mobile device alarm
EP3627311B1 (en) Computer application promotion
US20170103072A1 (en) Generating Image Tags
CN107533696B (en) Automatically associating content with a person
US9529936B1 (en) Search results using query hints
US11468058B1 (en) Schema aggregating and querying system
CN113536158A (en) Providing updated answers to queries
US11397789B1 (en) Normalizing uniform resource locators
WO2023084381A1 (en) Schema aggregating and querying system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20211022

WD01 Invention patent application deemed withdrawn after publication