SPARQL - получить тип сущности из строки - PullRequest
0 голосов
/ 16 мая 2018

Я использую Wikidata с целью найти для строки "Scotland" значения свойств "type / instance of", "subclass of" и "part of", если они существуют.

Например, вручную, просматривая веб-сайт Викиданных, я набираю Шотландию, я нахожу ресурс, и эти данные отображаются внутри него, например: https://www.wikidata.org/wiki/Q22. Таким образом, я вижу, что Шотландия является экземпляром страны в пределах Соединенного Королевства ".

Каким будет эквивалентный запрос в SPARQL, чтобы сделать это, пожалуйста?

Я пробовал этот «действительный» запрос, но он не возвращает результатов или обходит ограничение по времени:

SELECT ?instanceOf ?subclassOf ?partOf WHERE {
  ?word rdfs:label ?label;
       wdt:P361 ?instanceOf;
       wdt:P279 ?subclassOf;
       wdt:P361 ?partOf.
  FILTER(CONTAINS(?label, "Scotland"))
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en".}
}

Попробуйте здесь

1 Ответ

0 голосов
/ 24 мая 2018

Если вы уже сейчас используете Шотландию Entity Q22 в викиданных, вы можете использовать URL https://www.wikidata.org/wiki/Special:EntityData/Qxxxxx.json для получения всех операторов , относящихся к Шотландии, без использования SQARQL: https://www.wikidata.org/wiki/Special:EntityData/Q22.json.

См. Также: О данных в справке WikiData.

Для поиска подходящих объектов по строке используйте wbsearchentities REST API , например:https://www.wikidata.org/w/api.php?action=wbsearchentities&search=scotland&language=en.

...