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 2 forks source link

Implement rule: an instance of SemiRigidType cannot specialize an instance of AntiRigidType #7

Closed lcbarcellos closed 4 years ago

lcbarcellos commented 4 years ago

Rule

An instance of gufo:SemiRigidType cannot specialize an instance of gufo:AntiRigidType

Source

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

From (t8), a class representing a semi-rigid type {«mixin»} cannot specialize a classrepresenting an anti-rigid type {«role», «phase», «roleMixin», «phaseMixin»}.

lcbarcellos commented 4 years ago

This constraint covers the one expressed in A modeling infrastructure for OntoUML, section 6.1, page 49, using other terminology:

Mixin does not specialize RoleMixin A Mixin cannot have a RoleMixin parent

context Mixin inv:
parents()->select( x | x.oclIsTypeOf(RoleMixin) )->isEmpty()