Description Logic

tags
Logic Programming

Description logics are a family of logics that fall between propositional and predicate logic in terms of their expressiveness and tractability. Reasoning over DLs is usually decidable, and there are a variety of efficient DL reasoners. DLs have been an important foundation of work on ontologies for the Semantic Web, including OWL.

There are a huge number of different DLs, as there are quite a few mostly orthogonal characteristics that can be mixed and matched. See Description Logic Complexity Navigator (by Evgeny Zolin)

ABox/TBox

DLs have an interesting concept of maintaining a split between terminologies (TBox) and assertions (ABox). The TBox holds statements that are generally true within the domain of discourse (and thus remain static) (e.g. red is a colour), and the ABox holds assertions that hold at some given point in time (e.g. that car is red).
The TBox might be thought of as the "ontology" and the ABox as the "facts".
I think this is implicit or technically necessary in a lot of systems, so doesn't always get talked about. e.g. In RDBMS, the schema and data are necessarily and obviously separate things. In Prolog-likes and other LP systems, it is less inevitable but possibly just as important, but I haven't really seen this idea discussed much in that world (but some: cf HARNESS)
cf The Fundamental Importance of Keeping an ABox and TBox