G·Graph Daily Lab
DAY 57 / 100
내 학습 기록
DAY 57개념·실험RDFS·OWL과 추론

정의역과 치역의 추론

데이터베이스에 익숙하면 rdfs:range를 ‘허용 값 검사’로 읽기 쉽습니다. RDFS에서는 정반대로, 잘못된 값이 들어오면 거부 대신 엉뚱한 타입이 추론됩니다.

약 20분조작형 실험 확인 퀴즈
A SMALL DETOUR

이번 회차, 내 속도로.

기초를 더 짚거나 궁금한 주제로 잠깐 넓혀 보세요. 최대 3단계를 거쳐 DAY 57로 돌아옵니다.

난이도·관심 주제 고르기
이번 회차는 어느 속도로 볼까요?
더 살펴볼 주제 1~2개 선택

1/2개 선택 · 새 보충·심화 수업과 본과정 다시 읽기를 선택할 수 있어요.

이렇게 다녀와요 1단계 · 약 12분

  1. 출발 · DAY 57rdfs:domain·range
  2. 1. 관심 주제동일성 주장과 병합추가 23 · 새 추가 수업
  3. 복귀 · DAY 57원래 회차 이어가기
  • 동일성 주장과 병합 · DAY 59에서 OWL에 고유 이름 가정이 없다는 것을 배웠다면, 반대로 ‘같다’고 선언하는 owl:sameAs가 어떤 결론을 퍼뜨리는지 봅니다.

선택과 경로 기록은 이 브라우저에 저장됩니다. 본과정의 회차 완료와는 별도입니다.

복귀: DAY 57 → 본과정 다음 회차: DAY 58

핵심 개념

rdfs:domain은 어떤 속성을 쓰는 주어의 클래스를, rdfs:range는 그 속성의 목적어 클래스를 말합니다. 대응하는 RDFS 규칙은 rdfs2와 rdfs3입니다. rdfs2: aaa rdfs:domain xxx와 yyy aaa zzz가 있으면 yyy rdf:type xxx. rdfs3: aaa rdfs:range xxx와 yyy aaa zzz가 있으면 zzz rdf:type xxx. 둘 다 새 타입 트리플을 만드는 추론 규칙입니다.

그래서 :worksAt rdfs:range :Org가 선언된 그래프에 :지아 :worksAt :서울이 실수로 들어오면 오류가 나지 않고 :서울 a :Org가 추론됩니다. Krötzsch 등의 기술 논리 입문은 공리를 데이터베이스 제약으로 오해하는 것이 매우 흔한 모델링 오류라고 지적하고, OWL 2 Primer도 OWL은 어떤 정보가 반드시 있어야 한다고 강제하는 스키마 언어가 아니라고 설명합니다.

정의역을 여러 개 선언하면 합집합이 아니라 교집합이 됩니다. RDF Schema 1.1에 따르면 속성 P에 rdfs:domain이 여러 개 있을 때 주어는 선언된 모든 클래스의 인스턴스입니다. :worksAt rdfs:domain :Person, :Robot이라면 일하는 모든 주어가 사람이면서 로봇이 됩니다. Noy와 McGuinness는 정의역과 치역에 가장 일반적인 클래스 하나를 고르되 Thing처럼 지나치게 넓은 클래스는 피하라고 권합니다.

잘못된 값을 걸러 내는 일은 검증 도구의 몫입니다. 지금 있는 데이터를 규칙에 비추어 위반을 보고하는 SHACL(DAY 63)을 쓰거나, 도시와 조직을 owl:disjointWith로 서로소 선언해 :서울이 두 클래스에 동시에 속하는 순간 추론기가 비일관(inconsistency)을 보고하게 할 수 있습니다. 후자는 서울이 도시라는 사실이 이미 기록돼 있어야 작동한다는 한계가 있습니다.

rdfs:domain·range는 검증 규칙이 아니라 주어·목적어의 타입을 추론하는 규칙이므로, 잘못된 값은 오류 대신 엉뚱한 결론을 만듭니다.

