2008-12-17 55 views
1

我怎样才能获得所有的类属性和它的子类与RDF数据源的属性使用SPARQL查询给定类名称和命名空间?SPARQL查询 - 类和子类给出一个类名和命名空间

+1

当你说你想要“类属性”你是指个人(类的实例)及其属性?当你想要子类时,你是否也想要传递子类(A => B,B => C,所以你想A => C)?你能提供一个你正在查询的RDF图的例子吗? – 2009-07-28 22:43:30

回答

3

如何this

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's SNORQL interface

3

您是否试图执行递归SPARQL查询?换句话说,选择一个给定的个体及其所有属性。如果该财产的对象是另一个人,请选择其属性,等等。

我不相信SPARQL支持这一点。 (而且,假设你是指个人而不是类,这实际上符合你的要求,但不处理三元组的下一个“等级”)。

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

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