Systems and methods for proactively providing recommendations to users of a computing device
By introducing an application prediction engine in the search application of mobile computing devices, analyzing application information on the user's device and generating application predictions that users may be interested in, it solves the problem that users need to manually enter search parameters when searching for applications, and improves the user experience.
Patent Information
- Application Number
- CN202110971553.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2015-09-25
- Filing Date
- 2016-03-25
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2036-03-25
AI Technical Summary
When the user activates the search application of the mobile computing device, the user needs to manually enter the search parameters, which leads to a cumbersome search process and affects the user experience.
By interacting with the application prediction engine when the search application is activated, analyzing relevant information about the application on the user's device, generating application predictions that may be of interest to the user, and displaying these predictions within the user interface before the user enters the search parameters.
This greatly reduces the tedious process of users entering search parameters when accessing specific applications, and improves users' overall satisfaction with mobile computing devices.
Smart Images

Figure CN113687897B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application No. 201680032500.0, titled "Systems and Methods for Proactively Providing Recommendations to Users of Computing Devices", with an application date of March 25, 2016. Technical Field
[0002] The described embodiments illustrate a technique for proactively providing recommendations to users of computing devices. Background Art
[0003] In recent years, it has been shown that mobile computing devices (e.g., smartphones and tablet computers) are widely popular among consumers. A significant difference between mobile computing devices and traditional computing devices (e.g., desktop computers) is that mobile computing devices tend to be used continuously throughout the day to perform a variety of functions highly personalized for their users. Such functions may include activating and deactivating application programs that enable users to, for example, send and receive messages (e.g., emails, chats, etc.), browse the web, listen to music, take photos, etc. Notably, the interaction of users with their mobile computing devices may conform to strong and reliable behavioral patterns at least in some aspects. For example, users typically access different subsets of application programs in a recognizable manner at different times of the day, which creates the possibility of enhancing the overall user experience - especially in cases where users experience the cumbersome process of searching for application programs that are not easily accessible (e.g., those displayed on the home screen) on their mobile computing devices. Summary of the Invention
[0004] The embodiments described herein illustrate a technique for reducing friction when a user activates a search application on their mobile computing device. Specifically, the technique involves presenting predictions of one or more application programs that the user may be interested in accessing before receiving an input of search parameters from the user, which can reduce the likelihood or necessity for the user to manually provide search parameters to the search application. According to some embodiments, in each case where the search application is activated (e.g., displayed within the user interface of the mobile computing device), the search application may be configured to interact with a prediction engine (referred to herein as the "application prediction engine"). More specifically, when the search application interacts with the application prediction engine, the search application may issue a request for predictions of one or more application programs that the user may be interested in accessing. Subsequently, the application prediction engine may analyze information associated with the applications installed on the mobile computing device to generate the predictions. The search application may then display the predicted one or more application programs within the user interface of the search application for the user to select.
[0005] One embodiment describes a method for providing predictions to a user of a mobile computing device. Specifically, the method is implemented by an application prediction engine executing on the mobile computing device and includes the following steps: (1) receiving, from a search application executing on the mobile computing device, a request for providing predictions of one or more applications installed on the mobile computing device and that the user may be interested in activating, (2) identifying a list of applications installed on the mobile computing device, (3) for each application included in the list of applications: (i) generating a score for the application by performing one or more functions on one or more data signals corresponding to the application, and (ii) associating the score with the application, (4) filtering the list of applications based on the generated scores to produce a filtered list of applications, (5) populating the prediction with the filtered list of applications, and (6) providing the prediction to the search application.
[0006] Another embodiment describes a method for presenting predictions to a user of a mobile computing device. Specifically, the method is implemented by a search application executing on the mobile computing device and includes the following steps: (1) detecting activation of the search application, (2) sending a request for predictions of one or more applications installed on the mobile computing device and that the user may be interested in activating to the application prediction engine, (3) receiving the prediction from the application prediction engine, where the prediction includes a list of one or more applications and each application is associated with a corresponding score, and (4) displaying, within a user interface of the search application, user interface entries for at least one of the one or more applications based on the scores.
[0007] Another embodiment describes a mobile computing device configured to present to a user of the mobile computing device predictions. Specifically, the mobile computing device includes a processor configured to execute a search application that is configured to perform steps including: (1) detecting activation of the search application, and (2) before receiving input from the user within the user interface of the search application: (i) sending a request to an application prediction engine executing on the mobile computing device for a list of one or more applications installed on the mobile computing device and that the user may be interested in activating, (ii) receiving the list from the application prediction engine, and (iii) displaying in the user interface of the search application a user interface entry for at least one of the one or more applications included in the list. As noted above, the processor is also configured to execute the application prediction engine, where the application prediction engine is configured to perform steps including: (1) receiving from the search application a request for a list of one or more applications that the user may be interested in activating, (2) generating the list, and (3) providing the list to the search application.
[0008] Other embodiments include a non-transitory computer-readable medium configured to store instructions that, when executed by a processor, cause the processor to implement any of the foregoing techniques described herein.
[0009] The Summary of the Invention is provided only to outline some exemplary embodiments in order to provide a basic understanding of some aspects of the subject matter described herein. Accordingly, it should be understood that the above-described features are merely examples and should not be construed in any way as narrowing the scope or essence of the subject matter described herein. Other features, aspects, and advantages of the subject matter described herein will become apparent from the following Detailed Description, Drawings, and Claims.
[0010] Other aspects and advantages of the embodiments described herein will become apparent from the following Detailed Description, which is to be read in conjunction with the Drawings that illustrate, by way of example, the principles of the embodiments. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The included Drawings are for illustrative purposes only and can only provide examples of the possible structures and arrangements of the disclosed apparatus and methods of the present invention for its applications to a wireless computing device. These Drawings in no way limit any modifications in form and detail that the skilled person in the art may make to the embodiments without departing from the essence and scope of the embodiments. The embodiments will be more readily understood from the following detailed description in conjunction with the Drawings, in which like reference numerals represent like structural elements.
[0012] Figure 1A block diagram shows various components of a mobile computing device configured to implement the various techniques described herein.
[0013] Figure 2 Shows a method implemented by an Figure 1 application prediction engine according to some embodiments.
[0014] Figure 3 Shows a method implemented by a Figure 1 search application according to some embodiments.
[0015] Figure 4 Shows a conceptual diagram of an exemplary user interface of a Figure 1 search application according to some embodiments.
[0016] Figure 5 Shows a detailed view of a computing device that can be used to implement the various components described herein according to some embodiments. Detailed Description
[0017] Representative applications of the apparatus and method according to the embodiments described in the present invention are provided in this section. These examples are provided only to add context and assist in understanding the described embodiments. It will thus be apparent to those skilled in the art that the embodiments described in the present invention can be implemented without some or all of these specific details. In other instances, well-known process steps have not been described in detail in order to avoid unnecessarily obscuring the embodiments described in the present invention. Other applications are possible, such that the following examples should not be considered limiting.
[0018] The embodiments described herein set forth techniques for identifying predictions of one or more applications that may be of interest to a user to access when the user activates a search application on their computing device and for presenting the predictions before receiving input of search parameters from the user. According to some embodiments, the search application may be configured to interact with an application prediction engine each time the search application is activated (e.g., displayed within the user interface of a mobile computing device) and query the application prediction engine for predictions of one or more applications that may be of interest to the user. Subsequently, the application prediction engine may analyze information associated with the applications installed on the mobile computing device to generate the predictions. The information may include, for example, application installation timestamps, application activation timestamps, total application activations, application usage metrics, the location of the application icons within the primary user interface (e.g., on the screen, within a folder, etc.), search parameters recently provided by the user, collected feedback indicating whether previous predictions were accurate, etc., which enable the application prediction engine to provide meaningful and relevant predictions to the search application. Subsequently, the search application may display the predicted one or more applications within the user interface of the search application for the user to select. Notably, the technique can significantly reduce the incidence of the cumbersome process of the user entering search parameters each time they attempt to access a particular application, which can provide a significant improvement in the user's overall satisfaction with their mobile computing device.
[0019] Although the embodiments described herein mainly relate to an application prediction engine configured to predict applications that a user may want to access, it should be noted that other prediction engines for providing different types of predictions (e.g., people the user may contact) may also be implemented within a mobile computing device. More specifically and according to some embodiments, each prediction engine may be configured to assign itself as an "expert" for a particular prediction category within the mobile computing device. For example, the application prediction engine may assign itself as an expert in the "application" prediction category to indicate that the application prediction engine is dedicated to predicting applications that a user of the mobile computing device may be interested in accessing. According to some embodiments, the application prediction engine may employ a learning model that enables the application prediction engine to analyze data (e.g., the above information) and provide a prediction based on the data. Although this disclosure mainly discusses an application prediction engine configured to implement a learning model, it should be noted that the application prediction engine described herein may also employ any technique for analyzing behavioral data and providing a prediction. Additionally, it should be noted that in order to provide specialized predictions for different types of user devices, the functionality of the application prediction engine may vary across different types of user devices (e.g., smart phones, tablets, watches, laptops). For example, a first type of application prediction engine may be assigned to a smart phone, a second type of application prediction engine may be assigned to a tablet, and so on.
[0020] As described above, each prediction engine implemented on a mobile computing device may assign itself as an expert for one or more prediction categories within the mobile computing device. Thus, in some cases, two or more application prediction engines may assign themselves as experts in the "application" prediction category. In such a case, when the search application described herein issues a request for a prediction, each of the two or more application prediction engines will perform its own analysis (e.g., according to the learning model employed by the application prediction engine) based on the request and generate a prediction. In such a case, at least two or more predictions are generated in response to the request for a prediction, which may create redundant and conflicting predictions that the search application may not be able to interpret.
[0021] Accordingly, the embodiments also describe a "Prediction Hub" configured to act as a mediator between the application prediction engines and the search application. To provide this functionality, the Prediction Hub can be configured to act as a registrar for the prediction engines (e.g., application prediction engines) in cases where the prediction engines initialize and attempt to assign themselves as experts for one or more prediction categories (e.g., the "application" prediction category). Similarly and according to some embodiments, the Prediction Hub can also be configured to manage different types of prediction categories within the mobile computing device such that consumer applications (e.g., the search application described herein) can query the Prediction Hub to identify the categories of predictions available. In this way, when a consumer application issues a request for a prediction for a particular prediction category and two or more prediction engines respond with one or more of their respective predictions, the Prediction Hub can be configured to receive and process the predictions before responding to the request issued by the consumer application. Processing the predictions can involve, for example, removing duplicate information present in the predictions, applying weights to the predictions based on a measure of historical performance (i.e., accuracy) associated with the prediction engines, sorting the predictions based on scores announced by the prediction engines when generating their predictions, etc. In this way, the Prediction Hub can refine multiple predictions into an optimal prediction and provide the optimal prediction to the consumer application. Accordingly, the design advantageously simplifies the operational requirements of the consumer applications (since they do not need to be able to handle multiple predictions), consolidates the heavy tasks into the Prediction Hub, and enables the consumer applications to obtain a prediction that usefully represents the input of multiple prediction engines that have assigned themselves as experts in the prediction categories of interest.
[0022] Accordingly, the different techniques described above enable the search application to interact with the Prediction Hub to receive predictions that may be used to enhance the overall user experience. In some cases, it can be valuable for the search application to provide feedback to the Prediction Hub / application prediction engines to indicate whether the predictions are accurate. For example, when a learning algorithm is implemented by the application prediction engines, such feedback can be beneficial since the feedback can be used to "train" the learning algorithm and improve the overall accuracy of their predictions. For example, when the application prediction engines generate a prediction that a particular application may be activated by the user (e.g., when displayed within the search application prior to receiving a search input from the user), the search application can provide feedback indicating that the prediction was applicable (e.g., the particular application was selected and activated by the user). Subsequently, in cases where the prediction engines generate similar subsequent predictions, the application prediction engines can increase the announced scores.
[0023] In addition, note that the architecture of the prediction center can be configured in a way that enables the different entities described herein (such as the application prediction engine) to be used as modular components within a mobile computing device. In one architectural approach, each application prediction engine can be configured as a bundle, the format of which (e.g., a tree structure) is understood by the prediction center and enables the prediction center to serve as a platform for implementing the functions of the application prediction engine. According to this method, the prediction center can be configured to parse different file system paths (e.g., at initialization) to identify the different bundles located within the mobile computing device. In this way, bundles can be easily added to, updated within, and removed from the file system of the mobile computing device, thus facilitating a modular configuration that can evolve effectively over time without the need for substantial updates (e.g., operating system updates) to the mobile computing device. For example, the application prediction engine can be configured such that all or some of the logic components executed by the application prediction engine can be updated (e.g., via over-the-air (OTA) updates). Note that the above architecture is exemplary, and any architecture that enables the various entities described herein to communicate with each other and provide their different functions can be used.
[0024] Additionally, the prediction center / application prediction engine can also be configured to implement one or more caches that can be used to reduce the amount of processing that occurs when generating predictions. According to some embodiments, at the time of generation, a prediction can be accompanied by a "validity parameter" that indicates when the prediction should be removed from the cache where the prediction is stored. The validity parameter is also referred to herein as "validity information" that can define, for example, a time-based expiration period, an event-based expiration period, etc. In this way, when the application prediction engine frequently receives requests for predictions from a search application, the application prediction engine can generate and cache the predictions in order to significantly reduce the future processing that might otherwise occur in the case of processing repeated requests for predictions. Note that the prediction center / application prediction engine can be configured to cache predictions in a variety of ways. For example, in the case where the available cache memory is limited, the prediction center / application prediction engine can be configured to generate predictions a threshold number of times (e.g., within a time window), and upon meeting the threshold, switch to caching the predictions and referring to the cache for subsequent requests for predictions (as long as the validity information indicates that the prediction is valid).
[0025] Accordingly, the embodiments described herein set forth techniques for identifying predictions of one or more applications that may be of interest to a user to access when the user activates a search application on their computing device and for presenting such predictions before receiving an input of search parameters from the user. A more detailed discussion of these techniques is shown below and described in connection with Figures 1-5 which shows detailed illustrations of systems, methods, and user interfaces that may be used to implement these techniques.
[0026] Figure 1 FIG. shows a block diagram of various components of a mobile computing device 100 configured to implement the various techniques described herein. More specifically, Figure 1 FIG. shows a high-level overview of the mobile computing device 100, which is shown to be configured to implement a prediction center 102, an application prediction engine 104, and a search application 116. According to some embodiments, the prediction center 102, the application prediction engine 104, and the search application 116 may be implemented within an operating system (OS) ( Figure 1 not shown) configured to execute on the mobile computing device 100. As Figure 1 shown, the prediction center 102 may be configured to act as a mediator between the application prediction engine 104 and the search application 116. Although not shown in Figure 1 FIG., the prediction center 102 may be configured to implement an aggregator configured to integrate multiple predictions, for example, in response to a request issued by the search application 116 to implement two or more application prediction engines 104 and generate two or more predictions. However, it should be noted that the application prediction engine 104 and the search application 116 may be configured to communicate directly with each other to reduce or even eliminate the need to implement the prediction center 102 within the mobile computing device 100. It should also be noted that the application prediction engine 104 and the search application 116 need not be logically separated from each other, and the different functions implemented by these entities may be combined together to create different architectural approaches for providing the same result.
[0027] As Figure 1 shown, predictions 112 may be transmitted between the application prediction engine 104 and the search application 116. For example, the prediction center 102 may receive the predictions 112 generated by the application prediction engine 104 and forward the predictions 112 to the search application 116. Feedback 114 may also be transmitted between the application prediction engine 104 and the search application 116. For example, the prediction center 102 may receive the feedback 114 from the search application 116 and provide the feedback 114 to the application prediction engine 104 so that the application prediction engine 104 may improve the accuracy of the predictions 112 over time.
[0028] Additionally, the prediction center 102 can be configured to implement a cache that enables the prediction center 102 / application prediction engine 104 to cache predictions 112 in an attempt to improve processing efficiency and energy consumption efficiency at the mobile computing device 100. For example, the cache can include multiple entries, where each entry includes a prediction 112 and expiration information indicating the length of time the prediction 112 is considered valid. The expiration information can include, for example, time-based expiration, event-based expiration, and the like. In this way, when the application prediction engine 104 frequently receives requests for predictions 112, the application prediction engine 104 can generate and cache the predictions 112, so as to significantly reduce the processing volume that may occur in the mobile computing device 100, thereby improving performance.
[0029] As elaborated previously, the application prediction engine 104 can be implemented using a variety of architectural approaches. For example, the application prediction engine 104 can be an independent executable application prediction engine that is not related to the prediction center 102, and communicates with the prediction center 102 via application programming interface (API) commands supported by the prediction center 102 and utilized by the application prediction engine 104. The application prediction engine 104 can be a bundle stored in the file system of the mobile computing device 100 and implemented by the prediction center 102. As Figure 1 shown, the application prediction engine 104 can include configuration parameters 106 that determine the manner in which the application prediction engine 104 generates predictions for the search application 116. Specifically, the configuration parameters 106 can define the manner in which the data signal 110 is received and processed by the application prediction engine 104, and the data signal 110 corresponds to installed application information 108 available to the application prediction engine 104 within the mobile computing device 100. According to some embodiments, the data signal 110 can represent an application installation timestamp (i.e., when each application was installed), an application activation timestamp (e.g., the most recent time each application was activated), the total number of application activations (e.g., the total number of times an application has been activated), an application usage metric (e.g., the frequency of application activation, which may be limited by factors such as time of day or location), and so on. The data signal 110 can also include the location of the application icon within the user interface of the mobile computing device 100 (e.g., on the home screen, within a folder, etc.), application search parameters recently provided by the user, collected feedback indicating whether previous predictions provided by the application prediction engine 104 were accurate, and so on.
[0030] Although Figure 1Although not shown, the application prediction engine 104 can also be configured to implement a learning model that enables the application prediction engine 104 to provide predictions 112 that evolve over time and remain relevant to the user of the mobile computing device 100. According to some embodiments, the learning model can represent an algorithm configured to analyze information (e.g., data signal 110) and generate predictions 112 that can improve the overall user experience when operating the mobile computing device 100. According to some embodiments, the information processed by the application prediction engine 104 can be collected from various sources within the mobile computing device 100, such as a file system implemented on the mobile computing device 100, feedback information provided by a search application 116, information collected by sensors of the mobile computing device 100 (e.g., a Global Positioning System (GPS) sensor, a microphone sensor, a temperature sensor, etc.), information provided by external sources (e.g., other applications executing on the mobile computing device 100, an OS kernel, etc.), and so on.
[0031] In addition, as Figure 1 shown, the mobile computing device 100 can be configured to interact with one or more servers 120 (e.g., via an Internet connection) to receive over-the-air (OTA) updates 122 that can be used to partially or fully update one or more of the application prediction engine 104, the prediction center 102, and the search application 116. Thus, Figure 1 a high-level overview of the various components that can be used to implement the techniques described herein is provided.
[0032] Figure 2 Method 200 performed by the application prediction engine 104 according to some embodiments is shown. Although method 200 is described as the application prediction engine 104 and the search application 116 communicating directly with each other, it should be noted that the prediction center 102 can serve as a mediator between the application prediction engine 104 and the search application 116 according to the various functions provided by the prediction center 102 described herein. As shown, the method 200 begins at step 202, where the application prediction engine 104 receives from the search application 116 a request to provide predictions 112 for one or more applications that the user of the mobile computing device 100 installed on the mobile computing device 100 may be interested in accessing. The request can be issued by the search application 116 in response to the activation of a gesture on the mobile computing device 100 that causes the search application to activate, for example, a user input on the mobile computing device 100.
[0033] At step 204, the application prediction engine 104 identifies a list of applications installed on the mobile computing device 100. This information can be obtained through the installed application information 108 and the data signal 110. According to some embodiments, the list of applications can be filtered to omit applications whose corresponding icons are displayed within the primary user interface (e.g., the home screen) of the mobile computing device 100, as the user is less likely to search for these applications. In this way, the application prediction engine 104 can avoid performing the processing required to generate scores for these applications, which can improve efficiency. It should be noted that other filtering techniques can be implemented to remove applications from the list of applications that should not be considered when the application prediction engine 104 analyzes the list of applications according to various techniques described herein (e.g., the steps 206 - 212 described below). Figure 2 The applications that should not be considered when the application prediction engine 104 analyzes the list of applications according to the various techniques described herein (e.g., the steps 206 - 212 described below).
[0034] At step 206, the application prediction engine 104 sets the current application to the first application in the list of applications. At step 208, the application prediction engine 104 performs one or more functions on one or more data signals 110 corresponding to the current application to generate a score for the current application. According to some embodiments, the initial stage of performing a function on the data signal 110 can involve establishing an initial score for the data signal 110. For example, when the data signal 110 corresponds to the installation date of an application, the initial score can be based on the amount of time elapsed since the application was installed, e.g., a higher score for a more recent installation date. As another example, when the data signal 110 corresponds to information identifying the location of the icon of the application within the user interface of the mobile computing device 100, the initial score can be based on the user interface page number (e.g., the page number where the icon is relative to the home screen), whether the icon is included in a folder within the user interface, and so on. In this way, the initial score establishment can adjust a baseline value that can be further adjusted according to the weight corresponding to the data signal 110, which will be described in more detail below.
[0035] According to some embodiments, as described above, performing a function on the data signal 110 can include an additional stage that involves adjusting the initial score according to a fixed weighting associated with the data signal 110. Alternatively, the weighting can be dynamic in nature and vary over time, e.g., the weighting can represent a value that decays over time (e.g., a half-life), which is beneficial for data signals 110 that represent time information associated with an application (e.g., application installation timestamp, application activation timestamp, etc.). In any case, an updated score can be generated by applying the weighting to the initial score. In this way, when the application prediction engine has completed performing one or more functions on one or more data signals 110 corresponding to the current application, it can generate the final form of the score for the current application (e.g., the sum of the individual scores).
[0036] At step 210, the application prediction engine 104 determines whether the additional application is included in the list of applications. At step 210, if the application prediction engine 104 determines that the additional application is included in the list of applications, the method 200 proceeds to step 212. Otherwise, the method 200 proceeds to step 214, which is described in more detail below. At step 212, the application prediction engine 104 sets the current application as the next application in the list of applications. At step 214, the application prediction engine 104 filters the list of applications based on (1) the generated score and (2) the request received at step 202. For example, the request may indicate that only three application suggestions can be displayed within the user interface of the mobile computing device 100 (e.g., based on the screen size or resolution setting), which may cause the application prediction engine 104 to delete from the list of applications any application whose score is not in the top three of the list. At step 216, the application prediction engine 104 populates the prediction 112 with the filtered list of applications and provides the prediction 112 to the search application 116.
[0037] Figure 3 A method 300 performed by a search application 116 116 according to some embodiments is shown. As shown, the method 300 begins at step 302, where the search application 116 is activated. At step 304, the search application 116 issues a request for a prediction 112 of one or more applications that the user may be interested in accessing. At step 306, the search application 116 receives the prediction 112 in response to the request, wherein the prediction 112 includes a list of one or more applications, and each application is associated with a corresponding score (e.g., according to the above in conjunction with Figure 2 At step 308, based on the score, the search application 116 displays a user interface entry for at least one of the one or more applications within the user interface of the search application 116 (e.g., Figure 4 At step 310, the search application 116 receives user input via a user interface.
[0038] At step 312, the search application 116 determines whether the user input corresponds to a user interface entry. At step 312, if the search application 116 determines that the user input corresponds to a user interface entry, method 300 proceeds to step 314. Otherwise, method 300 proceeds to step 318, which is described in more detail below. At step 314, the search application 116 activates the application corresponding to the user interface entry. At step 316, the search application 116 provides feedback for indicating that the application has been activated. Finally, at step 318, the search application 116 deactivates itself.
[0039] Figure 4 FIG. 400 is a conceptual diagram showing an exemplary user interface 402 of the search application 116 described herein according to some embodiments. As Figure 4 shown, the user interface 402 may include a search bar 404 that enables a user of the mobile computing device 100 to enter search parameters (e.g., using a virtual keyboard 408 included in the user interface 402). Additionally, the user interface 402 may include a list of multiple user interface entries 406 for applications that the user may be interested in activating, which may be obtained through predictions 112 generated by the application prediction engine 104 described herein. Subsequently, when the user provides feedback that may include, for example, canceling a search, ignoring a suggested application, entering search parameters, or selecting one of the user interface entries 406, the feedback may be forwarded to the application prediction engine 104 for processing.
[0040] Figure 5 FIG. 500 is a detailed view of a computing device that may be used to implement various components described herein according to some embodiments. Specifically, the detailed view shows the various components that may be included in Figure 1 the mobile computing device 100 shown in Figure 5As shown, the computing device 500 may include a processor 502 representing a microprocessor or controller for controlling the overall operation of the mobile computing device 500. The computing device 500 may also include a user input device 508 that allows a user of the computing device 500 to interact with the computing device 500. For example, the user input device 508 may take various forms, such as buttons, keypads, dials, touchscreens, audio input interfaces, visual / image capture input interfaces, input in the form of sensor data, and so on. Further, the computing device 500 may include a display 510 (screen display) that can be controlled by the processor 502 to display information to the user. A data bus 516 may facilitate data transfer between at least the storage device 540, the processor 502, and the controller 513. The controller 513 may be used to interact with and control different devices via the device control bus 514. The computing device 500 may also include a network / bus interface 511 coupled to a data link 512. In the case of a wireless connection, the network / bus interface 511 may include a wireless transceiver.
[0041] The computing device 500 further includes a storage device 540, which may include a single disk or multiple disks (e.g., a hard disk drive), and includes a storage management module that manages one or more partitions within the storage device 540. In some embodiments, the storage device 540 may include flash memory, semiconductor (solid-state) memory, and so on. The computing device 500 may also include a random access memory (RAM) 520 and a read-only memory (ROM) 522. The ROM 522 may store programs, utilities, or processes to be executed in a non-volatile manner. The RAM 520 may provide volatile data storage and store instructions related to the operation of the computing device 500.
[0042] The various aspects, embodiments, implementations, or features of the embodiments may be used singly or in any combination. The various aspects of the embodiments may be implemented by software, hardware, or a combination of hardware and software. The embodiments may also be embodied as computer-readable code on a computer-readable medium. The computer-readable medium is any data storage device that can store data, which can then be read by a computer system. Examples of the computer-readable medium include read-only memory, random access memory, CD-ROM, DVD, magnetic tape, hard disk drive, solid-state drive, and optical data storage devices. The computer-readable medium may also be distributed in network-coupled computer systems such that the computer-readable code is stored and executed in a distributed manner.
[0043] For purposes of explanation, the foregoing description uses specific names to provide a thorough understanding of the described embodiments. However, it will be apparent to one of ordinary skill in the art that the described embodiments may be practiced without these specific details. Accordingly, the foregoing description of the specific embodiments is presented for purposes of illustration and description. These descriptions are not intended to be construed as exhaustive or to limit the described embodiments to the precise forms disclosed. Many modifications and variations will be apparent to one of ordinary skill in the art in light of the above teachings.
Claims
1. A method for proactively providing predictions to a user of a computing device, the method comprising, at the computing device: Detecting a gesture input within a user interface of the computing device; Identifying, from a plurality of prediction engines executing on the computing device, at least two prediction engines registered as being eligible to provide predictions regarding a prediction category corresponding to the gesture input; Providing, to each of the at least two prediction engines, a respective request for a respective ordered list of applications most relevant to the user of the computing device; Aggregating the respective ordered lists of applications to eliminate redundancy and generating an optimized ordered list of applications most relevant to the user of the computing device; and Displaying, within the user interface of the computing device, a respective representation of at least one application included in the optimized ordered list of applications.
2. The method according to claim 1, wherein the gesture input indicates an intention of the user of the computing device to display the respective representation of the at least one application.
3. The method according to claim 1, wherein the respective representation of the at least one application includes an icon associated with the at least one application.
4. The method according to claim 1, further comprising: Receiving, within the user interface, an input associated with the respective representation of the at least one application; And Registering the input as feedback.
5. The method according to claim 4, wherein the feedback indicates whether identifying the at least one application as most relevant to the user of the computing device is accurate or inaccurate.
6. A computing device configured to proactively provide predictions to a user of a computing device, the computing device comprising: Means for detecting a gesture input within a user interface of the computing device; Means for identifying, from a plurality of prediction engines executing on the computing device, at least two prediction engines registered as being eligible to provide predictions regarding a prediction category corresponding to the gesture input; Means for providing, to each of the at least two prediction engines, a respective request for a respective ordered list of applications most relevant to the user of the computing device; Means for aggregating the respective ordered lists of applications to eliminate redundancy and generating an optimized ordered list of applications most relevant to the user of the computing device; And Means for displaying, within the user interface of the computing device, a respective representation of at least one application included in the optimized ordered list of applications.
7. The computing device according to claim 6, wherein the gesture input indicates an intention of the user of the computing device to display the respective representation of the at least one application.
8. The computing device according to claim 6, wherein the respective representation of the at least one application includes an icon associated with the at least one application.
9. The computing device according to claim 6, further comprising: Means for receiving, within the user interface, an input associated with the respective representation of the at least one application; And A device for registering the input as feedback.
10. The computing device according to claim 9, wherein the feedback indicates whether it is accurate or inaccurate to identify the at least one application as being most relevant to the user of the computing device.
11. A computing device configured to proactively provide predictions to a user of a computing device, the computing device comprising: a processor; and a memory storing instructions that, when executed by the processor, cause the computing device to: detect a gesture input within a user interface of the computing device; identify at least two prediction engines registered as being eligible to provide predictions regarding a prediction category corresponding to the gesture input from among a plurality of prediction engines executing on the computing device; provide to each of the at least two prediction engines a respective request for a respective ordered list of applications that are most relevant to the user of the computing device; aggregate the respective ordered lists of applications to eliminate redundancy and generate an optimized ordered list of applications that are most relevant to the user of the computing device; and display within the user interface of the computing device a respective representation of at least one application included in the optimized ordered list of applications.
12. The computing device according to claim 11, wherein the gesture input indicates an intention of the user of the computing device to display the respective representation of the at least one application.
13. The computing device according to claim 11, wherein the respective representation of the at least one application includes an icon associated with the at least one application.
14. The computing device according to claim 11, wherein the processor further causes the computing device to: receive an input associated with the respective representation of the at least one application within the user interface; and register the input as feedback.
15. The computing device according to claim 14, wherein the feedback indicates whether it is accurate or inaccurate to identify the at least one application as being most relevant to the user of the computing device.
Citation Information
Patent Citations
Operating system program launch menu search
CN101147115A
User interface with media content prediction
CN103999017A