2014-01-16 64 views
1

如果像如果SPARQL查詢的結果是資源會怎麼樣?

SELECT * {?s ?p ?o} 

回報?o作爲一個資源(URI),如http://example.com#george_michael查詢,我怎麼能去更深,在同一個查詢中獲取例如該資源的rdfs:label

+1

在以評論[我的回答(http://stackoverflow.com/a/21165839/1281433),你說你已經嘗試過它。你是否正確定義了'rdfs'命名空間?如果StackOverflow包含的代碼不能像您期望的那樣工作,並且您可以顯示預期的結果和實際結果,那麼StackOverflow的問題通常是最好的。如果您已經嘗試了類似的內容,但沒有返回您期望的結果,請添加_complete_查詢(包括前綴聲明)到問題中,以及您獲得的實際結果,或者錯誤消息是否爲錯誤。 –

回答

2

SPARQL是查詢圖形的語言。 SPARQL查詢是模式,它可以匹配圖表。模式?s ?p ?o只是匹配任何三元組。如果你想匹配的附加三元,你只需要添加相應的三重模式的圖形模式:

SELECT * { 
    ?s ?p ?o . 
    ?o rdfs:label ?label . 
} 

當然,你所提到的「如果」 ?o恰好是一個資源,這表明你可能是對?o有興趣不要也有rdfs:label。在這種情況下,你想使用optional

SELECT * { 
    ?s ?p ?o . 
    optional { ?o rdfs:label ?label . } 
} 
+0

我試過這個,但它不工作。 – user3156345

+0

@ user3156345對此沒有什麼作用? –

相關問題