owl和rdfs属性域范围如何工作?

时间:2017-06-06 18:25:21

标签: owl ontology rdfs graphdb

我试图理解rdfs域和范围的语义。因为我来自面向对象的背景,所以我很难理解语义以及如何根据rdfs语句验证数据。

以下是乌龟格式的示例文件:

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix tmpl: <http://template.example.com/>
prefix data: <http://data.example.com/>

    tmpl:Thing a owl:Class.
    tmpl:Employment rdfs:subClassOf tmpl:TemporalThing.
    tmpl:Party rdfs:subClassOf tmpl:Thing.
    tmpl:Individual rdfs:subClassOf tmpl:Party.
    tmpl:Organisation rdfs:subClassOf tmpl:Party.
    tmpl:LimitedLiabilityCompany rdfs:subClassOf tmpl:Organisation.
    tmpl:hasCurrentEmployer a owl:ObjectProperty;
        rdfs:domain tmpl:Party;
        rdfs:range tmpl:Party.
    data:Simon a tmpl:Individual;
        skos:prefLabel "Simon S".
    data:PtyLtd a tmpl:LimitedLiabilityCompany.
    data:Simon tmpl:hasCurrentEmployer data:PtyLtd.

    tmpl:Animal a owl:Thing.
    data:Beans a tmpl:Animal.
    data:Simon tmpl:hasCurrentEmployer data:Beans.

我正在使用GRAPHDB作为我的测试环境。我希望最后的陈述能够以某种消息失败,因为&#39; Beans&#39;是一个动物&#39;这是一个&#39; Party&#39;。

然而,GRAPHDB只接受声明。

有什么想法吗?

修改

根据Stanislav的评论如下:虽然推理引擎可能没有问题,但我们可以在应用程序中使用域和范围进行错误检查。

1 个答案:

答案 0 :(得分:1)

正如评论中所说,你误解了域和范围的语义。

P rdfs:domain D
P rdfs:range R

表示如果语句s P o成立,那么(在推理者运行的情况下),可以推断出s rdf:type Do rdf:type R

域和范围永远不会对该属性进行限制。这一点必须清楚。

要了解事情是如何运作的,请检查examplem OWL direct semantics for object properties here