작은 예제로 따라가기

01

선언: :worksAt rdfs:domain :Person ; rdfs:range :Org .

02

정상 사실 :민수 :worksAt :A연구소에서 rdfs2가 :민수 a :Person, rdfs3이 :A연구소 a :Org를 추론합니다.

03

오기입 :지아 :worksAt :서울에서는 :지아 a :Person과 함께 :서울 a :Org가 추론되고, 오류 메시지는 어디에도 나오지 않습니다.

직접 실험해 보기

‘정상’ 사실과 ‘목적어가 도시인 오기입’ 사실을 번갈아 골라, 추론 결과에 어떤 타입 트리플이 새로 생기는지 비교하고 엉뚱한 결론을 찾아 표시하세요.

LIVE EXPERIMENT · DOMAIN & RANGE

domain·range가 검증이 아니라 추론임을 확인하기

:worksAt rdfs:domain :Person .
:worksAt rdfs:range :Org .
:서울 a :City .
aworksAtaaPersonOrgCity민수지아한빛서울

실선 = 명시 · 점선 = 추론 · 주황 = 이상한 결론 · 한빛 = :한빛연구소

  1. :worksAt rdfs:domain :Person .명시
  2. :worksAt rdfs:range :Org .명시
  3. :서울 a :City .명시
  4. :민수 :worksAt :한빛연구소 .명시
  5. :민수 a :Person .추론 · rdfs2 · 1라운드근거: :worksAt rdfs:domain :Person + :민수 :worksAt :한빛연구소
  6. :한빛연구소 a :Org .추론 · rdfs3 · 1라운드근거: :worksAt rdfs:range :Org + :민수 :worksAt :한빛연구소
이상한 결론 없음정상 데이터에서는 domain·range가 빠진 타입을 채워 줍니다.

잘못된 입력을 오류로 잡으려면 닫힌 세계식 검증인 SHACL을 씁니다(DAY 63). OWL에서 :City와 :Org를 서로소(owl:disjointWith)로 선언하면 모순으로 드러납니다.

이번에는 직접 풀어 보세요

정답을 보기 전에 계산과 이유를 적어 보세요. 해설과 비교하고 확인 표시를 남기면 완료할 수 있습니다.

문제 1
힌트 보기

rdfs2는 주어에, rdfs3은 목적어에 타입을 붙입니다.

풀이와 비교하기

:수학 a :Teacher와 :민수 a :Course가 추론됩니다. 민수가 이미 :민수 a :Person으로 기록돼 있다면 :Person과 :Course를 owl:disjointWith로 선언해 추론기가 비일관을 보고하게 할 수 있습니다. 또는 SHACL로 ‘teaches의 주어에는 :Teacher 타입이 명시돼 있어야 한다’를 검사해 위반으로 드러냅니다.

풀이와 확인 표시는 이 브라우저에 저장됩니다.

YOUR NOTES

오늘 이해한 것과 다시 볼 것

계산이 달라진 이유, 헷갈린 개념, 다음에 확인할 질문을 남겨 보세요.

메모는 이 브라우저에 저장됩니다. 홈에서 전체 기록을 내려받을 수 있습니다.

오늘의 이해 확인

:worksAt rdfs:range :Org가 있는 그래프에 :지아 :worksAt :서울을 넣으면 RDFS 추론기는?

완료 조건: 확인 퀴즈 정답 · / 직접 풀기 0/1

FURTHER READING

더 깊이 읽기

예제와 실험 데이터는 이 과정을 위해 만든 것입니다. 원문은 선택 자료이며, 강의와 직접 풀기만으로도 다음 회차를 이어갈 수 있습니다.

RDF Schema 1.1W3CRDF 1.1 SemanticsW3CA Description Logic PrimerKrötzsch, Simančík & Horrocks (2012)

이 자료는 개념 학습용입니다. 실제 데이터베이스·라이브러리·플랫폼의 동작과 설정은 제품과 버전마다 다를 수 있습니다.