본문으로 건너뛰기

재사용: 기존 온톨로지를 조사하고 정렬하기

📍 현재 위치: 제2부 · 재사용 — 수명주기의 두 번째 단계로, NeOn의 재사용 시나리오와 LOT의 재사용 우선 저작 규율이 다스립니다. 명세는 작성되었고 러닝 예제는 로드 가능합니다. 새 클래스를 단 하나 그리기 전에, 우리는 장을 보러 갑니다. 세상이 이미 발행해 둔 것을 조사하고, 무엇을 빌릴지 결정하며, 그 빌림을 하나의 파일로 적어 둡니다.

온톨로지에서 가장 값싼 클래스는 결코 직접 저작할 필요가 없었던 클래스입니다. 명세는 모델이 무엇에 답해야 하는가를 고정했고, 재사용 단계는 그 답이 이미 얼마나 존재하는가를 고정합니다. CHO(중국 햄스터 난소, Chinese Hamster Ovary) 세포주 — 단클론항체, 즉 살아 있는 세포에서 키우는 표적 단백질 의약품을 만드는 업계 표준 숙주 — 의 경우 그 답은 거의 전부입니다. 세포주가 만들어진 중국 햄스터는 공개된 생명의 나무 위의 한 노드이고, 세포가 분비하는 IgG 복합체(항체 분자 그 자체), 그것을 브로스(세포가 자라는 액체)에서 끌어내는 Protein A 포획 단계, 그 단계가 돌아가는 크로마토그래피 매질(항체를 그 밖 모든 것으로부터 분리하는 충전된 물질), 그리고 피드 속도가 그 인스턴스가 되는 "공정 파라미터"는 각각 어딘가에 안정적인 IRI(Internationalized Resource Identifier — 두 시스템이 같은 존재를 뜻함을 확인할 수 있도록, URL처럼 정확히 하나의 사물을 명명하는 전역 웹 주소)와 그것을 유지하는 커뮤니티와 함께 발행된 클래스입니다. 여기서 명명된 각 제조 단계 — Protein A 포획, 바이러스 불활성화와 여과, 폴리싱, UF/DF(한외여과/정용여과), 충전·완제 — 의 물리적 의미는 Book 1의 바이오공정 개요에서 끝에서 끝까지 다루며, 여기서는 그 이름과 온톨로지 계층만 재사용합니다. 재사용 우선은 절약 그 자체를 위한 검소함이 아닙니다. 그것은 사적인 캠페인 그래프가 사후에 아무도 예산을 잡지 않는 개조를 거친 뒤가 아니라, 로드되는 그 순간 생명의학·제조의 나머지 세계와 상호운용 가능해지는 유일한 길입니다 [4].

쉽게 말하면

주방을 짓기 전에 나사를 직접 벼리지는 않습니다. 표준 나사, 표준 배관 피팅, 표준 전기 소켓을 삽니다 — 내년에 설치할 식기세척기가 바로 그것들을 기대하기 때문이고, 손수 만든 소켓은 영영 손수 만든 식기세척기를 뜻하기 때문입니다. 온톨로지를 재사용한다는 것은 표준 부품을 사는 것입니다. 나사는 "중국 햄스터"에 대한 NCBITaxon이고, 배관 피팅은 "Protein A 포획"에 대한 iof:CaptureStep입니다. 이 장은 철물점 나들이입니다 — 진열대를 둘러보고, 부품을 고르고, 부품 목록을 적는 일을, 어떤 맞춤 용접이 시작되기 전에 끝냅니다.

질문에서 출발하라

재사용은 이 책의 단 하나뿐인 비기능 요구사항(non-functional requirement) — 모델이 답해야 할 단일 질문이 아니라 모델 전체가 가져야 할 품질 — 을 운용화한 것입니다. ORSD(Ontology Requirements Specification Document)재사용 우선 — "공개 온톨로지에 정렬하고, 진정으로 로컬한 것만 발행하라" — 를, 어떤 단일 역량 질문과도 무관하게 모델이 가져야 할 품질로 나열합니다. 그러나 그것은 하나의 기능 질문도 직접 떠받칩니다. CQ-20세포주가 그 산물을 발현하는 숙주 생물은, 안정적인 NCBI Taxon IRI로 무엇인가?를 묻습니다 — 그리고 CHO 세포주에 대한 유일하게 정직한 답은 모호한 세 글자 문자열 "CHO"가 아니라 obo:NCBITaxon_10029로 명명된 Cricetulus griseus입니다. 그 질문은 모델이 NCBI Taxonomy를 이미 재사용했을 때에만 답할 수 있습니다. 결코 빌린 적 없는 안정적인 분류군 IRI를 반환할 수는 없기 때문입니다. 그리고 그 질문이 중요한 까닭은 숙주가 계보에서 가장 깊은 사실이기 때문입니다 — 세포주는 살아 있고, 돌연변이하며, 표류하므로, 그 종을 공개 데이터베이스와 공유하는 안정적인 식별자로 명명하는 것은 오인식된 뿌리가 완전한 확신을 가지고 그 아래 모든 배치로 전파되는 일에 맞서는 첫 방어선입니다. 따라서 재사용은 문체적 선호가 아니라, 특정 안전 필수 테스트가 통과하기 위한 전제 조건이며, 바로 그래서 수명주기는 그것을 개념화 이전에 두고 마무리 손질로 취급하지 않습니다.

재사용을 개념화하라: 하나의 배치에 뿌리내린 계층별 조사

