🦉

OWL 자동 추론 시연

사람이 *규칙*과 *사실*을 적으면 → 컴퓨터가 새 사실을 자동으로 끌어냅니다

👇 아래 두 박스(ONTOLOGY · ASSERTED)는 사람이 적은 입력입니다. "▶ RUN REASONER" 버튼을 누르면, 입력에서 *논리적으로 따라나오는* 새 사실들이 INFERRED 박스에 자동으로 채워집니다.

ONTOLOGY OWL 규칙 — 카테고리·관계의 *법*

사람이 적음
= subClassOf · ≡⁻¹ = inverseOf · a = rdf:type

ASSERTED 실제 데이터 사실

사람이 적음
예시: 한옥 3채 + 일반 건물 1채. 입력은 *최소한*만.

INFERRED 컴퓨터가 자동 도출한 새 사실

아직 안 돌림
"▶ RUN REASONER" 버튼을 눌러보세요.

이 시연이 적용하는 5가지 추론 룰

R1: subClassOf 전파
x가 A의 인스턴스, A ⊑ B → x는 B의 인스턴스
"민수는 한옥의 인스턴스, 한옥 ⊑ 건물 → 민수는 건물"
R3: domain 추론
x의 P 속성 값이 y, P.domain = D → x는 D의 인스턴스
"X가 hasStructure가 있고 hasStructure는 Building에서만 → X는 Building"
R4: inverseOf
P ≡⁻¹ Q, x P y → y Q x
"민수가 학교에 다닌다 ↔ 학교에 민수가 다닌다"
R5: 대칭성(Symmetric)
P가 대칭, x P y → y P x
"A가 B 옆이면 B도 A 옆이다"
반복(Fixpoint)
위 룰들을 반복 적용. 더 이상 새 사실이 나오지 않으면 *수렴*. 단순한 알고리즘이지만, 큰 ontology에서도 *모든 함의*를 빠뜨리지 않고 도출.
이 시연은 OWL의 핵심 5룰만 forward-chaining으로 구현한 *축소판*입니다.
실제 OWL DL reasoner (HermiT · Pellet · ELK)는 owl:sameAs, owl:disjointWith, cardinality 제약 등 훨씬 많은 추론을 지원하고, 모순(unsatisfiable class) 자동 검출까지 합니다.
하지만 *동작 원리는 동일* — "사람이 규칙 적으면 컴퓨터가 따라온다."