G·Graph Daily Lab 전체 140회
추가 24 / 40 · 심화 · 약 15분

기술 논리: 클래스 표현 ∃·∀

∃와 ∀로 클래스를 정의해 보고, 전칭 제한이 왜 흔한 모델링 실수의 원인인지 물류 예로 확인합니다.

RDFS·OWL과 추론

배운 뒤 돌아올 회차

DAY 57에서 정의역·치역이 추론 규칙이라는 것을 봤다면, 그 규칙을 OWL의 형식 기반인 기술 논리의 ∃·∀ 표현으로 다시 읽어 봅니다.

시작하면 직접 풀기와 퀴즈 기록이 저장됩니다. 본과정 100회 진도와는 별도입니다.

이번에 더 배울 것

기술 논리(description logic)는 개념(OWL의 클래스), 역할(속성), 개체 이름으로 공리를 쓰는 논리 계열이며 OWL 2 DL의 형식 기반입니다. 기호로 ⊑는 포함(하위 클래스), ≡는 동치, ⊓는 교집합입니다. 존재 제한 ∃r.C는 r 관계로 C의 인스턴스와 적어도 하나 연결된 개체들의 집합입니다. Parent ≡ ∃parentOf.⊤는 ‘누군가의 부모인 개체’를 정의하며, OWL에서는 owl:someValuesFrom, Manchester 문법에서는 ‘hasChild some Person’으로 씁니다.

전칭 제한 ∀r.C는 r로 연결된 모든 대상이 C인 개체들의 집합입니다. 여기에는 연결이 하나도 없는 개체도 포함됩니다. Krötzsch 등의 입문서는 ∀parentOf.Female에 자녀가 없는 사람도 속한다는 사실을 잊는 것이 흔한 오류라고 지적하고, OWL 2 Primer도 ‘자녀가 모두 행복한 사람’을 이렇게 정의하면 자녀가 없는 사람이 모두 행복한 사람으로 분류된다고 설명합니다. 의도가 ‘자녀가 있고 모두 여성’이라면 (∃parentOf.⊤) ⊓ (∀parentOf.Female)로 씁니다.

정의역과 치역도 이 표현으로 쓸 수 있습니다. ∃sonOf.⊤ ⊑ Male은 sonOf의 주어가 남성이라는 정의역, ⊤ ⊑ ∀sonOf.Parent는 목적어가 부모라는 치역입니다. sonOf(john, julia)가 있으면 존은 남성, 줄리아는 부모로 추론됩니다. 같은 문장을 데이터베이스 제약으로 쓰면 위반 오류가 나지만 기술 논리에서는 결론이 나옵니다. 열린 세계이므로 ∃ 공리가 있어도 ‘연결이 기록되지 않았다’는 사실이 위반으로 보고되지 않는다는 점도 기억해야 합니다.

작은 예제로 따라가기

1

DelayedShipment ≡ Shipment ⊓ ∃hasDelayEvent.⊤: 지연 이벤트가 하나라도 연결된 배송은 지연 배송으로 분류됩니다.

2

ColdChainShipment ⊑ ∀carriedBy.RefrigeratedTruck: 냉장 배송을 나르는 트럭은 모두 냉장 트럭이며, 타입을 모르는 트럭 T-1이 냉장 배송을 나르면 T-1이 냉장 트럭으로 추론됩니다.

3

트럭 배정이 없는 냉장 배송 S-9도 ∀ 조건과 충돌하지 않습니다. ‘트럭이 반드시 있어야 한다’는 ∃carriedBy.⊤를 더해야 하고, 그래도 배정 기록이 없다는 사실은 열린 세계에서 위반이 아니므로 SHACL로 검사합니다.

COMPARE & EXPLAIN

∀ 공리는 무엇을 만들까

S가 ColdChainShipment로 선언돼 있고 ColdChainShipment ⊑ ∀carriedBy.RefrigeratedTruck일 때, 각 상황에서 추론기가 무엇을 내놓을지 먼저 예상하세요.

T-1이 RefrigeratedTruck으로 추론됩니다.

S의 carriedBy 대상은 모두 냉장 트럭이어야 하므로, 오류 대신 T-1의 타입이 추가됩니다.

∃r.C는 ‘적어도 하나’, ∀r.C는 ‘연결된 것이 있다면 모두’이므로, 전칭 제한만으로는 연결의 존재를 요구하지 못합니다.

학습을 시작하면 새 문제를 직접 풀고 확인 퀴즈를 마친 뒤 선택한 본과정 회차로 돌아갑니다.