Как я могу создать SPARQL-запрос к Wikidata, который получает все книги с идентификатором Project Gutenberg Ebook ID? - PullRequest
0 голосов
/ 28 февраля 2019

Я заметил, что некоторые книги на Wikidata имеют идентификаторы электронных книг Project Gutenberg.Можно ли построить запрос в службе запросов Wikidata, которая ищет все книги с этим свойством?Я новичок в SPARQL.

1 Ответ

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

Как вы можете видеть, если навести курсор мыши на ссылку для идентификатора электронной книги Project Gutenberg на https://www.wikidata.org/wiki/Q6511,, фактический код свойства, который будет использоваться в SPARQL, равен https://www.wikidata.org/wiki/Property:P2034, или wdt:P2034 для краткости,

Чтобы получить все элементы с идентификаторами электронных книг через SPARQL, достаточно просто выполнить базовое тройное совпадение:

SELECT ?work ?bookId
WHERE { ?work wdt:P2034 ?bookId }

Конечно, вы можете расширить этот запрос, как считаете нужным.Например, чтобы получить (на английском) название книги вместо просто идентификатора, вы можете сделать что-то вроде этого:

SELECT ?title ?ebook_id
WHERE { 
     ?work rdfs:label ?title; 
           wdt:P2034 ?ebook_id. 
     FILTER(langMatches(lang(?title), "en")) 
}

Все дело в добавлении правильной комбинации тройных шаблонов и фильтров.

...