2012-02-22 4 views
3

나는 특정 제목을 가진 모든 레코드를 선택하기 위해 자바에서 sparql 쿼리를 작성하고있다. 이 검색어로 시도 중입니다.자바에서 sparql 쿼리

SELECT * WHERE { ?title rdf:type ?specific_title .}  

하지만 작동하지 않습니다. 누가 내 실수인지 아는 사람 있습니까? 감사합니다.

+5

"작동하지 않는 것"이 ​​어떤 모양인지 분명히 알려주십시오. 오류 메시지, 스택 추적 또는 이유에 대한 단서가 될 수있는 동작이 있습니까? – duffymo

+0

서버의 응답이 근본 원인이 입니다. java.lang.IndexOutOfBoundsException : 색인 : 3, 크기 : 3 – user1218282

+0

코드 또는 서버에서 가져온 전체 스택 추적을 게시 할 수 있습니까? – RobV

답변

0

이 쿼리를 실행하는 데이터의 예를 보여줄 수 있습니까?

쿼리의 시작 부분에 rdf 접두사 (네임 스페이스)를 정의 했습니까?

또한 rdf:type 속성의 값은 해당 URI로 표시되는 rdfs:Class이어야합니다.

PREFIX rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# 
PREFIX ex: http://www.example.com# 
SELECT ?x WHERE { ?x rdf:type ex:ExampleClass } 
+1

'? specific_title'은 바인딩 될 필요가 없습니다. OP의 쿼리 (올바른 네임 스페이스 선언이 있다고 가정)는 구문 상 정확합니다. – soulcheck

+0

Drat, 네 말이 맞아. 그것은 나를 서둘러 게시하도록 가르쳐 줄 것입니다. SELECT * 쿼리를 거의 사용하지 않습니다. 고칠 것입니다. – DNA

+0

예 rdf 접두어를 정의했습니다. 나는 제목, 이름, 성 등의 기록이 있으며 특정 제목의 레코드를 찾고 싶습니다. – user1218282

2

java.lang.IndexOutOfBoundsException : 인덱스 : 3, 크기 : 당신이 결과 집합을 반복하려고하고 존재하지 않는 행을 요청하는 것처럼 3

그것은 나에게 소리. 예나를 사용하고 있습니까? 그렇다면 다음과 같은 경우 일 수 있습니다.

if (ResultSet.hasNext()) { 
    ResultSet.next(); 
    QuerySolution nextResult = ResultSet.nextSolution(); 
} 
+0

대단히 감사합니다. 매우 도움이되었습니다. – user1218282