KG Ontology Field NoteChapter 03 · Korean Edition
Part 2 · Chapter 3 · pp. 39–64

온톨로지에서
첫 지식그래프를 세우다

서로 다른 데이터가 한자리에 모인다고 곧 지식이 되는 것은 아니다. 이름을 바로잡고, 뜻의 경계를 세우고, 관계마다 근거와 날짜를 달아야 비로소 질문에 답하는 지식의 터가 생긴다. 제3장은 그 터를 닦는 과정을 희귀질환 진단 사례로 차근차근 보여준다.

2핵심 입력원: HPO 온톨로지와 HPO 주석 데이터
4관계 메타데이터 표현 방식: n-ary, named graph, RDF-star, LPG
899,558도서의 실험에서 Neo4j로 적재된 HPO 문장 수
5환자 표현형 조합으로 순위화한 상위 질환 후보 수
00 / OVERVIEW

장의 전체 지도

제3장은 기술부터 고르지 않는다. 먼저 임상의가 풀어야 할 문제를 정하고, 사용할 데이터를 이해한 다음, 그 데이터의 성격에 맞추어 표현 기술을 선택한다. 이어 온톨로지와 주석 데이터를 하나의 그래프로 통합하고, 마지막에 질의와 추론으로 유용성을 검증한다.

CRISP-DM을 지식그래프 구축으로 다시 읽기

목표 → 데이터 → 준비 → 모델 → 활용
01
비즈니스·도메인 이해희귀질환 진단을 돕는 임상의의 판단 과제를 정의한다.
02
데이터 이해HPO의 OWL 온톨로지와 HPOA 주석 파일의 구조를 읽는다.
03
데이터 준비식별자, 계층, 주석, 출처, 증거 수준을 정리하고 연결 규칙을 세운다.
04
KG 생성·갱신Neo4j, APOC, Neosemantics로 온톨로지와 주석을 적재한다.
05
질의·추론표현형 조합으로 후보 질환을 찾고 계층 규칙으로 암묵 지식을 드러낸다.

이 장의 미덕은 ‘첫 지식그래프’를 단순한 입문 실습으로 다루지 않는 데 있다. 임상 현장의 모호성, 온톨로지의 계층 구조, 출처가 붙은 관계, 그리고 기술 선택의 이유가 한 흐름 안에 놓인다. 데이터베이스를 만드는 일이면서 동시에 도메인의 언어를 다듬는 일이다.

목표는 명확하다. 임상의가 관찰한 표현형 특징을 바탕으로 놓치기 쉬운 희귀질환 후보를 찾도록 돕는 지식그래프를 구축한다. 이를 위해 온톨로지는 공통 어휘와 계층을 제공하고, 주석 파일은 질환과 표현형 사이의 실제 연결 및 그 연결을 뒷받침하는 근거를 제공한다.

01 / PROBLEM

데이터는 많지만 뜻은 저마다 다르다

지식그래프 구축의 첫 난점은 파일 형식보다 의미의 불일치다. 같은 질환을 다른 이름으로 부르고, 같은 약어가 서로 다른 개념을 뜻하며, 서로 다른 상세도로 현상을 기술한다. 이 어긋남을 바로잡지 않으면 연결은 많아져도 지식은 흐려진다.

동의 표현

같은 개념, 다른 이름

‘Type 2 diabetes’와 ‘ketosis-resistant diabetes’처럼 서로 다른 표현이 동일한 개념을 지시할 수 있다. 통합 단계에서는 문자열이 아니라 개념의 동일성을 다뤄야 한다.

약어 충돌

같은 표기, 다른 개념

‘PE’가 physical examination을 뜻하기도 하고 pulmonary embolism을 뜻하기도 한다. 문맥과 도메인 지식이 없으면 동일 식별자로 묶을 수 없다.

상세도 차이

큰 범주와 세부 범주

