본문으로 건너뛰기

상위 척추: 지속체, 발생체, 그리고 모두가 BFO 위에 쌓는 이유

📍 현재 위치: 1부 · 모델의 토대 — 1장. 머리말은 한 걸음씩 쌓아 올리는 모델을 약속했습니다. 우리는 그 모델의 가장 꼭대기, 곧 이후의 모든 용어가 매달리게 되는 작은 범주 집합에서 출발합니다.

머리말은 거의 너무 쉬워 보이는 약속을 했습니다. 하나의 공유된 모델을 세우면 모든 시스템이 모든 노트를 하나의 이야기로 읽을 수 있다는 약속이었죠. 하지만 그 안에는 함정이 숨어 있습니다. 세포배양 팀이 자기들의 온톨로지를 만들고, 실험실이 자기들의 것을, 창고가 자기들의 것을 만들도록 내버려 둔다면, 우리는 이질성 문제에서 벗어난 것이 아니라 — 그것을 한 단계 위로 끌어올렸을 뿐입니다. 생물학자의 "공정"과 엔지니어의 "공정"은 BR-101Lot 26-001이 그랬던 것과 똑같이 점점 어긋날 것이고, 다만 이번에는 그 불일치가 모델 자체의 구조 속에 파묻혀, 훨씬 더 보기도 고치기도 어렵습니다.

그 해법은, 누구든 도메인 용어를 쓰기 전에, 가장 일반적인 종류의 대상이 도대체 무엇인지부터 합의하는 것입니다. 그 합의가 바로 상위 온톨로지(upper ontology)이며, 이번 장은 과학과 산업의 대부분이 정착한 바로 그 하나에 관한 이야기입니다.

쉽게 말하면

사전을 쓰기 전에 먼저 품사가 필요합니다. "명사", "동사", "형용사"는 어느 특정 사전에 들어 있는 것이 아니라 — 모든 사전의 표제어가 그 아래로 떨어지는 범주이며, 바로 그래서 서로 다른 사람이 쓴 사전들도 여전히 호환됩니다. 상위 온톨로지(upper ontology)는 실재를 위한 품사입니다. 아무리 특수한 바이오공정 용어라도 그 안에 끼워 맞춰지는, 작고 도메인 중립적인 범주 집합 — 지속되는 것, 일어나는 것, 성질, 역할 — 이죠. 그것을 먼저 합의해 두면, 한 팀이 만든 Bioreactor와 다른 팀이 만든 CellCultureProcess는 서로 맞아떨어질 수밖에 없습니다.

이 장에서 다루는 내용

우리는 표준화된 상위 온톨로지인 기초 형식 온톨로지(Basic Formal Ontology, BFO)와, 그 가장 핵심을 떠받치는 단 하나의 구분 — 지속체(continuant)(지속되는 것)와 발생체(occurrent)(일어나는 것)의 구분 — 을 만납니다. 바이오공정의 일상적인 구성 요소들을 그 척추 위에 분류하고, 하나의 배치를 해부하여 BFO의 모든 범주가 한꺼번에 작동하는 모습을 보며, 그다음 한 단계 내려가 그 추상화를 제조에서 실제로 쓸 수 있게 만들어 주는 IOF 코어(IOF Core) 중간 계층으로 향합니다. 그리고 정직한 한계로 마무리합니다. 공유된 척추는 구조의 호환성을 보장할 뿐, 선택의 합의를 보장하지는 않는다는 것입니다.

상위 온톨로지란 무엇이며, 바이오공정에 왜 필요한가

상위(upper)(또는 기초, foundational) 온톨로지는 — 생물학, 화학, 제조와 무관하게 — 모든 것이 그 아래로 떨어지는, 가장 일반적인 범주들로 이루어진 작고 도메인 중립적인 어휘 체계입니다 [1]. 거기에는 의도적으로 BioreactorAntibody도 들어 있지 않습니다. 그 안에 들어 있는 것은 "생물반응기란 근본적으로 어떤 종류의 대상인가?" — 지속되는 객체 — 와 "발효란 어떤 종류의 대상인가?" — 전개되는 공정 — 라는 물음에 대한 답입니다. 모든 도메인 온톨로지를 같은 상위 범주 위에 세우면, 데이터 관리 책이 처음 논했던 그대로 그것들은 설계상 재사용 가능하고 결합 가능해집니다. 이번 장은 그 척추 자체를 보여 줍니다.

