US20120023097A1 - Computer Application Data In Search Results - Google Patents
Computer Application Data In Search Results Download PDFInfo
- Publication number
- US20120023097A1 US20120023097A1 US13/249,228 US201113249228A US2012023097A1 US 20120023097 A1 US20120023097 A1 US 20120023097A1 US 201113249228 A US201113249228 A US 201113249228A US 2012023097 A1 US2012023097 A1 US 2012023097A1
- Authority
- US
- United States
- Prior art keywords
- search
- applications
- query
- user
- results
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72445—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting Internet browser applications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A computer-implemented search method includes receiving a registration request from each of one or more computer applications installed on a computing device and registering the applications in response to the request, wherein the registration request indicates an intent by the application to receive search query information from a search application associated with the device. The method also includes receiving user input on the device in the form of a query, providing the query to the one or more registered applications, receiving responses from the one or more registered applications that include data that is managed by the one or more registered applications; integrating the responses into a result set; and presenting the result set with the computing device.
Description
- This application is a continuation of and claims the benefit under 35 U.S.C. §119(e) of U.S. patent application Ser. No. 12/789,147, filed May 27, 2010, titled “Computer Application Data in Search Results,” which claims the benefit of U.S. Patent Application No. 61/181,643, titled “Computer Application Data in Search Results,” filed May 27, 2009, both of which are incorporated herein by reference.
- This document relates to systems and techniques for providing information in response to queries on a computing device, such as a smart phone.
- The amount of electronic information available to us continues to grow and grow and grow. That information includes public information, such as information that is available on the World Wide Web and is frequently located using public search engines. The information also includes our own private information, such as contact and scheduling information on our portable electronic devices. As the information continues to grow, it gets harder to separate the wheat from the chaff and to present to a user the information in which they are most interested at the moment.
- The manner of presenting information to a user is also a challenge. For example, some users are most interested in public content, while others may be interested in finding their own private information. Yet other users may be interested in finding information from different sources, or corpora, such as information about media files on their portable electronic device. The content of the information provided to a user when they are searching for information, the order in which it is presented to them, and the manner in which it is presented, can all contribute to the user's satisfaction with their device and with the services they use on their device.
- This document describes systems and techniques that may be employed to interact with a user of a computing device, like a mobile telephone that runs a search application. In general, the techniques may permit a search application to return search results—such as in the form of actual results or as suggestions for search queries the user may want to submit—from a number of different corpora, including corpora that are managed by third-party applications on the device. A third-party application is an application that is not part of the operating system for the device, and generally involves applications that are added to the device by the user after they have purchased the device. For example, a contacts manager that is integrated with the operating system on a smart phone would not be a third-party application, while a media player that is provided by a company that differs from the company that provided the operating system, would be a third-party application.
- Using the techniques discussed here, the third-party applications may have their information integrated with other results provided by the search application by registering themselves with the search application. Then, when a partial or complete query is entered by the user into the search application, the search application may send the query to all registered applications, and may receive results back from those registered applications. The search application can also search core applications that are part of the operating system, such as a contacts database or a list of applications that are loaded on the device. In addition, the search application may, in appropriate circumstances, send the query to search services that are remote from the device, such as standard public search engines, and may receive results in the form of search suggestions or a list of final search results, from such services. The search application may then aggregate all the various responses and display them to a user of the device.
- The manner in which the results are sorted for presentation to the user may be arranged so as to reflect likely interests of the user. For example, results that are intrinsic to the operating system may, at least at first, be provided with priority (i.e., displayed first in a group of results) under the assumption that a user will be most interested in items that were important and central enough that they were incorporated into the operating system. Web results may also be provided a relatively high priority. Results from third-party applications may initially be given a lower priority, and may be placed initially on a second page of search results. However, if a user selects a result for a particular third-party application, then the results for that application may be “promoted” to the first page, and subsequent selections by the user of such results may cause the results to move even higher in the list of results that are shown by the search application.
- In certain implementations, such systems and techniques may provide one or more advantages. For example, a user may be provided with an integrated presentation of search results that span across multiple corpuses from multiple different locations, including on the user's personal computing device. Also, the ranking and presentation of results can correspond to preferences of the user that are inferred from the user's actions, such as the user's responses to prior presentations of results. Also, the techniques discussed here can permit third-party application developers to have their data included in a global search result, in a manner of their choosing, so that they can maximize the usefulness of the results to a user of a computing device. For each of these reasons, the user experience for a user of a computing device can be improved, so that the use employs the search service more frequently, and has a positive impression of their device and its software (which may lead to follow-up purchases by the user, or word-of-mouth advertising from the user to potential buyers of the device of software).
- In one implementation, a computer-implemented search method is disclosed. The method comprises receiving a registration request from each of one or more computer applications installed on a computing device and registering the applications in response to the request, wherein the registration request indicates an intent by the application to receive search query information from a search application associated with the device. The method also comprises receiving user input on the device in the form of a query, providing the query to the one or more registered applications, receiving responses from the one or more registered applications that include data that is managed by the one or more registered applications, integrating the responses into a result set, and presenting the result set with the computing device. The registering of the applications can comprise storing registration information for the registered applications, and providing the query to the one or more registered applications comprises accessing the registration information to determine a mechanism for providing the query to each of the registered applications. Also, the query can comprise characters entered by a user without entering a query submission command.
- In some aspects, providing the query to the one or more registered applications comprises providing an updated query automatically to the registered applications for each character entered by the user of the computing device. The method can also comprise providing the query to one or more search services that are remote from the computing device. In addition, the method can include suppressing the providing of the query to the one or more search services until the user has entered a determined amount of information in the query. The determined amount of information can include a predetermined number of characters in the query.
- In certain aspects, integrating the responses into a result set comprises integrating responses from the registered applications with responses from one or more operating system components on the computing device and responses from one or more remote search services. Also, integrating the responses into a result set can comprise ranking the responses with respect to whether each response was generated form an operating system component, from a registered application, or a remote search service. Alternative, integrating the responses into a result set can comprise ranking the responses with respect to whether the user of the device has previously selected results provided by a particular registered application.
- In another implementation, a computer-implemented search method is described that includes receiving user input on a computing device in the form of a query, and providing the query to a plurality of different search result resources that include one or more applications on the computing device and one or more search services remote from the computing device. The process also include receiving a plurality of responses from the plurality of different search result resources and integrating the plurality of responses with others of the plurality of responses and placing the responses in a ranked order, and displaying the plurality of results on the computing device. Placing the responses in a ranked order in this implementation comprises assigning an initial score to results from a particular search result resource, and modifying the score positively if a user selects a result from the particular search result resource.
- In some aspects, placing the responses in a ranked order comprises assigning an initial score to responses from applications installed on the device so that the responses do not appear on an initial search results display, but are elevated to an initial search results display once a response from a particular application is selected by the user. The method can also include suppressing the providing of the query to one or more search services remote from the computing device until a threshold level of information has been entered in the query, while providing the query to the applications on the computing device. In addition, the method can include receiving registration requests form the one or more applications on the device, and registering the applications by storing registration information for the applications, and wherein providing the query to the one or more applications comprises accessing the registration information to determine a mechanism for providing the query to each of the applications. Moreover, providing the query to a plurality of search result resources can comprise providing an updated query automatically to the registered applications for each character entered by the user of the computing device.
- In yet another implementation, a computer-implemented search system includes memory storing registration information stored on a computing device, the registration information identifying manners for providing search query information entered by a user of the computing device, and one or more third-party applications on the device corresponding to the registration information and defining interfaces for receiving the search query information and for providing corresponding search results generated by the third-party applications. The system also includes a search application having code to use the registration information to route search query information to the third-party applications, to integrate the search results into a result set, and to present the result set to the user with the computing device. The system can additionally include one or more of search systems located remote from the computing device, wherein the search application includes code to provide the search query information to the search systems, and to integrate results from the search systems with results from the applications. The system can additionally include a result ranker to produce a ranked order of the integrated results, and the result ranker can access information indicating the user's responses to prior results corresponding to the one or more third-party applications.
- In another implementation, a system includes memory storing registration information and one or more third-party application as in the implementation above. The system also includes a means for generating an integrated ranked list search results form the one or more third-party applications.
- The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings, and from the claims.
-
FIG. 1 is a conceptual diagram that shows a search application on a computing device that receives search results from a variety of different sources. -
FIG. 2 shows an example search session by a user of a mobile computing device and corresponding search results from a variety of sources. -
FIG. 3 is a schematic diagram of a system that provides search results from third-party applications and other corpuses of data. -
FIG. 4A is a flow chart of an example process for providing search results from a plurality of data sources. -
FIG. 4B is a flow chart of an example process for providing search results from a plurality of data sources in a particular ranked order. -
FIG. 5 is a swim lane diagram that shows a process for delivering search results for multiple corpora. -
FIG. 6 shows screen shots from a mobile computing device delivering search results for multiple corpora. -
FIG. 7 shows an example of ageneric computer device 700 and a genericmobile computer device 750, which may be used with the techniques described here. - Like reference symbols in the various drawings indicate like elements.
- This document describes systems and techniques by which a search application on a computing device can integrate and deliver results from various different sources. The sources can include applications that are native to the operating system on the device, third-party applications that have been loaded on the device, and remote servers that serve search results in response to the submission of search queries. The particular results can include suggestions, which may be terms that begin with the characters a user has already entered, and whose selection will cause the terms to be submitted to a search engine for the delivery of information that can lead to records or documents such as web pages, or final search results, which themselves point to the final records or documents. Also, a mix of results in the form of suggestions and final search results may be provided. Such provision of results may occur while a user is entering a query (e.g., between individual character entries by the user on a keyboard), and also after the user has submitted a completed query.
- The results may be sorted by inferring what categories of information the user is most interested in. As an initial matter, it can be assumed that the user is most interested in information associated with applications that are central to their device, such as personal information manager applications like scheduling and contacts applications. The user may also be interested in seeing the names of applications that have been loaded onto their device, as a mechanism for launching such applications (e.g., if the user has not chosen to add an icon for a particular application to their desktop). In addition, it can be assumed that a user will be interested in web search results (which make up the vast majority of on-line search requests). The user might also want to search in data stored and managed by various applications that they have loaded on their device, though it may be difficult for a search application to determine, initially, how interested the user would be. As a result, a search application may initially treat such information as having a low interest, and then promote such information in rankings of subsequent search results as a user interacts with results directed to that particular application, or as the user interacts with data in the application.
-
FIG. 1 is a conceptual diagram that shows a search application 100 on a computing device that receives search results from a variety of different sources. The search application 100 appears at the middle of the figure, surrounded by icons that represent each of a plurality of corpuses or sources of information that can be accessed via the search application 100. In general, the arrangement shows how numerous different sources of information can provide content for a search, and how the search application 100 can rank and present parts of that content. - For purposes of this example, the content sources are shown as falling into one of three groups. First, there are the
native applications 102. These are applications (and corresponding data sources) that are provided with a device initially and with the search application that also comes with the device. Frequently, native applications for mobile devices take the form of personal information management applications, such as address or contact books, task lists, and appointment books or calendars. The applications may also include a web browser, where the native application data may include a history list or bookmarks—and where a user may want to use the search application 100 to quickly find a link to one of their favorite web pages (e.g., when they don't want to have to manually launch the browser and then select the bookmark or type the URL). In addition, the native application data may include identifies of applications themselves, so that the search result includes a title of an application overlying a link whose selection causes an instance of the application to launch. -
Remote services 104 are also shown, and can take a wide variety of well-known forms. The most common type of remote service is a typical web search engine that provides a list or other organization of objects that a user may select to be taken to web pages (i.e., landing pages) or other documents that are responsive to a query submitted by the user. The remote services can also provide recent news stories as search results; lists of products that a user might be able to buy, prices for the products, and links to sellers of the products; and social networking information such as data from pages of friends of a device user. - In addition, one or more remote services may provide suggestions as results to a partial user query. Suggestions are terms that a service infers the user might be trying to enter while the user is still entering a query. Suggestions are presented before the user submits a final search result (e.g., by pressing an enter key or clicking a submit button), and are educated guesses at the final query that the user is in the process of entering. Generally, the suggestions are selected from a group of all terms that begin with the characters the user has entered so far, sorted by a metric such as the frequency with which such terms have appeared in past searches provided by a plurality of users to the search service. In some situations, selection of a suggestion causes a search to be performed that uses the selected suggestion as the query term, and that returns a plurality of search results. In other situations, the suggestion is the result itself, and selection of the suggestion brings up the target document for the result. For example, a search application may return actual contact information for particular contacts while a user is typing a query, so that selection of a displayed name for a contact will result in that person's telephone number being dialed automatically, or in a complete contact record for that person being displayed.
- Certain operations by a user may also occur across corpora, such as where a contact's name comes up in the middle of a user's entering of a query, and the user selects the contact name for a web search. The name may then be submitted to a web search service and web search results may be returned, rather than opening a contact record for that person.
- The third group of search data comes from third-party applications. The applications can take a near infinite variety of forms, and may address a near infinite number of topics. In this example, three such applications are shown for purposes of illustration. First, a social application may store information (either locally on the device or remotely at a hosted service) about a user's social network, such as names of friends and the like. The social application may be used in place of or in combination with the social service shown in the
remote service 104. For example, certain limited information, such as names and URL's for friends, may be stored locally on a device and synchronized with the social service, and more detailed information such as content on friends' pages, can be stored centrally and provided via the social service. Second, a navigator application can provide maps to a user and keep track of locations visited by the user. The navigator data may include, for example, names of locations (e.g., Camden Yards, Shea Stadium, etc.) and may be returned as search results that a user may select to be shown a map of the area associated with a selected name. Third, a media player is shown, and its data may include the names of media files (e.g., titles of songs or movies), the names of artists (e.g., singers, groups, actors, or directors), playlists, and the like, where a user selection can cause a folder showing songs from a particular artiest, or can cause a particular media file to begin playing. - An example display for the search application 100 is shown at the middle of the figure. In this example, the user is in the process of entering a query that begins with the characters “zeb.” Each time the user enters a character, the then-current search string can be submitted to the various relevant search sources, and results from those sources can be displayed in an area around the search box where the user is typing as quickly as is practical.
- Example results that have been gathered from the various pictured sources are shown on the display for the search application in the middle of the figure. The results are shown generally in the form of a suggestions box that may pop up temporarily below a search entry box that is generated by the search application 100. In this example, the results have been sorted by the search application 100 in a particular order. The first result is a search suggestion that, if selected by the user, will cause the device to perform a web search for the term that has been entered so far. Such an item could also provide a suggestion of a more complete term that includes the letters that have been entered so far (e.g., zebra).
- The second entry in the list indicates that two bookmarks or histories have been located that begin with the characters “zeb.” Such a result comes from data local to the machine, and in particular, a web browser. The web browser that supplied the information may be integrated with the operating system so that the operating system is specifically programmed so that the pictured information gets to the search application 100. In a similar manner, the third entry shows a single contact that is responsive to the search, and because a single contact can be displayed in a minimum of screen space, the actual name of the contact may be shown in a manner so that the user of the device can select the contact without any further selections. A threshold may be set on a device to control the number of records that could be shown in such a display before the display will collapse into a single-line summary display like that shown for the bookmarks and history result.
- The fourth result is from a third-party application on the device—i.e., the media player shown in the zone of registered
applications 106. Such an application may register itself with the operating system on the device so that when any search characters are received by the search application 100, the search application understands to forward those characters to a location identified by the third-party application. In this example, the music player received the query string of “zeb” and found a single item that was responsive to such a request—the song “Our Stripes” by “The Zebras.” - The particular order of the results on the search application 100 can depend on assumptions about corpuses that will most interest a user, in addition to data reflecting a user's prior responses to results from such corpuses. For example, web search is at the top here, and may have been assigned such a position by the search application under an assumption that users who employ a search box generally want to conduct at least a search of web properties. The next two results appear in their positions under a presumption that a user of a device has a core interest in material they have placed on the device. Finally, the music result reflects an assumption that the information from a third-party application—absent a user action to the contrary—will be of lesser relevance to a user. The music result may climb, and may already have climbed, based on a user's selection of music results that were displayed in response to prior search queries on the user's device—such selections indicating that, not only did the user want a music-playing application on their device, but they actually want to, and do, use the search application 100 to find that information.
- In certain implementations, as described in more detail below, submission of a partial query may be suppressed to certain corpora in certain situations. For example, characters may not be submitted to the
remote services 104 until a certain number of characters have been entered, such as 3 or 4 characters. In this manner, results local to the user's device may have initial prominence and the user may select them if that is what the user is looking for. Also, the number of members in the local corpora for a single character is relatively small (tens or hundreds) compared to the number of members for remote services such as web search (millions or billions). As a result, local corpora are more likely to provide useful results for such single-character or two-character entries than would the remote services (which would largely be guessing in the dark if they were asked to provide a response to the query “z”). The remote service results can then be blended in, and may take prominence, after the triggering number of characters have been entered. Alternatively, the remote services may be consulted, but display of their results may be suppressed until the number of hits falls below a threshold number that represents that the results are relatively accurate, or until an accuracy score from the remote service hits a particular level. For example, a device may submit a query, but the service may be programmed not to respond unless its confidence in its results is sufficient, and the device may simply not display results from the service in that case. -
FIG. 2 shows an example search session by a user of a mobile computing device and corresponding search results from a variety of sources. In general, what is shown is the characters entered by a user of adevice 200 and the responses made by applications that manage certain corpuses of information that might be of interest to a user of thedevice 200. - The relevant components that play a role in the user's search session are shown across the top of the figure. First, a
search application 202 receives queries from the user and distributes the queries to the other illustrated components. Second, anoperating system 204 represents core applications that may be part of the device operating system itself such as a contacts manager. Third, amedia player 206 represents an application that may not be integrated with the operating system, but that was instead purchased by the user of thedevice 200 from a third party, and installed on thedevice 202 after the purchase and set-up of thedevice 200. Each of these three components are enveloped by a dotted line that represents thedevice 200, and thus represents that each such component involves search that is local to the device, rather than search that is handled by a remote service such as a commercial search engine. -
Box 208 shows such a commercial search service. The service can take many forms, and in a typical form would provide web search results in response to the submission of queries formed from alphanumeric characters. - A first character entered by the user is shown at
step 210. The letter is “g”, and triggers two different types of responses by various operating system components. First, the names of two applications—Gmail and Grin Factory—are returned by the operating system components. Second, the names of two of the user's contacts are shown. Such results may be passed back to thesearch application 202 as quickly as possible so that they can be displayed to the user while the user is still typing. - The
media player 206 has generated two types of results—a song title and two band names. Though shown alone in this example, the results could also include additional metadata such as labels “song” and “group” or “artist”. In addition, themedia player 206 would be expected to return to thesearch application 202 information needed to generate a hyperlink so that a user of thedevice 200 can quickly select the song title to listen to that particular song, or can select one of the band names to see a complete list of songs by that band that are stored on thedevice 200 or are available for steaming via themedia player 206. - For its part, the
search service 208 has generated no results for the letter “g”. This is not because there are no results—rather, it is because there would likely be too many results for the results to be meaningful to the user ofdevice 202. As a result, the results are suppressed for the first two characters of a query that a user enters. Such suppression may occur by thesearch application 202 failing to send query information to thesearch service 208 until a predetermined number of characters appear in the search field, or can also occur by thesearch service 208 receiving a query but refusing to provide a response, such as where a quality score of all the responses falls below a predetermined threshold level. - The second character is shown at
step 212, where the characters “go” have been entered. Theoperating system 204 components have responded by eliminating three of the prior results that are no longer responsive, showing one of the prior responses twice (perhaps by error or perhaps because that persona appears as a contact and a meeting reminder), and by adding a new matching result. That result may have matched before, but was ranked low enough that it was not returned by the relevant operating system component. With respect to this aspect of the process shown here, it may be in the best interest of an application to not return all matching results, and the particular application may make such a determination to limit the matches that it returns. In particular, a user may be unsatisfied with the performance of an application if it returns results that have marginal relevance, even if they are technically matches. Also, thesearch application 202 or an API by which the applications communicate with the search application may impose limits on the number of results that may be returned to thesearch application 202. - The third character is shown at
step 214, where the characters “gos” have been entered by a user. Theoperating system components 204 have now narrowed to a result that is a single contact. Themedia player 206 has eliminated all of its prior results, and located a movie—Gosford Park—that was not previously shown, perhaps because it had received a very low rating from the user or from an on-line rating source, or perhaps because it had not been accessed on thedevice 200 for a very long time. Also, thesearch service 208 has finally been brought into the process, and has provided two results in the form of suggestions—one for a young bird, and another for a Soviet economic planning committee. These results may have been returned as suggestions, either because they were the only matches in the corpus that thesearch service 208 was analyzing or because there had been extensive recent interest in the topics, as judged by a number of search queries containing the terms that were received by thesearch service 208. - Device 216 shows the manner in which the search application may integrate and display the various results that are received at
step 214. First, the device 216 shows asearch box 218 in a standard form, with the characters “gos” having been entered into thebox 218. Asearch button 220 is also shown, but has not been selected to indicate a user intent to submit a complete search query, so that some of theresults 222 are in the form of suggestions for completing the user's partially-completed query. The contact is shown first, indicating that heuristic rules programmed into thesearch application 202, when combined with usage data for a contact (e.g., a number of times or percentage of times or other frequency with which the user has selected contacts when they are presented in a result set), indicate that the user is likely to be most interested in the contact. The fact that the contact corpus generated only one result may also play a role in its rank in theresults 222 being elevated relative to other results. The second result is the two web search results returned by the search service. Because there are multiple results in this corpus, the actual identity of either result is not shown, and instead, a summary is shown to indicate that there are two suggestions for web searches. If the user selects (or hovers over) this area in theresults 222, they will be shown the two results, and if they select one of the results, a search will be performed on the term of that particular selected result. The third result is the movie from themedia player 206. As indicated before, the media player had ranked the movie pretty low relative to other results, and it is again ranked low in the list of global results across the multiple corpuses. That low ranking may be based on the heuristic rules or usage information discussed above, or may also be based on a score that the media player passed to thesearch application 202. However, mechanisms may be required where thesearch application 202 is relying on scoring from third-party applications so as to prevent any cheating by applications that attempt to push their results higher improperly. Also, the display shows that the movie is tagged as a movie in the result set, so that themedia player 206 must have passed that piece of meta data along with the movie title. The movie title may also be in the form of a hyperlink that points to the media file for the movie on the device 216 or on a remote server (e.g., for streaming applications) so that a user's selection of the title causes the movie to start playing, or detailed information about the movie to be shown (e.g., a list of stars, a summary, reviews, and the like). -
FIG. 3 is a schematic diagram of asystem 300 that provides search results from third-party applications and other corpuses of data. Thesystem 300 may be implemented using a mobile device such asdevice 302. Thedevice 302 includes various input and output mechanisms such as atouch screen display 304 and a keyboard. A number of components withindevice 302 may be configured to provide various search and presentation functionality ondisplay 304, such as gathering, integrating, and presenting search results from multiple different sources and corpuses. - One such component is a
display manager 312, which may be responsible for rendering content for presentation ondisplay 304. Thedisplay manager 312 may receive graphic-related content from a number of sources and may determine how the content is to be provided to a user. For example, a number of different windows for various applications 310 on thedevice 304 may need to be displayed, and thedisplay manager 312 may determine which to display, which to hide, and what to display or hide when there is overlap between various graphical objects. - An
input manager 314 may be responsible for translating commands provided by a user ofdevice 302. For example, such commands may come from a keyboard, fromtouch screen display 304, or from other such sources, including dedicated buttons, trackballs, or soft buttons (e.g., buttons whose functions may change over time, and whose functions may be displayed on areas ofdisplay 304 that are adjacent to the particular buttons). The input may also occur more inferentially, such as from signals provided by an on-board compass or accelerometer. Theinput manager 314 may determine, for example, in what area of the display commands are being received, and thus in what application being shown on the display the commands are intended for. In addition, theinput manager 314 may interpret input motions on thetouch screen 304 into a common format and pass those interpreted motions (e.g., short press, long press, flicks, and straight-line drags) to the appropriate application. Theinput manager 314 may also report such inputs to an event manager (not shown) that in turn reports them to the appropriate modules or applications. - A variety of applications may operate, generally on a common microprocessor, on the
device 302. One such application, which may be bundled with the device when it is sold or added to the device later, issearch manager application 320. Thesearch manager application 320 is responsible for placing a search box on thescreen 304 or otherwise providing a mechanism through which a user can enter queries. Thesearch manager application 320 is also responsible for taking the queries and sending them via multiple threads, to various other applications, such asapplications device 304, and to remote systems. Furthermore, thesearch manager application 320 is responsible for receiving results back from those objects, and for compiling the results into a ranked list of search results that span across multiple corpuses, such as in the manners discussed above and below. Thesearch manager application 320 and other applications on thedevice 304 may depend on various forms of data stored on thedevice 304. First,user information 318 may stored information that reflects preferences of a user of thedevice 304. Such preferences may be identified explicitly by the user, such as in a user profile that defines how the user wants thedisplay 304 to look, or how the user wants other parameters of thedevice 302 to behave. The preferences may also be implicit, such as data indicating the sorts of search results the user typically selects or the applications the user launches frequently. Such information can be used to affect the rank of a search result in a combined search result set created by thesearch manager application 320. - Various applications can also access
application information 316. Such information may take a variety of forms, and may include actual data that is central to the application, such as documents for business productivity programs, media files for a media player, or other similar files. Theinformation 316 may also include meta data, such as rankings that the user has given to a particular piece of media, or the number of times the user has played it. Again, such information may be used to infer the user's interest in a corpus of data associated with a group of search results, and may cause results that correspond to that corpus to be elevated or lowered in a search result grouping. - The
various applications search manager application 320, so that thesearch manager application 320 knows to send them queries when queries are entered into thesearch manager application 320. The registration information can include an address or other mechanism for telling thesearch manager application 320 where to send the information so that the relevant application will be notified and can begin to process a response as quickly as possible. Other applications on the device that are not shown in this figure, have not registered themselves as applications that would like to be made part of the search process. - A
wireless interface 308 may also receive communications fromsearch manager application 320, so as to pass such information (e.g., queries) to remote services, such as services running onapplication server 332, andsearch servers internet 330, in addition to a wireless network with which thedevice 302 is subscribed. - The
application server 332 may be associated with one ofapplications applications device 302 may be able to return a song title and limited other information as a search result, but the application may be provided with the ability to deliver additional functionality by additionally searching lyrics that are stored and indexed onapplication server 332. As a result, such an application would not be limited to responding to queries simply for sing titles and artists, and would also not be limited to delivering results merely in the form of titles and other limited data. Theapplications application server 332 outside the context of the searching described here. For example, a media player application could access lyric information while playing any media file so that a user ofdevice 302 can see the lyrics as they are sung/played. - The search servers may be accessed directly by the
search manager application 320 in manners like those discussed above. Twosearch servers 336 are shown here to represent two different corpuses (e.g., web and image) that can be searched simultaneously, though multiple corpuses may be searched and delivered through a single gateway. As noted above also, thesearch servers 334 may be suspended from delivering results through thesearch manager application 320 until after a user has entered a sufficient amount of information to make the results from thesearch servers - In this manner, the various components of
system 300 can provide a superior search experience for a user ofdevice 302. In particular, the user can be provided results form multiple corpora and multiple applications in a single result set. The result set may also be ordered according to interactions that the user has had with results form particular corpora in prior search result sets, e.g., so that frequent user selections from a particular corpus will cause other results from that corpus to be ranked higher in future result sets. -
FIG. 4A is a flow chart of an example process for providing search results from a plurality of data sources. In general, the process involves the registration of third-party applications with a search service provided on a computing device, subsequent spreading of search queries to registered applications and other search sources, and integrating of search results from the various services. - The process begins at
box 402, where the search service receives a registration request from each of one or more third-party applications that have been loaded on the device. The request may be made according to a published API for the search service, and the applications may each submit information sufficient for the search service to send search query information to the registering applications. The search service may also check an external source to determine whether the third-party application is sufficiently trusted or legitimate to be allowed access to putting search results into a result set for the search service. - At
box 404, the search service detects input in a search box. Such detection may occur by a user making a search application active, or simply by a user entering text into a search box that may be persistently displayed as part of a user interface (e.g., in a toolbar or system tray or similar structure). The detection may occur for every character that a user enters, so that search results are returned for every keystroke from the user. Such an approach may allow the user to save time and keystrokes, as it may present to the user the search term that the user has begun entering (e.g., as a suggestion) or may present search results before a user has finished entering a query. - At
box 406, the search service sends the entered characters to the registered applications. Such submission may be repeated for every character that is entered (including characters that delete a previously-entered character). The query characters may also be submitted to more traditional sources other than registered third-party applications, such as operating system components on the user's computing device and remote search systems that are far from the computing device, and accessed over the internet (box 408). - The service can then receive responses from the various applications or services to which it sent the query information and can begin integrating the received information into a single global result set. The integration can occur in a batch or serially. For batch integration, the process may wait until all of the applications or services have responded, or a timeout period has expired, and may then present the result set to the user (after ordering it in a ranked order). For serial integration, the results can be shown to the user as they arrive back from the various services or applications. The newly arriving results can be slotted into position in the result set as the user watches the result set change and evolve. Thus, results that are local to the device may be returned first, while results form remote servers may be returned last. Where latency is minimal, the difference in timing may be imperceptible to the user.
- In determining how and if to display a particular result, the process may check usage information for particular results in prior search result sets (box 412). For example, results for a new third-party application may initially be kept on a second screen of results until a user selects a result from the application one or more times. Such user selection may provide an implicit suggestion that the user likes seeing results from that application or corpus, so that future results form the application or corpus may receive a higher ranking and may be displayed on a first page in the result set.
- At
box 414, the responses are aggregated for display to the user. As noted above, the aggregation may occur as a batch or serially. Also, the order of the results may take into account a number of signals in addition to a user's interaction with prior results. For example, the process may obtain data regarding other users' interactions with results for particular applications so that results shown to the present user may be properly tuned (at least according to the preferences of the group) even before the particular user has expressed a preference. Also, certain types of applications or certain types of data may be biased toward a particular weighting, with the understanding that, even if a user does select results from that area for a period, the user is still unlikely to want to see such results high on their list for a long time period. - Finally, at
box 416, the results are displayed. Again, the display need not occur after all results have been returned and ranked, and the particular manner in which the results are displayed in a graphical user interface may vary depending on the situation. -
FIG. 4B is a flow chart of an example process for providing search results from a plurality of data sources in a particular ranked order. This process is generally similar to the process shown inFIG. 4A but provides additional detail regarding the ranking of search results on a computing device. - The process starts at
box 420, where query input is received from a search box or other component. (Applications have presumably already registered themselves with the system, where such registration is needed to perform global searching across multiple corpora.) Atbox 422, the query is broadcast to relevant applications and services, in manners similar to those discussed above. Atbox 424, local results are returned to the process, such as results from operating system components and from third-party applications that are running on the computing device. Such results will generally (though not always) arrive first because they do not have a long round-trip path. Then, atbox 426, results from applications and services arrive. These later results may be from third-party applications that needed to acquire data from a remote service (e.g., in the music lyric example above), and the services would be services hosted by remote server systems. - At box 428, the corpora from which results were returned are ranked. Such ranking may occur by a number of signals, including primary relevance and usage data. Primary relevance indicates how important the particular corpora is presumed to be to the user in the context of search results. Such a determination may be made without regard to particular actions by the particular user, such as by determining that particular corpora are more relevant than other corpora. The determination may also take into account characteristics of the particular user, such as age (e.g., college-age users may presumably prefer to have music selections shown high in a search result).
- The usage data involves analysis of the ways in which the particular users or other users in aggregate have reacted to particular data. For example, if the particular user frequently selects songs when searching, the grouping of results from the user's media player application may be elevated in a result set. Similarly, if all users of a device, all users in the particular user's social network or demographic group, or another relevant group of users, frequently make such a selection, the selected corpus may be elevated in the result rankings. The ranking of a corpus may also depend on the perceived quality of the search results that are being returned by the search process. For example, if a particular corpus generates results that are perceived by the ranking algorithm to be direct hits, the entire corpus may be elevated in the search rankings.
- Finally, at
box 430, the results are displayed to the user according to the determined rankings. -
FIG. 5 is a swim lane diagram that shows a process for delivering search results for multiple corpora. In general, this process is similar to the processes shown inFIGS. 4A and 4B , but shows in more detail the roles played by particular components in the search system. - The process begins at
box 502 where one or more third-party applications register themselves with a local search application, and the local search application records and stores information regarding the registered applications. The local search application may also check the bona fides of the requesting applications to ensure that they are not nefarious. - At
box 506, the local search application receives character input from a user of the application, and at box 508, the local search application checks the main data sources to which it has direct access (e.g., contacts, application names, and similar data) and sends the input characters to the registered applications. Atbox 510, each relevant registered application receives the entered characters and performs a search of its corpus or corpora. The applications then return the results that they found for the characters, generally in parallel with each other. As the responses arrive at the local search application from the various third-party applications, the local search application combines the received results with the results from the main data sources that it identified itself (box 512). At this stage, not enough characters have been entered for the local search application to forward the query information to remote search systems. - At
box 514, however, additional characters are typed or spoken by a user, and the local search application again checks the main data sources and sends the new characters to the registered applications. The local search application also sends the characters to the search engine, and the third-party applications (box 520) and search engine (box 518) process the queries and return search results to the local search application. Atbox 522, the local search application receives the responses and combines them with the main data sources, including by ranking them such as in the manners discussed above. Finally, atbox 524, the process displays all of the integrated results to the user of the device (box 524). -
FIG. 6 shows screen shots from a mobile computing device delivering search results for multiple corpora. The left screen shot generally shows a result set from entering the letter “a” in a search box for a mobile device, such as a device running the Android operating system. The first result in the list offers the user a chance simply to submit the letter “a” as a final and complete search query. The second result shows that the user has one bookmark that starts with the letter “a”. The third result shows two applications on the device start with the letter “a,” and the fourth shows two additional bookmarks in this regard. Finally, there are seven GOOGLE search results and seven contacts for the user that begin with the letter. - The right screen shows what may be shown if a “more” selection is provided on the first screen and a user selects that control. The “more” selection may expose results from corpora or applications that are not, at the moment, considered to be primary, though a user's selection of one of the results on the second screen may cause the related corpus to be moved up in relevance so that it appears on the first result screen. In this example, the user has installed a certain application from AMAZON.COM, and also includes a particular contact whose name starts with “a,” among other things. Thus, in short, the integrated search results may span across multiple distinct pages, and certain corpuses of information may be elevated or lowered across the dividing line between the pages, depending on whether a user has selected content from those corpuses in the recent history of the user's interaction with their device.
-
FIG. 7 shows an example of ageneric computer device 700 and a genericmobile computer device 750, which may be used with the techniques described here.Computing device 700 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 750 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document. -
Computing device 700 includes aprocessor 702,memory 704, astorage device 706, a high-speed interface 708 connecting tomemory 704 and high-speed expansion ports 710, and alow speed interface 712 connecting tolow speed bus 714 andstorage device 706. Each of thecomponents processor 702 can process instructions for execution within thecomputing device 700, including instructions stored in thememory 704 or on thestorage device 706 to display graphical information for a GUI on an external input/output device, such asdisplay 716 coupled tohigh speed interface 708. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also,multiple computing devices 700 may be connected, with each 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 704 stores information within thecomputing device 700. In one implementation, thememory 704 is a volatile memory unit or units. In another implementation, thememory 704 is a non-volatile memory unit or units. Thememory 704 may also be another form of computer-readable medium, such as a magnetic or optical disk. - The
storage device 706 is capable of providing mass storage for thecomputing device 700. In one implementation, thestorage device 706 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 memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can 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 thememory 704, thestorage device 706, memory onprocessor 702, or a propagated signal. - The
high speed controller 708 manages bandwidth-intensive operations for thecomputing device 700, while thelow speed controller 712 manages lower bandwidth-intensive operations. Such allocation of functions is exemplary only. In one implementation, the high-speed controller 708 is coupled tomemory 704, display 716 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 710, which may accept various expansion cards (not shown). In the implementation, low-speed controller 712 is coupled tostorage device 706 and low-speed expansion port 714. 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, e.g., through a network adapter. - The
computing device 700 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as astandard server 720, or multiple times in a group of such servers. It may also be implemented as part of arack server system 724. In addition, it may be implemented in a personal computer such as alaptop computer 722. Alternatively, components fromcomputing device 700 may be combined with other components in a mobile device (not shown), such asdevice 750. Each of such devices may contain one or more ofcomputing device multiple computing devices -
Computing device 750 includes aprocessor 752,memory 764, an input/output device such as adisplay 754, acommunication interface 766, and a transceiver 768, among other components. Thedevice 750 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of thecomponents - The
processor 752 can execute instructions within thecomputing device 750, including instructions stored in thememory 764. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors. The processor may provide, for example, for coordination of the other components of thedevice 750, such as control of user interfaces, applications run bydevice 750, and wireless communication bydevice 750. -
Processor 752 may communicate with a user throughcontrol interface 758 anddisplay interface 756 coupled to adisplay 754. Thedisplay 754 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. Thedisplay interface 756 may comprise appropriate circuitry for driving thedisplay 754 to present graphical and other information to a user. Thecontrol interface 758 may receive commands from a user and convert them for submission to theprocessor 752. In addition, anexternal interface 762 may be provide in communication withprocessor 752, so as to enable near area communication ofdevice 750 with other devices.External interface 762 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 764 stores information within thecomputing device 750. Thememory 764 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.Expansion memory 774 may also be provided and connected todevice 750 throughexpansion interface 772, which may include, for example, a SIMM (Single In Line Memory Module) card interface.Such expansion memory 774 may provide extra storage space fordevice 750, or may also store applications or other information fordevice 750. Specifically,expansion memory 774 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example,expansion memory 774 may be provide as a security module fordevice 750, and may be programmed with instructions that permit secure use ofdevice 750. In addition, secure applications may be provided via the SIMM cards, along with 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 implementation, 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 764,expansion memory 774, memory onprocessor 752, or a propagated signal that may be received, for example, over transceiver 768 orexternal interface 762. -
Device 750 may communicate wirelessly throughcommunication interface 766, which may include digital signal processing circuitry where necessary.Communication interface 766 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 768. In addition, 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 770 may provide additional navigation- and location-related wireless data todevice 750, which may be used as appropriate by applications running ondevice 750. -
Device 750 may also communicate audibly usingaudio codec 760, which may receive spoken information from a user and convert it to usable digital information.Audio codec 760 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset ofdevice 750. 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 ondevice 750. - The
computing device 750 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as acellular telephone 780. It may also be implemented as part of asmartphone 782, personal digital assistant, or other similar mobile device. -
Device 750 may also include one or more different devices that are capable of sensing motion. Examples include, but are not limited to, accelerometers and compasses. Accelerometers and compasses, or other devices that are capable of detecting motion or position are available from any number of vendors and can sense motion in a variety of ways. For example, accelerometers can detect changes in acceleration while compasses can detect changes in orientation respective to the magnetic North or South Pole. These changes in motion can be detected by thedevice 750 and used to update the display of therespective devices 750 according to processes and techniques described herein. - 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, software applications or code) include machine instructions for a programmable processor, and can 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 can be used to provide for interaction with a user as well; 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 can be received in any form, including acoustic, speech, 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”), and the Internet.
- The computing system can 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.
- A number of embodiments have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, much of this document has been described with respect to messaging and mapping applications, but other forms of graphical applications may also be addressed, such as interactive program guides, web page navigation and zooming, and other such applications.
- In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, 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 embodiments are within the scope of the following claims.
Claims (20)
1. A computer-implemented search method, comprising:
receiving, at a computer system, a registration request from each of one or more computer applications installed on a computing device and registering the applications in response to the request, wherein the registration request indicates an intent by the application to receive search query information from a search application associated with the device;
receiving user input on the device in the form of a query;
providing the query to the one or more registered applications;
receiving responses from the one or more registered applications that include data that is managed by the one or more registered applications;
integrating the responses into a result set; and
presenting the result set with the computing device.
2. The method of claim 1 , wherein registering the applications comprises storing registration information for the registered applications, and providing the query to the one or more registered applications comprises accessing the registration information to determine a mechanism for providing the query to each of the registered applications.
3. The method of claim 1 , wherein the query comprises characters entered by a user without entering a query submission command.
4. The method of claim 3 , wherein providing the query to the one or more registered applications comprises providing an updated query automatically to the registered applications for each character entered by the user of the computing device.
5. The method of claim 4 , further comprising providing the query to one or more search services that are remote from the computing device.
6. The method of claim 5 , further comprising suppressing the providing of the query to the one or more search services until the user has entered a determined amount of information in the query.
7. The method of claim 6 , wherein the determined amount of information comprises a predetermined number of characters in the query.
8. The method of claim 1 , wherein integrating the responses into a result set comprises integrating responses from the registered applications with responses from one or more operating system components on the computing device and responses from one or more remote search services.
9. The method of claim 8 , wherein integrating the responses into a result set comprises ranking the responses with respect to whether each response was generated form an operating system component, from a registered application, or a remote search service.
10. The method of claim 8 , wherein integrating the responses into a result set comprises ranking the responses with respect to whether the user of the device has previously selected results provided by a particular registered application.
11. A computer-implemented search method, comprising:
receiving user input on a computing device in the form of a query;
providing, with the computing device, the query to a plurality of different search result resources that include one or more applications on the computing device and one or more search services remote from the computing device;
receiving a plurality of responses from the plurality of different search result resources and integrating the plurality of responses with others of the plurality of responses and placing the responses in a ranked order; and
displaying the plurality of results on the computing device,
wherein placing the responses in a ranked order comprises assigning an initial score to results from a particular search result resource, and modifying the score positively if a user selects a result from the particular search result resource.
12. The method of claim 11 , wherein placing the responses in a ranked order comprises assigning an initial score to responses from applications installed on the device so that the responses do not appear on an initial search results display, but are elevated to an initial search results display once a response from a particular application is selected by the user.
13. The method of claim 11 , further comprising suppressing the providing of the query the one or more search services remote from the computing device until a threshold level of information has been entered in the query, while providing the query to the applications on the computing device.
14. The method of claim 11 , further comprising receiving registration requests form the one or more applications on the device, and registering the applications by storing registration information for the applications, and
wherein providing the query to the one or more applications comprises accessing the registration information to determine a mechanism for providing the query to each of the applications.
15. The method of claim 11 , wherein providing the query to a plurality of search result resources comprises providing an updated query automatically to the registered applications for each character entered by the user of the computing device.
16. A computer-implemented search system, comprising:
memory storing registration information stored on a computing device, the registration information identifying manners for providing search query information entered by a user of the computing device;
one or more third-party applications on the device corresponding to the registration information and defining interfaces for receiving the search query information and for providing corresponding search results generated by the third-party applications; and
a search application having code to use the registration information to route search query information to the third-party applications, to integrate the search results into a result set; and to present the result set to the user with the computing device.
17. The system of claim 16 , further comprising one or more of search systems located remote from the computing device, wherein the search application includes code to provide the search query information to the search systems, and to integrate results from the search systems with results from the applications.
18. The system of claim 17 , further comprising a result ranker to produce a ranked order of the integrated results.
19. The system of claim 18 , wherein the result ranker accesses information indicating the user's responses to prior results corresponding to the one or more third-party applications.
20. A computer-implemented search system, comprising:
memory storing registration information stored on a computing device, the registration information identifying manners for providing search query information entered by a user of the computing device;
one or more third-party applications on the device corresponding to the registration information and defining interfaces for receiving the search query information and for providing corresponding search results generated by the third-party applications; and
means for generating an integrated ranked list search results form the one or more third-party applications.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/249,228 US20120023097A1 (en) | 2009-05-27 | 2011-09-29 | Computer Application Data In Search Results |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18164309P | 2009-05-27 | 2009-05-27 | |
US12/789,147 US20100306191A1 (en) | 2009-05-27 | 2010-05-27 | Computer Application Data In Search Results |
US13/249,228 US20120023097A1 (en) | 2009-05-27 | 2011-09-29 | Computer Application Data In Search Results |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/789,147 Continuation US20100306191A1 (en) | 2009-05-27 | 2010-05-27 | Computer Application Data In Search Results |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120023097A1 true US20120023097A1 (en) | 2012-01-26 |
Family
ID=42556934
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/789,147 Abandoned US20100306191A1 (en) | 2009-05-27 | 2010-05-27 | Computer Application Data In Search Results |
US13/249,228 Abandoned US20120023097A1 (en) | 2009-05-27 | 2011-09-29 | Computer Application Data In Search Results |
US14/686,516 Active US9582549B2 (en) | 2009-05-27 | 2015-04-14 | Computer application data in search results |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/789,147 Abandoned US20100306191A1 (en) | 2009-05-27 | 2010-05-27 | Computer Application Data In Search Results |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/686,516 Active US9582549B2 (en) | 2009-05-27 | 2015-04-14 | Computer application data in search results |
Country Status (8)
Country | Link |
---|---|
US (3) | US20100306191A1 (en) |
EP (1) | EP2435932A1 (en) |
KR (1) | KR20120040160A (en) |
CN (1) | CN102483753A (en) |
AU (1) | AU2010253843B2 (en) |
BR (1) | BRPI1014397A2 (en) |
CA (1) | CA2763668A1 (en) |
WO (1) | WO2010138749A1 (en) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110184730A1 (en) * | 2010-01-22 | 2011-07-28 | Google Inc. | Multi-dimensional disambiguation of voice commands |
US20130325340A1 (en) * | 2012-06-05 | 2013-12-05 | Apple Inc. | Routing applications for navigation |
US20140358409A1 (en) * | 2013-06-01 | 2014-12-04 | Apple Inc. | Location-Based Features for Commute Assistant |
WO2015123432A1 (en) * | 2014-02-14 | 2015-08-20 | Google Inc. | Suggestions to install and/or open a native application |
WO2015200118A1 (en) * | 2014-06-24 | 2015-12-30 | Quixey, Inc. | Generating advertisements for search results that reference software applications |
US9317605B1 (en) | 2012-03-21 | 2016-04-19 | Google Inc. | Presenting forked auto-completions |
US20160132596A1 (en) * | 2014-11-12 | 2016-05-12 | Quixey, Inc. | Generating Search Results Based On Software Application Installation Status |
US9646606B2 (en) | 2013-07-03 | 2017-05-09 | Google Inc. | Speech recognition using domain knowledge |
US9672258B2 (en) | 2012-05-10 | 2017-06-06 | Pitney Bowes Inc. | Systems and methods for dynamically selecting graphical query result display modes |
US9880019B2 (en) | 2012-06-05 | 2018-01-30 | Apple Inc. | Generation of intersection information by a mapping service |
US9886794B2 (en) | 2012-06-05 | 2018-02-06 | Apple Inc. | Problem reporting in maps |
US9903732B2 (en) | 2012-06-05 | 2018-02-27 | Apple Inc. | Providing navigation instructions while device is in locked mode |
US9997069B2 (en) | 2012-06-05 | 2018-06-12 | Apple Inc. | Context-aware voice guidance |
US10006505B2 (en) | 2012-06-05 | 2018-06-26 | Apple Inc. | Rendering road signs during navigation |
US10018478B2 (en) | 2012-06-05 | 2018-07-10 | Apple Inc. | Voice instructions during navigation |
US20180210953A1 (en) * | 2008-02-14 | 2018-07-26 | Beats Music, Llc | Fast search in a music sharing environment |
US10055762B2 (en) | 2012-06-06 | 2018-08-21 | Microsoft Technology Licensing, Llc | Deep application crawling |
US10176633B2 (en) | 2012-06-05 | 2019-01-08 | Apple Inc. | Integrated mapping and navigation application |
US10261951B2 (en) * | 2016-03-30 | 2019-04-16 | Microsoft Technology Licensing, Llc | Local search of non-local search results |
US10318104B2 (en) | 2012-06-05 | 2019-06-11 | Apple Inc. | Navigation application with adaptive instruction text |
US10318531B2 (en) | 2016-03-30 | 2019-06-11 | Microsoft Technology Licensing, Llc | Techniques for search optimization on mobile devices |
US10339167B2 (en) | 2016-09-09 | 2019-07-02 | International Business Machines Corporation | System and method for generating full questions from natural language queries |
US10339168B2 (en) | 2016-09-09 | 2019-07-02 | International Business Machines Corporation | System and method for generating full questions from natural language queries |
US10394839B2 (en) | 2015-06-05 | 2019-08-27 | Apple Inc. | Crowdsourcing application history search |
US10509834B2 (en) | 2015-06-05 | 2019-12-17 | Apple Inc. | Federated search results scoring |
US10592572B2 (en) | 2015-06-05 | 2020-03-17 | Apple Inc. | Application view index and search |
US10606900B2 (en) | 2015-10-16 | 2020-03-31 | Huizhou Tcl Mobile Communication Co., Ltd. | Intelligent searching method and system based on mobile device |
US10755032B2 (en) | 2015-06-05 | 2020-08-25 | Apple Inc. | Indexing web pages with deep links |
Families Citing this family (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NZ540819A (en) * | 2005-06-16 | 2007-07-27 | Brunswick New Technologies Asi | Navigation system with analysis and merging of multiple similar location results |
US8825691B2 (en) * | 2009-06-03 | 2014-09-02 | Yahoo! Inc. | Open search assist |
US20110191330A1 (en) * | 2010-02-04 | 2011-08-04 | Veveo, Inc. | Method of and System for Enhanced Content Discovery Based on Network and Device Access Behavior |
US9824126B2 (en) * | 2010-02-15 | 2017-11-21 | Blackberry Limited | Methods and apparatus for a comprehensive searching on a mobile device |
CA2790004C (en) * | 2010-02-15 | 2016-06-21 | Research In Motion Limited | Devices and methods for searching data on data sources associated with registered applications |
US9552422B2 (en) | 2010-06-11 | 2017-01-24 | Doat Media Ltd. | System and method for detecting a search intent |
GB2494598A (en) | 2010-06-11 | 2013-03-13 | Doat Media Ltd | A system and methods thereof for enhancing a user's search experience |
US9141702B2 (en) | 2010-06-11 | 2015-09-22 | Doat Media Ltd. | Method for dynamically displaying a personalized home screen on a device |
US9069443B2 (en) | 2010-06-11 | 2015-06-30 | Doat Media Ltd. | Method for dynamically displaying a personalized home screen on a user device |
US9372885B2 (en) | 2010-06-11 | 2016-06-21 | Doat Media Ltd. | System and methods thereof for dynamically updating the contents of a folder on a device |
US10713312B2 (en) | 2010-06-11 | 2020-07-14 | Doat Media Ltd. | System and method for context-launching of applications |
US9529918B2 (en) | 2010-06-11 | 2016-12-27 | Doat Media Ltd. | System and methods thereof for downloading applications via a communication network |
US20150112962A1 (en) * | 2012-05-31 | 2015-04-23 | Doat Media Ltd. | System and method for launching applications on a user device based on the user intent |
US8515979B2 (en) * | 2010-06-18 | 2013-08-20 | Verizon Patent And Licensing, Inc. | Cross application execution service |
JP5740003B2 (en) * | 2010-10-21 | 2015-06-24 | クアルコム,インコーポレイテッド | Search multiple data sources using mobile computing devices |
US20120124028A1 (en) * | 2010-11-12 | 2012-05-17 | Microsoft Corporation | Unified Application Discovery across Application Stores |
US10073927B2 (en) * | 2010-11-16 | 2018-09-11 | Microsoft Technology Licensing, Llc | Registration for system level search user interface |
US10346479B2 (en) | 2010-11-16 | 2019-07-09 | Microsoft Technology Licensing, Llc | Facilitating interaction with system level search user interface |
US8515984B2 (en) | 2010-11-16 | 2013-08-20 | Microsoft Corporation | Extensible search term suggestion engine |
US20120124072A1 (en) * | 2010-11-16 | 2012-05-17 | Microsoft Corporation | System level search user interface |
US9424002B2 (en) | 2010-12-03 | 2016-08-23 | Microsoft Technology Licensing, Llc | Meta-application framework |
US20130262452A1 (en) * | 2010-12-17 | 2013-10-03 | Telefonaktiebolaget L M Ericsson (Publ) | Server for Conveying a Set of Contact Identification Data to a User Equipment, Methods Therefor, User Equipment, Computer Programs and Computer Program Products |
US9015140B2 (en) | 2010-12-30 | 2015-04-21 | Yahoo! Inc. | System and method for providing contextual actions on a search results page |
WO2012097432A1 (en) * | 2011-01-21 | 2012-07-26 | Research In Motion Limited | System and method of associating and maintaining a plurality of contacts stored in a personal information manager application of a portable electronic device |
US9858342B2 (en) | 2011-03-28 | 2018-01-02 | Doat Media Ltd. | Method and system for searching for applications respective of a connectivity mode of a user device |
WO2012154856A1 (en) | 2011-05-09 | 2012-11-15 | Google Inc. | Identifying applications of interest based on application metadata |
WO2012154843A1 (en) | 2011-05-09 | 2012-11-15 | Google Inc. | Identifying applications of interest based on application market log data |
EP2712442A1 (en) | 2011-05-09 | 2014-04-02 | Google, Inc. | Recommending applications for mobile devices based on installation histories |
EP2710487A4 (en) | 2011-05-09 | 2015-06-17 | Google Inc | Generating application recommendations based on user installed applications |
US9110992B2 (en) | 2011-06-03 | 2015-08-18 | Facebook, Inc. | Context-based selection of calls-to-action associated with search results |
US9268857B2 (en) | 2011-06-03 | 2016-02-23 | Facebook, Inc. | Suggesting search results to users before receiving any search query from the users |
US8909637B2 (en) | 2011-06-03 | 2014-12-09 | Facebook, Inc. | Context-based ranking of search results |
US10185769B2 (en) | 2011-06-08 | 2019-01-22 | Facebook, Inc. | Presenting images as search results |
WO2013009938A2 (en) * | 2011-07-14 | 2013-01-17 | Nuance Communications, Inc. | Methods and apparatus for identifying and providing information sought by a user |
US20130166525A1 (en) * | 2011-12-27 | 2013-06-27 | Microsoft Corporation | Providing application results based on user intent |
CN103389989B (en) * | 2012-05-10 | 2016-03-09 | 腾讯科技(深圳)有限公司 | A kind of across community search method and apparatus |
US9552414B2 (en) * | 2012-05-22 | 2017-01-24 | Quixey, Inc. | Dynamic filtering in application search |
CN103425704B (en) * | 2012-05-24 | 2017-07-21 | 阿里巴巴集团控股有限公司 | Application interface provides method and device |
US9704171B2 (en) * | 2012-06-05 | 2017-07-11 | Applause App Quality, Inc. | Methods and systems for quantifying and tracking software application quality |
US9374396B2 (en) * | 2012-06-24 | 2016-06-21 | Google Inc. | Recommended content for an endorsement user interface |
CN104428734A (en) * | 2012-06-25 | 2015-03-18 | 微软公司 | Input method editor application platform |
US9529924B2 (en) | 2012-07-31 | 2016-12-27 | Apple Inc. | User interface providing localized search capabilities |
US9268462B2 (en) * | 2012-08-14 | 2016-02-23 | Google Inc. | External action suggestions in search results |
US9104787B2 (en) | 2012-12-14 | 2015-08-11 | Microsoft Technology Licensing, Llc | Augmenting search results with relevant third-party application content |
US20140188889A1 (en) * | 2012-12-31 | 2014-07-03 | Motorola Mobility Llc | Predictive Selection and Parallel Execution of Applications and Services |
US9002821B2 (en) | 2013-01-16 | 2015-04-07 | Google Inc. | Indexing application pages of native applications |
EP2962224A4 (en) * | 2013-03-01 | 2016-10-19 | Quixey Inc | Generating search results containing state links to applications |
US20140280115A1 (en) * | 2013-03-14 | 2014-09-18 | Nokia Corporation | Methods, apparatuses, and computer program products for improved device and network searching |
US9146972B2 (en) | 2013-03-15 | 2015-09-29 | Google Inc. | Ranking of presentation modes for particular content |
US8996520B2 (en) | 2013-03-15 | 2015-03-31 | Google Inc. | Ranking of native application content |
US20160012132A1 (en) * | 2013-03-18 | 2016-01-14 | Nokia Technologies Oy | Method and apparatus for querying resources thorough search field |
US9405803B2 (en) * | 2013-04-23 | 2016-08-02 | Google Inc. | Ranking signals in mixed corpora environments |
US9910887B2 (en) | 2013-04-25 | 2018-03-06 | Facebook, Inc. | Variable search query vertical access |
US20140358958A1 (en) * | 2013-05-29 | 2014-12-04 | Microsoft Corporation | Surfacing direct app actions |
US9135346B2 (en) | 2013-06-07 | 2015-09-15 | Google Inc. | Index data for native applications |
KR101528133B1 (en) * | 2013-07-08 | 2015-06-11 | 네이버 주식회사 | System, method and computer readable recording medium for providing execution of application through search result |
US20160182520A1 (en) * | 2013-07-26 | 2016-06-23 | Beijing Qihoo Technology Company Limited | Method, apparatus and system for client accessing authenticated web address |
US9311407B2 (en) * | 2013-09-05 | 2016-04-12 | Google Inc. | Native application search results |
US9189517B2 (en) * | 2013-10-02 | 2015-11-17 | Microsoft Technology Licensing, Llc | Integrating search with application analysis |
TWI590142B (en) * | 2013-10-29 | 2017-07-01 | 鴻海精密工業股份有限公司 | Mobile terminal and application starting method |
US9418103B2 (en) | 2013-12-06 | 2016-08-16 | Quixey, Inc. | Techniques for reformulating search queries |
KR102259420B1 (en) * | 2013-12-31 | 2021-06-01 | 주식회사 케이티 | Apparatus for providing virtual goods and method thereof |
US9720672B2 (en) * | 2014-01-06 | 2017-08-01 | Quixey, Inc. | Searching and accessing application functionality |
US20150242420A1 (en) | 2014-02-21 | 2015-08-27 | Quixey, Inc. | Location-Based Searching |
US9608870B1 (en) | 2014-02-28 | 2017-03-28 | Google Inc. | Deep link verification for native applications |
US9251224B2 (en) | 2014-03-04 | 2016-02-02 | Google Inc. | Triggering and ranking of native applications |
US10409454B2 (en) * | 2014-03-05 | 2019-09-10 | Samsung Electronics Co., Ltd. | Smart watch device and user interface thereof |
US9652508B1 (en) | 2014-03-05 | 2017-05-16 | Google Inc. | Device specific adjustment based on resource utilities |
US10061796B2 (en) | 2014-03-11 | 2018-08-28 | Google Llc | Native application content verification |
US9645980B1 (en) | 2014-03-19 | 2017-05-09 | Google Inc. | Verification of native applications for indexing |
US20150278358A1 (en) * | 2014-04-01 | 2015-10-01 | Microsoft Corporation | Adjusting serp presentation based on query intent |
US9524347B1 (en) | 2014-04-01 | 2016-12-20 | Google Inc. | Automatically implementing an application in response to a search query |
US9513961B1 (en) | 2014-04-02 | 2016-12-06 | Google Inc. | Monitoring application loading |
US9720705B2 (en) | 2014-04-25 | 2017-08-01 | Sap Se | System and method of demand oriented user interface framework |
US9946771B2 (en) | 2014-05-30 | 2018-04-17 | Apple Inc. | User interface for searching |
US9767159B2 (en) | 2014-06-13 | 2017-09-19 | Google Inc. | Ranking search results |
CN112417243A (en) | 2014-06-24 | 2021-02-26 | 谷歌有限责任公司 | Search results for native applications |
US10013496B2 (en) * | 2014-06-24 | 2018-07-03 | Google Llc | Indexing actions for resources |
US10210263B1 (en) | 2014-06-24 | 2019-02-19 | Google Llc | Native application search results |
CN106663108B (en) | 2014-06-25 | 2020-08-04 | 谷歌有限责任公司 | Deep links for native applications |
US9892190B1 (en) | 2014-06-25 | 2018-02-13 | Google Inc. | Search suggestions based on native application history |
KR20160005899A (en) * | 2014-07-08 | 2016-01-18 | 엘지전자 주식회사 | Digital image processing apparatus, system and controlling method thereof |
US9977810B2 (en) | 2014-08-21 | 2018-05-22 | Dropbox, Inc. | Multi-user search system with methodology for personal searching |
US20160092565A1 (en) * | 2014-09-26 | 2016-03-31 | Microsoft Corporation | Unified Search on a Personal Computing Device |
US9626443B2 (en) | 2014-10-23 | 2017-04-18 | Quixey, Inc. | Searching and accessing application functionality |
US9928233B2 (en) | 2014-11-12 | 2018-03-27 | Applause App Quality, Inc. | Computer-implemented methods and systems for clustering user reviews and ranking clusters |
US10353968B1 (en) * | 2014-12-24 | 2019-07-16 | Open Invention Network Llc | Search and notification procedures based on user history information |
US20160188684A1 (en) * | 2014-12-29 | 2016-06-30 | Quixey, Inc. | Consolidating Search Results |
US9838348B2 (en) * | 2014-12-31 | 2017-12-05 | Yahoo Holdings, Inc. | Electronic message search system and method |
US9384226B1 (en) | 2015-01-30 | 2016-07-05 | Dropbox, Inc. | Personal content item searching system and method |
US9183303B1 (en) | 2015-01-30 | 2015-11-10 | Dropbox, Inc. | Personal content item searching system and method |
US9716796B2 (en) | 2015-04-17 | 2017-07-25 | Microsoft Technology Licensing, Llc | Managing communication events |
US20160308811A1 (en) * | 2015-04-17 | 2016-10-20 | Microsoft Technology Licensing, Llc | Communication System Invite Mechanism |
US9348671B1 (en) | 2015-07-23 | 2016-05-24 | Google Inc. | Monitoring application loading |
US10120951B2 (en) * | 2015-08-12 | 2018-11-06 | Samsung Electronics Co., Ltd. | Bifurcated search |
US10223460B2 (en) * | 2015-08-25 | 2019-03-05 | Google Llc | Application partial deep link to a corresponding resource |
US10069940B2 (en) | 2015-09-10 | 2018-09-04 | Microsoft Technology Licensing, Llc | Deployment meta-data based applicability targetting |
US9965604B2 (en) | 2015-09-10 | 2018-05-08 | Microsoft Technology Licensing, Llc | De-duplication of per-user registration data |
RU2632140C2 (en) * | 2015-09-29 | 2017-10-02 | Общество С Ограниченной Ответственностью "Яндекс" | Method and server for clustering sentences for search queries |
US10503742B2 (en) * | 2015-10-27 | 2019-12-10 | Blackberry Limited | Electronic device and method of searching data records |
WO2017172472A1 (en) * | 2016-03-30 | 2017-10-05 | Linkedin Corporation | Techniques for search optimization on mobile devices |
US20170316484A1 (en) * | 2016-04-29 | 2017-11-02 | Microsoft Technology Licensing, Llc | Resource-based auto completion |
US10552427B2 (en) | 2016-04-29 | 2020-02-04 | Nutanix, Inc. | Searching for information relating to virtualization environments |
CN106446132B (en) * | 2016-09-19 | 2019-07-23 | 百度在线网络技术(北京)有限公司 | Search processing method and device |
US10698570B2 (en) * | 2016-11-14 | 2020-06-30 | Samsung Electronics Co., Ltd. | User-centric, context aware user interface |
EP3350726B1 (en) | 2016-12-09 | 2019-02-20 | Google LLC | Preventing the distribution of forbidden network content using automatic variant detection |
CN106649864A (en) * | 2016-12-31 | 2017-05-10 | 珠海市魅族科技有限公司 | Information display method and apparatus |
CN107391548B (en) * | 2017-04-06 | 2020-08-04 | 华东师范大学 | Mobile application market examination user group detection method and system |
CN107330019A (en) * | 2017-06-19 | 2017-11-07 | 北京小米移动软件有限公司 | Searching method and device |
US20190026295A1 (en) * | 2017-07-19 | 2019-01-24 | Nutanix, Inc. | System and method for obtaining application insights through search |
RU2711104C2 (en) | 2017-12-27 | 2020-01-15 | Общество С Ограниченной Ответственностью "Яндекс" | Method and computer device for determining intention associated with request to create intent-depending response |
RU2693332C1 (en) | 2017-12-29 | 2019-07-02 | Общество С Ограниченной Ответственностью "Яндекс" | Method and a computer device for selecting a current context-dependent response for the current user request |
US11023472B2 (en) | 2018-02-27 | 2021-06-01 | Nutanix, Inc. | System and method for troubleshooting in a virtual computing system |
CN108845996A (en) * | 2018-04-02 | 2018-11-20 | 北京大学 | A kind of META Search Engine implementation method and turn-key system polymerizeing Android application program inner search function |
US11216471B2 (en) | 2018-04-17 | 2022-01-04 | Branch Metrics, Inc. | Techniques for searching using target applications |
US11715042B1 (en) | 2018-04-20 | 2023-08-01 | Meta Platforms Technologies, Llc | Interpretability of deep reinforcement learning models in assistant systems |
US11307880B2 (en) | 2018-04-20 | 2022-04-19 | Meta Platforms, Inc. | Assisting users with personalized and contextual communication content |
US11886473B2 (en) | 2018-04-20 | 2024-01-30 | Meta Platforms, Inc. | Intent identification for agent matching by assistant systems |
US20190327330A1 (en) | 2018-04-20 | 2019-10-24 | Facebook, Inc. | Building Customized User Profiles Based on Conversational Data |
US11676220B2 (en) | 2018-04-20 | 2023-06-13 | Meta Platforms, Inc. | Processing multimodal user input for assistant systems |
US11681718B2 (en) * | 2019-03-29 | 2023-06-20 | Apple Inc. | Scoping a system-wide search to a user-specified application |
CN110188252A (en) * | 2019-05-22 | 2019-08-30 | 维沃移动通信有限公司 | A kind of searching method and terminal |
US11188610B2 (en) | 2019-11-01 | 2021-11-30 | Capital One Services, Llc | User navigation based on client-side history |
CN111046265B (en) * | 2019-12-11 | 2023-08-29 | 北京小米移动软件有限公司 | Card data display method, device, equipment and storage medium |
CN112083844B (en) * | 2020-09-08 | 2024-04-09 | 李艺殊 | Interactive system and interactive method for searching corpus |
US11790173B2 (en) * | 2020-10-22 | 2023-10-17 | Google Llc | Recommending action(s) based on entity or entity type |
CN113704604A (en) * | 2021-08-24 | 2021-11-26 | 山东库睿科技有限公司 | Search system and search method |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692173A (en) * | 1994-12-13 | 1997-11-25 | Microsoft Corporation | Method and system for combining prefix and first character searching of a list |
US20020169771A1 (en) * | 2001-05-09 | 2002-11-14 | Melmon Kenneth L. | System & method for facilitating knowledge management |
US20030195877A1 (en) * | 1999-12-08 | 2003-10-16 | Ford James L. | Search query processing to provide category-ranked presentation of search results |
US20050065922A1 (en) * | 2000-04-27 | 2005-03-24 | Todd Miller | Method and system for retrieving search results from multiple disparate databases |
US20050165777A1 (en) * | 2004-01-26 | 2005-07-28 | Microsoft Corporation | System and method for a unified and blended search |
US20050283468A1 (en) * | 2004-06-22 | 2005-12-22 | Kamvar Sepandar D | Anticipated query generation and processing in a search engine |
US7039635B1 (en) * | 2002-06-11 | 2006-05-02 | Microsoft Corporation | Dynamically updated quick searches and strategies |
US20060206454A1 (en) * | 2005-03-08 | 2006-09-14 | Forstall Scott J | Immediate search feedback |
US20070067272A1 (en) * | 2005-09-16 | 2007-03-22 | Microsoft Corporation | Search interface for mobile devices |
US20080033954A1 (en) * | 2006-08-07 | 2008-02-07 | Brooks David A | Method and system for securing application information in system-wide search engines |
US7376907B2 (en) * | 1999-10-29 | 2008-05-20 | Surfcast, Inc. | System and method for simultaneous display of multiple information sources |
US20090063448A1 (en) * | 2007-08-29 | 2009-03-05 | Microsoft Corporation | Aggregated Search Results for Local and Remote Services |
US20100131902A1 (en) * | 2008-11-26 | 2010-05-27 | Yahoo! Inc. | Navigation assistance for search engines |
US20100131494A1 (en) * | 2008-11-25 | 2010-05-27 | Microsoft Corporation | Automatically Showing More Search Results |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5983220A (en) | 1995-11-15 | 1999-11-09 | Bizrate.Com | Supporting intuitive decision in complex multi-attributive domains using fuzzy, hierarchical expert models |
US5826261A (en) | 1996-05-10 | 1998-10-20 | Spencer; Graham | System and method for querying multiple, distributed databases by selective sharing of local relative significance information for terms related to the query |
US6085186A (en) * | 1996-09-20 | 2000-07-04 | Netbot, Inc. | Method and system using information written in a wrapper description language to execute query on a network |
US6370527B1 (en) | 1998-12-29 | 2002-04-09 | At&T Corp. | Method and apparatus for searching distributed networks using a plurality of search devices |
US7035812B2 (en) * | 1999-05-28 | 2006-04-25 | Overture Services, Inc. | System and method for enabling multi-element bidding for influencing a position on a search result list generated by a computer network search engine |
US6847959B1 (en) | 2000-01-05 | 2005-01-25 | Apple Computer, Inc. | Universal interface for retrieval of information in a computer system |
US6832218B1 (en) * | 2000-09-22 | 2004-12-14 | International Business Machines Corporation | System and method for associating search results |
US6728704B2 (en) | 2001-08-27 | 2004-04-27 | Verity, Inc. | Method and apparatus for merging result lists from multiple search engines |
KR20030080441A (en) | 2002-04-08 | 2003-10-17 | 박영우 | Method and apparatus for requesting and accepting professional service order by online |
DE60311317T2 (en) * | 2003-01-06 | 2007-08-30 | Koninklijke Philips Electronics N.V. | APPLICATION SELECTION, INCLUDING MULTIPLE FACTORS |
US20050114306A1 (en) * | 2003-11-20 | 2005-05-26 | International Business Machines Corporation | Integrated searching of multiple search sources |
US7562068B2 (en) * | 2004-06-30 | 2009-07-14 | Microsoft Corporation | System and method for ranking search results based on tracked user preferences |
JP4939739B2 (en) * | 2004-10-05 | 2012-05-30 | パナソニック株式会社 | Portable information terminal and display control program |
WO2006113506A2 (en) * | 2005-04-15 | 2006-10-26 | Perfect Market Technologies, Inc. | Search engine with suggestion tool and method of using same |
US20060271520A1 (en) * | 2005-05-27 | 2006-11-30 | Ragan Gene Z | Content-based implicit search query |
US10769215B2 (en) * | 2005-07-14 | 2020-09-08 | Conversant Wireless Licensing S.A R.L. | Method, apparatus and computer program product providing an application integrated mobile device search solution using context information |
US7921375B2 (en) * | 2005-12-16 | 2011-04-05 | Microsoft Corporation | Integrating user interfaces from one application into another |
WO2007115254A2 (en) * | 2006-03-31 | 2007-10-11 | Visto Corporation | System and method for searching disparate datastores via a remote device |
US20070271229A1 (en) * | 2006-05-17 | 2007-11-22 | Jauder Ho | System and method for data searching among multiple enterprise applications |
US8661029B1 (en) * | 2006-11-02 | 2014-02-25 | Google Inc. | Modifying search result ranking based on implicit user feedback |
KR20080048786A (en) | 2006-11-29 | 2008-06-03 | 팅크웨어(주) | System and method for providing point of interest in destination around |
US8140566B2 (en) * | 2006-12-12 | 2012-03-20 | Yahoo! Inc. | Open framework for integrating, associating, and interacting with content objects including automatic feed creation |
US8386478B2 (en) * | 2007-03-07 | 2013-02-26 | The Boeing Company | Methods and systems for unobtrusive search relevance feedback |
US7899815B2 (en) * | 2007-05-02 | 2011-03-01 | Yahoo! Inc. | Apparatus and methods for providing search benchmarks |
US8244721B2 (en) * | 2008-02-13 | 2012-08-14 | Microsoft Corporation | Using related users data to enhance web search |
US8683346B2 (en) * | 2008-11-17 | 2014-03-25 | Sap Portals Israel Ltd. | Client integration of information from a supplemental server into a portal |
US20100131517A1 (en) * | 2008-11-21 | 2010-05-27 | Yahoo! Inc. | System and method for ranking and grouping results of code searches |
US8498981B2 (en) * | 2009-03-09 | 2013-07-30 | Apple Inc. | Search capability implementation for a device |
-
2010
- 2010-05-27 KR KR1020117031168A patent/KR20120040160A/en active Search and Examination
- 2010-05-27 AU AU2010253843A patent/AU2010253843B2/en not_active Ceased
- 2010-05-27 US US12/789,147 patent/US20100306191A1/en not_active Abandoned
- 2010-05-27 WO PCT/US2010/036454 patent/WO2010138749A1/en active Application Filing
- 2010-05-27 EP EP10726741A patent/EP2435932A1/en not_active Withdrawn
- 2010-05-27 BR BRPI1014397A patent/BRPI1014397A2/en not_active Application Discontinuation
- 2010-05-27 CA CA2763668A patent/CA2763668A1/en not_active Abandoned
- 2010-05-27 CN CN2010800331108A patent/CN102483753A/en active Pending
-
2011
- 2011-09-29 US US13/249,228 patent/US20120023097A1/en not_active Abandoned
-
2015
- 2015-04-14 US US14/686,516 patent/US9582549B2/en active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692173A (en) * | 1994-12-13 | 1997-11-25 | Microsoft Corporation | Method and system for combining prefix and first character searching of a list |
US7376907B2 (en) * | 1999-10-29 | 2008-05-20 | Surfcast, Inc. | System and method for simultaneous display of multiple information sources |
US20030195877A1 (en) * | 1999-12-08 | 2003-10-16 | Ford James L. | Search query processing to provide category-ranked presentation of search results |
US20050065922A1 (en) * | 2000-04-27 | 2005-03-24 | Todd Miller | Method and system for retrieving search results from multiple disparate databases |
US20020169771A1 (en) * | 2001-05-09 | 2002-11-14 | Melmon Kenneth L. | System & method for facilitating knowledge management |
US7039635B1 (en) * | 2002-06-11 | 2006-05-02 | Microsoft Corporation | Dynamically updated quick searches and strategies |
US20050165777A1 (en) * | 2004-01-26 | 2005-07-28 | Microsoft Corporation | System and method for a unified and blended search |
US20050283468A1 (en) * | 2004-06-22 | 2005-12-22 | Kamvar Sepandar D | Anticipated query generation and processing in a search engine |
US20060206454A1 (en) * | 2005-03-08 | 2006-09-14 | Forstall Scott J | Immediate search feedback |
US20070067272A1 (en) * | 2005-09-16 | 2007-03-22 | Microsoft Corporation | Search interface for mobile devices |
US7873356B2 (en) * | 2005-09-16 | 2011-01-18 | Microsoft Corporation | Search interface for mobile devices |
US20080033954A1 (en) * | 2006-08-07 | 2008-02-07 | Brooks David A | Method and system for securing application information in system-wide search engines |
US20090063448A1 (en) * | 2007-08-29 | 2009-03-05 | Microsoft Corporation | Aggregated Search Results for Local and Remote Services |
US20100131494A1 (en) * | 2008-11-25 | 2010-05-27 | Microsoft Corporation | Automatically Showing More Search Results |
US20100131902A1 (en) * | 2008-11-26 | 2010-05-27 | Yahoo! Inc. | Navigation assistance for search engines |
Cited By (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10896221B2 (en) * | 2008-02-14 | 2021-01-19 | Apple Inc. | Fast search in a music sharing environment |
US20180210953A1 (en) * | 2008-02-14 | 2018-07-26 | Beats Music, Llc | Fast search in a music sharing environment |
US8626511B2 (en) * | 2010-01-22 | 2014-01-07 | Google Inc. | Multi-dimensional disambiguation of voice commands |
US20110184730A1 (en) * | 2010-01-22 | 2011-07-28 | Google Inc. | Multi-dimensional disambiguation of voice commands |
US9317605B1 (en) | 2012-03-21 | 2016-04-19 | Google Inc. | Presenting forked auto-completions |
US10210242B1 (en) | 2012-03-21 | 2019-02-19 | Google Llc | Presenting forked auto-completions |
US9672258B2 (en) | 2012-05-10 | 2017-06-06 | Pitney Bowes Inc. | Systems and methods for dynamically selecting graphical query result display modes |
US10176633B2 (en) | 2012-06-05 | 2019-01-08 | Apple Inc. | Integrated mapping and navigation application |
US11290820B2 (en) | 2012-06-05 | 2022-03-29 | Apple Inc. | Voice instructions during navigation |
US11956609B2 (en) | 2012-06-05 | 2024-04-09 | Apple Inc. | Context-aware voice guidance |
US10508926B2 (en) | 2012-06-05 | 2019-12-17 | Apple Inc. | Providing navigation instructions while device is in locked mode |
US11727641B2 (en) | 2012-06-05 | 2023-08-15 | Apple Inc. | Problem reporting in maps |
US9880019B2 (en) | 2012-06-05 | 2018-01-30 | Apple Inc. | Generation of intersection information by a mapping service |
US9886794B2 (en) | 2012-06-05 | 2018-02-06 | Apple Inc. | Problem reporting in maps |
US9903732B2 (en) | 2012-06-05 | 2018-02-27 | Apple Inc. | Providing navigation instructions while device is in locked mode |
US9997069B2 (en) | 2012-06-05 | 2018-06-12 | Apple Inc. | Context-aware voice guidance |
US10006505B2 (en) | 2012-06-05 | 2018-06-26 | Apple Inc. | Rendering road signs during navigation |
US10018478B2 (en) | 2012-06-05 | 2018-07-10 | Apple Inc. | Voice instructions during navigation |
US10732003B2 (en) | 2012-06-05 | 2020-08-04 | Apple Inc. | Voice instructions during navigation |
US20130325340A1 (en) * | 2012-06-05 | 2013-12-05 | Apple Inc. | Routing applications for navigation |
US10718625B2 (en) | 2012-06-05 | 2020-07-21 | Apple Inc. | Voice instructions during navigation |
US10911872B2 (en) | 2012-06-05 | 2021-02-02 | Apple Inc. | Context-aware voice guidance |
US10156455B2 (en) | 2012-06-05 | 2018-12-18 | Apple Inc. | Context-aware voice guidance |
US9043150B2 (en) * | 2012-06-05 | 2015-05-26 | Apple Inc. | Routing applications for navigation |
US10323701B2 (en) | 2012-06-05 | 2019-06-18 | Apple Inc. | Rendering road signs during navigation |
US11055912B2 (en) | 2012-06-05 | 2021-07-06 | Apple Inc. | Problem reporting in maps |
US11082773B2 (en) | 2012-06-05 | 2021-08-03 | Apple Inc. | Context-aware voice guidance |
US10318104B2 (en) | 2012-06-05 | 2019-06-11 | Apple Inc. | Navigation application with adaptive instruction text |
US10055762B2 (en) | 2012-06-06 | 2018-08-21 | Microsoft Technology Licensing, Llc | Deep application crawling |
US10215586B2 (en) * | 2013-06-01 | 2019-02-26 | Apple Inc. | Location based features for commute assistant |
US20140358409A1 (en) * | 2013-06-01 | 2014-12-04 | Apple Inc. | Location-Based Features for Commute Assistant |
US10101169B2 (en) | 2013-06-01 | 2018-10-16 | Apple Inc. | Architecture for distributing transit data |
US11573097B2 (en) | 2013-06-01 | 2023-02-07 | Apple Inc. | Location-based features for commute assistant |
US9646606B2 (en) | 2013-07-03 | 2017-05-09 | Google Inc. | Speech recognition using domain knowledge |
WO2015123432A1 (en) * | 2014-02-14 | 2015-08-20 | Google Inc. | Suggestions to install and/or open a native application |
US9600258B2 (en) | 2014-02-14 | 2017-03-21 | Google Inc. | Suggestions to install and/or open a native application |
WO2015200118A1 (en) * | 2014-06-24 | 2015-12-30 | Quixey, Inc. | Generating advertisements for search results that reference software applications |
US10089652B2 (en) | 2014-06-24 | 2018-10-02 | Samsung Electronics Co., Ltd. | Generating advertisements for search results that reference software applications |
US20160132596A1 (en) * | 2014-11-12 | 2016-05-12 | Quixey, Inc. | Generating Search Results Based On Software Application Installation Status |
US11354487B2 (en) | 2015-06-05 | 2022-06-07 | Apple Inc. | Dynamic ranking function generation for a query |
US10621189B2 (en) | 2015-06-05 | 2020-04-14 | Apple Inc. | In-application history search |
US10509834B2 (en) | 2015-06-05 | 2019-12-17 | Apple Inc. | Federated search results scoring |
US10394839B2 (en) | 2015-06-05 | 2019-08-27 | Apple Inc. | Crowdsourcing application history search |
US10755032B2 (en) | 2015-06-05 | 2020-08-25 | Apple Inc. | Indexing web pages with deep links |
US10592572B2 (en) | 2015-06-05 | 2020-03-17 | Apple Inc. | Application view index and search |
US10606900B2 (en) | 2015-10-16 | 2020-03-31 | Huizhou Tcl Mobile Communication Co., Ltd. | Intelligent searching method and system based on mobile device |
US10261951B2 (en) * | 2016-03-30 | 2019-04-16 | Microsoft Technology Licensing, Llc | Local search of non-local search results |
US10318531B2 (en) | 2016-03-30 | 2019-06-11 | Microsoft Technology Licensing, Llc | Techniques for search optimization on mobile devices |
US10339167B2 (en) | 2016-09-09 | 2019-07-02 | International Business Machines Corporation | System and method for generating full questions from natural language queries |
US10339168B2 (en) | 2016-09-09 | 2019-07-02 | International Business Machines Corporation | System and method for generating full questions from natural language queries |
Also Published As
Publication number | Publication date |
---|---|
KR20120040160A (en) | 2012-04-26 |
WO2010138749A1 (en) | 2010-12-02 |
AU2010253843B2 (en) | 2015-12-03 |
US20100306191A1 (en) | 2010-12-02 |
CA2763668A1 (en) | 2010-12-02 |
US20150227523A1 (en) | 2015-08-13 |
AU2010253843A1 (en) | 2011-12-15 |
CN102483753A (en) | 2012-05-30 |
EP2435932A1 (en) | 2012-04-04 |
BRPI1014397A2 (en) | 2016-04-05 |
US9582549B2 (en) | 2017-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9582549B2 (en) | Computer application data in search results | |
US10467239B2 (en) | Suggesting search results to users before receiving any search query from the users | |
US10310834B2 (en) | Searching and accessing application functionality | |
US9626443B2 (en) | Searching and accessing application functionality | |
US10175860B2 (en) | Search intent preview, disambiguation, and refinement | |
US10318599B2 (en) | Providing additional functionality as advertisements with search results | |
JP5795101B2 (en) | Information retrieval system with real-time feedback | |
CN101495955B (en) | Mobile device retrieval and navigation | |
JP2019532422A (en) | Display keyframes for videos on online social networks | |
US20160188708A1 (en) | Storing Predicted Search Results on a User Device Based on Software Application Use | |
US20160125080A1 (en) | Accessing Special Purpose Search Systems | |
WO2016100777A1 (en) | Providing additional functionality as advertisements with search results |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |