CN107092515B - 一种基于回答集逻辑程序的lpmln推理方法及系统 - Google Patents
一种基于回答集逻辑程序的lpmln推理方法及系统 Download PDFInfo
- Publication number
- CN107092515B CN107092515B CN201710157112.1A CN201710157112A CN107092515B CN 107092515 B CN107092515 B CN 107092515B CN 201710157112 A CN201710157112 A CN 201710157112A CN 107092515 B CN107092515 B CN 107092515B
- Authority
- CN
- China
- Prior art keywords
- program
- lpmln
- inference
- answer set
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种基于回答集逻辑程序的LPMLN推理方法,1、首先输入LPMLN程序和推理参数,其中推理参数包括强转化参数等,然后对输入的LPMLN程序进行语法分析,从而得到输入程序的Herbrand域以及关键的语法要素;2、根据步骤一中的强转化参数判断输入的LPMLN程序是进行强转化操作还是弱转化操作,并通过强转化或弱转化方法转化为对应的回答集程序;3、调用回答集程序推理机求解步骤二中转化得到的回答集程序;4、将步骤三中通过回答集程序推理机求解输出的可能世界变换为输入LPMLN程序所对应的推理结果。本发明能够在线性时间内将输入的LPMLN程序转化为相应的回答集程序,并利用回答集程序推理机实现其推理。
Description
技术领域
本发明属于知识表示和推理技术领域,特别涉及一种基于回答集逻辑程序的LPMLN推理方法及系统。
背景技术
随着语义Web的飞速发展,越来越多的知识库在互联网上变得可用,但是在不同知识库之间的一致性却难以得到有效的保证,并且知识库自身由于各种原因其可信度也不尽相同,如何利用这些知识库进行推理等知识服务成为一个难点。回答集程序是一种基于非单调逻辑的能力强大、用途广泛的知识表示语言,而马尔可夫逻辑网是当前流行的表示和处理知识不一致的工具,其本质是结合马尔可夫网和一阶逻辑。LPMLN是马尔可夫网和回答集程序的结合,充分结合了马尔可夫网的不一致表达能力和回答集程序的知识表示能力。随之而来的问题是需要有合适的LPMLN推理机,使其能够有效地被应用到现实场景中。
目前探索的LPMLN推理方法有两种:
(1)将LPMLN的逻辑模块即回答集程序通过完备化方法转化为一阶逻辑程序,使得LPMLN程序转化为传统的马尔可夫逻辑程序,利用现成的马尔科夫逻辑程序推理机如Alchemy、Tuffy等可以实现其推理。然而这种方法具有明显的缺点:对于析取规则,其完备化过程是指数时间复杂度的,并且也没有成熟可用的完备化工具。
(2)将LPMLN程序转化为P-log程序,然后利用现成的P-log推理机进行推理。然而这种方法的缺点是当前没有成熟可用的P-log推理机。
发明内容
发明目的:针对现有技术中存在的问题,本发明提供一种能够在线性时间内将输入的LPMLN程序转化为相应的回答集程序,并利用回答集程序推理机实现其推理的基于回答集逻辑程序的LPMLN推理方法及系统。
技术方案:为解决上述技术问题,本发明提供一种基于回答集逻辑程序的LPMLN推理方法,包括如下步骤:
步骤一:首先输入LPMLN程序和推理参数,其中推理参数包括强转化参数等,然后对输入的LPMLN程序进行语法分析,从而得到输入程序的Herbrand域以及关键的语法要素;并且为LPMLN程序中的每个规则分配一个规则标签,规则标签的形式为“rlabel(i,X1,…,Xn)”,其中i是一个正整数,对于不同的规则其规则标签中的i互不相同,相当于规则的唯一ID;X1,…,Xn是规则中的不同变量列表。如规则“2:a(X):-b(X).”,规定其ID为1,则其规则标签为“rlabel(1,X)”。
步骤二:根据步骤一中的强转化参数判断输入的LPMLN程序是进行强转化操作还是弱转化操作,并通过强转化或弱转化方法转化为对应的回答集程序;
步骤三:调用回答集程序推理机求解步骤二中转化得到的回答集程序;
步骤四:将步骤三中通过回答集程序推理机求解输出的可能世界变换为输入LPMLN程序所对应的推理结果。
进一步的,所述步骤一中对输入的LPMLN程序进行语法分析的具体步骤如下:
步骤1.1:将输入的LPMLN程序文本按照语法定义解析为树状结构化数据;
步骤1.2:从程序的语法树中求出输入程序的Herbrand域;
步骤1.3:为每个规则分配一个规则标签,形式为“rlabel(i,X1,…,Xn)”。
进一步的,所述步骤二中强转化的操作步骤为:按照强转化方法将输入LPMLN程序转化为通用目标的回答集程序,使其符合LPMLN的强稳定模型语义。本发明所提出的强转化是一种可模块化的转化方法,不同规则的转化之间没有相互影响,因此此处只叙述一条规则的转化方法,其他规则可按照同样的方法转化。首先引入一些基本概念:一条规则若其权重为无穷大则称其为强规则,否则称其为弱规则。一段LPMLN程序的强转化分为四部分:(1)声明部分,该部分将程序的Herbrand域表示为ASP的事实形式,以便后续部分中使用;(2)生成部分,该部分的作用是枚举程序的全部规则子集;(3)测试部分,该部分用于消除不符合语义的规则子集;(4)评估部分,该部分用于为每个可能世界计算权重。
进一步的,所述步骤二中弱转化的操作步骤为:按照弱转化方法将输入LPMLN程序转化为特定目标的回答集程序,符合LPMLN的弱稳定模型语义。与强转化类似,本发明提出的弱转化也是一种模块化地转化方法。一段LPMLN程序的弱转化分为三部分:(1)声明部分,该部分将程序的Herbrand域表示为ASP的事实形式;(2)强规则部分,该部分针对于程序中的强规则,将其直接去掉权重即可;(3)弱规则部分,该部分针对于程序中的弱规则,将其按照强转化的方法进行转化。
进一步的,所述步骤四中将回答集程序推理机输出的可能世界变换为输入LPMLN程序所对应的推理结果的具体步骤如下:
步骤4.1:可能世界文字的映射,从回答集程序推理机的输出结果中删除转化过程中引入的文字;
步骤4.2:可能世界权重的映射,根据权重映射函数将可能世界的权重映射到满足LPMLN相应语义的权重。
一种实现如上所述的基于回答集逻辑程序的LPMLN推理方法的LPMLN推理系统,包括输入处理模块、语法分析模块、转化模块、回答集逻辑程序推理机调用模块、结果处理模块和输出处理模块;
所述输入处理模块,用于处理用户输入的推理参数;
语法分析模块,解析输入LPMLN程序的语法结构并且计算其Herbrand域;
转化模块,用于将输入的LPMLN程序通过强转化参数来判断是进行强转化还是弱转化,通过转化为对应的回答集程序,根据不同的转化方法以及不同的推理机有不同的转化结果;
回答集逻辑程序推理机调用模块,根据用户指定的参数调用对应的推理机,并且输出推理机结果;
结果处理模块,将回答集逻辑程序推理机输出的结果转化为LPMLN推理结果;
输出处理模块,根据用户需求输出相应格式的推理结果。
与现有技术相比,本发明的优点在于:
本发明相比已有的方法更加简单可靠具有更好的可用性。同时,本发明提供了一种基于回答集逻辑程序的LPMLN推理系统,借助成熟的开源推理工具使其实施例实现容易,可立即投入实际使用。
附图说明
图1为本发明的总体流程图;
图2为本发明的结构示意图。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明。
如图1所示:一种基于回答集逻辑程序的LPMLN推理方法,包括如下步骤:
(1)步骤“语法分析”,对输入的LPMLN程序进行语法分析,其中输入的LPMLN程序一般以文本的形式存在。同时在输入LPMLN程序时输入强转化参数。具体而言,在本发明的一个实施例中,对输入的LPMLN程序进行语法分析可以得到其语法结构树,同时能计算出该LPMLN程序的Herbrand域。语法分析通过开源语法工具ANTLR实现,语法结构树一般存储在内存中。计算输入程序的Herbrand域是根据Herbrand域的定义,在语法分析的过程中,将程序中的常量单独提取出来并存储在内存中。除此之外,还需要对输入LPMLN程序中弱规则的权重做适当的变换使其取值域变为正整数域,将该变换记为f,并且需要将变换信息记录下来,以便后续能进行逆变换,将该逆变换记为f-1。从而,通过这个步骤完成输入LPMLN程序的预处理,使其能用来进行下一步的处理。
(2)步骤“是否强转化”,在本发明的一个实施例中,该步骤根据用户输入的控制参数即刚开始与程序一起进行输入的强转化参数来确定对输入的LPMLN程序进行强转化或者弱转化,该步骤也影响后续的其他步骤,因为对于强转化和弱转化,回答集逻辑程序推理机的输出结果以及LPMLN推理的结果都是相应不同的。
(3)步骤“强转化”,将步骤“语法分析”的结果转化为对应的回答集逻辑程序,并存储在文件或数据库中,具体实施过程包括:
(3.1)声明部分,对于输入LPMLN程序的Herbrand域集合中的每个元素e,在转化结果中添加一个事实hbu(e);
对于输入LPMLN程序中的每一条规则进行如下转化,假设LPMLN规则r的形式为:
w:head:-body.
为规则r指定一个自然数i作为其规则名,并且假设其规则标签为rlable(i,X1,…,Xn)。
(3.2)生成部分,对于规则r,添加其转化的生成部分,用于生成所有可能的子程序组合,如下:
head:-body,apply(rlabel(i,X1,…,Xn)).
apply(rlabel(i,X1,…,Xn))or–apply(rlabel(i,X1,…,Xn)):-
hbu(X1),…,hbu(Xn).
(3.3)测试部分,对于规则r,添加其转化的测试部分,用于排除不满足语义的子程序,如下:
:--apply(rlabel(i,X1,…,Xn)),sat(rlabel(i,X1,…,Xn)).
sat(rlabel(i,X1,…,Xn)):-h(rlabel(i,X1,…,Xn)).
sat(rlabel(i,X1,…,Xn)):-not b(rlabel(i,X1,…,Xn)),
hold(rlabel(i,X1,…,Xn)).
b(rlabel(i,X1,…,Xn)):-body.
hold(rlabel(i,X1,…,Xn)):-hbu(X1),…,hbu(Xn).
对于普通规则和事实规则r,其头部是一组文字的析取,对于头部的每一个文字lit,在转化中添加规则:
h(rlabel(i,X1,…,Xn)):-lit,hold(rlabel(i,X1,…,Xn)).
对于约束规则r,其头部为空,可以在转化中添加如下规则,其中“impossible”是一个在输入LPMLN程序中没有出现的谓词。
h(rlabel(i,X1,…,Xn)):-impossible(i),hold(rlabel(i,X1,…,Xn)).
(3.4)评估部分,对于规则r添加其转化的评估部分,用于评估符合语义的可能世界的权重,如下:
:~sat(rlabel(i,X1,…,Xn)).[w@lev,i,X1,…,Xn]
(4)步骤“弱转化”,将步骤“语法分析”的结果转化为对应的回答集逻辑程序,并存储在文件或数据库中,具体实施过程包括:
(4.1)声明部分,对于输入LPMLN程序的Herbrand域集合中的每个元素e,在转化结果中添加一个事实hbu(e);
(4.2)强规则部分,对于输入LPMLN程序中的每一条强规则,将其直接添加到转化程序中。
(4.3)弱规则部分,对于输入LPMLN程序中的弱规则部分,将其强转化添加到转化程序中。
(5)步骤“调用回答集逻辑程序推理机”,将转化完成的回答集程序通过回答集逻辑程序推理机求解,求解时要将回答集逻辑程序推理机的优化问题求解模式设置为枚举模式或等效的模式,以便得到程序的全部可能世界。
(6)步骤“推理机输出结果处理”,将回答集逻辑程序推理机的输出结果转化为输入LPMLN程序的推理结果,具体包括:
(6.1)对于回答集逻辑程序推理机输出的每一个可能世界,将其中的在转化过程中引入的文字全部删除即可得到输入LPMLN程序的一个稳定模型;
(6.2)对于回答集逻辑程序推理机输出的每一个可能世界,将其权重变换为相应的输入LPMLN程序的稳定模型的权重,具体变换公式为:
W=exp(Wc2*α+Wcl)
其中,Wc2是一个可能世界等级为2的权重,Wc1是一个可能世界等级为1的权重,对于弱转化的回答集逻辑程序推理机推理结果,Wc2=0,α是强规则的权重表示正无穷。
通过两个变换处理后能够得到输入LPMLN程序的全部稳定模型和权重,实际应用中还需要根据用户指定的需求计算输入LPMLN程序的最大可能的稳定模型或是某一事实成立的可能性,这些都是在上述基础上的进一步计算。
本发明还提供了一种基于回答集逻辑程序的LPMLN推理系统。图2为本发明一个实施例的基于回答集逻辑程序的LPMLN推理系统的结构示意图。如图2所示,根据本发明一个实施例的基于回答集逻辑程序的LPMLN推理系统包括:输入处理模块、输出处理模块、语法分析模块、转化模型、回答集逻辑程序推理机模块、结果处理模块、输出处理模块。
(1)输入处理模块,用于接收用户输入的LPMLN程序,以及相关的推理参数,并且对推理参数进行处理以决定后续的操作。
(2)语法分析模块,用于解析输入LPMLN程序的语法结构并且计算其Herbrand域,在某些情况下也需要动态地对输入LPMLN程序中弱规则的权重做变换;
(3)转化模块,用于将输入的LPMLN程序转化为对应的回答集程序,根据不同的转化方法以及不同的推理机有不同的转化结果;
(4)回答集程序推理机模块,用于为转化完成的回答集逻辑程序提供推理服务,并输出回答集逻辑程序推理结果;
(5)结果处理模块,用于处理回答集逻辑程序的推理机输出结果,将其映射为输入LPMLN程序的推理结果;
(6)输出处理模块,用于根据用户需求输出相应格式的推理结果。
另外,作为具体的示例,该推理系统的上述模块均在Windows下使用Java、C等语言开发实现,并且也可以运行在Ubuntu 14.04操作系统上。进一步地,基于上述开发环境,该推理系统可以运行在Windows 7及其兼容的操作系统以及Ubuntu 14.04上运行,同时还需要程序运行的支撑环境,也就是Java运行环境。当具备了上述支撑环境时,该推理系统即可正常运行,用户需要通过相应的命令行调用方法使用该推理系统。
以上所述仅为本发明的实施例子而已,并不用于限制本发明。凡在本发明的原则之内,所作的等同替换,均应包含在本发明的保护范围之内。本发明未作详细阐述的内容属于本专业领域技术人员公知的已有技术。
Claims (4)
1.一种基于回答集逻辑程序的LPMLN推理方法,其特征在于,包括如下步骤:
步骤一:首先输入LPMLN程序和推理参数,该推理参数包括强转化参数、推理类型参数和输出格式参数,然后对输入的LPMLN程序进行语法分析,从而得到输入程序的Herbrand域以及关键的语法要素,其中关键语法要素包括:规则的语法结构、规则的权重、规则是否为强规则;并且为LPMLN程序中的每个规则分配一个规则标签;其中规则标签的形式为“rlabel(i,X1,…,Xn)”,其中i是一个正整数,对于不同的规则其规则标签中的i互不相同,相当于规则的唯一ID;X1,…,Xn是规则中的不同变量列表;
步骤二:根据步骤一中的强转化参数判断输入的LPMLN程序是进行强转化操作还是弱转化操作,并通过强转化或弱转化方法转化为对应的回答集程序;
步骤三:调用回答集程序推理机求解步骤二中转化得到的回答集程序;
步骤四:将步骤三中通过回答集程序推理机求解输出的可能世界变换为输入LPMLN程序所对应的推理结果;
所述步骤二中强转化的操作步骤为:按照强转化方法将输入LPMLN程序转化为通用目标的回答集程序,使其符合LPMLN的强稳定模型语义;
所述步骤二中LPMLN程序的强转化具体分为四部分:
A、声明部分,该部分将程序的Herbrand域表示为ASP的事实形式,以便后续部分中使用;
B、生成部分,该部分的作用是枚举程序的全部规则子集;
C、测试部分,该部分用于消除不符合语义的规则子集;
D、评估部分,该部分用于为每个可能世界计算权重;
所述步骤二中弱转化的操作步骤为:按照弱转化方法将输入LPMLN程序转化为特定目标的回答集程序,符合LPMLN的弱稳定模型语义;
所述步骤二中LPMLN程序的弱转化具体分为三部分:
a、声明部分,该部分将程序的Herbrand域表示为ASP的事实形式;
b、强规则部分,该部分针对于程序中的强规则,将其直接去掉权重即可;
c、弱规则部分,该部分针对于程序中的弱规则,将其按照强转化的方法进行转化。
2.根据权利要求1中所述的一种基于回答集逻辑程序的LPMLN推理方法,其特征在于,所述步骤一中对输入的LPMLN程序进行语法分析的具体步骤如下:
步骤1.1:将输入的LPMLN程序文本按照语法定义解析为树状结构化数据;
步骤1.2:从程序的语法树中求出输入程序的Herbrand域;
步骤1.3:为每个规则分配一个规则标签,形式为“rlabel(i,X1,…,Xn)”。
3.根据权利要求1中所述的一种基于回答集逻辑程序的LPMLN推理方法,其特征在于,所述步骤四中将回答集程序推理机输出的可能世界变换为输入LPMLN程序所对应的推理结果的具体步骤如下:
步骤4.1:可能世界文字的映射,从回答集程序推理机的输出结果中删除转化过程中引入的文字;
步骤4.2:可能世界权重的映射,根据权重映射函数将可能世界的权重映射到满足LPMLN相应语义的权重。
4.一种实现权利要求1所述的基于回答集逻辑程序的LPMLN推理方法的LPMLN推理系统,其特征在于:包括输入处理模块、语法分析模块、转化模块、回答集逻辑程序推理机调用模块、结果处理模块和输出处理模块;
所述输入处理模块,用于处理用户输入的LPMLN程序和推理参数,其中推理参数包括强转化参数、推理类型参数和输出格式参数;
语法分析模块,解析输入LPMLN程序的语法结构并且计算其Herbrand域;
转化模块,用于将输入的LPMLN程序通过强转化参数来判断是进行强转化还是弱转化,通过转化为对应的回答集程序,根据不同的转化方法以及不同的推理机有不同的转化结果;
回答集逻辑程序推理机调用模块,根据用户指定的参数调用对应的推理机,并且输出推理机结果;
结果处理模块,将回答集逻辑程序推理机输出的结果转化为LPMLN推理输出结果;
输出处理模块,根据用户需求输出相应格式的推理结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710157112.1A CN107092515B (zh) | 2017-03-16 | 2017-03-16 | 一种基于回答集逻辑程序的lpmln推理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710157112.1A CN107092515B (zh) | 2017-03-16 | 2017-03-16 | 一种基于回答集逻辑程序的lpmln推理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107092515A CN107092515A (zh) | 2017-08-25 |
CN107092515B true CN107092515B (zh) | 2020-09-11 |
Family
ID=59648902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710157112.1A Active CN107092515B (zh) | 2017-03-16 | 2017-03-16 | 一种基于回答集逻辑程序的lpmln推理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107092515B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112766505B (zh) * | 2021-01-12 | 2024-04-05 | 深圳大学 | 非单调推理在逻辑动作语言系统刻画中的知识表示方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930437B (zh) * | 2009-06-19 | 2014-08-13 | 日电(中国)有限公司 | 在语义网进行查询的不确定与不一致本体推理方法和设备 |
US8576430B2 (en) * | 2010-08-27 | 2013-11-05 | Eastman Kodak Company | Job schedule generation using historical decision database |
CN103020714B (zh) * | 2012-12-10 | 2015-04-15 | 东南大学 | 一种基于生成-验证的认知描述程序的求解方法 |
CN103295064B (zh) * | 2013-06-27 | 2015-12-02 | 东南大学 | 一种对基于临床实践指南的活动图进行形式化的方法 |
CN106055536B (zh) * | 2016-05-19 | 2018-08-21 | 苏州大学 | 一种中文事件联合推理方法 |
-
2017
- 2017-03-16 CN CN201710157112.1A patent/CN107092515B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107092515A (zh) | 2017-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101301535B1 (ko) | 하이브리드 번역 장치 및 그 방법 | |
Engelen et al. | Integrating textual and graphical modelling languages | |
JPH09502039A (ja) | 自然言語に似た構造を用いたデータベースのモデル化及び照会に関する方法及び装置 | |
CN105512105A (zh) | 语义解析方法和装置 | |
JP3345763B2 (ja) | 自然言語翻訳装置 | |
CN106843849A (zh) | 一种基于文档的库函数的代码模型的自动合成方法 | |
CA3135717A1 (en) | System and method for transferable natural language interface | |
US11593076B2 (en) | Method for merging architecture data | |
CN107092515B (zh) | 一种基于回答集逻辑程序的lpmln推理方法及系统 | |
CN109155129B (zh) | 语言程控系统 | |
CN103559296A (zh) | 一种基于xml的scpi命令解析方法 | |
CN117093222A (zh) | 一种基于改进转换器模型的代码参数摘要生成方法和系统 | |
CN116126304B (zh) | 基于XML的扩展Lustre代码生成方法 | |
CN116776981A (zh) | 基于大型预训练语言模型的api关系推理方法及系统 | |
US11604774B2 (en) | Method and apparatus of converting schema in deep learning framework, and computer storage medium | |
CN114116779A (zh) | 基于深度学习的电网调控领域信息检索方法、系统和介质 | |
CN111984233B (zh) | 一种AltaRica模型中类的平展化方法 | |
Zhou et al. | Survey of intelligent program synthesis techniques | |
EP1832975A1 (en) | Automatic generation of source program | |
Wachtel et al. | Programming in natural language building algorithms from human descriptions | |
Quesada et al. | Parsing abstract syntax graphs with ModelCC | |
Leonard et al. | Automatic program generation from formal specifications using APTS | |
Chodarev et al. | Interconnecting YAJCo with Xtext: Experience Report | |
Štaka et al. | Markup language model transformation with ATL | |
Bertram et al. | Leveraging Natural Language Processing for a Consistency Checking Toolchain of Automotive Requirements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |