Closed lcbarcellos closed 4 years ago
This constraint, along with the constraint imposed by #3 covers the one expressed in A modeling infrastructure for OntoUML, section 6.1, page 48, with another terminology:
Substance Sortal does not specialize Rigid Sortal A Substance Sortal cannot have a Rigid Sortal parent
context SubstanceSortal inv:
parents()->select( x | x.oclIsKindOf(RigidSortalClass) )->isEmpty()
A RigidSortalClass in the context of (CARRARETO, 2010) is a class which is instance of gufo:Kind
or is instance of gufo:SubKind
in the context of gUFO.
By stating that an instance of gufo:Kind
cannot specialize another instance of gufo:Kind
, we are already stating that a gufo:Kind
cannot specialize gufo:SubKind
as well, because of, as by #3, a gufo:SubKind
must specialize gufo:Kind
.
However, taking into account the transitive inheritance and the constraint from #3, maybe we could rewrite this rule as "An instance of gufo:Kind
cannot specialize another instance of gufo:Sortal
@jpalmeida, any comments?
I agree with your solution. An instance of ufo:Kind
cannot specialize another instance of gufo:Sortal
.
Rule
An instance of
gufo:Kind
cannot specialize another instance ofgufo:Kind
Source
Third rule from Table 1 of paper Endurant Types in Ontology-Driven ConceptualModeling: Towards OntoUML 2.0, presented on page 13 of document.