-
Notifications
You must be signed in to change notification settings - Fork 0
4. Non‐DL Syntax
Most useful systems require predicates to constrain values in the model. Most applications of this go beyond what Description Logic and OWL are capable of. DLe uses the "Equal To By Definition" ≝ character to define predicates like this:

Predicates defined this way accept an argument list in parentheses, should use First Order Logic, and be easy to interpret without explanation. For instance:
greaterThan(x,y) ≝ x > y
afterNow(x) ≝ x > now()
Predicate definitions are the preferred extension to DL, as they can be used in "Predicate Restrictions", which are a part of DL. However, classes can also be defined using a rule-like syntax:
StartAfterEnd ≝ ∃startDate.?s ⊓ ∃endDate.?e ⊓ gt(?s,?e)
This states that the StartAfterEnd class is defined by:
- A class that has a
startDateattribute (values of this attribute are referred to in the expression as?s) - Intersected with a class that has an
endDateattribute (values of this attribute are referred to in the expression as?e) - Intersected with cases where
gtapplied to?sand?ewill returntrue.
The operators gt, lt, ge, le, and eq are commonly interpreted to mean "greater than", "less than", "greater than or equal to", "less than or equal to", and "equals".
The above definition syntaxes are not formal, but instead will be understood in context by an LLM.
DLe accepts the following annotations:
Set the display name of the entity.
Provides a description of the entity.
Annotates the entity using the given property set to the text.
Indicates the the entity appears in a database, using the provided name.
Provides details of database storage. Provides hints when using the entity in queries.
Declares a prefix for an OWL ontology.
Imports an ontology, addressed by IRI.
Sets the IRI of the current ontology.