학 습 목 표
- 경직성 메타속성으로 클래스를 본질과 역할로 가른다.
- "경직적 클래스는 반경직적 클래스의 하위가 될 수 없다"는 제약으로 계층을 진단한다.
- 역할 분리 기법으로 위반을 수정한다.
포함 판별 질문이 놓치는 것
2-2의 포함 판별 질문 — "모든 X는 Y인가" — 은 강력하지만 전부는 아니다. "모든 사람은 학생인가"는 당연히 거짓이므로 '사람 is_a 학생'은 걸러진다. 그런데 거꾸로 세운 "모든 학생은 사람인가"는 참이다. 그래서 '학생 is_a 사람'은 포함 판별을 통과한다. 이것은 과연 좋은 설계인가.
과리노와 웰티(Guarino & Welty)의 답은 "쓰기 나름이지만, 위험을 아는 채로 써야 한다"이다. 둘의 OntoClean은 1-4에서 예고한 도구 — 철학의 범주 분석을 공학의 진단 절차로 바꾼 방법 — 이며, 핵심 잣대가 메타속성(metaproperty)이다. 클래스의 내용이 아니라 클래스가 클래스인 방식을 묻는 속성이라서 '메타'다.
경직성 — 본질과 역할을 가르는 잣대
가장 많이 쓰는 메타속성이 경직성(rigidity)이다. 판별 질문은 모토의 한 문장이다. 그 클래스의 사례가, 자신의 존재를 유지한 채, 그 클래스이기를 그만둘 수 있는가. 사람은 그만둘 수 없다 — 사람이기를 그만두는 순간 그 개체는 더 이상 없다. 이런 클래스가 경직적(rigid, +R)이다. 학생은 그만둘 수 있다 — 졸업해도 그 사람은 남는다. 이런 클래스가 반경직적(anti-rigid, ~R)이며, 전형이 역할(role)과 단계(phase — 유생과 성체 같은)다.
진단 규칙은 하나면 충분하다. 경직적 클래스는 반경직적 클래스의 하위(subClassOf)가 될 수 없다. '사람 is_a 학생'이 왜 틀렸는지를 이 규칙이 설명한다 — 사람(+R)을 학생(~R) 아래에 두면, 모든 사람이 학생이기를 그만두는 순간 존재를 잃는다는 뜻이 되기 때문이다. 반대 방향인 '학생 is_a 사람'(~R이 +R 아래)은 규칙 위반이 아니다. 다만 더 깨끗한 설계는 역할을 계층에서 분리하는 것이다. 학생을 사람의 하위 클래스가 아니라, 사람이 맡는 역할 클래스로 두고 사람과는 '역할을 맡는다(has_role)' 관계로 잇는다. 그러면 입학과 졸업이 클래스 이동이 아니라 관계의 생성·소멸이 되어, 변화가 자연스럽게 표현된다.
나머지 메타속성 — 간단히
OntoClean에는 경직성 외에 두 잣대가 더 있다. 정체성(identity)은 "사례를 같은 것으로 추적하는 기준이 있는가"를 묻는다 — 정체성 기준이 다른 클래스를 한 계층에 섞으면 안 된다. 통일성(unity)은 "사례가 하나의 전체인가"를 묻는다. 학습 단계에서는 경직성 하나만 익혀도 계층 오류의 큰 부분을 잡는다. 정체성·통일성은 깊은 분석이 필요할 때 원전으로 들어가는 길을 용어 정리에 남긴다.
| 클래스 | 경직성 판정 | 근거 |
|---|---|---|
| 사람 | 경직적 (+R) | 사람이기를 그만두면 개체 자체가 없다 |
| 연구 참가자 | 반경직적 (~R) — 역할 | 실험이 끝나면 참가자가 아니지만 사람은 남는다 |
| 환자 | 반경직적 (~R) — 역할 | 회복하면 환자가 아니다 |
| 기억 과정(부호화 등) | 경직적 (+R) | 부호화이기를 그만둔 부호화는 없다 |
| 손상된 기억 능력 | 반경직적 (~R) — 단계 | 회복될 수 있다. 능력의 한 상태다 |
| 숫자폭 과제 | 경직적 (+R) | 과제 유형이기를 그만둘 수 없다 |
표 1심리학 개념의 경직성 태깅 연습. 마지막 두 행이 실습과 직결된다 — '손상된 X'류 개념은 하위 클래스가 아니라 상태로 모형화할 후보다.
판별 연습
문 1"기억 전문가(memory expert) is_a 사람"을 OntoClean으로 평가하고, 더 깨끗한 설계를 제안하라.
답 확인
기억 전문가는 ~R(그만둘 수 있다), 사람은 +R이므로 규칙 위반은 아니다(~R이 +R 아래). 그러나 전문성의 획득·상실이 클래스 이동이 되는 부담이 남는다. 더 깨끗한 설계는 역할 분리 — '전문가'를 역할로 두고 has_role로 잇는다.
문 2"치매 환자의 기억 is_a 기억 능력"처럼 '손상된 기억'을 하위 클래스로 두는 설계의 문제를 경직성으로 설명하라.
답 확인
'손상된 기억 능력'은 단계(~R)다 — 회복되면 그 클래스를 떠난다. 이것을 +R 계층에 섞으면 회복이 클래스 이동이 된다. 능력(+R)과 그 상태(손상됨/정상 — 질 또는 단계)를 분리하는 편이 깨끗하다. 실습의 기억 모듈이 임상 확장을 받을 때 바로 부딪힐 결정이다.
적용: 실습 계층의 메타속성 점검 규칙
실습 온톨로지에 규칙 하나를 추가한다. 클래스 계층 설계(5-3)에서 각 클래스에 경직성 판정을 비고로 적고, ~R 판정이 나온 클래스는 is_a 계층에 넣기 전에 역할·단계 분리를 검토한다. 현재 용어 대장(5-2)에는 역할 성격의 용어가 거의 없지만 — 개념 지도라는 목적 덕이다 — '손상된 기억'류가 들어오는 순간 이 규칙이 일한다. 점검표에는 OOPS! 항목(3-3)과 함께 경직성 규칙 위반 0건이 추가된다.
용어 정리
| 용어 | 원어 | 뜻 |
|---|---|---|
| 메타속성 | metaproperty | 클래스의 내용이 아니라 클래스가 클래스인 방식을 묻는 속성 |
| 경직성 | rigidity | 사례가 그 클래스이기를 그만둘 수 없는 성질(+R / ~R) |
| 역할 | role | 맡았다 그만둘 수 있는 반경직적 클래스. 예: 학생, 참가자, 환자 |
| 단계 | phase | 개체가 거쳐 가는 반경직적 상태. 예: 손상된 능력 |
| 정체성 / 통일성 | identity / unity | OntoClean의 나머지 메타속성. 심화 분석용 |
Guarino, N., & Welty, C. (2002). Evaluating Ontological Decisions with OntoClean. Communications of the ACM, 45(2), 61–65. · Guarino, N., & Welty, C. (2009). An Overview of OntoClean. In Handbook on Ontologies. · Arp, Smith & Spear (2015). Building Ontologies with BFO(역할·단계의 상위 온톨로지 처리).