3. 机器可读协议的核心元数据

一份机器可读实验协议(Machine-Readable Protocol, MRP)如果只有操作步骤,它仍然只是一段“可被解析的文本”,而不是“可被信任、可被复用、可被追溯”的协议资产。真正让协议具备工程价值的,是包裹在步骤之外的一层结构化元数据。元数据回答的是:这份协议是谁的、是哪个版本、允许谁用、依赖什么、在什么条件下成立、以及它从何而来。本节围绕七类核心元数据展开,说明它们的规范化描述方式与落地写法。

一、七类核心元数据及其作用

在协议工程实践中,元数据可分为“身份类”“权利类”“关系类”“条件类”“历史类”五组。身份类包括标识符与版本;权利类包括作者与许可;关系类包括依赖关系;条件类包括适用条件;历史类包括溯源信息。它们共同构成协议的“可信外壳”。

元数据类别字段示例核心作用缺失后果
标识符protocol_id、DOI、UUID全局唯一定位无法引用、无法去重
版本version、revision、date区分迭代、支持回滚结果不可复现
作者author、affiliation、ORCID责任归属与联系无法追责与协作
许可license、SPDX、usage_scope明确使用边界法律与合规风险
依赖关系depends_on、requires声明前置协议/资源执行时缺件失败
适用条件applicability、constraints界定有效范围误用导致无效结果
溯源信息provenance、derived_from记录来源与演化无法审计与复现

二、标识符与版本:身份与迭代

标识符应满足“全局唯一、稳定不变、可解析”三个要求。推荐采用分层策略:内部使用 UUID v4 保证唯一性,对外发布时注册 DOI 或使用带命名空间的 URI,例如 urn:mrp:lab-a:proto:cell-viability-001。标识符一旦发布不应随内容修改而改变,内容变化应通过版本字段体现。

版本建议采用语义化版本 MAJOR.MINOR.PATCH:MAJOR 表示不兼容的步骤或参数变更,MINOR 表示向后兼容的新增,PATCH 表示文字或注释修正。同时应记录 version_date 与 changelog,使读者能判断“我手上的版本是否与文献一致”。

三、作者、许可与依赖关系

作者字段不应只写姓名,而应包含机构、角色(如 protocol_author、reviewer)与持久标识(ORCID)。许可字段推荐使用 SPDX 标识符,如 CC-BY-4.0、MIT、CC0-1.0,并补充 usage_scope 说明是否允许商业使用、是否允许修改后再分发。依赖关系需区分“协议依赖”与“资源依赖”:前者指向其他协议标识符及版本约束,后者指向试剂、设备、软件及其版本。

依赖声明应尽量给出可判定的版本约束,例如 >=1.2.0,<2.0.0,而不是模糊的“最新版”。这样执行器才能在加载时自动校验并给出明确报错。

四、适用条件与溯源信息

适用条件用于界定协议“在什么情况下成立”,常见维度包括样本类型、设备型号、环境温湿度、生物安全等级、时间窗口等。溯源信息则记录协议的来源:是原创、改编自某文献,还是由某旧版本迁移而来,并保留 derived_from、contributors、review_status 等字段。

下面给出一个可直接参考的元数据片段示例(YAML 形式,字段值为教学示例):

protocol_id: urn:mrp:lab-a:proto:cell-viability-001
version: 1.3.0
version_date: 2025-03-11
authors:
  - name: 张明
    affiliation: 示例生物实验室
    orcid: 0000-0002-1825-0097
    role: protocol_author
license:
  spdx: CC-BY-4.0
  usage_scope: 允许非商业使用与修改,需署名
depends_on:
  - id: urn:mrp:lab-a:proto:cell-culture-002
    version: ">=2.1.0,<3.0.0"
  - id: urn:mrp:lab-a:resource:plate-reader-abs
    version: "==4.2.1"
applicability:
  sample_type: 贴壁细胞
  biosafety_level: BSL-2
  temperature_c: 37±0.5
provenance:
  derived_from: urn:mrp:lab-a:proto:cell-viability-000
  review_status: peer_reviewed
  changelog: 修正孵育时间,补充设备版本约束

五、元数据之间的关系与校验

七类元数据并非孤立字段,而是相互约束的关系网络:版本约束依赖标识符,适用条件约束依赖资源的可用性,溯源信息又反过来解释版本差异。下图展示了它们之间的结构化关系,可作为协议加载器的校验依据。

机器可读协议核心元数据关系 协议本体 protocol_id + version 标识符 UUID / DOI / URI 版本 MAJOR.MINOR.PATCH 作者 姓名 / 机构 / ORCID 许可 SPDX / usage_scope 依赖关系 协议依赖 / 资源依赖 适用条件 样本 / 设备 / 环境 溯源信息 derived_from / 审核 唯一定位 迭代标识 责任归属 使用边界 前置约束 有效范围 来源演化

从图中可以看到,标识符与版本共同构成协议的身份锚点,作者与许可界定权利边界,依赖关系与适用条件约束执行前提,溯源信息则记录协议的来龙去脉。一个健壮的协议加载器应依次校验:标识符是否可解析、版本是否满足引用方约束、许可是否允许当前用途、依赖是否齐备、适用条件是否与当前环境匹配、溯源链是否完整。

六、规范化描述的落地建议

  • 字段命名统一:采用小写加下划线,避免同一含义出现多种拼写。
  • 必填与选填分离:标识符、版本、作者、许可为必填;依赖、适用条件、溯源在发布级协议中应尽量完整。
  • 机器可校验:为每类元数据提供 JSON Schema 或 SHACL 约束,使错误在加载阶段暴露,而非执行中途。
  • 人机双读:元数据既要能被程序解析,也要能生成人类可读的协议封面页。
常见错误:把版本号写进标识符(如 proto-001-v2),导致同一协议的不同版本被当成不同协议,破坏溯源链。正确做法是标识符保持稳定,版本单独成字段。

掌握这七类元数据的规范化写法,是后续实现协议注册、检索、依赖解析与自动校验的基础。只有当元数据完整且一致时,机器可读协议才真正具备可发现、可复用、可审计的工程属性。