Skip to content
Junsu Kim

Posts

온톨로지, 지식그래프, 택소노미를 구분한다

온톨로지라는 한 단어가 가리키는 것들을 구분한다. 사실 한 건을 적는 최소 단위인 트리플에서 시작한다.

이 글은 온톨로지라는 말이 가리키는 것들을 구분한다. 어떻게 만드는지는 다루지 않는다. 만드는 순서는 온톨로지는 세 번 만들어봐야 안다에 로드맵으로 적어 두었다. 이 글에서 쓰는 명단과 학습 기록은 국제표준은 시스템 사이의 계약이다가 정한 층위 위에 놓인다.

예시는 두 문장으로 끝까지 간다. 다른 예시는 쓰지 않는다.

김민준은 수학 3반을 듣는다. 이선생은 수학 3반을 가르친다.

트리플

사실 하나를 주어, 술어, 목적어 세 칸으로 적은 것이다. 세 칸이 전부이므로 표처럼 컬럼을 미리 맞출 필요가 없다.

아래를 스크롤하면 장면이 하나씩 바뀐다. 두 문장을 세 칸에 적는 데서 시작해서, 규칙 하나가 분류 네 건을 만드는 데까지 간다.

두 문장을 기계가 계산할 수 있게 만든다

두 문장을 기계가 계산할 수 있게 만든다

지금 · 표 한 행studentclassrole김민준수학 3반학생이선생수학 3반교사풀어 쓰면트리플 · 주어 / 술어 / 목적어김민준수강한다수학 3반이선생가르친다수학 3반칸 이름을 미리 맞추지 않아도 된다. 주어가 같으면 하나로 이어진다.

표는 컬럼 이름이 그 표 안에서만 통한다. 트리플은 세 칸이 전부여서, 다른 곳에서 온 사실이라도 주어가 같으면 이어 붙는다.

세 칸이 이미 찼다김민준수강한다수학 3반역할 = 학생상태 = 수강 중기간 = 3월–7월관계를 대상으로 올린다김민준수강기록 1Enrollment수학 3반학생은수업은역할 · 학생상태 · 수강 중기간 · 3월–7월세 칸에 안 들어가는 것이 생기면 관계가 대상이 된다.

역할과 상태와 기간을 넣을 자리가 없다. 그래서 관계를 독립된 대상으로 올리고 거기에 다시 세 칸을 붙인다. 이 대상이 OneRoster의 Enrollment다.

분류명사 · 지표의 뜻규칙실제 사실택소노미CASE 역량 트리무엇의 종류시맨틱 레이어지표 정의무엇의 종류명사와지표의 뜻온톨로지만들 v0.1무엇의 종류명사와지표의 뜻규칙지식그래프규칙과 실제 명단무엇의 종류명사와지표의 뜻규칙김민준 · 이선생수학 3반 …

같은 재료를 어디까지 담느냐가 이름을 가른다. 시맨틱 레이어와 온톨로지가 갈라지는 지점은 규칙 칸 하나다.

김민준은 영어 2반을 듣는가?데이터에 그런 기록이 없다닫힌 세계아니오없으면 아니다관계형 DB열린 세계모른다아직 안 왔을 수 있다RDF · OWL우리는 데이터 종류로 나눈다명단 · OneRoster원장이 완결을 선언한다학습 기록 · xAPI문장이 계속 도착한다

데이터에 없는 사실을 한쪽은 아니라고 읽고 다른 쪽은 모른다고 읽는다. 그래서 명단과 학습 기록을 다르게 다룬다.

넣은 것김민준이선생수강기록 1 · 2분류는 하나도 붙이지 않았다규칙 하나역할이 teacher인 수강기록을가진 사람은 교수자다추론기HermiT나온 것이선생 → 교수자김민준 → 학생수강기록 1 → 학생 수강수강기록 2 → 교수자 수강분류 기준을 레코드에 적지 않고 정의 한 곳에 두면, 분류는 기계가 계산한다.

분류를 하나도 붙이지 않고 규칙만 주었는데 분류 네 건이 나왔다. 다만 이 수준이면 관계형 데이터베이스의 뷰로 충분하고 추론기는 과하다.

네 용어를 한 표로

용어담는 것규칙 계산우리 도메인의 대응물
택소노미분류 계층없음CASE 역량 트리
시맨틱 레이어분류 + 명사와 지표의 뜻없음학습 기록 저장소의 지표 정의
온톨로지시맨틱 레이어 + 규칙있음앞으로 만들 Learning Ontology v0.1
지식그래프온톨로지 + 실제 사실선택규칙과 실제 명단을 합친 전체

넷은 경쟁 관계가 아니다. 는 온톨로지의 뼈대이고, 온톨로지는 의 사전이고, 시맨틱 레이어는 온톨로지에서 규칙을 뺀 절단면이다.

아닌 것: 온톨로지는 데이터베이스가 아니다

네 번째 장면이 보여 준 열린 세계 가정에는 대가가 따른다. “수학 3반을 듣지 않는 학생 목록”을 뽑을 수 없다. 미이수자 독촉이나 미참여자 발송처럼 부정 집합을 쓰는 업무는 닫힌 세계 없이 성립하지 않는다.

그런데도 열린 세계를 기본으로 두는 이유는, 어떤 기관도 자기 데이터가 세상을 완전히 담고 있다고 말하기 어렵기 때문이다. 다른 학교나 다른 시스템에서 온 사실이 언제든 더 붙을 수 있는 상황에서는 모른다고 답하는 편이 정직하다.

한 가지가 더 반대로 작동한다. 관계형 데이터베이스의 외래키와 검사 제약은 어기는 입력을 거부한다. OWL의 정의역과 치역은 거부하지 않고 새 사실을 도출한다. Enrollment의 학생 자리에 엉뚱한 값이 들어오면 오류가 나는 것이 아니라, 그 값이 학생이라는 사실이 추가된다. 데이터 오류를 잡으려는 기대와 반대다.

명단을 닫힌 세계로 다루기로 한 근거는 학적 원장이 완결을 선언하고 넘긴다는 점이고, 학습 기록의 단위는 학습 기록은 한 줄이 한 건이다에 적어 두었다. 명단에서 Enrollment가 왜 독립된 엔티티인지는 OneRoster는 누가 그 반인지를 넘긴다에 있다.

추론기가 우리에게 필요한가

다섯 번째 장면의 규모라면 는 필요하지 않다. 역할 하나로 갈리는 분류는 관계형 데이터베이스의 뷰로 충분하고, 추론기는 과하다.

추론기가 값을 하는 자리는 규칙이 여러 단계로 얽힐 때다. 역량 트리를 따라 내려가는 상속이나, 여러 조건이 조합된 수료 판정이 그런 경우다. 뷰를 손으로 쌓기 시작하면 금방 감당하기 어려워진다.

다음 글에서 다룰 것