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 have the form:
A is an instance of B
John is a Person
This should be contrasted with TBox statements (or definitions of domain resources) such as:
All Students are Persons
There are two types of Persons: Students and Teachers
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.