我想在WikiData上查询我获取的所有项目,这些项目会以某种方式连接到其他项目。
例如我有Item" Vienna" (Q1741)。现在我想要获取所有项目,其中包含项目维也纳在任何属性。
我目前使用的API是来自wmflabs的API。在这里,我可以进行像
这样的查询claim[189:1741]
这给了我每件物品的财产"发现地点" (P189)="维也纳" (Q1741)。
但我想要的是像
claim[*:1741]
获取任何属性适合的所有项目" Vienna",例如" Birthplace" (P19),"死亡地点" (P20)或任何其他。但是通配符不能在这里工作。
这可能吗?怎么样?
PS:我没有绑定这个API,我可以使用任何API来通过JS访问wikidata。还有一些可用于维基数据转储的SparQL端点(如wikidataldf),但我不知道它们有多稳定。但如果有人可以使用 SPARQL 帮助解决方案,我也会很高兴。
答案 0 :(得分:2)
您可以使用sparql查询到Dbpedia来获取特定资源的结果,这里是Vienna。 要获得维也纳使用的所有财产及其资源价值,可以使用
select ?property ?value where {
<http://dbpedia.org/resource/Vienna> ?property ?value
}
Check here 您可以使用sparql查询选择资源的特定属性,如下所示。
select ?country ?density ?timezone ?thumbnail where {
<http://dbpedia.org/resource/Vienna> dbpedia-owl:country ?country;
dbpedia-owl:populationDensity ?density;
dbpedia-owl:timeZone ?timezone;
dbpedia-owl:thumbnail ?thumbnail.
}
答案 1 :(得分:2)
答案 2 :(得分:1)
但我想要的是......获取任何属性适合“维也纳”的所有项目[。]
在SPARQL中,这非常简单。例如,DBpedia's SPARQL endpoint:
select ?resource where {
?resource ?property dbpedia:Vienna
}
答案 3 :(得分:1)