본문으로 건너뛰기

머리말 — 공정에 의미를 가르친다는 것

📍 현재 위치: 네 번째 책의 바로 문 앞입니다. 단 한 단계라도 모델링하기 전에, 이 책이 정말로 무엇에 관한 것인지 — 즉 만들어지고 기록되는 공정을 기계가 추론할 수 있는 공정으로 바꾸는 일 — 함께 합의해 봅시다.

환영합니다. 이 책은 의미에 관한 책입니다. 이 시리즈의 앞선 세 권은 바이오의약품이 어떻게 물리적으로 만들어지는지, 그것이 흘리는 데이터가 어떻게 관리되는지, 그리고 그 데이터를 담아 두는 오픈소스 소프트웨어를 어떻게 짓는지를 가르쳤습니다. 이 책은 그다음 질문을 던집니다. 모든 측정값과 결과와 기록이 일단 존재하게 되었을 때, 어떻게 하면 컴퓨터가 그것들이 무엇을 뜻하는지를 이해하게 만들 수 있을까요 — 매 단계마다 사람이 시스템 사이를 통역하지 않고도, 환자의 손에 들린 바이알에서 그것이 자라난 세포 은행까지를 단 하나의 질의로 거슬러 갈 수 있을 만큼 충분히 잘 말이지요?

그 답이 바로 온톨로지(ontology) 입니다. 이는 바이오공정 안에 무엇이 존재하며 그것들이 어떻게 서로 연결되는지에 대한, 형식적이고 공유되며 기계가 읽을 수 있는 모델입니다. 우리는 그 모델을 약 그 자체가 만들어지는 방식 그대로 — 세포 은행에서 충전된 바이알까지, 한 번에 한 단계씩 — 지어 나가면서, 각 단계의 흩어진 사실들이 하나의 항해 가능한 지식 그래프(knowledge graph) 로 맞물리는 모습을 지켜볼 것입니다.

이 책을 읽는 데는 논리학이나 의미론에 대한 배경지식이 필요 없습니다. 트리플(triple)을 한 번도 써 본 적 없고, 온톨로지 편집기를 열어 본 적 없으며, OWL이라는 말을 들어 본 적조차 없다면, 당신이야말로 우리가 염두에 두고 쓴 바로 그 독자입니다. 우리는 전문 용어가 처음 나올 때마다 그 뜻을 정의하고, 각 장의 끝에 있는 핵심 용어 상자에서 다시 한번 정리해 드리겠습니다.

쉽게 말하면

공장의 모든 부서가 저마다 완벽한 노트를 적되, 각자 자기만의 약식 표기로 적는다고 상상해 보세요. 세포 배양 팀은 "BR-101" 이라 쓰고, 실험실은 "Lot 26-001" 이라 쓰고, 창고는 자재 "1000457" 이라 쓰는데, 셋 다 똑같은 배치를 가리킵니다. 모든 것이 기록되어 있지만, 어느 것도 서로 연결되지 않습니다. 온톨로지 는 "배치", "바이오리액터", "결과" 가 정확히 무엇이며 서로 어떻게 관련되는지를 말해 주는 공유 사전 이자 문법이어서 — 어떤 사람이든, 어떤 기계든, 모든 노트를 하나의 이야기로 읽어 낼 수 있게 해 줍니다. 이 책은 바로 그 사전을, 약을 따라 공장을 가로지르며 한 페이지씩, 바이오 제조를 위해 지어 나갑니다.

이 장에서 다루는 내용

머리말을 빠르게 짚어 보면 다음과 같습니다. 이 책이 누구를 위한 것인지와 우리가 하는 약속, 공정은 그 의미가 단지 저장 되는 것이 아니라 모델링 될 때 비로소 지식 이 된다는 핵심 발상, 모든 장을 꿰뚫는 실마리가 되는 러닝 예제 — 하나의 항체 배치 — , 이 책이 앞선 세 권 위에 어떻게 서 있는지, 요구사항에서 출발해 러닝 예제 위에 세워진 모델을 거쳐 그것을 만드는 산업에 이르기까지 온톨로지 공학 라이프사이클을 걷는 아홉 개의 부(part), 그리고 모든 페이지에서 보게 될 몇 가지 규칙입니다.

우리의 약속: 모든 주장은 추적 가능합니다

이 책은 어조는 대중서이고 엄밀함은 교과서입니다. 이 두 가지를 모두 정직하게 지키기 위해, 자명하지 않은 모든 주장은 — 모든 표준, 모든 숫자, 모든 "연구에 따르면" 은 — 이런 작은 대괄호 표시를 답니다 [1]. 그것을 클릭하면 단 하나의 참고문헌(References) 페이지에 도달하는데, 그 페이지에는 해당 진술의 근거가 되는 정확한 표준, 동료 심사 논문, 또는 규제 문서가 나열되어 있습니다. 확인할 수 있는 주장이라면, 그 출처까지 따라가 직접 확인할 수 있습니다.

핵심 발상: 저장된 사실은 아직 알려진 사실이 아니다

이 책 전체가 의지하는 신념은 이렇습니다.

세 권이 데이터를 만들었고, 이 책이 그것에 의미를 부여한다

