2016-10-31 82 views
0

我有下面的代碼已經:如何找到使用DBpedia中查詢特定電影演員在python

movie = "http://dbpedia.org/resource/Cannes_Man" 
Q = "PREFIX dbo:  <http://dbpedia.org/property/> PREFIX dbpedia: <http://dbpedia.org/resource/> SELECT ?actor WHERE {?actor dbo:starring <"+movie+">.} " 
sparql = SPARQLWrapper("http://dbpedia.org/sparql") 
sparql.setReturnFormat(JSON) 
sparql.setQuery(Q) # the previous query as a literal string 
activity_feed3 = sparql.query().convert() 
print activity_feed3 
for result5 in activity_feed3["results"]["bindings"]: 
    print result5 

它返回空的結果。我是新來的蔓延客戶端和dbpedia,並試圖瞭解如何運行簡單的查詢。任何幫助將不勝感激!

回答

1
  1. RDF數據被建模爲有向圖,因此,您必須找出關係的方向。
  2. 你可以看到這個,如果你只是看看DBpedia中的一些電影的數據,如你的例子http://dbpedia.org/resource/Cannes_Man。在那裏你可以看到一部電影有http://dbpedia.org/ontology/starring的演員資料。 您還可以使用SPARQL檢查傳入和傳出數據: SELECT * WHERE {?s ?p_in <URI>} resp。 SELECT * WHERE {<URI> ?p_out ?o}
  3. 你應該嘗試使用普通的前綴,即dbo:通常用於http://dbpedia.org/ontology/而不是http://dbpedia.org/property/

因此,SPARQL查詢,你可能需要的是

SELECT ?actor WHERE { 
    <http://dbpedia.org/resource/Cannes_Man> <http://dbpedia.org/ontology/starring> ?actor 
} 
相關問題