首页> 中国专利> 一种语意的结构化表示方法与将一个语意序列识别为一个语意的方法

一种语意的结构化表示方法与将一个语意序列识别为一个语意的方法

摘要

本发明公开了一种语意的结构化表示方法与将一个语意序列识别为一个语意的方法,将一个语意表示或定义为一组该语意与其它语意之间的关系,称其它语意为该语意的参考语意,一个语意对应于多个参考语意,参考语意也是语意;一个语意与其对应的每个参考语意之间,具有不同类型的固定关系;一个语意的准确含意,由其参考语意确定。本发明公开的语意的结构化表示方法,能对语意、语意的含意、以及语意之间的关联进行规范化地表示和记忆(即储存),这一语意结构提供了一个“坐标系统”,从其中任意一个语意开始定位到与其具有特定关联的其它语意,这一相关语意的索引或定位能力,是计算或推理得到新语意的技术基础,实现了人类智慧活动的一个基础功能。

著录项

  • 公开/公告号CN113204943A

    专利类型发明专利

  • 公开/公告日2021-08-03

    原文格式PDF

  • 申请/专利权人 杭州新范式生物医药科技有限公司;

    申请/专利号CN202110487373.6

  • 发明设计人 沈雪玲;

    申请日2021-05-05

  • 分类号G06F40/126(20200101);G06F40/30(20200101);G06N3/063(20060101);

  • 代理机构33212 杭州中成专利事务所有限公司;

  • 代理人李亦慈

  • 地址 310052 浙江省杭州市滨江区滨安路1180号1幢2号楼2层2125室

  • 入库时间 2023-06-19 12:05:39

说明书

技术领域

本发明涉及自然语言处理和人工智能领域,具体地说,是一种语意的结构化表示方法与将一个语意序列识别为一个语意的方法。

背景技术

目前,自然语言处理与强人工智能发展的一项技术瓶颈是缺乏规范的、结构化的方法,对语意、语意的含意、以及语意之间的关联进行表示。这项技术的缺位导致无法设计统一、高效的系统,对语意、语意的含意、以及语意之间的关联进行记忆或储存,并依据语意之间的关联推理得到新的语意。

在通过自然语言学习语意或理解语意的含意时,一个一般的形式是,将一个由语意组成的序列理解或识别为一个语意。在本发明中,将由语意组成的序列称为表意序列;将把一个表意序列理解或识别为一个语意的过程称为一个编码过程。每个语意均可以表示为其“代码”,本发明使用整数作为语意的代码。将表意序列识别为一个语意的编码过程需要一个“上下文环境”。例如,字符“二”、“进”、“制”、“十”、“0”、“1”均有其含意,即语意,对表意序列[“1”“0”]的理解,依赖其上下文环境:如上下文环境是二进制,则该表意序列应理解为数值2,如上下文环境是十进制,则该表意序列应理解为数值10;因此,同一表意序列在不同的上下文环境中,将被理解或识别为不同的语意。另一方面,一个对表意序列进行理解或识别的编码任务的上下文环境本身,也可表示为一个语意,例如,表意序列[“二”“进”“制”]可以理解为一个语意,该语意可以作为代表二进制的上下文环境;表意序列[“十”“进”“制”]可以理解为一个语意,该语意可以作为代表十进制的上下文环境。于是,一个语意,一个可以识别为该语意的表意序列,与识别(编码)过程的上下文环境之间,存在一个由多个语意组成的结构。目前仍缺乏一种技术可以对这一语意的结构进行规范化地表示。

此外,在一般情况下,由一个表意序列识别得到的语意与每个表意序列的组成语意均不相同;因此,当编码过程对新的表意序列与其上下文环境的组合进行编码时,需生成新的语意。目前广泛应用的序列编码技术一般以压缩或纠错为目的。这些技术基于固定数目的符号(即语意),原序列与编码后的序列使用同样的一组符号表示。压缩技术的编码目标是用更短的序列表示原序列。纠错技术的编码目标是将原序列映射为更长的编码后的序列,使得任意可能的原序列的编码后的序列间存在多个位置的差异,因此在传输编码后序列的过程中,如果仅发生了少量位置的传输错误,系统可以发现或纠正这些错误。不论是压缩编码技术还是纠错编码技术,在编码的过程中不会创建新的符号(即不会创建新的语意)。因此,现有的序列编码技术不适用于将一个语意的序列理解或识别为一个语意的应用。

由于强人工智能系统需要具备类似于人类的依据语意序列进行语意的学习、理解或识别的能力,本发明公开的语意的结构化表示方法与将一个语意序列识别为一个语意的方法,是一项构建强人工智能系统的使能技术。

发明内容

为解决现有技术方案中的不足,本发明提供了一种语意的结构化表示方法与将一个语意序列识别为一个语意的方法,本发明是通过以下技术方案实现的:

本发明公开了一种语意的结构化表示方法,将一个语意表示或定义为一组该语意与其它语意之间的关系。

作为进一步地改进,所述的一种语意的结构化表示方法,将一个语意表示或定义为一组该语意与其它语意之间的关系,称其它语意为该语意的参考语意,并且:

1)一个语意对应于多个参考语意,参考语意也是语意;

2)一个语意与其对应的每个参考语意之间,具有不同类型的固定关系;

3)一个语意的准确含意,由其参考语意确定;

4)由上述1)-3)点,一个语意和与其具有固定关系的参考语意一起,形成一个语意结构,所述的语意结构同时表示了一个语意的准确含意和该语意与相关语意之间的关联。

作为进一步的改进,用一个语意代码表示一个语意,语意代码为一个整数。

作为进一步地改进,所述的语意与其参考语意之间有2种类型的固定关系。

作为进一步地改进,所述的2种类型的固定关系为“一一”关系,和“一多”关系;一个语意通过“一一”关系对应一个语意,同时通过“一多”关系对应一个或多个语意;将一个语意通过“一一”关系对应的语意称为该语意的一一语意;将一个语意通过“一多”关系对应的语意称为该语意的一多语意,一个语意的一一语意只有一个,一个语意的一多语意有一个或多个。

作为进一步地改进,在表示一个语意与其对应的一一语意和一多语意的关系时,使用一个图结构,即所述的语意结构对应于一个图结构。

作为进一步地改进,所述的图结构由节点和边组成;一条边有方向地连接两个节点,分别称为边的起点节点和终点节点,图结构中的节点和边均由语意代码标记;对于图结构的操作,仅限于在已知记为A和B的两个语意代码时,首先找到A标记的节点,再找到从A标记的节点出发的标记为B的边,然后得到该边的终点节点的标记,即语意代码;以及在一些无法找到相应节点或边的情况下,创建相应的节点或边,这一图结构及其操作的特征可保证基于该图结构的软件算法可由专门设计的硬件计算设备完成。

作为进一步地改进,所述的软件算法可由专门设计的硬件计算设备完成,具体实现为由专门设计的神经网络计算硬件完成,该计算硬件设备的设计和操作与图的结构和操作相对应,对应关系的特征是:一个语意代码(图中的节点或边的标记)对应一个硬件神经元(即硬件计算单元);即每个硬件神经元可以通过一个语意代码寻址并激活;计算设备包含大量的备用硬件神经元,每个备用硬件神经元对应一个独一无二的可用作语意代码的代码作为其地址,备用硬件神经元按需启用。