과학과 공학이 대체로 수렴한 상위 온톨로지가 바로 BFO, 곧 기초 형식 온톨로지(Basic Formal Ontology)입니다. 이것은 취미 삼아 만든 프로젝트도, 한 벤더의 발명품도 아닙니다. ISO/IEC 21838-2라는 국제 표준으로 발행되어, BFO를 적합한 최상위 온톨로지로 인증합니다 [1]. 그리고 그 설계 근거는 저자들이 책 한 권 분량으로 펼쳐 놓았습니다 [2]. 산업 온톨로지 파운드리(Industrial Ontologies Foundry)와 바이오제약 작업 그룹들이 최상위를 고를 때, 그들이 고른 것이 바로 이것입니다 — 그러니 BFO를 배우는 일은 여러분이 실제로 가져다 쓰게 될 제조 온톨로지들이 쓰여 있는 문법을 배우는 일입니다.

일을 해내는 단 하나의 구분: 지속체와 발생체

BFO의 핵심 수는 세상의 모든 것을 두 갈래로 가르는 것이며, 이 책의 거의 모든 모델링 결정은 어떤 대상이 그 선의 어느 쪽에 놓이는가로 거슬러 올라갑니다 [2].

지속체(continuant)는 부분을 얻고 잃으면서도 정체성을 유지한 채 전체로서 시간 속에서 지속되는 대상입니다. 세포, 생물반응기, 바이알, 원료의약품 한 배치, 그 배치의 순도, 어떤 용기가 "그 생산 반응기"로서 수행하는 역할 — 모두 지속체입니다. 그것들은 존재하는 매 순간 온전히 존재합니다. 지금 하나를 가리키고 한 시간 뒤에 다시 가리켜도, 여러분은 같은 전체를 가리키고 있는 것입니다.

발생체(occurrent)일어나는 대상입니다 — 시간 속에서 전개되며, 시간적 부분을 지니기 때문에 결코 한꺼번에 존재하지 않습니다. 발효, 단백질 A 포집 단계, 시료를 채취하는 행위, 제조 캠페인 전체 — 모두 발생체입니다. 탱크를 가리키듯 발효를 가리킬 수는 없습니다. 어느 한 순간에 여러분은 그것의 한 조각만을 붙잡을 뿐입니다.

이 구분은 추상적으로 들리지만, 사람들이 얼마나 자주 엉뚱한 쪽으로 모델링하는지를 알아차리는 순간 달라집니다. "배치"는 지속체입니다 — 물질이죠 — 하지만 그 배치를 만드는 일은 발생체입니다. 둘을 뭉뚱그리면, 여러분의 그래프는 하나의 생물반응기(지속되는 객체)가 지난달에 세 번의 서로 다른 발효(세 개의 별개 사건)를 진행했다고 말할 수 없습니다. 두 역할을 하나의 흐릿한 "배치" 개념이 떠맡고 있기 때문입니다. 이 둘을 따로 떼어 두는 것이야말로, 모델이 장비와 물질과 활동을 한꺼번에 정확하게 말할 수 있게 해 주는 일입니다.

지속체의 내부: 객체, 성질, 그리고 실현 가능자

