30분
SPARQL 심화: CONSTRUCT, ASK, 집계
SPARQL 쿼리 언어
SPARQL 심화: CONSTRUCT, ASK, 집계
온톨로지 & 시맨틱웹 > SPARQL 쿼리 언어
학습 목표
CONSTRUCT와 ASK 쿼리를 적절한 상황에서 사용할 수 있다 GROUP BY와 집계 함수를 사용한 분석 쿼리를 작성할 수 있다 Federated Query(SERVICE)의 개념과 활용을 이해한다
SELECT 너머의 SPARQL — 4가지 쿼리 형태
학습 목표
- SPARQL의 4가지 쿼리 형태(SELECT, CONSTRUCT, ASK, DESCRIBE)를 구분한다
- GROUP BY, HAVING, 집계 함수를 사용할 수 있다
- 서브쿼리와 Federated Query(SERVICE)를 이해한다
SPARQL 4가지 쿼리 형태
| 형태 | 반환 타입 | 용도 |
|---|---|---|
| SELECT | 바인딩 테이블 | 데이터 조회 (가장 일반적) |
| CONSTRUCT | RDF 그래프 | 새 트리플 생성, 데이터 변환 |
| ASK | boolean (true/false) | 존재 여부 확인 |
| DESCRIBE | RDF 그래프 | 리소스의 모든 정보 |
1. CONSTRUCT — 새 RDF 그래프 생성
에디터 로딩 중...
용도:
- 온톨로지 간 데이터 변환 (foaf → schema.org)
- 기존 데이터에서 요약 그래프 추출
- RDF 데이터 정제/변환 파이프라인
2. ASK — 존재 여부 확인
에디터 로딩 중...
3. DESCRIBE — 리소스 설명
에디터 로딩 중...
4. 집계 함수 (Aggregation)
에디터 로딩 중...
5. 서브쿼리 (Subquery)
에디터 로딩 중...
6. Federated Query (SERVICE)
에디터 로딩 중...
Federated Query의 핵심:
- 여러 SPARQL 엔드포인트에 동시에 쿼리
- 로컬 데이터와 외부 데이터를 JOIN
- SQL에서는 불가능한 RDF/SPARQL 고유 기능!
7. SPARQL Update (INSERT/DELETE)
에디터 로딩 중...
집계 함수 정리표
| 함수 | 설명 | SQL 대응 |
|---|---|---|
| COUNT | 개수 | COUNT |
| SUM | 합계 | SUM |
| AVG | 평균 | AVG |
| MIN | 최소 | MIN |
| MAX | 최대 | MAX |
| GROUP_CONCAT | 문자열 연결 | GROUP_CONCAT / STRING_AGG |
| SAMPLE | 임의 1개 | (없음) |
핵심 정리
SPARQL은 SELECT 외에 CONSTRUCT(변환), ASK(존재확인), DESCRIBE(설명)를 제공합니다. 집계, 서브쿼리, Federated Query(SERVICE)로 강력한 분석이 가능합니다.
📖 심화 읽기: 이강배 외, "지식그래프", 유원북스, 2025 — 5장 SPARQL 심화
핵심 포인트
- • 4가지 쿼리 형태: SELECT(테이블), CONSTRUCT(그래프), ASK(불린), DESCRIBE(설명)
- • CONSTRUCT: 기존 트리플에서 새로운 형태의 RDF 그래프 생성 (온톨로지 변환)
- • 집계: COUNT, AVG, SUM, GROUP_CONCAT + GROUP BY/HAVING
- • SERVICE (Federated Query): 여러 SPARQL 엔드포인트 연합 쿼리 — RDF 고유 강점
- • SPARQL Update: INSERT DATA, DELETE DATA, 조건부 INSERT/DELETE