作为进一步地改进,所述的图结构的操作的基本模式对应的计算设备操作是,通过两个已激活的代码为A和B的硬件神经元找到第三个可被激活的硬件神经元,并在一定条件下激活该硬件神经元;在图操作需要生成新的语意代码标记的节点或边时,启用备用的硬件神经元以“生成新的语意代码”,并将新启用的硬件神元按图操作的逻辑做相应连接;一般的情况下,一个硬件神经元需要在两个它的输入硬件神经元处于激活状态时,才能够被激活;若图中存在一条边的标记与其起点节点的标记相同,则以该边的终点节点标记为地址的硬件神经元可以仅在以该边的起点节点标记为地址的一个硬件神经元处于激活状态时被激活,其它计算设备的功能在上述对应于图操作的功能的基础上相应设计。

具体地,是在已知两个语意代码(记为A和B)时,首先找到A标记的节点,再找到从A标记的节点出发的标记为B的边,然后得到该边的终点节点的标记,即语意代码;以及在一些无法找到相应节点或边的情况下,创建相应的节点或边;这一图操作模式对应的计算设备操作是,通过两个已激活的硬件神经元(它们的语意代码或地址为A和B)找到第三个可被激活的硬件神经元,并获取其地址(即语意代码);在图操作需要生成新的语意代码标记的节点或边时,启用备用的硬件神经元以“生成新的语意代码”,并将新启用的硬件神元按图操作的逻辑(图中的边)做相应连接(即如果需要通过地址为A和B的硬件神经元激活该神经元,则地址为A和B的两个硬件神经元应成为该神经元的输入);一般的情况下,一个硬件神经元需要两个它的输入硬件神经元处于激活状态时,才能够被激活;如果图中存在一条边的标记与其起点节点的标记相同,则以该边的终点节点标记(语意代码)为地址的硬件神经元,可以仅在以该边的起点节点标记(语意代码)为地址的一个硬件神经元处于激活状态时被激活,其它计算设备的功能在上述对应于图操作的功能的基础上相应设计。

作为进一步地改进,所述的图结构具有以下特征:

1)图中的边代表语意之间的一种特定形式的关联;

2)以一种特殊形式的边表示一个语意到它的一一语意之间的关联;

3)以一种特殊形式的边表示一个语意到它的一多语意之间的关联。

作为进一步地改进,所述的图结构具有如下规范;为说明这些规范,考虑图中的一条边,该边代表了记其语意代码为A,B,C的三个语意之间的一种特定形式的关联,若该边的起点节点标记为A,该边的标记为B,该边的终点节点标记为C,则记该边为A--B->C,这时:

1)一条边A--B->C表示:

i.C的一一语意是B;

ii.所有可能存在的以B为一一语意的语意构成一个集合,存在一个值域为该集合的映射,C是A在该映射下的像;

2)以一种特殊形式的边V---1->U表示V的一一语意是U;

3)以一种特殊形式的边X---2->Y表示X的一多语意是Y;

4)由上述规范1)、2)可知,当存在边T--U->V时,必存在边V---1->U。

作为进一步地改进,对所述的图结构的规范做一个补充:当存在边V---1->U时,必然存在边U--U->V;这一补充使得通过前述的图操作方式可以找到以某特定语意为一一语意的语意构成的集合。

作为进一步地改进,对所述的图结构的规范可以做如下简化:

1)不必在图中表示以“-1”、“-2”为标记的节点,以及以这两个节点为起点节点或终点节点的边;其原因是,“-1”代表所有可作为“一一语意”的语意的共同特征,“-2”代表所有可作为“一多语意”的语意的共同特征,“-1”和“-2”不是通常的实际应用中所关心的语意,且它们与几乎所有语意都相关,如在图中表示与这两个节点相关的边,将使得图中包含数量巨大的不会被使用的边,严重降低计算效率;

2)对于在实际应用中无需使用的边均可以不在图中表示;例如,在实际应用中无需通过一个语意检索所有将其作为一一语意的语意,则前述图结构的补充规范(当存在边“V---1->U”时,必然存在边“U--U->V”)可以不执行(即不在图中表示相应的边);再如,若依据实际应用的逻辑,某边永远不会在前述的图操作(基于一个节点和一条边找到一个节点)中被使用,则该边可以不在图中表示。

本发明还公开了一种利用语意的结构化表示方法将一个语意序列识别为一个语意的方法,使用如下的识别模型:

1)语意是对一个表意序列的理解,表意序列为由语意组成的序列,即一个语意代表了一个表意序列,以下的说法等价:一个语意代表了一个表意序列;该语意编码了这一表意序列;这一表意序列的编码是该语意;这一表意序列理解为该语意;这一表意序列识别为该语意;

2)对表意序列的理解,即编码的过程需要一个上下文环境,所述的上下文环境表示为一个语意,在不同的上下文环境中,同一个表意序列将编码为不同的语意,在相同的上下文环境中,同一个表意序列总是编码为相同的语意;

3)所述的将一个语意序列识别为一个语意的方法,利用语意的结构化表示方法,记忆所有的编码任务及其结果,包括表意序列、上下文环境、编码结果,并在未来对同一个表意序列在同一上下文环境中编码时,基于记忆的语意关联,找到此前执行过的相同的编码任务的结果并返回,当执行新的编码任务,即该任务的表意序列和上下文环境至少有一个与此前的编码任务不同时,返回一个新的语意,并结构化地记忆这一编码任务及其结果。

作为进一步地改进,对所述图结构的规范作进一步补充:图结构中存在一些由“物理”语意的代码标记的节点,与这些节点关联的指示某个“物理”语意的一一语意与一多语意的边,不必在图中表示,“物理”语意指反映编码系统外部世界状态的语意;“物理”语意可由编码系统的交互界面感知,或由编码系统的交互界面反馈至外部世界。例如,对于一个由Java语言编写的编码系统而言,所有曾作为该系统的输入的不同Java对象实例均对应于不同的“物理”语意,系统的输出则是语意的代码或“物理”语意对应的Java对象实例,或由它们组成的序列。

作为进一步地改进,对所述图结构的规范作进一步补充:在图中定义一个特殊的“物理”语意,代表一个“空序列”(即长度为0的表意序列);在下面的说明中,记“空序列”的语意代码为“0”;“空序列”可以作为一个语意的一一语意;当“空序列”被用作一个编码任务的上下文环境时,它代表一个不提供任何信息的上下文环境。

