如何查询多个实体的特定DBpedia资源/页面?
我有许多DBpedia页面的链接,如:
http://dbpedia.org/resource/Harry_Potter
http://dbpedia.org/resource/Twilight_(series)
http://dbpedia.org/resource/Bible
http://dbpedia.org/resource/Manga
我想为它们中的每一个获取Abstract和Thumbnail实体。
我可以单独使用它们:
-
对于摘要:
PREFIX dbo: PREFIX res: PREFIX rdf: PREFIX rdfs: SELECT ?label WHERE { dbo:abstract ?label . FILTER (lang(?label) = \'en\')}
-
对于缩略图:
PREFIX dbo: PREFIX res: PREFIX rdf: PREFIX rdfs: SELECT ?thumbnail WHERE { dbo:thumbnail ?thumbnail}
是否可以将上述两个查询合并为一个查询。 我是SPARQL的新手,无法让它工作。
此外,还有比我目前的方法更好的查询方式吗?
当然可以将它们组合起来,这样做的简单方法就是连接两个WHERE
的主体并相应地调整SELECT
:
SELECT ?label ?thumbnail WHERE { dbo:abstract ?label . FILTER (lang(?label) = 'en') dbo:thumbnail ?thumbnail . }
如果你想更简洁,你可以使用相同的主题组合两个三元组;
:
SELECT ?label ?thumbnail WHERE { dbo:abstract ?label ; dbo:thumbnail ?thumbnail . FILTER (lang(?label) = 'en') }
并且由于您定义了res:
前缀,您可以使用它来缩短URI:
SELECT ?label ?thumbnail WHERE { res:Harry_Potter dbo:abstract ?label ; dbo:thumbnail ?thumbnail . FILTER (lang(?label) = 'en') }