온톨로지는 쌓이고, 제조상의 이유로 쌓입니다. 항체 한 배치는 한 종류의 사물이 아니라 여러 종류의 사물이며, 각 종류는 서로 다른 계층으로 가장 잘 기술됩니다. BATCH-2026-001을 봅시다. 배치 물질 — 세포, 브로스, 그리고 나중의 정제된 단백질 — 은 하나의 사물입니다. 그것을 담았던 생산 바이오리액터다른 사물인데, 장비는 여러 배치에 걸쳐 지속되며 물질과 융합되어서는 안 되기 때문입니다. 세포를 키운 발효(fermentation)는 둘 다 참여하는 세 번째 사물입니다. 98.611 % 단량체 순도(monomer purity)(산물 중 뭉쳐진 응집체가 아니라 온전한 단일 항체 분자인 비율)는 네 번째로, 하나의 특정 물질 로트에만 깃들고 — 그것에 속하며 그것과 떨어져 존재할 수 없고 — 그 밖 어디에도 없는 quality입니다. 그 용기가 "이 캠페인의 생산 반응기"라는 지위에 서 있다는 것은 다섯 번째로, 그것이 짊어지며 벗을 수도 있는 role입니다(같은 스틸 탱크는 재배정되어도 여전히 같은 탱크이므로, 그 생산 반응기 role은 그것을 담는 용기와는 별개의 사물입니다). 그리고 전체 공정을 규정한 마스터 배치 기록(master batch record)은 여섯 번째로, 어떤 출력물과도 구별되는 복사 가능한 정보입니다. 여섯 존재, 하나의 배치 — 그리고 NeOn 재사용 시나리오는 그 존재의 무리가 걸쳐 있는 모든 수준에서 재사용 가능한 자원을 찾으라고 일러 줍니다. 높은 곳에서 빌릴수록 임포트 하나당 가장 많은 호환성을 사기 때문입니다. 캠페인을 위에서 아래로 조사하면 네 계층이 나옵니다.

  • 토대(Foundational). 하나의 상위 온톨로지 — 모든 분야의 용어가 그 아래 매달리는, 가장 일반적인 종류의 사물(객체, quality, process, role)에 대한 도메인 중립 어휘 — 가 모든 것을 떠받칩니다. ISO/IEC 21838-2로 표준화된 기본 형식 온톨로지(Basic Formal Ontology), 즉 BFO입니다 [1]. 그것은 도메인 용어를 전혀 기여하지 않습니다 — 오직 물질 존재(material entity), quality, process, role만을 줍니다 — 그러나 그것이야말로 그 하나의 배치 안 여섯 사물이 각각 올바른 종류의 거처를 찾게 해 주는 것입니다. 용기와 브로스는 둘 다 물질 존재(obo:BFO_0000040)이면서도 별개의 개체로 남고, 발효는 모델이 그것이 산출하는 물질과 결코 혼동하지 않는 process(obo:BFO_0000015)이며, 순도는 빈 탱크에 우연히 단언될 수 없는 quality(obo:BFO_0000019)이고, 생산 반응기라는 지위는 role(obo:BFO_0000023)입니다. 지속하는 것과 일어나는 것을 가르는 이 continuant/occurrent 분리는 상위 척추 장이 세운 등뼈이며 [2], 배치 추적성을 사 주는 것입니다. 용기와 물질이 별개의 continuant이기 때문에, 그래프는 나중에 두 번째 배치가 같은 BR-101에서 돌았다고 모순 없이 말할 수 있고, 발효가 둘 다 참여하는 occurrent이기 때문에 "이것은 언제 일어났는가?"가 붙을 자리를 가집니다.
  • 중간 수준(Mid-level) — 산업 온톨로지 파운드리(Industrial Ontologies Foundry)가 발행한 IOF Core는 BFO와 공장 사이에 자리합니다: 물질 인공물(material artifact), 제조 프로세스(manufacturing process), 장비(piece of equipment), 요구사항 명세(requirement specification) [5]. 이것이 bp:Batch를 IOF 물질 인공물로, 발효를 IOF 제조 프로세스로 만드는 단입니다 — 98.611 % 순도 로트가 어떤 항체 고유 용어가 그려지기 전에 필요로 하는 범용 제조 어휘입니다. IOF는 원칙 기반의 조율된 온톨로지 구축이 대규모로 작동함을 입증한 생명과학 커뮤니티인 OBO Foundry를 의도적으로 본떠 모델링되었습니다 [3].
  • 도메인(Domain) — 두 도메인 가족이 여기서 만납니다. IOF 바이오제약(biopharma) 모듈은 캠페인이 거쳐 가는 제조 내부를 공급합니다: 바이오리액터, 크로마토그래피 칼럼과 매질, 막 필터, 그리고 단위 조작 사슬 자체 — 포획, 바이러스 제거, 폴리싱, UF/DF(한외여과/정용여과), 제형화(각 물리적 단계는 Book 1에서 구축됩니다 — 포획, 바이러스 여과, UF/DF, 제형화와 충전·완제 참조) — 에 더해 세포주와 클론 세포주, 그리고 피드 속도를 순도에 잇는 QbD(Quality by Design) 파라미터/범위 클래스까지 줍니다. OBO 멤버는 그 조작 아래의 생물학과 과학을 공급합니다: IgG 분자 기능을 위한 유전자 온톨로지(Gene Ontology, GO) [6], 항체의 표적을 위한 단백질 온톨로지(Protein Ontology, PRO) [7], 중국 햄스터 숙주를 위한 NCBI Taxonomy [9], CHO 세포주를 위한 세포주 온톨로지(Cell Line Ontology, CLO) [10], 산물 개념이 명명하는 적응증을 위한 인간 질병 온톨로지(Human Disease Ontology) [8], 분석법과 조사를 위한 OBI [11], 제형 부형제를 위한 ChEBI, 산물 및 작용 기전 개념을 위한 NCIt, 그리고 마스터 배치 기록 같은 정보 인공물을 위한 IAO입니다. 그리고 바이러스 제거 단은 한 단계가 아니라 IOF 용어가 구별되게 유지하는 두 직교 장벽입니다: 저-pH 유지 불활성화(iof:ViralInactivation, 검증된 LRV 4.5 — 로그 감소 값으로, 각 로그는 바이러스의 10배 감소를 뜻함; 바이러스 여과 참조 — 외피 바이러스 불활성화)와 바이러스 포획 나노여과(iof:ViralFiltration, 검증된 LRV 4.2, 크기 기반 제거)이며, 그 로그 감소 값은 주장된 총 제거 8.7 로그로 합산됩니다. 둘을 "바이러스 단계"로 뭉뚱그리는 대신 서로 다른 두 IOF 프로세스 클래스를 빌리는 것이야말로, 그래프가 진정으로 직교하는 메커니즘에 걸쳐서만 더하게 하는 것(두 단계가 독립된 수단으로 바이러스를 제거해야 그 로그를 합산할 수 있음) — 생물의약품의 바이러스 안전성에 관한 국제 규제 지침인 ICH Q5A가 부과하는 바로 그 가산성 규칙입니다(그 합은 검증 장의 CQ-12로 점검됩니다).
  • 횡단(Cross-cutting) — 어떤 도메인이든 재사용하는 직교 어휘들입니다(여기서 "직교"란 제조 도메인과 무관함을 뜻합니다 — 어떤 분야든 필요로 하는 단위, 출처, 메타데이터를 기술합니다): 단위를 위한 QUDT(그래서 순도, 바이러스 불활성화 유지의 pH, 충전 부피가 결코 맨숫자로 돌아다니지 않습니다), 활동 출처를 위한 PROV-O, 바이오리액터 센서를 위한 SOSA, 정의와 매핑을 위한 SKOS, 메타데이터를 위한 Dublin Core, 그리고 크로마토그래피 장치와 출하를 결정하는 분석 결과를 위한 Allotrope Foundation Ontologies (AFO)입니다.

이 그래프를 적어 두는 평문 표기법인 Turtle에서, 각 @prefix 줄은 긴 IRI 베이스에 짧은 별칭을 줄 뿐이므로, 용어를 전체 웹 주소 대신 obo:NCBITaxon_10029처럼 적을 수 있습니다:

# align.ttl — the four reuse layers, each a real prefix bound to a verified host.
@prefix obo: <http://purl.obolibrary.org/obo/> . # BFO, RO, OBI, GO, CLO, NCIT, NCBITaxon, PR, DOID, IAO, PATO
@prefix iof: <https://spec.industrialontologies.org/ontology/construct/> . # IOF Core (classes mint under /construct/)
@prefix af-p: <http://purl.allotrope.org/ontologies/process#> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix dct: <http://purl.org/dc/terms/> .

저 한 줄짜리 프리픽스 블록이 바로 조사의 결과입니다: 모델이 닿는 모든 외부 세계가, 도메인 클래스가 그려지기 전에 한 번씩 명명되었습니다 — 그리고 각 프리픽스는 실제 배치 안 여섯 존재 중 하나가 그것을 필요로 했기 때문에 제자리를 얻습니다.

후보를 어떻게 찾는가: 레지스트리, 그리고 그것이 말해 줄 수 없는 것

찾아낼 수 없는 용어는 재사용할 수 없으므로, 조사는 이 분야 레지스트리들을 가로지르는 탐색입니다. 위 계층의 각 온톨로지는 추측된 것이 아니라 찾아진 것이며, 그 찾음은 어디를 보아야 하는지에 대한 자취를 남깁니다:

  • OLS4 — EBI(European Bioinformatics Institute) 온톨로지 룩업 서비스 — 는 OBO(Open Biological and Biomedical Ontologies) 세계로 들어가는 정문입니다. 이 모델 안 모든 BFO, RO, OBI, GO, CLO, NCIT, NCBITaxon, PR, DOID, IAO, PATO IRI는 거기서, 살아 있는 용어 페이지에 대조해 확인되었습니다 — 중국 햄스터를 명명하는 obo:NCBITaxon_10029와 세포주를 명명하는 obo:CLO_0002421 "CHO cell"을 포함해서 말입니다.
  • 발행된 IOF 릴리스는 IOF로 들어가는 정문입니다. OLS가 IOF를 호스팅하지 않기 때문입니다. IOF Core 및 바이오제약 용어 — 바이오리액터, 포획 단계, 크로마토그래피 매질, 의약품 완제품 제형화 프로세스 — 는 github.com/iofoundry/ontologyRelease_202602에 대조해 검증되었습니다. 용어 IRI와 모듈 온톨로지 IRI 모두 살아 있고 역참조 가능합니다.
  • BioPortalOBO Foundry는 OBO 탐색을 마저 채웁니다 — OBO Foundry의 원칙 페이지는 주어진 종류의 사물에 대해 어떤 온톨로지가 정전(canonical)의 거처인지 일러 주어(표적 단백질 → PRO, 적응증 → 질병 온톨로지), 두 항체 프로그램이 같은 것을 집어 들게 합니다 [3].
  • LOV(Linked Open Vocabularies)와 발행자 자신의 사이트는 횡단 계층을 다룹니다: qudt.org의 QUDT, W3C의 PROV-O와 SOSA, Allotrope 릴리스의 AFO입니다.
  • 단위 레지스트리는 여기서 두 번째 일을 합니다: 그것은 값이 하드웨어 경계에서 맨숫자의 모호함을 벗는 곳입니다. QUDT(그리고 그것이 실어 나르는 UCUM 코드 체계)는 순도가 98.611 %로 읽히게 하려고만 조사되는 것이 아닙니다. 그것은 *_to_rdf.py 로더가 UCUM(Unified Code for Units of Measure) 문자열을 곧장 와이어에서 — 컨트롤러가 OPC UA(실시간 공장 데이터를 위한 표준 산업 프로토콜)로 노출하는 단위 슬롯인 EUInformation 필드, 그리고 B2MML(제조 실행 시스템이 교환하는 XML)의 UnitOfMeasure 요소 — 읽어 qudt:QuantityValue 위의 qudt:ucumCode / qudt:hasUnit으로 바꾸기 때문에 조사됩니다. 재사용 결정은 pH나 피드 속도가 PLC(장비를 돌리는 현장 컨트롤러)에서 그래프로, 나중에 어떤 스크립트가 추측으로 다시 주석을 달아야 할 부동소수점으로 도착하는 대신 이미 그 단위를 입은 채로 건너가게 만드는 것입니다(와이어에서 그래프로 장이 끝에서 끝까지 추적하는 메커니즘입니다).