지속체는 바이오공정이 끊임없이 활용하는 방식으로 다시 갈라집니다 [2]. 독립적 지속체(independent continuant)는 그 자체로 존재하는 대상입니다 — 생물반응기, 세포, 원료의약품 로트처럼 물질적 실체(material entity)가 그 예죠. 특정적 의존 지속체(specifically dependent continuant)는 오직 다른 무언가 안에 내속(inhere)함으로써만 존재하는 대상입니다. 이를테면 98.611 % 단량체 순도와 같은 성질(quality)은 홀로 떠다닐 수 없고 반드시 어떤 로트 순도여야 합니다. 또는 실현 가능한 실체(realizable entity) — 이 캠페인에서 어떤 용기가 생산 반응기 역할을 수행하는 것(언젠가 그만둘 수 있는 역할인) 같은 역할(role), 크로마토그래피 수지가 항체를 결합하려는 성향 같은 성향(disposition), 바이러스 필터의 설계된 목적 같은 기능(function) — 도 그렇습니다. 일반적 의존 지속체(generically dependent continuant)는 특이하면서도 중요한 것입니다. 여러 운반체를 넘나들며 복제될 수 있는 정보죠 — 레시피, 마스터 배치 기록, 규격, 분석 성적서가 그것입니다. 규격은 그것이 인쇄된 종이도, 그것을 띄운 화면도 아닙니다. 그것은 내용이며, BFO는 그 운반체들이 지니는(bear) 독립적인 대상으로 이를 모델링하게 해 줍니다.

객체, 성질, 정보라는 이 세 갈래의 구분은, 실제 질문에 답할 수 있는 모델과 그렇지 못한 모델을 가르는 차이입니다. "순도가 얼마인가?"는 어떤 로트에 내속하는 성질을 묻습니다. "규격이 요구하는 것은 무엇인가?"는 일반적 의존 지속체를 묻습니다. "그것은 어떤 용기였는가?"는 역할을 수행하는 독립적 지속체를 묻습니다. "배치"라는 한 단어가 이 셋을 모두 담을 수는 없습니다. BFO의 범주는 그것을 해냅니다.

BFO 실체에 뿌리를 둔 두 갈래 범주 트리: 왼쪽 갈래 지속체는 독립적 지속체(물질적 실체, 바이오공정 예시로 생물반응기, CHO 세포, 원료의약품 로트), 특정적 의존 지속체(성질 — 단량체 순도, pH; 실현 가능한 실체 — 생산 반응기 역할, 수지 결합 성향, 바이러스 필터 기능), 그리고 일반적 의존 지속체(레시피, 마스터 배치 기록, 규격, 분석 성적서)로 갈라지고, 오른쪽 갈래 발생체는 공정(세포배양 발효, 단백질 A 포집 단계, 시료 채취), 공정 경계, 시간 영역으로 갈라지며, 제조 캠페인 전체가 다른 것들에 걸쳐 있는 큰 공정으로 표시됩니다. 바이오공정 구성 요소를 매단 BFO 척추: 왼쪽에는 지속되는 것(객체, 그것에 내속하는 성질, 그것이 수행하는 역할, 그것에 관한 정보), 오른쪽에는 일어나는 것(만들고 정제하는 공정). 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

하나의 배치 해부, 척추 위에 놓기

상위 온톨로지의 효용은 익숙한 대상 하나를 분해하여 그 안에서 BFO의 모든 범주가 모습을 드러내는 것을 지켜볼 때 가장 잘 보입니다. BATCH-2026-001을 봅시다 — 하나의 기록으로서가 아니라, 꼼꼼한 모델이 거기서 보는 별개 실체들의 무리로서 말입니다.

배치 물질(batch material) 그 자체 — 세포와 배양액, 그리고 나중에는 정제된 단백질 — 는 물질적 실체(material entity)이며 독립적 지속체입니다. 그것을 담았던 생산 생물반응기(production bioreactor) 역시 물질적 실체이지만, 다른 것입니다. 장비는 여러 배치에 걸쳐 지속되므로, 모델은 용기를 물질에 융합시켜서는 안 됩니다. 발효(fermentation) — 며칠에 걸친 성장과 생산 — 는 발생체(occurrent), 곧 공정이며, 배치 물질과 용기가 모두 그것에 참여합니다(participate in). 98.611 % 단량체 순도성질(quality)이며, 오직 원료의약품 로트에만 내속하고 다른 어디에도 내속하지 않는 특정적 의존 지속체입니다. 용기가 "이 캠페인의 생산 반응기"라는 지위를 갖는 것은 역할(role)이며, 그 기간 동안 지니고 있다가 벗어 버릴 수도 있는 실현 가능한 실체입니다. 그리고 이 모든 것을 규정한 마스터 배치 기록(master batch record)일반적 의존 지속체(generically dependent continuant)입니다 — 정보이고, 복제 가능하며, 어떤 인쇄물과도 구별됩니다.

