학 습 목 표
- 함정의 개념과 중요도 3등급을 구분한다.
- 대표 함정 아홉 가지를 예로 식별한다.
- 진단 절차를 실습 온톨로지의 점검 계획으로 옮긴다.
추론기와 테스트 사이의 빈틈
앞 차시까지의 장비를 점검해 보자. 추론기는 모순과 충족 불가능을 잡고(2-6), 역량 질문 테스트는 목적 적합성을 잰다(3-2). 그런데 둘 다 통과하면서도 나쁜 설계가 있다. 주석 없는 클래스, 어디에도 연결되지 않은 고립 요소, 동의어를 별개 클래스로 세운 중복 — 모순도 아니고, 당장의 질문에 답하는 데 지장도 없지만, 유지와 재사용을 망가뜨리는 실수들이다. 이런 실수를 함정(pitfall)이라 부른다.
함정의 힘은 목록화에서 나온다. 수백 개의 공개 온톨로지에서 반복 관찰된 실수를 포베다-비야론(Poveda-Villalón) 연구진이 41개 항목의 카탈로그로 정리했고, 그 카탈로그로 온톨로지를 (반)자동 진단하는 도구가 OOPS!(OntOlogy Pitfall Scanner!)다. 요점은 도구보다 발상이다. 품질 검사를 개인의 안목에서 공동체의 체크리스트로 바꾼 것. 선배들의 실수 목록 위에서 점검하면, 초심자도 고참의 눈 일부를 빌릴 수 있다.
중요도 3등급
41개 함정이 똑같이 심각하지는 않다. 카탈로그는 세 등급을 쓴다. 치명(Critical) — 일관성과 추론, 사용 가능성을 해치므로 반드시 고친다. 중요(Important) — 기능을 막지는 않지만 고치는 것이 옳다. 경미(Minor) — 문제라기보다 다듬기다. 등급은 대응 원칙으로 이어진다. 치명은 즉시 수정, 중요는 계획 수정, 경미는 수정하거나 — 합당한 이유가 있으면 — 사유를 기록하고 수용한다. 모든 지적을 기계적으로 없애는 것이 목표가 아니다. 의도적 수용의 기록은 성숙한 운용의 표지다.
대표 함정 아홉 — 그리고 이 교재의 예방 장치
| 번호 | 함정 | 예 | 이 교재의 예방 장치 |
|---|---|---|---|
| P02 | 동의어를 별개 클래스로 | '작업기억'과 '작동기억'을 둘 다 클래스로 | 동의어는 altLabel로 흡수(2-4, 5-2) |
| P04 | 고립 요소 | 어떤 관계도 없는 클래스 | 고아 클래스 금지(2-5 공리 예산) |
| P05 | 역관계 오정의 | measures의 역을 measures로 | 관계 명세 4요소(2-3) |
| P07 | 여러 개념을 한 클래스에 | '기억과주의' 클래스 | 원자성 — 수집 카드 분해(5-2) |
| P08 | 주석 누락 | 정의 없는 클래스 | 전 클래스 정의·출처 의무(2-4) |
| P10 | 서로소 누락 | disjoint 전무 → 오류가 모순이 되지 못함 | 최상위 disjoint(2-5) |
| P11 | 정의역·치역 누락 | 자격 없는 관계 | 모든 관계에 domain/range(2-3) |
| P22 | 명명 규약 혼용 | 한 파일에 camelCase와 snake_case 뒤섞임 | 명명 정책 고정(2-4) |
| P24 | 순환 정의 | "기억이란 기억하는 능력" | 정의 작성 규율 — 피정의어를 정의에 쓰지 않는다 |
표 1대표 함정 아홉(번호는 OOPS! 카탈로그 기준)과 이 교재의 대응. 트랙 2의 설계 규율 대부분이 사실은 함정의 예방책이었음이 드러난다 — 규율에는 족보가 있다.
진단 절차
진단은 네 걸음이다. 제출 — 온톨로지 파일(또는 IRI)을 스캐너에 넣는다(OOPS!는 웹 인터페이스를 제공한다). 판독 — 등급별로 지적을 받는다. 대응 — 치명·중요는 수정하고, 경미는 수정 또는 사유 기록 후 수용을 결정한다. 재검 — 수정이 새 함정을 만들지 않았는지 다시 돈다. 도구가 못 잡는 함정도 있으므로(41개 중 자동 탐지는 일부), 표 1 같은 발췌 목록으로 하는 수동 점검이 자동 스캔을 보완한다.
판별 연습
문 1다음 설계에서 함정을 찾아라. "클래스 '단기기억및작업기억'을 만들고, 정의는 생략했으며, '작동기억' 클래스를 따로 두었다."
답 확인
셋이 겹쳐 있다. P07(두 개념을 한 클래스에), P08(주석 누락), P02(동의어 '작동기억'을 별개 클래스로). 처방: 개념 분리, 정의·출처 기재, 작동기억은 작업기억의 altLabel로 흡수.
문 2경미 함정 "역관계 미선언"을 실습 온톨로지가 일부 관계에서 수용하기로 했다면, 어떤 기록이 남아야 하는가.
답 확인
수용한 함정 번호, 해당 요소, 사유(예: evidences는 역방향 질의 요구가 없어 역관계를 생략 — 공리 예산 원칙), 결정일. 재검 때 같은 지적이 나와도 기록을 가리키면 끝난다.
적용: 실습의 함정 점검 계획
실습 온톨로지의 회고 차시(5-9)에 들어갈 점검 계획을 확정한다. 자동 — OOPS! 스캔 1회(파일 제출). 수동 — 표 1의 아홉 항목 점검. 대응 — 치명·중요 즉시 수정 후 역량 질문 회귀 테스트, 경미는 수용 시 사유 기록. 예방 장치(트랙 2 규율)가 제대로 작동했다면 지적은 적을 것이고, 적지 않다면 그 자체가 규율의 구멍을 알려 주는 정보다.
용어 정리
| 용어 | 원어 | 뜻 |
|---|---|---|
| 함정 | pitfall | 모순은 아니지만 품질을 깎는, 반복 관찰된 설계 실수 |
| OOPS! | OntOlogy Pitfall Scanner! | 41개 함정 카탈로그와 (반)자동 진단 도구 |
| 중요도 등급 | Critical / Important / Minor | 치명·중요·경미. 대응 원칙을 정하는 분류 |
| 의도적 수용 | documented acceptance | 경미 함정을 사유 기록과 함께 남겨 두는 결정 |
Poveda-Villalón, M., Gómez-Pérez, A., & Suárez-Figueroa, M. (2014). OOPS! (OntOlogy Pitfall Scanner!): An On-line Tool for Ontology Evaluation. IJSWIS, 10(2). · Poveda-Villalón, M. (2016). Ontology Evaluation: A Pitfall-based Approach to Ontology Diagnosis(박사논문 — 41개 카탈로그). · 의도적 수용의 실례: OntoCrafter Ceramics Ontology의 OOPS! 자가 감사(arXiv 2606.14814).