결정적으로, 조사의 판정은 산문을 신뢰하지 않고도 재현할 수 있습니다. 오프라인 검사기가 로드하는 세 파일 — bioproc.ttl, align.ttl, instances.ttl — 은 독자가 Protégé(표준 오픈소스 온톨로지 편집기)에서 열거나 RDFLib(지식 그래프 장이 그래프 전체를 짓는 Python RDF 라이브러리)로 파싱하는 평문 Turtle입니다. CQ별 인수 하니스는 cq-catalog.json을 읽는 validate.py이며, 각 역량 질문이 PASS/FAIL 테스트인 실행 가능한 ORSD(requirements == tests)입니다. 그 하니스가 세 로컬 파일만 추론하고 외부에서 아무것도 가져오지 않기 때문에, 누구든 재사용 검사 — CQ-20의 안정적 숙주 IRI, CQ-01의 계보 걷기 — 를 네트워크 없는 노트북에서 다시 돌려, 이 장의 말을 믿는 대신 정렬이 버텨 냄을 확인할 수 있습니다. 오프라인 범위는 한계가 아니라 의도적인 재현성 선택입니다: 빌림은 증명할 수 있는 곳에서 증명됩니다.

레지스트리가 말해 줄 수 없는 것은 올바른 적중을 고르는 데 필요한 도메인 지식이며 — 그 장벽은 바이오제약에서 실재합니다. 레지스트리는 수십 개의 "cell line" 용어를 반환할 것입니다. 제조 세포주가 연구-마스터-워킹 보관 규율을 갖춘 관리되는 생산 입력물임을 아는 사람만이, 제조적 의미가 IOF 바이오제약에 살고 생물학적 의미(CHO 세포, 세포주 나무의 한 노드)는 CLO에 산다는 것을 알 것입니다. 레지스트리는 "chromatography medium"을 나열하되, Protein A 포획 단계에서 그 매질이 사용 이력을 지닌 지속하는 소모품임은 알지 못합니다: 러닝 예제의 레진 로트 RESIN-PrA-07은 검증된 사이클 수명 한도 200 중 사이클 38에 있으므로(정치 세정(clean-in-place) 사이클과 레진 재사용 주장은 포획 크로마토그래피 장에서 구축됩니다), bp:ChromatographyResiniof:ChromatographyMedium으로 유형 지정되고 나면 파트너의 도구가 "이 레진은 몇 사이클을 거쳤고, 이월은 여전히 검증된 재사용 주장 안에 있는가?"를 물을 수 있습니다 — 세포 기질 및 공정 검증 지침 아래에서 점검관이 제기하는 부류의 레진 재사용 질문입니다. 빌린 용어는 그 사이클 수가 걸리는 갈고리입니다. 각 IRI가 어디서 확인되었는가에 대한 정직한 기록 자체가 하나의 재사용 산출물이며 — 정렬 파일의 헤더에 적혀 들어갑니다 — 출처를 댈 수 없는 빌린 용어는 리뷰에서 방어할 수 없는 용어이고, CHO 공정을 검토하는 규제 당국은 바로 그것을 물을 것이기 때문입니다.

무엇을 빌릴지 선택하라: 기준, 그리고 근접 실패가 위험한 이유

후보를 찾는 것과 그것을 채택하는 것은 같지 않습니다. 각 조사 적중은 간선을 얻기 전에 고정된 선택 기준 묶음에 비추어 판단됩니다 — 그리고 규제 대상 항체 캠페인에서 잘못된 채택의 비용은 추상적이지 않습니다:

재사용-대-신규발행 결정은 각각 어떻게 내려졌는가. 아래의 기준은 추상적으로 읽어 내려가는 체크리스트가 아닙니다. 그것은 로컬 용어 하나당 한 번씩 돌리는 짧고 반복 가능한 절차이며, 정반대 판정에 이르는 실제 두 사례 — bp:Specification(재사용됨)과 bp:FillFinishProcess(로컬로 신규 발행됨) — 위에서 공개적으로 해 볼 가치가 있습니다:

  1. 로컬한 사물을 정확히 명명하라. 명세(specification)는 로트가 그에 비추어 판정되는 출시된 인수 요건서이고, 충전·완제 프로세스(fill-finish process)는 벌크 항체가 밀봉되고 멸균된 바이알이 되는 무균 단계입니다. 그 용어가 로컬하게 무엇을 뜻하는지 정확히 말하는 것이야말로 다음 단계를 키워드 복권이 아니라 공정한 탐색으로 만들어 줍니다.
  2. 안착된 외부 용어를 레지스트리에서 탐색하라. 명세의 경우, 발행된 IOF 릴리스(Release_202602)는 iof:RequirementSpecification을 제공합니다 — 그리고 주목할 만하게도 맨 iof:Specification 클래스는 없습니다. 충전·완제의 경우, 같은 릴리스에는 의약품 완제품 제형화 프로세스는 있지만 충전·완제, 무균 충전, 동결건조 클래스는 전혀 없습니다.
  3. 최선의 적중을 포괄 범위와 나머지 기준에 비추어 시험하라. 그 외부 용어가 로컬한 사물을 정확히 뜻하는가? iof:RequirementSpecification은 그렇습니다 — 출시 명세는 요구사항 명세이며 — 그리고 Released이고, BFO에 뿌리내렸으며, 자유롭게 재사용 가능하므로 통과합니다. 충전·완제의 경우 시험할 적중이 없습니다: 가장 가까운 용어(제형화)는 다른 단계를 뜻하므로, 빌림은 거짓을 단언하는 근접 실패가 될 것입니다.
  4. rdfs:subClassOf로 재사용하거나, 로컬로 신규 발행하고 표시하라 — 결코 빌림을 가장하지 말라. 통과한 용어는 실재하는 IRI로 올라가는 위쪽 간선 하나 — bp:Specification rdfs:subClassOf iof:RequirementSpecification — 를 얻고, owl:equivalentClassowl:sameAs결코 얻지 않습니다(일방향 주장 "내 용어는 그들의 것의 한 종류다"만이 유일하게 안전합니다). 충실한 적중이 없는 용어는 align.ttl의 헤더에 간극이 기록된 채 로컬 bp: 클래스로 남습니다 — bp:FillFinishProcess가 정확히 그렇게 하므로 — 독자는 그것이 간과가 아니라 의도적이고 문서화된 간극이었음을 볼 수 있습니다.

