rdf - 如何为 OWL 数据属性定义我自己的范围

标签 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 之间的 double 值。如果您指导我如何定义我自己的数据属性范围,我将不胜感激。

最佳答案

在这里(为简洁起见,使用 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 , 等等。

更新:在 RDF/XML 中,它对应于(看看它与 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>

但是如果你直接用文本编辑器写RDF,你真的应该学会使用Turtle .它比 RDF/XML 更简单、更简洁。你真的可以看到三元组。它很快就会成为一个标准,向 W3C 候选推荐标准的转变迫在眉睫。

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

关于rdf - 如何为 OWL 数据属性定义我自己的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14172610/

相关文章:

rdf - 如何指定关系链暗示另一个关系链

rdf - SPARQL 查询返回满足限制的匹配项

schema - 架构是 :domainIncludes and rdfs:domain (as well as schema:rangeIncludes and rdfs:range) the same?

c++ - 在 MacOS X 环境下通过 Virtuoso 的 ODBC/iODBC 将 Redland 连接到 Virtuoso

resources - RDF 中的前缀命名空间

rdf - RDF 文件中的属性顺序

semantics - owl:allValuesFrom 和 rdfs:range 的区别

java - 使用 OWL API 加载 YAGO 本体

rdf - Protege 中复杂类的推理

java - 多个用户访问 RDF 文件进行读写