2008-12-17 24 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是任何語句的主題,則此查詢不會返回它們。