모든 로컬 용어에 대해 돌리는 이 절차가 바로 아래의 기준을 채우는 것입니다. 기준은 후보가 3단계에서 통과하는 테스트이며, 각각을 실패하는 비용이 판정이 중요한 까닭입니다:

  • 포괄 범위(Coverage) — 그 용어가 로컬한 사물을 정확히 뜻하는가, 아니면 대략만 뜻하는가? 근접 실패는 로컬 발행보다 나쁜데, 멀리 퍼져 가는 거짓을 단언하기 때문입니다. (이것이 bp:Specificationiof:RequirementSpecification에 정렬되는 까닭입니다 — 빌릴 맨 iof:Specification 클래스가 없습니다.)
  • 성숙도(Maturity) — 그 용어가 Released인가, 아니면 잠정적이고 곧 움직일 법한가? IOF 바이오제약 릴리스를 재감사한 결과 그 바이오리액터, 크로마토그래피 칼럼, 마스터 레시피 클래스가 모두 이전 패스가 가정했던 Provisional이 아니라 Released임이 드러났고 — 이것이 캠페인의 장비와 레시피를, 표시된 로컬 발행으로 남겨 두는 대신 확신을 가지고 채택하게 한 것입니다.
  • 채택(Adoption) — 그 온톨로지가 상호운용하고 싶은 데이터베이스와 파트너에게 실제로 쓰이는가? GO와 PRO는 이것만으로 이깁니다. 공개 데이터베이스가 기본으로 그것에 주석을 달기 때문에, 항체의 표적은 이미 PRO IRI를 가지며, 그 표적 단백질은 GO 분자 기능 주석을 실어 나릅니다 — 둘 다 공개 데이터베이스에서 기다리고 있습니다 [6][7].
  • 논리적 양립성(Logical compatibility) — 같은 BFO 등뼈 위에 앉아 있어서, 그것을 임포트해도 모델이 비일관해질 수 없는가? CLO 세포 유형과 IOF 세포주는 둘 다 BFO에서 내려오며, 이것이 하나의 bp:CellLine이 둘을 동시에 걸칠 수 있는 유일한 이유입니다.
  • 라이선스와 임포트 비용(License and import cost) — 자유롭게 재사용 가능한가, 그리고 끌어들일 파일은 얼마나 무거운가?

후보가 포괄 범위에서 실패하고 충실한 1:1 외부 용어가 존재하지 않을 때, 규율은 그 클래스를 로컬로 두고 표시하는 것이지 빌림을 가장하는 것이 아닙니다 — 그리고 이 캠페인에서 그런 가장 큰 간극은 충전·완제(fill-finish)에 있습니다. IOF 바이오제약 릴리스에는 의약품 완제품 제형화 프로세스는 있지만 충전·완제, 무균 충전, 동결건조 클래스는 전혀 없으므로, bp:FillFinishProcess, bp:ContainerClosureSystem, bp:fillsInto는 표시된 로컬 클래스로 남습니다. 어떤 근접 용어를 그것들에 억지로 구부리려는 유혹이 있고, 그렇게 했을 때의 비용은 구체적입니다: 규제 제출물을 조립하는 하류 임포터는 "무균 충전"의 진짜 의미를 기대하며, 가장된 간선은 벌크 항체가 환자가 받는 멸균·밀봉 바이알이 되는 바로 그 단일 단계를 조용히 잘못 라벨링할 것입니다. 전하 변이체, 응집 변이체, GS1 포장 계층, 거버넌스 기록도 같은 이유로 로컬로 유지됩니다 — 문서화된 간극은 정직하고, 충실하지 않은 간선은 가장 나쁜 때에 표면화되는 잠복 오류입니다.

빌림을 형식화하라: align.ttl, 그리고 임포트 간극

재사용 단계는 정확히 하나의 산출물을 만듭니다: align.ttl, 각 로컬 bp: 용어에서 실재하며 역참조 가능한 외부 IRI로 올라가는 rdfs:subClassOf(그리고 rdfs:subPropertyOf) 간선을 단언하는 것 외에는 아무 일도 하지 않는 파일입니다. 여기 그 생물학·제조 핵심이 있습니다 — NCBI Taxonomy에서 빌린 숙주, CLO에서 빌린 세포주의 생물학, IOF 바이오제약에서 빌린 그 제조 역할, GO에서 빌린 IgG 자체, 그리고 IOF에서 빌린 포획 소모품입니다:

# align.ttl — the host is borrowed (NCBI Taxonomy), the line's biology (CLO) and role (IOF) too.
bp:HostOrganism rdfs:subClassOf obo:NCBITaxon_10029 . # NCBI Taxonomy 'Cricetulus griseus' (Chinese hamster, verified via OLS4)
bp:WorkingCellBank rdfs:subClassOf obo:CLO_0002421 . # CLO 'CHO cell' (Chinese hamster ovary cell line)
bp:CellLine rdfs:subClassOf iof:CellLine . # IOF biopharma 'cell line' (Released, Release_202602)
bp:Clone rdfs:subClassOf iof:ClonedCellLine . # IOF biopharma 'cloned cell line'
bp:Antibody rdfs:subClassOf obo:GO_0071735 . # GO 'IgG immunoglobulin complex'
bp:Excipient rdfs:subClassOf obo:CHEBI_24431 . # ChEBI 'chemical entity' — the generic anchor; specific excipients (polysorbate, histidine, sucrose) would use ChEBI leaves
bp:CaptureChromatography rdfs:subClassOf iof:CaptureStep . # IOF 'capture step' (Protein A capture)
bp:ChromatographyResin rdfs:subClassOf iof:ChromatographyMedium . # IOF biopharma 'chromatography medium' (Released)
bp:derivedFrom rdfs:subPropertyOf obo:RO_0001000 . # RO 'derives from'; ALSO owl:TransitiveProperty in bioproc.ttl — this is what powers CQ-01's (bp:derivedFrom)+ walk
bp:bindsTo rdfs:subPropertyOf obo:RO_0002436 . # RO 'molecularly interacts with' (antibody-target binding, verified via OLS4)

재사용은 클래스만이 아닙니다: 마지막 두 줄은 관계를 정렬합니다. bp:derivedFrom은 OBO Relation Ontology의 derives from을 빌리고(bioproc.ttl에서 owl:TransitiveProperty로 선언됨 — A가 B에서 유래하고 B가 C에서 유래하면 A는 자동으로 C에서 유래함을 뜻함), 바로 이것이 CQ-01로 하여금 어떤 깊이의 계보든 하나의 (bp:derivedFrom)+ 속성 경로(derivedFrom 간선을 한 번 이상 따라가는 질의 패턴)로 풀게 합니다. bp:bindsTo는 RO의 molecularly interacts with를 빌려 항체-표적 결합이 표준 분자 상호작용으로 읽히게 합니다. 재사용된 관계는 빌린 클래스 사이의 간선을 상호운용 가능하게 만드는 것이지, 노드만 그렇게 만드는 것이 아닙니다.

각 줄은 단순한 어휘 간선이 아니라 제조상의 사실을 실어 나릅니다. bp:HostOrganism rdfs:subClassOf obo:NCBITaxon_10029은 세포 은행 뿌리가 그 종을 문자열이 아니라 안정적인 식별자로 명명하게 해 주는 것 — 오인식에 맞서는 계보의 첫 방어선입니다. bp:Excipient rdfs:subClassOf obo:CHEBI_24431은 제형화된 항체를 안정하게 유지하는 폴리소르베이트-80, 히스티딘, 수크로스를 ChEBI의 범용 화학 존재(chemical entity)에 닻으로 붙듭니다. 데이터셋은 일부러 범용 닻에서 멈추고 구체적 리프 IRI를 예시적인 것으로 표시하는데, 바로 위의 정직한 간극 규율 그대로입니다. 그리고 bp:CaptureChromatography rdfs:subClassOf iof:CaptureStep은 모든 배치가 거쳐 가는 Protein A 단계를, 파트너의 도구가 이미 이해하는 공유 제조 개념으로 유형 지정합니다.

