2026. 4. 19. 20:08ㆍ정리/책 정리
Ch13 OWL에서의 계산과 집합
12장에서 소개한 owl:Restriction은 속성 값을 조건으로 클래스를 기술하는 강력한 방법이다.
이 장에서는 OWL이 집합 이론을 완전하게 지원하여 표현력을 극대화하는 방법을 다룬다.
주요 내용은 다음과 같다:
- 합집합(union), 교집합(intersection), 여집합(complement)
- 출현 횟수(cardinality) 제약조건
- 열린 세계 가정 하에서 세계를 제한하는 방법 (열거, 제거, 서로소 등)
- 모순(contradiction)과 만족스럽지 않은 클래스(unsatisfiable class)
이러한 기능들은 제약조건과 결합되어 복잡한 비즈니스 규칙, 의존성, 구조적 관계를 정교하게 모델링할 수 있게 한다.
13.1 합집합과 교집합
OWL은 RDF 리스트를 이용해 클래스의 합집합과 교집합을 정의한다.
U1 a owl:Class ;
owl:unionOf ( :A :B ... ) .
I1 a owl:Class ;
owl:intersectionOf ( :A :B ... ) .
- unionOf: 나열된 모든 클래스의 원소를 포함하는 새로운 클래스
- intersectionOf: 모든 클래스에 동시에 속하는 원소만 포함하는 새로운 클래스
제약조건과 결합한 사용 예
:SolarPlanet a owl:Class ;
owl:intersectionOf (
:Planet
[ a owl:Restriction ;
owl:onProperty :orbits ;
owl:hasValue :TheSun ]
) .
:MajorLeagueBaseballPlayer a owl:Class ;
owl:intersectionOf (
:BaseballPlayer
[ a owl:Restriction ;
owl:onProperty :playsFor ;
owl:someValuesFrom :MajorLeagueTeam ]
) .
예제 13-1 우선순위가 높은 후보 질문
12장에서 정의한 EnabledQuestion과 HighPriorityQuestion을 결합:
:CandidateQuestion owl:equivalentClass
[ a owl:Class ;
owl:intersectionOf ( :EnabledQuestion :HighPriorityQuestion ) ] .
더 완화된 버전 (High 또는 Medium 우선순위):
:CandidateQuestion owl:equivalentClass
[ a owl:Class ;
owl:intersectionOf (
:EnabledQuestion
[ a owl:Class ;
owl:unionOf ( :HighPriorityQuestion :MediumPriorityQuestion ) ]
) ] .
13.2 세계를 제한하기
열린 세계 가정 때문에 여집합이나 출현 횟수 계산이 어려워진다.
OWL은 세계의 특정 부분을 제한적으로 기술하는 방법을 제공한다.
owl:oneOf — 클래스의 원소를 명시적으로 열거
:SolarPlanet a owl:Class ;
owl:oneOf ( :Mercury :Venus :Earth :Mars :Jupiter :Saturn :Uranus :Neptune ) .
- 열거된 원소만 클래스의 구성원이 된다.
- AAA 슬로건과 열린 세계 가정에 제한을 둔다.
owl:differentFrom — 두 개체가 다르다는 것을 명시
:Earth owl:differentFrom :Mars .
owl:AllDifferent + owl:distinctMembers — 여러 개체를 한 번에 구별
[ a owl:AllDifferent ;
owl:distinctMembers ( :EastOfEden :Giant :Rebel ) ] .
도전과제 13-1 ~ 13-2: 제거 과정 (James Dean 영화 예시)
록키가 랭보가 본 영화가 제임스 딘의 세 편 영화 중 하나라는 것을 알고,
“Giant”도 아니고 “East of Eden”도 아니라는 답을 듣고 “Rebel Without a Cause”라고 추론하는 과정:
owl:oneOf로 제임스 딘 영화 클래스 정의owl:differentFrom으로 후보 제거- 마지막에
owl:sameAs로 최종 영화 추론
13-3 출현 횟수 (Cardinality)
속성이 가질 수 있는 고유 값의 수를 제한한다.
[ a owl:Restriction ;
owl:onProperty :hasPlayer ;
owl:cardinality 9 ] # 정확히 9명
[ a owl:Restriction ;
owl:onProperty :hasPlayer ;
owl:minCardinality 10 ] # 최소 10명
[ a owl:Restriction ;
owl:onProperty :hasPlayer ;
owl:maxCardinality 2 ] # 최대 2명
도전과제 13-3: 3까지 세기
록키가 제임스 딘 영화만 소유하고 있으며 정확히 3편만 가지고 있다는 사실을 모델링 → FewMovieOwner 추론
도전과제 13-4: 정확히 3편
록키가 정확히 3편의 영화를 소유하고 있다는 사실을 모델링 → 모든 제임스 딘 영화를 소유하고 있음을 추론
OWL 2.0: Qualified Cardinality (조건이 붙은 출현 횟수)
일반 cardinality + 클래스 조건을 결합
예: “최소 2명의 오스카 수상 배우가 출연한 영화”
:StarStuddedMovie owl:intersectionOf (
:Movie
[ a owl:Restriction ;
owl:onProperty :stars ;
owl:onClass :OscarWinningActor ;
owl:minQualifiedCardinality 2 ]
) .
13.4 여집합 (Complement)
:MinorLeaguePlayer owl:complementOf :MajorLeaguePlayer .
주의: 단순 여집합은 너무 광범위해질 수 있다.
보통 교집합과 결합하여 사용한다.
:MinorLeaguePlayer owl:intersectionOf (
[ a owl:Class ; owl:complementOf :MajorLeaguePlayer ]
:Player
) .
13.5 서로소 (Disjoint)
:Reptile owl:disjointWith :Mammal .
owl:AllDisjointClasses — 여러 클래스를 한 번에 서로소로 지정
도전과제 13-5: 폴의 영화 소유 상황
폴이 제임스 딘 영화 전부를 소유하고 + 다른 영화도 소유 → 최소 4편 이상 소유 추론
13.6 전제조건의 재검토
- 전제조건 없음:
owl:cardinality 0으로 표현 →EnabledQuestion으로 추론 - 전제조건 계산: 정확한 개수 +
allValuesFrom결합 - someValuesFrom은 값의 존재를 보장하지만,
allValuesFrom은 그렇지 않다.
13.7 모순 (Contradictions)
모델 내 진술이 서로 충돌할 때 발생.
OWL은 모순을 감지할 수 있지만, 어느 진술이 잘못되었는지는 알려주지 않는다.
도전과제 13-7: 록키가 “제임스 딘 영화만 소유”하면서 동시에 “주디 갈랜드 영화도 소유”한다고 주장 → 모순 발생
13.8 만족스럽지 못한 클래스 (Unsatisfiable Class)
어떤 개체도 가질 수 없는 클래스 (빈 클래스).
- 만족스럽지 못한 클래스의 하위 클래스도 만족스럽지 못함
someValuesFrom제약조건도 만족스럽지 못함- 서로소 클래스의 교집합 등
13.9 클래스 관계의 추론
OWL은 클래스 간 관계도 자동으로 추론한다. 주요 패턴:
- 교집합 → 각 클래스의 하위 클래스
- 합집합 → 각 클래스의 상위 클래스
- 제약조건 간 전파 (someValuesFrom, allValuesFrom)
- hasValue와 subClassOf의 상호작용
- 출현 횟수 간 산술 관계
야구 모델 예시에서 명시적으로 거의 하위 클래스를 선언하지 않았음에도,
추론 엔진이 풍부한 클래스 계층 구조를 만들어 냄.
13.10 개체와 클래스를 통한 추론 (A-box vs T-box)
- A-box 추론: 개체(인스턴스)에 대한 구체적 결론 (예: 특정 선수가 특정 팀 소속)
- T-box 추론: 클래스 간 일반적 관계에 대한 결론 (예: AllStarBaseballPlayer는 BaseballPlayer의 하위 클래스)
두 가지를 함께 사용하면 일반 지식 + 특정 데이터를 강력하게 통합할 수 있다.
13.11 이 장을 마치며
OWL은 RDFS-Plus를 넘어 집합 연산, 출현 횟수, 세계 제한, 모순 감지까지 제공한다.
이 기능들은 모델 자체에 대한 추론(T-box)을 가능하게 하여,
데이터가 거의 없거나 전혀 없을 때도 의미 있는 결론을 도출할 수 있게 만든다.
주요 개념 요약
owl:unionOf,owl:intersectionOf,owl:complementOfowl:oneOf,owl:differentFrom,owl:AllDifferentowl:cardinality,minCardinality,maxCardinality(OWL 2.0: Qualified Cardinality)owl:disjointWith,owl:AllDisjointClasses- 모순(Contradiction)과 만족스럽지 않은 클래스(Unsatisfiable Class)
- 클래스 관계 추론 (하위/상위 클래스 전파)
'정리 > 책 정리' 카테고리의 다른 글
| Ch15 좋은 모델링과 나쁜 모델링 사례 요약 정리 (1) | 2026.04.25 |
|---|---|
| Ch14 웹에 있는 온톨로지 요약 정리 (0) | 2026.04.22 |
| 12장 OWL 기초 요약 정리 (1) | 2026.04.18 |
| 《당신이 옳다》 핵심 정리 (2) | 2026.04.17 |
| 11장 SKOS-RDFS-Plus 로 어휘 관리하기 요약 정리 (1) | 2026.04.16 |