현대의 배치는 어마어마한 흔적을 남깁니다 — 센서 흔적, 실험실 결과, 배치 기록, 서명이지요. 동반 데이터 가이드는 그 흔적을 분자의 데이터 그림자(data shadow) 라 부르며 그것을 관리하는 법을 보여 주고, 오픈소스 가이드는 그것을 구체적인 데이터베이스 행(row)으로 저장하는 법을 보여 줍니다. 하지만 저장되었다는 것은 이해되었다는 것과 같지 않습니다. 히스토리안(historian)은 완벽하게 타임스탬프가 찍힌 천만 개의 숫자를 담고 있으면서도, 태그 BR101.Temp.PV 와 실험실 필드 culture_temp 가 같은 물리량을 기술한다는 것이나, 이 원료의약품 로트가 저 바이오리액터 실행에서 비롯되었다는 것을 여전히 모를 수 있습니다. 사람이 두 화면을 나란히 놓고 읽어 가며 채워 넣는 그 의미야말로, 시스템들 사이를 스스로 건너가지 못하는 바로 그것입니다.

온톨로지는 그 의미가 건너갈 수 있게 되는 곳입니다. 온톨로지는 사람이 머릿속에 담아 두는 관계 — 이 결과는 저 배치에 관한 것이다, 저 배치는 이 시드 트레인에서 비롯되었다, 이 변수는 저 품질 특성에 결정적이다 — 를 일급(first-class)의, 기계가 읽을 수 있는 사실 로 승격시킵니다. 일단 그것들이 사실이 되면, 컴퓨터는 그것을 따라가고, 결합하고, 점검할 수 있습니다. 공정은 더 이상 기록의 더미가 아니라 하나의 지식(knowledge) 의 체계가 됩니다.

공장 현장의 세 시스템이 저마다 그 사적인 방언 하나씩을 말합니다. 공정 히스토리안(process historian) 은 고빈도 태그를 흘려보내고(BR101.Temp.PV — 바이오리액터-101 온도의 공정값(process value), 각각 자신의 공학 단위와 품질 플래그를 지니며, 대개 OPC UA를 통해), MES(manufacturing execution system, 제조 실행 시스템) / 전자 배치 기록(electronic batch record)은 계보와 작업자 서명을 소유하며, LIMS(laboratory information management system, 실험실 정보 관리 시스템)는 샘플 식별자에 키가 걸린 표본 출하 결과 — 제품이 규격 안에 있음을 확인하기 위해 채취한 샘플에 돌리는 분석 시험, 예컨대 CE-SDS 순도, SEC %단량체(분자 중 뭉치지 않고 온전한 단일 항체인 비율), 글리칸 지도(거기 붙은 당 사슬의 프로파일) — 를 담습니다. 각각은 완결되어 있고, 각각은 나머지 둘에 대해 침묵합니다. 온톨로지는 하나의 질의가 그 셋 모두를 읽게 해 주는 문법입니다.

네 권을 가로지르는 하나의 사실: 바이오리액터 속 탐침이 물리 공정 가이드에서 온도를 측정하고, 그것이 데이터 가이드에서 단위와 타임스탬프와 품질 플래그를 갖춘 태그가 붙은 데이터 포인트가 되며, 그것이 오픈소스 가이드에서 자신의 배치 맥락에 조인된 센서 측정값 데이터베이스 행으로 안착하고, 여기 이 책에서는 그것이 RDF 트리플 — 공유 술어와 단위를 지닌 타입이 부여된 값을 가진, 지식 그래프 속의 한 노드 — 이 되어 단 하나의 질의로 추론할 수 있게 됩니다. 하나의 물리적 측정값이 시리즈 전체를 가로지릅니다. 하나의 측정값이, 다음으로 데이터 포인트가, 다음으로 저장된 행이, 그리고 마침내 기계가 추론할 수 있는 그래프 속의 타입이 부여되고 단위를 지닌 값이 됩니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

설계기반 품질은, 사실은 하나의 온톨로지다

업계는 오랫동안 이것을 그 이름을 쓰지 않은 채 원해 왔습니다. 설계기반 품질(Quality by Design, QbD) — 기록된 공정 이해를 제품의 일부로 다루는 규제 체계 — 은 어떤 공정 설정이 핵심 공정 변수(critical process parameters, CPPs) 이고 어떤 측정 가능한 제품 특성이 핵심 품질 특성(critical quality attributes, CQAs) 인지를 식별하고, 그 둘을 잇는 관계를 확보할 것을 요구합니다 [2]. 다시 읽어 보세요. QbD는 엔터티(entity)(변수, 특성, 자재, 단계)와 관계(relation)(이 변수가 저 특성에 영향을 준다)로 이루어진 모델을 요구합니다. 그것은 이름만 빼면 모든 면에서 하나의 온톨로지입니다. 이 책은 그 이름을 — 그리고 그 아래에 깔린 기계 장치를 — 명시적으로 드러내어, "공정 이해" 가 단지 개발 보고서에 적히는 무언가가 아니라 컴퓨터가 담아 둘 수 있는 무언가가 되게 합니다.

