1부 이해 · 트랙 2 지식 구조의 기본기

제 4 차 시

식별과 명명 — IRI, 라벨, 식별자

개념에 이름을 붙이는 세 개의 층을 구분하고, 바꿔도 부서지지 않는 명명 체계를 설계한다.
읽기 약 11분 · 연습 1회

이름은 바뀌어도 식별자는 남는다

명명의 제1원칙

사람의 말은 변하므로, 기계의 참조는 말에 걸지 않는다.

식별자에 지식을 새기면, 지식이 바뀔 때 식별자가 부서진다.
그래서 좋은 식별자는 아무 뜻이 없다.

학 습 목 표

  1. IRI, 라벨, 정의의 세 층을 구분하여 쓴다.
  2. 의미 없는 식별자 원칙의 근거를 설명한다.
  3. 실습 온톨로지의 네임스페이스와 명명 정책을 정한다.

이름의 세 층

트리플의 각 자리에는 결국 이름이 들어간다. 그런데 '이름'은 한 가지가 아니다. 잘 만든 온톨로지에서 하나의 개념은 세 층의 이름을 갖는다.

첫째 층은 IRI(국제화 자원 식별자)다. 기계가 참조하는 전역 유일 식별자이며, 웹 주소 꼴을 쓴다. 웹 주소 꼴인 이유는 두 가지다. 소유한 도메인 아래에서 이름을 지으면 전 세계 누구와도 겹치지 않고, 주소를 열면 그 개념의 설명에 닿을 수 있다. 둘째 층은 라벨 — 사람이 읽는 표시 이름이다. 한국어와 영어 라벨을 함께 달 수 있고(rdfs:label), 동의어는 별도 라벨(altLabel)로 단다. 셋째 층은 정의와 주석 — 그 개념이 무엇인지 적은 문장과 그 문장의 출처다.

세 층의 분업이 핵심이다. 기계는 IRI로 참조하고, 사람은 라벨로 읽고, 뜻은 정의가 진다. 한 층의 일을 다른 층에 떠넘길 때 문제가 시작된다.

개념 ① IRI — 기계의 참조 https://example.org/psymap/PSY_0000041 전역 유일 · 영구 불변 · 뜻 없음 ② 라벨 — 사람의 이름 "작업기억"@ko · "working memory"@en 동의어: "작동기억"@ko (altLabel) — 바뀌어도 IRI는 그대로 ③ 정의 — 뜻과 출처 "정보를 짧게 유지하며 조작하는 용량 제한 체계" — 출처: 교과서 p.000 정의가 뜻을 지므로, 식별자와 라벨은 뜻을 질 필요가 없다
그림 1한 개념의 세 층 이름표. 층마다 책임이 다르고, 책임이 다르므로 바뀌는 속도도 다르다. 식별자는 영구, 라벨은 가끔, 정의는 지식이 자랄 때마다 바뀔 수 있다.

왜 식별자에는 뜻이 없어야 하는가

초보 설계의 흔한 선택은 식별자에 이름을 넣는 것이다 — 예: .../working_memory. 읽기 좋아 보이지만, 1부 2차시의 교훈이 여기서 되돌아온다. 디자인된 것은 되돌아와 디자인한다. 식별자에 새긴 이름은 그 개념에 대한 특정 시점의 이해를 영구 참조 속에 고정한다. 훗날 분류가 바뀌어 그 개념의 이름이 바뀌면 선택지는 둘뿐이다. 식별자를 바꿔 모든 참조를 부수거나, 이름과 식별자가 어긋난 채 살거나.

그래서 OBO Foundry를 비롯한 온톨로지 공동체의 규약은 의미 없는 식별자다. GO:0007613(Gene Ontology의 '기억'), 숫자 일련번호 식별자들이 그 예다. 식별자는 영구 불변의 참조만 맡고, 사람이 읽을 이름은 라벨이 맡는다. 라벨은 언제든 고칠 수 있다 — 참조는 식별자에 걸려 있으므로 아무것도 부서지지 않는다.

