2011-11-24 3 views
2

Jena를 사용하여 dbpedia.org에 대해 SPARQL 쿼리를 실행하는 데 문제가 있습니다.Jena에서 DBpedia로 SPARQL 쿼리를 실행하는 중 "제한 시간/쿼리가 멈 춥니 다"

쿼리는 형식은 다음과 같습니다 http://www.dbpedia.org/resource/SomeArtist가 유효한 작가는 URI, 예를 들면이다

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX p: <http://dbpedia.org/property/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
SELECT ?album ?name ?dateofrelease 
WHERE { 
?album p:artist <http://dbpedia.org/resource/SomeArtist> . 
?album rdf:type <http://dbpedia.org/ontology/Album> . 
?album rdf:type <http://schema.org/MusicAlbum> . 
?album p:name ?name . 
?album <http://dbpedia.org/ontology/releaseDate> ?dateofrelease . 
FILTER(xsd:dateTime(?dateofrelease) >= '2009-01-01T00:00:00Z'^^xsd:dateTime) 
} LIMIT 5 

http://dbpedia.org/resource/Wilco 및 보내기 전에 제대로 URL 인코딩됩니다. 예나가를 throw하기 전에

Query query = QueryFactory.create(queryString); 
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query); 
ResultSet results = queryExecution.execSelect(); 
이 프로그램은 같은 양식에 약 30 쿼리를하고있다

하지만, 그들 중 일부 "중지"약 2 분간 :

쿼리는 다음과 같은 표준 코드 실행

com.hp.hpl.jena.sparql.resultset.ResultSetException: Not an ResultSet result 

예외가 발생하여 계속 진행되면 일부 쿼리가 멈추고 일부 결과는 0 개 이상의 결과로 빠르게 반환됩니다. 이 작업을 여러 번 반복하면 쿼리가 반환하거나 "중단"되는 쿼리가 임의적입니다. 동일한 쿼리를 사용하는 SPARQL DBpedia를 사용하는 경우가 종종 있으며, 웹 브라우저에서 같은 방식으로 중단되는 경우가 있습니다.

  • 쿼리를 잘못 작성 했으므로 dbpedia.org에서 시간이 많이 걸리므로 쿼리 시간이 끊길 수 있습니까? 나는 시맨틱 웹 및 예나 아주 새로운,하지만 난 내가

    ?album p:artist <http://www.dbpedia.org/resource/SomeArtist> 
    

    문에서 객체 부분에 대한 절대 URI를 사용하고 있기 때문에 내 쿼리가 매우 시간이 소모 될 수 없습니다 처음에 생각했다.

  • 알고 있지 않은 dbpedia.org에 대한 원천/시간 단위 제한이 몇 가지 제한이 있습니까? (예나 2.6.4 사용)

답변

1

나는 쿼리가 느린 것을 확인할 수 있습니다.

속도에 영향을 줄 수있는 몇 가지 변형을 시도했지만 도움이되지 않았습니다. 왜 그런 유형의 쿼리가 특히 느려지는지 명확한 이유는 없습니다. 미안합니다.

응답 시간을 줄이면 DBPedia 덤프를 다운로드하고 관심있는 조건자를 grep하고 로컬 triplestore에로드 할 수 있습니다. 예나.

+0

응답 해 주셔서 감사합니다. 일관된 성능을 위해 로컬 덤프가 가장 좋음에 동의합니다. 나는 또한 새로운 SPARQL 엔드 포인트 http://live.dbpedia.org/sparql을 지금 시도했으며, 응답 시간은 훨씬 더 좋아졌다. – tle

+0

로컬 덤프에 dbpedia를 다운로드하는 방법에 대한 아이디어가 있다면 dotNetRDF를 사용하여 동일한 문제가 발생합니까? – SKandeel

관련 문제