BATCH-2026-001을 그것이 실제로 담고 있는 별개의 BFO 실체들로 해부하는 식별 카드: 배치 물질에 대한 물질적 실체 행과, 생산 생물반응기 용기에 대한 별도의 물질적 실체 행; 둘이 함께 참여하는 세포배양 발효에 대한 공정 행; 원료의약품 로트에 내속하는 98.611 퍼센트 단량체 순도에 대한 성질 행; 용기의 생산 반응기 역할에 대한 실현 가능한 실체 행; 그리고 마스터 배치 기록에 대한 일반적 의존 지속체 행이 있으며, 각각 그 BFO 범주가 표시되고 지속체 대 발생체로 색상이 구분됩니다. 하나의 배치는 동시에 여러 BFO 실체입니다: 물질(따로 떼어 둔 배양액과 용기), 공정(그것들이 참여하는 발효), 성질(로트에 내속하는 순도), 역할(용기가 무엇으로 쓰이고 있는지), 그리고 정보(그것을 규정한 기록). 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

이 규율이 우리에게 무엇을 안겨 주었는지 보십시오. 용기와 물질이 별개의 물질적 실체이기에, 그래프는 나중에 다른 배치가 같은 용기에서 진행되었다고 모순 없이 말할 수 있습니다. 발효가 둘 다 참여하는 발생체이기에, "이 일이 언제 일어났는가?"가 매달릴 곳이 생깁니다. 순도가 로트의 성질이기에, 그것이 빈 탱크에 잘못 주장될 수 없습니다. 상위 온톨로지는 사실을 추가한 것이 아닙니다. 모든 사실에 알맞은 종류의 거처를 주었고, 바로 그것이 모델이 커져 가는 동안에도 정직함을 유지하게 해 줍니다.

이 배치 하나를 실행 예제의 트리플로 적으면, 서로 다른 BFO 종류들로 펼쳐집니다 — 하나의 물질적 실체, 용기를 위한 별도의 물질적 실체, 그것이 지니는 역할, 그리고 배치를 산출하면서 용기 안에서 일어나는 발생체가 그것입니다.

# instances.ttl — one batch, its vessel, and its run, each a different BFO kind.
bp:BATCH-2026-001 a bp:Batch ; # a material entity (independent continuant), typed once
bp:derivedFrom bp:SEED-001 ;
bp:participatesIn bp:CCP-001 ; # ...that participates in an occurrent
bp:monomerPct "98.611"^^xsd:float . # ...and bears a quality
bp:BR-101 a bp:ProductionBioreactor ; # the vessel — a SEPARATE material entity
bp:hasRole bp:BR-101-role . # ...bearing a realizable role
bp:BR-101-role a bp:ProductionReactorRole . # a role (realizable entity)
bp:CCP-001 a bp:CellCultureProcess ; # the run — an occurrent (process)
bp:occursIn bp:BR-101 ; # ...that occurs in the vessel
bp:hasOutput bp:BATCH-2026-001 . # ...and outputs the batch material

척추에서 공장으로: IOF 코어 중간 계층

BFO는 직접 모델링하기에는 의도적으로 너무 추상적입니다 — 거기에는 EquipmentMaterial도 없고, 오직 objectprocess만 있습니다. 그 얇은 꼭대기에서 실제로 쓸 수 있는 제조 어휘 체계로 건너가는 다리가 중간 계층(mid-level) 온톨로지이며, 산업 분야에서 그것이 바로 IOF 코어(IOF Core)입니다. 산업 온톨로지 파운드리가 발행한, 모든 제조 도메인이 공유할 수 있는 BFO 기반 개념 집합 — 장비, 물질, 공정, 역량, 그리고 그것들 사이의 관계 — 이죠 [5]. IOF는 다시 OBO 파운드리(OBO Foundry)를 명시적으로 본떠 만들어졌습니다. OBO 파운드리는 조율되고 원칙에 기반한 온톨로지 구축이 대규모로 작동함을 입증한 생명과학 공동체로, 수십 개의 생의학 온톨로지가 상위 기반과 설계 규칙을 공유하기에 서로 겹치는 대신 맞물립니다 [3].

