The embodiments set forth techniques for implementing various “prediction engines” that can be configured to provide different kinds of predictions within a mobile computing device. According to some embodiments, each prediction engine can assign itself as an “expert” on one or more “prediction categories” within the mobile computing device. When a software application issues a request for a prediction for a particular category, and two or more prediction engines respond with their respective prediction(s), a “prediction center” can be configured to receive and process the predictions prior to responding to the request. Processing the predictions can involve removing duplicate information that exists across the predictions, sorting the predictions in accordance with confidence levels advertised by the prediction engines, and the like. In this manner, the prediction center can distill multiple predictions down into an optimized prediction and provide the optimized prediction to the software application.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for synchronously providing a prediction to a software application executing on a mobile computing device, the method comprising: at a prediction center executing on the mobile computing device: receiving, from the software application, a request to synchronously provide a prediction for a prediction category; identifying one or more prediction engines that are associated with the prediction category; receiving one or more predictions produced by the one or more prediction engines in accordance with the request; aggregating the one or more predictions to produce the prediction requested by the software application; and providing the prediction to the software application. 2. The method of claim 1, wherein aggregating the one or more predictions comprises carrying out one or more operations selected from: removing duplicate predictions from the one or more predictions; filtering the one or more predictions in accordance with one or more filters implemented by the prediction center; for each prediction of the one or more predictions: adjusting a confidence level associated with the prediction in accordance with a weight that is assigned to the prediction engine that produces the prediction, wherein the confidence level associated with the prediction is generated by the prediction engine when producing the prediction, and the weight is produced by one or more learning algorithms implemented by the prediction center; and sorting each prediction of the one or more predictions in accordance with the confidence level associated with the prediction. 3. The method of claim 1, further comprising, prior to receiving the request for the prediction: for each prediction engine of the one or more prediction engines: receiving, from the prediction engine, a request for the prediction engine to serve as an expert on the prediction category; and associating the prediction engine with the prediction category. 4. The method of claim 1, further comprising, subsequent to producing the prediction requested by the software application: establishing validity parameters associated with the prediction; associating the validity parameters with the prediction; storing the prediction and the validity parameters into a cache. 5. The method of claim 4, wherein the validity parameters define one or more of a time-based expiration or a trigger-based expiration. 6. The method of claim 4, further comprising, subsequent to storing the prediction and the validity parameters into the cache: receiving, from a second software application, a second request to synchronously provide the prediction for the prediction category; locating the prediction within the cache; and when the validity parameters associated with the prediction indicate that the prediction is valid: providing the prediction to the second software application. 7. The method of claim 1, wherein the prediction category is included in a plurality of prediction categories that are managed by the prediction center, and each prediction category of the plurality of prediction categories is associated with: activations and deactivations of software applications executing on the mobile computing device, contacts known to the mobile computing device, Global Positioning System (GPS) information available to the mobile computing device, notifications processed by the mobile computing device, or physical input made to the mobile computing device. 8. The method of claim 1, further comprising, subsequent to providing the prediction to the software application: receiving, from the software application, feedback information that indicates an accuracy of the prediction; and providing the feedback information to the one or more prediction engines, wherein the feedback information can be utilized by the one or more prediction engines to increase the accuracy of subsequent predictions that are produced by the one or more prediction engines. 9. A method for asynchronously providing a prediction to an software application executing on a mobile computing device, the method comprising: at a prediction center executing on the mobile computing device: receiving, from the software application, a request to asynchronously provide a prediction for a prediction category; identifying one or more prediction engines that are associated with the prediction category; and notifying each prediction engine of the one or more prediction engines to asynchronously provide one or more predictions in accordance with the request. 10. The method of claim 9, further comprising, subsequent to notifying each prediction engine of the one or more prediction engines: receiving the one or more predictions; aggregating the one or more predictions to produce the prediction requested by the software application; and providing the prediction to the software application. 11. The method of claim 10, further comprising, subsequent to producing the prediction requested by the software application: establishing validity parameters associated with the prediction; associating the validity parameters with the prediction; storing the prediction and the validity parameters into a cache. 12. The method of claim 11, wherein the validity parameters are provided by the one or more prediction engines and define one or more of a time-based expiration or a trigger-based expiration. 13. The method of claim 10, wherein aggregating the one or more predictions comprises carrying out one or more operations selected from: removing duplicate predictions from the one or more predictions; filtering the one or more predictions in accordance with one or more filters implemented by the prediction center; for each prediction of the one or more predictions: adjusting a confidence level associated with the prediction in accordance with a weight that is assigned to the prediction engine that produces the prediction, wherein the confidence level associated with the prediction is generated by the prediction engine when producing the prediction, and the weight is produced by one or more learning algorithms implemented by the prediction center; and sorting each prediction of the one or more predictions in accordance with the confidence level associated with the prediction. 14. The method of claim 9, wherein the one or more prediction engines asynchronously provide the one or more predictions to the prediction center in response to a trigger-based event that occurs at the mobile computing device. 15. The method of claim 9, further comprising, prior to receiving the request for the prediction: for each prediction engine of the one or more prediction engines: receiving, from the prediction engine, a request for the prediction engine to serve as an expert on the prediction category; and associating the prediction engine with the prediction category. 16. The method of claim 9, wherein the prediction category is included in a plurality of prediction categories that are managed by the prediction center, and each prediction category of the plurality of prediction categories is associated with: activations and deactivations of software applications executing on the mobile computing device, contacts known to the mobile computing device, Global Positioning System (GPS) information available to the mobile computing device, notifications processed by the mobile computing device, or physical input made to the mobile computing device. 17. A mobile computing device configured to generate predictions in accordance with user behavior, the mobile computing device comprising a processor that is configured to execute: a prediction center configured serve as a mediator between one or more prediction engines and one or more software applications, wherein the prediction center manages a plurality of prediction categories; the one or more prediction engines, wherein each prediction engine of the one or more prediction engines serves as an expert on at least one prediction category of the plurality of prediction categories managed by the prediction center; and the one or more software applications, wherein each software application of the one or more software applications is configured to carry out steps that include: issuing, to the prediction center, a request for a prediction for a particular prediction category of the plurality of prediction categories, and receiving the prediction from the prediction center in accordance with the request, wherein the prediction is an aggregation of at least two predictions produced by the prediction engines that serve as an expert on the particular prediction category. 18. The mobile computing device of claim 17, wherein aggregating the at least two predictions comprises carrying out one or more operations selected from: removing duplicate predictions from the at least two predictions; filtering the at least two predictions in accordance with one or more filters implemented by the prediction center; for each prediction of the at least two predictions: adjusting a confidence level associated with the prediction in accordance with a weight that is assigned to the prediction engine that produces the prediction, wherein the confidence level associated with the prediction is generated by the prediction engine when producing the prediction, and the weight is produced by one or more learning algorithms implemented by the prediction center; and sorting each prediction of the at least two predictions in accordance with the confidence level associated with the prediction. 19. The mobile computing device of claim 17, wherein the prediction center is configured to carry out steps that include, subsequent to providing the prediction to the software application: receiving, from the software application, feedback information that indicates an accuracy of the prediction; and providing the feedback information to the prediction engines that produced the at least two predictions, wherein the feedback information can be utilized by the prediction engines to increase an accuracy of subsequent predictions that are produced by the prediction engines. 20. The mobile computing device of claim 17, wherein each prediction category of the plurality of prediction categories is associated with: activations and deactivations of software applications executing on the mobile computing device, contacts known to the mobile computing device, Global Positioning System (GPS) information available to the mobile computing device, notifications processed by the mobile computing device, or physical input made to the mobile computing device.