Page 240 - 《软件学报》2020年第9期
P. 240
陈德彦 等:专家视图与本体视图的语义映射方法 2861
约定 2 的含义是:无论是数据类型属性还是对象属性,根据其定义域所对应的概念所在的本体来确定该属
性定义所在的本体.这样做的理由是:属性用于描述概念所代表的实例集合中的实例的特征或者这些实例指向
其他概念代表的实例集合中的实例的语义关联,所以属性的定义理应与其服务的概念的定义绑定在一起.如图
1(b)所示:将描述概念“人”的疾病和症状的属性定义在 O people 本体中,将描述 O medicine 本体中概念的属性定义也
定义在 O medicine 本体中.
某些情况下,可能需要通过导入其他本体中的概念,并对其属性进行扩展,使得属性定义和其定义域声明中
的概念的定义位于不同的本体中.但通常情况下,在定义某个新的概念时,往往都会同时定义此概念的一些属
性.此时,应尽可能将概念和描述此概念的属性(以此概念为定义域的属性)定义在一起,以避免属性的冗余定义.
2.2 同一实例具有多种类型或角色
健康医疗领域的专家可能构建如图 2(a)所示的专家视图,在多个概念的实例定义中同时包含了糖尿病、泌
尿道感染等实例.而在本体视图中,每个实例对象的 ID 必须是唯一的,但多个 ID 不同的实例对象,在语义上可以
[6]
是等价的.在本体视图中,某个实例对象也可以具有多种类型,或者属于由多种类型通过复杂类 构造方法构造
的复杂类.
约定 3. 在专家视图中,基于不同的语义类型定义了多个相同的实例时,在对应的本体视图中可以定义一个
唯一的实例,并声明其具有多种语义类型.在进行语义理解或语义推理时,实例对象在具体语境下的语义类型由
连接该实例的属性的定义域或值域的类型来确定.
例如,图 2(a)所示的专家视图对应的本体视图如图 2(b)所示,其中,白色椭圆表示类和属性,灰色椭圆表示实
例.下同.
med:medicine.di rdf:type rdf:type med:medicine.ri
泌尿道感染 糖尿病 sease sk_factor
是症状
rdf:type rdf:type
med:medicine.disea
糖尿病 症状 疾病 泌尿道感染 se.risk_factors
“泌尿 rdfs:label “糖尿
道感 rdfs:label
有风险因素 med:m.07x16 med:m.0c58k 病”@
染”@ zh
zh med:medicine.symp
泌尿道感染 病因 风险因素 糖尿病
tom.symptom_of
rdf:type rdf:type
med:medicine.s med:medicine.di
糖尿病 泌尿道感染
ymptom rdf:type rdf:type sease_cause
(a) 专家视图 (b) 本体视图
Fig.2 Instance objects have multiple types
图 2 实例对象具有多种类型
[3]
下面为采用 Turtle 语法描述的 O medicine 本体的一个片段.
1. med:medicine.disease.risk_factors rdf:type owl:ObjectProperty;
2. rdfs:domain med:medicine.disease;
3. rdfs:range med:medicine.risk_factor;
4. owl:inverseOf med:medicine.risk_factor.diseases.
5. med:medicine.symptom.symptom_of rdf:type owl:ObjectProperty;
6. rdfs:domain med:medicine.symptom;
7. rdfs:range med:medicine.disease;
8. owl:inverseOf med:medicine.symptom.symptom_of.
9. med:m.07x16 rdfs:label “泌尿道感染”@zh;
10. rdfs:label “Urinary tract infection”@en;