본문으로 건너뛰기

온톨로지와 FAIR 데이터

📍 현재 위치: 지난 장에서는 숫자가 완벽하게 전송되더라도 서로 연결되지 못하는지를 보여 주었다면, 이번 장에서는 그 문제를 해결하는 가장 근본적인 두 가지 도구 — 온톨로지(ontology)와 FAIR 원칙 — 를 소개합니다.

지난 장 왜 숫자들은 서로 연결되지 않는가: 의미적 상호운용성 문제에서 우리는 두 가지 개념 사이에 분명한 선을 그었습니다. 구문적 상호운용성(syntactic interoperability)은 두 시스템이 형식(format)에 합의한다는 뜻입니다. 메시지가 파싱되고, 필드가 맞아떨어지며, 바이트가 온전히 도착하는 것이죠. 의미적 상호운용성(semantic interoperability)은 두 시스템이 의미(meaning)에 합의한다는 뜻입니다. 한 기계에서 pH라고 표시된 필드와 다른 기계에서 pH_value라고 표시된 필드가 측정된 동일한 물리량을 가리킨다는 것을 양쪽 모두가 이해하는 것입니다. 우리는 흠잡을 데 없는 바이트 전송조차도 이질성(heterogeneity)의 늪을 남긴다는 점을 보았습니다. 같은 실세계의 대상이 어디서나 서로 다르게 기술되는 것이죠 — 서로 다른 단위, 서로 다른 식별자, 서로 다른 타임스탬프 형식, 서로 다른 어휘로 말입니다. 이번 장은 그 늪을 근본적으로 치유하는 방법에 관한 이야기입니다. 하나의 사적인 방언을 또 다른 방언으로 번역하는 어댑터를 하나 더 만드는 것이 아니라, 모든 시스템이 가리킬 수 있는 의미의 공유 모델을 세우는 일입니다.

쉽게 말하면

목록(catalog)이 없던 시절의 도서관을 떠올려 보세요. 모든 사서가 자기만의 사적인 논리에 따라 책을 꽂아 두니, 무언가를 찾으려면 그것을 꽂은 바로 그 한 사람에게 물어봐야만 합니다. 온톨로지(ontology)는 합의된 목록 체계입니다. "책", "저자", "주제"가 정확히 무엇이고 서로 어떻게 관계 맺는지를 명시해 주죠. 그래서 사람이든 기계든, 인간 통역사 없이도 대상을 찾아내고 결합할 수 있게 됩니다. FAIR는 그 목록이 실제로 작동한다는 약속입니다. 데이터를 찾고, 가져오고, 결합하고, 재사용하기 쉽다는 보장이죠. 온톨로지가 목록을 만들고, FAIR가 서비스 품질을 보증합니다.

이번 장에서 다루는 내용

우리는 온톨로지를 밑바닥부터 — 클래스(class), 관계(relation), 그리고 그것들을 표현하는 언어들(RDF, OWL, SHACL)로 — 쌓아 올립니다. 그다음 서로 다른 분야가 서로의 작업을 재사용할 수 있게 해 주는 상위 온톨로지(upper ontology)(BFO와 산업 온톨로지 파운드리)로 올라가고, 바이오제약 도메인 온톨로지(biopharma domain ontologies)와 이를 관장하는 협의회로 내려가며, FAIR 원칙을 하나씩 풀어 본 뒤, 마지막으로 이 둘이 함께 어떻게 사일로화된 파일들을 하나의 질의 가능한 그래프로 바꾸는지를 보여 주며 마무리합니다.

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

클래스, 인스턴스, 관계, 공리

위압적으로 들리는 단어를 걷어내고 나면, 온톨로지(ontology)한 도메인에 무엇이 존재하고 그것들이 서로 어떻게 관계 맺는지에 대한, 형식적이고 공유되며 기계가 읽을 수 있는 모델입니다 [3]. 이는 몇 안 되는 구성 요소로 이루어집니다.

클래스(class)는 대상의 범주입니다 — 생물반응기(Bioreactor), 세포배양공정(CellCultureProcess), pH 측정(pH Measurement)처럼요. 인스턴스(instance)(또는 개체, individual)는 한 클래스의 구체적인 한 구성원입니다 — 생물반응기 BR101생물반응기(Bioreactor)의 인스턴스입니다. 관계(relation)(또는 속성, property)는 대상들을 연결합니다 — BR101상류 공정실 2(Upstream Suite 2)일부이다(is part of); 어떤 pH 측정(pH Measurement)은 특정 배치에 관한 것이다(is about). 마지막으로 공리(axiom)는 컴퓨터가 모델을 추론할 수 있도록 모델을 제약하는 논리적 진술입니다 — 예를 들어 "모든 세포배양공정(CellCultureProcess)은 어떤(여기서 "어떤"은 적어도 하나를 뜻하는 정밀한 논리 키워드이지, 막연한 분량이 아닙니다) 살아있는세포(LivingCell)참여자로 가진다(has participant)"처럼요. 클래스는 종류에 이름을 붙이고, 관계는 그것들을 서로 엮으며, 공리는 그 엮임을 단지 시사하는 데 그치지 않고 증명 가능하게 — 즉 추론기가 그것들로부터 새로운 사실을 기계적으로 도출하고 모순을 표시할 수 있게 — 만듭니다 [3].

이것이 바로 지난 장을 넘어서는 도약입니다. pH라는 이름의 스프레드시트 열 머리글은 사람이 우연히 알아보는 이름표일 뿐입니다. 하지만 정해진 척도에서 수소 이온 활동도를 측정한다는 공리를 지닌 pH 측정(pH Measurement)이라는 온톨로지 클래스는, 일일이 손으로 알려 주지 않아도 기계가 알아보고 그에 따라 행동할 수 있는 무언가입니다.

작은 사실 네트워크: 클래스 생물반응기와 pH 측정이 각각 구체적인 인스턴스(BR101과 pH 측정값 7.02)를 '인스턴스이다' 화살표로 연결하고, 관계가 인스턴스들을 잇습니다 — BR101은 상류 공정실 2의 일부이고, pH 측정값은 BATCH-2026-001에 관한 것이며, 그 배치는 BR101에 의해 생산되었습니다.

클래스는 대상의 종류에 이름을 붙이고, 인스턴스는 구체적인 구성원이며, 관계는 그것들을 컴퓨터가 따라갈 수 있는 작은 사실 네트워크로 연결합니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

언어들: RDF 트리플, OWL 논리, SHACL 제약

