커리큘럼

아카데미모듈 2 · 지식그래프 키우기

온톨로지 101: 문장이 지식이 되기까지

6개 레슨 중 3번째15분

이 레슨에서 배우는 것

  • 온톨로지가 무엇이고 왜 Consilience가 노트에서 온톨로지를 만드는지 설명할 수 있습니다
  • 트리플의 세 요소를 말하고, 실제 문장을 손으로 트리플로 분해할 수 있습니다
  • 네임드 그래프가 "이 사실을 어느 노트가 말했는지"를 어떻게 기록하는지 설명할 수 있습니다
  • 엔티티 유형은 11개로 닫혀 있는데 관계 동사는 열려 있는 이유를 말할 수 있습니다
  • 폴더와 태그로는 안 되는 질문이 그래프에서는 왜 되는지 설명할 수 있습니다

3주 전, 회의 노트에 이런 한 줄을 적었다고 해 봅시다. "박지우가 창업한 하늘로보틱스는 부산에 본사를 두고 있다." 그리고 오늘 이렇게 묻고 싶어집니다. "내가 아는 사람 중에 부산의 로보틱스 회사와 연결된 사람이 누구지?"

폴더로는 답할 수 없고, 태그도 마찬가지입니다. 이런 질문을 미리 내다보고 붙여 둔 태그는 없으니까요. 하지만 그 문장이 구조화된 사실로 저장되어 있다면, 답은 한 걸음 거리에 있습니다.

이 강의는 그 문장 하나가 질의 가능한 사실이 되기까지의 경로 전체를 따라갑니다. 이 과정에서 마크다운 파일은 전혀 바뀌지 않습니다. 그래프는 파일 옆에서 함께 자라고, 언제든 파일에서 다시 만들 수 있습니다.

온톨로지란 실제로 무엇인가

온톨로지는 두 가지 질문에 답하는 공유 어휘입니다. 첫째, 세상에 어떤 종류의 것들이 있는가? (사람, 조직, 장소). 둘째, 그것들은 서로 어떻게 관계 맺는가? (창업했다, 본사를 두다, 개발하다).

이제 모든 노트의 사실이 이 하나의 어휘로 표현된다고 해 봅시다. 그러면 2024년 회의 노트와 2026년 독서 노트는 서로를 언급한 적이 없어도 같은 모델 안에서 만나 연결됩니다.

Consilience의 온톨로지에는 이 강의에서 만날 세 가지 축이 있습니다. 닫힌 11개 엔티티 유형(사물이 무엇인지), 열린 관계 동사 어휘(사물이 어떻게 연결되는지), 리터럴 속성(날짜나 숫자 같은 순수 값)입니다. 네 번째 축인 스테이트먼트는 당신이 내린 결정과 질문을 원문 그대로 담는데, 이건 별도 강의로 다룹니다.

엔티티는 정체성을 가진다

순수 마크다운에서 "PostgreSQL"은 그저 몇 글자짜리 문자열일 뿐입니다. 검색은 그 글자들을 찾아 주지만, 1월 노트의 "PostgreSQL"과 6월 노트의 "PostgreSQL"이 같은 것이라는 사실은 파일 어디에도 적혀 있지 않습니다.

그래프의 첫 번째 도약은 바로 정체성입니다. 추출된 모든 대상은 엔티티가 되고, 그 주소는 정규화된 레이블(양끝 공백 제거, 연속 공백 축약, 소문자화)에서 만들어집니다. 스무 개의 노트에서 "PostgreSQL"을 언급하면 그 스무 번의 언급이 전부 하나의 노드로 모이고, 그 노드에는 네 가지가 담깁니다.

  • 대표 표시 레이블: 어디서나 보이는 엔티티의 이름입니다.
  • 별칭: 노트 본문에 실제로 적힌 다른 이름만 담깁니다. 그래서 모든 별칭은 당신이 직접 쓴 표현으로 곧장 거슬러 올라갑니다.
  • 한 줄 설명: 이 엔티티가 무엇이고 무엇을 하는지 요약합니다.
  • 유형(선택): 11개 중 최대 하나로, 노트마다 따로 기록됩니다(아래에서 자세히).

트리플: 지식의 원자

이라는 분야를 .

