12장 OWL 기초 요약 정리
2026. 4. 18. 17:38ㆍ정리/책 정리
728x90
반응형
12장 OWL의 제약조건 (Restrictions)
12.1 제약조건의 필요성과 기본 개념
RDFS-Plus만으로는 복잡한 관계를 충분히 표현하기 어렵다. 예를 들어 “Major League Team에서 뛰는 선수(MajorLeaguePlayer)”처럼, 기존 클래스와 속성을 조합하여 새로운 클래스를 정의해야 하는 상황이 많다.
OWL은 owl:Restriction이라는 구성자를 통해 이를 해결한다.
- owl:Restriction은 특별한 종류의 클래스이다. (owl:Restriction rdfs:subClassOf owl:Class)
- 기존에 정의된 속성과 클래스를 이용해 새로운 클래스의 구성원을 정확하게 제한한다.
- 이를 통해 분산된 정보를 통합하고, 자동 추론을 강화할 수 있다.
제약조건 클래스의 특징
- 클래스의 원소를 속성 값 조건으로 기술한다.
- 대부분 익명 클래스(unnamed/anonymous class) 형태로 사용된다.
- owl:onProperty로 제약을 적용할 속성을 지정한다.
제약조건의 세 가지 주요 유형
- owl:someValuesFrom
- 의미: 속성 P의 값 중 하나 이상이 클래스 C에 속한다.
- 예: “playsFor 속성 값 중 하나 이상이 AllStarTeam인 선수”
- 사용 예시:
text
[ a owl:Restriction ; owl:onProperty :playsFor ; owl:someValuesFrom :AllStarTeam ]
- owl:allValuesFrom
- 의미: 속성 P의 모든 값이 클래스 C에 속한다.
- 예: “eats 속성의 모든 값이 VegetarianFood인 사람”
- 사용 예시:
text
[ a owl:Restriction ; owl:onProperty :eats ; owl:allValuesFrom :VegetarianFood ]
- owl:hasValue
- 의미: 속성 P의 값이 특정 개체 A와 정확히 일치한다.
- someValuesFrom의 특수한 경우이지만, 매우 자주 사용되어 별도로 정의됨.
- 예: “hasPriority 값이 정확히 High인 항목”
공통 요소: owl:onProperty — 제약 조건이 적용되는 속성을 지정한다.
예제: 설문지(Questionnaire) 모델링
기본 구조
- q:Question 클래스와 q:Answer 클래스
- q:hasOption 속성: 질문이 가질 수 있는 답변 옵션
- q:hasSelectedOption 속성: 사용자가 실제로 선택한 답변 (hasOption의 하위 속성)
주요 적용 사례
- AnsweredQuestion (이미 답변한 질문)
text
q:AnsweredQuestion owl:equivalentClass [ a owl:Restriction ; owl:onProperty q:hasSelectedOption ; owl:someValuesFrom q:Answer ] . - EnabledQuestion (현재 응답 가능한 질문)
- 특정 답변이 선택되면 다음 질문이 활성화됨 (enablesCandidate 속성 사용)
- allValuesFrom을 활용해 선택된 답변(SelectedAnswer)만이 후보 질문을 활성화하도록 제약
- 우선순위 질문 (HighPriorityItem 등)
text
q:HighPriorityItem owl:equivalentClass [ a owl:Restriction ; owl:onProperty q:hasPriority ; owl:hasValue q:High ] .
12.2 도전과제와 솔루션
도전과제 12-2: 로컬 공역 제약 (채식주의자 모델링)
- 문제: rdfs:range를 사용하면 의도하지 않은 추론 발생 (Maverick이 Vegetarian이 되고 Steak이 VegetarianFood가 됨)
- 해결: allValuesFrom + rdfs:subClassOf 조합
text
:Vegetarian rdfs:subClassOf [ a owl:Restriction ; owl:onProperty :eats ; owl:allValuesFrom :VegetarianFood ] .
도전과제 12-3 ~ 12-4: 테이블 데이터에서 유형 자동 분류
- 테이블의 특정 열 값을 기준으로 개체의 rdf:type을 자동으로 추론
- 해결: owl:hasValue 제약조건 + owl:equivalentClass 사용
도전과제 12-5: Class-Individual Mirror 패턴
- 클래스와 개체를 양방향으로 동기화하는 강력한 패턴
- 예: 특정 그룹의 구성원 ↔ 해당 그룹을 가리키는 클래스
도전과제 12-6: 관계 전이 (FOAF membershipClass)
- foaf:member와 membershipClass 간 관계를 OWL만으로 표현
- 해결: owl:inverseOf + owl:hasValue 제약조건
12.3 제약조건에 대한 대체 설명
- rdfs:subClassOf: 필요조건 (Necessary Condition)
- owl:equivalentClass: 필요충분조건 (Necessary and Sufficient Condition)
- 전통적으로 사용되던 “부분적 정의”, “완전한 정의”, “필요”, “충분” 등의 용어보다는 rdfs:subClassOf와 owl:equivalentClass를 직접 사용하는 것을 권장한다.
12.4 이 장을 마치며 — 주요 개념 정리
- owl:Restriction: OWL의 핵심 확장 기능. 속성 값 조건으로 클래스를 정의한다.
- owl:onProperty: 제약을 적용할 속성 지정
- owl:someValuesFrom: 속성 값 중 최소 하나
- owl:allValuesFrom: 속성의 모든 값
- owl:hasValue: 속성 값이 특정 개체와 정확히 일치
OWL 제약조건의 강점
- RDFS-Plus보다 정교한 의미 표현 가능
- 분산된 정보의 통합과 자동 추론 강화
- 복잡한 비즈니스 규칙, 의존성, 전제조건 등을 모델링할 수 있음
728x90
반응형
'정리 > 책 정리' 카테고리의 다른 글
| Ch14 웹에 있는 온톨로지 요약 정리 (0) | 2026.04.22 |
|---|---|
| Ch13 OWL에서의 계산과 집합 정리 (0) | 2026.04.19 |
| 《당신이 옳다》 핵심 정리 (2) | 2026.04.17 |
| 11장 SKOS-RDFS-Plus 로 어휘 관리하기 요약 정리 (1) | 2026.04.16 |
| 시맨틱 데이터 모형화 요약 정리 (0) | 2026.04.15 |