1.本发明涉及协议转换技术领域,尤其涉及一种基于知识图谱的协议转换方法。
背景技术:2.知识图谱是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系。其基本组成单位是“实体
‑
关系
‑
实体”三元组,以及实体及其相关属性
‑
值对,实体间通过关系相互联结,构成网状的知识结构。知识图谱本身是一个具有属性的实体通过关系链接而成的网状知识库。从图的角度来看,知识图谱在本质上是一种概念网络,其中的节点表示物理世界的实体(或概念),而实体间的各种语义关系则构成网络中的边。
3.本体是描述概念及概念间关系的概念模型,通过概念之间的关系来描述概念的语义,其目标是捕获相关的领域的知识,提供对该领域知识的共同理解。
4.通信协议是指双方完成通信或服务必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中的数据顺利交换。通信协议主要由语法、语义以及定时规则(时序)等要素组成。
5.随着计算机网络的不断发展,出现了各种异构网络。异构网络之间进行通信需要进行协议转换。目前,现有技术中的协议转换方法包括:针对特定的两种协议实现一对一的协议转换方法;或将有限个一对一的协议转换方法结合,作为通用的协议转换方法。这些方法普遍存在局限性,即当有新的协议加入时需要对新的协议转换方法进行设计与实现,拓展性不佳,造成资源浪费与开发效率低下。
技术实现要素:6.本发明的实施例提供了一种基于知识图谱的协议转换方法,以实现有效地进行协议转换。
7.为了实现上述目的,本发明采取了如下技术方案。
8.一种基于知识图谱的协议转换方法,包括:
9.构建单个协议本体,根据协议本体与知识图谱间的映射关系得到单个协议本体的知识图谱,采用不同协议知识图谱间的映射策略连接多个不同协议本体的知识图谱,得到协议转换知识图谱;
10.当发生协议转换请求时,基于所述协议转换知识图谱调用协议转换通用算法实现协议间的转换。
11.优选地,所述的构建单个协议本体包括:确定协议本体的领域和构建目的,列举协议本体中的概念并划分概念层次,定义概念的属性和属性值约束,使用本体描述语言进行协议本体建模,对建模结果进行本体评估,将通过评估的协议本体加入本体库中。
12.优选地,所述的根据协议本体与知识图谱间的映射关系得到单个协议本体的知识图谱,包括:
13.根据本体库中存储的指定协议本体的概念构建本体概念树和相应的协议实例,设
置协议实例对应的属性,使用三元组表达协议实例间的关联关系,将所述本体概念树中的顶层概念作为根节点,将所述协议实例作为叶子节点,将本体概念树结构映射到知识图谱中,得到知识图谱概念关系图,本体的实例及其语义关系映射到知识图谱中,得到知识图谱实体关系图,将该知识图谱概念关系图和实体关系图作为所述指定协议本体的知识图谱。
14.优选地,所述的采用不同协议知识图谱间的映射策略连接多个不同协议本体的知识图谱,得到协议转换知识图谱,包括:
15.采用不同知识图谱间的映射策略连接不同协议知识图谱,得到协议转换知识图谱,所述映射策略包括将具有相同或相似功能的协议包头属性划分为一组,同组的包头属性存在直接映射或间接映射关系,所述直接映射表示包头属性存在直接对应关系,从语义关系集合中选择已有语义关系或创建新语义关系并连接节点;所述间接映射表示包头属性之间存在联系且需要经过特殊处理的对应关系。
16.优选地,所述的当发生协议转换请求时,基于所述协议转换知识图谱调用协议转换通用算法实现协议间的转换,包括:
17.当发生协议转换请求时,对原始数据进行解包,获得原始包头信息和负载数据,通过协议转换知识图谱中原协议与目标协议的映射实现包头映射,若目标协议头属性未完全映射,则对其余的包头属性补充缺省值,得到目标协议的包头;通过协议知识图谱得到原协议与目标协议的负载阈值并进行比较,若目标协议负载阈值小于原协议的负载阈值,对原数据切分处理,得到切分后的数据队列并存放在缓冲区中,将各个数据依次添加目标协议包头,得到目标协议的数据包并发送;否则,直接为原数据添加目标协议的包头,得到目标协议的数据包,从而实现协议间的转换。
18.由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过构建协议知识图谱能够实现一种通用的协议转换方法。并且该方法可通过扩展知识图谱的方法实现新的协议转换,解决了传统协议转换方法由于拓展性不佳,造成资源浪费与开发效率低下的问题。
19.本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
20.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1为本发明实施例提供的一种基于本体构建协议知识图谱的通用协议转换方法的实现原理图;
22.图2为本发明实施例提供的一种协议本体构建过程示意图;
23.图3为本发明实施例提供的一种本体概念树示意图;
24.图4为本发明实施例提供的一种语义关系集合示意图;
25.图5为本发明实施例提供的一种实例间关联关系示意图;
26.图6为本发明实施例提供的一种协议本体与知识图谱的映射示意图;
27.图7为本发明实施例提供的一种转换数据接收过程流程图;
28.图8为本发明实施例提供的一种协议转换通用算法流程图。
具体实施方式
29.下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
30.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
31.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
32.为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
33.本发明实施例提供的一种基于本体构建协议知识图谱的通用协议转换方法的实现原理图如图1所示,主要包括:协议转换知识图谱构建与通用协议转换方法设计。
34.所述协议转换知识图谱的构建,指构建用于提供协议转换所需的协议转换知识图谱。首先构建单个协议本体,根据协议本体与知识图谱间的映射关系得到单个协议本体的知识图谱,采用不同协议知识图谱间的映射策略以连接多个不同协议本体的知识图谱,从而得到协议转换知识图谱。
35.所述通用协议转换方法,用于实现协议转换,当发生协议转换请求时,基于协议转换知识图谱调用协议转换通用算法实现协议间的转换。
36.此方法主要应用于应用层协议转换。
37.所述构建协议转换知识图谱还包括:根据协议知识实现协议本体构建,实例化协议本体以及实现知识连接。
38.所述协议本体构建,即明确协议本体的领域和构建目的,列举协议本体中的概念并划分概念层次,定义概念的属性和属性值约束,使用本体描述语言进行协议本体建模,对建模结果进行本体评估,将通过评估的协议本体加入本体库中。
39.其中,所述本体库,用于保存协议本体,便于进行协议本体复用。
40.所述实例化协议本体,根据本体库中协议本体的概念,创建相应的协议实例并设置协议实例对应的属性。将协议实例间的关系以三元组的形式存储在图数据库中。
41.所述知识连接,即所描述的知识之间的关联关系、隶属关系以及相关关系等。
42.所述实现协议间转换还包括:根据协议转换请求内容调用协议转换通用算法。利
用协议转换通用算法通过协议转换知识图谱获取目标协议包头属性,根据协议转换知识图谱中原协议与目标协议的映射实现包头映射,若包头属性未完全映射,则对其余包头属性补充缺省值,从而得到目标协议的包头;通过负载阈值比较,判断是否对原数据进行切分处理。最后,为数据添加目标协议的包头,得到目标协议的数据包,从而实现协议间的转换。
43.本发明实施例提供的一种协议本体构建过程示意图如图2所示。首先确定协议对象,检查该协议对象是否在本体库中存在,若不存在则对该协议对象定义本体概念,确定本体概念间的层次关系,定义本体概念之间的语义关系;其次定义本体概念的属性,其中属性值需定义相关的约束,如数据类型、值范围等;其次选择适用的本体描述语言和建模工具构建协议本体,本体构建过程中考虑参考本体库中已有的本体或第三方相关本体进行本体复用;最后对构建完成的协议本体进行评估,检查该协议本体对该协议的概念及其关系是否描述正确、是否能够根据该本体概念构建对应的知识图谱、是否符合协议知识图谱间映射策略以及协议转换算法的需要,如果通过评估则将构建完成的本体概念加入本体库中,否则需重新确定协议本体的概念以及层次关系,重新进行本体构建。构建完成的本体包括概念树和语义关系集合两个部分。因为每个协议都有可能具有它特有的概念,所以每个协议本体都包括本体的概念树和语义关系集合。
44.根据本体库中存储的协议本体的概念构建本体概念树,概念树即本体概念层级结构,本体概念层级结构组成元素为树的节点,节点间联系用连线表示。本发明实施例提供的一种概念树的示意图如图3所示。其中,语义关系集合包括三元组关系集合、语义关系类型集合和语义关系方向集合。本发明实施例提供的一种语义关系集合示意图如图4所示。
45.协议本体实例化(instantiate the protocol ontology):按照协议本体中的概念创建相应的实例,设置实例对应的属性。使用三元组(subject,relation,object)表达实例间的关联关系,实例间关联关系示意图如图5所示。
46.协议转换知识图谱构建(build the knowledge graph of protocol translation):包括构建单个协议知识图谱和连接不同协议知识图谱。单个协议知识图谱包括概念关系图和实体关系图。其中,概念关系图即知识图谱概念层级结构,概念为树的节点,概念间语义关系用连线表示。
47.其中,实体关系图,实体作为图的节点,实体间语义关系用连线表示。
48.构建协议知识图谱的过程可以看作协议本体与知识图谱的映射。本发明实施例提供的一种协议本体与知识图谱的映射示意图如图6所示。一个协议本体有一个本体概念树,本体概念树中的节点为协议中的一些概念。本体概念树与知识图谱的概念关系图的映射为:顶层概念作为根节点,根据概念生成的实例为叶子节点,将概念树结构映射到知识图谱中,得到知识图谱概念关系图。本体实例化、语义关系集合与知识图谱实体关系图的映射为:本体的实例,即概念树叶子节点,及其语义关系映射到知识图谱中,得到知识图谱实体关系图。
49.连接不同协议知识图谱,采用不同协议知识图谱间的映射策略达到连接不同协议知识图谱,从而得到协议转换知识图谱的目的。
50.其中,一种不同知识图谱间的映射策略主要体现在不同协议包头之间的映射。建立两个不同协议的映射时,将相同或相似功能的包头属性划分为一组,同组的包头属性存在两种映射关系:直接映射或间接映射。其中,直接映射表示包头属性存在直接对应关系,
从语义关系集合中选择已有语义关系或创建新语义关系并连接节点;间接映射表示头属性之间存在联系且需要经过特殊处理的对应关系,其处理方式作为包头属性之间的中间节点,选择已有语义关系或创建新语义关系并连接所有节点,实现包头属性间的间接映射。
51.转换数据接收(receive data):本发明实施例提供的一种转换数据接收过程流程图如图7所示。根据中断信号判断数据来源,读取数据缓冲区获得数据并对数据进行校验,若校验通过,读取数据包并判断协议类型,进行下一步的协议转换,否则生成异常信息并结束转换。
52.通用协议转换(general protocol translation):当发生协议转换请求时,调用协议转换通用算法实现协议间的转换。
53.其中,本发明实施例提供的一种协议转换通用算法如图8所示,获取目标协议和原协议类型,对原始数据进行解包,获得原始包头信息和负载数据,分别对包头信息和负载数据进行处理:程序根据目标协议知识图谱获得相关包头属性,通过协议转换知识图谱中原协议与目标协议的映射实现包头映射,若目标协议头属性未完全映射,则对其余的头属性补充缺省值,从而得到目标协议的包头;程序通过协议知识图谱得到原协议与目标协议的负载阈值并进行比较,若目标协议负载阈值小于原协议的负载阈值,对原数据切分处理,得到切分后的数据队列并存放在缓冲区中,依次添加目标协议包头并发送,否则直接添加目标协议包头并发送。
54.本发明实施例提供的一种协议本体构建过程示意图如图2所示,包括如下的处理步骤:
55.第一步,确定协议对象,检查该协议本体是否在本体库中存在,若不存在则对该协议定义本体概念,确定概念间的层次关系,定义概念之间的语义关系;
56.第二步,定义概念的属性,其中属性值需定义相关的约束,如数据类型、值范围等;
57.第三步,选择适用的本体描述语言和建模工具构建协议本体,本体构建过程中考虑参考本体库中已有的本体或第三方相关本体进行本体复用;
58.第四步,对构建完成的协议本体进行评估,检查该协议本体对该协议的概念及其关系是否描述正确、是否能够根据该协议本体构建对应的知识图谱、是否符合协议知识图谱间映射策略以及协议转换算法的需要,以确定是否需要重新确定协议本体的概念以及层次关系,重新进行协议本体构建。最终得到包含概念树和语义关系集合的协议本体,并将构建完成的协议本体加入本体库。
59.进一步的,按照协议本体中的概念创建相应的实例,设置实例对应的属性。
60.进一步的,根据本体库中的协议本体以及协议本体实例构建协议知识图谱,协议本体与知识图谱的映射如图6所示。顶层概念作为根节点,根据概念生成的实例为叶子节点,将概念树结构映射到知识图谱中,得到知识图谱概念关系图;协议本体的实例及其语义关系映射到知识图谱中,得到知识图谱实体关系图。
61.进一步的,采用不同协议知识图谱间的映射策略连接不同协议知识图谱,从而得到协议转换知识图谱。
62.其中,建立两个不同协议的映射时,将相同或相似功能的包头属性划分为一组,同组的包头属性存在两种映射关系:直接映射或间接映射。直接映射表示包头属性存在直接对应关系,从语义关系集合中选择已有语义关系或创建新语义关系并连接节点;间接映射
表示包头属性之间存在联系且需要经过特殊处理的对应关系,其处理方式作为包头属性之间的中间节点,选择已有语义关系或创建新语义关系并连接所有节点,实现包头属性间的间接映射。
63.以http协议知识图谱与coap协议知识图谱间的连接为例。http响应码与coap响应码存在直接映射关系,可根据其功能连接对应的节点;由于http的媒体类型远多于coap的媒体类型,为避免协议转换知识图谱繁杂冗余,连接时需要经过特殊处理,属于间接映射关系,将http中具体的媒体类型归类,再统一映射到coap的某一种媒体类型,其中归类结果作为中间节点,连接所有节点从而实现媒体类型的间接映射。
64.进一步的,本发明实施例提供的一种转换数据接收过程如图7所示。第一步,程序等待接收中断信号,根据中断信号判断数据来源;
65.第二步,读取数据缓冲区获得数据;
66.第三步,对数据进行校验。若校验通过,读取数据包并判断协议类型,进行下一步的协议转换;否则生成异常信息并结束转换。
67.进一步的,当发生协议转换请求时,调用协议转换通用算法实现协议间的转换,转换过程如图8所示。第一步,指定目标协议类型,查询本体库是否存在该目标协议的本体,若不存在,输出本体库中无目标协议本体信息,否则进行第二步;
68.第二步,通过转换数据接收过程得到原协议类型,读取数据缓冲区并将读取到的数据包放入缓冲区a中;
69.第三步,对原始数据进行解包,获得原始包头信息和负载数据;
70.第四步,根据目标协议知识图谱获得相关包头属性,通过协议转换知识图谱中原协议与目标协议的映射实现包头映射,若目标协议头属性未完全映射,则对其余的头属性补充缺省值,从而得到目标协议的包头;
71.第五步,若目标协议负载阈值小于原协议的负载阈值,对原数据切分处理,得到切分后的数据队列并存放在缓冲区b中;
72.第六步,为数据队列中的数据依次添加目标协议包头并发送,或若目标协议负载阈值大于原协议的负载阈值,数据直接添加目标协议包头并发送。
73.其中,第四步和第五步可同时进行。
74.综上所述,本发明实施例提供了一种基于知识图谱的协议转换方法,通过构建基于本体的协议转换知识图谱实现通用协议转换,解决了传统协议转换方法由于拓展性不佳,造成资源浪费与开发效率低下的问题。
75.本发明实施例实现了基于本体构建协议知识图谱的通用协议转换方法;并且该方法可通过扩展知识图谱的方法实现新的协议转换,解决了传统协议转换方法由于拓展性不佳,造成资源浪费与开发效率低下的问题。
76.本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
77.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备
(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
78.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
79.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。