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