이제 이 장에서 가장 중요한 문장입니다. 대부분의 채택이 걸려 넘어지는 간극이기 때문입니다. align.ttl에는 owl:imports가 전혀 없습니다. rdfs:subClassOf iof:CaptureStep을 단언하면 다른 팀의 IOF 인식 도구가 줄 세울 수 있는 실재하고 공유되는 IRI를 줍니다 — 그러나 그것만으로는 추론기(reasoner, 단언된 사실로부터 새 사실을 도출하는 소프트웨어)가 bp:CaptureChromatography가 BFO 프로세스라고 결론짓게 만들지는 않습니다. iof:CaptureStep에서 IOF를 거쳐 BFO까지 올라가는 사슬이 검증기가 로드하지 않는 파일 안에 살기 때문입니다. 검증기는 bioproc.ttl + align.ttl + instances.ttl만 로드하므로, OWL-RL 폐포(추론기가 도출할 수 있는 사실의 전체 집합 — 함의된 모든 간선을 명시적으로 만든 것)는 여기서 단언된 간선들에 대한 전이적 rdfs:subClassOf에 로컬 공리(그 파일들에 명시된 규칙)를 더한 것은 얻지만 — IOF 자신의 사슬도, BFO의 disjointness(가령 프로세스가 결코 물질적 사물일 수도 없다는 규칙)도 얻지 못합니다. 그 결과는 어휘적 상호운용성(lexical interoperability)(공유되고 실재하며 역참조 가능한 IRI — 찾아보면 발행된 정의를 되돌려 받는 주소)이지, 교차 온톨로지 함의(cross-ontology entailment)(추론기가 당신의 용어가 실제로 BFO 프로세스을 도출하는 것)가 아닙니다.

그것이 항체 세계에서 구체적으로 무엇을 사 줄까요? 도구가 IOF를 말하는 위탁 제조사나 규제 당국은 영어 산문을 단 한 번도 비교하지 않고 당신의 bp:CaptureChromatography 배치를 그들의 포획 단계 개념과 줄 세울 수 있고, 단백질을 PRO에 주석 다는 공개 데이터베이스는 당신 항체의 표적을 그 기록에 결합할 수 있으며, "어떤 로트가 중국 햄스터 세포주에서 나왔는가?"를 질의하는 파트너는 숙주가 다른 모두가 쓰는 같은 obo:NCBITaxon_10029을 실어 나르기 때문에 당신의 배치를 돌려받습니다. 만약 그들이 정렬할 수 없다면 — 숙주가 문자열 "CHO"이고 포획 단계가 사적 코드라면 — 그 결합 하나하나가 영영 유지해야 할 손수 만든 번역 표가 됩니다. 단언을 추론으로 바꾸려면 IOF Core(그것 자체가 BFO 2020을 임포트)를 owl:imports하고, 그러면 추론기가 당신 용어를 스택 전체를 통해 분류합니다. 러닝 예제는 두 절반을 정직하게 다 합니다: align.ttl은 확인할 수 있었던 IOF 용어를 재사용하고, 동반 파일 bioproc-imports.ttl이 실제 owl:imports 선언을 실어 나릅니다 — 한편 오프라인 검증기는 외부 스택을 가져오지 않고 증명할 수 있는 것에 범위를 한정한 채 머뭅니다. 한 줄 요약: 정렬은 공유 어휘를 공짜로 사 주고, 교차 온톨로지 추론은 임포트해야만 산다.

하나의 의도적인 비선택은 이름을 가질 자격이 있습니다: align.ttl의 모든 간선은 rdfs:subClassOf(일방향 주장 "내 클래스는 그들의 것의 한 종류다") 또는 rdfs:subPropertyOf이고, 단 하나도 owl:equivalentClass(두 클래스가 정확히 같은 집합이라는 양방향 주장)나 owl:sameAs(두 이름이 바로 같은 개체를 가리킨다는 주장)가 아닙니다. 그 차이는 문체적인 것이 아닙니다. 동등성은 양방향입니다: bp:CaptureChromatography owl:equivalentClass iof:CaptureStep을 단언하면 모든 IOF 포획 단계가 당신의 것이고 그 역도 참이라고 약속한 것이며 — IOF를 owl:imports하는 순간 그것의 정의역, 치역, disjointness 공리가 당신의 로컬 클래스로 거꾸로 흘러들어 당신이 결코 저작하지 않은 사실 위에서 모델을 비일관하게 만들 수 있습니다. 포섭(subsumption)은 재사용 단계가 실제로 원하는 안전한 일방향 주장입니다: 내 용어는 그들의 것의 한 종류다. subClassOf로 위로 정렬하는 것이야말로, 동반 파일의 임포트를 지뢰가 아니라 위험 없는 추론 업그레이드로 만들어 주는 규율입니다 — 그리고 그것은 가장 흔한 단 하나의 정렬 결함(subClassOf이 의도된 자리에 sameAs/equivalentClass을 쓰는 것, OOPS! 함정 스캐너의 명시적으로 선언되지 않은 동등 클래스/관계서로 다른 개념의 병합 계열)을 비켜 가며, 이 파일은 그것을 설계상 피합니다.

빌리는 두 방식은 깔끔하게 늘어섭니다:

align.ttl만 (검증기가 로드하는 것)+ bioproc-imports.ttl (owl:imports IOF Core, 이는 BFO 2020을 임포트)
단언되는 것bp:CaptureChromatography rdfs:subClassOf iof:CaptureStep같은 간선, 더하기 IOF 자신의 사슬과 BFO의 공리
추론기가 결론짓는 것단언된 간선과 이 파일 안 간선들에 대한 그 전이적 폐포bp:CaptureChromatography는 IOF 제조 프로세스이자 BFO 프로세스
파트너의 도구가 얻는 것줄 세울 공유되고 역참조 가능한 IRI — 어휘적 상호운용성스택 전체를 통한 완전한 교차 온톨로지 함의
비용간선 한 파일; 외부에서 가져오는 것 없음외부 온톨로지를 끌어들여 그 위에서 추론

러닝 예제가 정직하게 유지하는 두 절반: align.ttl은 아무것도 가져오지 않고 공유 어휘를 벌고, bioproc-imports.ttl은 추론기가 로컬 용어를 IOF-에서-BFO 사슬 전체를 통해 분류하기를 원하는 팀을 위해 실제 owl:imports를 실어 나릅니다.

위쪽에 빌려 온 네 재사용 계층의 띠(토대인 BFO 2020, IOF Core와 바이오제약, OBO 도메인 온톨로지, 그리고 횡단 어휘), 그 아래에 로컬 bp 클래스의 띠가 IOF 정렬 패널과 OBO 정렬 패널로 묶여 있고, 각 패널이 라벨 붙은 rdfs 또는 rdfs 화살표 하나로 위쪽의 빌려 온 부모 열을 가리키며, 맨 아래의 장밋빛 콜아웃이 정직한 임포트 간극을 적습니다: align.ttl은 subClassOf 간선을 단언하지만 owl는 전혀 없으므로 추론기는 교차 온톨로지 함의가 아니라 어휘적 상호운용성을 얻습니다. align.ttl이 빌리는 방식: 각 로컬 bp: 용어가 실재하는 외부 IRI로 올라가는 rdfs:subClassOf 또는 rdfs:subPropertyOf 간선 하나를 단언합니다 — 숙주는 NCBI Taxonomy로, 포획 단계와 세포주는 IOF로, IgG와 derives-from 관계는 OBO로 — 그리고 장밋빛 콜아웃이 정직한 간극을 명명합니다: 이 파일에는 owl:imports가 없으므로 그 결과는 교차 온톨로지 함의가 아니라 공유되고 역참조 가능한 어휘입니다. 저자가 AI의 도움을 받아 직접 제작한 그림입니다.

OBO–IOF 이음새: 살아 있는 세포를 관통하는, 당신이 저작하는 크로스워크

