US20100306191A1 - Computer Application Data In Search Results - Google Patents

Computer Application Data In Search Results Download PDF

Info

Publication number
US20100306191A1
US20100306191A1 US12789147 US78914710A US2010306191A1 US 20100306191 A1 US20100306191 A1 US 20100306191A1 US 12789147 US12789147 US 12789147 US 78914710 A US78914710 A US 78914710A US 2010306191 A1 US2010306191 A1 US 2010306191A1
Authority
US
Grant status
Application
Patent type
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
Application number
US12789147
Inventor
Michael J. Lebeau
Prasenjit Phukan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30Information retrieval; Database structures therefor ; File system structures therefor
    • G06F17/30286Information retrieval; Database structures therefor ; File system structures therefor in structured data stores
    • G06F17/30386Retrieval requests
    • G06F17/30424Query processing
    • G06F17/30522Query processing with adaptation to user needs
    • G06F17/3053Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30Information retrieval; Database structures therefor ; File system structures therefor
    • G06F17/30861Retrieval from the Internet, e.g. browsers
    • G06F17/30864Retrieval from the Internet, e.g. browsers by querying, e.g. search engines or meta-search engines, crawling techniques, push systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers; Analogous equipment at exchanges
    • H04M1/72Substation extension arrangements; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selecting
    • H04M1/725Cordless telephones
    • H04M1/72519Portable communication terminals with improved user interface to control a main telephone operation mode or to indicate the communication status
    • H04M1/72522With means for supporting locally a plurality of applications to increase the functionality
    • H04M1/72561With means for supporting locally a plurality of applications to increase the functionality for supporting an internet browser application

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

    CROSS-REFERENCED TO RELATED APPLICATIONS
  • This application claims the benefit under 35 U.S.C. §119(e) of U.S. Patent Application No. 61/181,643, titled “Computer Application Data in Search Results,” filed May 27, 2009, which is incorporated herein by reference.
  • TECHNICAL FIELD
  • This document relates to systems and techniques for providing information in response to queries on a computing device, such as a smart phone.
  • BACKGROUND
  • 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.
  • SUMMARY
  • 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.
  • DESCRIPTION OF DRAWINGS
  • 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 a generic computer device 700 and a generic mobile computer device 750, which may be used with the techniques described here.
  • Like reference symbols in the various drawings indicate like elements.
  • DETAILED DESCRIPTION
  • 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 a device 200 and the responses made by applications that manage certain corpuses of information that might be of interest to a user of the device 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, an operating system 204 represents core applications that may be part of the device operating system itself such as a contacts manager. Third, a media player 206 represents an application that may not be integrated with the operating system, but that was instead purchased by the user of the device 200 from a third party, and installed on the device 202 after the purchase and set-up of the device 200. Each of these three components are enveloped by a dotted line that represents the device 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 the search 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, the media player 206 would be expected to return to the search application 202 information needed to generate a hyperlink so that a user of the device 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 the device 200 or are available for steaming via the media 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 of device 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 the search application 202 failing to send query information to the search service 208 until a predetermined number of characters appear in the search field, or can also occur by the search 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. The operating 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, the search 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 the search application 202.
  • The third character is shown at step 214, where the characters “gos” have been entered by a user. The operating system components 204 have now narrowed to a result that is a single contact. The media 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 the device 200 for a very long time. Also, the search 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 the search 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 the search 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 a search box 218 in a standard form, with the characters “gos” having been entered into the box 218. A search 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 the results 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 the search 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 the results 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 the results 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 the media 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 the search application 202. However, mechanisms may be required where the search 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 the media 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 a system 300 that provides search results from third-party applications and other corpuses of data. The system 300 may be implemented using a mobile device such as device 302. The device 302 includes various input and output mechanisms such as a touch screen display 304 and a keyboard. A number of components within device 302 may be configured to provide various search and presentation functionality on display 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 on display 304. The display 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 the device 304 may need to be displayed, and the display 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 of device 302. For example, such commands may come from a keyboard, from touch 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 of display 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. The input 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, the input manager 314 may interpret input motions on the touch 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. The input 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, is search manager application 320. The search manager application 320 is responsible for placing a search box on the screen 304 or otherwise providing a mechanism through which a user can enter queries. The search manager application 320 is also responsible for taking the queries and sending them via multiple threads, to various other applications, such as applications 322, 324 on the device 304, and to remote systems. Furthermore, the search 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. The search manager application 320 and other applications on the device 304 may depend on various forms of data stored on the device 304. First, user information 318 may stored information that reflects preferences of a user of the device 304. Such preferences may be identified explicitly by the user, such as in a user profile that defines how the user wants the display 304 to look, or how the user wants other parameters of the device 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 the search 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. The information 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 322, 324 are applications that have registered themselves with the search manager application 320, so that the search manager application 320 knows to send them queries when queries are entered into the search manager application 320. The registration information can include an address or other mechanism for telling the search 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 from search manager application 320, so as to pass such information (e.g., queries) to remote services, such as services running on application server 332, and search servers 334 and 336. Such communications may occur over one or more networks, include a LAN, a WAN, and the internet 330, in addition to a wireless network with which the device 302 is subscribed.
  • The application server 332 may be associated with one of applications 322 and 324, and may be accessed by the applications 322 and 324 to obtain data or supplemental data in responding to a query. For example, a media player program on a 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 on application 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. The applications 322 and 324 can also access the 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 of device 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. Two search 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, the search servers 334 may be suspended from delivering results through the search manager application 320 until after a user has entered a sufficient amount of information to make the results from the search servers 334, 336 reasonably useful.
  • In this manner, the various components of system 300 can provide a superior search experience for a user of device 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 in FIG. 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.) At box 422, the query is broadcast to relevant applications and services, in manners similar to those discussed above. At box 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, at box 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 in FIGS. 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. At box 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. At box 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, at box 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 a generic computer device 700 and a generic mobile 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 a processor 702, memory 704, a storage device 706, a high-speed interface 708 connecting to memory 704 and high-speed expansion ports 710, and a low speed interface 712 connecting to low speed bus 714 and storage device 706. Each of the components 702, 704, 706, 708, 710, and 712, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 702 can process instructions for execution within the computing device 700, including instructions stored in the memory 704 or on the storage device 706 to display graphical information for a GUI on an external input/output device, such as display 716 coupled to high 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 the computing device 700. In one implementation, the memory 704 is a volatile memory unit or units. In another implementation, the memory 704 is a non-volatile memory unit or units. The memory 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 the computing device 700. In one implementation, the storage 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 the memory 704, the storage device 706, memory on processor 702, or a propagated signal.
  • The high speed controller 708 manages bandwidth-intensive operations for the computing device 700, while the low 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 to memory 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 to storage 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 a standard server 720, or multiple times in a group of such servers. It may also be implemented as part of a rack server system 724. In addition, it may be implemented in a personal computer such as a laptop computer 722. Alternatively, components from computing device 700 may be combined with other components in a mobile device (not shown), such as device 750. Each of such devices may contain one or more of computing device 700, 750, and an entire system may be made up of multiple computing devices 700, 750 communicating with each other.
  • Computing device 750 includes a processor 752, memory 764, an input/output device such as a display 754, a communication interface 766, and a transceiver 768, among other components. The device 750 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the components 750, 752, 764, 754, 766, and 768, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
  • The processor 752 can execute instructions within the computing device 750, including instructions stored in the memory 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 the device 750, such as control of user interfaces, applications run by device 750, and wireless communication by device 750.
  • Processor 752 may communicate with a user through control interface 758 and display interface 756 coupled to a display 754. The display 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. The display interface 756 may comprise appropriate circuitry for driving the display 754 to present graphical and other information to a user. The control interface 758 may receive commands from a user and convert them for submission to the processor 752. In addition, an external interface 762 may be provide in communication with processor 752, so as to enable near area communication of device 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 the computing device 750. The memory 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 to device 750 through expansion 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 for device 750, or may also store applications or other information for device 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 for device 750, and may be programmed with instructions that permit secure use of device 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 on processor 752, or a propagated signal that may be received, for example, over transceiver 768 or external interface 762.
  • Device 750 may communicate wirelessly through communication 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 to device 750, which may be used as appropriate by applications running on device 750.
  • Device 750 may also communicate audibly using audio 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 of device 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 on device 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 a cellular telephone 780. It may also be implemented as part of a smartphone 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 the device 750 and used to update the display of the respective 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. 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. 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. 3. The method of claim 1, wherein the query comprises characters entered by a user without entering a query submission command.
  4. 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. 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. 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. 7. The method of claim 6, wherein the determined amount of information comprises a predetermined number of characters in the query.
  8. 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. 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. 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. 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. 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. 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. 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. 15. The method of claim 11, wherein providing the query to a plurality of searh result resources comprises providing an updated query automatically to the registered applications for each character entered by the user of the computing device.
  16. 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. 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. 18. The system of claim 17, further comprising a result ranker to produce a ranked order of the integrated results.
  19. 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. 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.
