我最近开始学习Web Ontology Language(OWL)。我想用我自己定义的值范围定义DataProperty。 考虑以下属性:
<owl:DatatypeProperty rdf:ID="myProperty">
<rdfs:domain rdf:resource="#MyDomain"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#double"/>
</owl:DatatypeProperty>
该属性具有double值的范围,但我想限制范围,以使我的属性只接受介于0和1之间的双精度值。如果您指导我如何定义自己的范围,我将非常感激。数据属性。
答案 0 :(得分:11)
这里你去(在Turtle而不是RDF / XML中,为了简洁):
:myProperty a owl:DatatypeProperty;
rdfs:domain :MyDomain;
rdfs:range [
a rdfs:Datatype;
owl:onDatatype xsd:double;
owl:withRestrictions ( [xsd:minInclusive 0] [xsd:maxInclusive 1] )
] .
我建议您使用xsd:decimal
代替xsd:double
,因为xsd:double
的精确度有限,与xsd:decimal
不相交,这也使xsd:integer
与xsd:int
脱节1}},<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>
等
UPDATE:,它对应于(看看它与Turtle相比有多乱):
{{1}}
但是如果你直接用文本编辑器编写RDF,你应该学会使用Turtle。它比RDF / XML更简单,更简洁。你真的可以看到三元组。而且它很快就会成为一种标准,即将推出W3C候选推荐标准。
** 2017年10月3日更新:Turtle was standardised in February 2014。如果您更喜欢基于JSON的RDF表示法,还有另一个W3C标准JSON-LD。