Skip to content

3. DL Semantics

Paula Gearon edited this page Mar 31, 2026 · 1 revision

Description Logic Semantics

The following provides the formal set-based semantics of the Description Logic table:

Name Syntax Semantics
Top ⊀ πš«β„
Bottom βŠ₯ βˆ…
Conjunction C βŠ“ D Cℐ β‹‚ Dℐ
Disjunction C βŠ” D Cℐ ⋃ Dℐ
Negation Β¬C πš«β„ \ Dℐ
Existential restriction βˆƒr.C {d ∈ πš«β„ | βˆƒe ∈ πš«β„.(d,e) ∈ rℐ β‹€ e ∈ Cℐ}
Value restriction βˆ€r.C {d ∈ πš«β„ | βˆ€e ∈ πš«β„.(d,e) ∈ rℐ β†’ e ∈ Cℐ}
Self restriction βˆƒr.Self {d ∈ πš«β„ | (d,d) ∈ rℐ}
Unqualified number restriction (≀n r)
(β‰₯n r)
(=n r)
{d ∈ πš«β„ | #{e | (d,e) ∈ rℐ} ≀ n}
{d ∈ πš«β„ | #{e | (d,e) ∈ rℐ} β‰₯ n}
{d ∈ πš«β„ | #{e | (d,e) ∈ rℐ} = n}
Qualified number restriction (≀n r.C)
(β‰₯n r.C)
(=n r.C)
{d ∈ πš«β„ | #{e | (d,e) ∈ rℐ β‹€ e ∈ Cℐ} ≀ n}
{d ∈ πš«β„ | #{e | (d,e) ∈ rℐ β‹€ e ∈ Cℐ} β‰₯ n}
{d ∈ πš«β„ | #{e | (d,e) ∈ rℐ β‹€ e ∈ Cℐ} = n}
Nominal {a} {aℐ}
Role value map r βŠ‘ s {d ∈ πš«β„ | {e | (d,e) ∈ rℐ} = {e | (d,e) ∈ rℐ}}
Predicate restriction βˆƒc1,…,ck.P {d ∈ πš«β„ | (c1ℐ(d),…,ckℐ(d)) ∈ P𝔻}
Role composition r ∘ s {(d,f) ∈ πš«β„ Γ— πš«β„ | βˆƒe ∈ πš«β„.(d,e) ∈ rℐ β‹€ (e,f) ∈ sℐ}
Inverse role r⁻ {(e,d) ∈ πš«β„ Γ— πš«β„ | (d,e) ∈ rℐ}
Feature chain g1β‹―gnh (g1β‹―gnh)ℐ(d) = hℐ(gnℐ(β‹―(giℐ(d))β‹―))
General Concept Inclusion C βŠ‘ D Cℐ βŠ† Dℐ
Concept Definition A ≑ C Aℐ ≑ Cℐ
Role inclusion r βŠ‘ s rℐ βŠ† sℐ
Role disjointness Disj(r,s) rℐ β‹‚ sℐ = βˆ…
Role transitivity Trans(r) βˆ€d,e,f ∈ πš«β„ ((d,e) ∈ rℐ β‹€ (e,f) ∈ rℐ β†’ (d,f) ∈ rℐ)
Role functionality Func(r) βˆ€d ∈ πš«β„ #{e ∈ πš«β„
Role reflexivity Ref(r) {(d,d)
Role irreflexivity Irref(r) rℐ βŠ† {(_d,e) ∈ πš«β„ Γ— πš«β„
Role symmetry Sym(r) {(e,d)
Role antisymmetry Asym(r) rℐ β‹‚ (rℐ)- βŠ† {(d,d)
Concept assertion a:C rℐ ∈ Cℐ
Role assertion (a,b):r (aℐ,bℐ) ∈ rℐ

Description Logic and Sets

Description Logic (DL) is used to "describe" concepts and roles (or classes, and relationships/properties). However, these descriptions are an abstract concept over data, rather than specifying particular data.

On the other hand, Sets describe a specific group of instances that are members of the set. This is a concrete representation of the data.

When a Concept (from DL) is applied to a particular context, then a set can be derived. For instance, when the concept "Employee" is considered in the context of a particular company, then the resulting set will contain all of the employees of that company. But when the concept is applied in the context of a different company, then this will result in a completely different set of employees. This is clearer when we combine expressions. For instance, we may want to consider nurses who are employees, and so we create the conjunction of Nurse βŠ“ Employee. In the concept of a legal firm, the set of people who are described by this concept is likely to be an empty set, but in a healthcare company the set might be the majority of the workforce. Similarly, when roles are applied in a particular context, this creates a set of specific relationships in that context.

When Concepts and Roles are defined together in relation to one another, they form a Model. When a Model is applied within a context to create sets, this is referred to as Interpreting the model in that context. For our Employees, we may have a role for "reportsTo" which connects most employees to their manager, and when we interpret this in the context of a specific company, we can get a set of everyone who works there, and the reporting structure of that company's Org Chart.

Because the Concepts and Roles in a model can be used to define sets in a particular context, but are not themselves sets, they are not manipulated or combined using the syntax of set operations. Instead, we have similar, related operators, that are specific to Description Logic. This is why DL has βŠ“ when set theory uses β‹‚, βŠ” when sets use ⋃,and βŠ‘ when sets use βŠ†. These operators are distinct from the set operators, but are visually similar.

Interpretations

An Interpretation ℐ=(πš«β„,⋅ℐ) is defined as a set of a instances πš«β„, along with an operator ⋅ℐ that maps concepts to a subset of πš«β„, and maps roles to a subset of binary relations defined by πš«β„ Γ— πš«β„. For instance, in the context of a particular company, πš«β„ could contain all the employees, contractors, business units, assets, and contracts. The ⋅ℐ mapping then maps this complete set of elements to the appropriate concepts, while also mapping relationships between elements to appropriate roles.

So in a hypothetical company "Peter", "Mary", and "Accounting" may appear within πš«β„. This company, that may both be part of the "Employee" class, with ("Mary","Accounting") and ("Peter","Accounting") being part of the "worksIn" role, and ("Peter","Mary") being an element of the "reportsTo" role.

Some roles may also connect entities to elements of a concrete domain 𝔻, where 𝔻 contains values such as strings and numbers. These sorts of roles are often referred to as attributes.

Feature Chains

In the above table we can see "Feature chain" defining a composition of roles to a specific attribute. "Abstract features" describe roles that connect one entity in πš«β„ to another, such as gℐ:πš«β„β†’πš«β„ while "concrete features" describe roles that connect entities to concrete values, as in hℐ:πš«β„β†’πš«π”».

Predicate Restrictions

In the "Predicate restriction" entry of the table, a set of attributes (which may be abstract roles referencing elements of πš«β„, but will typically be values in πš«π”») on an entity is referenced, where some predicate P𝔻 can be applied to these values to determine a true/false value.

For example, consider the attributes startDate and endDate. The predicate greaterThan can be defined as a binary predicate that returns true when the first argument is larger than the second, and false otherwise. Consequently, the expression βˆƒstartDate,endDate.greaterThan references a class of all elements which have startDate and endDate values where the startDate comes after the endDate (we probably want to report all instances of this class as erroneous).

Note that predicates P𝔻 are not defined by DL, and are expected to be defined elsewhere.

Clone this wiki locally