维基数据 - 这个查询可能吗?

时间:2015-05-01 10:40:21

标签: sparql rdf semantic-web wikidata wikidata-api

我想在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 帮助解决方案,我也会很高兴。

4 个答案:

答案 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.
}

Check

答案 1 :(得分:2)

可能是这样的:

SELECT ?node WHERE {?node ?pred wd:Q1741} 

Wikidata Query Service

答案 2 :(得分:1)

  

但我想要的是......获取任何属性适合“维也纳”的所有项目[。]

在SPARQL中,这非常简单。例如,DBpedia's SPARQL endpoint

select ?resource where {
  ?resource ?property dbpedia:Vienna 
}

SPARQL results (limited to 100)

答案 3 :(得分:1)

已经有一些针对维基数据的SPARQL端点可用。但是,它们仍然是测试版,仅反映最后一次转储的数据。

您的查询将是this one

另见this help page on Wikidata