1. A method for building an automated assistant, the method comprising: registering, by a processor, a service for use in conjunction with an active ontology by specifying at least one of: one or more active processing elements that the service can accept; and one or more active processing elements that the service cannot accept; filtering, by the active ontology, at least one request for services to the service in accordance with the one or more active processing elements specified by the service; wherein: the active ontology is configured to perform natural language processing on user input, the natural language processing performed in response to input facts relating to events collected from a user's environment, and the active ontology comprises a plurality of active processing elements configured to match specific types of facts.