SPARQL Introduce

 SPARQL 이란?

  • SPARQL(Simple Protocol and RDF Query Language)은 온톨로지 질의(Query) 언어
  • SPARQL은 크게 PREFIX, {SELECT, ASK, DESCRIBE, CONSTRUCT}, WHERE로 구성
  • PREFIX는 일반 데이터베이스에서 데이터베이스 선택과 비슷한 의미로써 사용할 데이터 셋을 지정할 때 사용

 SPARQL 질의 구성

  • BASE 정의부(선택사항), PREFIX 정의부, SELECT 파트, WHERE 절, LIMIT 절, OFFSET 절
  • 변수 : '?'을 변수명 앞에 붙여 선언 예) ?x
  • PREFIX : URL을 별칭으로 지정
  • SELECT : SPARQL Query 결과를 표현, 변수명이 위치
    • DISTINCT : 중복되는 결과는 제거하고 표현
    • WHERE : Query 하고자 하는 조건이 위치
    • '{' 로 시작해서 '}' 으로 조건절의 끝을 표현
    • Triple 구조로 표현 주어 술어 목적어로 표현하며 공백으로 분리
    • Triple 끝은 '.'으로 표시
    • Triple에는 URL이나 PREFIX:영문명, 변수가 위치
  • ORDER BY : Query 결과의 순서를 지정
  • LIMIT : Query 결과를 출력할때 몇 건을 보여줄 것 인지 지정
  • OFFSET : Query 결과를 몇 번째부터 출력할 것인지 지정.(결과가 많을 경우)

 SPARQL 예제

충북지역 고혈압 환자와 연관된 통계청 사망원인 데이터

				
		
		SELECT ?patient ?kosta
		FROM <http://data.mohw.kr/mohw>
		WHERE {
		  {
		  ?patient <http://www.w3.org/2003/01/geo/wgs84_pos#area> '충북'.
		  ?kosta <http://data.mohw.kr/ontology/relatedpatientData> ?patient.
		  ?patient <http://data.mohw.kr/ontology/relatedDisease> <http://data.mohw.kr/resource/Disease/I100>.
		  }
		  UNION  {
		  ?patient <http://www.w3.org/2003/01/geo/wgs84_pos#area> '충북'.
		  ?kosta <http://data.mohw.kr/ontology/relatedpatientData> ?patient.
		  ?patient <http://data.mohw.kr/ontology/relatedDisease> <http://data.mohw.kr/resource/Disease/I109>.
		  }
		  UNION  {
		  ?patient <http://www.w3.org/2003/01/geo/wgs84_pos#area> '충북'.
		  ?kosta <http://data.mohw.kr/ontology/relatedpatientData> ?patient.
		  ?patient <http://data.mohw.kr/ontology/relatedDisease> <http://data.mohw.kr/resource/Disease/G932>.
		  }
		 }
		}
		
				
			

결과

cnt kosta
http://data.mohw.kr/resource/PatientData/1324424 http://data.mohw.kr/resource/KostatData/KostatData_3312249
http://data.mohw.kr/resource/PatientData/1324424 http://data.mohw.kr/resource/KostatData/KostatData_3441890
http://data.mohw.kr/resource/PatientData/1324424 http://data.mohw.kr/resource/KostatData/KostatData_3513801
http://data.mohw.kr/resource/PatientData/1324424 http://data.mohw.kr/resource/KostatData/KostatData_3555334
http://data.mohw.kr/resource/PatientData/1324424 http://data.mohw.kr/resource/KostatData/KostatData_3194040
http://data.mohw.kr/resource/PatientData/1324424 http://data.mohw.kr/resource/KostatData/KostatData_3210933
http://data.mohw.kr/resource/PatientData/1324424 http://data.mohw.kr/resource/KostatData/KostatData_2811548
http://data.mohw.kr/resource/PatientData/1324424 http://data.mohw.kr/resource/KostatData/KostatData_2678017
http://data.mohw.kr/resource/PatientData/1324424 http://data.mohw.kr/resource/KostatData/KostatData_2091476
http://data.mohw.kr/resource/PatientData/1324424 http://data.mohw.kr/resource/KostatData/KostatData_3072625