Skip to content

4. Non‐DL Syntax

Paula Gearon edited this page Apr 23, 2026 · 4 revisions

Predicate Definitions

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:

Equal To By Definition

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()

Class Definitions

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 startDate attribute (values of this attribute are referred to in the expression as ?s)
  • Intersected with a class that has an endDate attribute (values of this attribute are referred to in the expression as ?e)
  • Intersected with cases where gt applied to ?s and ?e will return true.

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".

Note

The above definition syntaxes are not formal, but instead will be understood in context by an LLM.

Annotations

DLe accepts the following annotations:

@label entity "text"

Set the display name of the entity.

@doc entity "text"

Provides a description of the entity.

@ann entity annotation-property "text"

Annotates the entity using the given property set to the text.

@db entity "name"

Indicates the the entity appears in a database, using the provided name.

@storage entity "name"

Provides details of database storage. Provides hints when using the entity in queries.

@prefix prefix:

Declares a prefix for an OWL ontology.

@import IRI

Imports an ontology, addressed by IRI.

@ontology IRI

Sets the IRI of the current ontology.

Clone this wiki locally