Проблема с запросом select SPARQL в dbpedia
-
13-09-2019 - |
Вопрос
Я пытаюсь получить некоторые данные о городе, используя Sparql-запрос в DBpedia.Проблема в том, что я не могу заставить запрос работать.
В настоящее время я делаю что-то вроде этого:
SELECT ?title,?name,?abs WHERE {
?title skos:subject
<http://dbpedia.org/resource/Category:Cities%2C_towns_and_villages_in_Slovenia>.
?title dbpprop:officialName ?name.
?title dbpprop:abstract ?abs
}
Я получаю все города, деревни Словении со всеми данными.Проблема в том, что я хотел бы получить данные (officialName и / или abstract) только для одного города, например Любляны.Итак, я попробовал некоторые вещи, подобные этому:
SELECT ?name WHERE {
?name dbpprop:officialName
<http://dbpedia.org/resource/Ljubljana>.
}
Конечно, это не работает.Хотя я точно не знаю почему :), но я немного поэкспериментировал и заметил некоторые вещи, например, если я положу
?name skos:subject <http://dbpedia.org/resource/Category:Ljubljana>.
Я получаю некоторые результаты (которые не имеют отношения ко мне, но в любом случае), но если я поставлю
?name skos:subject <http://dbpedia.org/resource/Ljubljana>.
результатов нет ни по чему, хотя элемент skos:subject существует на странице http://dbpedia.org/resource/Ljubljana.
Не мог бы кто-нибудь, пожалуйста, объяснить, почему второй пример не работает и как получить желаемый результат?
Спасибо, Аблак
Спасибо
Решение
Вы хотите запросить <http://dbpedia.org/resource/Ljubljana>
как субъект, а не объект;это заменило бы ваш ?title
привязка в запросе SPARQL, например:
SELECT ?name, ?abs WHERE {
<http://dbpedia.org/resource/Ljubljana>
skos:subject <http://dbpedia.org/resource/Category:Cities%2C_towns_and_villages_in_Slovenia> ;
dbpprop:officialName ?name ;
dbpprop:abstract ?abs .
}
Вот почему ваш график совпадает ?name skos:subject <http://dbpedia.org/resource/Ljubljana>
не возвращает ожидаемых результатов;URI для Любляны должен быть предметом заявления (ов), которому (которым) вы хотите соответствовать.