이 라인 위에서 그 추상들은 구체적입니다. 모델이 지니는 CPP에는 바이오리액터 온도(temperature)공급 속도(feed rate) (설계 공간 질의가 단량체 순도에 대해 돌려주는 두 가지)가 포함되며, 검증된 저(低)pH 바이러스 불활성화 유지 — pH 3.6에서 60분, 제품을 잠깐 산성 pH에 붙들어 외피 보유 바이러스를 죽이는 단계 — 도 포함됩니다. CQA는 측정 가능한 제품 특성으로 저마다 머물러야 하는 한계를 갖춘 출하 패널이며, 실제 한계는 다음과 같습니다. SEC %단량체 (온전한 항체 분율, 최소 95%), HMW 응집체 (고분자량 뭉치, 최대 2.0%), CEX에 의한 전하 변이체 %주성분 (6080%), 숙주 세포 단백질(host-cell protein) (CHO 숙주 세포에서 남은 잔류 단백질, 최대 100 ppm — 백만분율), 그리고 단백질 농도 (4555 mg/mL)입니다. QbD의 약속 — 이 변수가 저 특성에 영향을 준다 — 은 바로 온톨로지가 따라 걸을 수 있게 만드는 그 간선입니다.

러닝 예제: 하나의 항체, 처음부터 끝까지

이 책은 장난감 같은 예시를 흩뿌리는 대신, 하나의 단일클론항체(monoclonal antibody) 배치 를 처음부터 끝까지 모델링합니다 — 시리즈의 나머지가 따라가는 바로 그 배치입니다. 그 계보(genealogy) — 부모에서 자식으로 이어지는 혈통이자, 우리가 나중에 derivedFrom 간선으로 따라 걸을 수 있게 만드는 바로 그 사슬 — 는 우리가 몇 번이고 그래프 간선(edge)으로 바꿔 갈 사슬입니다(식별자 속의 CHO 는 항체가 자라는 중국 햄스터 난소(Chinese-hamster-ovary) 세포주를 가리킵니다).

작업 세포 은행 WCB-CHO-001 이 시드 트레인 SEED-001 을 접종하고, 그것이 생산 바이오리액터 배치 BATCH-2026-001 을 접종하며, 그 수확물이 단백질 A 포획 풀 PApool-001 이 되고, 그것이 정제되어 원료의약품 로트 DS-001 이 되며, 완제의약품 로트 DP-001 로 충전됩니다.

