Ch15 좋은 모델링과 나쁜 모델링 사례 요약 정리

2026. 4. 25. 01:38정리/책 정리

728x90
반응형

 

시작하는 세 가지 방법

모델을 만들 때 출발점은 세 가지입니다. 웹에 이미 존재하는 모델을 재사용하거나, 조직 내 기존 스키마/시소러스를 활용하거나, 처음부터 직접 설계하는 것입니다. 어떤 방식이든 "이 모델이 내 목적에 맞는가?"를 검증해야 하는데, 이를 위해 동기부여 시나리오역량 질문(Competency Questions)을 활용합니다.

역량 질문이란 모델이 반드시 답할 수 있어야 하는 질문들로, 완전성·구체성·세분성·형식성·재사용성의 다섯 축으로 모델 범위를 정의하는 기준이 됩니다.


URI 이름 지정 전략

방식 예시 장점 단점
불명확한 이름 wikidata:Q41176 다국어 지원, 이름 변경 용이 도구 없이 읽기 어려움
의미 있는 이름 skos:broader 직관적, CURIE로 구분 명확 이름 변경 시 레거시 문제 발생

 

의미 있는 이름 사용 시 지켜야 할 명명 규칙은 다음과 같습니다. 클래스는 대문자 CamelCase(예: ShakespeareanWork), 속성은 소문자 시작(예: rdfs:subClassOf), 개체는 대문자 시작, 클래스명은 단수 명사를 사용합니다.


4가지 안티 패턴 (피해야 할 것들)

① 계급주의 (Classism) — 모든 것을 클래스로 만드는 오류입니다. TheTempest처럼 인스턴스여야 할 것을 클래스로 정의하면, 추론이 동작하지 않고 집합 간 관계가 의미를 잃습니다.

② 클래스 말장난 (Punning) — 같은 URI를 클래스이자 개체로 동시에 쓰는 방식입니다. OWL 2.0에서 허용되지만, Class-Individual Mirror 패턴으로 대체하는 것이 훨씬 명확합니다.

③ 독점성 (Exclusivity) — 하위 클래스의 원소가 될 수 있는 것은 이미 슈퍼 클래스의 원소로 알려진 것뿐이라고 가정하는 오류입니다. 예를 들어 OceanPort를 단순 하위 클래스로 정의하면, "바다와 연결된" 프랑스가 도시로 추론되는 오류가 생깁니다. 교집합(owl:intersectionOf) 으로 정의해야 합니다.

④ 객관화 (Objectification) — 객체 지향(OOP)의 논리를 시맨틱 웹에 그대로 옮기는 오류입니다. OWL은 AAA·열린 세계·고유하지 않은 명명 가정을 따르기 때문에, "부모는 정확히 2명" 같은 제약 조건은 근본적으로 표현할 수 없습니다.

⑤ 크리핑 개념화 (Creeping Conceptualization) — "재사용을 위해" 관련 클래스를 무한정 추가하는 오류입니다. 속성이나 인스턴스가 없는 빈 클래스가 많아지면 경고 신호입니다. KISS 원칙을 항상 기억해야 합니다.


핵심 원칙 한 줄 요약

시맨틱 웹 모델의 품질은 구성 요소의 수가 아니라, 모델이 수반하는 추론이 얼마나 유용하고 의미 있는가로 판단합니다.

728x90
반응형