그런 모델을 어떻게 적어 두어야 어느 시스템이든 읽을 수 있을까요? 그 토대는 RDF 1.1 — 자원 기술 프레임워크(Resource Description Framework, W3C, 2014)로, 모든 사실을 트리플(triple)로 표현합니다. 트리플이란 주어 – 술어 – 목적어의 형태로, BR101 — isPartOf — Suite2처럼 표현됩니다 [7]. 각 부분은 전 세계적으로 유일한 웹 식별자(IRI)로 명명되므로, 여기의 "BR101"이 다른 어딘가에 있는 누군가의 "BR101"과 혼동될 수 없습니다. IRI는 전 세계적 유일성을 보장하려고 웹 주소처럼 쓰이지만, 그것은 이름이지 목적지가 아닙니다 — 브라우저로 열 수 있는 실제 페이지를 가리킬 필요가 없습니다(아래의 http://example.org/…는 일부러 아무 데도 가지 않는 예약된 자리표시 주소입니다). 같은 트리플을 적는 여러 동등한 텍스트 형식 중 하나인 N-Triples 직렬화로 적어 보면, 그 하나의 사실은 다음과 같이 보입니다.

<http://example.org/BR101> <http://example.org/isPartOf> <http://example.org/Suite2> .

수백만 개의 트리플을 쌓아 올리면 지식 그래프(knowledge graph) — 고립된 표의 행들이 아니라 서로 연결된 사실들의 그물망 — 가 됩니다 [7]. 3권은 바로 이 그래프를 실행 가능한 코드로 만듭니다. 3권의 지식 그래프 장은 RDFLib로 바이오공정 CSV를 RDF 트리플로 적재하는데, 거기서 BATCH-2026-001 monomerPct 98.611은 하나의 구체적인 행이 되고 DS-001 derivedFrom PApool-001은 하나의 구체적인 간선이 됩니다 — 이번 장이 해부하는 그 데이터 포인트가 물리적 실체가 되는 것입니다.

OWL 2 — 웹 온톨로지 언어(Web Ontology Language, W3C, 2012) — 은 논리(logic)를 더하는 계층입니다. 앞서 말한 클래스, 관계, 공리를 자동 추론기가 새로운 사실을 추론할 수 있을 만큼(BR101이 공정실 2에 있고 공정실 2가 4동에 있다면, 추론기는 BR101이 4동에 있다고 결론짓습니다) 그리고 모순을 탐지할 수 있을 만큼 형식적으로 진술할 수 있게 해 줍니다 [8].

미리 짚고 넘어갈 만한 흔한 혼동이 하나 있습니다. OWL은 열린 세계(open-world) 방식입니다. 진술되지 않은 것은 거짓이 아니라 단지 알려지지 않았을 뿐이라고 가정하죠. 그런데 이것은 데이터 검증에는 맞지 않습니다. 데이터 검증에서는 필수 필드가 빠져 있으면 그것은 진짜로 오류이기 때문입니다. 그 일은 SHACL — 형상 제약 언어(Shapes Constraint Language)이며 W3C 표준 — 의 몫입니다. SHACL은 RDF 그래프를 형상(shape)에 비추어 검사합니다. "모든 배치 기록에는 정확히 하나의 승인 서명이 있어야 한다"와 같은 규칙이죠. 그리고 위반 사항을 보고합니다 [9]. 한마디로, OWL은 대상이 무엇을 의미하는지를 말하고, SHACL은 유효한 기록이 무엇을 담고 있어야 하는지를 말합니다.

그 출하 규칙은 손으로 휘젓는 비유가 아니라, 검증기가 실행하는 작은 Turtle 블록으로 적힌 것입니다. 출하되는 모든 배치의 단량체 순도를 검문하는 SHACL 형상(SHACL shape)(유효한 기록이 무엇을 담아야 하는지를 말하는, RDF로 표현된 닫힌 세계 규칙)은 다음과 같이 보입니다.

# SHACL 형상: 출하되는 모든 로트는 정확히 하나의 규격 내 단량체 결과를 지녀야 합니다.
bp:ReleaseShape a sh:NodeShape ;
sh:targetClass bp:Batch ;
sh:property [
sh:path bp:monomerPct ;
sh:minCount 1 ; sh:maxCount 1 ; # present and singular — no cherry-picking a repeat
sh:datatype xsd:float ;
sh:minInclusive 95.0 ; # at or above the release floor
sh:message "Monomer purity is missing, duplicated, or below the 95.0 % release limit." ] .

sh:minCount 1은 어떤 추론기도 공급하지 못하는 닫힌 세계의 절반입니다. 단량체 결과가 그저 부재한 로트를 실패시키죠 — LIMS 통합이 어떤 행을 조용히 누락할 때 열리는 바로 그 간극입니다. 4권은 이 규율을 라이프사이클로 펼쳐 냅니다. 역량 질문(CQ, competency question)(어떤 모델링도 하기 전에 작성하는, 완성된 온톨로지가 답할 수 있어야 하는 질문 — 예컨대 출하된 로트는 모든 필수 품질 속성에 대해 정확히 하나의 규격 내 값을 지니는가?)에서 출발해, 그 질문을 위의 형상으로 바꿔 실행 가능한 인수 테스트로 만듭니다. 4권의 명세 장은 그런 질문 스물세 개를 목록화하며, 그 출하 게이트 장은 바로 그 ReleaseShape가 실제 규격 이탈 로트를 한도를 위반한 정확히 그 한 경로에서 실패시키는 모습을 보여 줍니다 — 이번 장이 밑그림으로 그린 그 게이트를, 코드로 실행한 것입니다.

RDF 트리플 하나의 해부

트리플이 왜 이 모든 것의 원자인지를 보려면, 출하 기록에서 실제 사실 하나 — 한 배치의 단량체 순도 — 를 꺼내 부분별로 펼쳐 보면 됩니다. 스프레드시트에서는 그저 한 칸의 값입니다. 98.611. 트리플로 만들면 그것은 어떤 사람도 해석할 필요가 없는, 스스로를 기술하는 진술이 됩니다.

주어(subject)는 기술되는 대상이며, 지역적인 이름표가 아니라 IRI로 명명됩니다 — bp:BATCH-2026-001로, 네임스페이스 접두어에 지역 식별자가 더해져 전 세계적으로 유일한 웹 형식의 이름을 이룹니다(웹 주소처럼 보이고 유일성이 보장되지만, 작동하는 웹사이트를 가리킬 필요는 없습니다). 그래서 이 배치는 다른 어떤 시스템의 "BATCH-2026-001"과도 혼동될 수 없습니다. 여기서 bp: 접두어는 배치 온톨로지의 네임스페이스 IRI에 대한 약칭일 뿐이어서, bp:BATCH-2026-001은 위에 보인 완전한 웹 형식 이름으로 펼쳐집니다. 술어(predicate)는 관계이며, 결정적으로 이것은 사적인 열 머리글이 아닙니다. 그것은 bp:monomerPct로, 공유 온톨로지에서 가져온 속성(관계, property)입니다 — 술어는 속성이고, 주어 bp:BATCH-2026-001은 클래스 bp:Batch의 인스턴스입니다 — 그래서 이 사실을 내보내는 실험실 시스템과 공장 시스템은 정확히 같은 의미를 가리킵니다. 목적어(object)는 값이 자리하는 곳이며, 두 가지 형태로 나타납니다. 타입 지정 리터럴(typed literal)로서는 결코 맨숫자가 아닙니다 — 그것은 데이터타입 xsd:float를 지녀 기계가 텍스트가 아니라 숫자로 파싱합니다. 단위까지 실어 나르기 위해, 값은 그 자체로 작은 수량 노드에 자리하는데 — 이 노드 또한 평범한 트리플 하나로 닿게 되므로, 세 부분 규칙을 깨지 않고 단위가 함께 따라옵니다 — 이 노드가 QUDT 단위 IRI unit:PERCENT로 그 단위를 고정하므로 98.611이 명확하게 98.611 %를 뜻합니다. 이것이 바로 지난 장이 원시 전송에는 빠져 있다고 보여 준 정규화입니다.

또는 목적어가 그 자체로 IRI 간선(edge)일 수도 있습니다 — bp:derivedFrom → bp:SEED-001 — 이 경우 트리플은 측정값이 아니라 계보 사슬의 한 고리가 됩니다(생물반응기 배치는 그 종균 배양 로트로부터 유래합니다). 한 주어에 대한 그런 트리플 세 개를 쌓으면 타입 지정 간선을 지닌 Batch 노드가 되고, 그다음 SHACL 형상이 그것을 검문하여, 배치가 출하를 주장하기 전에 정확히 하나의 monomerPct를 지니는지 확인합니다.

이 계보 사슬은 한 단계 하류, 즉 첫 번째 정제 단위공정에서 가장 생생합니다. Protein A 포집(capture) — 정화된 수확물에서 항체를 그 Fc 줄기로 붙잡아 낮은 pH에서 용출하는 친화 크로마토그래피 단계 — 은 포집 풀(capture pool) PApool-001을 만들어 내고, 그 풀은 정화된 수확물로부터 derivedFrom이며, 그 수확물은 생물반응기 배치로부터 derivedFrom입니다. 그런데 포집은 출하 기록이 나중에 대조해야 하는 측정 트리플들도 함께 쏟아 냅니다. 이 단계에서 2~3로그 줄어드는 숙주세포단백질(HCP, host-cell protein)(생산 세포주에서 남은 단백질, 불순물) 결과, 누출 Protein A(leached Protein A) 값(수지 비드에서 제품으로 떨어져 나오는 리간드로, 그 자체가 ppm 수준으로 추적되는 오염물), 그리고 작업자가 선택한 풀링 윈도우(pooling window)(용출 피크에서 두 절단점 사이의, 제품으로 수집한 구간)가 그것입니다. 각각이 수량이므로, 각각은 모호하지 않으려면 QUDT 단위가 필요합니다 — HCP와 누출 Protein A에는 하류 시스템이 잘못 읽을 수 있는 맨 ppm이 아니라 unit:NanoGM-PER-MilliGM이 필요하죠. 공유된 술어와 고정된 단위가 없으면, 크로마토그래피 데이터 시스템·LIMS·배치 기록에서 도착하는 같은 포집 단계 HCP 숫자가 바로 이번 장이 없애려는 그 늪이 됩니다 — 그리고 계보 간선 DS-001 derivedFrom PApool-001이 바로, 실패한 원료의약품 로트에서 그 결함을 실어 나르고 있을지 모를 포집 풀까지 리콜 질의가 거슬러 걸어갈 수 있게 해 주는 것입니다.

RDF 트리플 하나의 식별 카드: 주어 bp(네임스페이스 접두어와 지역 식별자로 만들어진 IRI), 술어 bp(공유 온톨로지 속성), 그리고 두 가지로 표현된 목적어 — 값 98.611에 데이터타입 xsd와 QUDT 단위 PERCENT를 지닌 타입 지정 리터럴, 또는 bp을 가리키는 IRI 간선 bp — 그다음 트리플 세 개가 쌓여 타입 지정 간선을 지닌 하나의 Batch 노드를 이루고, SHACL 형상 게이트가 출하 전에 그것을 검사합니다. 트리플로 표현한 하나의 출하 결과: 주어와 술어는 전 세계적으로 유일한 IRI이고, 목적어는 QUDT 타입 지정 리터럴이거나 다른 노드로 향하는 간선이며, 쌓인 트리플은 SHACL 형상이 검증할 수 있는 Batch 노드를 이룹니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

이것은 연결성 계층이 살아 있는 태그에 적용하는 것과 똑같은 식별 카드 규율입니다. OPC UA 노드가 맨숫자가 아니라 품질, 타임스탬프, 공학 단위와 함께 묶인 값을 돌려주듯이, RDF 트리플은 값이 그 주어, 공유된 술어, 그리고 타입과 단위를 지닌 목적어 없이 떠도는 것을 허용하지 않습니다. 차이는 도달 범위입니다. OPC UA 노드는 통신선을 건너 하나의 수신자에게 정체성을 전달하고, 트리플은 어떤 시스템이든 나중에 질의할 수 있는 그래프 속으로 정체성을 전달합니다.

참고

웹 페이지를 원시 프로토콜로 직접 작성하지 않듯이, 트리플도 손으로 일일이 작성하지 않습니다. 온톨로지는 도메인 전문가들이 전용 편집기로 만들고 유지하는데, 온톨로지 저작의 사실상 표준인 스탠퍼드(Stanford)의 무료 오픈소스 도구 Protégé가 가장 흔히 쓰이며, 상용 도구인 TopBraid Composer와 오픈소스 도구인 VocBench도 함께 사용됩니다. 그 밑에 깔린 RDF/OWL/SHACL은 교환 형식이며, 이는 스타일이 입혀진 웹 페이지 밑에 깔린 HTML이 형식인 것과 같습니다.

온톨로지 스택: 상위, 산업, 도메인

상위 온톨로지와 BFO 척추

지난 장에서는 이 문제의 해법으로 상위 온톨로지와 BFO를 지목했습니다. 이번 장에서는 BFO가 실제로 어떻게 작동하는지를 살펴봅니다. 모든 분야가 저마다의 온톨로지를 만들도록 내버려 두면 이런 문제가 생깁니다. 생물학자의 "공정"과 엔지니어의 "공정"이 점점 어긋나고, 그러면 우리는 한 단계 더 높은 차원에서 다시 이질성으로 돌아가게 됩니다. 그 해법이 상위(upper)(또는 기초, foundational) 온톨로지입니다. 모든 것이 그 아래에 속하는, 가장 일반적인 범주들로 이루어진 작고 도메인 중립적인 어휘 체계죠 — 시간 속에서 지속되는 것 대 일어나는 것, 성질(quality), 역할(role), 기능(function) 등입니다 [3]. 모든 도메인 온톨로지를 같은 척추 위에 세우면, 그것들은 설계상 자연히 재사용 가능하고 결합 가능해집니다.

과학과 공학에서 선도적인 상위 온톨로지는 BFO기초 형식 온톨로지(Basic Formal Ontology) — 이며, 이는 취미 삼아 만든 프로젝트가 아닙니다. ISO/IEC 21838-2라는 국제 표준으로 발행되어, BFO를 적합한 최상위 온톨로지로 확립합니다 [4]. BFO의 핵심 발상은 실재를 지속체(continuant)(전체로서 시간 속에서 지속되는 것 — 세포, 생물반응기, 원료의약품 배치)와 발생체(occurrent)(시간 속에서 전개되는 것 — 발효, 정제 단계)로 나누는 것입니다 [3]. 모든 도메인 용어를 이 둘 중 하나 아래에 고정하면 모델링 오류의 전체 범주를 미리 막을 수 있습니다.

이 조율되고 원칙에 기반한 접근법은 생명과학에서 OBO 파운드리(OBO Foundry)가 선구적으로 개척했습니다. 이는 생의학 온톨로지들이 서로 겹치는 대신 맞물리도록 공유된 설계 규칙에 따라 구축하는 공동체입니다 [2]. 제조 분야는 그 교훈을 받아들여 자신만의 대응물을 만들었습니다. 바로 산업 온톨로지 파운드리(Industrial Ontologies Foundry, IOF)로, OBO 파운드리의 거버넌스를 명시적으로 본떠 만들었으며, 맨 위에 BFO를 두고, 모든 제조 도메인이 특화할 수 있는 업계 전반의 개념을 공급하는 BFO 정렬 중간 계층 IOF 코어 온톨로지(IOF Core Ontology)를 갖추고 있습니다 [6][5].

계층화된 온톨로지 스택: 상위 온톨로지인 BFO(ISO/IEC 21838-2)가 중간 계층 산업 개념인 IOF 코어와 OBO 파운드리 생의학 온톨로지로 갈라져 내려가고, IOF 코어는 IOF 바이오제약 제조 온톨로지로 이어지며, 앨로트로프 AFO 분석 실험실 데이터는 BFO에 정렬되고, IOF 바이오제약 온톨로지와 AFO가 모두 하나의 질의 가능한 바이오제조 지식 그래프로 수렴합니다.

계층화된 스택: 맨 위에 하나의 중립적 상위 온톨로지, 그 아래에 산업용 중간 계층, 맨 아래에 바이오제약 특화 온톨로지가 있으며, 이 모두가 하나의 그래프로 흘러듭니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

도메인 온톨로지: IOF 바이오제약 제조와 BMIC 거버넌스

스택의 맨 아래에는 바이오의약품 제조의 구체적인 사항에 이름을 붙이는 도메인 온톨로지(domain ontologies)가 있습니다. 여기서 가장 중요한 두 가지 노력이 있습니다.

첫 번째는 IOF 바이오제약 제조 온톨로지(IOF biopharmaceutical-manufacturing ontologies)입니다. 이는 IOF 스택의 바이오제약 특화 부분으로, IOF 내 OAGi(Open Applications Group)와 NIIMBL(미국 바이오제약 제조 혁신 연구소, National Institute for Innovation in Manufacturing Biopharmaceuticals) 노력으로 개발되어 2024–2025년에 걸쳐 오픈소스로 공개되었습니다 [11]. 이것들은 BFO와 IOF 코어를 상속하므로, 거기서 정의된 세포배양공정(CellCultureProcess)는 자동으로 발생체가 되고, 다른 어떤 IOF 기반 산업 온톨로지와도 자동으로 상호운용됩니다. 오픈소스 스택이 자신의 그래프에 토대를 부여할 때 가져다 쓰는 것이 바로 이 용어들입니다. 3권의 배치·장비 모델은 물리적 장비 계층 구조를 이 제조 개념들에 매핑하며, 그 지식 그래프 빌드는 사적인 클래스를 발명하지 않고 Batch 노드를 IOF에 정렬합니다. IOF 개념들은 공장의 거래 표준과 경쟁하기보다 맞물립니다 — ISA-95(공장 현장 시스템과 비즈니스 시스템이 생산 정보를 교환하는 방식에 대한 표준 모델)와 그 XML 직렬화 B2MML(Business to Manufacturing Markup Language)은 MES가 이미 내보내는 배치·자재·장비 메시지를 정의하며, 온톨로지는 그 메시지에 의미적 계층을 부여하여 B2MML 생산 응답 속의 Batch와 그래프 속의 Batch가 같은 IOF 개념으로 해소되게 합니다.

참고

이 책에서 BMIC는 온톨로지 산출물 자체가 아니라 거버넌스 기구를 가리킵니다 — IOF 내에서(OAGi/NIIMBL 노력과 더불어) 이 바이오제약 온톨로지들을 개발하고 관리하는 바이오제약 제조 산업 협의회(Biopharmaceutical Manufacturing Industry Council)입니다. 이는 OBO와 IOF가 한 사람이 어휘를 소유하는 방식이 아니라 공유된 원칙을 통해 자신들을 관장하는 협의회에 이름을 붙이는 것과 같은 맥락입니다 [2][6].

분석 데이터를 위한 앨로트로프 AFO

두 번째는 앨로트로프 재단 온톨로지(Allotrope Foundation Ontologies, AFO)로, 연결성 장에서 만났던 앨로트로프 분석 데이터 스택의 바탕이 되는 어휘 체계입니다. 이는 실험실 측정(크로마토그래피, 분광법 등)에 벤더에 구애받지 않는 하나의 의미를 부여하는 온톨로지 모음으로, 어떤 장비가 만들어 냈든 결과가 같은 뜻을 갖게 합니다. 이것들은 물리적 작업 흐름에서 배치에 대해 출하되는 분석 결과QC 출하를 통과시키는 분석 수치 — 바로 그것이며, 3권은 분석 실험실 LIMS/ELN 장에서 이를 그래프에 연결해, HPLC 순도 결과를 헐거운 열이 아니라 그 AFO 의미와 함께 포착합니다. AFO는 실험실을 다루고, IOF 바이오제약 제조 온톨로지는 제조 공정을 다룹니다. 같은 상위 온톨로지를 공유하도록 설계되었기에, 이들은 또 하나의 어댑터가 아니라 같은 지식 그래프에서 만나도록 만들어졌습니다.

FAIR: 데이터를 위한 서비스 보증

FAIR 원칙: 찾을 수 있고, 접근 가능하며, 상호운용 가능하고, 재사용 가능함

온톨로지는 데이터에 의미를 부여합니다. FAIR 원칙(FAIR principles)은 데이터에 품질 기준을 부여합니다. 2016년에 발표된 FAIR는 약어로, 찾을 수 있고(Findable), 접근 가능하며(Accessible), 상호운용 가능하고(Interoperable), 재사용 가능하다(Reusable)는 뜻입니다. 그리고 놓치기 쉬운 그 핵심 통찰은, 이 원칙들이 기계 작동성(machine-actionability)을 겨냥한다는 것입니다. 데이터는 사람의 도움을 최소화하면서 컴퓨터가 사용할 수 있어야 합니다. 현대 데이터의 양과 복잡성이 수작업 처리의 한계를 넘어섰기 때문입니다 [1].

하나의 숫자에 대한 이질적인 기술들이 공유된 온톨로지를 거쳐 FAIR하고 기계 작동 가능한 데이터로 수렴하는 3단계 여정 온톨로지는 숫자에 합의된 하나의 의미를 부여합니다 — 데이터를 FAIR하게 만드는 토대입니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

각 원칙을 바이오제조 사례와 함께 풀어 보면 다음과 같습니다 [1].

  • 찾을 수 있음(Findable) — 모든 데이터셋은 전 세계적으로 유일하고 영속적인 식별자와 풍부한 메타데이터를 지녀, 위치를 찾을 수 있습니다. 배치 기록은 영구 ID를 지니고 그 제품, 사이트, 날짜와 함께 색인됩니다 — 어느 엔지니어의 노트북에 final_v3_REALfinal.xlsx로 파묻혀 있는 것이 아니라요.
  • 접근 가능(Accessible) — 일단 찾으면, 데이터는 그 식별자를 통해 표준 프로토콜로, 명확한 접근 규칙과 함께 검색할 수 있습니다. 감사관의 시스템은 문서화된 인터페이스를 통해 그 배치 기록을 요청할 수 있고, 자신이 그것을 가져도 되는지 명확하게 통보받습니다.
  • 상호운용 가능(Interoperable) — 데이터는 공유되고 형식적인 어휘 체계 — 바로 위에서 본 온톨로지 — 를 사용하므로, 다른 데이터와 결합됩니다. 그 기록의 pH 필드는 다른 모든 시스템이 사용하는 동일한 온톨로지 속성을 가리키므로, 실험실과 공장의 측정값을 추측 없이 병합할 수 있습니다.
  • 재사용 가능(Reusable) — 데이터는 그 맥락, 출처(provenance, 어디서 왔고 어떻게 만들어졌는지), 그리고 명확한 사용 라이선스와 함께 풍부하게 기술되어, 다른 사람들이 신뢰하고 재사용할 수 있습니다. 나중의 공정 개발이나 기술 이전(tech-transfer) 팀은 배치 데이터의 조건, 계보, 사용 약관이 데이터와 함께 따라오기 때문에 그 데이터를 재사용할 수 있습니다. 이것은 바로 스케일업과 기술 이전(검증된 공정을 작은 개발 반응기에서 더 큰 생산 반응기로, 또는 한 사이트에서 다른 사이트로 옮기는 일)이 의존하는 데이터입니다. 수신 사이트는 중요 공정 파라미터, 계보, 단위가 전화로 일일이 열의 의미를 다시 알아내야 하는 스프레드시트가 아니라 해석 가능한 상태로 도착해야만 송신 사이트의 공정을 재현할 수 있습니다 — 그것이 바로 깔끔한 이전과 동등성(comparability) 조사의 차이입니다.
참고

FAIR는 공개(open)와 같은 것이 아닙니다. 접근 가능하다는 것은 접근 조건이 명확하고 검색 메커니즘이 표준적이라는 뜻이지, 누구나 모든 것을 읽을 수 있다는 뜻이 아닙니다 [1]. 고도로 기밀이며 규제 대상인 제조 데이터도 엄격히 제한된 상태를 유지하면서 온전히 FAIR일 수 있습니다 — 사실 그것은 통제된 상태를 유지해야만 합니다. 여기서 관장하는 기록들은 21 CFR Part 11과 EU Annex 11 — 전자 기록 및 서명에 관한 미국 FDA 규정과 전산 시스템에 관한 그 유럽 대응물 — 의 적용을 받으며, 이 규정들은 접근 통제, 감사 추적, 추적성을 의무화하기 때문입니다. 원칙은 잘 정의된 접근이지, 무료 접근이 아닙니다.

FAIR, ALCOA+, 그리고 검증된 시스템

FAIR와 규제 당국의 데이터 무결성 틀은 가까운 사촌이며, 서로를 강화하므로 명시적으로 매핑해 둘 가치가 있습니다. GMP 조사관이 비추어 보는 기대 사항은 ALCOA+입니다 — 데이터가 귀속 가능(Attributable), 가독(Legible), 동시적(Contemporaneous), 원본(Original), 정확(Accurate)해야 한다는 약어에, 완전·일관·영속·이용 가능이라는 네 가지 확장이 더해진 것이죠. ALCOA+의 여러 글자는 타입 지정되고 출처를 지닌 트리플이 제공하는 것과 거의 일대일로 매핑됩니다. 트리플의 귀속 가능한 서명자 간선(bp:approvedBy)은 귀속 가능이고, QUDT 타입에 단위를 지닌 목적어는 정확하고 원본이며(값이 그 의미를 벗긴 채 떠도는 일이 없습니다), 영속 IRI에 풍부한 메타데이터가 더해진 것은 이용 가능이자 FAIR의 찾을 수 있음이고, derivedFrom 계보는 완전하고 일관된 계통입니다. FAIR의 재사용 가능과 ALCOA+의 완전은 실무에서 같은 요구를 두 각도에서 본 것입니다.

하지만 ALCOA+를 충족하는 트리플도, 그것을 만들어 낸 시스템이 작동함을 입증받았을 때에만 신뢰할 수 있습니다 — 그래서 FAIR 데이터는 검증된(validated) 전산 시스템을 전제합니다. 동반 장 CSV에서 CSA로가 이를 다룹니다. 출하 기록 시스템은 무거운 CSV(전산 시스템 검증, Computerized System Validation)에서 위험 기반 CSA(컴퓨터 소프트웨어 보증, Computer Software Assurance — 환자 위험이 있는 곳에 검증 노력을 쏟는 FDA의 스크립트보다 비판적 사고 접근)로의 전환 아래, IQ/OQ/PQ(설치·운영·성능 적격성 평가 — 소프트웨어가 명세대로 설치되고, 작동하며, 실제 작업부하에서 성능을 내는지에 대한 입증)를 통해 적격성 평가를 받습니다. 그래프는 그것을 먹인 검증된 LIMS·MES·히스토리언만큼만 신뢰할 수 있습니다. 검증 없는 FAIR는 그저 잘 정리된 풍문일 뿐입니다.

기계 작동 가능한 그래프가 ML의 토대인 이유

FAIR의 핵심에 있는 "기계 작동성"은 추상이 아니라, 이 데이터 위에서 신뢰할 수 있는 머신러닝을 하기 위한 전제 조건이며, 그 연결은 다음 책이 이어받는 지점이므로 그어 둘 가치가 있습니다. 모델은 그 밑에 깔린 데이터의 구조만큼만 정직하며, 그 이유는 구체적으로 세 가지입니다.

첫째, 공유된 술어가 누출 없는 분할을 가능하게 합니다. 공정 데이터로부터 배치 출하를 예측하는 모델은 행을 배치별로 묶어 — 즉 배치 단위 교차검증(leave-one-batch-out)(일부 배치로 학습하고 완전히 따로 떼어 둔 배치로 시험하여, 점수가 절반쯤 외운 행이 아니라 진짜로 새로운 배치에서의 성능을 반영하게 하는 방법) — 검증되어야 합니다. 그 묶음은 모든 행이 같은 derivedFrom 배치 IRI를 지닐 때에만 신뢰할 수 있습니다. 공유 계보 간선이 없으면 한 배치의 행들이 학습/시험 경계를 넘어 누출되고, 보고된 정확도는 듣기 좋은 착각이 됩니다. 그래프의 계통이 그 묶음 키입니다. 5권의 모델과 검증 장이 바로 이 배치 단위 중첩 교차검증을 구축합니다.

둘째, 단위와 운영 범위가 적용 범위를 정의합니다. QUDT 타입에 적격 범위를 지닌 값은, 모델이 새로운 입력이 학습된 범위의 바깥에 놓일 때를 — 적용 범위(applicability domain), 즉 모델의 예측을 신뢰할 수 있는 입력 영역을 — 선언하게 해 주므로, 범위 밖 스펙트럼이 조용히 외삽되어 자신만만하게 틀린 답이 되는 대신 표시됩니다. 맨숫자는 그런 범위를 지니지 않습니다.

셋째, 똑같은 출처 간선이 모델 계통입니다. 배포된 모델은 그 자체로 그래프의 노드입니다 — 해시로 고정된 데이터셋을 trainedOn이고, 드리프트 탐지기가 monitoredBy이며, 이전 버전을 supersedes이죠 — W3C PROV-O(데이터와 산출물이 어디서 왔는지를 기록하는 표준 어휘) 어휘가 의도하는 방식 그대로 출처를 모델링한 것입니다. 그 계통이 바로 모델 드리프트(데이터 기반 모델이 낡아 가는 것, MLOps 관심사로 감시됨)와 진짜 공정 드리프트(살아 있는 생물이 실제로 변하는 것)를 갈라 주며, 규제 당국이 어떤 모델이 어떤 배치에 대해 무엇을 결정했는지 추적하게 해 줍니다. 위의 미해결 간극 — 통제된 어휘 없이 손으로 작성된 메타데이터 — 은 따라서 ML의 간극이기도 합니다. 정렬되지 않은 술어로 학습된 학습 시스템은 그것이 벗어나려던 늪을 그대로 물려받습니다.

왜 중요한가

데이터 관리에서 온톨로지와 FAIR는 되풀이되는 값비싼 프로젝트를 영구적인 자산으로 바꿔 줍니다. 이것들이 없으면, 한 배치의 생물반응기 이력, 크로마토그래피 결과, 출하 시험을 결합하고 싶을 때마다 누군가가 어긋난 이름, 단위, ID를 맞추기 위해 일회용 코드를 작성해야 하고, 시스템이 바뀌면 그것을 다시 작성해야 합니다. 공유된 온톨로지가 있으면, 그 데이터셋들은 이미 하나의 언어로 말합니다. FAIR가 있으면, 그것들은 이미 찾을 수 있고, 검색 가능하며, 신뢰할 만큼 충분히 풍부하게 기술되어 있습니다. 통합은 더 이상 영웅적인 데이터 고고학 작업이 아니라 하나의 질의가 됩니다. 그것이 바로 당신이 가지고 있는 데이터와 실제로 쓸 수 있는 데이터의 차이입니다.

이질적 데이터에서 기계가 사용 가능한 지식으로

이 기계 전체가 한 번 처음부터 끝까지, 위에서 해부한 그 하나의 숫자에 대해 돌아가는 것을 지켜보면 도움이 됩니다. 세 시스템이 한 배치의 단량체 순도를 보고하는데 — 의미적 상호운용성 장이 경고한 그대로 — 그것들은 중요한 모든 면에서 어긋납니다. LIMS는 단위를 기록하지 않은 채 monomer_pct = 98.611을 내보내고, 히스토리언은 반올림되고 퍼센트가 이름표에 묻힌 태그 Monomer% = 98.6을 기록하며, CSV는 "frac"이 분수인지 퍼센트인지 알 수 없는 %Mono,0.98611,frac을 적습니다. 구문적으로는 셋 다 잘 전송됩니다. 의미적으로는 늪입니다.

이제 스택을 적용합니다. 온톨로지 정렬은 세 열 이름을 모두 하나의 공유 술어 bp:monomerPct에 매핑하므로, 의미는 더 이상 머리글에서 추측되지 않습니다. QUDT 정규화는 분수를 퍼센트로 변환하고 단위와 데이터타입을 고정하므로, 값은 더 이상 모호하지 않습니다 — 98.611, xsd:float, unit:PERCENT. 그 결과는 하나의 타입 지정 트리플, 즉 스스로를 완전히 기술하는 사실입니다. 그 트리플은 SHACL 게이트 — 배치가 출하되기 전에 정확히 하나의 monomerPct, 범위 안의 값 — 를 통과하고, 적합하면 하나의 RDF 그래프로 적재됩니다. 거기서 배치는 노드가 되고, derivedFrom 간선들이 원료의약품을 포집 풀과 생물반응기 배치를 거쳐 세포 은행까지 거슬러 이어 주며, 타입 지정 결과가 거기에 매달립니다. 그 계보를 복원하는 일은 더 이상 데이터 고고학 프로젝트가 아니라, RDF의 질의 언어인 SPARQL 질의 하나가 derivedFrom 사슬을 한 줄로 따라가는 일입니다. 원료의약품 잎 노드 bp:DS-001(사슬의 마지막 노드여서, 그 조상 탐색이 상류 전체에 닿습니다)에서 출발합니다.

SELECT ?ancestor WHERE { bp:DS-001 (bp:derivedFrom)+ ?ancestor . }

여기서 SELECT은 무엇을 반환할지 지정하고, WHERE는 일치시킬 패턴을 담으며, ?ancestor변수 — 엔진이 일치하는 모든 노드로 채우는 빈칸 — 입니다. +derivedFrom을 한 홉 이상 따라가라는 뜻이므로, 포집 풀, 생물반응기 배치, 세포 은행, 그리고 그 사이의 모든 것을 아우르는 계보 전체가 단 하나의 패턴에서 떨어져 나옵니다.

이것은 마침내 결합 가능해진 배치의 데이터 그림자입니다 — 분자는 현장에서 한 번 만들어졌지만 그 데이터는 열두 개 시스템에 두 배로 흩어져 있었고, 오직 공유된 술어와 타입·단위를 지닌 목적어만이 그 흩어진 그림자들을 하나의 배치 ID 위에서 다시 모아, 기계가 신뢰할 수 있는 하나의 기록으로 만들어 줍니다.

4단계 파이프라인: 왼쪽의 세 이질적 소스 행(단위 없는 LIMS 필드 monomer_pct = 98.611, 반올림된 히스토리언 태그 Monomer% = 98.6, CSV %Mono,0.98611,frac)이 정렬·정규화 단계로 흘러들어 모든 이름을 bp에 매핑하고 분수를 단위 PERCENT와 데이터타입 xsd를 지닌 98.611로 변환합니다. 이것은 하나의 타입 지정 RDF 트리플이 되어, 출하 전에 정확히 하나의 monomerPct를 확인하는 SHACL 게이트를 통과하고, 적합하면 RDF 지식 그래프로 적재됩니다. 거기서 Batch 노드는 derivedFrom 간선으로 종균 배양과 세포 은행까지 이어지고, QUDT 타입 지정 단량체 결과가 배치에 매달리며, 하나의 SPARQL 속성 경로 질의가 계보를 따라갑니다. 단번에 이루어지는 완전한 치유: 이질적 열들이 하나의 온톨로지 술어에 정렬되고, QUDT로 정규화되며, SHACL로 검문되고, 하나의 SPARQL 질의가 따라갈 수 있는 그래프 속으로 트리플로 적재됩니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

이것이 바로 이 삼부작 전체의 데이터 포인트 실타래가 구체화된 모습입니다. 물리적 배치는 생산 생물반응기에서 만들어지고 QC를 거쳐 출하되며, 여기서 공유된 술어와 단위를 지닌 타입 지정 트리플이 되고, 3권에서는 그 트리플이 질의할 수 있는 지식 그래프 속의 실제 행이 됩니다.

아직 풀리지 않은 부분: 규격은 맞췄으나 진짜로 FAIR하지는 않은

기계가 깔끔하게 돌아가는 장면으로 끝맺으면 깔끔하겠지요. 더 어려운 진실은, 표준을 충족한다고 해서 목표를 충족하는 것이 보장되지는 않는다는 점입니다. FAIR는 적합성 시험이 아니라 일련의 원칙이며, 데이터는 쉬운 글자들을 만족시키면서도 어려운 글자들을 조용히 저버릴 수 있습니다.

2024년 팬데믹 데이터셋에 대한 메타 연구는 그 간극을 측정 가능하게 만듭니다. COVID-19 데이터 자원들을 FAIR 원칙에 비추어 조사한 결과, 거의 모두가 찾을 수 있었지만(식별자를 지니고 검색에 나타났습니다) 상호운용성에서는 단지 46.7%만이 중간 수준에라도 도달했습니다 [10]. 그 이유는 이번 장이 줄곧 맴돌아 온 것입니다. 메타데이터가 통제된 어휘 없이 손으로, 자유 텍스트로 작성되어, 필드는 존재하지만 어떤 공유 온톨로지도 가리키지 않았습니다. 데이터는 찾을 수 있고 내려받을 수 있으면서도 여전히 결합 불가능했습니다 — 바로 그 늪이, 적합성의 언어를 입은 채로 말입니다. "우리는 FAIR를 씁니다"는 구문 계층에서는 참이면서 의미 계층에서는 공허할 수 있습니다.

바이오제약은 이 간극을 그대로 물려받습니다. 한 공장이 완벽하게 적합한 히스토리언을 세우고, 모든 포인트에 태그를 붙이고, OPC UA와 MQTT를 흠잡을 데 없이 보낼 수 있습니다 — 그러면서도 어떤 하류 시스템도 병합할 수 없는 데이터를 만들어 낼 수 있습니다. 술어가 결코 공유 온톨로지에 정렬되지 않았고 단위가 결코 고정되지 않았기 때문입니다. 이것은 3권이 "그래프가 거짓말할 때"라고 부르는 것과 같은 실패 계열입니다. 어휘 표류(vocabulary drift)(두 팀이 한 개념에 두 술어를 만듦), 간선 난립(edge sprawl)(관계가 불어나 순회가 무의미해짐), 그리고 타입 손실(type loss)(숫자가 데이터타입이나 단위 없이 적재되어 조용히 해석 불가능해짐)입니다. SHACL 게이트는 구조적 사례를 잡아내지만, 그럴듯해 보이는 용어로 자신만만하게 필드를 잘못 이름 붙이는 사람은 잡아낼 수 없습니다. 미해결 문제는 온톨로지의 존재 — 그것들은 존재하고 표준화되어 있습니다 — 가 아니라, 공장 현장에서 실제로 작성되는 메타데이터가 통제된 어휘이고 기계가 검사 가능하며 주장이 아니라 사실로서 FAIR하도록 보장하는 규율과 도구입니다. 그것은 기술적 문제인 만큼이나 조직과 변경 관리의 문제이며, 이 분야가 진정으로 여전히 씨름하고 있는 지점입니다.

실제 산업 현장에서는

이것은 도입자를 기다리는 이론이 아닙니다. BFO는 발행된 ISO/IEC 표준이며 [4], RDF 1.1, OWL 2, SHACL은 여러 산업에 걸쳐 운영 중인 지식 그래프를 구동하는 확립된 W3C 권고안입니다 [7][8][9]. 그리고 OBO에서 IOF로 이어지는 계보는 2000년대 중반 이래로 협의회가 관장하는 모델이 대규모로 작동해 왔음을 보여 줍니다 [2][6]. 특히 바이오제약 분야에서는 IOF 내 OAGi/NIIMBL 노력이 2024–2025년에 걸쳐 IOF 바이오제약 제조 온톨로지를 오픈소스로 공개했으며, 이는 BMIC 협의회가 관리합니다 [11]. 그리고 앨로트로프 AFO는 이미 벤더 중립적인 실험실 데이터의 토대를 이루고 있습니다 — Agilent와 Shimadzu 분석 시스템 같은 장비에서 나온 크로마토그래피 및 질량분석 결과를 앨로트로프 데이터 형식(Allotrope Data Format)으로 내보내면, 어느 벤더가 만들어 냈든 하나의 공유된 의미로 읽을 수 있습니다. 도구 선택이 가리는 실무적 단서가 하나 있습니다. 온톨로지도 여느 재사용 가능한 산출물처럼 라이선스 아래 배포되며, 그 조건은 서로 다릅니다. IOF와 OBO 온톨로지는 자유롭게 재사용하고 재배포할 수 있는 허용적 오픈 라이선스(Creative Commons / BSD 계열) 아래 공개됩니다. 반면 앨로트로프 AFO는 앨로트로프 재단 자체의 회원 약관 아래 배포되며, 역사적으로 전체 프레임워크를 얻으려면 앨로트로프 회원 자격이 필요했습니다 — 그러므로 "그것은 오픈인가?"는 소프트웨어 의존성의 라이선스를 확인하듯이 스택이 표준으로 채택하기 전에 온톨로지마다 확인해야 합니다. 일단 작성된 트리플은 트리플스토어(triplestore)에 물리적으로 저장되고 그곳에서 질의됩니다(트리플스토어는 데이터베이스 엔진이고, 지식 그래프는 그것이 담는 내용물입니다 — 표가 데이터이고 데이터베이스가 그것을 서빙하는 엔진인 것과 같습니다) — Apache Jena Fuseki와 Oxigraph(후자는 3권에서 사용) 같은 오픈소스 엔진, 그리고 Ontotext GraphDB, Stardog, Amazon Neptune 같은 상용 엔진이 있으며, 이것이 바로 실제 벤더 논의에서 가장 먼저 닿게 되는 저장·질의 계층입니다.

핵심 용어

  • 온톨로지(ontology) — 한 도메인에 무엇이 존재하고 그것들이 서로 어떻게 관계 맺는지에 대한, 형식적이고 공유되며 기계가 읽을 수 있는 모델.
  • 클래스 / 인스턴스 / 관계 / 공리(class / instance / relation / axiom) — 대상의 범주; 구체적인 한 구성원; 대상들 사이의 연결; 추론을 제약하고 가능하게 하는 논리적 규칙.
  • RDF(트리플, 지식 그래프) — 사실을 주어–술어–목적어 트리플로 표현해 그래프로 연결하는 W3C 모델.
  • OWL — 형식 논리를 더해 추론기가 사실을 추론하고 모순을 찾을 수 있게 하는 W3C 웹 온톨로지 언어.
  • SHACL — RDF 그래프가 필수 내용 규칙을 충족하는지 검증하는 W3C 형상 제약 언어.
  • 상위 / 기초 온톨로지(upper / foundational ontology) — 모든 것이 특화하는, 가장 일반적인 범주들로 이루어진 작고 도메인 중립적인 어휘 체계.
  • BFO(기초 형식 온톨로지, ISO/IEC 21838-2) — 실재를 지속체와 발생체로 나누는 표준화된 상위 온톨로지.
  • OBO 파운드리(OBO Foundry) — 조율되고 원칙에 기반한 온톨로지 모델로 산업용 대응물에 영감을 준 생의학 공동체.
  • IOF(산업 온톨로지 파운드리, Industrial Ontologies Foundry) / IOF 코어 — OBO를 본떠 만든 제조 온톨로지 모음으로, BFO 정렬 중간 계층 코어를 갖춘 것.
  • IOF 바이오제약 제조 온톨로지(IOF biopharmaceutical-manufacturing ontologies) — IOF 내 OAGi/NIIMBL 노력으로 개발되어 2024–2025년에 걸쳐 오픈소스로 공개된, IOF 스택의 바이오제약 도메인 특화 부분.
  • BMIC(바이오제약 제조 산업 협의회, Biopharmaceutical Manufacturing Industry Council) — 이 책의 용법에서, IOF 내에서 IOF 바이오제약 제조 온톨로지를 개발하고 관리하는 거버넌스 기구; 온톨로지 자체가 아니라 협의회.
  • AFO(앨로트로프 재단 온톨로지, Allotrope Foundation Ontologies) — 분석 실험실 데이터에 벤더에 구애받지 않는 하나의 의미를 부여하는 온톨로지.
  • FAIR(찾을 수 있고, 접근 가능하며, 상호운용 가능하고, 재사용 가능함) — 데이터를 기계가 사용할 수 있게 만드는 원칙; FAIR는 공개와 같은 것이 아님.
  • 기계 작동성(machine-actionability) — 사람의 개입을 최소화하면서 컴퓨터가 사용할 수 있는 속성.
  • RDF 트리플(주어–술어–목적어) — 지식 그래프의 원자 단위. IRI 주어, 온톨로지가 정의한 속성(술어), 그리고 타입 지정 리터럴이거나 다른 노드로 향하는 IRI 간선인 목적어.
  • IRI — 국제화 자원 식별자(Internationalized Resource Identifier). 주어, 술어, 목적어를 시스템 전반에서 모호하지 않게 만드는, 전 세계적으로 유일한 웹 이름.
  • QUDT — 수량·단위·차원·타입(Quantities, Units, Dimensions and Types) 어휘. 트리플의 값이 단위와 데이터타입을 함께 지니게 하여 숫자가 결코 맨숫자가 되지 않게 함.
  • SPARQL — RDF를 위한 W3C 질의 언어. (derivedFrom)+ 같은 속성 경로는 계보 사슬을 한 줄로 재귀적으로 따라감.
  • SHACL 형상(SHACL shape) — 유효한 기록이 무엇을 담아야 하는지를 말하는, RDF로 표현된 닫힌 세계 규칙(bp:ReleaseShape 등). 여기서는 배치마다 정확히 하나의 규격 내 단량체 결과를 요구하는 출하 게이트.
  • 역량 질문(CQ, competency question) — 어떤 모델링도 하기 전에 작성하는, 완성된 온톨로지가 답할 수 있어야 하는 질문. 4권에서는 각 CQ가 실행 가능한 인수 테스트가 됨.
  • ALCOA+ — 데이터가 귀속 가능·가독·동시적·원본·정확해야 하고, 거기에 완전·일관·영속·이용 가능이 더해진 GMP 데이터 무결성 기대. 여러 글자가 타입 지정되고 출처를 지닌 트리플에 직접 매핑됨.
  • IQ/OQ/PQ, CSV, CSA — 전산 시스템 검증(CSV) 아래의 설치·운영·성능 적격성 평가. CSA(컴퓨터 소프트웨어 보증)는 FDA의 위험 기반·비판적 사고 후계 — FAIR 데이터 시스템이 전제하는 검증.
  • 배치 단위 교차검증(leave-one-batch-out cross-validation) — 공유된 derivedFrom 계보 간선을 키로 삼아 배치 전체를 따로 떼어 두고 모델을 검증하여, 학습/시험 분할을 넘어 누출되는 행으로 점수가 부풀려지지 않게 하는 방법.
  • 적용 범위(applicability domain) — 모델의 예측을 신뢰할 수 있는 입력 영역. QUDT 타입 값의 적격 범위가 모델로 하여금 무턱대고 외삽하는 대신 범위 밖 입력을 표시하게 해 줌.
  • PROV-O — 데이터와 산출물(배포된 모델 포함)이 어디서 왔는지를 기록하는 W3C 출처 온톨로지. trainedOn, supersedes 같은 모델 계통 간선의 바탕이 되는 어휘.
  • ISA-95 / B2MML — 공장 현장 시스템과 비즈니스 시스템 사이에서 생산 정보를 교환하는 표준 모델과 그 XML 직렬화. 온톨로지는 그 배치·자재·장비 메시지에 공유된 의미를 부여함.

이 다음은

이제 우리는 완전한 도구 모음을 갖추었습니다. 연결된 시스템, 신뢰할 수 있는 기록, 관장되는 의미, 그리고 기계가 찾고 결합하고 신뢰할 수 있는 FAIR 데이터까지요. 다음 장 디지털 스레드와 디지털 트윈(The Digital Thread and the Digital Twin)은 그 연결되고 의미가 부여된 데이터가 제품 수명주기 전체에 걸쳐 엮였을 때 무엇이 가능해지는지를 보여 줍니다. 디지털 스레드(digital thread)는 설계에서 환자에 이르기까지 이어 붙인, 하나의 연속되고 추적 가능한 기록입니다. 디지털 트윈(digital twin)은 공정을 비추고 예측하는, 데이터로 살아 움직이는 모델입니다. 둘 다 새로운 기술이라기보다는 귀결(consequence)에 가깝습니다. 앞선 장들의 모든 것이 — 이번 장의 온톨로지와 FAIR 원칙으로 끝맺는 그 모든 것이 — 마침내 제자리에 놓였기 때문에 비로소 작동하는 것이니까요. 그리고 이번 장의 트리플, SHACL 게이트, SPARQL 순회를 개념이 아니라 실행되는 코드로 보고 싶다면, 3권의 지식 그래프 장이 그 전부를 노트북 위에서 빌드해 줍니다.