그래서 이 스택은 세 단을 가지며, 오픈소스 책의 지식 그래프 장은 그 모두를 올라갑니다. 맨 위에 BFO(어떤 종류의 대상인가), 가운데에 IOF 코어(일반 제조), 맨 아래에 바이오제약 도메인 온톨로지(Bioreactor, MasterRecipe, CellLine)가 있죠. 우리의 지역 bp: 네임스페이스는 네 번째 단입니다 — 도메인 온톨로지를 다시 발명하는 대신 그것에 위로 정렬되는, 사이트 특화적인 작은 어휘 체계죠. 각 단은 바로 위의 단을 특화하므로, 추론기 아래에서 bp:Batch는 자신의 IOF 유형(IOF 물질적 산물(material artifact))과 BFO 유형(독립적 지속체인 물질적 실체(material entity))을 물려받으며, 그것이 보장하는 모든 호환성을 함께 얻습니다. "물질적 실체"라는 이름의 IOF 클래스가 글자 그대로 존재하는 것은 아닙니다 — 그 용어는 BFO의 것이고, IOF 단이 기여하는 것은 물질적 산물(material artifact), 제조 공정(manufacturing process), 장비 일부(piece of equipment) 따위입니다.

아래로 갈수록 좁아지는 내포된 가로 띠로 그려진 네 단의 계층 스택: 맨 위에 BFO(ISO/IEC 21838-2) 상위 범주; 그 아래에 IOF 코어 중간 계층 제조 개념(물질 산출물(Batch), 공정, 요구사항 규격(Specification))과, IOF가 OBO 파운드리를 본떠 만들어졌다는 곁주석; 그 아래에 IOF 바이오제약 도메인 온톨로지(바이오리액터, 크로마토그래피 칼럼, 세포주, 마스터 레시피); 그리고 맨 아래에 새 클래스를 발명하는 대신 위로 정렬되는 지역 bp 네임스페이스가 있으며, 모든 단이 바로 위의 단을 특화함을 보여 주는 곧은 화살표와, 네 단 모두가 흘러드는 맨 아래의 하나의 지식 그래프가 있습니다. 각각 바로 위의 단을 특화하는 네 단: 중립적인 상위 온톨로지, OBO 파운드리를 본뜬 산업용 중간 계층, 바이오제약 도메인, 그리고 그것에 위로 정렬되는 지역 어휘 체계 — 그래서 지역 클래스가 호환성을 거저 물려받습니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

이 네 단은 비유가 아닙니다 — 그것은 말 그대로 정렬 파일이 주장하는 바입니다. 각 지역 bp: 클래스는 실재하고 발행된 상위 용어의 하위 클래스임을 스스로 선언하므로, bp:Batch는 자신이 IOF 물질적 산물이고 BFO 물질적 실체임을 주장합니다. 출처에 관한 단서 하나: 이 IRI들은 검증되었지만 모두 한곳에서 확인한 것은 아닙니다 — BFO와 OBO 용어는 EBI 온톨로지 룩업 서비스(OLS4)에 대조했고, IOF 용어는 GitHub에 발행된 IOF 릴리스에 대조했습니다. OLS가 IOF를 호스팅하지 않기 때문입니다. 각 IRI는 살아 있고 역참조 가능합니다.

# align.ttl — local vocabulary aligned UP to BFO 2020 + IOF Core + IOF biopharma (verified IRIs).
@prefix bp: <https://example.org/bioproc#> .
@prefix obo: <http://purl.obolibrary.org/obo/> .
@prefix iof: <https://spec.industrialontologies.org/ontology/construct/> .