그 문장 속의 화살표 하나하나가 derivedFrom 간선 하나가 됩니다. 위의 여섯 간선 사슬은 표제(headline) 계보입니다. 이후의 각 장은 자재가 실제로 거쳐 가는 단위 공정별 중간체(정화된 수확물, 바이러스 불활성화 풀과 바이러스 여과 풀, 폴리싱 중간체)를 그 사이에 끼워 넣으며, derivedFrom 이 추이적(transitive)이므로 DS-001 은 여전히 단 한 번의 보행으로 세포 은행까지 거슬러 갑니다. 이 배치는 출하 결과 하나를 지니고 다닙니다 — 크기 배제(size-exclusion) 방식의 %단량체(%monomer) 순도 98.611bp:monomerPct 데이터타입 속성(datatype property)으로 기록됩니다(bp: 접두사는 우리의 예시용 네임스페이스(namespace) https://example.org/bioproc# 이며, 오픈소스 가이드와 공유하는 본거지 주소라서 여기서 이름 붙인 클래스는 거기서의 클래스와 같습니다). 이는 편의용 스칼라이며, 단위까지 완전히 한정된 형태는 qudt:QuantityValue 개체 bp:DS-001-monomer 입니다(4부에서 풀어 보는 예고편입니다. 거기서 우리는 헐벗은 숫자를, 단위를 지닌 그 쌍둥이와, 그 특성의 종류(kind) 즉 별개의 클래스 bp:MonomerContent 와 구별합니다 — 지금 그 차이를 따져 볼 필요는 없습니다). 이 캠페인에는 또한 일부러 실패하게 만든 형제 로트 DP-004 가 포함되어 있습니다. 그 단량체는 정상(98.687%)이지만, 고분자량(high-molecular-weight) 응집체(aggregate) 가 최대 2.0% 라는 출하 한계에 맞서 2.41% 여서, 다른 CQA에서 규격을 벗어나는데, 이는 SHACL 출하 게이트가 잡아내는 실패입니다.

DP-004같은 작업 세포 은행 WCB-CHO-001 에서 별도의 시드 트레인과 배치를 거쳐 자랐기에, 단 한 번의 계보 보행이 그 일탈(deviation) 상황에서 조사관이 실제로 던지는 질문에 답합니다. 어떤 다른 로트들이 이 세포 은행을 공유하는가? 마지막 장들에 이르면, 그 한 문장은 당신이 질의하고, 검증하고, 신뢰할 수 있는 하나의 그래프가 됩니다.

바이오공정 흐름을 그래프 노드의 사슬로 나타낸 그림: 작업 세포 은행, 시드 트레인, 생산 바이오리액터 배치, 단백질 A 포획 풀, 원료의약품, 완제의약품이 derivedFrom 간선으로 왼쪽에서 오른쪽으로 이어지며, 크기 배제 단량체 순도 결과 98.611 퍼센트가 타입이 부여된 데이터타입 속성 값으로 바이오리액터 배치 노드에 매달려 있고, 규격을 벗어난 별도의 완제의약품 로트가 레이블이 붙은 공유 계보 간선을 통해 같은 작업 세포 은행으로 거슬러 올라갑니다. 약의 여정을 그래프로 다시 그린 모습. 단계 사이의 모든 인계가 하나의 derivedFrom 간선이며, 인공정(in-process) 단량체 결과 하나가 배치에 기록되어 있습니다(출하 CQA의 충실한 본거지는 원료의약품 로트 DS-001 입니다) — 이 책 전체가 지향해 나아가는 형태입니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

그리고 이것은 사고 실험이 아닙니다. 그 문장 전체가 동반 저장소(examples/platform/ontology/)에 실재하며 적재 가능한 RDF입니다 — 그 척추는 다음과 같으며, RDF 트리플의 표준 평문 표기법인 Turtle 로 적혀 있습니다. 아직 Turtle을 읽을 줄 몰라도 됩니다. 각 줄이 하나의 주어와 그에 대한 하나 이상의 술어 목적어 사실을 진술하고, a 는 "~이다"(주어의 타입)를 줄여 쓴 것이며, "98.611"^^xsd:float 은 자신의 데이터타입(여기서는 부동소수점 수)이 태그된 값이라는 것만 알아 두면 됩니다.

# instances.ttl — the running example as RDF (bp:derivedFrom is an owl:TransitiveProperty).
# These are the real, asserted immediate-parent edges; each downstream chapter inserts the
# per-unit-operation intermediate it runs through (clarified harvest, the viral-inactivated
# and viral-filtered pools, the polishing intermediate), and because derivedFrom is
# transitive, DS-001 still traces all the way back to the cell bank in a single walk.
bp:WCB-CHO-001 a bp:WorkingCellBank ; bp:derivedFrom bp:MCB-CHO-001 . # the master cell bank above it
bp:SEED-001 a bp:SeedBioreactorCulture ; bp:derivedFrom bp:SEEDFLASK-001 .
bp:BATCH-2026-001 a bp:Batch ; bp:derivedFrom bp:SEED-001 ; # the batch material (the vessel BR-101 is a separate node)
bp:monomerPct "98.611"^^xsd:float .
bp:PApool-001 a bp:CapturePool ; bp:derivedFrom bp:CLAR-001 . # via the clarified harvest
bp:DS-001 a bp:DrugSubstance ; bp:derivedFrom bp:POLpool-001 . # via the polishing intermediate
bp:DP-001 a bp:DrugProduct ; bp:derivedFrom bp:DS-001 .

작은 스크립트(validate.py)가 2,120개의 트리플을 모두 적재하고, 그 위에서 추론하며 — 논리적으로 따라 나오는 사실들을 자동으로 도출하여(예컨대 derivedFrom 이 추이적이므로 DS-001 이 세포 은행에서 비롯된다는 것), OWL-RL 추론 규칙 아래 그래프를 2,120개에서 7,137개의 트리플로 키웁니다 — 그다음 이 온톨로지의 요구사항을 이루는 23개 역량 질문을 각각 합격/불합격 인수 테스트로 — 제1부의 핵심으로 — 실행합니다. 이 책의 모든 Turtle, SPARQL, SHACL 스니펫은 그 데이터셋의 진짜 발췌이며, 모든 숫자는 하니스가 실제로 출력하는 값입니다.

이 23개 질문은 느슨한 테스트 목록이 아닙니다. 이것들은 함께 NeOn(온톨로지를 공학하는 확립된 명명 방법론 중 하나)의 의미에서 하나의 온톨로지 요구사항 명세 문서(Ontology Requirements Specification Document, ORSD)를 이룹니다 — 목적, 범위, 의도된 용도, 그리고 완성된 온톨로지가 충족해야 하는 기능 요구사항(functional requirement)이 각각 하나의 역량 질문(competency question)(CQ: 완성된 모델이 답할 수 있어야 하는 질문)으로 적힌 것이지요. 또 다른 그런 방법론인 SAMOD의 테스트 우선 규율을 빌려, 모든 CQ는 그 자체로 하나의 인수 테스트이기도 합니다 — 요구사항이 테스트입니다(requirements == tests). CQ-04 — 완제의약품 로트가 실패할 때, 어떤 다른 완제의약품들이 그 계보를 공유하는가? — 는 규격을 벗어난 형제 DP-004 가 데이터셋에 들어 있는 바로 그 이유인 질문이며, 그래프가 실제로 세포 은행 형제들을 돌려줄 때에만 초록색이 됩니다. 제1부가 그 목록을 만들고, 제6부가 그것을 살아 있는 SPARQL로 실행합니다.

미리 절반쯤은 알아 두면 좋은 것 (그리고 그것을 어디서 얻는가)

이것은 네 번째 책이며, 앞선 세 권 위에 서 있습니다. 그것들을 외워 둘 필요는 없습니다 — 각 발상이 핵심으로 떠오를 때마다 다시 소개하니까요 — 하지만 각 기초가 어디에 놓였는지를 알아 두면 도움이 됩니다.

  • 물리적 공정 — 시드 트레인, 바이오리액터, 포획 컬럼, 충전 라인이 실제로 무엇을 하는지 — 은 Biologic Drug Manufacturing 의 주제이며, 그 바이오공정 개요에서 시작합니다. 우리가 모델링하는 모든 엔터티는 그 책에 나오는 실재하는 사물입니다.
  • 의미의 언어들 — RDF 트리플, OWL 논리, SHACL 제약, BFO 상위 온톨로지, 산업 온톨로지 파운드리(Industrial Ontologies Foundry), FAIR 원칙 — 은 Data Management온톨로지와 FAIR 데이터에 관한 장에서 소개되었습니다. 이 책은 그 장의 어휘를 전제로 삼아, 한 단계씩 더 깊이 들어갑니다.
  • 실행 가능한 그래프 — RDFLib로 바이오공정 CSV를 RDF에 적재하고, SPARQL 속성 경로(property path)로 계보를 따라가며, SHACL로 그것을 통제하는 것 — 은 Open-Source Bioprocess Data Systems지식 그래프 장에서 실제 코드로 지어집니다. 이 책이 "로더(loader)가 이 트리플을 쓴다" 라고 말할 때, 그것은 바로 그 파일을 가리킵니다.

그래서 하나의 사실이 네 권 전체를 꿰뚫습니다. 생산 바이오리액터의 탐침이 온도를 측정하고(첫 번째 책), 그것이 단위와 품질 플래그를 갖춘 태그가 붙은 데이터 포인트가 되며(두 번째 책), 그것이 자신의 배치에 조인된 ts.sensor_reading 행으로 안착하고(세 번째 책), 여기서는 그것이 RDF 트리플 — 이 분야의 사실을 이루는 원자 단위, 즉 주어–술어–목적어 진술(여기서는 이 측정값 — 값을 가진다 — 저 숫자) — 이 되어, 그 술어는 공유 온톨로지 속성이고 그 값은 단위를 지니므로, 어떤 시스템이든 그것이 무엇을 뜻하는지 따로 듣지 않고도 읽을 수 있게 됩니다(네 번째 책).

참고

이 책 전체에 걸쳐, 우리는 가장 명료한 교육 사례이기에 단일클론항체를 만드는 표준적인 상업적 방식을 모델링하고, 현대의 연속 공정이나 관류(perfusion) 공정이라면 모델을 어디서 바꿀지를 짚어 드립니다. 온톨로지는 당신이 어느 쪽을 운영하든 개의치 않습니다 — 그 유연함이야말로 핵심의 일부입니다.

이 책을 읽는 법: 라이프사이클을 걷는 아홉 개의 부

이 책은 하나의 연속된 논증입니다. 온톨로지가 실제로 공학되는 방식 — 즉 라이프사이클(lifecycle) — 에 따라 구성됩니다. 먼저 모델이 무엇에 답해야 하는지를 명세하고, 그다음 이미 존재하는 것을 재사용하고, 그다음 개념화하고 형식화하고 구현하고 검증하며, 그다음 출판하고 유지보수합니다 — 그리고 진행 중인 항체 캠페인이 모든 단계를 관통하는 작업 예제(worked example)입니다. 끝으로 오늘날 산업이 온톨로지를 실제로 어떻게 쓰는지 살펴본 뒤 정직한 평결을 내립니다. 아홉 개의 부:

  1. 제1부 — 명세와 요구사항. 다른 모든 부가 답해야 하는 규율입니다. 완성된 모델이 답할 수 있어야 하는 역량 질문을 온톨로지 요구사항 명세 문서(ORSD)로 적고 실행 가능하게 만들며, 더하여 이 책 전체가 비추어 검사받는 하나의 캠페인과 증명 하니스입니다.
  2. 제2부 — 재사용: 기존 자산 위에 서기. 무엇이든 새로 발행하기 전에, 이 분야가 이미 지어 둔 것을 조사하고 그것에 정렬합니다. 모두의 용어를 호환되게 유지하는 도메인 중립적 상위(upper) 온톨로지(BFO), 그리고 다시 만드는 대신 재사용하는 IOF·OBO 온톨로지와 통제 어휘입니다.
  3. 제3부 — 개념화. 진행 중인 캠페인 위에서 모델의 내용에 이름을 붙입니다. 상위 온톨로지 아래에 자리하는 클래스와 분류 체계, 그리고 용어의 목록을 연결된 모델로 바꾸는 관계 — 그중 으뜸은 derivedFrom 계보입니다.
  4. 제4부 — 형식화. 모델이 힘을 갖게 만듭니다. 기술(description)을 강제 가능한 제약으로 바꾸는 OWL 공리와 제약, 그리고 값이 결코 헐벗은 채로 다니지 않게 하는 식별자와 단위(IRI, QUDT)입니다.
  5. 제5부 — 구현. 캠페인으로 모델을 채웁니다. 하나의 항체 배치에 대한 인스턴스 그래프를 구축하고, 와이어(OPC UA, B2MML, ELN)에서 데이터를 그래프로 옮기는 ETL입니다.
  6. 제6부 — 검증. 모델이 실제로 답함을 증명합니다. 실행 가능한 SPARQL 질의로 돌아가는 역량 질문, 그리고 SHACL로 강제되는 출하 게이트 — 23개 질문 모두를 초록색으로 유지하는 테스트 우선 루프입니다.
  7. 제7부 — 유지보수, 출판과 FAIR. 모델을 살아 있고 공유 가능하게 유지합니다. 변경 속에서 모델이 썩지 않도록 거버넌스를 적용하고, 완성된 어휘를 출판하며, 데이터가 실제로 FAIR한지를 측정합니다.
  8. 제8부 — 오늘날 산업 현장의 온톨로지. 러닝 예제에서 빠져나와 실제 생태계를 살펴봅니다. 공유 어휘를 만드는 표준 기관과 컨소시엄, 실제로 쓰이는 온톨로지와 통제 어휘, 상용 플랫폼과 지식 그래프 벤더, 빅파마가 진짜로 운영하는 엔터프라이즈 그래프, 이미 의무화된 규제 시맨틱, 형식 온톨로지가 아직 도착 중인 제조 현장과 디지털 트윈, 그리고 온톨로지와 AI의 수렴입니다.
  9. 제9부 — 평결. 바이오공정을 지식으로 모델링하는 일이 진정으로 이루어 내는 것, 사람에게 남기는 것, 그리고 언제 그것이 할 만한 가치가 있는지에 대한 정직한 결산입니다.

이 아홉 개를 관통하는 한 가닥의 실이 있으니, 바로 FAIR 원칙(FAIR principles) 입니다. 이는 좋은 데이터라면 찾을 수 있고(Findable), 접근할 수 있고(Accessible), 상호운용 가능하며(Interoperable), 재사용 가능해야(Reusable) — 즉 최소한의 사람 도움으로 기계가 쓸 수 있어야 — 한다는, 널리 채택된 표준입니다 [3]. 온톨로지는 공정의 데이터가 단지 주장에서가 아니라 사실에서 FAIR해지는 방법입니다. FAIR를 마음에 새겨 두십시오. 우리는 이것으로, 그리고 그 둘 사이의 불편한 간극으로 거듭 되돌아올 것입니다.

몇 가지 규칙

이것들은 모든 페이지에 등장하므로, 한 번 알아 두는 것이 좋습니다.

  • 인용. [3] 같은 본문 표시는 참고문헌 페이지로 연결됩니다. 화면에 보이는 번호는 각 장 안에서만 통하며 매 장마다 [1]에서 다시 시작합니다.
  • 핵심 용어. 각 장은 그 장에서 소개한 용어들의 짧은 용어집으로 끝나므로, 위로 다시 스크롤해 올라갈 필요가 없습니다.
  • 코드는 그것이 주장하는 곳에서 실재합니다. 한 장의 실행 가능한 산출물로 제시된 Turtle, SPARQL, SHACL은 오픈소스 동반서가 실행하는 것과 똑같은 형태이며, 예시용 구성(운영 트리플스토어 — RDF 트리플을 담도록 만들어진 데이터베이스 — 또는 임포트된 상위 온톨로지)으로 제시된 것은 그렇게 표시됩니다.
  • 어드모니션(admonition). 색이 있는 상자는 곁가지 설명을 표시합니다. 윗부분의 쉬운 우리말 비유에는 tip, 유용한 맥락에는 note, 오해가 정말로 독자를 잘못 이끌 수 있는 곳에는 caution을 씁니다.
  • 이중 언어. 이 책은 영어와 한국어(Korean)로 출간되어, 독자가 어느 한쪽 언어로든 따라 읽을 수 있습니다.
  • 상표. 이 책에 언급된 제품명 및 표준 기관명(W3C, ISO/IEC, OBO 파운드리, 산업 온톨로지 파운드리, Allotrope Foundation, QUDT.org, Stanford의 Protégé, Apache Jena, Ontotext GraphDB, Amazon Neptune을 포함하되 이에 한정되지 않습니다)은 각 소유자에게 귀속되며, 식별 및 편집 목적으로만 사용될 뿐 어떠한 보증(endorsement)도 주장하지 않습니다.
주의

이 책은 규제 대상 공정을 지식으로 모델링하는 일을 어떻게 생각 해야 하는지를 가르칩니다. 이 책은 규제 자문이 아니며, 온톨로지는 검증된 시스템이 아닙니다. 실제 제조 의사결정은 현행 공식 지침과 당신 조직의 승인되고 검증된 절차를 따라야 합니다 — 제7부에서 온전히 되짚는 지점입니다.

미해결 과제

종이 위에서 옳은 모델도 여전히 속이 빌 수 있다

온톨로지가 의미 문제를 그저 해결한다 고 약속한다면 깔끔하겠지요. 정직한 진실은 더 어려우며, 그것을 지금 이름 붙이는 일이 이 책의 나머지가 견뎌야 할 기준을 세웁니다. 온톨로지는 그것을 작성하는 규율만큼만 좋습니다. 어떤 공장이 모든 표준을 채택하더라도 — 전송 구간에는 RDF, 최상단에는 BFO, 게이트에는 SHACL을 두더라도 — 여전히 거짓말을 하는 그래프를 만들어 낼 수 있습니다. 사람이 그럴듯하지만 틀린 용어로 어떤 필드에 자신 있게 라벨을 붙였거나, 두 팀이 하나의 개념에 두 개의 술어를 만들어 냈거나, 어떤 값이 단위 없이 적재되어 조용히 해석 불가능한 것이 되어 버렸기 때문이지요.

이 간극의 측정 가능한 형태는 정신이 번쩍 들게 합니다. 연구자들이 실제 데이터셋을 FAIR 기준으로 채점했을 때, 거의 모두가 찾을 수 있었지만(findable) 단지 소수만이 어느 정도의 상호운용성(interoperability) 에라도 도달했는데, 그 메타데이터가 통제된 어휘 없이 손으로 작성되었기 때문이었습니다 [3] — 형식상으로는 존재하나 사실상으로는 속이 빈 것이지요. 바이오 제조는 그 간극을 고스란히 물려받습니다. 그래서 이 책은 온톨로지를 당신이 설치하는 완성된 산출물이 아니라 당신이 지속해 나가는 실천(practice) 으로 다룹니다. 공유 상위 온톨로지에 정렬되고, 변경 통제 아래 한 번 작성되며, 모든 적재마다 통제되는 실천 말입니다. 이 분야가 진정으로 여전히 씨름하고 있는 지점 — 공장 현장에서 작성되는 메타데이터를 통제되고, 기계가 점검할 수 있으며, 사실에서 FAIR하게 만드는 일 — 에 대해서는, 표준이 곧 해결책인 양 가장하기보다 솔직하게 말하겠습니다.

바로 이 동반물에 대해서도 미리 짚어 둘 더 조용한 정직함이 있습니다. 그래프는 BFO, IOF, OBO 온톨로지에 정렬(align) 합니다 — bp:Material 이 BFO 물질 엔터티이고 bp:Equipment 가 IOF 장비 조각이기도 하다고 단언하지요 — 하지만 그 상위 온톨로지들을 통째로 owl:imports 하지는 않으며(owl:imports 는 다른 온톨로지의 전체 내용을 끌어들이는 명령입니다), 하니스는 로컬 파일만 적재합니다. 그래서 여기서의 추론 실행은 우리의 로컬 공리와 그 정렬 간선(단언된 "우리 용어가 곧 그들의 용어다" 링크)을 얻을 뿐, 완전한 임포트와 함께 따라올 상위 논리 — BFO의 disjointness 규칙(어떤 범주들은 결코 겹칠 수 없다고 말하는 규칙)이나 BFO 공정까지 올라가는 IOF 자체의 상위 클래스 사슬 — 은 얻지 못합니다. 그 구분 — 공유 어휘를 위한 단언된 정렬 대(對) 교차 온톨로지 함의(entailment)(추론기가 그제야 끌어낼 수 있는 새로운 결론)를 위한 완전한 임포트 — 은 현학이 아닙니다. 그것은 다른 IOF 임포트 도구가 맞춰 볼 수 있는 그래프와, 이미 상위 논리를 지니고 다니는 그래프 사이의 차이입니다. 제2부가 그 선택을 명시적으로 드러내며 각각이 무엇을 사 주는지를 보여 줍니다.

왜 중요한가

이 머리말에서 단 하나만 기억해야 한다면, 이것으로 하십시오. 규제 대상 공정에서, 당신이 가진 데이터와 당신이 그에 따라 행동할 수 있는 지식 사이의 차이는 의미의 모델입니다. 그것이 없으면, 모든 시스템 간 질문 — 이 로트는 무엇에서 비롯되었는가? 어떤 다른 배치들이 이 세포 은행을 공유하는가? 어떤 변수들이 이 특성을 좌우했는가? — 은 매번 새로운 고고학 작업이 되어, 누군가가 스프레드시트를 내보내고 식별자를 손으로 맞춰 가며 답해야 합니다. 그것이 있으면, 그 질문들은 질의가 됩니다. 그것은 편의가 아닙니다. 조사 상황에서 그것은 범위가 좁혀진 일탈(deviation)과, 눈먼 채로 캠페인 전체를 격리하는 일 사이의 차이입니다. 그리고 그래프는 심사자가 요구할 안전성 근거를 이미 지니고 다닙니다. 두 개의 직교(orthogonal) 바이러스 제거 장벽 — 하나는 외피 보유 바이러스를 화학적으로 불활성화하고(저pH 유지), 다른 하나는 바이러스를 크기로 물리적으로 제거합니다(바이러스 보유성 나노여과) — 이 있고, 그 두 기전이 독립적이기에 그 검증된 로그 감소값(LRV, 각 단계가 바이러스를 몇 배로 제거하는지의 십진 로그)이 규제 당국이 기대하는 그대로 공정 전체에 걸쳐 합산되는데(4.5 더하기 4.2 는 총 8.7 LRV), 이는 하니스가 단언하는 데 그치지 않고 점검하는 사실입니다. 모델이야말로 참인 사실의 무더기를 압박 속에서도 추론할 수 있는 무언가로 바꾸는 것입니다.

실제 현장에서는

이것은 채택자를 기다리는 사고 실험이 아닙니다. 그 언어들은 여러 산업에 걸쳐 운영 지식 그래프를 돌리고 있는 확립된 W3C 표준이고, 상위 온톨로지는 공표된 ISO/IEC 표준 — 즉 기초 형식 온톨로지(Basic Formal Ontology, BFO 2020)이며 ISO/IEC 21838-2로 표준화되어 있습니다. 이것은 모델에서 가장 일반적인 선을, 지속하는 연속체(continuant)(바이오리액터, 로트)와 일어나는 발생체(occurrent)(세포 배양 실행) 사이에 긋고, 그 한 단계 아래에 산업 온톨로지 파운드리(IOF) 코어(Core)가 자리하여 우리의 바이오제약 클래스가 특수화하는 — 즉 bp:Bioreactor 가 IOF 장비의 한 특정 종류이듯, 더 구체적인 하위 타입으로 정의하는 — 제조 일반 용어(장비, 공정, 정보 콘텐츠)를 공급합니다. 그리고 위원회가 거버넌스를 맡아 상호운용 가능한 온톨로지를 짓는 모델은 2000년대 중반부터 생명과학에서 대규모로 작동해 왔습니다. 그때 OBO 파운드리(OBO Foundry) 는 공유 설계 규칙에 따라 지어진 생의학 온톨로지가 겹치는 대신 서로 맞물린다는 것을 보여 주었지요 [4]. 제조 분야는 산업 온톨로지 파운드리(Industrial Ontologies Foundry) 로 그 교훈을 따라했고, 그 바이오제약 워킹 그룹은 바로 이 책이 모델링하는 종류의 단일클론항체 라인을 겨냥한 제조 온톨로지를 내놓았습니다. 분석 쪽에서는 Allotrope 온톨로지가 이미 실험실 결과에 공급업체 중립적인 하나의 의미를 부여하고 있습니다. 그 조각들은 존재하고, 표준화되어 있으며, 서로 수렴해 가고 있습니다 — 바로 그렇기에 그것들을 잘 쓰는 법을 배워 둘 가치가 있는 것입니다.

핵심 용어

  • 온톨로지(Ontology) — 한 도메인 안에 무엇이 존재하며 그것들이 어떻게 관련되는지에 대한, 형식적이고 공유되며 기계가 읽을 수 있는 모델. 서로 다른 시스템이 같은 것을 뜻하게 해 주는 사전이자 문법.
  • 지식 그래프(Knowledge graph) — 온톨로지의 클래스와 관계로 지어진, 서로 연결된 사실들의 그물(고립된 테이블 속의 행이 아니라).
  • RDF 트리플(RDF triple) — 지식 그래프의 원자적 사실: 주어, 술어(이름 붙은 관계), 목적어(값 또는 다른 사물) — 예컨대 DS-001 — derivedFrom — PApool-001. RDF, OWL, SHACL은 Data Management 에서 소개되었고, 여기서는 그것들을 실제로 써먹습니다.
  • 설계기반 품질(QbD) — 기록된 공정 이해 — 핵심 변수와 품질 특성 사이의 연결 — 를 제품에 필수적인 것으로 다루는 체계.
  • 핵심 공정 변수(CPP) / 핵심 품질 특성(CQA) — 품질에 영향을 미치므로 반드시 통제해야 하는 공정 설정; 한계 안에 머물러야 하는, 측정 가능한 제품 특성.
  • derivedFrom — 이 책 전체에서 쓰이는 계보 관계로, 자식 자재나 로트를 그것이 비롯된 부모와 잇습니다. 배치의 계보를 따라갈 수 있게 만드는 간선.
  • FAIR 원칙(FAIR principles) — 데이터는 기계가 찾을 수 있고, 접근할 수 있고, 상호운용 가능하며, 재사용 가능해야 한다는 표준. 사실에서 FAIR한 것은 주장에서 FAIR한 것보다 어렵습니다.
  • 상위(기초) 온톨로지(Upper/foundational ontology) — 가장 일반적인 범주들로 이루어진 작고 도메인 중립적인 어휘로, 도메인 온톨로지가 호환성을 유지하도록 그 위에 지어집니다.
  • 참고문헌 페이지(References page) — 모든 본문 인용 표시가 그 출처로 연결되는 단 하나의 페이지.

다음 이야기

우리는 저장된 사실이 그 의미가 모델링될 때 비로소 지식 이 된다고 주장했습니다. 다음 장 명세: 역량 질문과 ORSD는 규율 있는 온톨로지가 실제로 시작되는 곳 — 클래스가 아니라, 완성된 모델이 답할 수 있어야 하는 질문 — 에서 시작합니다. 그 역량 질문들을 실행 가능한 요구사항 문서인 ORSD로 적어 두고, 그것을 validate.py가 실행하고 빌드를 게이트로 거는 23개의 통과/실패 인수 테스트로 바꾸어, 이후의 모든 모델링 선택이 얼마나 우아해 보이는지가 아니라 실제 질문에 봉사하는지로 판단되게 합니다.