A method and apparatus are provided for building an intelligent automated assistant. Embodiments of the present invention rely on the concept of “active ontologies” (e.g., execution environments constructed in an ontology-like manner) to build and run applications for use by intelligent automated assistants. In one specific embodiment, a method for building an automated assistant includes interfacing a service-oriented architecture that includes a plurality of remote services to an active ontology, where the active ontology includes at least one active processing element that models a domain. At least one of the remote services is then registered for use in the domain.
Please help me write a proper abstract based on the patent claims. CLAIM: 1-25. (canceled) 26. An electronic device, comprising: one or more processors; memory; and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for: receiving, at a processor, at least one request for services, the request for services being in natural language form; determining, at the processor, one or more active processing elements of an active ontology that are associated with the request for services, each active processing element associated with the request for services with a probability greater than zero; and prioritizing, by the processor, the one or more active processing elements associated with the active ontology; wherein: the active ontology is configured to perform natural language processing on user input, the natural language processing performed in response to the request for services, and the active ontology comprises a plurality of active processing elements adapted to match specific types of facts. 27. The electronic device of claim 26, further comprising: determining the one or more active processing elements using facts relating to events collected from a user's environment. 28. The electronic device of claim 26, wherein each of the one or more active processing elements specifies one or more request for services that the one or more active processing elements can accept. 29. The electronic device of claim 26, further comprising: filtering the one or more active processing elements by the associated probability. 30. The electronic device of claim 26, further comprising: selecting an active processing element. 31. The electronic device of claim 30, further comprising: selecting the active processing element with the highest associated probability. 32. The electronic device of claim 31, further comprising: performing the request for services in accordance with the selected active processing element. 33. The electronic device of claim 26, wherein the active ontology models a domain, and wherein each active processing element of the active processing elements represents at least one of: an object in the domain and an associated task to be accomplished. 34. The electronic device of claim 26, wherein at least two of the active processing elements communicate information via a channel. 35. The electronic device of claim 34, wherein the information communicated via the channel comprises processing results generated by at least one of the at least two of the active processing elements. 36. The electronic device of claim 35, further comprising: determining the probability associated with the information communicated via the channel; determining, based on the probability associated with the information, the propagation of additional processing results generated by one or more of the at least two of the plurality of active processing elements. 37. The electronic device of claim 34, wherein the channel is associated with one or more properties. 38. The electronic device of claim 37, further comprising configuring the relationship between at least two active processing elements based on the one or more properties, wherein the at least two active processing elements are communicatively coupled. 39. The electronic device of claim 26, wherein at least one of the active processing elements comprises at least one rule. 40. The electronic device of claim 39, wherein the at least one rule comprises a condition and an associated action, wherein the associated action is executed upon matching of the condition to at least one of the input facts. 41. The electronic device of claim 39, wherein the at least one rule comprises a plurality of prioritized rules. 42. The electronic device of claim 26, wherein the active ontology is further configured to perform at least one of: activity recognition; activity execution; and management of temporal constraints associated with activity execution. 43. The electronic device of claim 26, further comprising interfacing the active ontology to a service-oriented architecture via a service broker. 44. The electronic device of claim 43, wherein the service broker is configured to perform at least one of: selecting at least one service, delegating at least one task, issuing at least one query, providing at least one update, and monitoring service requests. 45. The electronic device of claim 26, wherein each of the services is invoked to accomplish one or more tasks. 46. The electronic device of claim 26, wherein at least one of the active processing elements is configured to send at least one fact to at least one other active processing element. 47. The electronic device of claim 26, wherein at least one of the active processing elements is configured to receive at least one fact from at least one other active processing element. 48. The electronic device of claim 26, wherein the active ontology communicates with one or more sensors adapted to convey facts associated with the user's behavior to at least one of the active processing elements. 49. A method for building an automated assistant, the method comprising: receiving, at a processor, at least one request for services, the request for services being in natural language form; determining, at the processor, one or more active processing elements of an active ontology that are associated with the request for services, each active processing element associated with the request for services with a probability greater than zero; and prioritizing, by the processor, the one or more active processing elements associated with the active ontology; wherein: the active ontology is configured to perform natural language processing on user input, the natural language processing performed in response to the request for services, and the active ontology comprises a plurality of active processing elements adapted to match specific types of facts. 50. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by an electronic device, cause the device to: receive, at a processor, at least one request for services, the request for services being in natural language form; determine, at the processor, one or more active processing elements of an active ontology that are associated with the request for services, each active processing element associated with the request for services with a probability greater than zero; and prioritize, by the processor, the one or more active processing elements associated with the active ontology; wherein: the active ontology is configured to perform natural language processing on user input, the natural language processing performed in response to the request for services, and the active ontology comprises a plurality of active processing elements adapted to match specific types of facts.