Study/OWL,RDF 마이쮸(mychew__) 2014. 2. 19. 18:40
SPARQL Tutorial - Dataset URI : http://jena.apache.org/tutorials/sparql_datasets.html 이번 장에서는 Dataset에 대해 다룹니다. Dataset이란 쿼리문을 통해 검색하게 될 모델 파일을 뜻합니다. 이런 모델이 여태까지는 하나였지만 여러 개로 이루어질 수 있습니다. 자료를 가지고 있는 dataset을 특정 그래프(named graph)라고 부르고 특정 그래프들을 이어주는 역할을 하는 dataset이 초기 그래프(default graph)입니다. Querying datasets 기본적인 쿼리문을 실행했을 때, Dataset의 초기 그래프가 만들어 집니다. 이때 GRAPH라는 키워드로 변환이 가능합니다. GRAPH var { ... pat..
Study/OWL,RDF 마이쮸(mychew__) 2014. 2. 19. 17:16
SPARQL Tutorial - Alternatives in a Pattern 이번 챕터에서는 "UNION"이라는 쿼리문을 사용하는 법을 알려준다. UNION - two ways to the same data 이번에 예제로 사용하게 될 모델은 RDF형식이 아니다. 확장자가 ttl인 것으로 보아 이전에 언급했던 터틀형식의 문서입니다. @prefix foaf: . @prefix vcard: . _:a foaf:name "Matt Jones" . _:b foaf:name "Sarah Jones" . _:c vcard:FN "Becky Smith" . _:d vcard:FN "John Smith" . 이번 모델에서는 이름을 표기할 때 foaf와 vcard라는 두 가지의 NS를 사용하였습니다. 하지만 결론적으로 ..
Study/OWL,RDF 마이쮸(mychew__) 2014. 2. 18. 21:29
SPARQL Tutorial - Optional Information RDF는 semi-structured 데이터라서 스파클의 질의기능으로 값이 없는 부분을 검색했을때 공백으로 나오게 하는 기능을 설명하는 것 같습니다. vc-db-2.rdf파일에 나이가 추가되었다고 했는데 4명중에 2명만 age 속성이 추가되었고 나머지 2명은 age속성이 없습니다. 이때 쿼리문으로 전체 사람의 정보를 불러온다면 어떻게 될까요? PREFIX info: PREFIX vcard: SELECT ?name ?age WHERE { ?person vcard:FN ?name . OPTIONAL { ?person info:age ?age } } 위와 같은 쿼리를 실행합니다 . 찾는 값은 ?name과 ?age입니다. 조건절을 보면 nam..
Study/OWL,RDF 마이쮸(mychew__) 2014. 2. 18. 19:09
공식 홈페이지 메뉴얼 URL = http://jena.apache.org/tutorials/sparql_filters.html SPARQL Tutorial - Filters 이번 장에서는 결과값들을 어떻게 제한하는지에 대해 알아봅니다. 여러 가지 다양한 방법으로 비교할 수 있지만 두 가지만 설명합니다. String Matching 스파클은 정해진 표현에 기반을 둔 문자열을 테스트할 수 있는 연산자를 제공합니다. SQL에서 "LIKE"와 같은 형식으로 사용됩니다. 사용법은 다음과 같습니다. FILTER regex(?x, "pattern" [, "flags"]) 위와 같은 문법을 사용하면 ?x라는 리소스에 "pattern"이라는 문자열이 있는 것만 찾아냅니다. "flags"는 옵션으로 사용되는데 "i"값이 ..
Study/OWL,RDF 마이쮸(mychew__) 2014. 2. 18. 18:28
SPARQL Tutorial - Basic Patterns 이번 챕터에서는 스파클 쿼리를 구성하고있는 기본적인 요소에 대해 알아봅니다. Solutions 이전 시간에는 ?x 라는 변수를 사용하여 "John Smith"를 FN값으로 갖는 리소스를 검색했습니다. 이번에는 단순 URI정보만 가져오는 리소스 말고 좀 더 원하는 값을 가져오도록 쿼리문을 만들어 봅시다. 솔직히 기본 URI만 검색하면 그다지 쓸 일이 없을 것 같습니다. 실질적으로 검색하고자 하는 것은 누군가의 이름이나 그에 해당하는 "값"이 필요하지요. 다음 쿼리문을 봅시다. SELECT ?x ?fname WHERE {?x ?fname} 지난 시간에 SELECT에는 subject만 들어간다고 설명했는데 아니었나 봅니다. 그때는 ?x만 사용되어서 s..
Study/OWL,RDF 마이쮸(mychew__) 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 "John Smith" } 예제 쿼리는 위와 같습니다. SQL쿼리와 비교했을때 뭔가 비슷하지만 조금 다릅니다. 검색하려는 것은 변수 ?x입니다. ?는 변수라는 뜻으로 사용됩니다. x를 찾는데 x는 과 "John Smith"과 연관이 있어야 하나봅니다. 아직 어떤 뜻인지는 구체적으로 알지 못하겠습니다. 위 쿼리를 실행하면 다음과 같은 결과가 나옵니다. | x | ====..
Study/OWL,RDF 마이쮸(mychew__) 2014. 2. 18. 15:05
저장된 온톨로지에 쿼리문을 실행하기위해 sparQL을 사용합니다. 하지만 한국어로된 sparQL관련 자료가 매우 부족한게 현실입니다. SQL 쿼리는 책이 많은데 sparQL관련은 적네요. 아마 RDF파일에 쿼리문을 실행하는 것이라 사용빈도가 적은것 같습니다. 전문적으로는 많이 사용하지만요. jena API는 실질적인 코딩부분이라 코딩할 때 참고하면서 보면 되니까 대충 보고 넘어갔지만 왠지 sparQL은 꼼꼼히 공부해야 할 것 같다는 느낌이 들었습니다. 그래서 sparQL에대해서 자세히 보고 넘어 가기로 했습니다. 일단 jena.apache에서 제공하는 sparQL tutorial 주소입니다. http://jena.apache.org/tutorials/sparql.html 이번 포스팅부터 한 챕터씩 공부해..