DBpedia
几年前我涉足过它并发现它很吸引人,但现在我想在多年未使用它后执行查询,我发现它完全无法理解。
我应该发出什么SPARQL
查询来检索同时属于“Category ABC”和“Category XYZ”的所有维基百科页面的集合?
我能找到的所有例子似乎都比我看似基本的问题要复杂得多,因此很难提炼出一些最小的东西。
(作为一个例子,我想找到所有为意大利球队踢过职业足球的澳大利亚球员。)
资源和类别之间的链接使用dcterms:subject
关系表示(例如,您可以看到Elvis Presley的 DBPedia 表示)。
因此,要查询属于两个类别的所有资源(例如“美国男歌手”和“同卵双胞胎”),只需执行以下操作:
SELECT ?res
WHERE {
?res dcterms:subject category:American_male_singers, category:Identical_twins .
}
一般来说,当尝试通过 DBPedia 制定 SPARQL 查询时,首先浏览一下(就像我通过查看 Elvis 页面所做的那样),以尝试找出哪些属性和关系可用是有帮助的。
编辑顺便说一下,上面的查询检索 DBPedia 资源本身。如果您想获取实际的 Wikipedia 页面,您应该像这样调整您的查询:
SELECT ?wikiPage
WHERE {
?res dcterms:subject category:American_male_singers, category:Identical_twins ;
foaf:page ?wikiPage .
}