‘necrosis’와 ‘lobular necrosis’는 관련되지만 동일하지 않다. 계층 관계를 보존해야 넓은 질문과 세밀한 질문을 모두 처리할 수 있다.

형식 차이

문법이 달라도 의미는 이어져야 한다

XML, CSV, JSON, 관계형 데이터베이스처럼 저장 형식이 달라도 공통 온톨로지에 매핑하면 하나의 의미 공간에서 다룰 수 있다.

표현형

질환을 가진 한 개인이 드러내는 모든 표현형 특징의 총합으로 이해한다. 관찰 가능한 신체적·생화학적 이상이 진단의 단서가 된다.

질환

특정 상태를 일으키는 원인, 시간적 경과, 표현형 특징의 집합, 특정 치료에 대한 특징적 반응으로 규정되는 실체다.

Phenotypic Feature HP:0100651

제1형 당뇨병을 다른 증후군에서 관찰되는 표현형 특징으로 다룰 때 사용하는 HPO 식별자다.

제1형
당뇨병
Disease OMIM:222100

제1형 당뇨병을 독립된 질환 실체로 다룰 때 사용하는 OMIM 식별자다.

여기서 중요한 것은 하나의 명칭을 하나의 실체로 성급히 고정하지 않는 태도다. 제1형 당뇨병은 문맥에 따라 질환이면서 다른 희귀 증후군의 표현형일 수 있다. 두 식별자를 구분해 쓰는 일은 번거로운 형식주의가 아니라, 임상 판단의 맥락을 잃지 않기 위한 최소한의 예의다.

임상의가 필요로 하는 지식베이스에는 두 가지가 들어가야 한다. 첫째, 같은 장기나 시스템에 속한 표현형 이상을 맥락적으로 연결하는 구조다. 둘째, 각 표현형 이상과 질환 사이의 관계 및 그 관계가 어디에서 왔는지를 추적할 수 있는 정보다.

02 / DATA

HPO가 제공하는 두 겹의 지식

Human Phenotype Ontology 저장소는 이 사례에 두 종류의 재료를 제공한다. 하나는 표현형 개념의 표준 이름과 계층을 담은 온톨로지이고, 다른 하나는 질환과 표현형의 연결 및 그 근거를 담은 주석 데이터다.

① hpo.owl · RDF/XML

개념의 뼈대

표현형 이상을 표준화한 온톨로지다. 클래스, 레이블, 설명, 동의어, 외부 데이터베이스 교차참조, 생성자와 생성일, 상위 개념과의 관계를 담는다.

  • 다중 출처 간 상호운용성 확보
  • 표현형의 상·하위 계층 보존
  • 동의어와 외부 식별자 연결
  • RDF 트리플로 탐색 가능
② phenotype.hpoa · TSV

사례의 근거

질환과 표현형 특징의 명시적 연관을 수록한 주석 파일이다. 연관의 증거 수준, 발현 시점, 빈도, 성별, 수정자, 출처와 큐레이션 정보를 함께 제공한다.

  • 질환–표현형 직접 연결
  • 전자 주석·임상 연구·추적 가능한 저자 진술
  • 발현 연령과 동반 빈도
  • 큐레이터와 생성 날짜

OWL을 트리플로 읽기

제1형 당뇨병 항목은 하나의 긴 문장이 아니라 주어–술어–목적어의 작은 진술들로 분해된다. 각 진술이 모여 개념의 정의와 위치를 이룬다.

Subjectobo:HP_0100651
rdfs:label
Object“Type I diabetes mellitus”
subClassOf
Parent Conceptobo:HP_0000819
Diabetes mellitus

정의

췌장이 인슐린을 거의 또는 전혀 생산하지 못하는 만성 상태라는 자연어 설명을 갖는다.

동의어

Type 1 diabetes, juvenile diabetes mellitus, insulin-dependent diabetes mellitus 같은 변형을 연결한다.

교차참조

MeSH, SNOMED CT, UMLS 식별자와 연결해 다른 지식원과의 접점을 마련한다.

