如何使用 sparql 在 rdf 中访问 child class 的 parent 属性?
How to access parent properties of a child class in rdf with sparql?
我正在尝试访问 RDF 中 parent class 的 属性 继承。我使用 rdfs 属性 subClassOf.
定义了我的 child class 的实例
使用海龟语法:
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:属性 和他的 child。我可以承认 ex:myClass2 是 ex:myClass1 并编写此 SPARQL 查询
SELECT ?instance ?value WHERE{
?instance ex:myClass1 ?value .
}
获取我定义的两个值?或者 rdfs:subClassOf 没有将 child class 定义为 parent class?[=15 的更具体版本=]
为了补充 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
添加到您的商店)
我正在尝试访问 RDF 中 parent class 的 属性 继承。我使用 rdfs 属性 subClassOf.
定义了我的 child class 的实例使用海龟语法:
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:属性 和他的 child。我可以承认 ex:myClass2 是 ex:myClass1 并编写此 SPARQL 查询
SELECT ?instance ?value WHERE{
?instance ex:myClass1 ?value .
}
获取我定义的两个值?或者 rdfs:subClassOf 没有将 child class 定义为 parent class?[=15 的更具体版本=]
为了补充 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
添加到您的商店)