2011-04-13 5 views
1

에서의 ResultSet을 가지고 :시도 내가 다음 쿼리를 사용하려고 시도하는 오전 CONSTRUCT 질의 예외

QUERY="PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + 
      " PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + 
        "CONSTRUCT { \n" + 
    "?cls ?cp ?co . \n" + 
    " ?prop ?pp ?po . \n" + 
"}" + 
"WHERE { \n" + 
    "?cls a rdfs:Class . \n" + 
    "?cls ?cp ?co . \n" + 
    "?prop a rdf:Property . \n" + 
    "?prop ?pp ?po . \n " + 
"}"; 

results = qe.execSelect(); 

쿼리 문자열 변수 QUERY입니다.
jena를 사용 중입니다. 전체가 2 개의 버튼이있는 인터페이스에 있습니다. 사용자가 클릭 QUERY 모두 구성하고 스레드에서
예외를 선택 포함 된 경우 다음과 같은 예외를 받고

을 BUTTON2 경우 사용자가 "AWT-EventQueue의-0"com.hp 단추 1과 위의 쿼리를 클릭하면 QUERY는 선택 쿼리를합니다 .hpl.jena.query.QueryExecException :

답변

4

CONSTRUCT 쿼리가 발생 com.hp.hpl.jena.sparql.engine.QueryExecutionBase.execSelect (QueryExecutionBase.java:93)에서 CONSTRUCT 질의 에서의 ResultSet을 가지고 시도 모델, 결과 세트가 아닙니다. 다음을 사용해야합니다 :

Model model = qe.execConstruct(); 

"생성 및 선택 모두 포함"이라는 쿼리를 사용할 수 없습니다. (당신이 포함하는 구조 의미하지 않는 서브 - 선택?)

당신은 다음과 같은 도움을 찾을 수 있습니다

Query q = QueryFactory.create(QUERY); 

if (q.isSelectType()) { ... execSelect, deal with results ... } 
else if (q.isConstructType()) { ... execConstruct, deal with result model ... } 
else { ... do you deal with DESCRIBE? ... }