如何为OWL DataProperties定义自己的范围

时间:2013-01-05 14:15:54

标签: rdf owl rdfs

我最近开始学习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之间的双精度值。如果您指导我如何定义自己的范围,我将非常感激。数据属性。

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:integerxsd: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>

RDF / XML中的

UPDATE:,它对应于(看看它与Turtle相比有多乱):

{{1}}

但是如果你直接用文本编辑器编写RDF,你应该学会使用Turtle。它比RDF / XML更简单,更简洁。你真的可以看到三元组。而且它很快就会成为一种标准,即将推出W3C候选推荐标准。

** 2017年10月3日更新:Turtle was standardised in February 2014。如果您更喜欢基于JSON的RDF表示法,还有另一个W3C标准JSON-LD