Skip to content

SPARQL & 온톨로지

ThinkERD는 ERD 구조를 온톨로지(RDFS/OWL)**로 실시간 변환하여 **SPARQL 쿼리로 의미적 분석을 수행할 수 있습니다.

개요

일반 SQL이 "데이터를 어떻게 저장할 것인가"에 집중한다면, SPARQL은 "데이터 간의 **관계와 의미**를 어떻게 탐색할 것인가"에 집중합니다.

graph LR
    ERD["📊 ERD 모델"] -->|"R2RML 변환"| OWL["🌐 RDFS/OWL"]
    OWL -->|"로드"| OX["🔍 Oxigraph Wasm"]
    OX -->|"SPARQL 질의"| R["📋 결과"]

    style ERD fill:#e0f2fe,stroke:#0284c7
    style OWL fill:#f3e8ff,stroke:#9333ea
    style OX fill:#fef3c7,stroke:#d97706

ERD → 온톨로지 매핑

ERD의 구조 요소가 자동으로 온톨로지 개념으로 변환됩니다:

ERD 온톨로지 설명
엔터티 owl:Class 클래스 정의
컬럼 owl:DatatypeProperty 데이터 속성
PK owl:FunctionalProperty 함수적 속성
관계 (FK) owl:ObjectProperty 객체 속성
서브타입 rdfs:subClassOf 클래스 상속

SPARQL Scratchpad 사용

Data Lab에서 SPARQL 탭을 선택하면 SPARQL 에디터가 열립니다.

예시 쿼리

# 모든 클래스(엔터티) 조회
SELECT ?class ?label WHERE {
  ?class a owl:Class .
  ?class rdfs:label ?label .
}

# 특정 엔터티의 속성 조회
SELECT ?prop ?label ?type WHERE {
  ?prop rdfs:domain <#고객> .
  ?prop rdfs:label ?label .
  ?prop rdfs:range ?type .
}

# 관계(FK)로 연결된 엔터티 쌍
SELECT ?source ?target WHERE {
  ?rel a owl:ObjectProperty .
  ?rel rdfs:domain ?source .
  ?rel rdfs:range ?target .
}

Model Explorer

글로벌 우측 인스펙터 패널의 **Model Explorer**에서 현재 다이어그램의 온톨로지 구조를 **트리 형태**로 탐색할 수 있습니다.

  • 클래스(엔터티) 계층 구조 확인
  • 속성(컬럼) 목록 확인
  • 관계(FK) 구조 확인
  • SPARQL 쿼리 작성 시 **어휘 참조**로 활용

기술 스택

구성 요소 설명
Oxigraph Wasm 브라우저 내 RDF 트리플 스토어
R2RML ERD → RDF 실시간 변환 엔진
SPARQL 1.1 W3C 표준 쿼리 언어 지원