주어 — 이 사실이 다루는 대상입니다.

그래프의 모든 사실은 트리플 하나입니다: 주어, 술어, 목적어. 각 역할을 눌러 살펴보세요.

그래프가 저장하는 사실의 모양은 딱 하나, 트리플입니다. 생김새는 주어 → 술어 → 목적어죠. "박지우가 하늘로보틱스를 창업했다." 주어는 사실의 주인공인 엔티티, 술어는 유형이 있는 관계, 목적어는 또 다른 엔티티이거나 순수 값입니다. 이것이 원자의 전부입니다. 내 세계에 대해 말할 수 있는 것은 전부 이 단위로 쪼개집니다.

노트를 저장하면 추출기가 문장을 하나씩 읽어 가며, 발견한 엔티티와 그것들을 잇는 관계를 뽑아냅니다. 맨 앞에 나왔던 그 문장을 쪼개 보면 이렇습니다.

문장 하나 → 트리플
노트에 쓴 문장:
  "박지우가 창업한 하늘로보틱스는 부산에 본사를 두고 있다."

이 문장이 사실이 되면:

  (박지우)         은(는)      (사람)
  (하늘로보틱스)   은(는)      (조직)
  (부산)           은(는)      (장소)
  (박지우)         창업 →         (하늘로보틱스)
  (하늘로보틱스)   본사를 둠 →    (부산)

목적어가 꼭 엔티티일 필요는 없습니다. 숫자, 날짜, 측정값은 리터럴로 저장됩니다. 트리플 끝자리에 놓이는 순수 값입니다. 그래서 "2024년 출시"는 그래프를 어지럽히는 막다른 노드 대신 엔티티에 붙는 값이 됩니다. 이런 값은 주로 가져온 표나 CSV 행에서 나옵니다.

온톨로지
무엇이 존재하고(유형) 어떻게 관계 맺는지(술어)에 대한 공유 어휘.
엔티티
노트를 가로질러 정체성이 유지되는 대상. 문자열 대신 노드로 저장됩니다.
트리플
주어, 술어, 목적어. 가장 작은 완결된 사실.
술어
주어와 목적어를 잇는 유형 있는 관계. 예: 창업, 본사를 둠.
리터럴
트리플의 목적어 자리에 오는 순수 값(숫자, 날짜, 텍스트).
네임드 그래프
어느 노트가 이 사실을 말했는지 기록하는 노트별 컨테이너.
RDF
Consilience가 이 모든 것을 저장하는 W3C 표준 데이터 모델.

이해도 체크

"박지우가 하늘로보틱스를 창업했다"라는 문장에서, 추출된 트리플의 술어가 되는 부분은 무엇일까요?

네임드 그래프: 이 사실은 어느 노트가 말했나

출처 없는 사실은 소문에 불과합니다. 그래서 Consilience는 트리플을 맨몸으로 저장하지 않습니다. 워크스페이스마다 자체 로컬 RDF 저장소가 있고, 전부 이 기기 안에 보관됩니다. 모든 사실은 그 사실을 주장한 노트의 네임드 그래프에 담기고, 그래프의 주소는 그 노트의 워크스페이스 상대 경로에서 나옵니다. 그래서 각 사실은 사실상 쿼드가 됩니다. 주어, 술어, 목적어, 그리고 출처 노트까지요.

네 번째 요소: 출처
모든 사실은 "어느 노트가 말했는지"와 함께 저장됩니다:

  (하늘로보틱스) 본사를 둠 → (부산)
      출처 노트:  meetings/2026-03-kickoff.md

출처 노트는 노트의 경로에서 곧장 나옵니다.
"어느 노트가 말했나"라는 기록이 모든 사실에 내장되어 있습니다.
  • 노트를 다시 추출하면 → 그 노트의 그래프만 교체됩니다. 다른 노트의 사실은 건드리지 않습니다.
  • 노트를 지우면 → 그 그래프가 사라집니다. 이름을 바꾸면 → 새 경로로 키가 바뀝니다.
  • 마크다운은 절대 수정되지 않습니다. 그래프는 그 곁에서 나란히 자라는 구조이고, 언제든 파일에서 다시 만들 수 있습니다.
  • 들고 다닐 수 있습니다: 그래프 전체가 이동 가능한 graph.nq 파일로 내보내지고, 공유 대화상자의 "지식그래프(온톨로지) 포함" 옵션을 켜면 받는 사람에게 그래프가 함께 전달됩니다.

