Как запросить Wikidata (SPARQL) по официальному свойству сайта P856? - PullRequest
0 голосов
/ 11 февраля 2019

Как выполнить поиск в службе запросов Wikidata SPARQL для записи, чей официальный веб-сайт (свойство P856) соответствует определенному значению?

Например, получить все записи, чей официальный веб-сайт "https://www.google.com".Это должно вернуть Q95 и Q9366, но вместо этого следующий запрос не даст результатов:

SELECT ?entity
WHERE  {
    ?entity wdt:P856 "https://www.google.com"
}

Я могу заставить его работать с ФИЛЬТРОМ, но он очень медленный:

SELECT ?entity
WHERE  {
    ?entity wdt:P856 ?url FILTER(str(?url)="https://www.google.com")
}

ИспользованиеФИЛЬТР кажется очень неэффективным. Почему не работает первый запрос?

1 Ответ

0 голосов
/ 11 февраля 2019

Посмотрите на значения, которые вы получаете из этого запроса -

SELECT ?entity ?value
WHERE 
  {
    ?entity wdt:P856 ?value
  }
LIMIT 25

Обратите внимание, что все они заключены в <>, помечая их какURIs.Чтобы сравнить URI со строковым литералом, вы должны изменить URI на строку, как вы делаете во втором запросе.

Другими словами - не существует сущностей с официальным сайтом "https://www.google.com", но есть некоторые лица с официальным сайтом <https://www.google.com>.

...