rdflib로 특정 URI의 트리플을 탐색하는 축약 예시
from rdflib import Graph, URIRef

g = Graph()
g.parse("hp.owl", format="xml")
subject = URIRef("http://purl.obolibrary.org/obo/HP_0100651")

for s, p, o in g.triples((subject, None, None)):
    print(s, p, o)
필드예시의미와 활용
database_idOMIM:222100OMIM·Orphanet 등에서 온 질환 식별자다. 질환 노드의 기준 키로 사용한다.
disease_nameDiabetes mellitus, insulin-dependent-1연결된 온톨로지에서 정의한 질환 이름이다.
hpo_idHP:0410050연관된 표현형 이상을 가리키는 HPO 식별자다.
referencePMID:9357814해당 연결을 뒷받침하는 논문이나 지식베이스의 출처다.
evidencePCS증거 수준이다. PCS는 published clinical study를 뜻한다.
onset연령·발현 구간표현형 특징이 언제 시작되는지 기술한다.
frequency30/30동일 질환 집단에서 해당 표현형이 관찰된 빈도다.
aspectPP는 phenotypic abnormality, I는 inheritance 하위 온톨로지를 가리킨다.
biocurationHPO:NicoleVasilevsky[2018-02-23]주석 작성 주체와 날짜를 제공해 변경 이력과 책임 소재를 추적하게 한다.

두 파일이 만나야 지식이 된다

hpo.owl은 ‘무엇이 무엇의 하위 개념인가’를 말하고, phenotype.hpoa는 ‘어떤 질환에서 어떤 표현형이 관찰되었으며 그 근거가 무엇인가’를 말한다. 전자는 의미의 구조이고 후자는 관찰과 증거의 기록이다.

03 / TECHNOLOGY

RDF인가, LPG인가

좋은 기술은 보편적으로 우월한 기술이 아니라, 현재의 목표를 가장 곧게 달성하는 기술이다. HPO 온톨로지는 RDF로 배포되지만, 이 사례의 핵심은 질환–표현형 관계마다 출처·작성자·날짜·증거를 붙이고 비교하는 데 있다.

RDF

웹 표준·의미론·상호운용성 중심

01
트리플 기반주어–술어–목적어 진술의 집합으로 지식을 표현한다.
02
온톨로지에 강함OWL·RDFS 등으로 풍부한 클래스와 속성 의미를 기술한다.
03
관계가 전역적개별 관계 인스턴스에 메타데이터를 붙이려면 별도 패턴이 필요하다.
04
SPARQL 질의분산 지식과 표준화된 의미 교환에 적합하다.

LPG

경로 탐색·개별 관계 속성·실용 질의 중심

01
노드와 고유 엣지각 관계가 독립된 정체성을 가지며 속성을 직접 보유한다.
02
키–값 속성출처, 날짜, 작성자, 증거 코드를 관계에 바로 저장한다.
03
경로 질의에 강함임상의가 표현형 조합과 질환 연결을 탐색하기에 직관적이다.
04
Cypher 질의패턴을 그림처럼 기술해 탐색과 결과 해석이 쉽다.

RDF의 장점과 과제

RDF는 HPO처럼 도메인의 개념 구조를 정교하게 기술하는 데 자연스럽다. 다만 관계마다 다른 출처와 날짜를 붙이려면 단순 트리플만으로 충분하지 않다. n-ary 관계, named graph, RDF-star 같은 추가 표현이 필요하다.

핵심 긴장

의미론적 표현력은 뛰어나지만, 개별 엣지의 사례별 메타데이터를 단순하게 다루기 어렵다.

LPG가 이 사례에 맞는 이유

임상의는 온톨로지 전체의 완전한 논리 표현보다, 특정 질환과 표현형이 어떤 연구에서 언제 연결되었는지를 쉽게 비교하고 싶어 한다. LPG는 이 연결 자체에 속성을 붙일 수 있어 요구사항을 곧바로 모델에 옮길 수 있다.

