1

在给定类名和命名空间的情况下,如何使用 SPARQL 查询从 RDF 数据源中获取所有类属性及其子类的属性?

4

2 回答 2

3

这个怎么样:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?subClass ?predicate 
WHERE {
   ?subClass rdfs:subClassOf <http://dbpedia.org/ontology/Work> .
   ?predicate rdfs:domain ?subClass
}

尝试使用 SPARQL 工具,例如DBPedia 的 SNORQL 接口

于 2009-03-11T22:24:12.553 回答
3

您是否尝试执行递归 SPARQL 查询?换句话说,选择给定的个人及其所有属性。如果属性的对象是另一个个体,则选择其属性,依此类推。

我不相信 SPARQL 支持这一点。

天真的方法是做这样的事情(并且,假设你的意思是个人而不是类,这实际上符合你的要求,但不处理下一个“级别”的三元组)。

CONSTRUCT {
    ?s ?p ?o .
    ?o ?p2 ?o2 .
} WHERE {
    ?s ?p ?o .
    ?o ?p2 ?o2 .
}

请注意,如果?o2是任何语句的主题,则此查询不会返回它们。

于 2009-07-29T01:53:08.603 回答