Page 238 - 《软件学报》2020年第9期
P. 238
陈德彦 等:专家视图与本体视图的语义映射方法 2859
评估、疾病自我诊断、疾病辅助诊断、疾病干预方案(药物、运动、饮食、心理、睡眠等)、远程监护服务、
健康知识问答服务、健康教育/咨询服务等需求的语义知识库.
W3C 推荐的针对语义知识库的语义层(即 RDF 层)查询标准语言为 SPARQL [21] ,这种查询语言不仅理解
RDF 的语法,而且理解 RDF 的数据模型和 RDF 词汇的语义,几乎所有的 RDF 查询工具都提供了对 SPARQL 查
询语义的支持 [10,19] .
2 语义映射方法
以本体视图来建模领域知识,目的是为了实现领域知识的存储、共享、集成和复用.为此,需要基于共同认
可的标准或规范来对本体视图进行形式化描述,以实现计算机可准确理解其语义并可做出正确的推理.本文对
本体视图的描述完全遵循 W3C 推荐的本体描述语言规范(RDF,RDFS,OWL 等),使用这些标准本体描述语言提
供的语义组件来描述领域专家知识.
本节针对专家视图与本体视图的语义映射中的 5 个通用问题进行了深入探讨,给出了相应的解决方案,总
结了 10 条约定,并分别通过实例对映射方法进行了详细说明.
2.1 资源名的语义映射
针对引言中提到的一词多义的语义映射问题有很多类型,本节探讨专家视图中的资源在本体视图中的命
名规则,以及在本体视图中属性的定义位置.
第 2.2 节和第 2.3 节分别探讨了另外两类问题及其语义映射解决方案.
如图 1(a)所示的专家视图,如果进行直接的语义映射,将存在如下 3 个问题.
1) 在图 1(a)中,专家同时定义了“疾病”概念和“疾病”属性、“症状”概念和“症状”属性,这对于人类理解并
没有问题.但在本体视图中,概念和属性对应的语义类型分别为 owl:Class 和 rdfs:Property,其定义和语
义约束是完全不同的,无法将同一个 ID 表示的资源同时声明为类和属性;
2) 在图 1(a)中,“疾病”属性对应的定义域类型分别有“人”“风险因素”“医学实验”和“疾病诱因”,“症状”属
性对应的定义域类型有“人”和“疾病”,即分别通过属性“疾病”“症状”建立了多个概念之间的语义关
系 .同样 ,这对于 人类理 解并 不会产 生歧 义 ; 但 如果在 本体视 图中 分别建 立对 应的对 象属性
“med:diseases”和“med:symptoms”来描述这些概念之间的语义关系,或者不声明属性的定义域,或者将
属性的定义域同样声明为多种类型,这都将引起语义推理结果的歧义.例如,基于推理结果认为概念
“人”“风险因素”“医学实验”和“疾病诱因”在语义上是等价的,因为它们的实例都可以作为属性
“med:diseases”的主语.对于症状属性,存在同样的问题;
3) 从本体工程的角度,同一个专家视图可能被映射为一个或者多个本体视图.在本体视图中,由于属性
具有方向,属性定义域和值域声明中对应的概念的定义可能位于不同的 O domain 中,属性连接的两个实
例的定义也可能位于不同的 I domain 中.这种情况下,属性定义的位置约定就很关键,否则可能导致属性
的冗余定义(有可能不同位置定义的属性其语义约束并不完全一致),进而导致知识的冗余定义,同时
可能会引起语义理解和语义推理上的歧义.例如在图 1(b)中,疾病、症状等概念的定义位于 O medicine
本体中,概念“人”的定义位于 O people 本体中,那么在定义人与疾病或者人与症状之间的语义关系时,需
要决定该语义关系应该定义在哪个本体中.如果分别定义,可能会导致属性冗余定义,除非明确声明
它们是等价的(通过 owl:equivalentProperty)或者互逆的(通过 owl:inverseOf),否则可能会引起语义理
解和语义推理上的歧义.
在 SKB domain 中,除了字面值(数值、布尔值、字符串等)和规则以外的所有对象都被称为资源(resource).资源
是我们想要讨论或记录的对象或事物 [10] ,这些资源可以是物理存在并可通过网络访问的资源,例如网页、网络
图片、Web 服务等;或是物理存在但不可通过网络访问的资源,例如人、公司、图书馆中的书籍等;或是物理不
存在的抽象概念,例如本体、语义 Web 等.RDF 将资源定义为任何可被 URI(uniform resource identifier)引用(URI
[4]
references,简称 URIrefs)标识的事物 .URI 引用是一个在尾部附加了可选的片段识别符(fragment identifier)的