作为进一步地改进,记一个编码任务的表意序列为[A

作为进一步地改进,所述的得到一个能还原出表意序列[A

作为进一步地改进,所述的得到一个能还原出序列[A

1)该表意序列的最短后缀序列为“空序列”,其长度为0,其语意代码为“0”;

2)若可还原出该表意序列的长度为L的后缀序列的语意的代码为J,则可根据J和表意序列倒数第(L+1)位置的语意代码(记为B),得到可还原出该表意序列的长度为(L+1)的后缀序列的语意的代码,其方法是:找到由B标记的节点,判断是否存在一条标记为J的边从标记为B的节点出发连接到另一个节点;若存在该边,则获得该边的终点节点的标记(记为I),I即为可还原出该表意序列的长度为(L+1)的后缀序列的语意的代码;若不存在该边,则创建一个新的语意以及其代码(记为I),并在图中创建一个标记为I的节点,创建一条标记为J的边从标记为B的节点出发连接到标记为I的节点,创建一条标记为“-1”的边从标记为I的节点出发连接到标记为J的节点,创建一条标记为“-2”的边从标记为I的节点出发连接到标记为B的节点,创建一条标记为J的边从标记为J的节点出发连接到标记为I的节点,这时,I即为可还原出该表意序列的长度为(L+1)的后缀序列的语意的代码;

3)基于上述规则1)和2),可不断延伸后缀序列的长度,最后获得可以还原出完整表意序列[A

作为进一步地改进,所述的方法具有设置两个语意具有相同含意的功能,记需要设置具有相同含意的两个语意的语意代码为A、B,设置的方法是:若两个语意的一一语意相同,则合并两个语意代码,记保留的语意代码为A,则:在所述的图结构中,找到由B标记的节点出发或到达B标记的节点的边,将它们改为由A标记的节点出发或者到达A标记的节点,然后删除B标记的节点,再将标记为B的边更新为由A标记,最后去除冗余的边(起点节点标记、边标记、终点节点标记均相同的边仅保留一条);若两个语意的一一语意不相同,则确认存在或创建一条以A的一一语意的语意代码标记的边,从B标记的节点连接到A标记的节点,再确认存在或创建一条以B的一一语意的语意代码为标记的边,从A标记的节点出发连接到B标记的节点。

作为进一步地改进,所述的方法具有从一个语意出发,查询与其具有相同含意但一一语意的不同的另一个或一组语意的功能,记出发语意的代码为A,该功能查询是否存在另一个或一组语意,记其语意代码为C1,…,Cn,使得C1,…,Cn的一一语意是代码为B的语意,且代码为C1,…,Cn的语意与代码为A的语意具有相同的含意,查询的方法是:首先在所述的图结构中,找到标记为A的节点,再判断是否存在一条或一组标记为B的边从A标记的节点出发连接到另一个或一组节点,若该条或该组边存在,则该条或该组边的终点节点的标记即为C1,…,Cn;如该条或该组边不存在,则尚不存在任何一个一一语意是B的语意,它与A具有相同的含意。

作为进一步地改进,所述的方法具有获得一个代码为A的语意所编码的表意序列的功能,该功能的实现方法是:

1)一个代码为A的语意能编码一个表意序列或一组含意相同的表意序列;在所述的图结构中,找到标记为A的节点,找到一条或一组标记为“-2”的边从标记为A的节点出发连接到另一个或一组节点,记该(组)节点的标记为S1,S2,…,Sn,其中的每一个Si,即为所述的可还原出由A编码的一个表意序列的语意的代码;代码为Si的语意的一多语意的代码,即为代码为A的语意所编码的一个表意序列的第1个位置上的语意的代码(该位置上的语意代码为一个或多个,多个时表示该位置是一个可互换的语意的集合);

2)当已知“某个代码为I的语意的一多语意的代码,即为代码为A的语意所编码的一个表意序列的第L个位置上的语意的代码”时,能得到代码为A的语意所编码的这个表意序列的第L个位置上的语意的代码,得到的方法是,首先找到I标记的节点,再找到一条或一组标记为“-2”的边从标记为I的节点出发连接到另一个或多个节点,这一个或多个节点的标记即为代码为A的语意所编码的表意序列的第L个位置上的语意代码;

3)当已知“某个代码为I的语意的一多语意的代码,即为代码为A的语意所编码的一个表意序列的第L个位置上的语意的代码”时,能得到一个代码记为J的语意,使得“代码为J的语意的一多语意的代码,即为代码为A的语意所编码的这个表意序列的第(L+1)个位置上的语意的代码”,得到的方法是,首先找到I标记的节点,再找到一条标记为“-1”的边从标记为I的节点出发连接到另一节点,该节点的标记即为J;若J为语意代码“0”,则代码为A的语意所编码的表意序列具有总长度L,即不存在第(L+1)个位置上的语意代码;

4)基于上述规则2)和3),可按从前到后的顺序依次获得代码为A的语意所编码的一个表意序列的每个位置上的语意代码(每个位置上有一个或多个语意代码,多个时表示该位置是一个可互换的语意的集合),最后获得完整的代码为A的语意所编码的一个表意序列;

5)针对步骤1)中的每一个Si重复上述步骤2)-4),得到一个代码为A的语意所编码的全部表意序列。

本发明的有益效果是:

1)本发明公开的语意的结构化表示方法,可以对语意、语意的含意、以及语意之间的关联进行规范化地表示和记忆(即储存);这一语意结构提供了一个“坐标系统”,可以从其中任意一个语意开始定位到与其具有特定关联的其它语意;这一相关语意的索引或定位能力,是计算或推理得到新语意的技术基础;

2)本发明公开的编码方法实现了人类智慧活动的一个基础功能,即将一个语意组成的序列理解为一个语意(或概念,概念即语意),并且建立该语意与其它语意之间的关联;这一方法是实现自然语言理解与强人工智能的一项使能技术;

3)本发明公开的编码方法可以在编码时创建新语意,这一特性使得利用一个语意表述任意复杂度的语意序列成为可能,即本发明公开的编码方法可实现人类智慧活动中常见的“一念万言”;

4)本发明公开的编码方法可以使用软件实现或使用专门设计的硬件系统实现。

附图说明

图1是本发明的基于图结构的语意与语意之间的关联的表示方法示意图。

具体实施方式

下面详细描述本发明的实施例,下面的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制,通过以下具体实施例对本发明的技术方案作进一步地说明:

一个实现本发明所述的语意的结化表示方法与将一个语意序列识别为一个语意的方法的编码器提供如下功能(函数方法):

1.learnPhysical(obj):obj是一个Java对象实例,该方法返回一个代表Java对象实例obj的“物理”语意代码;

2.getPhysical(code):code是一个语意代码,该方法返回一个Java的对象实例;

3.identify(seq,context):seq是一个语意代码组成的序列(表意序列),context是一个语意代码,该方法返回一个在以code代表的语意为上下文环境的情况下,表意序列seq所编码的语意代码;

4.setEqual(code1,code2):code1和code2是两个语意代码,该方法设置这两个代码代表的语意具有相同的含意;如code1和code2代表的两个语意的“一一语意”相同,则保留code2,删除code1;如code1和code2代表的两个语意的“一一语意”不同,则记忆这一两个语意具有相同含意的信息;该方法无返回值。

5.translate(code,context):code和context是两个语意代码,如果存在一个或一组特定的语意,它们的“一一语意”是context代表的语意且该语意与code代表的语意具有相同的含意,则方法返回这一个或一组语意的代码;若不存在这一个或一组语意,方法返回空值。

6.getSeq(code):code是一个语意代码,该方法的返回值是一个或一组语意代码组成的序列(表意序列),其中任何一个表意序列可以在以code代表的语意的“一一语意”为上下文环境的条件下,编码为code代表的语意。

一个具体实施例的案例说明如下:

