2015-01-16 2 views
1

저는 독일 도시에서 관심있는 모든 지점에 대한 유형을 얻기 위해 SPARQL을 사용하여 DBpedia 끝점을 쿼리하는 데 Jena Java 프레임 워크를 사용하고 있습니다. 영어 DBpedia 항목이있는 장소에 대해서는 아무런 문제가 없습니다. 그러나 독일어 DBpedia 끝점 (http://de.dbpedia.org/resource/Schloß_Nymphenburg)에서 쿼리 할 장소 이름을 지정하면이 쿼리는 결과를 반환하지 않습니다. 이 문제는 여기 (http://mail-archives.apache.org/mod_mbox/jena-users/201110.mbox/%[email protected]%3E)에 대해서도 언급되어 있습니다. 이 문제를 언급 한 후에도 문제를 해결할 수 없습니다. QueryEngineHTTP를 사용하는 방법을 모르겠습니다. 두 개의 코드 스 니펫을 추가합니다. 첫 번째는 Allianz Arena : DBpedia에 영어 항목이 있고, 두 번째 코드는 Schloß Nymphenburg (독일어 항목이 있음)입니다. 이것은 매우 사소한 문제 일지 모르지만 해결할 수는 없습니다. 솔루션에 대한 모든 포인터는 매우 도움이 될 것입니다. 감사합니다. 코드 1 - 작업 :HTTP Sparql 쿼리의 독일어 DBpedia 끝점은 결과를 반환하지 않습니다.

String service = "http://dbpedia.org/sparql"; 
final ParameterizedSparqlString query = new ParameterizedSparqlString(
      "PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>" + 
      "PREFIX dbo: <http://dbpedia.org/ontology/>" + 
      "PREFIX dcterms: <http://purl.org/dc/terms/>" + 

      "SELECT * WHERE {" + 
       "?s geo:lat ?lat ." + 
       "?s geo:long ?long ." + 
       "?s dcterms:subject ?sub}"); 
query.setIri("?s", "http://dbpedia.org/resource/Allianz_Arena"); 
QueryExecution qe = QueryExecutionFactory.sparqlService(service, query.toString()); 
ResultSet results = qe.execSelect(); 
ResultSetFormatter.out(System.out, results); 

코드 2 - 작동하지 :

String service = "http://dbpedia.org/sparql"; 
final ParameterizedSparqlString query = new ParameterizedSparqlString(
     "PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>" + 
     "PREFIX dbo: <http://dbpedia.org/ontology/>" + 
     "PREFIX dcterms: <http://purl.org/dc/terms/>" + 

     "SELECT * WHERE {" + 
      "?s geo:lat ?lat ." + 
      "?s geo:long ?long ." + 
      "?s dcterms:subject ?sub}"); 

query.setIri("?s", "http://de.dbpedia.org/resource/Schloß_Nymphenburg"); 
QueryExecution qe = QueryExecutionFactory.sparqlService(service, query.toString()); 
ResultSet results = qe.execSelect(); 
ResultSetFormatter.out(System.out, results); 

답변

0

나는이 모든 예나의 문제라고 생각하지 않습니다. 시도 : http://dbpedia.org/sparql에서

SELECT * WHERE { 
    <http://de.dbpedia.org/resource/Schloß_Nymphenburg> ?p ?o } 

나는 어떤 결과를 얻을 수 없습니다 : try it yourself.

SELECT * WHERE { 
    <http://de.dbpedia.org/resource/Schloss_Nymphenburg> ?p ?o } 

대조적으로 대조적으로 cross links의 묶음 일지라도 무언가를 반환합니다.

+0

제안 해 주셔서 감사합니다. 이것은 당신의 질의를 위해 작동합니다 ('? p? o'). 하지만,'SELECT * WHERE {? sub}'를 실행하려고하면 아무 것도 돌려주지 않습니다. . – TheRadVillager

+0

내 마지막 링크를 보면 올빼미 : sameAs 링크, 제목 또는 아무 것도 볼 수 없습니다. 나는 그 문제가 무엇인지는 모르지만 jena가 아닌 dbpedia에 관한 것입니다. 죄송합니다 더 도움이 될 수 없습니다. – user205512

+0

맞습니다. 결과를 반환하지 않는 dbpedia의 해당 지역 독일어 데이터 집합입니다. 포인터 주셔서 감사! – TheRadVillager

관련 문제