2010-02-15 3 views
9

Jena를 사용하여 DBpedia를 쿼리하는 SPARQL 쿼리를 작성하려고합니다.Jena를 사용하여 DBpedia에서 SPARQL 쿼리를 작성하십시오.

독립형 도구 (Twinkle)와 함께 사용할 때 쿼리가 작동하지만이 자바 코드를 연결하면 빈 세트가 반환됩니다.

String sparqlQueryString1 = "PREFIX dbont: <http://dbpedia.org/ontology/> " + 
     "PREFIX dbp: <http://dbpedia.org/property/>" + 
     "PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>" + 
     " SELECT ?musician ?place" + 
     " FROM<http://dbpedia.org/resource/Daphne_Oram>" + 
     " WHERE { " + 
     "  ?musician dbont:birthPlace ?place ." + 
     " }"; 

Query query = QueryFactory.create(sparqlQueryString1); 
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query); 

ResultSet results = qexec.execSelect(); 
ResultSetFormatter.out(System.out, results, query);  

qexec.close() ; 

내가 잘못하고있는 아이디어가 있습니까?

답변

10

문제는 FROM <...> 절입니다. 그것을 제거하고 모두 잘됩니다. 해당 절을 사용하여 끝점에서 해당 이름의 그래프로 쿼리를 제한하고 있지만 그러한 그래프가 없으므로 결과가 없다고 생각됩니다.

혼란스러운 것은 쿼리가 양식의 http://dbpedia.org/sparql에서 작동하는 것처럼 보입니다. 그러나 기본 그래프 URI가 설정되어 쿼리가 해당 그래프를 지나치게됩니다. 선택을 취소하면 쿼리가 작동하지 않습니다. 대안으로 원격 데이터를 검색하도록 설정할 수 있습니다. 그것은 3 개의 출생지를 언급하는 지명 된 rdf를 끌어 당깁니다.

당신이 음악가 사용의 출생 장소 찾기 위해 노력하는 경우 :

{ <http://dbpedia.org/resource/Daphne_Oram> dbont:birthPlace ?place . } 
+0

잘했다. 덕분에 ! – Marcom

관련 문제