0 引 言
事件语义信息的获取与利用是当前自然语言处理、知识图谱等多个研究领域所共同关注的核心问题之一,在医疗、金融等行业的智能信息化建设中有着广泛的需求。事件信息常常来源于自然语言文本,其语义内容主要由施事/受事、时间、地点等要素构成,其中时间要素承担确定事件边界、支撑事件推理的关键作用。准确表达文本中的事件语义,需要以合理有效的时间语义模型为基础,满足对文本中各种时间相关表述的准确理解。
文本中的时间信息通常依托于粒度时间和事件时间表述。在刻画粒度时间时需要引入时间粒度概念,时间粒度是人们用于定量描述时序关系的一种尺度单位,不同时间粒度之间存在着一致的对应关系,形成了多种粒度共存的粒度时间描述框架。在各业务领域常会引入专用的领域时间粒度,如疗程、学年、赛季等。在领域文本中,这些专用的时间粒度常常与业务领域中的事件交织在一起,如“疗程第一周每天早上吃药”“学期最后一周考试”等等。人们对于事件文本中时间语义信息的理解通常涉及四个层面,包括:事件-粒度时刻匹配、事件时序确定、时间粒度度量和事件-时间语义模式理解。在领域文本的语义信息处理工作中,对于事件-时间语义模式的表示与理解是进行专业领域业务的语义描述和推理的核心。
时间语义建模研究经历了一个较长的发展过程
[1],现有关于时间建模的研究可分为两类:一类关注时序相关的计算系统,包括线性时序逻辑/分支时序逻辑
[2,3],基于时段区间的简单代数系统
[4]、进程代数
[5]、事件逻辑
[6]等;另一类关注粒度时刻和时序的表示,包括将时间作为事件语义的核心要素之一进行表示的通用事件本体,如SEM(simple event model)模型
[7]、LODE(linking open descriptions of events)模型
[8],和独立对时间语义建模的时间本体,如OWL-Time(web ontology language-time)时间本体
[9]、KSL(knowledge systems lab)时间本体
[10] 、TimeML(time makeup language)
[11,12]等。两类研究都还存在一定的不足之处:前者关注事件主体的动作或状态变化的时序关系,缺乏对文本中常见时间语义信息的直接支持,导致在描述事件文本中的时间语义模式时存在形式复杂、可读性差、推理计算复杂度高等问题;后者虽然支持简单的时间语义模式表示,但缺乏对事件时刻与粒度时刻的统一描述,在描述时间语义模式中蕴含的逻辑结构时表达能力不足。
近年加载了时间戳信息的时序知识图谱也开始被用于表示事件及时间语义信息
[13~15] ,由于时序知识图谱中的时间戳信息过于简单,目前还欠缺能有效表现实际应用中复杂时间概念及模式的手段。在领域事件及时间描述方法的研究中,如医学领域,Tao等
[16,17]提出了临床叙事时间关系本体CNTRO(clinical narrative temporal relation ontology),Li等
[18]基于CNTRO和Allen区间代数提出了时间事件本体TEO(time event ontology),Hu等
[19]归纳了医疗文本中的复杂时间表示的多种需求并提出了新的医疗时间本体CTO(clinical time ontology)。但目前暂不支持否定性时间关系的表达,也难以表示具有逻辑聚合关系的复合时间表达。
现有研究偏重粒度建模或时序逻辑建模的某一个方面,较少对两者进行结合;对领域时间粒度的支持和扩展性较差,难于表述公共时间粒度与领域时间粒度交叉的时间概念。同时,缺乏对事件时刻与粒度时刻的统一描述,难以表现更复杂的时间区间。为解决上述问题,本文提出了一种新的时间语义表示模型GEP(granularity-event-pattern),对以文本为代表的事件描述中的时间语义信息进行全面、一致表示。本文的主要贡献包括:1) 构建的GEP模型,可一致表现多种时间粒度下的时间语义;2) GEP模型采用了时刻参考点、时刻类别和粒度时刻的动态匹配机制以刻画事件的时间语义理解过程;3) 采用代数形式,有效地实现常见事件中时间模式的语义表示,并在Neo4j中实现了系统原型。本文通过医疗领域文本的典型案例,对基于GEP模型的时间语义描述方法进行了较全面的介绍。
1 时间语义模型GEP
事件中的时间语义信息的表述方式是复杂且多样的,事件中蕴含着不同抽象层次的时间概念,最底层的概念与粒度相关,而事件中的时刻和时刻区间往往存在着特定的约束关系,满足特定约束关系的时刻或者区间可以看作是事件的时间模式。
GEP模型从事件中时间语义表示的特点出发,通过对时间的粒度、时刻和模式等基本概念及其结构的刻画,建立能够统一表示事件、粒度时间概念及相关时序关系的语义模式。
1.1 粒度与时刻
人为的时间抽象是人类理解的时间值与底层时域中时间概念之间的映射,常常被称为时间粒度。时间粒度是人们建立时间抽象的基础,通常会使用公历日历系统量化时间,通过定义年、月、日、时等时间单位建立时间对象的语义层次结构。时刻是表示“瞬间”的时间概念,用于指称时间轴上离散的时间点。现实中的时刻具有主观认知特点,即具有人为指定并作为其标识的名称,因此我们将这种主观认知的瞬时时间称为“命名时刻”。
GEP模型对时间粒度和时刻作了如下定义。
定义1 时间粒度。
GEP模型中定义一个时间粒度是一个稀疏可数线序集合G = (TG , < G ),其中:
1) 可数集合T的任意一个元素t ∈TG 称为一个时间颗粒;
2) 对于任意时间颗粒t ∈TG,最多存在一个时间颗粒,记为prev G (t)∈TG, 使得prev G (t) < G t 且不存在t'∈T 使得 prev G (t) < G t' < G t;
3) 对于任意时间颗粒t∈TG,最多存在一个时间颗粒,记为succ G (t) ∈TG,使得t < G succ(t) 且不存在t'∈TG 使得t < G t' < G succ(t)c;时间粒度T中的一个时间颗粒t,如果prev G (t)/succ G (t)存在,则t与prev G (t)/succG(t) 称为相邻时间颗粒。
时间粒度包含了常见的年、月、日、时、分、秒等时间概念,也可以是自定义的工作日、学期乃至疗程等具有确定时间起始、终止的时间区间引出的时间概念。时间粒度通常被用作事件相关的时间概念的参考锚点。时间粒度本身具有多层次、多粒度的特性,由于本文主要关注事件相关的时间语义描述,对时间粒度建模更广泛的讨论可参考文献[
20]。
定义2 命名时刻域。一个命名时刻域(简称为时刻域)是一个元组D = (MD, < D, = D ),其中:
1) MD 为一个稀疏可数集合,称为命名时刻集,m∈MD 为一个命名时刻(简称为时刻);
2) < D 为MD 上的一个非自反、非对称、传递二元关系;
3) = D 为MD 上的一个自反、对称、传递二元关系;
4) 对任意m∈MD, 存在m'∈MD,有m'< Dm或 m < Dm';
5) 对任意m1, m2, m3 ∈MD, 若:m1< Dm2 = Dm3, 则m1 < Dm3; 若m1 = Dm2 < Dm3,则m1<D m3;
6) 若存在ms∈MD,对任意其他m'∈MD,有m< Dm',则称ms为MD 的下界;若存在me∈MD,对任意其他m'∈MD,有m'< Dme,则称me为MD 的上界;
7) 若MD 有上界与下界,则称D为封闭时刻域。
GEP模型中的命名时刻m具有两方面特点:1) 时刻不具有长度;2) 时刻具有唯一标识(即命名)作为其主观认知的表示。对于客观上指称时间轴上同一时间点的时刻,例如“2022年结束时刻”和“2023年起始时刻”,若其名称不同,也被认为是不同时刻,但可以在时间域中用等价关系“= D ”表明两个时刻在时间轴上的等价性。
定义3 完全时刻域与子时刻域。
1) 时刻域D= (MD, < D, = D )称为完全时刻域,当且仅当:对任意m,m'∈MD,若(m,m')∉= D,则有m< Dm'或m'< D m;
2) 时刻域D'= (M' D, <' D, =' D )称为时刻域D= (MD, < D, = D )的子时刻域,记为D'⊇D,当且仅当:M'D ⊇MD,<'D ⊇<D,且 ='D ⊇ =D。
完全时刻域限定时刻之间存在确定的时序关系。命名时刻域因其主观认知特点,在不同主观认知情境下可以有分支时刻域。但在常规的事件描述中,通常认为时刻构成了全序,即默认采用统一的线性时间域。因此,本文主要讨论完全时刻域下的时序关系。
定义4 一个时间粒度G = (TG, <G )诱导的时刻域(称为粒度时刻域)是一个完全时刻域DG = (MGD, <GD, =GD ),其中:
1) 对于时间颗粒t∈TG,有时刻m,m∈MGD,且m< GDm,m为t的起始,m为终止时刻,可分别记为t\ 和t/;
2) 对于时间颗粒t1<Gt2,t1/ <GDt2\ 或 t1/ =GD t2\,若对任意t∈TG 和t'=succ(t) ∈TG 有t/ = Gt'\,则称DG 为连续粒度时刻域。
上述定义表明,在GEP模型中,时间粒度被默认为是具有长度的时间概念,其引出的起始和终止时刻是时间颗粒的边界。例如,“公元年”的时间粒度可以诱导出时间域“#公元年”。
时刻区间表示时间轴上具有确定起止时刻的连续区间。时刻区间的长度通过起始时刻与终止时刻之间时间间隔的量化表示。GEP模型基于时刻概念定义了时刻区间及相关概念。
定义5 时刻区间与区间子域。
1) 时刻域D= (MD, <D, =D )上的一个元组 (ms, me)称为一个时刻区间,其中ms, me∈MD 且ms <D me。ms称为区间的起始时刻,me称为区间的终止时刻;
2) 对于时刻域D= (MD, <D, =D )上的时刻区间I=ms..me, D上的子时刻域DI = (MI',<t,=I )若MI = {m | m∈MD, ms<=m<=me},称为由区间I确定的子时刻域,简称为区间子域,记作D[ms..me] (D在不引起歧义时可省略) 。
GEP模型采用时刻区间和区间子域来表示由瞬时时刻确定边界的时段概念。与Allen等
[4]认为应将时间间隔作为时间原语的观点不同,在GEP模型中,时间间隔以确定的命名时刻域中的起始/终止时刻导出的时间区间形式表示,这样能够更方便地对事件与粒度时间进行统一表示和推演。由于时刻区间的内涵由其所属命名时刻域确定,因此对于具有同样的起始/终止时刻的区间,其区间子域的语义内涵并不一定相同。例如,时刻域“#公元年”的区间子域“#公元年[2022年\..2023年/]”与时刻域“#月”的区间“#月[2022年1月\..2023年12月/]”具有不同的内部时刻元素,因而并不相同。
GEP将事件发展过程看作是一个时刻区间,事件时刻是对事件发生发展中的特定时间节点的语义指称,例如“第一例新冠肺炎确诊时间”。
定义6 事件时刻域。对一个事件集合E,时刻域DE=(MD, <D, =D ) 称为E的时刻域,其中MD = Ue∈E {m, m}, m和m分别称为事件e的起始时刻和终止时刻,也记作e\和e/。
定义7 时刻分类。时刻域D= (MD,<D,=D )中MD 上的一个划分C:MD→CD 称为D上的一个时刻分类,其中:
1) 标签集合CD 称为时刻类别集,每个c∈CD 称为一个时刻类别;
2) 对于任意类别c∈CD 中的两个时刻m1和m2,m1= D m2不成立。
对时刻域D= (MD, <D, =D )上的一个时刻分类C,若m∈MD 且C(m)=c, 可记为m:c。
对于粒度时刻域DG,各时间颗粒的起始时刻和终止时刻形成两个时刻类别,分别记为DG \和DG /。例如,“#公历月\”表示每个公历月的起始时刻类别。
定义8 区间分类。对时刻域D=(MD,<D, =D )上的时刻区间集合I上的一个划分K: I→C称为一个时刻区间分类, 其中:
1) C是一个标签集合,称为区间类别集,每个c∈C称为一个区间类别;
2) 对两个不同区间ms..me∈ I和ms'..me' ∈ I,时刻ms,me,ms', me'各不相同。
对于一个区间分类K: I→C,各区间类别c 对应的区间的起始和终结时刻自然形成了时刻类别,分别记作c\和c/,称为由K衍生的时刻类别。对于区间ms..me及类别c=K(ms..me),可记为ms..me:c。
在时间轴上可通过各颗粒的起始、终止时刻形成的区间集合构造一个由各粒度组成的区间分类。例如,由年、月、日、时、分、 秒等粒度构成的常见日历时间的粒度时刻域,存在由各个粒度的颗粒形成的时刻区间集合,并自然形成了区间类别集CI = {年,月,日,时,分,秒}。
定义9 可区分区间分类。时刻域D上的时刻区间集合I上的一个区间分类K: I→C是可区分的,当且仅当:对任意区间类别c∈C及其中的任意两个区间ms1..me1:c、ms2..me2:c,有ms1≠ Dms2,并且如果ms1< Dms2,则me1< Dms2或me1= Dms2。
粒度时刻域上的区间分类是可区分的。本文主要关注事件时刻域上的可区分区间分类。对于一组事件E形成的时刻域上的由事件起始、终止时刻构成的区间,若存在一个可区分区间分类C: I→CI,则对事件e的区间ei =[e..e]。若C(ei ) = c∈CI,则称c为事件e的区间类别,简称为事件类别,记为e:c。这里的事件类别并非一般意义上的事件类型,例如对于一个“服药”事件类型,理论上可以有不同的“服药”事件实例同时或重叠发生,但是对于具体的“服药”事件实例构成的时刻域,可以根据患者和药品不同而形成不同的“某患者服某种药”的事件类别。引入一般的事件类型会增加事件类别辨析的复杂度,但并不影响GEP对时间语义的刻画方法,本文只考虑粒度区间分类和事件可区分区间分类中的区间类别及其衍生的时刻类别。
定义10 粒度与事件区间时刻域。一个粒度与事件区间时刻域是一个元组N = (D, I, C, K), 其中:
1) D为一个完全时刻域,I是D上的一个区间集合;
2) C=G∪E为由事件区间类别E和粒度区间类别G构成的区间类别集合;
3) K: I→C是I上的一个可区分区间分类。
1.2 GEP的时间模式
在描述时间信息的自然语言中,通常会将时刻和区间按照一定的时序关系、逻辑关系等约束条件组合在一起,形成时间模式。时间模式是理解并归纳复杂事件关系的核心,也是进行复杂逻辑的时间关系推理的基础。
GEP模型中的时间模式是基于指定粒度和事件集合的命名时刻集合N以及时刻引用名集合L为基础构造的,用于描述满足特定时序关系要求的时刻或区间的表达式。L中的时刻引用名用来对时刻域中的某个时刻给出一个模式内标识,该标识被声明后具有相应的时刻类别。
GEP模型中时间模式(以下简称模式)分为时刻类别模式、时刻模式、时序模式三类,分别按相关规则归纳定义如下。
定义11 时刻类别模式。时刻类别模式由如下规则归纳定义:
1) 一个时刻类别c∈C是一个时刻类别模式,其中c∈G时,称为粒度类别模式,c∈E时称为事件类别模式;
2) 对于时刻引用名l∈L,@l是一个类别模式,称为引用类别模式;
3) 对于时刻类别模式p1和p2,p1 | p2是时刻类别模式,称为选择类别模式;
4) 对于时刻类别模式p1和引用类别模式@l,p1¬@l是时刻类别模式,称为消除类别模式。
GEP模型中的时刻类别模式用于对时间语义中的时刻类别进行扩展。基本的粒度时刻类别通常直接源于现实中应用的时间粒度;事件时刻类别模式也源于对事件区间的分类知识。引用类别模式@l用于在进行相关时刻类别声明时引用前面已声明过的类别。选择类别模式表示存在多个(事件)时刻类别时选择其中之一,如“吃药\ | 打针\”,用以体现类别声明时的可选择性,也可以在一定程度上模拟事件层次类型;消除类别模式用于从由选择类别模式中的选项类别中消除引用名指定类别。例如,当引用名l已经被确定为“打针\”后,“(吃药\|打针\)¬@l”就自动确定为“吃药\”。
定义12 时刻模式。时刻模式由如下规则归纳定义:
1) 一个命名时刻m∈M是一个时刻模式,称为命名时刻模式;
2) 一个时刻引用名l∈L和一个正整数序列n1,…,nk (k>=0), l[n1],…,l[nk ] (k=0时,l是一个时刻模式,称为外部引用时刻模式;特定引用名now,称为当前时刻模式;
3) 对时刻引用名l∈L和时刻类别模式c,l:c是一个时刻模式,称为声明引用时刻模式或声明时刻模式,如果该模式的约束环境中不存在对l的使用,则该模式可简写为:c;
4) 对声明时刻模式l:c:若c=ci \是一个区间类别ci 对应的起始时刻类别,则l/是一个时刻模式,表示l对应的ci 区间的终止时刻;若c=ci /是一个区间类别ci 对应的终止时刻类别,则l\是一个时刻模式,表示l对应的ci 区间的起始时刻。l/和l\称为配对引用时刻模式;
5) 命名时刻模式、当前时刻模式、外部引用时刻模式和配对引用时刻模式统称为确定时刻模式。
GEP模型中的时刻模式是对某个粒度或事件时刻的抽象表示。它可以是具体的命名时刻或当前时刻,但更一般的情况下是通过引用名指称的命名时刻。引用名主要用来表示某个存在于时刻域中的、通过与其他时刻之间的时序关系被认知的时刻。在自然语言中,对事件时刻的描述普遍以这种方式来表现,如“昨天第一次吃药的时间”等。
指定具体的事件时刻,不仅需要引用名,更需要有合适的方式表现时刻之间的时序关系。GEP模型引入了确定时序模式和约束时序模式来满足自然语言中对事件时刻的灵活丰富的表达需求。
定义13 确定时序模式。确定时序模式由如下规则归纳定义:
1) 时刻模式p是确定时序模式;
2) 对确定时序模式p1和p2,p1 < p2 和 p1 = p2 、 p1 <= p2是确定时序模式;< 、 = 和 <= 称为确定时序关系符;
3) 对于确定时序模式p和正整数r, p[r]是确定时序模式,称为重复确定时序模式。
确定时序模式用来描述多个时刻之间的确定时序关系。每个确定时序模式对应了时刻域中的一对起始/终结时刻,针对时刻模式而言,其时刻模式的起始/终结时刻都是该时刻;对于复合模式p1? p2 (? 代表< , = , 或 <=),p1的终结时刻与p2的起始时刻之间存在时刻域上的 “<”, “=” 或 “<或=”关系,并且该复合模式的起始/终结时刻分别对应p1的起始时刻和p2的终结时刻。当p2的首部为声明时刻模式l:c时,p1? p2模式表示p1终结时刻之后(? 为 “<” 时)或相同(? 为 “=”时)的第一个c类时刻,并将该时刻命名为l。重复确定时序模式p[r]是由r个p模式通过“<=”关系符连接的模式。对于在重复确定时序模式中定义的声明引用时刻l :c,可以l [n]的外部引用形式表示其在模式序列中的第n次出现所代表的时刻。通过确定时序模式,可定义一组语义明确的时刻序列。该时刻序列被用来作为其他时刻序列的锚点。由锚点时刻所约束的时刻有更加灵活的序列结构。
定义14 约束时序模式。约束时序模式由如下规则归纳定义:
1) 对一个确定时序模式p1和特定模式p2, 模式 p1 { p2}是约束时序模式,称为单一约束模式,其中p1称为锚点模式,p2称为引用约束模式。p2中出现的外部引用名为p1中声明的引用名或now,p2为如下形式之一:
a) p2 = l1 << p < l2,其中l1, l2为引用时刻模式,“<<”为不确定时序关系符,此时p2称为区间约束模式,p称为区间内模式,为如下形式之一:
i. p = *l:c {p'},l:c为引用时刻模式,p'为区间约束模式,此模式p称为区间全称模式;
ii. p = ! p',p'为确定时序模式,此模式p称为区间唯一模式;
iii. p = ¬p',p'为确定时序模式,此模式p称为区间否定模式;
iv. p2 = p'<< p''< l3,其中,p'为区间约束模式,p''为区间内模式,l3为引用时刻模式,此模式p称为确定时刻模式;
b) p2 = p'& p'',p'和p''为确定时序模式、约束时序模式或区间约束模式,此模式p称为合取约束模式;
c) p2= p'|| p'',p'和p''为确定时序模式、约束时序模式或区间约束模式,此模式p称为析取约束模式;
d) p2 = l? p'或l? p'?p'',其中l为引用时刻模式,?为<, = 或<=,p'为确定时序模式或约束时序模式,p''为确定时序模式。
2)对于单一约束时序模式p和表达式r,r为正整数或符号*,p[r]是约束时序模式,称为重复约束模式。
对约束时序模式p1 {p2},p1的起始和终结时刻在p2中作为边界引用时刻模式时可分别用特定符号“\”和“/”表示,区间约束模式“{\<<p</}”可简写为{\p/};区间约束模式“{\<=p}”可简写为“{p}”。p2的外部引用时刻模式中的引用名为p1中的声明引用名或p1所在外部锚点模式的声明引用名。
对于确定时序模式或约束时序模式p,和一个正整数区间[m..n] = {i∈ | m≤i≤n},由所有p[i](i∈[m..n])组合而成的析取模式 p[m] || p[m+1] || … || p[n],简写为p[m..n]。
对两个具有相同区间边界的区间约束模式p1=l1<<p1'<l2,p2=l2<<p2'<l2,p1||p2和p1&p2可分别简写为l1<<p1'||p2'<l2和l1<<p1'&p2'<l2。
约束时序模式基于锚点模式设定的确定时刻模式序列,对各确定时刻区间中的事件时刻之间的逻辑关系进行描述,以刻画复杂的事件间时序关系。区间约束模式l1<<p<l2是以l1,l2为边界表现区间内各时刻之间时序关系的一般形式。不确定时序关系“p1<<p2”表示时序模式p2中的时刻在p1之后,但不确定p2的起始时刻对应类型在p1之后到p2之前是否有发生过。在区间内模式中,基于锚点模式设定的时刻边界,可以引入常见的与、或、非等逻辑运算来表现事件之间不确定的时间关系;此外,具有全称量词功能的全称模式可以实现对区间中相关事件的遍历描述,使得GEP模型具有一定表达递归型时间模式的能力,能满足日常应用中的复杂时间描述要求。
重复约束模式p[r]在重复次数r为正整数时表示该约束模式能重复的准确次数。当r为*时,表示当前约束模式的锚点模式将在边界允许范围内取最大值。通过利用重复约束模式,GEP模型不仅可以表达指定循环次数的时序语义,还能表达循环过程中对循环节的全称约束。
一个GEP时序模式在指定的时刻域中是否合理,可以通过特定方法进行检验。GEP模型具有如下性质。
性质1 一个GEP时序模式p在指定时刻域D中是否可满足是可判定的。
该性质表明了GEP模型描述事件的在封闭世界语义下描述时间语义的合理性。
2 基于GEP模型的领域事件时间表示应用
GEP模型的应用体现在两个方面:一方面,GEP模型对领域文本中的典型时间语义概念进行了合理归纳,可以直接用于事件的知识表示,采用GEP的时间模式表达式能够根据文本中对事件相关的多粒度时间描述生成灵活、一致的语义表示形式;另一方面,GEP模型能用于建立时间语义数据模型进而用于事件与时间数据管理,从而实现面向领域的事件及时间语义信息的存储和查询,满足领域事件知识管理与应用需求。
本节将通过GEP模型表示医学领域事件文本的典型案例,以验证GEP模型在语义表达上的有效性,并通过与ISO-TimeML标注方案
[11,12]和CNTRO模型
[16,17]对比,展现GEP模型对复杂时间语义的表示优势;本节还构建了基于GEP模型的GTGD(GEP Temporal Graph Data)图结构数据模型,通过对比已有的时间数据模型,展现GTGD图中存储时间模式节点和关系的优势,并在Neo4j中实现了存储案例,设计了查询方案,体现GEP模型在时间数据存储查询层面的应用价值。
2.1 基于GEP模型的时间语义信息表示应用
本节选取了医疗领域中常用的时间描述来展示GEP模型对复合时间、周期性时间、否定性时间、有上下限时间区间的时间语义表达能力,具体案例见
表1。
在
表1的案例里,示例1中GEP模型通过约束时序模式支持了时间语义的逻辑组合表达;示例2中GEP模型支持了否定性时间关系的表达;示例3中GEP模型通过设计的全称约束模式灵活地表现了全称时间语义,以对时刻或区间的全称量词形式还原了事件周期性时间,在周期内事件具体日历时刻/时段不确定的情况下仍能表达时间知识;示例4中GEP模型通过灵活的事件区间定义和时间区间嵌套展现出时间区间之间的包含关系、交并关系;示例5中GEP模型通过引入模式的重复次数,表示时间段区间的上界和下界,以支持模糊时长的语义表示;示例6展现了GEP模型能够表达公历时间之外的领域时间粒度“疗程”。文本中包含年、月、季度等多个日历单位粒度的时间表达时,GEP模型通过识别文本中的锚点时刻、时间偏移量及时间位置关系的方式,实现跨时间粒度的复合时间表达。
为了体现GEP模型在表达能力上的优势,我们选择基于时间语义标注的ISO-TimeML
[11,12]和基于OWL的临床叙事时间关系本体CNTRO标注方案
[16,17]作为对比,对比总结见
表2。
从
表2可以看出,GEP模型能很好地展现其表达能力上的特点:1) 可支持领域内时间粒度的刻画,如“一个化疗疗程”的表达;2) 跨多个时间粒度的时间表达,如周、天、小时三个不同时间粒度的联合表达;3) 灵活的时间区间表述,如“复健两小时”以事件为锚点叙述了时间区间;4) 对周期性全称量词时间表述的逻辑还原。
2.2 基于GEP模型的时间语义信息的存储和查询
为了满足领域文本中领域事件知识的管理与应用需求,我们采用属性图作为基础数据结构设计了基于GEP的数据模型GTGD(GEP Temporal Graph Data),并利用图数据库Neo4j实现了GTGD时间数据的表示、存储和查询的基本操作,实现了图结构时间语义数据库原型。
2.2.1 GTGD模型的定义
已有的数据模型如NLTM
[21]、RDF
[22,23],把时间信息建模为附属于时态实体(如事件)的时间属性存储,多数存储映射到公历时间轴上绝对的、确定的时间戳数据,在存储相对时间、周期性时间前要对时间信息做转换和计算,失去了文本原有时间语义信息的逻辑性。另外现有的图数据结构的模型如TEO
[18],将时间信息和事件分别建模,通过唯一的关系边将时间和事件绑定,在表述时间语义时缺乏动态性、灵活性,且不支持否定时间表达、领域特定时间的表达。
GTGD图是以GEP模型中各种时间概念(包括各类时间模式和实例)为节点,以时间概念间语义关系为边的一个时间语义数据图。GTGD模型保存了最接近原始领域文本的时间语义信息。利用 GTGD 图存储查询时间信息时,根据不同的查询需求,向图中添加待查询的实例节点,查询时能够结合存储图的模式节点、查询图实例节点进行公历时间映射、周期性时间、区间时间的计算、时间先后关系的推导。
GTGD模型将时间模式图映射为一个元组TG=(TN,IN,TR,IR,TIR,AT,AR,TL,RL),具体定义如下:
① TN 表示时间模式节点集合,IN表示实例节点集合,且TN∩IN=∅;
② TR是连接两个时间模式节点的边的集合,TIR是连接时间模式节点及其对应的实例节点的边的集合,IR是连接两个实例节点的边的集合,且TR∩IR∩TIR =∅;
③ AT是节点的属性集,AT={DESC,TYPE,MODE},AR是关系边的属性集,AR={DESC,TYPE,SEQUENCE},AT∩AR=∅;
④ TL是节点的标签集,RL是关系边的标签集;
GTGD图中的节点是对时间模式和实例的抽象,节点的标签用来区分节点类别,节点的属性反映其语义信息特征。GTGD图中节点分为模式节点和实例节点两类,模式节点存储抽象的时间模式,标签为pattern;实例节点是在抽象的模式节点上实例化的具体实例,标签为instance。模式节点的DESC属性存储了原始的领域文本时间表达,TYPE属性与GEP模型中时刻类别模式、时刻模式、时序模式三类对应,表示时刻类别。模式节点能通过MODE属性的复合模式(Combinatory)与原子模式(Atomic)展现抽象时间模式粒度的层次。实例节点的DESC是对实例化后的具体描述。
GTGD图的边用来描述节点之间的语义关系。根据节点类型的不同,关系分为模式节点之间的抽象关系(abstraction)、模式节点指向实例节点的实例化关系(instantiation)、实例节点间的递进关系(next)。关系的DESC属性表示原始时间语义关系的文本表达。抽象关系类型通过属性TYPE指明,包括时间粒度层次关系、周期性关系、时序关系、特化关系。时序属性SEQUENCE值包括<(next)、=(equal) 和 <= (after or equal )。
2.2.2 基于GTGD模型的时间信息存储
GTGD模型能够很好地与Neo4j等图数据库兼容,可通过Neo4j存储、查询基于GTGD图模型构建的时间语义数据。本文选择了“1次治疗有5个疗程,每个疗程10天,第1天做上肢复健,隔1天再做下肢复健,重复此过程”为示例,展示时间语义信息通过GTGD图结构存储在Neo4j中的实现效果,如
图1所示。
用GEP模型将该案例表示为时间模式:l: 治疗{ l\ < m:#疗程[5]{ m\ =(∗:#Day[10]{ \x:上肢复健\< :#Day[1] <下肢复健/})[*] < m/} < l/ }。
通过GTGD模型将该案例文本的时间模式转换为相应的模式节点和抽象关系。GEP模型将案例文本看作一个与事件有关的时间模式,GTGD将GEP模型抽象得到的时间模式映射为模式节点,通过抽象关系相连。
图1展现了案例中疗程时间模式、天粒度时间模式等不同的模式,以关系边展现不同粒度间层次关系,以及重复周期性关系等。通过从天特例化出复健日、空闲日等模式,贴近原文的面向事件的时间表达。GTGD在存储阶段仅存储时间模式节点,最大程度保留了领域文本的原始语义,具有动态性和灵活性,且所占存储空间小。
2.2.3 基于GTGD的时间信息查询
在Neo4j中创建了GTGD图后,以该数据结构为基础能支持多样的时间信息查询和事件查询。在存储了案例的时间模式的基础上,以查询“第1个疗程的第1次上肢复健到第2个疗程的第3次下肢复健中间有多少天”为例,说明GTGD中时间信息查询的实现思路。
1) 通过GEP模型解析查询语句,补全查询时间模式图,生成实例化节点“第1次疗程治疗”“患者进行上肢复健”“第2次疗程治疗”“患者进行下肢复健”;
2) 从查询模型图中模式节点获得模式信息,模式信息是由GTGD图存储的领域文本中所描述的固有信息,作为推理计算时的常量。如本查询语句可查询的时间模式粒度为疗程且疗程的间隔粒度时间单位为天,天的重复次数为10,即1疗程包含10天,通过查询时序关系相连的复健日、空闲日模式节点,推理出一次完整的复健耗费4天。
3) 从查询模型图中新增的实例节点获得实例信息,实例信息是根据查询语句生成的,作为推理时的变量。本案例通过查询4个实例节点,获得两次复健运动的具体时间为第1个疗程的第1次上肢复健和第2个疗程的第3次下肢复健。
4) 结合查询的模式信息和实例信息计算出查询结果。
本查询生成的查询图见
图2。在GTGD图内实现查询,即结合存储的模式时间信息与查询的实例时间信息,共同推理出查询的结果。GTGD图中的粒度类别模式节点存储的年、疗程等粒度时间信息是映射到公历时间轴的基础,与周期性关系、持续性关系等共同作为推理计算时的固有信息,以案例文本的时间模式为起点,直到查询到新增的问询实例节点后结束,解析得到与查询相关的时间变量值作为实例信息,在二者的基础上进行推理和计算。
基于GEP模型建立的GTGD图数据库能够依托Neo4j实现领域文本内事件时间语义数据的表示、存储和查询,图模型在表达方式上实现了事件与时间的一致性相容性,该原型系统也为后续进行时间推理的相关定义和规则设计奠定了基础。
3 结 语
事件文本中时间信息的表达形式多样,面向文本事件的时间语义特征复杂且与事件的深度理解紧密相关,模型需要较强的表达能力和推理能力才能将文本中的时间概念进行抽象化。GEP模型对时间的粒度、时刻和模式等基本概念及其结构进行了刻画,建立了适合统一表示事件、粒度时间概念及相关时序关系的语义模式。所列举的常见医疗领域语料的时间语义表示示例表明GEP模型描述复杂事件中的时间语义信息的有效性和可行性,弥补了当前时间语义表示方法在表达能力上的不足。
未来的研究工作将对GEP模型的理论和应用进行深入探讨。理论方面,将深入研究GEP模型在开放世界语义下的可满足性,从推理角度考察GEP模型的可判定性并进行相应调整,将建立基于GEP模型的时间本体,并利用描述逻辑实现GEP模型的可判定子集的推理;此外,还将探讨GEP时间模式的规则表示形式,并尝试用RETE推理机实现模型推理。应用方面,当前的GTGD原型系统仅实现了部分GEP模式的存储和查询,对GEP模式的完整支持,尤其是否定时间模式的支持,还有诸多理论问题需要深入探讨。未来将在上述原型系统基础上,通过扩展专门的模式解析和查询转换机制完善GEP模型的实现方法,并结合医疗、金融等领域的事件文本语料探讨基于GEP模型建立领域事件知识库及相应图数据库系统的框架,并研究适于GEP模型的事件知识查询表示方法。
国家自然科学基金重点项目(91646206)
国家社科基金重大项目(21&ZD334)
国家重点研发计划项目(2022YFF0904300)