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 |