선택의 결론

제3장은 LPG와 Cypher를 핵심 도구로 채택하고, Neosemantics를 통해 RDF/OWL의 의미 자산을 Neo4j 안으로 들여온다.

A

RDF n-ary 관계

‘표현형 주석’이라는 새 중간 실체를 만들고 질환, 표현형, 출처, 작성자, 날짜를 연결한다. 명시적이지만 스키마가 커지고 유지보수가 복잡해질 수 있다.

장점: 표준 의미론 · 단점: 구조 팽창
B

Named Graph

특정 트리플을 이름 붙인 하위 그래프에 넣고 그 그래프에 메타데이터를 단다. 출처 추적에 유용하지만 수많은 named graph 관리와 미세 갱신이 부담이 될 수 있다.

장점: 문맥·프로비넌스 · 단점: 관리 복잡성
C

RDF-star

트리플 자체를 다시 주어로 삼아 속성을 붙인다. 표현은 읽기 쉬워지지만 전용 엔진 지원이 필요하고 도서에서는 성능과 채택 범위를 과제로 지적한다.

장점: 간결성 · 단점: 구현 의존성
D

LPG 관계 속성

HAS_PHENOTYPIC_FEATURE 관계에 출처, 작성자, 생성일을 키–값으로 직접 저장한다. 이 사례의 질의와 탐색 요구를 가장 단순하게 표현한다.

장점: 직접성·탐색성 · 본 장의 선택
질환OMIM:222100
HAS_PHENOTYPIC_FEATURE
source: PMID:9357814 createdBy: Nicole Vasilevsky creationDate: 2018-02-23
표현형 특징HP:0410050

두 세계 사이의 다리: Neosemantics

LPG는 RDF의 풍부한 의미론을 모두 직접 표현하지 못한다. Neo4j의 Neosemantics 플러그인은 OWL·RDFS·SKOS 같은 RDF 어휘를 가져오고 기본 추론을 수행해 이 간극을 줄인다. 즉, 저장과 질의는 LPG 방식으로 하되 온톨로지의 계층과 의미를 버리지 않는다.

04 / BUILD

온톨로지를 적재하고 주석으로 살을 붙이다

구축은 두 단계다. 먼저 HPO 온톨로지를 가져와 표현형 개념과 계층을 만들고, 이어 HPOA 주석을 읽어 질환 노드와 질환–표현형 관계를 만든다. 마지막에는 사람이 읽기 쉬운 속성을 보강하고 불필요한 자원을 정리한다.

Graph DBNeo4j 5.20.0 Enterprise
UtilityAPOC 5.20.0
Semantic BridgeNeosemantics 5.20.0
Result SnapshotHPO · Feb 2025
STEP 01 · DATABASE

전용 데이터베이스 생성

HPO 지식그래프를 분리된 데이터베이스로 초기화한다.

축약 Cypher
CREATE DATABASE hpo IF NOT EXISTS;
STEP 02 · INTEGRITY

제약조건과 인덱스 설정

Resource.uriResource.id의 유일성을 보장하고, 질환·표현형 식별자 인덱스를 만들어 구축과 검색을 안정화한다.

축약 Cypher
CREATE CONSTRAINT n10s_unique_uri IF NOT EXISTS
FOR (r:Resource) REQUIRE r.uri IS UNIQUE;

CREATE INDEX disease_id IF NOT EXISTS
FOR (n:HpoDisease) ON (n.id);

CREATE INDEX phenotype_id IF NOT EXISTS
FOR (n:HpoPhenotype) ON (n.id);
STEP 03 · CONFIG

Neosemantics 가져오기 규칙 정의

가져오기 시 네임스페이스를 무시하고 Neo4j 이름 규칙을 적용한다. 관계 유형을 대문자 형태로 정규화해 LPG 관례에 맞춘다.