“二”、“进”、“制”、“十”、“1”、“0”为字符,其均是“物理”语意;存在“二进制”这一语意和“十进制”这一语意;在“二进制”的上下文环境中,Java字符序列[“1”“0”“1”“0”]可以理解为一个语意(数值10);在“十进制”的上下文环境中,Java字符序列[“1”“0”]也可以理解为一个语意(数值10);这两个在不同的上下文环境中的“数值10”语意具有相同的含意。

具体实施的任务一:创建对应于上述实施例案例说明的图结构,图1是本发明的基于图结构的语意与语意之间的关联的表示方法示意图,步骤如下:

1.learnPhysical(“二”):找到或定义Java字符“二”的语意代码,方法返回值为语意代码“1”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“二”,如有则返回该节点的标记。这时图中没有“JavaObj”属性为Java字符“二”的节点,因此创建语意代码“1”,在图中创建由语意代码“1”标记的节点,为该节点创建属性“JavaObj”,设置其值为Java字符“二”。这时语意代码“1”代表一个“物理”语意:“二”。

2.learnPhysical(“进”):找到或定义Java字符“进”的语意代码,方法返回值为语意代码“2”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“进”,如有则返回该节点的标记。这时图中没有“JavaObj”属性为Java字符“进”的节点,因此创建语意代码“2”,在图中创建由语意代码“2”标记的节点,为该节点创建属性“JavaObj”,设置其值为Java字符“进”。这时语意代码“2”代表一个“物理”语意:“进”。

3.learnPhysical(“制”):找到或定义Java字符“制”的语意代码,方法返回值为语意代码“3”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“制”,如有则返回该节点的标记。这时图中没有“JavaObj”属性为Java字符“制”的节点,因此创建语意代码“3”,在图中创建由语意代码“3”标记的节点,为该节点创建属性“JavaObj”,设置其值为Java字符“制”。这时语意代码“3”代表一个“物理”语意:“制”。

4.learnPhysical(“十”):找到或定义Java字符“十”的语意代码,方法返回值为语意代码“4”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“十”,如有则返回该节点的标记。这时图中没有“JavaObj”属性为Java字符“十”的节点,因此创建“语意代码“4”,在图中创建由语意代码“4”标记的节点,为该节点创建属性“JavaObj”,设置其值为Java字符“十”。这时语意代码“4”代表一个“物理”语意:“十”。

5.learnPhysical(“1”):找到或定义Java字符“1”的语意代码,方法返回值为语意代码“5”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“1”,如有则返回该节点的标记。这时图中没有找到“JavaObj”属性为Java字符“1”的节点,因此创建语意代码“5”,在图中创建由语意代码“5”标记的节点,为该节点创建属性“JavaObj”,设置其值为Java字符“1”。这时语意代码“5”代表一个“物理”语意:“1”。

6.learnPhysical(“0”):找到或定义Java字符“0”的语意代码,方法返回值为语意代码“6”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“0”,如有则返回该节点的标记。这时图中没有找到“JavaObj”属性为Java字符“0”的节点,因此创建语意代码“6”,在图中创建由语意代码“6”标记的节点,为该节点创建属性“JavaObj”,设置其值为Java字符“0”。这时语意代码“6”代表一个“物理”语意:“0”。

7.identify([1,2,3],0):找到或定义在以语意代码“0”代表的语意为上下文环境的情况下,表意序列[1,2,3]所编码的语意的代码,方法返回值为语意代码“10”。由前述第1-3步可知,Java字符“二”的语意代码为“1”,Java字符“进”的语意代码为“2”,Java字符“制”的语意代码为“3”,因此,Java字符序列[“二”“进”“制”]的表意序列是[1,2,3]。本步骤执行的过程如下:

1)首先得到一个可还原出表意序列[1,2,3]的语意,采用如下步骤实现:

a)该表意序列的最短后缀序列为“空序列”,其长度为0,其语意代码为“0”;

b)由于可还原出该表意序列的长度为0的后缀序列的语意的代码为“0”,则可根据语意代码“0”和表意序列倒数第1位置的语意代码(即“3”),得到可还原出该表意序列的长度为1的后缀序列的语意代码,其方法是:找到由“3”标记的节点,判断是否存在一条标记为“0”的边从标记为“3”的节点出发连接到另一个节点;由于图中不存在该边,则创建一个新的语意以及其代码(记为“7”),并在图中创建一个标记为“7”的节点,创建一条标记为“0”的边从标记为“3”的节点出发连接到标记为“7”的节点,创建一条标记为“-1”的边从标记为“7”的节点出发连接到标记为“0”的节点,创建一条标记为“-2”的边从标记为“7”的节点出发连接到标记为“3”的节点,创建一条标记为“0”的边从标记为“0”的节点出发连接到标记为“7”的节点,这时,“7”即为可还原出该表意序列的长度为1的后缀序列(即[3])的语意的代码;

c)由于可还原出该表意序列的长度为1的后缀序列的语意的代码为“7”,则可根据语意代码“7”和表意序列倒数第2位置的语意代码(即“2”),得到可还原出该表意序列的长度为2的后缀序列的语意代码,其方法是:找到由“2”标记的节点,判断是否存在一条标记为“7”的边从标记为“2”的节点出发连接到另一个节点;由于图中不存在该边,则创建一个新的语意以及其代码(记为“8”),并在图中创建一个标记为“8”的节点,创建一条标记为“7”的边从标记为“2”的节点出发连接到标记为“8”的节点,创建一条标记为“-1”的边从标记为“8”的节点出发连接到标记为“7”的节点,创建一条标记为“-2”的边从标记为“8”的节点出发连接到标记为“2”的节点,创建一条标记为“7”的边从标记为“7”的节点出发连接到标记为“8”的节点,这时,“8”即为可还原出该表意序列的长度为2的后缀序列(即[2,3])的语意的代码;

d)由于可还原出该表意序列的长度为2的后缀序列的语意的代码为“8”,则可根据语意代码“8”和表意序列倒数第3位置的语意代码(即“1”),得到可还原出该表意序列的长度为3的后缀序列的语意代码,其方法是:找到由“1”标记的节点,判断是否存在一条标记为“8”的边从标记为“1”的节点出发连接到另一个节点;由于图中不存在该边,则创建一个新的语意以及其代码(记为“9”),并在图中创建一个标记为“9”的节点,创建一条标记为“8”的边从标记为“1”的节点出发连接到标记为“9”的节点,创建一条标记为“-1”的边从标记为“9”的节点出发连接到标记为“8”的节点,创建一条标记为“-2”的边从标记为“9”的节点出发连接到标记为“1”的节点,创建一条标记为“8”的边从标记为“8”的节点出发连接到标记为“9”的节点,这时,“9”即为可还原出该表意序列的长度为2的后缀序列(即[1,2,3])的语意的代码;

e)此时后缀序列的长度等于该表意序列的完整长度,因此,可还原出完整的表意序列[1,2,3]的语意代码为“9”;

2)然后找到标记为“0”的节点,再找到从该节点出发的所有标记为“0”的边,记录这些边的终点节点的标记,得到一个语意代码的集合;然后判断该集合中是否存在一个语意代码(记为X),使图中存在一条标记为“-2”的边,该边的起点节点为X标记的节点,终点节点为“9”标记的节点;由于语意代码X尚不存在,则创建一个新的语意及其代码(记为“10”),并在图中创建一个标记为“10”的节点,创建一条标记为“0”的边从标记为“0”的节点出发连接到标记为“10”的节点,再创建一条标记为“-2”的边从标记为“10”的节点出发连接到标记为“9”的节点,再创建一条标记为“-1”的边从标记为“10”的节点出发连接到标记为的“0”节点,然后,返回“10”作为由表意序列编码得到的语意的代码。

