2

我正在尝试通过查询从 wikidata 获取电影标题。

我已经尝试过了:

PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd: <http://www.wikidata.org/entity/> 
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>

SELECT ?q ?film_title ?actor ?genre WHERE {
  ?q wdt:P31 wd:Q11424.
}

LIMIT 10

这个的输出是这样的:wd:Q372

但是我们正在尝试获取此号码的电影标题,而不是此号码。

4

1 回答 1

5

每个电影实例(如 wd:Q372)都是一种类型,它具有一些文字属性,如标签(或本例中的电影标题)以及与其他实体(如演员)的一些关系。为了获得文字值(如标题等),您需要查询这些值。例如,这是获取所有电影标题、类型和演员的查询(我假设您只需要英文标签,并且我将结果限制为 10)。

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX v: <http://www.wikidata.org/prop/statement/>
PREFIX q: <http://www.wikidata.org/prop/qualifier/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?q ?film_title ?actor ?genre WHERE {
  ?q wdt:P31 wd:Q11424.
  ?q rdfs:label ?film_title filter (lang(?film_title) = "en").
  ?q wdt:P136 ?genreID.
  ?genreID rdfs:label ?genre filter (lang(?genre) = "en").
  ?q wdt:P161 ?actorID.
  ?actorID rdfs:label ?actor filter (lang(?actor) = "en").
}limit 10
于 2015-10-13T17:44:30.287 回答