3. 语义建模核心概念与形式化基础
医疗设备数据语义建模的核心任务,是把设备产生的原始数据从“可读”提升到“可理解、可推理、可校验”。要做到这一点,必须区分几个容易混淆的概念:本体回答“领域里有哪些事物、它们如何分类、彼此有什么关系”;术语回答“每个概念用什么名称、代码和同义词表达”;分类回答“某个具体对象属于哪一类”;元模型回答“我们用什么规则来定义模型本身”。四者层次不同,却共同支撑起一个可被机器处理的语义层。
形式化基础则提供了让语义“可计算”的语言工具。RDF 用三元组(主语—谓语—宾语)表达事实,例如 (Patient_001, hasDevice, Ventilator_A),它是最底层的数据模型,适合表达实例与关系。OWL 建立在 RDF 之上,用类、属性、个体和公理描述更丰富的逻辑约束,例如“呼吸机是医疗设备的一个子类”“每个设备必须归属于某个科室”。描述逻辑(DL)是 OWL 的逻辑基础,它把类定义为对个体集合的约束,使推理机能够判断一致性、推导隐含分类。SHACL 则从另一个角度工作:它不负责推理,而是校验 RDF 图是否满足形状约束,例如“设备编号必须恰好一个”“报警等级只能取高、中、低三个值”。
选型时,关键不是“哪个标准更先进”,而是“当前任务需要表达什么、需要推理什么、需要校验什么”。如果只是交换设备状态数据,RDF 加轻量词表即可;如果要支持跨系统语义互操作和自动分类,OWL 更合适;如果已有数据需要质量门禁,SHACL 是直接可用的校验层。下面这张图把本体、术语、分类、元模型与 RDF/OWL/DL/SHACL 的关系放在同一张语义栈中,便于建立整体判断。
从工程落地角度看,一个典型的医疗设备语义模型可以按以下顺序构建。第一步,确定范围与复用策略:如果领域内已有成熟本体(如设备本体、观测与测量本体),优先复用其类和属性,只对设备特有概念做扩展。第二步,定义术语与编码:为每个类、属性、个体分配稳定的 IRI,并建立与院内编码或国际术语的映射表。第三步,用 OWL 写出类层次和关键公理,例如“呼吸机 ⊑ 医疗设备”“设备 ⊑ ∃归属科室.科室”“报警 ⊑ ∃报警等级.{高,中,低}”。第四步,用 SHACL 写出数据形状,把“必须有一个设备编号”“报警等级只能取三个值”“设备归属科室必须存在”等业务规则变成可执行校验。第五步,用 SPARQL 查询验证推理结果和校验报告,确认模型是否达到预期。
下面给出一个可直接参考的 SHACL 形状片段,用于校验医疗设备实例的最小完整性。该片段假设设备使用 ex: 前缀,设备类为 ex:MedicalDevice,属性包括 ex:deviceId、ex:belongsToDepartment、ex:alarmLevel。
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix ex: <http://example.org/med#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
ex:MedicalDeviceShape
a sh:NodeShape ;
sh:targetClass ex:MedicalDevice ;
sh:property [
sh:path ex:deviceId ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:datatype xsd:string ;
sh:message "设备必须且只能有一个设备编号" ;
] ;
sh:property [
sh:path ex:belongsToDepartment ;
sh:minCount 1 ;
sh:class ex:Department ;
sh:message "设备必须归属一个科室" ;
] ;
sh:property [
sh:path ex:alarmLevel ;
sh:in ( "高" "中" "低" ) ;
sh:message "报警等级只能取高、中、低" ;
] .
这段形状定义了三类约束:基数约束(sh:minCount、sh:maxCount)、类型约束(sh:datatype、sh:class)和值域约束(sh:in)。当 RDF 数据被加载后,SHACL 校验器会逐条检查,并输出不符合形状的节点、路径和消息。工程上通常把校验报告作为数据入库前的质量门禁:如果报告为空,数据进入语义库;如果报告非空,则退回数据源修正。这样,语义模型就不只是“文档”,而是真正参与数据治理的运行组件。
最后需要强调,本体、术语、分类和元模型不是四个孤立文档,而是同一语义资产的不同视图。术语提供命名入口,分类提供归属判断,本体提供逻辑结构,元模型提供建模规则,RDF/OWL/DL/SHACL 则分别承担事实表达、逻辑推理、形式化语义和约束校验。只有把“概念层”和“形式化层”对齐,医疗设备数据才能在跨系统流转中保持含义一致、推理可靠、质量可控。