- From: Francesco Cannistrà <fracan@inwind.it>
- Date: Wed, 17 Sep 2003 18:17:31 +0200
- To: <www-rdf-interest@w3.org>
While studying the possibility to type containers I have investigated many
approaches
(not always correct). Finally, I think I have found a really complete
solution for typing containers, but it is too much complex. I think the most
suitable approach remains the definition of customized vocabulary semantics.
Below I propose to your attention the solution that I found (but that I
discarded). It is an ontology that allows (ops ... should allow) to strictly
constrain a container to have a specific number of members of a specific
type.
Best Regards,
Francesco Cannistrà
---------
---------
<owl:Class rdf:ID="ContainerMembershipStatement">
<rdfs:subClassOf rdf:resource="&rdf-ns;Statement"/>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="&rdf-ns;Statement"/>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdf-ns;predicate"/>
<owl:allValuesFrom
rdf:resource="&rdfs-ns;ContainerMembershipProperty"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdf-ns;subject"/>
<owl:allValuesFrom rdf:resource="&rdf-ns;Container"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="MyTypedContainerMembershipStatement">
<rdfs:subClassOf rdf:resource="#ContainerMembershipStatement"/>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="#ContainerMembershipStatement"/>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdf-ns;object"/>
<owl:allValuesFrom rdf:resource="#MyType"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdf-ns;object" />
<owl:minCardinality
rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="&rdf-ns;object" />
<owl:maxCardinality
rdf:datatype="&xsd;nonNegativeInteger">5</owl:maxCardinality>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
<owl:Class rdf:ID="MyTypedContainer">
<rdfs:subClassOf rdf:resource="&rdf-ns;Container"/>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="&rdf-ns;Container"/>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty>
<owl:inverseOf>
<owl:ObjectProperty rdf:about="&rdf-ns;subject" />
</owl:inverseOf>
</owl:ObjectProperty>
</owl:onProperty>
<owl:allValuesFrom
rdf:resource="#MyTypedContainerMembershipStatement"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
Received on Wednesday, 17 September 2003 12:18:13 UTC