使用spaqrl访问dbpedia。如何为每部电影获得多个演员?

时间:2011-12-05 17:57:25

标签: wikipedia sparql dbpedia

我想获取dbpedia上存在的所有电影的数据以及与每部电影相关联的演员列表。 我跑了一个查询:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT DISTINCT ?film_title ?star_name
where {?film_title rdf:type <http://dbpedia.org/ontology/Film> .
?film_title  foaf:name ?film_name .
?film_title rdfs:comment ?film_abstract .
?film_title dbpedia-owl:starring ?star .
?star dbpprop:name ?star_name
}

这只给了我第一个演员的名字。如何获得每部电影的完整演员列表?

1 个答案:

答案 0 :(得分:2)

DPedia可能不会为所有电影中的所有演员保留其记录。在某些情况下,只有一个演员与电影相关联,在某些情况下只有几个。您的查询接缝是正确的,尽管您可能会获得重复项,因为actor可能有多个与之关联的dbpprop:name属性。或者,您可以使用子查询使用以下查询:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?film_title ?star WHERE { {SELECT DISTINCT ?film_title
where {?film_title rdf:type <http://dbpedia.org/ontology/Film> } limit 10} . 
?film_title dbpedia-owl:starring ?star .
}