축약 Cypher
CALL n10s.graphconfig.init();
CALL n10s.graphconfig.set({ handleVocabUris: "IGNORE" });
CALL n10s.graphconfig.set({ applyNeo4jNaming: true });
STEP 04 · ONTOLOGY

HPO OWL 적재와 표현형 노드 보강

RDF/XML 온톨로지를 Neo4j 그래프로 변환한다. 도서의 실험에서는 899,558개 문장이 적재됐다. HPO URI를 가진 자원에 HpoPhenotype 레이블과 사람이 쓰는 HP:... 식별자를 추가한다.

축약 Cypher
CALL n10s.rdf.import.fetch(
  "http://purl.obolibrary.org/obo/hp.owl",
  "RDF/XML"
);

MATCH (n:Resource)
WHERE n.uri STARTS WITH "http://purl.obolibrary.org/obo/HP"
SET n:HpoPhenotype,
    n.id = replace(n.uri, "http://purl.obolibrary.org/obo/HP_", "HP:");
STEP 05 · ANNOTATION

질환 노드와 질환–표현형 관계 생성

TSV 파일의 처음 다섯 행은 메타데이터이므로 건너뛴다. 질환 노드를 만들고, 같은 행의 질환 ID와 HPO ID를 이용해 HAS_PHENOTYPIC_FEATURE 관계를 생성한다.

축약 Cypher
LOAD CSV FROM $hpoa AS row
FIELDTERMINATOR '\t'
WITH row SKIP 5
MERGE (d:Resource:HpoDisease {id: row[0]})
ON CREATE SET d.label = row[1];

MATCH (d:HpoDisease {id: row[0]})
MATCH (p:HpoPhenotype {id: row[3]})
MERGE (d)-[:HAS_PHENOTYPIC_FEATURE]->(p);
STEP 06 · PROVENANCE

관계 속성에 근거와 맥락 부착

source, evidence, onset, frequency, sex, modifier, aspect, biocuration을 관계에 저장한다. 주석의 핵심 정보가 노드가 아니라 ‘연결’에 놓인다는 설계가 여기서 구현된다.

STEP 07 · ENRICH

약어를 사람이 읽는 설명으로 확장

정규식으로 큐레이터와 생성일을 추출한다. P·I, IEA·PCS·TAS 같은 코드를 설명형 속성으로 바꾸고 PMID·OMIM 식별자에서 원문 링크를 생성한다.

STEP 08 · CLEAN

목적에 불필요한 온톨로지 자원 제거

HpoPhenotypeHpoDisease가 아닌 잔여 자원과 관계를 배치로 정리한다. 탐색 대상과 사용 목적을 분명하게 유지하는 마무리 단계다.

IEA

Inferred from Electronic Annotation. OMIM의 임상 특징 등을 기계적으로 파싱해 얻은 전자 주석을 뜻한다.

PCS

Published Clinical Study. 의학 문헌에서 추출한 정보이며 보통 PubMed ID를 포함한다.

TAS

Traceable Author Statement. OMIM·Orphanet 같은 지식베이스가 출판된 근거에서 정리한 추적 가능한 진술이다.

이 과정에서 주목할 점은 데이터 적재와 인간의 이해가 따로 가지 않는다는 것이다. 코드 값을 그대로 보존하되, evidenceNameevidenceDescription 같은 설명 속성을 더한다. 그래프가 기계에게만 빠른 구조가 아니라 임상의에게도 읽히는 기록이 되도록 한 것이다.

또한 도서의 예제 중 일부는 최종 정리 전 단계에서만 실행된다. 전체 저장소 코드를 한 번에 실행하면 최종 청소로 중간 자원이 삭제되어 특정 탐색 예제가 더는 작동하지 않을 수 있다는 경고도 제시한다. 재현 가능한 실습에서는 파이프라인 단계와 데이터 상태를 함께 기록해야 한다.

05 / QUERY

표현형 조합으로 희귀질환 후보를 찾다

