Source: Object Management Group ( Mike Bennett)
Lint findings: these point to model features in which it is possible that the model is saying something other than we intend it to say. These are therefore investigated as part of testing.
Two lints were found which represented possible issue with the use of equivalent class axioms. Specifically, the equivalence was related to a class which itself had other sub class relationships which may cause the model to say more than we want it to say. These were:
• People – there is a union class which is equivalent to the named class “LegallyCapablePerson” while this is also a sub class of Person
• Contracts: there is one equivalent class relationship to a restruction, but there are also two other restrictions with subClassOf relations to this class, and it also has two parent classes (UnilateralContract and WrittenContract). Some but not all of these were introduced after the equivalentClasswasintroduced.
Additional analysis of the Contract model also reveals that while the property ‘isEvidencedBy’ is defined with relation to the class “WrittenContract”, what we actually intended to say was that a written contract is defined by the fact that it has the propertyisEvidenecdBy. This requires a restriction in addition to the presence of that property.
People.rdf has this issue with LegallyCapablePerson:
<rdfs:label>legally capable person</rdfs:label>
<skos:definition rdf:datatype="http://www.w3.org/2001/XMLSchema#string">a person who is allowed to conduct a business or any other occupation on his or her own behalf or for their own account</skos:definition>
The subclassof Person should be removed.
The lint report from pellet is that it doesn't like complex class expressions as subclasses of other things. This happens in TransferableContract (expurgated quote):
a owl:Class ;
rdfs:label "transferable contract" ;
rdfs:subClassOf fibo-fnd-agr-ctr:WrittenContract , fibo-fnd-agr-ctr:UnilateralContract ;
owl:equivalentClass [ a owl:Restriction ;
owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onClass fibo-fnd-agr-ctr:ContractOriginator ;
The issue, from Pellet's point of view, is that equivalentClass to a complex expression (a cardinality restriction) and the subclass to a named class (two of them, in fact).
There is another issue in this pattern that is potentially problematic, and that is that having the restriction equivalent to this class means that anything that satisfies this restriction (e.g., has a single principal that is a ContractOriginator) is therefore a transferrable contract (and is therefore a WrittenContract and a UnilateralContract).
Reported: EDMC-FIBO/FND 1.0b2 — Thu, 20 Nov 2014 15:29 GMT
Disposition: Resolved — EDMC-FIBO/FND 1.0
Implement recommendations from lint tests and review
As recommended in the lint tests:
Delete the subClassOf relation for LegallyCapablePerson
Make the class TransferableContract equivalent to a union of all of the restriction and sub class axioms that it currently has a relationship with.
Add a restriction on WrittenContract to make the isEvidencedBy property a necessary condition for that class.
Updated: Tue, 21 Apr 2015 01:18 GMT
- Contracts.rdf 50 kB (application/rdf+xml)
- JIRA 77 Lints Proposed Resolution.docx 309 kB (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
- JIRA77-1_Person Types.svg 346 kB (image/svg+xml)
- JIRA77-2_PeopleRow.docx 14 kB (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
- JIRA77-3_Contract_Types.svg 1.37 MB (image/svg+xml)
- JIRA77-4_Transferable_Contract_Parties.svg 637 kB (image/svg+xml)
- JIRA77-5_ContractRows.docx 15 kB (application/vnd.openxmlformats-officedocument.wordprocessingml.document)
- People.rdf 48 kB (application/rdf+xml)