2015-08-22 2 views
0

Я пытаюсь запросить dbpedia с помощью sparql и столкнуться с проблемой с скобками в названии темы. Этот запрос выполняется, но ничего не возвращает. Если я попробую его с похожим Лицом без скобок, он будет работать.sparql with brackets in subject

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 Вы имеете в виду вернуть абстрактный * вместо * эскиз, если нет миниатюры? Или сделать каждый дополнительный? Вы купили 'select? A? T {... optional {? S dbpedia-owl: abstract? A} необязательный {? S dbpedia-owl: thumbnail? T}}' (чтобы сделать каждый дополнительный, но все равно получая оба) , В качестве альтернативы вы можете сделать то же самое, но добавить коалесценцию в выборку, чтобы выбрать значение первой связанной переменной: 'select (coalesce (? T,? A) as? ThumbnailOrAbstract) {...}'. –

+0

это звучит хорошо. Я хочу оба поля, но если эскиз пуст, я хочу, чтобы пустая строка идеально. Если абстракция отсутствует, меня не беспокоит, возвращается ли что-либо или нет. Извините, я действительно не понимаю синтаксис вашего примера, хотя (я новичок в sparql), и я не мог заставить его работать в Virtuso, что я и использую для просмотра результатов sparql. –