유형은 닫혀 있고, 동사는 열려 있다

앞으로 쓸 모든 화면을 빚어내는 설계 결정이 하나 있습니다. 사물이 무엇인지는 닫힌 목록에서 나옵니다. 엔티티는 노트당 최대 하나의 유형을 갖고, 고정된 11개 중에서만 고를 수 있습니다. 마땅한 게 없으면 추출기는 "기타"라고 답하고, 이건 아예 유형 없음으로 저장됩니다. 추출기는 추측하지 않습니다. 반면 사물이 어떻게 관계 맺는지는 활짝 열려 있습니다.

유형무엇을 담나예시
사람 (Person)개별 인물박지우
조직 (Organization)회사, 팀, 기관하늘로보틱스
장소 (Place)도시, 건물, 지역 등 위치부산
사건 (Event)특정 시점에 일어나는 일킥오프 회의
프로젝트 (Project)목표가 있는 진행형 활동오로라 런칭
저작물 (Work)책, 논문, 영화 등 창작물맨먼스 미신
제품 (Product)만들어 내놓는 것클라우드파인
기술 (Technology)도구, 플랫폼, 기법Kubernetes
개념 (Concept)추상적 아이디어출처 규율
물질 (Substance)재료와 화학물질리튬
생물 (Organism)살아 있는 것꿀벌

관계 동사는 노트의 표현을 그대로 씁니다. "headquartered in"은 "headquartered in" 그대로, 한국어 동사는 한국어 그대로 살아남습니다. 그래프는 노트의 언어로 말하고, 술어를 언제나 사람이 쓰는 말 그대로 보여 줍니다. 게다가 "도메인 어휘"(Domain vocabulary) 패널에서는 표준 술어와 그 변형을 선언할 수 있습니다. 그러면 "made"와 "개발하다"가 추출 시점에 하나의 "develops" 엣지로 접힙니다.

이해도 체크

엔티티 유형은 11개로 닫혀 있는데 관계 동사는 열린 어휘인 이유는 무엇일까요?

그래프가 폴더와 태그를 이기는 이유

파일은 폴더 딱 하나에만 삽니다. 계층 구조는 모든 노트에 단 하나의 집을 강요하는 셈이죠. 태그는 미리 내다보고 붙여 둬야 하는 평평한 딱지입니다. 그래프는 둘 다 필요 없습니다. 모든 사실이 자기 주소를 가지므로, 문서를 검색하는 대신 관계를 따라갈 수 있습니다. 우리 기억이 실제로 작동하는 방식 그대로요.

  • 여러 홉 질문이 기계적인 일이 됩니다: 사람 → 창업 → 회사 → 본사 → 도시. "부산의 로보틱스 회사와 연결된 지인이 누구지?"는 두 홉짜리 산책이면 끝입니다.
  • 계획에 없던 질문이 통합니다: 아무도 "로보틱스-부산" 같은 태그를 달아 두지 않았어도, 사실들이 서로 조합되니 답이 나옵니다.
  • 수렴이 자동입니다: 한 프로젝트를 언급한 흩어진 노트 스무 개가 전부 같은 노드로 모입니다. 노트끼리 서로 링크를 걸 필요가 전혀 없습니다.
  • 에이전트가 그 위에서 추론합니다: 출처가 달린 구조화된 사실은 AI가 단순 검색을 넘어 타고 다니며 인용할 수 있는 재료입니다.

정리: 하나의 모델, 모든 화면

이제 모델 전체가 손안에 있습니다. 노트는 엔티티로 읽히고, 엔티티는 정규화된 레이블에서 정체성을 얻습니다. 엔티티는 트리플로 연결되고, 모든 트리플은 그 사실을 말한 노트의 네임드 그래프에 담깁니다. 이 코스의 모든 그래프 화면은 이 하나의 구조를 바라보는 서로 다른 창일 뿐입니다. 3D 뷰도, 엔티티 테이블도, 프로필 페이지도 다 그렇습니다.

온톨로지 101: 문장이 지식이 되기까지 · Consilience Academy