구축된 그래프는 임상의의 관찰을 질의로 바꾸는 도구가 된다. 제1형 당뇨병 환자에게서 추가 표현형이 발견되면, 그 특징들을 함께 갖는 다른 질환을 검색하고 일치 개수로 후보를 순위화할 수 있다.

제1형 당뇨병
OMIM:222100
다뇨
Polyuria
자가면역
Autoimmunity
다갈증
Polydipsia
혈청 1,5-AG 감소
케톤산증
Ketoacidosis
고혈당
Hyperglycemia
다식증
Polyphagia

장의 질의 사례 재생

도서가 사용한 다섯 표현형을 선택하면 알려진 표 3.2의 후보 질환을 단순 일치 개수로 다시 정렬한다. 이는 교육용 재현이며 임상 진단 도구가 아니다.

후보 질환 순위

5개 표현형을 기준으로 일치도를 계산했다.

순위질환 ID질환명일치한 표현형개수
1OMIM:619269Odontochondrodysplasia 2 with hearing loss and diabetes성장 지연, 감각신경성 청각장애, 소양증, 큰 무릎, 제1형 당뇨병5
2OMIM:618500Holoprosencephaly 12 with or without pancreatic agenesis감각신경성 청각장애, 성장 지연, 제1형 당뇨병3
3OMIM:6147003-methylglutaconic aciduria, type VIII성장 지연, 감각신경성 청각장애2
4OMIM:616192Alobar holoprosencephaly성장 지연, 감각신경성 청각장애2
5OMIM:602782Alpha-thalassemia / mental retardation syndrome, X-linked성장 지연, 감각신경성 청각장애2

결과의 해석

도서의 사례에서는 다섯 특징을 모두 공유하는 Odontochondrodysplasia 2 with hearing loss and diabetes가 가장 유력한 후보로 드러난다.

다음 조사

순위만으로 결론을 내리지 않는다. 관계에 저장된 frequency, evidence, source, URL을 확인해 해당 표현형이 얼마나 자주 보고됐고 어떤 근거가 있는지 검토한다.

그래프 질의의 힘은 단순히 다섯 단어를 검색하는 데 있지 않다. 표현형은 표준 식별자로 연결되고, 질환과의 관계에는 출처가 붙으며, 동일한 질환 후보가 여러 표현형 경로에서 반복해서 만나는지를 셀 수 있다. 문자열 검색이 흩어진 흔적을 보여준다면, 그래프 질의는 그 흔적이 한 질환으로 모이는 모양을 보여준다.

도서는 연습문제로 후보 질환 질의를 확장해 evidence_name, evidence_description, source, url 같은 관계 속성까지 반환하도록 제안한다. 이는 진단 후보의 ‘무엇’뿐 아니라 ‘왜 믿을 수 있는가’를 함께 보는 방향이다.

06 / REASONING

저장된 사실을 넘어, 계층이 품은 뜻을 꺼내다

질의는 명시적으로 저장된 관계를 찾는다. 추론은 온톨로지의 논리 규칙을 이용해 직접 저장되지 않은 연결을 드러낸다. 제3장은 HPO 계층을 따라 내분비계 이상과 더 구체적인 표현형을 함께 고려하는 예를 든다.

상위 개념내분비계 이상HP:0000818
SUBCLASSOF1–3 hops
하위 표현형갑상선·당 대사 등 더 구체적인 이상HpoPhenotype
ANNOTATED TOinference
도출 결과상위 개념과 암묵적으로 연관된 질환 후보HpoDisease

1. 계층 탐색

SUBCLASSOF*1..3 패턴으로 내분비계 이상보다 한 단계에서 세 단계 더 구체적인 표현형을 찾는다.

2. 규칙 적용

Neosemantics의 추론 기능을 이용해 하위 표현형과 연결된 질환을 상위 개념의 질환 후보로 확장한다.

3. 설명 가능한 경로