US12789147 2009-05-27 2010-05-27 Computer Application Data In Search Results Abandoned US20100306191A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18164309 true 2009-05-27 2009-05-27
US12789147 US20100306191A1 (en) 2009-05-27 2010-05-27 Computer Application Data In Search Results

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12789147 US20100306191A1 (en) 2009-05-27 2010-05-27 Computer Application Data In Search Results
US13249228 US20120023097A1 (en) 2009-05-27 2011-09-29 Computer Application Data In Search Results
US14686516 US9582549B2 (en) 2009-05-27 2015-04-14 Computer application data in search results

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13249228 Continuation US20120023097A1 (en) 2009-05-27 2011-09-29 Computer Application Data In Search Results
US14686516 Continuation US9582549B2 (en) 2009-05-27 2015-04-14 Computer application data in search results

Publications (1)

Publication Number Publication Date
US20100306191A1 true true US20100306191A1 (en) 2010-12-02

Family

ID=42556934

Family Applications (3)

Application Number Title Priority Date Filing Date
US12789147 Abandoned US20100306191A1 (en) 2009-05-27 2010-05-27 Computer Application Data In Search Results
US13249228 Abandoned US20120023097A1 (en) 2009-05-27 2011-09-29 Computer Application Data In Search Results
US14686516 Active US9582549B2 (en) 2009-05-27 2015-04-14 Computer application data in search results

Family Applications After (2)

