3. DL Semantics - quoll/DLe GitHub Wiki

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 πš«β„ \ Cℐ
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') ∈ sℐ}}
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) ∈ rℐ β‹€ (e,f) ∈ rℐ β‡’ (d,f) ∈ rℐ)
Role functionality Func(r) (d,e) ∈ rℐ β‹€ (d,f) ∈ rℐ β‡’ e = f
Role reflexivity Ref(r) d ∈ πš«β„ β‡’ (d,d) ∈ rℐ
Role irreflexivity Irref(r) d ∈ πš«β„ β‡’ (d,d) βˆ‰ rℐ
Role symmetry Sym(r) (d,e) ∈ rℐ β‡’ (e,d) ∈ rℐ
Role antisymmetry Asym(r) (d,e) ∈ rℐ β‡’ (e,d) βˆ‰ rℐ
Concept assertion a:C aℐ ∈ 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.

Role Value Maps

Syntactically, Role Value Maps look like Role Inclusion, just with parentheses added. This is unfortunate, as the semantics are vastly different.

Role Inclusion

Role Inclusion means that for a given pair of roles r βŠ‘ s then every relationship of r between two entities implies the relationship s between those entities. Consider a concrete example of hasMother βŠ‘ hasParent (We will use the "default" namespace of ":", so all individuals and properties that appear as IRIs will be prefixed with :).

So if Mary is Peter's mother then this would be expressed in various syntaxes as:

  • (peter, mary):hasMother   β€” DL role assertion syntax
  • :peter :hasMother :mary   β€” RDF triple
  • ObjectPropertyAssertion( :hasMother :peter :mary )   β€” OWL Functional Notation
  • hasMother(peter, mary)   β€” Datalog syntax

The hasMother βŠ‘ hasParent statement says that for every hasMother relationship, there is a hasParent relationship:

  • (peter, mary):hasParent
  • :peter :hasParent :mary
  • ObjectPropertyAssertion( :hasParent :peter :mary )
  • hasParent(peter, mary)

Role Value Maps

Role value maps are used to describe concept classes where a role connecting the class instance to a value is equal to another role connecting the same instance to the same value.

For instance, say we define a Course as being a thing that is held-at an instance of University. We also define a Lecturer as one who teaches a Course and is employed-by a University. We can use a role value map to indicate that if the lecturer teaches a course held at a university, then they are employed-by that university. This is done by using a role value map between the composed property of teaches ∘ held-at and employed-by:

( teaches ∘ held-at βŠ‘ employed-by )

Note that this defines a class: in this case, it provides a stricter definition for the Lecturer class. It does this by defining the composed combination of teaches/held-at to lead to the same instance of University that the employed-by property references.

Because both sides of the role value map operator must lead to the same value, the order of the operators does not matter. So the above statement is equivalent to:

( employed-by βŠ‘ teaches ∘ held-at )
⚠️ **GitHub.com Fallback** ⚠️