8.identify([4,2,3],0):找到或定义在以语意代码“0”代表的语意为上下文环境的情况下,表意序列[4,2,3]所编码的语意的代码,方法返回值为语意代码“12”。由前述第2-4步可知,Java字符“十”的语意代码为“4”,Java字符“进”的语意代码为“2”,Java字符“制”的语意代码为“3”,因此,Java字符序列[“十”“进”“制”]的表意序列是[4,2,3]。本步骤执行的过程如下:

1)首先得到一个可还原出表意序列[4,2,3]的语意,采用如下步骤实现:

a)该表意序列的最短后缀序列为“空序列”,其长度为0,其语意代码为“0”;

b)由于可还原出该表意序列的长度为0的后缀序列的语意的代码为“0”,则可根据语意代码“0”和表意序列倒数第1位置的语意代码(即“3”),得到可还原出该表意序列的长度为1的后缀序列的语意代码,其方法是:找到由“3”标记的节点,判断是否存在一条标记为“0”的边从标记为“3”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“7”,该标记即为可还原出该表意序列的长度为1的后缀序列(即[3])的语意的代码(“7”);

a)由于可还原出该表意序列的长度为1的后缀序列的语意的代码为“7”,则可根据语意代码“7”和表意序列倒数第2位置的语意代码(即“2”),得到可还原出该表意序列的长度为2的后缀序列的语意代码,其方法是:找到由“2”标记的节点,判断是否存在一条标记为“7”的边从标记为“2”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“8”,该标记即为可还原出该表意序列的长度为2的后缀序列(即[2,3])的语意的代码(“8”);

b)由于可还原出该表意序列的长度为2的后缀序列的语意的代码为“8”,则可根据语意代码“8”和表意序列倒数第3位置的语意代码(即“4”),得到可还原出该表意序列的长度为3的后缀序列的语意代码,其方法是:找到由“4”标记的节点,判断是否存在一条标记为“8”的边从标记为“4”的节点出发连接到另一个节点;由于图中不存在该边,则创建一个新的语意以及其代码(记为“11”),并在图中创建一个标记为“11”的节点,创建一条标记为“8”的边从标记为“4”的节点出发连接到标记为“11”的节点,创建一条标记为“-1”的边从标记为“11”的节点出发连接到标记为“8”的节点,创建一条标记为“-2”的边从标记为“11”的节点出发连接到标记为“4”的节点,创建一条标记为“8”的边从标记为“8”的节点出发连接到标记为“11”的节点,这时,“11”即为可还原出该表意序列的长度为3的后缀序列(即[4,2,3])的语意的代码;

c)此时后缀序列的长度等于该表意序列的完整长度,因此,可还原出完整的表意序列[4,2,3]的语意代码为“11”;

2)然后找到标记为“0”的节点,再找到从该节点出发的所有标记为“0”的边,记录这些边的终点节点的标记,得到一个语意代码的集合;然后判断该集合中是否存在一个语意代码(记为X),使图中存在一条标记为“-2”的边,该边的起点节点为X标记的节点,终点节点为“11”标记的节点;由于语意代码X尚不存在,则创建一个新的语意及其代码(记为“12”),并在图中创建一个标记为“12”的节点,创建一条标记为“0”的边从标记为“0”的节点出发连接到标记为“12”的节点,再创建一条标记为“-2”的边从标记为“12”的节点出发连接到标记为“11”的节点,再创建一条标记为“-1”的边从标记为“12”的节点出发连接到标记为的“0”节点,然后,返回“12”作为由表意序列编码得到的语意的代码。

9.identify([5,6,5,6],10):找到或定义在以语意代码“10”代表的语意为上下文环境的情况下,表意序列[5,6,5,6]所编码的语意的代码,方法返回值为语意代码“17”。由前述第5-6步可知,Java字符“1”的语意代码为“5”,Java字符“0”的语意代码为“6”,因此,Java字符序列[“1”“0”“1”“0”]的表意序列是[5,6,5,6];由前述第7步可知,“二进制”作为语意的代码是“10”。本步骤执行的过程如下:

1)首先得到一个可还原出表意序列[5,6,5,6]的语意,采用如下步骤实现:

a)该表意序列的最短后缀序列为“空序列”,其长度为0,其语意代码为“0”;

b)由于可还原出该表意序列的长度为0的后缀序列的语意的代码为“0”,则可根据语意代码“0”和表意序列倒数第1位置的语意代码(即“6”),得到可还原出该表意序列的长度为1的后缀序列的语意代码,其方法是:找到由“6”标记的节点,判断是否存在一条标记为“0”的边从标记为“6”的节点出发连接到另一个节点;由于图中不存在该边,则创建一个新的语意以及其代码(记为“13”),并在图中创建一个标记为“13”的节点,创建一条标记为“0”的边从标记为“6”的节点出发连接到标记为“13”的节点,创建一条标记为“-1”的边从标记为“13”的节点出发连接到标记为“0”的节点,创建一条标记为“-2”的边从标记为“13”的节点出发连接到标记为“6”的节点,创建一条标记为“0”的边从标记为“0”的节点出发连接到标记为“13”的节点,这时,“13”即为可还原出该表意序列的长度为1的后缀序列(即[6])的语意的代码;

c)由于可还原出该表意序列的长度为1的后缀序列的语意的代码为“13”,则可根据语意代码“13”和表意序列倒数第2位置的语意代码(即“5”),得到可还原出该表意序列的长度为2的后缀序列的语意代码,其方法是:找到由“5”标记的节点,判断是否存在一条标记为“13”的边从标记为“5”的节点出发连接到另一个节点;由于图中不存在该边,则创建一个新的语意以及其代码(记为“14”),并在图中创建一个标记为“14”的节点,创建一条标记为“13”的边从标记为“5”的节点出发连接到标记为“14”的节点,创建一条标记为“-1”的边从标记为“14”的节点出发连接到标记为“13”的节点,创建一条标记为“-2”的边从标记为“14”的节点出发连接到标记为“5”的节点,创建一条标记为“13”的边从标记为“13”的节点出发连接到标记为“14”的节点,这时,“14”即为可还原出该表意序列的长度为2的后缀序列(即[5,6])的语意的代码;

d)由于可还原出该表意序列的长度为2的后缀序列的语意的代码为“14”,则可根据语意代码“14”和表意序列倒数第3位置的语意代码(即“6”),得到可还原出该表意序列的长度为3的后缀序列的语意代码,其方法是:找到由“6”标记的节点,判断是否存在一条标记为“14”的边从标记为“6”的节点出发连接到另一个节点;由于图中不存在该边,则创建一个新的语意以及其代码(记为“15”),并在图中创建一个标记为“15”的节点,创建一条标记为“14”的边从标记为“6”的节点出发连接到标记为“15”的节点,创建一条标记为“-1”的边从标记为“15”的节点出发连接到标记为“14”的节点,创建一条标记为“-2”的边从标记为“15”的节点出发连接到标记为“6”的节点,创建一条标记为“14”的边从标记为“14”的节点出发连接到标记为“15”的节点,这时,“15”即为可还原出该表意序列的长度为3的后缀序列(即[6,5,6])的语意的代码;