Application Number Title Priority Date Filing Date
US13249228 Abandoned US20120023097A1 (en) 2009-05-27 2011-09-29 Computer Application Data In Search Results
US14686516 Active US9582549B2 (en) 2009-05-27 2015-04-14 Computer application data in search results

Country Status (6)

Country Link
US (3) US20100306191A1 (en)
EP (1) EP2435932A1 (en)
KR (1) KR20120040160A (en)
CN (1) CN102483753A (en)
CA (1) CA2763668A1 (en)
WO (1) WO2010138749A1 (en)

Cited By (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080312814A1 (en) * 2005-06-16 2008-12-18 Mitac International Corp. Data Presentation for Navigation System
US20100312773A1 (en) * 2009-06-03 2010-12-09 Yahoo! Inc. Open search assist
US20110314004A1 (en) * 2010-06-18 2011-12-22 Verizon Patent And Licensing, Inc. Cross application execution service
US20120124028A1 (en) * 2010-11-12 2012-05-17 Microsoft Corporation Unified Application Discovery across Application Stores
US20120124072A1 (en) * 2010-11-16 2012-05-17 Microsoft Corporation System level search user interface
WO2012082038A1 (en) 2010-12-17 2012-06-21 Telefonaktiebolaget L M Ericsson (Publ) A server for conveying a set of contact identification data to a user equipment, methods therefor, user equipment, computer programs and computer program products
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
WO2012154838A3 (en) * 2011-05-09 2013-04-18 Google Inc. Generating application recommendations based on user installed applications
CN103064949A (en) * 2011-12-27 2013-04-24 微软公司 Method for providing application results based on user intention
US20130212099A1 (en) * 2010-10-21 2013-08-15 Richard R. Dellinger Searching Multiple Data Sources Using a Mobile Computing Device
US20130218870A1 (en) * 2010-02-15 2013-08-22 David BUKURAK Methods and apparatus for a comprehensive searching on a mobile device
US20130218923A1 (en) * 2010-02-15 2013-08-22 Bhavuk Kaul Devices and methods for searching data on data sources associated with registered applications
US8566173B2 (en) 2011-05-09 2013-10-22 Google Inc. Using application market log data to identify applications of interest
US20130318118A1 (en) * 2012-05-24 2013-11-28 Alibaba Group Holding Limited Completing application interfaces
US20140006409A1 (en) * 2012-05-22 2014-01-02 Quixey, Inc. Dynamic filtering in application search
WO2014028153A1 (en) * 2012-08-14 2014-02-20 Google Inc. External action suggestions in search results
US20140156660A1 (en) * 2012-06-05 2014-06-05 uTest, Inc. Methods and systems for quantifying and tracking software application quality
WO2014105399A1 (en) * 2012-12-31 2014-07-03 Motorola Mobility Llc Predictive selection and parallel execution of applications and services
US8819025B2 (en) 2011-05-09 2014-08-26 Google Inc. Recommending applications for mobile devices based on installation histories
US8825663B2 (en) 2011-05-09 2014-09-02 Google Inc. Using application metadata to identify applications of interest
US20140324963A1 (en) * 2013-04-25 2014-10-30 Sriram Sankar Variable Search Query Vertical Access
WO2014140420A3 (en) * 2013-03-14 2014-11-06 Nokia Corporation Methods, apparatuses and computer program products for improved device and network searching
WO2014193772A1 (en) * 2013-05-29 2014-12-04 Microsoft Corporation Surfacing direct app actions
US20150066886A1 (en) * 2013-09-05 2015-03-05 Google Inc. Native application search results
US8996520B2 (en) 2013-03-15 2015-03-31 Google Inc. Ranking of native application content
US9002821B2 (en) 2013-01-16 2015-04-07 Google Inc. Indexing application pages of native applications
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
US20150121294A1 (en) * 2013-10-29 2015-04-30 Hon Hai Precision Industry Co., Ltd. Electronic device and method for starting application of electronic device
US20150161202A1 (en) * 2013-12-06 2015-06-11 Quixey, Inc. Techniques for Reformulating Search Queries
US9104787B2 (en) 2012-12-14 2015-08-11 Microsoft Technology Licensing, Llc Augmenting search results with relevant third-party application content
JP2015523667A (en) * 2012-07-31 2015-08-13 アップル インコーポレイテッド User interface providing localized search function
US20150234645A1 (en) * 2014-02-14 2015-08-20 Google Inc. Suggestions to install and/or open a native application
US9135346B2 (en) 2013-06-07 2015-09-15 Google Inc. Index data for native applications
US9146972B2 (en) 2013-03-15 2015-09-29 Google Inc. Ranking of presentation modes for particular content
WO2015153309A1 (en) * 2014-04-01 2015-10-08 Microsoft Technology Licensing, Llc Adjusting serp presentation based on query intent
US9251224B2 (en) 2014-03-04 2016-02-02 Google Inc. Triggering and ranking of native applications
WO2016049516A1 (en) * 2014-09-26 2016-03-31 Microsoft Technology Licensing, Llc Unified search on a personal computing device
US9348671B1 (en) 2015-07-23 2016-05-24 Google Inc. Monitoring application loading
US20160182520A1 (en) * 2013-07-26 2016-06-23 Beijing Qihoo Technology Company Limited Method, apparatus and system for client accessing authenticated web address
US20160188684A1 (en) * 2014-12-29 2016-06-30 Quixey, Inc. Consolidating Search Results
US20160188599A1 (en) * 2014-12-31 2016-06-30 Yahoo! Inc. Electronic message search system and method
WO2016123444A1 (en) * 2015-01-30 2016-08-04 Dropbox, Inc. Personal content item searching system and method
US9424002B2 (en) 2010-12-03 2016-08-23 Microsoft Technology Licensing, Llc Meta-application framework
US20160308811A1 (en) * 2015-04-17 2016-10-20 Microsoft Technology Licensing, Llc Communication System Invite Mechanism
US9514123B2 (en) 2014-08-21 2016-12-06 Dropbox, Inc. Multi-user search system with methodology for instant indexing
US9513961B1 (en) 2014-04-02 2016-12-06 Google Inc. Monitoring application loading
US9524347B1 (en) 2014-04-01 2016-12-20 Google Inc. Automatically implementing an application in response to a search query
WO2017025938A1 (en) * 2015-08-12 2017-02-16 Quixey, Inc. Bifurcated search
US20170061010A1 (en) * 2015-08-25 2017-03-02 Google Inc. Application partial deep link to a corresponding resource
US9608870B1 (en) 2014-02-28 2017-03-28 Google Inc. Deep link verification for native applications
US9619574B2 (en) 2014-02-21 2017-04-11 Quixey, Inc. Searching and accessing software application functionality
US9626443B2 (en) 2014-10-23 2017-04-18 Quixey, Inc. Searching and accessing application functionality
US9645980B1 (en) 2014-03-19 2017-05-09 Google Inc. Verification of native applications for indexing
US9652508B1 (en) 2014-03-05 2017-05-16 Google Inc. Device specific adjustment based on resource utilities
US9716796B2 (en) 2015-04-17 2017-07-25 Microsoft Technology Licensing, Llc Managing communication events
US9720672B2 (en) * 2014-01-06 2017-08-01 Quixey, Inc. Searching and accessing application functionality
US9720705B2 (en) 2014-04-25 2017-08-01 Sap Se System and method of demand oriented user interface framework
US9767159B2 (en) 2014-06-13 2017-09-19 Google Inc. Ranking search results
WO2017172472A1 (en) * 2016-03-30 2017-10-05 Linkedin Corporation Techniques for search optimization on mobile devices
US9805126B2 (en) 2011-06-03 2017-10-31 Facebook, Inc. Context-based ranking of search results
US9846699B2 (en) 2010-06-11 2017-12-19 Doat Media Ltd. System and methods thereof for dynamically updating the contents of a folder on a 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
US9881095B2 (en) 2014-06-24 2018-01-30 Google Llc Search results for native applications
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
US9892190B1 (en) 2014-06-25 2018-02-13 Google Inc. Search suggestions based on native application history
US9903732B2 (en) 2012-06-05 2018-02-27 Apple Inc. Providing navigation instructions while device is in locked mode
EP3167405A4 (en) * 2014-07-08 2018-02-28 LG Electronics Inc. Digital image processing apparatus and system and control method thereof
US9912778B2 (en) 2010-06-11 2018-03-06 Doat Media Ltd. Method for dynamically displaying a personalized home screen on a user device
US9928233B2 (en) 2014-11-12 2018-03-27 Applause App Quality, Inc. Computer-implemented methods and systems for clustering user reviews and ranking clusters
US9934284B2 (en) 2011-06-03 2018-04-03 Facebook, Inc. Context-based selection of calls-to-action associated with search results
US9946771B2 (en) 2014-05-30 2018-04-17 Apple Inc. User interface for searching
US9959360B2 (en) 2013-03-01 2018-05-01 Samsung Electronics Co., Ltd. Generating search results containing state links to applications
US9959357B2 (en) 2015-01-30 2018-05-01 Dropbox, Inc. Personal content item searching system and method
US9965604B2 (en) 2015-09-10 2018-05-08 Microsoft Technology Licensing, Llc De-duplication of per-user registration data
US9997069B2 (en) 2012-06-05 2018-06-12 Apple Inc. Context-aware voice guidance
US10002168B2 (en) 2011-06-03 2018-06-19 Facebook, Inc. Suggesting search results to users before receiving any search query from the users
US10006505B2 (en) 2012-06-05 2018-06-26 Apple Inc. Rendering road signs during navigation
KR101872549B1 (en) 2010-11-16 2018-06-28 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Registration for system level search user interface
US10013496B2 (en) 2014-06-24 2018-07-03 Google Llc Indexing actions for resources
US10018478B2 (en) 2012-06-05 2018-07-10 Apple Inc. Voice instructions during navigation
US10061796B2 (en) 2014-03-11 2018-08-28 Google Llc Native application content verification
US10069940B2 (en) 2015-09-10 2018-09-04 Microsoft Technology Licensing, Llc Deployment meta-data based applicability targetting
US10073911B2 (en) 2014-06-25 2018-09-11 Google Llc Deep links for native applications
US10114534B2 (en) 2010-06-11 2018-10-30 Doat Media Ltd. System and method for dynamically displaying personalized home screens respective of user queries

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8626511B2 (en) * 2010-01-22 2014-01-07 Google Inc. Multi-dimensional disambiguation of voice commands
US9015140B2 (en) 2010-12-30 2015-04-21 Yahoo! Inc. System and method for providing contextual actions on a search results page
US9317605B1 (en) 2012-03-21 2016-04-19 Google Inc. 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
CN103389989B (en) * 2012-05-10 2016-03-09 腾讯科技(深圳)有限公司 Search method and apparatus of community across
US9043150B2 (en) * 2012-06-05 2015-05-26 Apple Inc. Routing applications for navigation
US8990183B2 (en) 2012-06-06 2015-03-24 Microsoft Technology Licensing, Llc Deep application crawling
US9374396B2 (en) * 2012-06-24 2016-06-21 Google Inc. Recommended content for an endorsement user interface
US9412275B2 (en) * 2013-06-01 2016-08-09 Apple Inc. Architecture for distributing transit data
US9646606B2 (en) 2013-07-03 2017-05-09 Google Inc. Speech recognition using domain knowledge
KR101528133B1 (en) * 2013-07-08 2015-06-11 네이버 주식회사 System, method and computer readable recording medium for providing execution of application through search result
US10089652B2 (en) 2014-06-24 2018-10-02 Samsung Electronics Co., Ltd. Generating advertisements for search results that reference software applications
CN105224674A (en) * 2015-10-16 2016-01-06 惠州Tcl移动通信有限公司 Mobile device-based intelligent search method and system
US20180136796A1 (en) * 2016-11-14 2018-05-17 Samsung Electronics Co., Ltd. User-Centric, Context Aware User Interface

Citations (23)

* Cited by examiner, † Cited by third party
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
US20050114306A1 (en) * 2003-11-20 2005-05-26 International Business Machines Corporation Integrated searching of multiple search sources
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
US20060112179A1 (en) * 2003-01-06 2006-05-25 Markus Baumeister Multi-factor application selection
US20060206454A1 (en) * 2005-03-08 2006-09-14 Forstall Scott J Immediate search feedback
US20070016570A1 (en) * 2005-07-14 2007-01-18 Nokia Corporation Method, apparatus and computer program product providing an application integrated mobile device search solution using context information
US20070067272A1 (en) * 2005-09-16 2007-03-22 Microsoft Corporation Search interface for mobile devices
US20070143704A1 (en) * 2005-12-16 2007-06-21 Microsoft Corporation Integrating user interfaces from one application into another
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
US20080320389A1 (en) * 2004-10-05 2008-12-25 Matsushita Electric Industrial Co., Ltd. Mobile Information Terminal and Display Control Program
US20090063448A1 (en) * 2007-08-29 2009-03-05 Microsoft Corporation Aggregated Search Results for Local and Remote Services
US20090234815A1 (en) * 2006-12-12 2009-09-17 Marco Boerries Open framework for integrating, associating, and interacting with content objects including automatic feed creation
US20100125797A1 (en) * 2008-11-17 2010-05-20 Lior Lavi Client integration of information from a supplemental server into a portal
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
US20100228724A1 (en) * 2009-03-09 2010-09-09 Jonah Petri Search capability implementation for a device
US8661029B1 (en) * 2006-11-02 2014-02-25 Google Inc. Modifying search result ranking based on implicit user feedback

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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
US7562068B2 (en) * 2004-06-30 2009-07-14 Microsoft Corporation System and method for ranking search results based on tracked user preferences
WO2006113506A3 (en) 2005-04-15 2007-12-13 Perfect Market Technologies In 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
EP2485168A1 (en) * 2006-03-31 2012-08-08 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
KR20080048786A (en) 2006-11-29 2008-06-03 팅크웨어(주) System and method for providing point of interest in destination around
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
US20100131517A1 (en) * 2008-11-21 2010-05-27 Yahoo! Inc. System and method for ranking and grouping results of code searches

Patent Citations (24)

* Cited by examiner, † Cited by third party
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
US20060112179A1 (en) * 2003-01-06 2006-05-25 Markus Baumeister Multi-factor application selection
US20050114306A1 (en) * 2003-11-20 2005-05-26 International Business Machines Corporation Integrated searching of multiple search sources
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
US20080320389A1 (en) * 2004-10-05 2008-12-25 Matsushita Electric Industrial Co., Ltd. Mobile Information Terminal and Display Control Program
US20060206454A1 (en) * 2005-03-08 2006-09-14 Forstall Scott J Immediate search feedback
US20070016570A1 (en) * 2005-07-14 2007-01-18 Nokia Corporation Method, apparatus and computer program product providing an application integrated mobile device search solution using context information
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
US20070143704A1 (en) * 2005-12-16 2007-06-21 Microsoft Corporation Integrating user interfaces from one application into another
US20080033954A1 (en) * 2006-08-07 2008-02-07 Brooks David A Method and system for securing application information in system-wide search engines
US8661029B1 (en) * 2006-11-02 2014-02-25 Google Inc. Modifying search result ranking based on implicit user feedback
US20090234815A1 (en) * 2006-12-12 2009-09-17 Marco Boerries Open framework for integrating, associating, and interacting with content objects including automatic feed creation
US20090063448A1 (en) * 2007-08-29 2009-03-05 Microsoft Corporation Aggregated Search Results for Local and Remote Services
US20100125797A1 (en) * 2008-11-17 2010-05-20 Lior Lavi Client integration of information from a supplemental server into a portal
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
US20100228724A1 (en) * 2009-03-09 2010-09-09 Jonah Petri Search capability implementation for a device

Cited By (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080312814A1 (en) * 2005-06-16 2008-12-18 Mitac International Corp. Data Presentation for Navigation System
US8825691B2 (en) * 2009-06-03 2014-09-02 Yahoo! Inc. Open search assist
US20100312773A1 (en) * 2009-06-03 2010-12-09 Yahoo! Inc. Open search assist
US20130218870A1 (en) * 2010-02-15 2013-08-22 David BUKURAK Methods and apparatus for a comprehensive searching on a mobile device
US20130218923A1 (en) * 2010-02-15 2013-08-22 Bhavuk Kaul Devices and methods for searching data on data sources associated with registered applications
US9104721B2 (en) * 2010-02-15 2015-08-11 Blackberry Limited Devices and methods for searching data on data sources associated with registered applications
US9824126B2 (en) * 2010-02-15 2017-11-21 Blackberry Limited Methods and apparatus for a comprehensive searching on a mobile device
US9846699B2 (en) 2010-06-11 2017-12-19 Doat Media Ltd. System and methods thereof for dynamically updating the contents of a folder on a device
US9912778B2 (en) 2010-06-11 2018-03-06 Doat Media Ltd. Method for dynamically displaying a personalized home screen on a user device
US10114534B2 (en) 2010-06-11 2018-10-30 Doat Media Ltd. System and method for dynamically displaying personalized home screens respective of user queries
US8515979B2 (en) * 2010-06-18 2013-08-20 Verizon Patent And Licensing, Inc. Cross application execution service
US20110314004A1 (en) * 2010-06-18 2011-12-22 Verizon Patent And Licensing, Inc. Cross application execution service
US20130212099A1 (en) * 2010-10-21 2013-08-15 Richard R. Dellinger Searching Multiple Data Sources Using a Mobile Computing Device
US20120124028A1 (en) * 2010-11-12 2012-05-17 Microsoft Corporation Unified Application Discovery across Application Stores
US9037565B2 (en) 2010-11-16 2015-05-19 Microsoft Technology Licensing, Llc System level search user interface
US10073927B2 (en) 2010-11-16 2018-09-11 Microsoft Technology Licensing, Llc Registration for system level search user interface
US20120124072A1 (en) * 2010-11-16 2012-05-17 Microsoft Corporation System level search user interface
KR101872549B1 (en) 2010-11-16 2018-06-28 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Registration for system level search user interface
US9424002B2 (en) 2010-12-03 2016-08-23 Microsoft Technology Licensing, Llc Meta-application framework
WO2012082038A1 (en) 2010-12-17 2012-06-21 Telefonaktiebolaget L M Ericsson (Publ) A server for conveying a set of contact identification data to a user equipment, methods therefor, user equipment, computer programs and computer program products
EP2652977A4 (en) * 2010-12-17 2017-03-08 Telefonaktiebolaget LM Ericsson (publ) A server for conveying a set of contact identification data to a user equipment, methods therefor, user equipment, computer programs and computer program products
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
US8825663B2 (en) 2011-05-09 2014-09-02 Google Inc. Using application metadata to identify applications of interest
US8819025B2 (en) 2011-05-09 2014-08-26 Google Inc. Recommending applications for mobile devices based on installation histories
WO2012154838A3 (en) * 2011-05-09 2013-04-18 Google Inc. Generating application recommendations based on user installed applications
US8566173B2 (en) 2011-05-09 2013-10-22 Google Inc. Using application market log data to identify applications of interest
US8924955B2 (en) 2011-05-09 2014-12-30 Google Inc. Generating application recommendations based on user installed applications
US8484636B2 (en) 2011-05-09 2013-07-09 Google Inc. Generating application recommendations based on user installed applications
US9934284B2 (en) 2011-06-03 2018-04-03 Facebook, Inc. Context-based selection of calls-to-action associated with search results
US9805126B2 (en) 2011-06-03 2017-10-31 Facebook, Inc. Context-based ranking of search results
US10002168B2 (en) 2011-06-03 2018-06-19 Facebook, Inc. Suggesting search results to users before receiving any search query from the users
WO2013101471A1 (en) * 2011-12-27 2013-07-04 Microsoft Corporation Providing application results based on user intent
CN103064949A (en) * 2011-12-27 2013-04-24 微软公司 Method for providing application results based on user intention
US9552414B2 (en) * 2012-05-22 2017-01-24 Quixey, Inc. Dynamic filtering in application search
US20140006409A1 (en) * 2012-05-22 2014-01-02 Quixey, Inc. Dynamic filtering in application search
US20130318118A1 (en) * 2012-05-24 2013-11-28 Alibaba Group Holding Limited Completing application interfaces
US9710572B2 (en) * 2012-05-24 2017-07-18 Alibaba Group Holding Limited Completing application interfaces
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
US20140156660A1 (en) * 2012-06-05 2014-06-05 uTest, Inc. Methods and systems for quantifying and tracking software application quality
US10018478B2 (en) 2012-06-05 2018-07-10 Apple Inc. Voice instructions during navigation
US9704171B2 (en) * 2012-06-05 2017-07-11 Applause App Quality, Inc. Methods and systems for quantifying and tracking software application quality
US9880019B2 (en) 2012-06-05 2018-01-30 Apple Inc. Generation of intersection information by a mapping service
US9903732B2 (en) 2012-06-05 2018-02-27 Apple Inc. Providing navigation instructions while device is in locked mode
US10006505B2 (en) 2012-06-05 2018-06-26 Apple Inc. Rendering road signs during navigation
US9997069B2 (en) 2012-06-05 2018-06-12 Apple Inc. Context-aware voice guidance
US9886794B2 (en) 2012-06-05 2018-02-06 Apple Inc. Problem reporting in maps
JP2015523667A (en) * 2012-07-31 2015-08-13 アップル インコーポレイテッド User interface providing localized search function
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
WO2014028153A1 (en) * 2012-08-14 2014-02-20 Google Inc. External action suggestions in search results
US10049151B2 (en) 2012-08-14 2018-08-14 Google Llc External action suggestions in search results
US9646097B2 (en) 2012-12-14 2017-05-09 Microsoft Technology Licensing, Llc Augmenting search results with relevant third-party application content
US9104787B2 (en) 2012-12-14 2015-08-11 Microsoft Technology Licensing, Llc Augmenting search results with relevant third-party application content
WO2014105399A1 (en) * 2012-12-31 2014-07-03 Motorola Mobility Llc Predictive selection and parallel execution of applications and services
US9262459B2 (en) 2013-01-16 2016-02-16 Google Inc. Indexing application pages of native applications
US9002821B2 (en) 2013-01-16 2015-04-07 Google Inc. Indexing application pages of native applications
US9652550B2 (en) 2013-01-16 2017-05-16 Google Inc. Indexing application pages of native applications
US9959360B2 (en) 2013-03-01 2018-05-01 Samsung Electronics Co., Ltd. Generating search results containing state links to applications
WO2014140420A3 (en) * 2013-03-14 2014-11-06 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
US20140324963A1 (en) * 2013-04-25 2014-10-30 Sriram Sankar Variable Search Query Vertical Access
US10102245B2 (en) 2013-04-25 2018-10-16 Facebook, Inc. Variable search query vertical access
US9910887B2 (en) * 2013-04-25 2018-03-06 Facebook, Inc. Variable search query vertical access
WO2014193772A1 (en) * 2013-05-29 2014-12-04 Microsoft Corporation Surfacing direct app actions
US9846745B2 (en) 2013-06-07 2017-12-19 Google Inc. Index data for native applications
US9135346B2 (en) 2013-06-07 2015-09-15 Google Inc. Index data for native applications
US20160182520A1 (en) * 2013-07-26 2016-06-23 Beijing Qihoo Technology Company Limited Method, apparatus and system for client accessing authenticated web address
US9547721B2 (en) 2013-09-05 2017-01-17 Google Inc. Native application search results
US9311407B2 (en) * 2013-09-05 2016-04-12 Google Inc. Native application search results
US20150066886A1 (en) * 2013-09-05 2015-03-05 Google Inc. Native application search results
US20150121294A1 (en) * 2013-10-29 2015-04-30 Hon Hai Precision Industry Co., Ltd. Electronic device and method for starting application of electronic device
US9965506B2 (en) 2013-12-06 2018-05-08 Samsung Electronics Co., Ltd. Techniques for reformulating search queries
US9418103B2 (en) * 2013-12-06 2016-08-16 Quixey, Inc. Techniques for reformulating search queries
US20150161202A1 (en) * 2013-12-06 2015-06-11 Quixey, Inc. Techniques for Reformulating Search Queries
US9720672B2 (en) * 2014-01-06 2017-08-01 Quixey, Inc. Searching and accessing application functionality
US9600258B2 (en) * 2014-02-14 2017-03-21 Google Inc. Suggestions to install and/or open a native application
US20150234645A1 (en) * 2014-02-14 2015-08-20 Google Inc. Suggestions to install and/or open a native application
US9619574B2 (en) 2014-02-21 2017-04-11 Quixey, Inc. Searching and accessing software application functionality
US9659100B2 (en) 2014-02-21 2017-05-23 Quixey, Inc. Searching and accessing software application functionality using concepts
US9608870B1 (en) 2014-02-28 2017-03-28 Google Inc. Deep link verification for native applications
US10068028B1 (en) 2014-02-28 2018-09-04 Google Llc Deep link verification for native applications
US9514195B2 (en) 2014-03-04 2016-12-06 Google Inc. Triggering and ranking of native applications
US9251224B2 (en) 2014-03-04 2016-02-02 Google Inc. Triggering and ranking of native applications
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
US9524347B1 (en) 2014-04-01 2016-12-20 Google Inc. Automatically implementing an application in response to a search query
WO2015153309A1 (en) * 2014-04-01 2015-10-08 Microsoft Technology Licensing, Llc Adjusting serp presentation based on query intent
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
US9881095B2 (en) 2014-06-24 2018-01-30 Google Llc Search results for native applications
US10013496B2 (en) 2014-06-24 2018-07-03 Google Llc Indexing actions for resources
US10073911B2 (en) 2014-06-25 2018-09-11 Google Llc Deep links for native applications
US9892190B1 (en) 2014-06-25 2018-02-13 Google Inc. Search suggestions based on native application history
US9940512B2 (en) 2014-07-08 2018-04-10 Lg Electronics Inc. Digital image processing apparatus and system and control method thereof
EP3167405A4 (en) * 2014-07-08 2018-02-28 LG Electronics Inc. Digital image processing apparatus and system and control method thereof
US10102238B2 (en) 2014-08-21 2018-10-16 Dropbox, Inc. Multi-user search system using tokens
US9792315B2 (en) 2014-08-21 2017-10-17 Dropbox, Inc. Multi-user search system with methodology for bypassing instant indexing
US9514123B2 (en) 2014-08-21 2016-12-06 Dropbox, Inc. Multi-user search system with methodology for instant indexing
US9977810B2 (en) 2014-08-21 2018-05-22 Dropbox, Inc. Multi-user search system with methodology for personal searching
US9984110B2 (en) 2014-08-21 2018-05-29 Dropbox, Inc. Multi-user search system with methodology for personalized search query autocomplete
WO2016049516A1 (en) * 2014-09-26 2016-03-31 Microsoft Technology Licensing, Llc 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
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
US20160188599A1 (en) * 2014-12-31 2016-06-30 Yahoo! Inc. Electronic message search system and method
US9959357B2 (en) 2015-01-30 2018-05-01 Dropbox, Inc. Personal content item searching system and method
WO2016123444A1 (en) * 2015-01-30 2016-08-04 Dropbox, Inc. Personal content item searching system and method
US20160308811A1 (en) * 2015-04-17 2016-10-20 Microsoft Technology Licensing, Llc Communication System Invite Mechanism
US9716796B2 (en) 2015-04-17 2017-07-25 Microsoft Technology Licensing, Llc Managing communication events
US9436531B1 (en) 2015-07-23 2016-09-06 Google Inc. Monitoring application loading
US9348671B1 (en) 2015-07-23 2016-05-24 Google Inc. Monitoring application loading
WO2017025938A1 (en) * 2015-08-12 2017-02-16 Quixey, Inc. Bifurcated search
US20170061010A1 (en) * 2015-08-25 2017-03-02 Google Inc. Application partial deep link to a corresponding resource
US9965604B2 (en) 2015-09-10 2018-05-08 Microsoft Technology Licensing, Llc De-duplication of per-user registration data
US10069940B2 (en) 2015-09-10 2018-09-04 Microsoft Technology Licensing, Llc Deployment meta-data based applicability targetting
WO2017172472A1 (en) * 2016-03-30 2017-10-05 Linkedin Corporation Techniques for search optimization on mobile devices

Also Published As

Publication number Publication date Type
CN102483753A (en) 2012-05-30 application
US9582549B2 (en) 2017-02-28 grant
WO2010138749A1 (en) 2010-12-02 application
KR20120040160A (en) 2012-04-26 application
CA2763668A1 (en) 2010-12-02 application
EP2435932A1 (en) 2012-04-04 application
US20120023097A1 (en) 2012-01-26 application
US20150227523A1 (en) 2015-08-13 application

Similar Documents

Publication Publication Date Title
US8498984B1 (en) Categorization of search results
US20090249198A1 (en) Techniques for input recogniton and completion
US20110320307A1 (en) Context-influenced application recommendations
US20070294615A1 (en) Personalizing a search results page based on search history
US20080005064A1 (en) Apparatus and method for content annotation and conditional annotation retrieval in a search context
US20110196863A1 (en) Tagged favorites from social network site for use in search request on a separate site
US20060271520A1 (en) Content-based implicit search query
US8140566B2 (en) Open framework for integrating, associating, and interacting with content objects including automatic feed creation
US20080172357A1 (en) Location in search queries
US20150324868A1 (en) Query Categorizer
US20110145219A1 (en) Objective and subjective ranking of comments
US20110307463A1 (en) System and Methods Thereof for Enhancing a User's Search Experience
US20080109401A1 (en) Presenting predetermined search results with query suggestions
US20120131032A1 (en) Presenting a search suggestion with a social comments icon
US8745018B1 (en) Search application and web browser interaction
US20120265607A1 (en) Click-to-reveal content
US20090234814A1 (en) Configuring a search engine results page with environment-specific information
US20100179756A1 (en) Optimization of map views based on real-time data
US20080172373A1 (en) Synchronization of Fixed and Mobile Data
US20120143963A1 (en) Determining Message Prominence
US20110320437A1 (en) Infinite Browse
US20120290441A1 (en) Using Application Market Log Data To Identify Applications Of Interest
US20120291022A1 (en) Generating application recommendations based on user installed applications
US20110078243A1 (en) Leveraging Collaborative Cloud Services to Build and Share Apps
US20120233207A1 (en) Systems and Methods for Enabling Natural Language Processing

Legal Events

Date Code Title Description
AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEBEAU, MICHAEL J.;PHUKAN, PRASENJIT;REEL/FRAME:024499/0915

Effective date: 20100528

AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044142/0357

Effective date: 20170929