In this chapter, we introduce and explain the basic notions of Description Logic, including syntax, semantics and reasoning services, and we explain how the latter are used in applications.
The concept language of the DL ALC
In this section, we will describe the central notions of Description Logic first on an intuitive level and then on a more precise level. As a running example, we use the domain of university courses and teaching, and we will use a conceptualisation given informally, in graphical form, in Figure 2.1. Please note that this is one way of viewing university teaching – which might be very different from the reader's way of viewing it. Also, as it is an informal representation, different readers may interpret arrows in different ways; that is, our representation does not come with a well-defined semantics that would inform us in an unambiguous way how to interpret the different arrows. In the next sections, we will describe our way of viewing university teaching in a DL knowledge base, thereby establishing some constraints on the meaning of terms like “Professor” and “teaches” used in Figure 2.1 and throughout this section.
In Description Logic, we assume that we want to describe some abstraction of some domain of interest, and that this abstraction is populated by elements. We use three main building blocks to describe these elements:
• Concepts represent sets of elements and can be viewed as unary predicates. Concepts are built from concept names and role names (see below) using the constructors provided by the DL used. The set a concept represents is called its extension. For example, Person and Course are concept names, and m is an element in the extension of Person and c6 is in the extension of Course. To make our life a bit easier, we often use “is a” as an abbreviation for “is in the extension of” as, for example, in “m is a Person”.
• Role names stand for binary relations on elements and can be viewed as binary predicates. If a role r relates one element with another element, then we call the latter one an r-filler of the former one. For example, if m teaches c6, then we call c6 a teaches-filler of m.