【问题标题】:How to access parent properties of a child class in rdf with sparql?如何使用 sparql 访问 rdf 中子类的父属性?
【发布时间】:2015-04-13 11:33:57
【问题描述】:

我正在尝试访问继承自 RDF 中父类的属性。我使用 rdfs 属性 subClassOf 定义了我的子类的一个实例。

使用海龟语法:

ex:myClass1 a owl:class;
           rdfs:range xsd:integer.

ex:myClass2 rdfs:subClassOf ex:myClass1.

# defining instance of my class

ex:instance1 ex:myClass1 1 .

ex:instance2 ex:myClass2 2 .

如果我想访问所有 ex:myClass1 和他的孩子的属性 ex:property。我可以承认 ex:myClass2 是一个 ex:myClass1 并编写这个 SPARQL 查询

SELECT ?instance ?value WHERE{
    ?instance ex:myClass1 ?value .
}

获取我定义的两个值?或者 rdfs:subClassOf 没有将子类定义为父类的更具体的版本?

【问题讨论】:

  • 当您编写?instance ex:MyClass1 ?value 时,您使用的是ex:myClass1 作为属性。不应该是一堂课吗? RDF 属性和类不像(某些类型的)面向对象编程;属性不属于类,它们也不是继承的。我不确定您所说的ex:instance1 ex:myClass1 1 是什么意思。如果你想让 ex:instance1 成为 ex:myClass1 的一个实例,你会说ex:instance1 rdf:type ex:myClass1
  • @JoshuaTaylor 所以如果我真的明白,我应该写ex:instance1 a ex:myClass1; rdfs:range 1. 而不是ex:instance1 ex:myClass1 1 .?而且我不能声明ex:instance2 a ex:myClass2; rdfs:range 2.,因为使用 rdfs:range 的属性不属于 ex:myClass2?
  • rdfs:range 用于声明属性的范围。例如,您可能有:ex:Person a owl:Class . ex:hasMother a owl:ObjectProperty . ex:hasMother rdfs:range ex:Person。人是一个类。 hasMother是一个属性,hasMother的范围是Person;即,hasMother 属性的值应该是 Person 的实例。

标签: inheritance rdf sparql semantic-web rdfs


【解决方案1】:

为了补充 Joshua 试图解释的内容,您正在混合模式和数据概念。

我认为你应该定义的是(简化的 RDFS 语法):

ex:property rdfs:domain ex:myClass1 .
ex:property rdfs:range xsd:integer .

ex:myClass2 rdfs:subClassOf ex:myClass1.

#this may be optional depending on the entailment regime your SPARQL enpoint uses    
ex:myClass1 a owl:class .

# defining instance of my class

ex:instance1 ex:property 1 .
ex:instance2 ex:property 2 .

然后就可以查询了

SELECT ?instance ?value WHERE{
    ?instance ex:property ?value .
}

根据您的 SPARQL 端点的蕴涵机制,通过 ex:property 推断 ex:instance1 和 ex:instance23 至少是 ex:Class1 的实例(如果您想将其中之一设为 ex:Class2您必须将三重 ex:instance a ex:Class2 添加到您的商店)

【讨论】:

  • rdfs:range 是 rdfs:Property 类实例(及其子类)的“元”属性。在正常使用下,这不应该是 ex:Class1 的属性,否则您推断 ex:Class1 是一个属性(在适当的蕴涵制度下)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-31
  • 1970-01-01
  • 2012-01-30
相关资源
最近更新 更多