여기서 재사용은 단 하나의 깔끔한 임포트가 아닙니다. 그것은 단층선에 걸쳐 있으며, 그 단층선은 그래프 전체에서 가장 중요한 노드 — 세포주 — 를 곧장 관통합니다. 세포주의 생물학을 가장 잘 기술하는 온톨로지 — CLO, NCBI Taxonomy, GO, PRO — 는 OBO Foundry에서 자랐습니다. 항체를 만드는 것을 가장 잘 기술하는 온톨로지 — IOF Core와 IOF 바이오제약 — 는 산업 온톨로지 파운드리에서 자랐습니다. 둘 다 BFO에서 내려오며, 바로 그것이 하나의 bp:CellLineobo:CLO_0002421(그 생물학, CHO 세포)과 iof:CellLine(그 제조 역할, 관리되는 생산 입력물) 아래에 동시에 앉을 수 있는 까닭입니다. 그러나 "만날 수 있다"가 "만났다"는 아닙니다: CLO의 CHO 세포가 IOF의 세포주와 어떻게 관계되는지를 말하는, 발행된 다리가 없으므로 그 크로스워크는 저자가 큐레이션합니다 — 프로그램이 쓰고, 검토하고, 유지하는 매핑이지 임포트하는 기능이 아닙니다.

이음새가 다른 어디보다 여기서 중요한 까닭은 세포 은행이 애초에 계보를 필요로 하는가에 있습니다. 세포주는 살아 있습니다: 세대를 거치며 돌연변이하고 표류하는 세포의 집단이므로, 워킹 은행은 마스터와 유전적으로 동일하지 않고, 너무 오래 키운 배양은 생산성을 잃거나 산물 품질을 바꿀 수 있습니다. 그래서 캠페인은 누구도 보증할 수 없는 바이알 하나가 아니라, 특성 규명되고(동일성, 무균성, 오염원 부재를 시험함) 계대가 제한된(최대 배양 세대 수로 상한이 정해짐 — "계대(passage)"는 세포를 나누고 다시 키운 횟수를 셈) disjoint 계층의 구조화된 분류 체계인 연구 / 마스터 / 워킹 세포 은행 위계(RCB → MCB → WCB)를 유지합니다. 이음새의 생물학적 측면(이것은 여전히 CHO 세포인가? 그 종은 무엇인가?)과 제조적 측면(이 WCB는 검증된 계대 한도 안에 있고 완전히 특성 규명되었는가?)은 둘 다 같은 WCB-CHO-001에 대해 참이며, 오직 저작된 크로스워크만이 그것들을 함께 붙듭니다. 러닝 예제에서 두 절반은 모두 수치로 풀립니다: 생물학적 측면은 종을 obo:NCBITaxon_10029(중국 햄스터)로 명명하고, 제조적 측면은 WCB-CHO-001검증된 계대 한도 40에 대조한 계대 8로, 그리고 네 가지 특성 규명 판정(동일성, 무균성, 바이러스, 유전적)이 모두 PASS로 읽습니다 — 그리고 그것이 접종하는 시드 트레인은 그 한도를 향해 계대를 누적합니다(12, 그다음 16). 빌린 CLO/NCBITaxon IRI는 "무슨 종인가?"에 답하고, 오직 로컬한 날짜 표시 계대 및 특성 규명 데이터만이 "이 바이알에서 접종하는 것이 여전히 안전한가?"에 답합니다 — 바로 그래서 이음새가 임포트되는 것이 아니라 저자가 유지하는 것입니다(이를 읽는 세포 은행 게이트는 출하 게이트 장의 CQ-17입니다). 표적 장은 이 이음새를, 항체가 아직 산물 개념(product concept) — 어떤 세포가 분자를 만들기 전에 존재하는 정보 인공물 — 인 첫날 발견 경계에서 명명합니다. 재사용 단계는 그 이음새가 유지되는 산출물이 되는 곳이며, 그것을 가로지르는 빌린 간선 하나하나가 저자가 용어별로 정당화한 것이기 때문입니다.

평가: 재사용이 버텨 내는가?

재사용은 모든 단계가 그러하듯 — 그래프를 로드하고, 그 위에서 추론하며, 그것에 의존하는 역량 질문을 돌려 — 검증됩니다. CQ-20이 그 테스트이며, 그것은 순수한 재사용 검사입니다: 추론된 그래프에게 숙주 생물의 안정적인 외부 분류군 IRI를 반환하라고 요청하는데, 그것은 bp:HostOrganismobo:NCBITaxon_10029에 정렬되었기 때문에만 존재합니다. 이 테스트는 SPARQL — 이런 종류의 그래프를 위한 질의 언어로, SQL이 관계형 데이터베이스를 질의하는 것과 같은 방식 — 로 작성됩니다:

# queries/CQ-20.rq — CQ-20: the host is named by a stable public identifier, not the string "CHO".
PREFIX bp: <https://example.org/bioproc#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX obo: <http://purl.obolibrary.org/obo/>
SELECT ?host ?taxon WHERE {
bp:WCB-CHO-001 bp:hasHostOrganism ?host .
?host a ?cls .
?cls rdfs:subClassOf ?taxon .
FILTER(STRSTARTS(STR(?taxon), STR(obo:)))
}

cq-catalog.json의 검사는 단일 행 host = CHO-host, taxon = NCBITaxon_10029을 요구하며 — validate.py는 정확히 그것을 반환합니다. 질의가 모든 계보 사슬의 뿌리에 있는 워킹 세포 은행 bp:WCB-CHO-001에서 시작해 align.ttl에 사는 간선(bp:HostOrganism rdfs:subClassOf obo:NCBITaxon_10029)을 타고 간다는 점에 주목하십시오: 이 테스트는 재사용이 이루어졌기 때문에만 통과하며, 숙주가 맨 문자열 "CHO"로 유형 지정되는 순간 실패할 것입니다. 두 번째 재사용 의존 테스트는 반대 방향으로 돌아갑니다: bp:derivedFrom이 OBO Relation Ontology의 obo:RO_0001000 derives from에 정렬되고 (bioproc.ttl에서) owl:TransitiveProperty로 선언되었기 때문에, CQ-01DS-001의 계통을 단일 속성 경로 (bp:derivedFrom)+로 — 폴리싱 중간체, 바이러스 여과된 풀과 바이러스 불활성화된 풀, 포획 풀, 청징된 하베스트, 생물반응기 배치, 시드 바이오리액터 배양, 셰이크 플라스크 배양, 그리고 세 세포 은행 계층(WCB, MCB, RCB) — 을 거슬러 11개 조상까지, 조인 테이블도 손수 단언도 없이 걸어갑니다(원료의약품 DS-001은 걷기의 주체이지 조상이 아닙니다). 여기서 일을 하는 것은 클래스의 재사용이 아니라 관계(RO)의 재사용입니다: 파트너에게 공유 derivedFrom IRI를 주는 바로 그 정렬이, 하나의 + 연산자가 재귀 질의를 대체하게 합니다. 11개 조상이라는 수는 속성 경로가 날것의 단언 그래프에서 읽어 내며 추론기가 필요 없습니다. 같은 장거리 간선들은 OWL-RL 폐포가 돌고 나면 추론된 derivedFrom 트리플로도 또한 이용 가능하고, 그 전이적 추론은 그 자체로 별도의 구조적 테스트(CQ-22)입니다. 전체 데이터셋에 걸쳐 정렬은 2120 트리플(트리플은 이 데이터의 원자적 단위 — 하나의 주어-술어-목적어 진술, 예컨대 하나의 rdfs:subClassOf 간선)의 그래프가 OWL-RL 아래 7137로 닫히는(추론기가 함의된 모든 트리플을 도출하여 단언된 2120 사실을 총 7137로 늘림) 규모로 확장되며, 소비되는 서로 다른 IOF 클래스는 27개(Core 7 + 바이오제약 20)로 늘어났습니다 — 짓기 전에 장을 본 것의 측정 가능한 수확입니다. 이 23개 검사 전부가 PASS/FAIL 테스트로 돌아가는 CQ별 인수 하니스 전체는 검증 장에서 다룹니다.

그리고 정제 단계들이 사적 코드가 아니라 공유된 IOF 프로세스 클래스로 유형 지정되기 때문에, 검토자는 캠페인의 품질 궤적을 사슬에서 곧장 읽어 낼 수 있습니다: 고분자량 응집체는 Protein A 포획 풀에서 4.1 %에 있고, iof:PolishingProcess 단계 뒤 1.4 %로 떨어지며, 출하된 원료의약품에서 1.287 %로 읽혀 — 2.0 % 명세에 한참 못 미칩니다(이것이 CQ-05입니다). 응집체는 폴리싱에서 제거되는 것이지 없어지길 바라는 것이 아닙니다. 단계 유형을 빌리는 것이야말로 파트너의 도구가 산문을 파싱하지 않고 "품질은 어디서 바뀌었는가?"를 찾아내게 합니다(HMW 속성과 그 2.0 % 기준은 분류 체계 장에서 저작됩니다).

