8장 핵심 요약: RDF 스키마(RDFS)란?

2026. 4. 12. 01:18정리/책 정리

728x90
반응형

https://www.yes24.com/product/goods/104984379

 

온톨로지 과학자를 위한 지식그래프 | 딘 알레망 | 한빛아카데미 - 예스24

지능형 데이터의 출발점이제 데이터는 고객, 기업, 정부를 분석하고 이해하는 핵심 자산이다. 전 세계가 상호 연결되고 글로벌화됨에 따라 데이터는 어떤 개인이나 조직의 소유가 아닌 방대한

www.yes24.com

RDFSRDF의 스키마 언어로, RDF 데이터에 의미를 부여하고 추론을 가능하게 하는 표준입니다. RDF가 그래프 구조로 데이터를 모델링한다면, RDFS는 그 그래프를 체계적이고 의미 있게 사용하는 데 필요한 어휘(클래스, 속성, 관계 등)를 정의합니다.

RDFS의 가장 큰 특징:

  • 스키마 정보도 RDF 트리플로 표현된다 (스키마와 데이터가 같은 형식).
  • 의미는 추론 규칙으로 정의된다.
  • AAA 원칙(누구나 어디서나 어떤 말도 할 수 있다)을 그대로 따름.

8.1 스키마 언어와 기능

스키마의 역할:

  • 데이터에 의미를 부여
  • 데이터 통합을 돕고, 해석을 가능하게 함
  • RDF에서는 스키마가 추론 패턴을 통해 의미를 지정

RDFS의 강점:

  • 모든 스키마 정보가 RDF 트리플로 작성됨
  • SPARQL, SHACL, RDF 편집기, 링크드 데이터 등 기존 RDF 도구를 그대로 사용 가능

클래스 정의 기본:

turtle
 
:AllStarPlayer rdf:type rdfs:Class .
:Surgeon rdf:type rdfs:Class .

8.2 RDF 스키마 언어의 핵심 구성자

1. rdfs:subPropertyOf (관계 전파)

  • 한 속성이 다른 속성의 하위 속성임을 의미
  • 하위 속성으로 연결된 트리플은 상위 속성으로도 자동 추론됨

예제 (고용 관계):

turtle
 
:freeLancesTo rdfs:subPropertyOf :contractsTo .
:contractsTo rdfs:subPropertyOf :worksFor .
:isEmployedBy rdfs:subPropertyOf :worksFor .

→ Goldman이 :isEmployedBy :TheFirm 이라면, 자동으로 :worksFor :TheFirm 도 추론됨.

특징: 속성 간 계층 구조를 만들 수 있음 (구체적 → 일반적)

2. rdfs:domain과 rdfs:range (용도별 데이터 유형)

  • rdfs:domain: 속성을 사용할 때 주어(Subject)가 속해야 하는 클래스
  • rdfs:range: 속성을 사용할 때 목적어(Object)가 속해야 하는 클래스

추론 규칙:

  • ?x :p ?y 가 있고 :p rdfs:domain :D 라면 → ?x rdf:type :D 추론
  • ?x :p ?y 가 있고 :p rdfs:range :R 라면 → ?y rdf:type :R 추론

중요한 점:

  • RDFS는 유효성 검사를 하지 않음 (오류를 내지 않음)
  • 대신 추론을 통해 필요한 타입 정보를 자동으로 채움
  • OWL과 달리 부정(negation)이나 불일치 검사는 불가능

3. rdfs:subClassOf + domain/range 조합

이 조합이 RDFS에서 가장 강력하고 미묘한 부분입니다.

예제:

turtle
 
:MarriedWoman rdfs:subClassOf :Woman .
:hasMaidenName rdfs:domain :MarriedWoman .

:Karen :hasMaidenName "Smith" 라는 트리플 하나만으로도 → Karen은 :MarriedWoman 이고, 동시에 :Woman 임을 추론함.


8.3 RDFS 모델링 조합과 패턴

RDFS는 명시적인 Union, Intersection을 제공하지 않지만, 아래 패턴으로 근사할 수 있습니다.

패턴표현 방법추론 방향예시 의미
교집합 (C ⊆ A ∩ B) C를 A와 B의 subClassOf로 선언 한 방향 Surgeon ⊆ Staff ∩ Physician
합집합 (A ∪ B ⊆ C) A와 B를 C의 subClassOf로 선언 한 방향 MVP ∪ TopScorer ⊆ AllStarCandidate
속성 교집합 P를 R과 S의 subPropertyOf로 선언 한 방향 lodgedIn → billedFor + assignedTo
속성 합집합 P와 Q를 R의 subPropertyOf로 선언 한 방향 borrows + checkedOut → hasPossession
 

속성 전달 패턴 (가장 자주 사용):

turtle
 
:author rdfs:subPropertyOf dc:creator .

→ 기존 시스템의 author 속성을 더블린 코어 표준과 쉽게 연동 가능


8.4 도전 과제와 실전 패턴

주요 도전 과제 해결 패턴

  1. 용어 조정 (어휘 매핑)
    • 하위 집합 매핑 → subClassOf
    • 포개진 집합 → 합집합 패턴 (새로운 중간 클래스 사용)
    • 완전 동등 → 양방향 subClassOf
  2. 인스턴스 수준 데이터 통합
    • 여러 출처의 데이터를 하나의 클래스로 합침 (합집합 패턴)
  3. 읽기 쉬운 레이블
    turtle
    :personName rdfs:subPropertyOf rdfs:label .
    :movieTitle rdfs:subPropertyOf rdfs:label .
  4. 자동 분류 (Automatic Classification)
    • rdfs:domain을 활용해 데이터에 따라 클래스를 자동으로 부여
    • 예: maidenVoyage가 있으면 → DeployedVessel
    • nextDeparture가 있으면 → InServiceVessel
  5. 정의되지 않은 데이터 필터링
    • 특정 속성이 있는 데이터만 추출 (DepartingVessel 등)

8.5 정의역(domain)과 공역(range) 사용 시 주의점

  • 하나의 속성에 여러 domain/range를 선언할 수 있음
  • 여러 domain 선언 = 교집합으로 해석됨
  • 속성을 과도하게 병합하면 예상치 못한 터무니없는 추론이 발생할 수 있음 (예: QEII가 Person이 됨)

해결 전략:

  • 의미가 완전히 동일한 경우에만 직접 병합
  • 불확실하면 중립적인 상위 속성(cal:nextDeparture 등)을 만들어 사용

8.6 RDFS 비모델링 속성 (추론 없음)

  • rdfs:label: 사람이 읽을 수 있는 이름
  • rdfs:comment: 자연어 설명 (다국어 지원 가능)
  • rdfs:seeAlso: 관련 추가 정보 링크
  • rdfs:isDefinedBy: 해당 자원의 정의 출처 링크 (seeAlso의 하위 속성)

8장 마무리: RDFS의 본질

RDFS의 강점

  • 매우 간단한 구성자와 규칙만으로 강력한 추론 가능
  • 데이터와 스키마가 동일한 형식(RDF 트리플)
  • 분산된 정보 통합에 매우 효과적
  • subClassOfsubPropertyOf를 IF/THEN 규칙처럼 사용 가능

RDFS의 한계

  • 교집합·합집합을 명시적으로 지원하지 않음 (패턴으로 근사)
  • 부정·불일치 검사 불가능
  • 유효성 검사(validation)가 아니라 추론 중심

RDFS의 철학

“RDFS는 데이터를 검증하는 언어가 아니라, 데이터를 통해 새로운 지식을 발견하고 연결하는 언어다.”

728x90
반응형