bp:Material rdfs:subClassOf obo:BFO_0000040 . # BFO 'material entity'
bp:Process rdfs:subClassOf obo:BFO_0000015 . # BFO 'process'
bp:CellCultureProcess rdfs:subClassOf iof:ManufacturingProcess . # IOF Core mid-level
bp:Batch rdfs:subClassOf iof:MaterialArtifact . # IOF Core
bp:CaptureChromatography rdfs:subClassOf iof:CaptureStep . # IOF biopharma unit op
bp:CellLine rdfs:subClassOf iof:CellLine . # IOF biopharma material
bp:Quality rdfs:subClassOf obo:BFO_0000019 . # BFO 'quality'
bp:InformationArtifact rdfs:subClassOf iof:InformationContentEntity .

짚어 둘 가치가 있는 간극이 하나 있는데, 대부분의 도입이 바로 여기서 걸려 넘어지기 때문입니다. rdfs:subClassOf iof:MaterialArtifact를 주장하면 다른 팀의 IOF 인식 도구가 맞춰 볼 수 있는, 실재하고 공유된 IRI를 얻게 됩니다 — 하지만 그것만으로는 추론기가 bp:Batch를 BFO 물질적 실체라고 결론짓게 하지 못합니다. iof:MaterialArtifact에서 BFO로 올라가는 사슬은 IOF 온톨로지 안에 들어 있고, 정렬 파일은 그것을 적재하지 않기 때문입니다. 그 주장을 추론으로 바꾸려면 IOF 코어를 owl:imports해야 하며 — IOF 코어는 그 자체로 BFO 2020을 임포트합니다 — 그러면 추론기가 여러분의 용어를 스택 전체를 거쳐 분류하고 그에 비추어 일관성을 검사합니다. IOF는 코어 이상이기도 합니다. 그것은 도메인 모듈들을 함께 제공하며, 바이오제약(biopharma) 모듈은 생각보다 충실합니다. 공개된 릴리스(Release_202602)에 직접 비추어 감사해 보면, 이 모듈은 171개 클래스를 정의하고 — 전부 Released로 표시되어 있으며(잠정[provisional]이 아닙니다) — 그중 44개가 단위공정 클래스, 17개가 QbD 파라미터 클래스입니다. 그래서 실행 예제는 내부 전체에 걸쳐 실재하고 검증된 IOF 용어를 새로 주조하는 대신 재사용합니다. 장비와 레시피에는 iof:Bioreactor, iof:ChromatographyColumn, iof:MasterRecipe를, 단위공정에는 iof:CaptureStep, iof:ViralClearance, iof:ViralInactivation, iof:ViralFiltration, iof:PolishingProcess, iof:DrugProductFormulationProcess를, 세포주와 그것이 유래한 클론에는 iof:CellLineiof:ClonedCellLine을, QbD 골격에는 iof:QualityAttribute, iof:ProcessParameter, 그리고 정상운전범위·입증가능허용범위 표현을 씁니다. IOF에 정착된 용어가 정말로 없는 곳에서는, 정렬이 그 간극을 덮어 가리지 않고 정직하게 둡니다. 맨 iof:Specification 클래스는 없으므로(그래서 bp:Specificationiof:RequirementSpecification에 정렬합니다), 그리고 충전·마감(fill-finish)이나 무균충전, 동결건조 클래스는 아예 없으므로 bp:FillFinishProcess는 플래그가 달린 지역 클래스로 남습니다. 실행 예제는 둘 다 합니다 — align.ttl은 IOF 바이오제약 용어를 재사용하고, 동반 파일 bioproc-imports.ttl은 실제 owl:imports를 담습니다 — 그러면서도 오프라인 검증기는 외부 스택을 가져오지 않고도 증명할 수 있는 범위로 한정해 둡니다. 정직한 한 줄 요약: 정렬은 공유 어휘를 거저 안겨 주지만, 온톨로지 간 추론은 임포트해야 비로소 얻습니다.

관계 또한 척추의 일부다

