SPARQL查询:如何获取所有单个和数据属性断言?

SPARQL查询:如何获取所有单个和数据属性断言?,sparql,rdf,owl,ontology,Sparql,Rdf,Owl,Ontology,正如您所知,如果我们检索对象属性或数据属性,子类可以通过在一个变量中连接它们来实现这一点: 查询1 SELECT ?x ?y WHERE { ?x rdfs:subClassOf ?y. ?x rdf:type owl:ObjectProperty. } xvar是另一个类的相同对象属性和子类 我需要加入(所有个人“NamedIndividual”) 具有对象属性或子类。 问题是(?x rdf:type owl:NamedIndividual。) 无法在与以下位置相同的任何其他位置使用“?x”

正如您所知,如果我们检索对象属性或数据属性,子类可以通过在一个变量中连接它们来实现这一点:

查询1

SELECT ?x ?y
WHERE { ?x rdfs:subClassOf ?y.
?x rdf:type owl:ObjectProperty.
}
x
var是另一个类的相同对象属性和子类 我需要加入(所有个人“
NamedIndividual
”) 具有对象属性或子类。 问题是
(?x rdf:type owl:NamedIndividual。)
无法在与以下位置相同的任何其他位置使用
“?x”

?x rdfs:subClassOf ?y.
查询2

SELECT ?x ?y
WHERE { ?x rdfs:subClassOf ?y.
?x rdf:type owl:NamedIndividual .
}
查询3

SELECT ?x ?y
WHERE { ?x rdf:type owl:ObjectProperty.
?x rdf:type owl:NamedIndividual .
}
因此:查询2和查询3无法实现。
如何解决此问题?

您的第一个查询应该做什么?我怀疑这是对的。老实说,我不明白你在问什么——这些查询都不应该返回任何解决方案,也不应该返回任何解决方案。你把所有的类、实例和关系弄得一团糟
?x
只能是其中一个,在所有这些查询中都将其视为两个。@PaulBrown modulo OWL 2 punning。。。但这就是为什么我问他,他的第一个问题是什么,应该做什么。对我来说,他似乎不知道RDF/OWL中实例和模式数据之间的区别。对于第一个查询,我认为他更多的是通过域/范围查找类和属性之间的关系。但让我们等待收件人的回复。干杯