e)由于可还原出该表意序列的长度为3的后缀序列的语意的代码为“15”,则可根据语意代码“15”和表意序列倒数第4位置的语意代码(即“5”),得到可还原出该表意序列的长度为4的后缀序列的语意代码,其方法是:找到由“5”标记的节点,判断是否存在一条标记为“15”的边从标记为“5”的节点出发连接到另一个节点;由于图中不存在该边,则创建一个新的语意以及其代码(记为“16”),并在图中创建一个标记为“16”的节点,创建一条标记为“15”的边从标记为“5”的节点出发连接到标记为“16”的节点,创建一条标记为“-1”的边从标记为“16”的节点出发连接到标记为“15”的节点,创建一条标记为“-2”的边从标记为“16”的节点出发连接到标记为“5”的节点,创建一条标记为“15”的边从标记为“15”的节点出发连接到标记为“16”的节点,这时,“16”即为可还原出该表意序列的长度为4的后缀序列(即[5,6,5,6])的语意的代码;

f)此时后缀序列的长度等于该表意序列的完整长度,因此,可还原出完整的表意序列[5,6,5,6]的语意代码为“16”;

2)然后找到标记为“10”的节点,再找到从该节点出发的所有标记为“10”的边,记录这些边的终点节点的标记,得到一个语意代码的集合;然后判断该集合中是否存在一个语意代码(记为X),使图中存在一条标记为“-2”的边,该边的起点节点为X标记的节点,终点节点为“16”标记的节点;由于语意代码X尚不存在,则创建一个新的语意及其代码(记为“17”),并在图中创建一个标记为“17”的节点,创建一条标记为“10”的边从标记为“10”的节点出发连接到标记为“17”的节点,再创建一条标记为“-2”的边从标记为“17”的节点出发连接到标记为“16”的节点,再创建一条标记为“-1”的边从标记为“17”的节点出发连接到标记为的“10”节点,然后,返回“17”作为由表意序列编码得到的语意的代码。

10.identify([5,6],12):找到或定义在以语意代码“12”代表的语意为上下文环境的情况下,表意序列[5,6]所编码的语意的代码,方法返回值为语意代码“18”。由前述第5-6步可知,Java字符“1”的语意代码为“5”,Java字符“0”的语意代码为“6”,因此,Java字符序列[“1”“0”]的表意序列是[5,6];由前述第8步可知,“十进制”作为语意的代码是“12”。本步骤执行的过程如下:

1)首先得到一个可还原出表意序列[5,6,5,6]的语意,采用如下步骤实现:

a)该表意序列的最短后缀序列为“空序列”,其长度为0,其语意代码为“0”;

b)由于可还原出该表意序列的长度为0的后缀序列的语意的代码为“0”,则可根据语意代码“0”和表意序列倒数第1位置的语意代码(即“6”),得到可还原出该表意序列的长度为1的后缀序列的语意代码,其方法是:找到由“6”标记的节点,判断是否存在一条标记为“0”的边从标记为“6”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“13”,该标记即为可还原出该表意序列的长度为1的后缀序列(即[6])的语意的代码(“13”);

c)由于可还原出该表意序列的长度为1的后缀序列的语意的代码为“13”,则可根据语意代码“13”和表意序列倒数第2位置的语意代码(即“5”),得到可还原出该表意序列的长度为2的后缀序列的语意代码,其方法是:找到由“5”标记的节点,判断是否存在一条标记为“13”的边从标记为“5”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“14”,该标记即为可还原出该表意序列的长度为2的后缀序列(即[5,6])的语意的代码(“14”);

d)此时后缀序列的长度等于该表意序列的完整长度,因此,可还原出完整的表意序列[5,6]的语意代码为“14”;

2)然后找到标记为“12”的节点,再找到从该节点出发的所有标记为“12”的边,记录这些边的终点节点的标记,得到一个语意代码的集合;然后判断该集合中是否存在一个语意代码(记为X),使图中存在一条标记为“-2”的边,该边的起点节点为X标记的节点,终点节点为“14”标记的节点;由于语意代码X尚不存在,则创建一个新的语意及其代码(记为“18”),并在图中创建一个标记为“18”的节点,创建一条标记为“12”的边从标记为“12”的节点出发连接到标记为“18”的节点,再创建一条标记为“-2”的边从标记为“18”的节点出发连接到标记为“14”的节点,再创建一条标记为“-1”的边从标记为“18”的节点出发连接到标记为的“12”节点,然后,返回“18”作为由表意序列编码得到的语意的代码。

11.setEqual(17,18):设置语意代码“17”和语意代码“18”所代表的两个语意具有相同的含意,方法无返回值。本步骤执行的过程如下:

1)判断两个语意代码代表的语意的“一一语意”是否相同:在图中找到由“17”标记的节点,然后查询从“17”标记的节点出发的标记为“-1”的边(必然有且只有一条),找到该边的终点节点,该节点的标记是“10”,因此语意代码“17”代表的语意的“一一语意”的代码是“10”;在图中找到由“18”标记的节点,然后查询从“18”标记的节点出发标记为“-1”的边(必然有且只有一条),找到该边的终点节点,该节点的标记是“12”,因此因此语意代码“18”代表的语意的“一一语意”的代码是“12”。因此可以判断语意代码“17”和语意代码“18”代表的语意的“一一语意”不相同;

2)由于语意代码“17”和语意代码“18”代表的语意的“一一语意”不相同,语意代码“17”代表的“一一语意”的代码是“10”,语意代码“18”代表的“一一语意”的代码是“12”,因此,从“17”标记的节点出发,查询是否存在一条标记为“12”的边到达标记为“18”的节点,由于图中不存在这条边,因此创建一条标记为“12”的边,从“17”标记的节点出发连接到“18”标记的节点;然后从“18”标记的节点出发,查询是否存在一条标记为“10”的边到达标记为“17”的节点,由于图中不存在这条边,因此创建一条标记为“10”的边,从“18”标记的节点出发连接到“17”标记的节点。

具体实施的任务二:获得Java字符序列[“1”“0”“1”“0”]在二进制上下文中编码的语意,将其转换为一个具有相同含意的在十进制上下文中编码得到的语意,并获得该语意所编码的表意序列,再转换为Java字符序列。步骤如下:

1.learnPhysical(“二”):找到或定义Java字符“二”的语意代码,方法返回值为语意代码“1”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“二”,如有则返回该节点的标记。这时图中存在“JavaObj”属性为Java字符“二”的节点,方法返回该节点的标记(语意代码)“1”。

2.learnPhysical(“进”):找到或定义Java字符“进”的语意代码,方法返回值为语意代码“2”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“进”,如有则返回该节点的标记。这时图中存在“JavaObj”属性为Java字符“进”的节点,方法返回该节点的标记(语意代码)“2”。

3.learnPhysical(“制”):找到或定义Java字符“制”的语意代码,方法返回值为语意代码“3”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“制”,如有则返回该节点的标记。这时图中存在“JavaObj”属性为Java字符“制”的节点,方法返回该节点的标记(语意代码)“3”。

