I have recently started learning Web Ontology Language (OWL). I want to define a DataProperty with my own defined range of value.
Consider the following property:
<owl:DatatypeProperty rdf:ID="myProperty">
<rdfs:domain rdf:resource="#MyDomain"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#double"/>
</owl:DatatypeProperty>
The property has the range of double value but I want to restrict the range in order to make my property to accept only double values between 0 and 1. I would be very grateful if you guide me how to define my own ranges for data properties.
Here you go (in Turtle rather than RDF/XML, for conciseness):
:myProperty a owl:DatatypeProperty;
rdfs:domain :MyDomain;
rdfs:range [
a rdfs:Datatype;
owl:onDatatype xsd:double;
owl:withRestrictions ( [xsd:minInclusive 0] [xsd:maxInclusive 1] )
] .
I would suggest that you use xsd:decimal
instead of xsd:double
, because xsd:double
is limited in precision and is disjoint from xsd:decimal
, which also makes it disjoint from xsd:integer
, xsd:int
, etc.
UPDATE: in RDF/XML, it corresponds to (look at how messy it is compared to Turtle):
<owl:DatatypeProperty rdf:about="#myProperty">
<rdfs:domain rdf:resource="#MyDomain"/>
<rdfs:range>
<rdfs:Datatype>
<owl:onDatatype rdf:resource="&xsd;double"/>
<owl:withRestrictions rdf:parseType="Collection">
<rdf:Description>
<xsd:minInclusive rdf:datatype="&xsd;double">0</xsd:minInclusive>
</rdf:Description>
<rdf:Description>
<xsd:maxInclusive rdf:datatype="&xsd;double">1</xsd:maxInclusive>
<rdf:Description>
</rdf:Description>
</owl:withRestrictions>
</rdfs:Datatype>
</rdfs:range>
</owl:DatatypeProperty>
But if you are writing RDF directly with a text editor, you should really learn to use Turtle. It's much simpler and more concise than RDF/XML. You can really see the triples. And it's going to be a standard soon, the move to W3C Candidate Recommendation is imminent.
**Update October 3rd, 2017: Turtle was standardised in February 2014. If you prefer a notation for RDF based on JSON, there is also JSON-LD, another W3C standard.