Ch13 OWL에서의 계산과 집합 정리

2026. 4. 19. 20:08정리/책 정리

728x90
반응형

 

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장에서 정의한 EnabledQuestionHighPriorityQuestion을 결합:

: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:complementOf
  • owl:oneOf, owl:differentFrom, owl:AllDifferent
  • owl:cardinality, minCardinality, maxCardinality (OWL 2.0: Qualified Cardinality)
  • owl:disjointWith, owl:AllDisjointClasses
  • 모순(Contradiction)과 만족스럽지 않은 클래스(Unsatisfiable Class)
  • 클래스 관계 추론 (하위/상위 클래스 전파)
728x90
반응형