스파클 사용하기 SPARQL Tutorial - A First SPARQL Query
- Study/OWL,RDF
- 2014. 2. 18. 17:03
공식 메뉴얼 주소 = http://jena.apache.org/tutorials/sparql_query1.html
SPARQL Tutorial - A First SPARQL Query
간단한 예제 쿼리를 실행해보고 jena에서 어떻게 실행되는지 살펴본다.
A "hello world" of queries
SELECT ?x WHERE { ?x <http://www.w3.org/2001/vcard-rdf/3.0#FN> "John Smith" }
예제 쿼리는 위와 같습니다. SQL쿼리와 비교했을때 뭔가 비슷하지만 조금 다릅니다. 검색하려는 것은 변수 ?x입니다. ?는 변수라는 뜻으로 사용됩니다. x를 찾는데 x는 <http://www.w3.org/2001/vcard-rdf/3.0#FN>과 "John Smith"과 연관이 있어야 하나봅니다. 아직 어떤 뜻인지는 구체적으로 알지 못하겠습니다. 위 쿼리를 실행하면 다음과 같은 결과가 나옵니다.
| x | ================================= | <http://somewhere/JohnSmith/> | ---------------------------------
x라는 값은 <http://somewhere/JohnSmith/>라는 군요. 아마 x는 리소스를 검색하는 것 같습니다. 리소스이지만 조건으로 <http://www.w3.org/2001/vcard-rdf/3.0#FN>이라는 속성의 값이 "John Smith"인 리소스를 검색한 것 같습니다. 아직까지는 추측이죠. 스파클 문법을 모르니..
아래 설명을 보니 스파클에서 검색하고자 하는 변수는 트리플에서 subject로 고정되어 있다고 합니다. 즉 SELECT할 수 있는 것은 화살표가 나오는 리소스, 화살표가 시작하는 지점입니다. 그리고 조건절에는 predicate와 object, 화살표의 속성과 화살표가 가리키는 대상을 적을 수 있습니다. 그리고 SELECT에는 단순히 subject만 적을 수 있는 것이 아니라 여러가지 조건을 적을 수 있지만 여기서는 단순히 ?x라고 subject만 적었습니다.
대충 쿼리에 대해 알고 다시 위에 쿼리를 보니 제 추측이 맞는것 같습니다. <http://www.w3.org/2001/vcard-rdf/3.0#FN>라는 predicate의 value가 "John Smith"인 리소스를 찾는 쿼리문이네요.
이제 이 쿼리문을 실행해 보도록 하겠습니다. 일단 두개의 파일이 필요합니다. 사용할 RDF파일과 쿼리문이 있는 쿼리 파일입니다.
윈도우에서 명령 프롬프트창을 통해 실행시키게 됩니다. 실행 시키기전에 환경 설정이 필요합니다. 일단 환경변수등록을 통해 jena폴더가 설치된 경로로 가서 bat 폴더와 bin 폴더를 추가합니다. 그리고 다음과 같은 명령어를 입력합니다.
SET JENAROOT=JENA가 설치된 폴더 경로
SET PATH=%PATH%;%JENAROOT%\bat
set ARQROOT=c:\jena설치경로\bat\ARQ
위 3개의 코드를 입력하셨다면 jena설치 경로로 이동한다음 다음 명령어를 치시면 쿼리문이 실행됩니다.
bat\sparql.bat --data=doc\Tutorial\vc-db-1.rdf --query=doc\Tutorial\q1.rq
jena 폴더의 tutorial\RDQL\에 가시면 vc-db-1.rdf파일은 있지만 q1.rq파일은 없음니다. 위에 다운받으신 파일을 해당 경로에 집어넣고 실행해주세요. 저는 실행해볼때 위에 파일을 못구해서 vc-q1파일을 수정해서 만들어서 위와같이 명령어를 수정했습니다.
정확히 따라하셨다면 위와같은 결과가 나오게 됩니다. 뭔가 문제가 생기셨다면 왜 문제가 생겼는지 명령 프롬프트에 나오기 때문에 보시고 수정하시면 될 것 같습니다.
자 이렇게 간단한 스파클 쿼리를 명령프롬프트창을 통해 실행해봤습니다. 스파클 쿼리의 구조도 아주 간단하게 살펴 보았구요. 다음은 Basic Patterns 챕터로 포스팅 하도록 하겠습니다~!
'Study > OWL,RDF' 카테고리의 다른 글
스파클 사용하기 SPARQL Tutorial - Filters (2) | 2014.02.18 |
---|---|
스파클 사용하기 SPARQL Tutorial - Basic Patterns (0) | 2014.02.18 |
스파클 사용하기 sparQL tutorial - Data Formats (0) | 2014.02.18 |
Reasoners and rule engines: Jena, 온톨로지 추론기능 구현 (2) | 2014.02.17 |
Jena Ontology API (2) (0) | 2014.02.14 |