一种基于知识图谱的实时系统语义约束性实现方法
2020-01-14詹威威
刘 畅,王 彬 ,薛 洁,程 序,詹威威,熊 新
1(昆明理工大学 信息工程与自动化学院,昆明 650500)2(云南警官学院 信息网络安全学院,昆明 650223)3(提升政府治理能力大数据应用技术国家工程实验室,贵阳 550000)4(中电科大数据研究院有限公司,贵阳 550000)
1 引 言
在使用模型驱动软件开发(Model Driven Development,MDD)[1]方法进行实时系统的软件开发过程中,一般要建立实时领域内抽象的源模型,即平台无关模型(Platform Independent Model,PIM),然后通过模型映射技术将平台无关源模型转换到平台相关的目标模型(Platform Specific Model,PSM)[2],即可执行的实时软件源代码.在PIM到PSM的模型转换过程中,由于源模型与目标模型在模型表示形式、语法、语义等方面差距很大,因此如何实现模型的映射具有较大的技术难度,也是研究者们一直致力于解决的主要核心问题[3-6].尤其是实时系统的语义较为复杂,且无论在PIM还是在PSM中,都没有办法具体描述出来,在从源模型到目标模型的转换过程中,如何实现语义约束性,以达到模型映射过程中的语义一致性是保证实时系统模型驱动方法有效性的关键问题.
很多学者对如何保证模型转换过程的映射准确性和完整性问题展开了研究,Freund M等人提出了一种通用转换算法,该算法能够通过分析目标元模型的结构来执行未指定此类扩展信息的映射,使模型转换更精确[7].Gang W等人对计算独立模型和平台无关模型中的元本体进行了抽象,并基于本体映射技术的相似性,建立了它们之间的本体映射关系[8].侯金奎等人为构件式软件模型的描述及转换过程构建了一种统一的语义描述框架,解决模型驱动软件开发过程中语义特性的描述和验证等方面的问题[9].
在采用模型驱动方法进行实时系统设计的过程中,由于实时语义知识更加丰富、复杂,并且各种行为关系更加错综繁琐,因此对其模型映射过程中的语义准确性要求更加严格.这也为实时语义的构建技术提出了更高的要求.近年来知识图谱(Knowledge Graph)技术的出现为语义的描述提供了一种新的解决方案.知识图谱以语义网为基础,是一种图谱组织形式,通过语义关联把各种实体关联起来,知识图谱把结构化、非结构化的数据通过数据抽取、融合在一起,体现了数据治理、语义连接的思想[10-12].知识图谱通过图论和可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系[13],现已广泛应用于各个领域的知识体系构建及可视化[14-16].齐斌等人提取信息熵和模糊集中的知识,构建了各行业领域系统化的知识库,提出了一种基于知识图谱的信息选择技术[17].Marino K用知识图谱的形式研究了结构化先验知识的使用,并表明使用这些知识可以提高图像分类的性能[18].Hakkanitur D等人提出从语义网提取的语义知识图谱用于无监督训练模型的方法[19].李文鹏等人面向开源软件项目,构建了可以对软件知识进行检索的软件知识图谱[20].
综上所述,本文以保证实时系统语义约束性为目标,采用知识图谱技术,构建面向实时领域的语义体系.实时语义知识图谱由实时语义体系的本体语言作为实体,并通过实时语义模型中本体语言之间的关系连接构成图谱.本文首先提取实时领域中语义模型的本体知识,构建实时语义知识体系,以实时语义知识体系作为框架构建实时语义知识图谱.实时语义知识图谱通过对实时语义知识中实体及其关联的定义,实现了实时领域的语义约束.通过在模型驱动设计方法中的具体事例验证证明了该方法的有效性.本文方法不但可以完整准确地描述实时领域隐含的语义约束,还可以在社会过程中保证其符合语义约束,为后续模型映射过程中的语义一致性的实现具有重要的意义.
2 实时领域的知识体系及schema构建
本体(ontology)是对某对特定领域内知识的概念及其相互之间关系的形式化表达[21],是用于描述知识的有力工具.实时领域本体体系是指对并行任务交互机制的实时系统领域内完整本体知识的识别和描述,是对实时领域系统内概念和关系的汇总.本体是使用抽象的概念集合来描述实时领域内的一切事物的共有特征,然后分析这些概念间存在的一定的关系集合,两个集合共同构成实时领域内一个具有层级、属性和特征的体系结构.知识图谱则在这些概念和关系的基础上增加了更多的信息,为知识的推理奠定了基础,而本体描述了知识图谱的数据模式,为实时领域知识图谱构建schema的过程相当于为实时领域内的知识建立本体体系的过程.
2.1 实时领域特征及语义约束
通过对典型实时系统中同步与通信机制的研究和归纳,可以得到实时系统的运行机制是多个任务并行,其基本的功能单元是任务,主要关系是多个任务之间的协调合作过程中存在的实时通信和同步,即中断、邮箱、信号量等和任务的交互,任务之间以及任务与通信和同步服务单元之间的协调动作是实时系统正常运行的基本保证[22,23].
在实时领域内,其语义体系通常包括定义、规则与资源等不同层次,构建实时领域本体体系的目标是为了保证在模型转换过程中保持语义一致性及严格的语义约束.语义一致性可以描述如下:若语言A的模型定义为Model_A,Model_A模型的语义体系为Sa;语言B的模型定义为Model_B,Model_B模型的语义体系为Sb,若Sa⊆Sb,那么称在模型转换映射过程中(Model_A,Model_B)保持了语义一致.
2.2 实时领域的概念本体
实时系统领域的概念本体可分为对象本体、行为本体和算法本体三类.
在实时控制系统中,对象本体={任务,中断,邮箱,事件,资源,警报,信号量}.根据对象本体是否具有发出行为的能力分为进程对象和目标对象两种.其中具有发出行为能力的对象本体称为进程对象,进程对象={任务,中断,事件,警报};具有被动接受行为的对象本体称为目标本体,目标对象={邮箱,资源,信号量}.
对象本体之间的交互行为称为行为本体,行为本体={任务类行为,资源类行为,中断类行为,报警类行为,信号类型行为,事件类行为}.另有创建行为和删除行为可以通用,所以不对其进行分类.在行为本体中,其中任务类行为={延迟,悬挂,恢复,锁起,解锁,访问};资源类行为={读,写,释放};中断类行为={等待,激活,有效,无效};报警类行为={悬挂,恢复,激活};信号类行为={发送,等待};事件类行为={发信号,清楚,等待};创建类行为={创建};删除类行为={删除}.
程序算法本体为在实时系统设计中的程序算法,任务可以对算法进行选择.算法={if-then,while,repeat}.
2.3 实时领域的关系本体
上述概念之间均存在各种关系,在实时领域知识体系中,这些关系用来表示在多任务领域中各概念本体之间的相互作用,这些关系错综复杂,具有方向性,每一个关系的发生具有明确的关联定义,且不可替代和混淆.本文用有向图描述部分本体之间关系的约束性,如图1所示.
如图1所示,本体间通过对关系的定义具有了严格的方向性,图中包含部分对象本体,行为本体,算法本体,所属类别与两者间关系.例如,“任务”可以发出“删除”的行为,也可以发出“悬挂”的行为,“任务”与两者间关系均为“可以发出”,但是“资源”和“警报”只可以作为“删除”与“悬挂”的对象,对应关系为“可以删除”与“可以悬挂”;“任务”可以发出“恢复”的行为,关系为“可以发出”,恢复可以作用于任务,但因关系方向改变,关系发生变化,不可原路返回,需另做一条关系,关系为“作用于”;“任务”具有“if-then”,表示“任务”与“if-then”之间关系为“具有”.同时在实时本体体系中,本体具有自身属性,如图1中所属类别.
图1 概念本体和关系本体的有向图模型Fig.1 Directed graph model of conceptual ontology and relational ontology
综上所述,通过对实时领域知识概念和关系的分析与总结,得到了实时语义知识图谱的schema,在这些工作的基础上,我们将开始构建实时系统语义的知识图谱.
3 实时语义知识图谱的实体及关系构建
3.1 实时系统语义知识图谱中实体的构建
实时语义知识图谱中,每个节点对应一个实时语义知识实体,两个节点的边对应它们之间的语义关联.本文将实时语义中的对象本体,行为本体与算法本体提取为实时语义知识实体,具体内容如图2.
智能诊断软件方案通过有效的引导式专家故障排除软件和机器学习能力,可提升一次性修复率,避免错误诊断和过度维修,与此同时,车载健康监控和云端预测性诊断工具可在故障问题发生前提供预警,并从实际案例中汲取经验及规则,改进未来的车辆健康性能。
图2 实时语义知识Fig.2 Real-time semantic knowledge
3.2 实时系统语义知识图谱中关系的构建
实时语义知识图谱的边表达了节点之间的语义关联,这些关联包含了节点之间的特定关系,这些关系根据实时建模系统中本体之间的关系所构建.在语义三元组<实体,关系,实体>中,根据实体与实体之间特定的关联.我们构建关系集={CAN,Work on,HAS},在三元组<实体,属性,属性值>中,构建类型集={Name,Class}.具体信息如表1所示.表1中括号内表达的是两者之间的对应关系及所属类别,即由左至右对应,关系方向与类别方向也为由左至右,例如 CAN中包含<任务,CAN,延迟>代表任务实体与延迟实体间关系为CAN,关系方向为任务至延迟.Class中<读,所属类别,资源类行为>代表读实体所属资源类行为.
表1 实时语义知识图谱部分实体之间关系表
Table 1 Real-time semantic knowledge map part of the relationship between entities
关系<实体,关系,实体>CAN<任务,CAN,延迟>;<任务,CAN,悬挂>;<任务,CAN,恢复>;<任务,CAN,锁起>;<任务,CAN,解锁>;<任务,CAN,读>;<任务,CAN,无效>;<任务,CAN,悬挂>,<任务,CAN,等待>;Work on<读,Work on,资源>;<激活,Work on,中断>;<恢复,Work on,报警>;<创建,Work on,中断>;<创建,Work on,资源>;<创建,Work on,信号量>;<删除,Work on,事件>;<删除,Work on,资源>;<延迟,Work on,任务>;<恢复,Work on,任务>;<访问,Work on,任务>HAS<任务,HAS,if-then>;<任务,HAS,while>;<任务,HAS,repeat>属性<实体,属性,属性值>Name<任务,Name,Task1>;<任务,Name,MainTask>;<事件,Name,Event1>;<资源,Name,Resource1>;<邮箱,Name,Mailbox1>Class<读,Class,资源类行为>;<读,Class,资源类行为>;<写,Class,资源类行为>;<无效,Class,中断类行为>;<悬挂,Class,报警类行为>;<删除,Class,删除行为>;<创建,Class,创建行为>;
3.3 基于Neo4j和cypher的实时语义知识图谱实现
Neo4j[25]是由java语言实现的图数据库,将数据以图的数据结构进行存储和管理,并且能高效准确的表示不同种类的数据,是基于属性图模型的数据库.本文用Neo4j对实时语义知识图谱构建进行储存,便于知识图谱的绘制与查询.我们将提取到的实体和实体关系存入Neo4j图数据库中.cypher语言[26]是一种声明式的图查询语言,可以用于高效查询和更新图数据库.对所查询的关系进行检索.我们利用Neo4j中提供的cypher查询语言对实时领域知识图谱的知识进行查询.
图3 实时语义知识图谱构建流程图Fig.3 Real-time semantic knowledge graph construction flow chart
在构建知识图谱中由于行为本体间有重复字符比如中断类行为中的“等待”与信号类行为中的“等待”字符相同,在构建知识图谱中无法形成唯一约束,所以我们在构建时候相同字符后加上后缀,比如中断类行为中等待行为记为“等待.中断”;信号类行为中等待行为记为“等待.信号”.基于Neo4j构建的实时语义知识图谱中部分截图效果展示如图4所示.图中呈现了实时领域内的知识及其之间的关联性与约束性,关系清晰明确且具有严格的方向性.
图4 实时知识图谱展现图Fig.4 Real-time knowledge graph
图5 实时领域知识图谱中的语义约束Fig.5 Semantic restriction in Real-time knowledge graph
4 基于知识图谱的语义约束实现
在实时领域知识图谱中,完整描述了各实体及其关系之间的关联,由于在构建过程中,对这些关联的约束给出了明确的定义,因此,所有实体与所有关系之间的关联即描述了实时领域的语义约束.如图5(a)所示,图中描述了一个与“邮箱”节点的知识及关系描述,从图中可以看出实时系统的语义约束如下:“邮箱”可以与“创建”与“删除”两种行为有关联,且“创建”与“删除”两种行为只能有“任务”发出;“邮箱”所属目标对象类别,目标对象同时还包含“资源”与“信号量”两种.而图5(b)则给出了与“资源”节点有直接关联的所有实体.
实时领域知识图谱清晰表达了节点之间的关系有无以及关系之间的方向性,严格地给出了对象及行为之间的语义约束.在实时语义知识图谱中,可以采用cypher语言查询并获取各节点之间的关系和关联情况,因此在使用模型驱动方法进行实时系统设计时,根据所获取的关联情况的有无和方向即可完成实时领域中的语义约束.
以图6为例,我们在采用模型驱动设计方法时,有任务main、资源resource1和邮箱mailbox1三个对象本体,分别对应于知识图谱中任务、资源和邮箱三个实体,这里要使用模型驱动的方法对这三个模型之间进行进一步的具体行为关联.而由于属性不同,其背后的语义约束较为复杂.
图6 任务、资源和邮箱的模型图Fig.6 Model graph of tasks,resources,and mailboxes
在设计过程中,在使用发送到邮箱命令时,如果误将其指向资源本体resource1,使用上文构建的实时语义知识图谱,可通过cypher语言查询到与“资源”节点有直接关联的节点,如图5(b)所示.可以看到“资源”所属类别,以及与“资源”节点直接关联的所有行为本体,在这里,并没有“发送到邮箱”这个行为,因此在语义上判别出尽管资源是一个目标对象,但是当前这个动作是不能与之发生关联的,因此尽管在语法上没有错误,但是识别出这是一个语义错误,报错并停止执行,如图7(a)所示.
图7 “资源”语义约束及建模实现Fig.7 "resource" semantic constraints and modeling implementation
而当“发送到邮箱”这个行为作用到邮箱mailbox1时,通过使用实时语义知识图谱查询到与“邮箱”节点有直接关联的节点,如图5(a)所示.因此验证了符合语义规则,可以完成当前动作,得到的结果如图7(b)所示.
由上述例子可见,实时语义知识图谱包含了所有实时领域知识内的知识及知识之间的语义约束,可通过可视化图谱方式呈现,不仅具体清晰,还可以通过cypher语言对节点之间的关联性进行查询,检验当前的语义是否符合实时语义的规定,从而实现了对实时领域语义严格的约束.
为了进一步验证使用知识图谱后实时系统语义约束性的效果,我们以基于模型驱动方法的实时系统设计平台为实验环境,针对各种设计中存在的语义映射问题进行了多次测试实验.使用原有的语义约束方法[27]和基于知识图谱的语义约束方法,分别对语义约束的准确度、误识别度和漏识别度三方面进行了统计,结果显示,无论是对象类语义、行为类语义还是算法类语义,在以上三种指标上都得到了明显的改善,具体的统计结果如表2所示.
表2 指标对比
Table 2 Index comparison
准确率误识别率漏识别率对象类原方法84%7%9%语义本文方法92%4%4%行为类原方法78%8%14%语义本文方法90%6%4%算法类原方法81%13%6%语义本文方法91%6%3%
由实验结果可见,基于知识图谱的实时语义约束方法能够更好地保证在模型映射过程中语义的保持和映射,尤其对于相对复杂的行为类语义有更好的效果.
5 总结与展望
针对在采用于模型驱动实时系统设计方法过程中语义约束难以实现的问题,本文构建了实时领域内的知识图谱,重点针对该领域内语义关系错综复杂的特点,首先完成了对实时领域内知识本体及各种关系的识别和提取,构造了基于知识实体的本体属性模型,并在此基础上采用图数据库技术实现了实时语义体系的知识图谱.
本文提取了实时语义中的对象本体与关系本体之间的相关性作为构建实时语义知识图谱的主要框架,分别通过实体,属性,关联的设置实现实时语义知识图谱的构建.所得到的实时语义知识图谱的可视化能够清晰具体地表达实时语义体系中各个实体与关系之间的关联性,同时完成了严格的语义定义.具体的例子和实验统计结果表明,将该知识图谱应用于模型驱动的实时系统设计过程中时,通过与知识图谱的实时交互,可以检验当前设计动作是否符合语义约束,并且明显改善了模型驱动设计过程中隐含的语义约束性能指标.
采用本文方法不但可以实现不同建模本体之间交互的语义约束,还可以为进一步实现实时语义的关联、检索和推理提供基础,从而为实时系统模型转换过程中的语义一致性问题提供更有效的解决方案.下一步将结合知识图谱的推理算法展开研究,以继续完善和提高实时语义一致性的性能.