我如何在 Wikidata 上创建 SPARQL 查询,以获取所有具有 Project Gutenberg 电子书 ID 的书籍?
How can I create a SPARQL query on Wikidata that gets all books that have a Project Gutenberg Ebook ID?
我注意到 Wikidata 上的一些书籍有 Project Gutenberg 电子书 ID。是否可以在维基数据查询服务上构建一个查询来查找所有包含此 属性 的图书?我是 SPARQL 的新手。
如您所见,如果您将鼠标悬停在 https://www.wikidata.org/wiki/Q6511, the actual property code to be used in SPARQL is https://www.wikidata.org/wiki/Property:P2034 上的 Project Gutenberg e-book ID 的 link 上,或简称为 wdt:P2034
。
要通过 SPARQL 检索具有 e-book 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"))
}
这完全取决于添加三重模式和过滤器的正确组合。
我注意到 Wikidata 上的一些书籍有 Project Gutenberg 电子书 ID。是否可以在维基数据查询服务上构建一个查询来查找所有包含此 属性 的图书?我是 SPARQL 的新手。
如您所见,如果您将鼠标悬停在 https://www.wikidata.org/wiki/Q6511, the actual property code to be used in SPARQL is https://www.wikidata.org/wiki/Property:P2034 上的 Project Gutenberg e-book ID 的 link 上,或简称为 wdt:P2034
。
要通过 SPARQL 检索具有 e-book 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"))
}
这完全取决于添加三重模式和过滤器的正确组合。