상위 온톨로지는 대상의 종류뿐 아니라 그것들 사이의 관계도 표준화하며, 그것을 제대로 하는 일은 그에 못지않게 중요합니다. 생의학 공동체는 일찍이 관계 온톨로지(Relation Ontology, RO)에 이를 적어 두며, 일부이다(part of), 참여한다(participates in), 참여자로 가진다(has participant), 관한 것이다(is about), 유래한다(derives from) 같은 관계도 클래스만큼 신중하게 정의되어야 하며 그렇지 않으면 두 온톨로지가 "일부이다"를 서로 다른 두 의미로 쓰게 된다고 주장했습니다 [4]. BFO는 중추가 되는 관계들을 공급합니다. 지속체는 발생체에 참여하고(배치가 발효에 참여), 성질은 지속체에 내속하며(순도가 로트에 내속), 역할은 공정에서 실현됩니다(is realized in). 우리의 일꾼 derivedFrom — 머리말에서 나온 계보 간선 — 은 이 중추 위에 깔끔하게 얹히는 도메인 관계로, 하나의 물질적 실체를 그것이 비롯된 부모 물질에 잇습니다. 그것을 명확한 정의와 함께 한 번 선언해 두는 것이야말로, derivedFrom, madeFrom, comesFrom이 아무도 교차 질의할 수 없는 세 개의 반쪽짜리 유의어로 불어나는 것을 막아 줍니다.

미해결 과제: 공유된 척추는 필요조건일 뿐 충분조건은 아니다

이 모든 것을 "BFO를 채택하면 의미 문제가 해결된다"로 읽고 싶어집니다. 그렇지 않으며, 그 간극은 정확히 짚어 둘 가치가 있습니다. 공유된 상위 온톨로지는 독립적으로 만들어진 두 온톨로지가 구조적으로 호환됨을 보장합니다 — 둘 다 공정이 발생체이고 순도가 성질이라는 데 동의한다는 것이죠. 하지만 같은 공장을 마주한 두 모델러가 같은 선택을 하리라는 것은 보장하지 않습니다. 한 사람은 "수확(harvest)"을 공정으로 모델링하고, 다른 사람은 그 결과로 생기는 물질로 모델링할 수 있으며, 둘 다 BFO에 적합하면서도 여전히 서로 맞아떨어지지 않을 수 있습니다. 구조의 호환성은 내용의 합의가 아닙니다.

더 나쁘게도, 이 추상화에는 이 분야가 공공연히 논쟁하는 실질적인 비용이 따릅니다. 모든 실체를 척추 위에 올바르게 분류하는 데는 진정한 온톨로지 전문성이 필요합니다 — 지속체/발생체의 선은 이론에서는 날카롭지만 실무에서는 미끄럽습니다("배치"는 물질인가, 기록인가, 진행 자체인가? 정직한 답은 "세 개의 서로 다른 실체"이며, 이는 대부분의 프로젝트가 예산을 잡는 것보다 더 많은 작업입니다). 과잉 모델링은 그 나름의 실패입니다. 사소한 모든 것이 역할과 성향으로 분해된 그래프는 쓸 수 없게 됩니다. 그러므로 상위 척추는 토대일 뿐 완성된 건물이 아닙니다. 그것은 비호환성과 조용한 오류의 전체 범주를 미리 막아 줍니다 — 그것만으로도 큰일이죠 — 하지만 같은 클래스를 고르고, 유용한 깊이에서 모델링을 멈추는 규율은 여전히 인간의 실천으로 남으며, 이 책은 모델 거버넌스최종 평가에서 그 문제로 되돌아옵니다. BFO는 어떤 종류의 대상이 존재하는지는 알려 주지만, 여러분의 동료가 수확을 여러분과 똑같은 방식으로 모델링했다고는 알려 주지 못합니다.

왜 중요한가

이 책의 이후 모든 장은 새로운 실체에 이름을 붙입니다 — 표적, 설계 공간, 크로마토그래피 풀, 출하 규격 — 그리고 그 하나하나가 이 척추 위에 놓이게 됩니다. 그 작업을 하는 이유는 지렛대 효과입니다. BFO에 고정된 용어는 단 하나의 맞춤 어댑터 없이도 지상의 모든 다른 BFO 기반 온톨로지와 상호운용 가능하며, 이는 FAIR 원칙의 약속 전체를 구조로 구현한 것입니다. 척추를 건너뛰면, 한 프로젝트 안에서만 작동하고 다른 어디서도 작동하지 않는 어휘 체계를 얻게 됩니다 — 사적인 방언의 함정을, 더 값비싼 재료로 다시 지은 셈이죠.

