Open cuddihyge opened 11 months ago
@cuddihyge , I'm inclined to think that this is how it should behave. To specify a max qualified cardinality constraint, i.e., "owner of Item has at most 1 value of type Item" does not require that the range of owner be Item. The range might be a superclass of Item or it might not be specified at all--having a range is not, to my knowledge, required for a qualified cardinality constraint to be specified. Do you disagree? If so, why?
@crapo Re-reading that SADL literally (which is undoubtedly the correct way to read SADL), I can see how my interpretation may not be correct.
But there seems to be good precedent for my assumption that that the statements about owner and owner2 would be equivalent: the SADL below for a single value
results in owl which gives a range of Item to the property owner.
I was more familiar with using a single value
, presumed it was correct, and presumed at most 1 value
would behave similarly and specify a range.
SADL:
Item is a class,
described by owner with a single value of type Item.
Item2 is a class,
described by owner2 with values of type Item.
owner2 of Item2 has exactly 1 value.
owl
.
.
.
<owl:ObjectProperty rdf:about="#owner">
<rdfs:domain rdf:resource="#Item"/>
<rdfs:range rdf:resource="#Item"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="#owner2">
<rdfs:domain rdf:resource="#Item2"/>
<rdfs:range rdf:resource="#Item"/>
</owl:ObjectProperty>
</rdf:RDF>
In the SADL below, the resulting OWL is generated such that the property owner has no range specified. The property owner2 does have the correct range.