foundations of computational agents
The knowledge base required for online computation can be built initially at design time and then augmented offline by the agent.
In philosophy, ontology is the study of existence. An ontology is a theory about what exists, or what may exist, in a particular domain. In AI, an ontology is a specification of the meaning of the symbols used in an information system, where symbols refer to things that exist. An ontology specifies what exists and the vocabulary used to describe what exists.
In the simplest case, if an agent is using an explicit state-based representation with full observability, an ontology specifies the mapping between the state and the world. For example, the ontology would specify what holds in state 57; without the ontology, the state is just a meaningless number. In other cases, an ontology would define the features or the individuals and relationships. The computer can reason with the meaningless symbols, but to interact with the world, it needs to know how these symbols relate to the world. By sharing ontologies, people and computers can have meaningful interchanges.
Ontologies are typically built by communities, often independently of a particular knowledge base or specific application. It is this shared vocabulary that allows for effective communication and interoperation of the data from multiple sources (sensors, humans, and databases). Ontologies are discussed in Section 14.3.
The ontology logically comes before the data and the prior knowledge: we require an ontology to have data or to have knowledge. Without an ontology, data are just sequences of bits. Without an ontology, a human does not know what to input; it is the ontology that specifies the meaning of the data.
The ontology specifies a level, or levels, of abstraction. If the ontology changes, the data must change. For example, a robot may have an ontology of obstacles (e.g., every physical object is an obstacle to be avoided). If the ontology is expanded to differentiate people, chairs, tables, coffee mugs, etc., different data about the world are required.
The knowledge base is typically built offline from a combination of expert knowledge and data. A knowledge engineer is a person who interacts with a domain expert to build a knowledge base. The knowledge engineer knows about intelligent systems, but not necessarily about the domain, and the domain expert knows about the domain, but not necessarily about how to specify knowledge.
Offline, the agent can combine the expert knowledge and whatever data is available. For example, it can compile parts of the knowledge base to allow more efficient inference. Offline, the system can be tested and debugged.