RDF避免RDF:子类

RDF避免RDF:子类,rdf,sesame,Rdf,Sesame,我有以下RDF: 约翰 史密斯 这看起来很好,但我想避免做John子类的可能性。 例如,这不应该起作用: 约翰 史密斯 彼得 史密斯 我怎样才能增加这个限制 编辑: 在我尝试了另一种方法之后: 约翰 史密斯 彼得 史密斯 但这仍然有效:(不知道你想做什么。你的建模在我看来很奇怪,为什么John是一个类?John应该是Person类型的个体。(而且你不能有个体的子类,所以将John变成个体也回答了你关于防止子类化的问题。) 更新:RDF本身并不能阻止你说无意义的话。因此,即使数据毫无意

我有以下RDF:


约翰
史密斯
这看起来很好,但我想避免做John子类的可能性。 例如,这不应该起作用:


约翰
史密斯
彼得
史密斯
我怎样才能增加这个限制

编辑:

在我尝试了另一种方法之后:


约翰
史密斯
彼得
史密斯

但这仍然有效:(

不知道你想做什么。你的建模在我看来很奇怪,为什么John是一个类?John应该是Person类型的个体。(而且你不能有个体的子类,所以将John变成个体也回答了你关于防止子类化的问题。)


更新:RDF本身并不能阻止你说无意义的话。因此,即使数据毫无意义,你仍然可以解析、序列化和查询数据。但是你可以使用OWL一致性检查器来验证你的本体。在这种特殊情况下,你必须检查本体是否在OWL DL中。(OWL DL是OWL的变体,它引入了个人不能拥有子类的限制。在OWL Full中,这是允许的,除非您添加一个约束,即
类与
类不相交。

不确定您想做什么。您的建模在我看来很奇怪,为什么John是一个类吗?John应该是Person类型的个体。(而且你不能有Persons的子类,所以将John更改为个体也可以回答你关于防止子类化的问题。)


更新:RDF本身并不能阻止你说无意义的话。因此,即使数据毫无意义,你仍然可以解析、序列化和查询数据。但是你可以使用OWL一致性检查器来验证你的本体。在这种特殊情况下,你必须检查本体是否在OWL DL中。(OWL DL是OWL的变体,它引入了个人不能拥有子类的限制。在OWL Full中,这是允许的,除非您添加了一个约束,即
类与
类不相交。

您仍然将John视为一个类。您希望这样:

<rdf:RDF
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
   xmlns:ppl="http://www.blah.com/people#">

    <rdfs:Class rdf:ID="Person" />

    <rdf:Description rdf:ID="John">
        <rdf:type rdf:resource="#Person"/>
        <ppl:name>John</ppl:name>
        <ppl:LastName>Smith</ppl:LastName>
    </rdf:Description>

</rdf:RDF>

约翰
史密斯
rdfs:subassof和rdf:type是不同类型的关系

rdfs:子类用于说明,比如说,所有人都是哺乳动物,所有哺乳动物都是动物

rdf:type用于表示,比如说,约翰是一个人(而约翰是哺乳动物和动物)


值得一提的是,semanticoverflow.com也是一个询问RDF相关问题的好地方。

您仍然将John视为一个班级。您希望这样:

<rdf:RDF
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
   xmlns:ppl="http://www.blah.com/people#">

    <rdfs:Class rdf:ID="Person" />

    <rdf:Description rdf:ID="John">
        <rdf:type rdf:resource="#Person"/>
        <ppl:name>John</ppl:name>
        <ppl:LastName>Smith</ppl:LastName>
    </rdf:Description>

</rdf:RDF>

约翰
史密斯
rdfs:subassof和rdf:type是不同类型的关系

rdfs:子类用于说明,比如说,所有人都是哺乳动物,所有哺乳动物都是动物

rdf:type用于表示,比如说,约翰是一个人(而约翰是哺乳动物和动物)


值得一提的是,semanticoverflow.com也是一个询问RDF相关问题的好地方。

你能提供xml片段让John成为一个个体吗?我刚刚用另一种方法编辑了我的问题,但仍然没有按预期效果。你能提供xml片段让John成为一个个体吗?我刚刚用另一个ap编辑了我的问题方法,但仍然没有按预期工作。