nemo-ufes / ufo-protege-plugin

A plugin for Protégé that checks gUFO-based ontologies for adherence to UFO rules
GNU General Public License v3.0
7 stars 0 forks source link

Implement rule: an instance of NonSortal cannot specialize an instance of Sortal #8

Closed lcbarcellos closed 4 years ago

lcbarcellos commented 4 years ago

Rule

An instance of gufo:NonSortal cannot specialize an instance of gufo:Sortal

Source

Seventh rule from Table 1 of paper Endurant Types in Ontology-Driven ConceptualModeling: Towards OntoUML 2.0, presented on page 13 of document.

From (t15), a class representing a non-sortal {«category», «mixin», «roleMixin»,«phaseMixin»} cannot specialize a class representing a sortal one {«kind», «rela-torKind», «modeKind», «qualityKind», «subkind», «role» «phase»}.

lcbarcellos commented 4 years ago

This same constraint is expressed in A modeling infrastructure for OntoUML, section 6.1, page 49, using another terminology:

Mixin Class does not specialize SortalClass A Mixin Class (Category, Mixin, RoleMixin) cannot have a Sortal parent (Kind, Quantity, Collective, SubKind, Phase, Role)

context MixinClass inv:
parents()->select( x | x.oclIsKindOf(SortalClass) )->isEmpty()
lcbarcellos commented 4 years ago

Implemented by class SortalityRule.