재사용이 학습 모델에 사 주는 것: 검증된 기준 진실

파트너의 도구가 당신의 배치를 줄 세우게 하는 바로 그 재사용된 정렬은, 모델이 거짓을 배우지 않고 그 배치 위에서 학습하게 해 주는 것이기도 합니다 — 그리고 그것이 이 단계와 머신러닝 동반 권을 잇는 핵심 연결입니다. 학습 시스템은 기준 진실(ground truth)을 필요로 하며, 온톨로지에 뿌리내린 그래프는 평평한 학습 표보다 더 엄격한 기준 진실인데, 그것은 재사용 단계가 구체적으로 공급하는 세 가지 방식에서 그렇습니다.

첫째, 학습 데이터는 모델이 그것을 보기도 전에 검증될 수 있습니다. 출하 게이트의 SHACL 셰이프(신뢰되기 전에 그래프가 요구되는 셰이프에 부합하는지 점검하는 제약 언어)는 bp:derivedFrom 부모가 빠진 배치 노드나 단위를 입은 값이 없는 CQA를 거부합니다 — 그리고 그 셰이프를 통과한 부분그래프는 곧 모델이 지어내며 메울 조용한 구멍이 없는 학습 집합입니다. 이것은 온톨로지와 AI 장검색을 향해 겨누는 바로 그 기계 장치입니다: 셰이프를 실패한 그래프는 유창한 모델이 기억으로 메우는 텅 빈 혹은 잘못 라벨된 입력입니다. 재사용 결정은 그 점검의 상류에 있습니다 — 값이 그 셰이프를 통과하는 것은 오직 그것이 QUDT를 거쳐 이미 단위를 입은 채로 도착했기 때문이며, 그것이 이 단계가 만든 정렬입니다.

둘째, 학습의 단위는 행이 아니라 배치이고, 그래프는 그것을 이미 압니다. Raman 스펙트럼은 수백 개의 상관된 열을 내놓지만 단일 배치는 하나의 진정으로 독립된 관측입니다. 따라서 순진한 무작위 학습/검정 분할은 경계를 가로질러 정보를 누설하여, 정직해 보이지만 생산에서 무너지는 정확도를 보고합니다 — 모델과 검증 장이 명명하는 으뜸 죄입니다. 그룹 교차검증 — 배치 하나를 통째로 빼기(leave-one-batch-out)로, 한 배치의 모든 행을 분할의 한쪽에 함께 두는 것 — 이 유일하게 정직한 평가이며, 위의 (bp:derivedFrom)+ 계보 걷기가 그룹화 키입니다: 같은 BATCH-2026-001로 거슬러 가는 모든 행은, 스프레드시트 열이 우연히 일치해서가 아니라 계보가 그렇게 말하기 때문에 함께 묶입니다. 재사용된 전이적 derivedFrom 관계는 두 몫을 합니다 — 규제 당국을 위한 추적성 간선이자, 검증자를 위한 누설 차단 폴드 경계입니다.

셋째, 그래프는 모델의 연료일 뿐 아니라 모델에 대한 점검입니다. 모델의 출력을 트리플로 다시 유형 지정하면 추론된 그래프가 그것을 반박할 수 있습니다: 숙주가 CQ-20을 실패한 로트, 혹은 그 iof:PolishingProcess HMW가 2.0 % 선을 결코 넘지 않은 로트에 대한 출하 예측은, OWL-RL 폐포와 SHACL 게이트가 사람에게 닿기 전에 거부할 수 있는 주장입니다 — 모델은 그것이 닻을 내린 구조화된 지식만큼만 신뢰할 수 있다는 검증 역설을, 예측기를 능가하는 추론기로 다시 진술한 것입니다. 그래프 네이티브 모델에게는 빌린 간선이 곧장 특징(feature)이 됩니다: "숙주는 중국 햄스터 세포주"는 obo:NCBITaxon_10029이고, "이 레진은 200 중 사이클 38에 있다"는 iof:ChromatographyMedium에 매달리며, 그래프 신경망이나 검색 증강 모델은 다시 도출된 문자열이 아니라 유형 지정되고 역참조 가능한 사실을 읽습니다. 이 가운데 어느 것도 이 분야의 단단한 한계에서 자유롭지 않습니다 — 두 사이트의 "7일째 피드 속도"를 모으는 일은 기여하는 모든 공정이 먼저 의미적으로 조화되지 않는 한 여전히 실패하며, ML 최전선 장은 그것을 값비싸고 미완인 전제 조건으로 명명합니다. 이 장의 재사용·정렬 규율이 바로 그 전제 조건을, 한 번, 공개적으로 해 둔 것입니다.

미해결된 부분: 빌림은 표류할 수 있고, 근접 실패는 숨을 수 있다

재사용은 하나의 위험을 다른 위험과 맞바꿉니다. 외부 IRI에 정렬함으로써 모델은 그 의미를 물려받지만 — 그 변화도 물려받습니다. NCBI Taxonomy는 개정되고, IOF는 새 릴리스를 내며, CLO 용어는 폐기될 수 있습니다. Release_202602에 대조해 검증된 간선은 그 릴리스에서 참이며 그 이후로는 유지 보수 의무가 되고, 그래서 거버넌스 장은 정렬을 변경 관리 아래의 버전 관리된 콘텐츠로 다룹니다. 더 미묘한 위험은 충실해 보이는 근접 실패입니다: NCIt의 적응증(Indication)작용 기전(Mechanism of Action)은 BFO 범주 주장이 아니라 공유 개념 이름에 대한 어휘적 다리(lexical bridges)로 묶이는데, NCIt가 BFO로 분할된 온톨로지가 아니라 시소러스이기 때문입니다 — 그것들을 함의 등급인 양 단언하면 충실하지 않은 주장을 그래프에 밀반입한 것입니다. 정렬이 전혀 손댈 수 없는 더 깊은 한계가 있습니다: 그것이 그토록 조심스레 명명하는 세포주가 살아 있다는 것입니다. IRI는 또렷하고 안정적인 동일성을 함의하지만, 어떤 owl:sameAs도 어떤 빌린 CLO 용어도 계대 60의 배양이 계대 5의 배양과 같은 존재인지 답하지 못하며, 어떤 정렬도 WCB-CHO-001로 라벨링된 바이알이 라벨이 주장하는 세포주를 실제로 담고 있음을 인증하지 못합니다. 세포주는 수십 년 동안 생명과학 전반에 걸쳐 혼동되고 교차오염되어 왔으며 — 바로 그래서 안정적인 식별자와 인증이 존재합니다 [10] — 제조 뿌리 노드에서 오인식은 가능한 한 최악의 오류입니다: 완전한 확신을 가지고 단언되고, derivedFrom을 통해 모든 후손 배치로 전이적으로 전파되며, 그 어떤 하류 데이터 무결성도 그것을 잡아내지 못합니다. 모든 하류 사실이 잘못 식별된 뿌리에서 올바르게 유래되었기 때문입니다. 재사용은 뿌리에 안정적이고 공개된 이름을 줍니다. 그것은 뿌리에 있는 사물이 이름이 말하는 그것이게 만들 수는 없습니다. 재사용을 정직하게 유지하는 규율은 그것을 값지게 만드는 규율과 같습니다: 진정으로 일치하는 것만 빌리고, 출처를 명명하며, 간극을 표시하라 — 결코 가장하지 말고.

왜 중요한가