도출된 결과는 ‘어떤 하위 표현형이 어떤 상위 개념에 속하는가’라는 경로로 추적할 수 있다.

직접 질의와 온톨로지 추론의 차이

구분직접 질의온톨로지 기반 추론
출발점그래프에 실제로 저장된 질환–표현형 관계상·하위 개념, 전이 관계 같은 논리 규칙
질문“이 표현형이 직접 연결된 질환은?”“이 상위 범주에 포함되는 더 구체적인 표현형을 가진 질환은?”
장점정확하고 단순하며 결과의 근거가 직접적이다.명시적으로 기록되지 않은 관련성까지 발견 범위를 넓힌다.
주의점데이터에 없는 관계는 찾지 못한다.도출 규칙과 온톨로지 품질에 의존하며, 새로운 임상 사실을 창조하는 것은 아니다.

추론은 발견의 확대경이지 진실의 제조기가 아니다

상위 개념과 하위 개념의 구조를 따라 기존 주석의 의미 범위를 확장하는 것이다. 따라서 결과는 온톨로지의 분류와 원래 주석의 신뢰성을 함께 상속한다. 임상 판단에서는 추론 경로, 증거 코드, 출처 원문을 다시 확인해야 한다.

07 / LESSONS

제3장이 남기는 설계 원칙

이 사례는 의료 도메인을 다루지만, 그 원칙은 다른 분야에도 그대로 옮겨갈 수 있다. 핵심은 데이터의 양보다 목적, 의미, 근거, 사용자의 탐색 방식을 먼저 설계하는 데 있다.

01

목적이 기술보다 먼저다

RDF와 LPG의 선택은 이념의 문제가 아니다. 임상의가 어떤 정보를 비교하고 어떤 질문을 할 것인지에서 결정한다.

02

온톨로지는 공통 언어다

동의어, 약어 충돌, 상세도 차이를 표준 개념과 계층으로 정리해 여러 출처가 같은 의미 공간에서 만나게 한다.

03

관계도 데이터다

질환과 표현형 사이의 연결에는 출처, 작성자, 날짜, 증거 수준이 있다. 관계를 단순 선이 아니라 증거 기록으로 모델링한다.

04

기계 코드에 인간 설명을 더한다

IEA, PCS, TAS 같은 약어를 설명형 속성으로 확장해 그래프 탐색 결과를 도메인 전문가가 바로 이해하게 한다.

05

질의와 추론을 구분한다

직접 저장된 사실을 찾는 일과 계층 규칙으로 암묵 관계를 도출하는 일은 결과의 성격과 검증 방법이 다르다.

06

작고 분명한 그래프를 유지한다

목적과 무관한 온톨로지 자원을 정리하고 필요한 노드·관계·속성만 남겨 탐색성과 유지보수성을 확보한다.

Chapter 3 · Closing Note

지식그래프는 데이터를 잇는 기술이기 전에, 뜻과 근거를 잇는 작업이다.

제3장의 여정은 온톨로지 파일을 데이터베이스에 넣는 것으로 끝나지 않는다. 임상의의 질문에서 출발해, 두 종류의 HPO 데이터를 읽고, 관계의 성격에 맞는 모델을 고르고, 출처와 증거를 엣지에 보존하며, 질의와 추론으로 다시 현장에 돌려준다. 한 줄의 관계가 믿을 만한 지식이 되기까지 필요한 손길을 보여주는 장이다.

범위와 출처. 첨부 도서 『Knowledge Graphs and LLMs in Action』 제3장 “Create your first knowledge graph from ontologies”, 본문 39–64쪽만을 기반으로 작성했다. 도서의 HPO 실험 결과는 본문에 명시된 2025년 2월 HPO 버전과 Neo4j 5.20.0 / APOC 5.20.0 / Neosemantics 5.20.0 환경을 따른다. 본 페이지는 원문을 그대로 복제하지 않고 구조와 핵심 내용을 한국어로 요약·재서술한 학습용 문서다.