In computer science, the terms TBox and ABox are used to describe two different types of statements in knowledge bases. TBox statements are the "terminology component", and describe a domain of interest by defining classes and properties as a domain vocabulary. ABox statements are the "assertion component" — facts associated with the TBox's conceptual model or ontologies. Together ABox and TBox statements make up a knowledge base or a knowledge graph.
ABox statements must be TBox-compliant: they are assertions that use the vocabulary defined by the TBox.
TBox statements are sometimes associated with object-oriented classes and ABox statements associated with instances of those classes.
Examples of ABox and TBox statements
ABox statements typically deal with concrete entities. They specify what category an entity belongs to, or what relation one entity has to another entity.
- Item A is-an-instance-of Category C
- Item A has-this-relation-to Item B
- Niger is-a country.
- Chad is-a country
- Niger is-next-to Chad.
- Agadez is-a city.
- Agadez is-located-in Niger.
TBox statements typically (or definitions of domain categories and implied relations) such as:
- An entity X can be a country or a city
- So Dagamanet is-a neighbourhood is not a fact you can specify, though it is a fact in real life.
- A is-next-to B if B is-next-to A
- So Niger is-next-to Chad implies Chad is-next-to Niger.
- X is a place if X is-a city or X is-a country.
- So Niger is-a country implies Niger is-a place.
- place A contains place B if place B is-located-in A.
- So Agadez is-located-in Niger implies Niger contains Agadez.
TBox statements tend to be more permanent within a knowledge base and are used and stored as a schema or a data model. In contrast, ABox statements are much more dynamic in nature and tend to be stored as instance data within transactional systems within databases. With the newer, NoSQL databases and especially with RDF databases (see Triplestore) the storage distinction may no longer apply. Data and models can be stored using the same approach. However, models continue to be more permanent, have a different lifecycle and are typically stored as separate graphs within such database.