재사용 단계는 모델이 상호운용 가능할지, 아니면 그저 내부적으로 일관될 뿐일지를 결정하는 곳입니다. 숙주를 obo:NCBITaxon_10029로 빌리면 파트너가 "어떤 로트가 중국 햄스터 세포주에서 나왔는가?"를 모든 프로그램의 그래프에 걸쳐 한 번에 물을 수 있고, Protein A 단계를 iof:CaptureStep으로 빌리면 위탁 제조사의 IOF 인식 도구가 번역 없이 당신의 배치를 줄 세우며, IgG를 obo:GO_0071735로 빌리면 항체의 분자 기능이 생명의학의 공개 웹에 결합되고, 부형제를 ChEBI까지 빌리면 제형이 묻혀 있는 레시피가 아니라 추적 가능한 구조가 됩니다. CQ-20이 통과하고, CQ-01이 그 11개 조상을 반환하며, 규제 당국의 구조화 데이터 기대치가 이미 절반은 충족됩니다 — 모두 조사가 먼저 이루어졌기 때문입니다. 그것을 건너뛰고 종, 단위 조작, 항체, 부형제에 사적 코드를 발행하면, 그 연결 하나하나가 로트가 실패하고 회수 범위를 지금 정해야 할 가장 나쁜 때에 치르는 개조 프로젝트가 됩니다. 세포 은행은 수명주기에서 동일성을 올바르게 잡기에 가장 값싸고 잘못 잡으면 가장 비싼 자리이며, 재사용 단계는 그 청구서가 만기가 되는 — 혹은 되지 않는 — 곳입니다.

실제 현장에서는

재사용 우선은 연구 정보학에서 확립된 관행이며 제조에서는 아직 성숙하는 중입니다. GO, PRO, OBI, CLO, 그리고 질병 온톨로지는 성숙하고 자금이 있으며 공개 데이터베이스 전반에서 기본으로 재사용됩니다 [6][7][10]. 실제 항체 프로그램의 표적은 이미 PRO IRI와 GO 주석을 갖춘 채 기다리고 있고, 상업적 항체 생산을 지배하는 CHO 세포는 서열이 밝혀진 공개 유전체와 빌릴 준비가 된 안정적인 분류학 및 세포주 식별자를 가집니다. RCB/MCB/WCB 위계와 그 특성 규명도 선택적인 모범 관행이 아닙니다. 그것들은 세포 기질에 관한 규제 지침의 기대이므로, 모든 실제 프로그램은 이 재사용이 닻으로 붙드는 바로 그 보관 계보를 이미 정확히 유지합니다. IOF 바이오제약 모듈은 최근에 릴리스되었고 실질적입니다 — 단위 조작, 장비, 물질, QbD 파라미터의 Released 어휘입니다 — 그러나 OBO 측이 누리는 규모로는 아직 채택되지 않았고, 실제 구멍(충전·완제 클래스 없음)을 가지고 있습니다. 이 책이 걷는 최전선은 바로 그 결합입니다: 표적의 OBO 동일성을 IOF로 기술된 세포주, 생물반응기 배치, 의약품 완제품까지 끝까지 실어 나르고, 두 세계가 만나는 살아 있는 세포에서 OBO–IOF 크로스워크를 손으로 저작하며, 정렬을 일회성 매핑 스프레드시트가 아니라 유지되고 버전 관리되는 재사용 산출물로서 발행하는 일입니다.

핵심 용어

  • IRI — Internationalized Resource Identifier; 독립된 시스템들이 같은 존재를 뜻함을 확인할 수 있도록, URL처럼 정확히 하나의 사물을 명명하는 전역적이고 역참조 가능한 웹 주소 — 재사용 단계 전체가 빌리는 동일성의 단위입니다.
  • 트리플 / 폐포(Triple / closure) — 트리플은 이 데이터의 원자적 단위(하나의 주어-술어-목적어 진술, 예컨대 하나의 rdfs:subClassOf 간선)이고, 폐포는 추론기가 단언된 것들로부터 도출하는 더 큰 트리플 집합입니다(여기서는 단언된 2120 → OWL-RL 뒤 7137).
  • 재사용(NeOn 시나리오) — 새 용어를 저작하기 전에 기존 온톨로지를 조사하고, 찾고, 선택하고, 정렬하는 수명주기 단계. 여기서 CQ-20(안정적 숙주 동일성)을, 그리고 전이적으로 CQ-01(11개 조상 계통 걷기)을 떠받치는 비기능 요구사항입니다.
  • 계층별 조사(Layered survey) — 재사용 가능한 용어를 토대(BFO), 중간 수준(IOF Core), 도메인(IOF 바이오제약 + OBO 멤버), 횡단(QUDT, PROV-O, SOSA, SKOS, Dublin Core, AFO) 수준에서 찾는 것 — 각각이 하나의 배치 안 서로 다른 존재로 정당화됩니다.
  • continuant / occurrent 분리 — 지속하는 것(배치 물질, 용기, 순도, role)과 일어나는 것(발효, 포획 단계)을 가르는 BFO의 구별. 장비, 물질, 활동을 분리 가능하게 유지해 하나의 용기가 모순 없이 여러 배치를 호스팅하게 하는 것입니다.
  • 레지스트리(Registry) — 후보를 찾는 데 쓰이는 카탈로그: OBO를 위한 OLS4와 OBO Foundry와 BioPortal, IOF를 위한 발행된 IOF 릴리스, 횡단 계층을 위한 LOV와 발행자 사이트. 그것이 공급할 수 없는 것은 올바른 적중을 고르는 도메인 지식입니다.
  • 선택 기준(Selection criteria) — 포괄 범위, 성숙도, 채택, 논리적 양립성, 라이선스, 임포트 비용. 찾아낸 용어가 정렬 간선을 얻기 전에 통과하는 테스트로, 거짓을 단언하는 근접 실패가 표시된 로컬 발행보다 나쁩니다.
  • 어휘적 정렬 vs. owl:imports — 외부 IRI에 rdfs:subClassOf을 단언하면 외부 파일을 로드하지 않고도 공유 어휘를 사 줍니다(그래서 파트너의 IOF 도구가 당신의 배치를 정렬). owl:imports는 외부 사슬을 끌어들여 교차 온톨로지 함의를 사 줍니다.
  • align.ttl — 단 하나의 재사용 산출물: 로컬 bp: 용어에서 검증된 외부 IRI로 올라가는 rdfs:subClassOf / rdfs:subPropertyOf 간선의 파일로, 용어별로 검증 출처가 기록됩니다.
  • OBO–IOF 이음새 — 생명의학(OBO)과 제조(IOF) 온톨로지 사이의 다리 놓이지 않은 경계. 둘 다 BFO에 뿌리내려 하나의 bp:CellLine이 둘을 걸칠 수 있지만, 살아 있는 세포를 관통하는 크로스워크는 저자가 큐레이션하고 유지합니다.
  • 뿌리내린 기준 진실(ML을 위한 온톨로지) — 온톨로지에 뿌리내리고 SHACL로 검증된 그래프를, 학습 모델의 검증된 입력 이자 교차 점검으로 쓰는 것: 조용한 구멍이 없는 학습 데이터, 누설 차단 그룹화 키로서의 계보 걷기, 그리고 모델의 예측을 반박할 수 있는 추론된 그래프입니다.
  • 배치 하나 빼기 교차검증(Leave-one-batch-out) — 한 배치의 모든 행을 학습/검정 분할의 한쪽에 함께 두는 그룹 평가. 바이오공정에서 독립된 관측은 행이 아니라 배치이기 때문이며, 재사용된 전이적 bp:derivedFrom 계보가 그룹화 키를 공급합니다.

다음 이야기

부품은 사졌고 부품 목록은 적혔습니다. 빌린 어휘가 고정되었으니, 개념화 단계는 마침내 로컬 용어 — 조사가 아무도 발행하지 않음을 입증한 소수의 클래스: 충전·완제 프로세스와 용기·마개 시스템(bp:fillsInto와 함께), 전하 변이체와 응집 변이체, GS1 포장 계층, 그리고 거버넌스 기록으로, 각각이 간선으로 가장된 근접 실패가 아니라 빌린 어휘 안의 문서화된 간극입니다 — 를 그릴 수 있습니다. 다음 장, 개념화: 클래스와 분류 체계는 빌림에서 저작으로 돌아섭니다: 각 로컬 bp: 클래스를 명명하고, 그 BFO 범주를 고정하며, 모든 새 용어가 재사용된 용어를 특수화하거나 정당화되고 표시된 로컬 발행으로 제자리를 얻도록 분류 체계를 배열합니다.