4.learnPhysical(“十”):找到或定义Java字符“十”的语意代码,方法返回值为语意代码“4”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“十”,如有则返回该节点的标记。这时图中存在“JavaObj”属性为Java字符“十”的节点,方法返回该节点的标记(语意代码)“4”。

5.learnPhysical(“1”):找到或定义Java字符“1”的语意代码,方法返回值为语意代码“5”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“1”,如有则返回该节点的标记。这时图中存在“JavaObj”属性为Java字符“1”的节点,方法返回该节点的标记(语意代码)“5”。

6.learnPhysical(“0”):找到或定义Java字符“0”的语意代码,方法返回值为语意代码“6”。该步骤首先查找是否有节点具有“JavaObj”属性为Java字符“0”,如有则返回该节点的标记。这时图中存在“JavaObj”属性为Java字符“0”的节点,方法返回该节点的标记(语意代码)“6”。

7.identify([1,2,3],0):找到或定义在以语意代码“0”代表的语意为上下文环境的情况下,表意序列[1,2,3]所编码的语意的代码,方法返回值为语意代码“10”。由前述第1-3步可知,Java字符“二”的语意代码为“1”,Java字符“进”的语意代码为“2”,Java字符“制”的语意代码为“3”,因此,Java字符序列[“二”“进”“制”]的表意序列是[1,2,3]。本步骤执行的过程如下:

1)首先得到一个可还原出表意序列[1,2,3]的语意,采用如下步骤实现:

a)该表意序列的最短后缀序列为“空序列”,其长度为0,其语意代码为“0”;

b)由于可还原出该表意序列的长度为0的后缀序列的语意的代码为“0”,则可根据语意代码“0”和表意序列倒数第1位置的语意代码(即“3”),得到可还原出该表意序列的长度为1的后缀序列的语意代码,其方法是:找到由“3”标记的节点,判断是否存在一条标记为“0”的边从标记为“3”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“7”,该标记即为可还原出该表意序列的长度为1的后缀序列(即[3])的语意的代码(“7”);

c)由于可还原出该表意序列的长度为1的后缀序列的语意的代码为“7”,则可根据语意代码“7”和表意序列倒数第2位置的语意代码(即“2”),得到可还原出该表意序列的长度为2的后缀序列的语意代码,其方法是:找到由“2”标记的节点,判断是否存在一条标记为“7”的边从标记为“2”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“8”,该标记即为可还原出该表意序列的长度为2的后缀序列(即[2,3])的语意的代码(“8”);

d)由于可还原出该表意序列的长度为2的后缀序列的语意的代码为“8”,则可根据语意代码“8”和表意序列倒数第3位置的语意代码(即“1”),得到可还原出该表意序列的长度为3的后缀序列的语意代码,其方法是:找到由“1”标记的节点,判断是否存在一条标记为“8”的边从标记为“1”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“9”,该标记即为可还原出该表意序列的长度为3的后缀序列(即[1,2,3])的语意的代码(“9”);

e)此时后缀序列的长度等于该表意序列的完整长度,因此,可还原出完整的表意序列[1,2,3]的语意代码为“9”;

2)然后找到标记为“0”的节点,再找到从该节点出发的所有标记为“0”的边,记录这些边的终点节点的标记,得到一个语意代码的集合;然后判断该集合中是否存在一个语意代码(记为X),使图中存在一条标记为“-2”的边,该边的起点节点为X标记的节点,终点节点为“9”标记的节点;由于语意代码X存在,因此返回该语意代码(“10”)作为由表意序列编码得到的语意的代码。

8.identify([4,2,3],0):找到或定义在以语意代码“0”代表的语意为上下文环境的情况下,表意序列[4,2,3]所编码的语意的代码,方法返回值为语意代码“12”。由前述第2-4步可知,Java字符“十”的语意代码为“4”,Java字符“进”的语意代码为“2”,Java字符“制”的语意代码为“3”,因此,Java字符序列[“十”“进”“制”]的表意序列是[4,2,3]。本步骤执行的过程如下:

1)首先得到一个可还原出表意序列[4,2,3]的语意,采用如下步骤实现:

a)该表意序列的最短后缀序列为“空序列”,其长度为0,其语意代码为“0”;

b)由于可还原出该表意序列的长度为0的后缀序列的语意的代码为“0”,则可根据语意代码“0”和表意序列倒数第1位置的语意代码(即“3”),得到可还原出该表意序列的长度为1的后缀序列的语意代码,其方法是:找到由“3”标记的节点,判断是否存在一条标记为“0”的边从标记为“3”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“7”,该标记即为可还原出该表意序列的长度为1的后缀序列(即[3])的语意的代码(“7”);

c)由于可还原出该表意序列的长度为1的后缀序列的语意的代码为“7”,则可根据语意代码“7”和表意序列倒数第2位置的语意代码(即“2”),得到可还原出该表意序列的长度为2的后缀序列的语意代码,其方法是:找到由“2”标记的节点,判断是否存在一条标记为“7”的边从标记为“2”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“8”,该标记即为可还原出该表意序列的长度为2的后缀序列(即[2,3])的语意的代码(“8”);

d)由于可还原出该表意序列的长度为2的后缀序列的语意的代码为“8”,则可根据语意代码“8”和表意序列倒数第3位置的语意代码(即“4”),得到可还原出该表意序列的长度为3的后缀序列的语意代码,其方法是:找到由“4”标记的节点,判断是否存在一条标记为“8”的边从标记为“4”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“11”,该标记即为可还原出该表意序列的长度为3的后缀序列(即[4,2,3])的语意的代码(“11”);

e)此时后缀序列的长度等于该表意序列的完整长度,因此,可还原出完整的表意序列[4,2,3]的语意代码为“11”;

2)然后找到标记为“0”的节点,再找到从该节点出发的所有标记为“0”的边,记录这些边的终点节点的标记,得到一个语意代码的集合;然后判断该集合中是否存在一个语意代码(记为X),使图中存在一条标记为“-2”的边,该边的起点节点为X标记的节点,终点节点为“11”标记的节点;由于语意代码X存在,因此返回该语意代码(“12”)作为由表意序列编码得到的语意的代码。

9.identify([5,6,5,6],10):找到或定义在以语意代码“10”代表的语意为上下文环境的情况下,表意序列[5,6,5,6]所编码的语意的代码,方法返回值为语意代码“17”。由前述第5-6步可知,Java字符“1”的语意代码为“5”,Java字符“0”的语意代码为“6”,因此,Java字符序列[“1”“0”“1”“0”]的表意序列是[5,6,5,6];由前述第7步可知,“二进制”作为语意的代码是“10”。本步骤执行的过程如下:

1)首先得到一个可还原出表意序列[5,6,5,6]的语意,采用如下步骤实现:

a)该表意序列的最短后缀序列为“空序列”,其长度为0,其语意代码为“0”;

b)由于可还原出该表意序列的长度为0的后缀序列的语意的代码为“0”,则可根据语意代码“0”和表意序列倒数第1位置的语意代码(即“6”),得到可还原出该表意序列的长度为1的后缀序列的语意代码,其方法是:找到由“6”标记的节点,判断是否存在一条标记为“0”的边从标记为“6”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“13”,该标记即为可还原出该表意序列的长度为1的后缀序列(即[6])的语意的代码(“13”);

