Sparql DBPedia не возвращает foaf: запрос имени - PullRequest
0 голосов
/ 26 сентября 2018

Я использую конечную точку Virtuoso SPARQL для DBpedia.У меня нет проблем с выполнением некоторых тестовых запросов, но моя проблема заключается в том, что я запускаю запрос, основанный на foaf:name "literal" объекта.Вот мой код ниже:

prefix db: <http://dbpedia.org/resource/>
prefix dbo: <http://dbpedia.org/ontology/>
prefix foaf: <http://xlms.com/foaf/0.1/>

SELECT ?capital WHERE{
        ?state dbo:capital ?capital .
        ?state foaf:name "State of Alaska"@en .
        }

Моя логика заключается в том, что ?state dbo:capital ?capital относится к столице государства в онтологии совы DBpedia.?state foaf:name "State of Alaska"@en должно соответствовать переменной ?state с литеральной сущностью Alaska.У меня нет проблем, когда мои запросы контролируются переменными, которые не foaf:name.Я посмотрел примеры и не вижу, в чем проблема с моим синтаксисом.Даже когда я изменяю последнюю строку на -

?state a foaf:name "State of Alaska"@en .

- код продолжает давать сбой.Я посмотрел другие примеры и не могу найти свою конкретную проблему.Похоже, что этот код ДОЛЖЕН вернуть заглавную букву для Аляски на основе foaf:name литерала.

1 Ответ

0 голосов
/ 26 сентября 2018

Я нашел ответ.Ключ заключается в том, чтобы не добавлять этот префикс вверху

prefix foaf: <http://xlms.com/foaf/0.1/> 

. Его следует заменить на правильное объявление префикса foaf::

prefix foaf: <http://xmlns.com/foaf/0.1/> 

Или, возможно, даже пропустить, поскольку foaf: префикс предопределен .

Таким образом, приведенный ниже запрос фактически работает:

SELECT ?capital WHERE {
        ?state dbo:capital ?capital .
        ?state foaf:name "State of Alabama"@en .
}
...