I am a Constraint in the Dings-System.
I always evaluate to “true” for all stored Dings_Triples in the All-Dings-System, otherwise a Bug is present.
I define a formal validity Condition for Dings_Triples, whose Predicate references me via Dings_Predicate_Has_Constraint.
If I am violated, the affected Triple is ontologically invalid, not merely false.
Therefore, I am Part of the Truth-Definition-Layer of the Ontology-Kernel.
Let
T := (Subject, Predicate, Object) be a TripleContext(T) be the evaluation context of
TThen I define a total Function:
Eval : Context → { True, False, Error }
true → The Triple satisfies the Constraint and is valid.
false → The Triple violates the Constraint and is invalid.
error → The Constraint cannot be evaluated due to an ontology inconsistency (e.g. missing reference, unresolved type, cyclic dependency).
The context visible to me is strictly limited to:
Context :=
{
Subject
Predicate
Object
Graph
Time (optional, future kernel extension)
}
I MUST NOT access information outside this context.
This guarantees:
Each concrete Constraint defines the subset:
Consumed ⊆ { Subject, Predicate, Object, Graph, Time }
Rules:
This enables:
I become active only through:
Predicate ─Has_Constraint→ Constraint
Meaning:
For every Triple (S, P, O):
If (P ─Has_Constraint→ C)
then Eval_C(Context(S,P,O)) = true
must hold.
Otherwise the Triple is invalid.
If several Constraints are attached to the same Predicate:
P ─Has_Constraint→ C1
P ─Has_Constraint→ C2
...
Then validity requires:
∀ Ci : Eval_Ci(Context) = true
Logical combination: AND
I apply only to:
I do NOT apply to:
This prevents self-blocking of the Ontology Kernel.
Constraint evaluation occurs strictly after:
and before:
Therefore, I always operate on fully resolved canonical entities.
I am an abstract base class.
Concrete subclasses include for example:
These are defined in separate derived Dings.
A knowledge graph is ontologically valid iff all Constraints of all stored Triples evaluate to true.
This makes me a core component of the Ontology Kernel.