c)由于可还原出该表意序列的长度为1的后缀序列的语意的代码为“13”,则可根据语意代码“13”和表意序列倒数第2位置的语意代码(即“5”),得到可还原出该表意序列的长度为2的后缀序列的语意代码,其方法是:找到由“5”标记的节点,判断是否存在一条标记为“13”的边从标记为“5”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“14”,该标记即为可还原出该表意序列的长度为2的后缀序列(即[5,6])的语意的代码(“14”);

d)由于可还原出该表意序列的长度为2的后缀序列的语意的代码为“14”,则可根据语意代码“14”和表意序列倒数第3位置的语意代码(即“6”),得到可还原出该表意序列的长度为3的后缀序列的语意代码,其方法是:找到由“6”标记的节点,判断是否存在一条标记为“14”的边从标记为“6”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“15”,该标记即为可还原出该表意序列的长度为3的后缀序列(即[6,5,6])的语意的代码(“15”);

e)由于可还原出该表意序列的长度为3的后缀序列的语意的代码为“15”,则可根据语意代码“15”和表意序列倒数第3位置的语意代码(即“5”),得到可还原出该表意序列的长度为4的后缀序列的语意代码,其方法是:找到由“5”标记的节点,判断是否存在一条标记为“15”的边从标记为“5”的节点出发连接到另一个节点;由于图中存在该边,则获得该边的终点节点的标记(语意代码)“16”,该标记即为可还原出该表意序列的长度为4的后缀序列(即[5,6,5,6])的语意的代码(“16”);

f)此时后缀序列的长度等于该表意序列的完整长度,因此,可还原出完整的表意序列[5,6,5,6]的语意代码为“16”;

2)然后找到标记为“10”的节点,再找到从该节点出发的所有标记为“10”的边,记录这些边的终点节点的标记,得到一个语意代码的集合;然后判断该集合中是否存在一个语意代码(记为X),使图中存在一条标记为“-2”的边,该边的起点节点为X标记的节点,终点节点为“16”标记的节点;由于语意代码X存在,因此返回该语意代码(“17”)作为由表意序列编码得到的语意的代码。

10.translate(17,12):找到一个或一组语意代码,它们的“一一语意”是语意代码“12”代表的语意,且这一个或一组语意与语意代码“17”代表的语意具有相同的含意,方法的返回值为一个语意代码“18”。由前述第9步可知,在以“二进制”语意为上下文环境的情况下,Java字符序列[“1”,“0”,“1”,“0”]所编码的语意的代码是“17”;由前述第8步可知,“十进制”作为语意的代码是“12”;本步骤的执行过程如下:首先在图中找到“17”标记的节点,再判断是否存在一条或一组标记为“12”的边从“17”标记的节点出发连接到另一节点,由于有且只有一条这样的边存在,则获得该边的终点节点的标记(语意代码)“18”;因此,则存在一个语意代码“18”,它的“一一语意”是语意代码“12”代表的语意,它与语意代码“17”代表的语意具有相同的含意,方法返回一个语意代码“18”。

11.getSeq(18):找到由代码为“18”的语意编码的一个或一组表意序列,方法的返回值为一个表意序列[5,6]。本步骤执行的过程如下:

1)首先,在图中找到标记为“18”的节点,找到一条或一组标记为“-2”的边从标记为“18”的节点出发连接到另一个或一组节点;此时,图中仅有一条标记为“-2”的边从标记为“18”的节点出发连接到另一个节点,则获得该边的终点节点的标记(语意代码)“14”,该代码即为可还原出由代码为“18”的语意编码的(唯一)一个表意序列的语意的代码;同时,代码为“14”的语意的“一多语意”即代码为“18”的语意编码的表意序列的第1个位置上的语意代码;

2)当已知某个语意(代码为“14”)的“一多语意”是代码为“18”的语意编码的一个表意序列的第1个位置上的语意时,可以得到该表意序列的第1个位置上的语意代码,得到的方法是,首先找到“14”标记的节点,再找到一条或一组标记为“-2”的边从标记为“14”的节点出发连接到另一个或一组节点;此时,图中仅有一条标记为“-2”的边从标记为“14”的节点出发连接到另一个节点,该节点的标记(语意代码)“5”即代码为“18”的语意编码的表意序列的第1个位置上的(唯一)语意的代码;

3)当已知某个语意(代码为“14”)的“一多语意”是代码为“18”的语意编码的一个表意序列的第1个位置上的语意时,可以得到一个语意(代码为“13”),其“一多语意”是代码为“18”的语意编码的这一表意序列的第2个位置上的语意,得到的方法是,首先找到“14”标记的节点,再找到一条标记为“-1”的边从标记为“14”的节点出发连接到另一节点,该节点的标记(语意代码)为“13”,其代表的语意的“一多语意”即代码为“18”的语意编码的表意序列的第2个位置上的语意;

4)当已知某个语意(代码为“13”)的“一多语意”是代码为“18”的语意编码的一个表意序列的第2个位置上的语意时,可以得到该表意序列的第2个位置上的语意代码,得到的方法是,首先找到“13”标记的节点,再找到一条或一组标记为“-2”的边从标记为“13”的节点出发连接到另一个或一组节点;此时,图中仅有一条标记为“-2”的边从标记为“13”的节点出发连接到另一个节点,该节点的标记(语意代码)“6”即代码为“18”的语意编码的表意序列的第2个位置上的(唯一)语意的代码;

5)当已知某个语意(代码为“13”)的“一多语意”是代码为“18”的语意编码的一个表意序列的第2个位置上的语意时,可以得到一个语意(代码为“0”),其“一多语意”是代码为“18”的语意编码的这一表意序列的第3个位置上的语意,得到的方法是,首先找到“13”标记的节点,再找到一条标记为“-1”的边从标记为“13”的节点出发连接到另一节点,该节点的标记(语意代码)为“0”,其代表的语意的“一多语意”即代码为“18”的语意编码的表意序列的第3个位置上的语意;

6)当已知代码为“0”的语意的“一多语意”是代码为“18”的语意编码的一个表意序列的第3个位置上的语意时,说明代码为“18”的语意编码的这一表意序列已经结束,其总长度为2;

7)由上述步骤可得,代码为“18”的语意编码的(唯一)一个表意序列为[5,6]。

12.getPhysical(5):找到语意代码“5”对应的Java对象实例,方法返回值为Java字符“1”。该步骤在图中查找标记为“5”的节点,返回其“JavaObj”属性的值,方法返回Java字符“1”。

13.getPhysical(6):找到语意代码“6”对应的Java对象实例,方法返回值为Java字符“0”。该步骤在图中查找标记为“6”的节点,返回其“JavaObj”属性的值,方法返回Java字符“0”。

14.由前述第10-13步可知:Java字符序列[“1”“0”“1”“0”]在“二进制”上下文情况下编码的语意(代码为“17”),如将其转换为一个一一语意为“十进制”的语意(代码为“18”),则该语意所编码的表意序列([5,6])可转换为Java字符序列[“1”“0”]。

以上并非是对本专利具体实施方式的限制。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明实质范围的前提下,还可以做出若干变化、改型、添加或替换,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号