실제 현장에서는

BFO의 도달 범위는 희망 사항이 아닙니다. 그것은 OBO 파운드리 생의학 온톨로지의 상당 부분 아래에 깔린 상위 온톨로지이고, ISO/IEC 표준이며, 산업 온톨로지 파운드리가 제조를 위해 — 이 책이 모델링하는 것과 같은 단일클론항체 라인을 겨냥한 바이오제약 온톨로지를 포함하여 — 선택한 기반입니다 [1][5]. 실무에서 여러분이 날것의 BFO에 대고 실체를 손으로 분류하는 일은 드뭅니다. 이미 그 일을 해 둔 도메인 온톨로지를 가져다 쓰고, 정렬을 검사해 줄 수 있는 Protégé 같은 편집기에서 지역 용어를 저작하죠. 척추는 일상적인 사용에서는 대체로 보이지 않습니다 — 글을 쓰는 동안 품사가 보이지 않는 것과 똑같이, 모든 문장에 존재하지만 문법적으로 무언가 잘못되었을 때에야 비로소 눈에 띕니다.

핵심 용어

  • 상위(기초) 온톨로지(upper / foundational ontology) — 가장 일반적인 범주들로 이루어진 작고 도메인 중립적인 어휘 체계로, 도메인 온톨로지들이 그 위에 쌓아 호환성을 유지함.
  • 기초 형식 온톨로지(Basic Formal Ontology, BFO) — 과학과 산업 전반에서 쓰이는 표준화된 상위 온톨로지(ISO/IEC 21838-2).
  • 지속체(continuant) — 전체로서 시간 속에서 지속되며 존재하는 매 순간 온전히 존재하는 실체(세포, 용기, 로트, 순도, 역할).
  • 발생체(occurrent) — 일어나며 시간 속에서 전개되고 시간적 부분을 지니는 실체(발효, 포집 단계, 캠페인).
  • 독립적 지속체 / 물질적 실체(independent continuant / material entity) — 생물반응기나 원료의약품 로트처럼 그 자체로 존재하는 대상.
  • 특정적 의존 지속체(specifically dependent continuant) — 오직 다른 무언가에 내속함으로써만 존재하는 성질(단량체 순도)이나 실현 가능한 실체(역할, 성향, 기능).
  • 일반적 의존 지속체(generically dependent continuant) — 레시피, 마스터 배치 기록, 규격, 분석 성적서처럼 복제 가능한 정보.
  • IOF 코어(IOF Core) — 도메인 온톨로지가 특화할 수 있도록 공유 개념(장비, 물질, 공정)을 공급하는 BFO 기반 중간 계층 제조 온톨로지.
  • OBO 파운드리(OBO Foundry) — 조율되고 원칙에 기반한 온톨로지로 산업용 대응물에 영감을 준 생명과학 공동체.
  • 관계 온톨로지(Relation Ontology, RO) — 관계(일부이다, 참여한다, 유래한다)가 온톨로지 전반에서 같은 의미를 갖도록 클래스만큼 신중하게 정의하려는 노력.

다음 이야기

이제 우리는 척추를 갖추었습니다. 모든 용어가 매달리는 범주들과 그것들을 잇는 관계들이죠. 다음 장 클래스, 관계, 공리: 어휘 체계 짓기는 상위 범주에서 실제 저작 행위로 내려갑니다 — Batch 클래스, derivedFrom 관계, 그리고 헐거운 어휘 체계를 추론기가 검사하고 확장할 수 있는 무언가로 바꿔 주는 공리를 정의하죠. 우리는 어떤 종류의 대상이 존재하는가에서 그것을 어떻게 적어 두는가로 옮겨 갑니다.