2015-08-22 24 views
0

我想查詢dbpedia使用sparql並運行到與主題名稱中括號的問題。此查詢運行但不返回任何內容。如果我在沒有括號的類似人物上嘗試它,它會起作用。sparql與括號中的主題

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 

SELECT * WHERE 
{ 
<http://dbpedia.org/resource/Yves_Saint_Laurent_(designer)> dbpedia-owl:abstract ?abstract ; 
dbpedia-owl:thumbnail ?thumbnail .filter(langMatches(lang(?abstract),"en")) 
} 

我已經嘗試了各種字符來逃避括號,但似乎沒有任何作品。有沒有另外一種方法來獲取數據?

回答

6

我認爲你的問題與'Yves Saint Laurent'沒有屬性縮略圖有關。

看看:Yves Saint Laurent on dbpedia

此查詢的工作:

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 

SELECT * WHERE 
{ 
<http://dbpedia.org/resource/Yves_Saint_Laurent_(designer)> 
dbpedia-owl:abstract ?abstract 
filter(langMatches(lang(?abstract),"en")) 
} 

我測試:http://dbpedia.org/sparql

+0

好斑點,是沒有辦法,我可以框定的查詢,以便任何方式,如果沒有縮略圖,則返回摘要? –

+1

@RobSedgwick你的意思是返回縮略圖的抽象*而不是縮略圖,如果沒有縮略圖?或者讓每個可選?你可以選擇一個選項來選擇一個可選{dbworks-owl:abstract | a}可選{dbpedia-owl:thumbnail?}}(使每個選項都可選,但仍然可以) 。或者,你可以做同樣的事情,但在select中加入一個合併來選擇第一個綁定變量的值:'select(coalesce(?t,?a)as?thumbnailOrAbstract){...}'。 –

+0

聽起來不錯。我想要兩個字段,但如果縮略圖是空白的,我想要一個空字符串理想。如果摘要缺失,我不打擾是否返回任何內容。對不起,我不太瞭解你的例子的語法(我是一個sparql新手),我無法讓它在Virtuso中運行,這是我用來查看sparql的結果。 –