Closed lcbarcellos closed 4 years ago
This same constraint is expressed in A modeling infrastructure for OntoUML, section 6.1, page 48, using other terminology:
Concrete Sortal has Substance Sortal ancestor Every non-abstract Sortal must have a Substance Sortal ancestor (or be a Substance Sortal)
context SortalClass inv:
not isAbstract and not oclIsKindOf(SubstanceSortal)
implies:
allParents()->exists( x | x.oclIsKindOf(SubstanceSortal) )
Validated by OnlyAKindRule class
Rule
Every instance of
gufo:Sortal
which is not instance ofgufo:Kind
must specialize an instance ofgufo:Kind
Source
Second rule from Table 1 of paper Endurant Types in Ontology-Driven ConceptualModeling: Towards OntoUML 2.0, presented on page 13 of document.