2012-09-05 8 views
2

사용자가 sparql 쿼리를 입력 할 수 있도록 프론트 엔드 사용자 인터페이스로 간단한 웹 페이지를 만들었습니다. 저는 Jena ARQ를 백엔드 (Grails를 사용하고 있습니다) 인 sparql 쿼리 엔진으로 사용하고 있습니다. 현재 사용자 만 "선택"쿼리를 입력 할 수 있습니다 내가 사용Jena ARQ를 사용하여 선택, 설명 및 구성을위한 하나의 SPARQL 엔드 포인트

ResultSet results = qexec.execSelect(); 

쿼리를 실행하고 결과를 반환 할 수 있습니다. 그러나 이제는 사용자가 동일한 페이지의 설명 및 구문 쿼리를 백엔드로 보내길 원합니다. 이 스레드에서 언급 한 바와 같이 : Jena Sparql and construct, 우리는 백엔드에서

Model results = qexec.execConstruct() 

를 사용해야합니다. 그래서 내 질문에, 백엔드에서 쿼리 문자열을 선택 쿼리, 설명 쿼리 또는 생성 쿼리, 그래서 execSelect(), execDescribe() 또는 execConstruct() 선택할 수 있는지 알 수 있습니까? 프론트 엔드를 변경할 필요가 있습니까?

답변

2

Query class 쿼리의 종류를 알아내는 방법이 있습니다

if (qexec.getQuery().isSelectType()) { 
    ResultSet results = qexec.execSelect(); 
    // ... 
} else { 
    Model results = qexec.execConstruct(); 
    // ... 
} 

완료하기 위해, 당신은 아마뿐만 아니라 DESCRIBEASK을 처리해야합니다.

+0

작동합니다. 감사. – afterglowlee