네임스페이스 — 이름의 주소지

IRI의 공통 앞부분을 네임스페이스라 하고, 터틀에서 접두어로 줄여 쓴다. 2-1의 코드에서 본 @prefix 선언이 그것이다. 네임스페이스는 이름의 주소지이자 소유권 표시다. 자신의 네임스페이스 아래 이름은 자신이 정의하고, 남의 네임스페이스 이름(예: Cognitive Atlas의 개념)은 그대로 가져와 참조한다. 재사용(1부 3차시의 설계 원칙, 트랙 3의 5차시)이 IRI 수준에서는 "남의 IRI를 내 그래프에 그대로 쓰는 일"로 구현된다.

규칙이유
식별자는 뜻 없는 일련번호로 한다이름 변경이 참조를 부수지 않게
발행한 식별자는 삭제하지 않는다. 폐기 표시(deprecated)만 한다남의 그래프에 이미 참조가 있을 수 있다
라벨은 단수형 명사로, 한 언어에 기본 라벨 하나표시의 일관성
동의어는 altLabel로 모은다검색은 넓게, 표시는 하나로
모든 클래스에 정의와 출처를 단다뜻의 책임을 정의가 지게
남이 이미 정의한 개념은 그 IRI를 재사용한다같은 것에 두 이름을 만들지 않게

표 1명명 정책 체크리스트. OBO Foundry의 식별자·명명 규약을 학습용 규모에 맞게 간추렸다.

— — —

판별 연습

문 1동료가 식별자를 .../단기기억 으로 짓자고 한다. 어떤 미래 상황에서 문제가 되는가.

답 확인

이론 정리 과정에서 그 개념을 '작업기억'으로 재명명하거나 둘을 분리하게 될 때. 식별자를 바꾸면 기존 참조가 전부 부서지고, 안 바꾸면 '단기기억'이라는 글자가 작업기억 개념을 가리키는 어긋남이 영구화된다.

문 2"작동기억"이라는 용어를 쓰는 문헌을 통합하려 한다. 새 클래스를 만들어야 하는가.

답 확인

아니다. 같은 개념의 다른 이름이므로 기존 클래스에 altLabel "작동기억"@ko를 단다. 새 클래스는 개념이 다를 때만 만든다.

— — —

적용: 실습 프로젝트의 명명 정책

실습 온톨로지의 정책을 이 차시의 언어로 정한다. 네임스페이스는 실습용 임시 도메인(예: https://example.org/psymap/)을 쓰고, 식별자는 PSY_ 뒤에 7자리 일련번호를 붙인 뜻 없는 ID로 한다. 라벨은 한국어 기본, 영어 병기로 하고, 동의어는 altLabel로 모은다. 모든 클래스에 정의와 출처를 의무화한다 — 학습용 개념 지도라는 목적에서 정의·출처는 장식이 아니라 본체이기 때문이다. Cognitive Atlas에 이미 있는 개념은 매핑 주석으로 그 IRI를 기록해 정렬(트랙 5의 8차시)에 대비한다.

용어 정리

용어원어뜻
IRIInternationalized Resource Identifier웹 전역에서 유일한 기계용 식별자
라벨 / 대체 라벨rdfs:label / skos:altLabel사람용 표시 이름 / 동의어·이형 표기
네임스페이스namespaceIRI의 공통 앞부분. 접두어로 줄여 쓴다
의미 없는 식별자opaque identifier뜻을 담지 않은 일련번호형 ID. 이름 변경에 면역
폐기deprecation식별자를 지우는 대신 '더 쓰지 않음'으로 표시하는 관행
이 차시가 기대고 있는 자료
OBO Foundry. Principles: Identifiers(P3), Naming Conventions(P12). http://obofoundry.org/principles/ · W3C (2008). Cool URIs for the Semantic Web. · Gene Ontology Consortium — 의미 없는 식별자의 대규모 실례.
트랙 2 · 차시 4식별과 명명