2013-01-05 30 views
3

我最近開始學習Web本體語言(OWL)。我想用我自己定義的值範圍來定義一個DataProperty。 考慮以下屬性:如何爲OWL DataProperties定義我自己的範圍

<owl:DatatypeProperty rdf:ID="myProperty"> 
    <rdfs:domain rdf:resource="#MyDomain"/> 
    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#double"/> 
    </owl:DatatypeProperty> 

財產有雙重價值的範圍,但我想限制的範圍內,以便使我的財產接受0和1之間唯一的雙重價值,我會,如果非常感謝你指導我如何爲數據屬性定義我自己的範圍。

回答

10

在這裏你去(在烏龜而不是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脫節等

UPDATE:在RDF/XML,它對應於(看看如何凌亂它是相對於龜):

<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,你應該學會使用Turtle。它比RDF/XML更簡單,更簡潔。你可以真正看到三元組。這將成爲很快的標準,向W3C候選推薦標準邁進即將到來。

** 2017年10月3日更新:Turtle was standardised in February 2014。如果您更喜歡基於JSON的RDF表示法,另一個W3C標準JSON-LD

+0

謝謝。你能否以RDF/XML格式寫出它?我試圖自己改變它,但由於我對烏龜不是很熟悉,我沒有得到任何可以接受的結果。 –