如何在Wikidata上创建SPARQL查询,以获取所有具有Project Gutenberg电子书ID的书?

时间:2019-02-27 22:41:04

标签: sparql wikidata

我注意到Wikidata上的某些书有古腾堡计划电子书ID。是否可以在Wikidata查询服务上构造一个查询,以查找具有此属性的所有书籍?我是SPARQL的新手。

1 个答案:

答案 0 :(得分:4)

如您所见,如果将鼠标悬停在https://www.wikidata.org/wiki/Q6511上的Project Gutenberg电子书ID的链接上,则SPARQL中使用的实际属性代码是https://www.wikidata.org/wiki/Property:P2034wdt:P2034简而言之。

要通过SPARQL检索所有具有电子书ID的项目,只需做一个基本的三重匹配即可。

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")) 
}

添加三重模式和过滤器的正确组合完全是一个问题。