3

我想在WikiData上查询所有项目,这些项目以某种方式连接到另一个项目。

例如,我有项目“维也纳”(Q1741)。现在我想获取所有在任何属性中都有维也纳项目的项目。

我目前使用的 API 来自wmflabs。在这里我可以做一个查询

claim[189:1741]

这为我提供了具有“发现地点”(P189)=“维也纳”(Q1741)属性的每个项目。

但我想要的是

claim[*:1741]

获取任何属性适合“维也纳”的所有项目,例如“出生地”(P19)、“死亡地”(P20)或其他任何东西。但是通配符在这里不起作用。

这可能吗?如何?


PS:我不受这个 API 的约束,我可以使用任何 API 来访问通过 JS 访问的 wikidata。还有一些可用的 Wikidata-Dump 的 SparQL 端点(如 wikidataldf),但我不知道它们有多稳定。但是,如果有人可以使用SPARQL提供解决方案,我也会很高兴。

4

4 回答 4

2

you can use sparql query to Dbpedia to get result for you particular resource, which here is Vienna. To get all property and their value of resource Vienna use can use

select ?property ?value where { 
<http://dbpedia.org/resource/Vienna> ?property ?value
 }

Check here You can choose specific properties of resource using sparql query like this .

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

于 2015-05-02T07:11:36.857 回答
2

也许是这样的:

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

参见维基数据查询服务

于 2016-09-20T03:59:58.690 回答
1

但我想要的是……获得所有适合“维也纳”的物品[.]

在 SPARQL 中,这非常容易。例如,在DBpedia 的 SPARQL 端点上:

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

SPARQL 结果(限制为 100)

于 2015-05-01T17:33:37.740 回答
1

已经有一些可用于 Wikidata 的 SPARQL 端点。但是,它们仍处于测试阶段,仅反映上次转储中的数据。

您的查询将是这个

另请参阅Wikidata 上的此帮助页面

于 2015-05-08T16:02:06.053 回答