基于描述逻辑的服务编导模型形式化验证方法与流程

文档序号:17727385发布日期:2019-05-22 02:36阅读:487来源:国知局
本发明涉及智能分析技术,具体涉及一种基于描述逻辑的服务编导模型形式化验证方法。
背景技术
::近年来业界和研究者提出了基于编导(choreography)的新型服务组合构建思路,其基本思想是首先在全局观点下描述分布在网络上一组独立服务之间的组合和协作,然后自动生成基于服务编排(orchestration)的各个局部的实现。webserviceschoreographydescriptionlanguage,ws-cdl是一种基于全局视角的服务编导描述语言,从全局视角定义了一组服务之间的协作和交互必须遵守的规则。然而,ws-cdl作为基于xml的描述型语言,缺乏形式化的模型和验证机制,难以保证协作和交互的正确性,而服务编导模型正确性直接影响到参与交互的所有参与方,设计阶段的错误在系统实现后才发现并修复的代价与在设计阶段就发现并修复所花费代价成几何倍数关系。目前,针对ws-cdl的建模及验证研究主要集中于两点:1,服务编导模型的形式化、编导模型向编排模型的映射算法及全局行为与局部行为间一致性验证问题;2,组合服务工作流内部流程的正确性及工作流之间消息交互的正确性验证。如基于工作流(workflow,wf)的web服务组合及验证方法通过组合一系列相互衔接、自动进行的业务活动或服务任务,基于形式化或半形式化的方法对流程正确性(死锁,活锁,能否正常终止等)进行验证;基于时态逻辑(temporallogic,tl)的web服务组合及验证方法通过把系统的有限状态模型用形式化语言promela加以描述,将需要验证的系统性质表示为tl表达式,通过分析tl公式与promela模型交集是否为空判断模型是否满足特定属性;基于演绎推理的web服务组合及验证方法用逻辑公式描述系统及其性质,通过一些公理和推理规则来证明系统具有某些性质。前期研究对服务编导模型的一致性、完整性、状态可达性等验证相对较少,缺乏一套完整、系统的形式化推理验证机制,而模型本身的一致性、完整性等是保证模型正确性的基础,很有可能会导致组合服务无法正常交互。技术实现要素:本发明的目的在于提供一种基于描述逻辑的服务编导模型形式化验证方法。实现本发明目的的技术解决方案为:一种基于描述逻辑的服务编导模型形式化验证方法,包括如下步骤:步骤1、定义基于ws-cdl的服务编导元概念模型和领域规则,其中服务编导元概念模型包括服务编导元和元关系集合,领域规则包括一致性规则、完整性规则和演绎推理规则;步骤2、根据用户的服务协作需求,结合服务编导元概念模型,建立应用概念模型;步骤3、基于shoind的验证方法,对服务编导元概念模型、应用概念模型和领域规则进行转化,实现数据一致性、完整性验证及基于规则的推理验证。本发明与现有技术相比,其显著优点为:本发明具备传统系统验证方法的描述能力、自动化程度和验证效率,并且不存在状态爆炸问题,在推理的可判定性和知识的复用等方面也具备明显优势。附图说明图1为本发明基于ws-cdl的服务编导元概念模型的结构示意图。图2为本发明基于shoin(d)的验证方法的原理图。图3为本发明购物订单业务流程及信息交互图,其中(a)为购物订单业务流程图,(b)购物信息交互图。图4为本发明基于pellet引擎的编导模型可达性验证结果图。图5为vicodi,lubm,semintecandwine的平均查询时间柱状图。具体实施方式下面结合附图和具体实施例进一步说明本发明方案。本发明基于描述逻辑的服务编导模型形式化验证方法,基于ws-cdl规范构建服务编导元概念模型,提出模型的一致性、完整性及状态可达性演绎推理规则,在此基础上提出了把服务编导模型的验证问题转化为基于shion(d)的dl推理问题的方法dlv-cm,借助自动推理引擎实现数据一致性、完整性验证及基于规则的逻辑推理,具体描述见下文。一、基于ws-cdl的服务编导形式化建模通过总结服务编导主要思想,构建基于ws-cdl的服务编导元概念模型,同时给出模型一致性、完整性及推理演绎规则,为模型验证提供形式化基础。1.1基于ws-cdl的服务编导元概念模型基于ws-cdl的服务编导元概念模型是dlv-cm的基础和核心。首先给出服务编导及会话的定义。定义1服务编导(choreography,cho),描述了参与方之间就服务间的协作达成的合约,是关于全局的交互流程和约束规则的共识,描述了跨系统跨组织服务之间的互操作过程。服务编导表示为一个三元组:cho=<n,ro,s>其中:n为编导名称;ro为该编导涉及的所有角色,是开展会话的主角;s为编导包含的会话。定义2会话(session,s),一组完成特定功能的基本交互活动,是组成服务编导的基本单元。会话表示为一个四元组:s=<n,act,ro,pr>其中:n为会话名称;act为完成该会话功能的所有活动;ro为会话包含的角色;pr为会话开展的守护条件。在定义1、定义2基础上,参照ws-cdl规范,抽取服务编导中最为核心的概念及概念间关系,构建基于ws-cdl的服务编导元概念模型如图1所示。元概念模型中的概念来源于ws-cdl,并基于服务编导形式化建模、验证的目的扩展出会话、原子会话、复合会话、端口等概念。表1给出各主要概念的详细定义及描述。表1服务编导元概念其中,活动分为基本活动(basicactivity,abas)和结构活动(structuralactivity,astr)。abas是参与服务交互的基本活动单元,包括空行为(noaction)、哑行为(silentaction)、交互行为(interaction)、赋值行为(assign)、调用行为(perform)。astr以结构化的方式把其包含的基本活动组合起来,astr的定义如下:分别表示并行活动(parallel)、顺序活动(sequence)、选择活动(choice)和迭代活动(workunit),其中pi,i=1,2为活动执行守护条件。迭代活动中若pg为真活动a被执行,活动a执行完毕后若prep为真,活动a被迭代执行直到prep为假。dl是一族具备严格形式化语义的知识表示语言,是一阶谓词逻辑的可判定子集,它包含一组基本的概念构造子,如概念并概念蕴含全称约束等。用dl给出活动间关系约束:会话分为原子会话(atomicsession,satom)和复合会话(compoundsession,scom),原子会话为不可再分的会话,复合会话由原子会话复合而成。首先给出原子会话satom的定义:sno为角色ro上的一个空行为;ssilent为角色ro上执行的对当前会话不产生任何影响的哑行为;sassign为角色ro上的赋值行为,值e被赋给变量x;sreq为角色ro1和ro2间的请求交互行为,ro1通过通道ch@ro2向ro2发送请求x,ro2收到该请求保存在y;sresp为角色ro1和ro2间的应答交互行为,ro2通过通道ch@ro1向ro1发送应答y,ro1收到该请求保存在x;sreq-resp为角色ro1和ro2间的请求一应答交互行为,ro1通过通道ch@ro2向ro2发送请求x,ro2收到该请求保存在y,ro2通过通道ch@ro1向ro1发送应答u,ro1收到该请求保存在v;sperform为对会话cho的调用,x1,x2,x3,...为调用时的实际参数;null代表一个空会话,或者会话的终止。复合会话由原子会话通过连接关系复合而成,复合会话之间又可以组成更大的复合会话。复合会话scom的定义如下:sparallel代表2个并行执行的会话;ssequence为2个顺序执行的会话;schoice表示选择执行的会话,当守护条件p1为真时会话s1被执行,当p2为真时会话s2被执行;sworkunit表示迭代执行的会话,如果pg为真会话s被执行,会话s执行完毕后如果prep为真,会话s被迭代执行直到prep为假。会话间关系约束满足以下dl表达式:元关系集合包含了元概念间的语义关联。ws-cdl作为一种描述语言,并未给出概念间关系的精确定义。图1所示的服务编导元概念模型梳理了ws-cdl核心概念间的语义关联,提炼出“支撑”、“依赖”、“开展”等关系,并针对扩展的“会话”概念提出了“会话推演”、“会话同构”、“顺序”、“并行”等会话间关系。首先给出会话推演、会话同构两个关系定义。定义3会话推演(sesiondeduction),若守护条件p为真,同时会话s执行一个基本会话satom后其行为表现为会话s′,则称会话s与s′间存在推演关系。定义4会话同构(congruence),若两个会话在行为上完全相同,不具有可区分性则称会话间存在同构关系。会话应满足下列基本同构关系(用符号≡标识该关系):c1:[p1]s1+[p2]s2≡[p2]s2+[p1]s1c2:([p1]s1+[p2]s2)+[p3]s3≡[p2]s2+([p1]s1+[p3]s3)c3:[p1]s1+[p2]s2≡[p1∨p2]sc4:s1||s2≡s2||s1(s1||s2)||s3≡s1||(s2||s3)c5:s||sno≡ss||ssilent≡ss||null≡sc6:sno.s≡sssilent.s≡snull.s≡s表2给出元关系及其形式化语义(其中全称约束的解释为r、c分别表示关系和概念,δi为论域的非空集合)。表2服务编导元关系前面构建了基于ws-cdl的服务编导元概念模型,分别对模型包含的概念、关系进行了描述。建立元概念模型的目的在于引导和规范应用概念模型的建立,建模人员在元概念模型的规范和引导下从某服务编导所要实现的目标入手,分析该服务编导的参与者、涉及的角色、角色开展的活动及会话、以及会话的编排次序等,从而建立应用概念模型。如果说元概念模型是应用概念模型的抽象,那么应用概念模型是元概念模型的实例化,是用户最终需要的需求产品。1.2领域规则描述领域规则是对特定领域的约束条件的描述,用于维持业务结构或控制和影响业务行为,为模型验证过程提供验证标准。本发明将服务协作的领域规则分为一致性规则、完整性规则和演绎推理规则三类。领域规则并不是固定的,将在实际应用中由领域专家不断加以丰富和完善。模型的一致性包含多个方面,如语法一致性、语义一致性等,基于tableaux算法的一致性推理可以解决概念蕴含(subsumption)、概念等价(equivalent)、概念满足(satisfiability)等一致性验证问题。本发明将模型的一致性定义为两个方面:应用概念模型内部是否存在行为语义冲突;应用概念模型与元概念模型是否存在语义矛盾。针对一致性涉及的两个方面,定义以下基本一致性规则:rcon1:不存在同时满足sequence(si,sj)和sequence(sj,si),i≠j的两个会话。rcon2:满足sequence、parallel、choice、workunit其中之一关系的两个会话,不可能再满足其余三个中的任一个。rcon3:若会话si、sj同时满足sessiondeduction(si,sj)和congruence(si,sj),i≠j,则推演关系中与si存在excuting(si,satom)关系的基本会话satom只能为sno、ssilent或null。rcon4:若会话si、sj(i≠j)满足关系excuting(si,sj),则个体sj满足概念断言sj:satom。rcon5:应用概念模型中出现的个体在元概念模型中必须存在所属的类或关系。rcon6:元概念模型中两个类若不存在任何关系,则应用概念模型中实例化后的两个对象ci、cj不构成任何关系。rcon7:元概念模型中若ci、cj满足r关系:则应用概念模型中关系r两端对象所属类应分别是ci、cj。完整性规则被定义为应用概念模型必须满足元概念的关系约束。ws-cdl规约包含许多限制,这些限制由关键词must/mustnot、should/shouldnot、shall/shallnot等表示,是对概念间关联及概念属性的约束。例如:achoreographymustcontainoneormoresession,该规则用描述逻辑表示为:(其中关系约束的解释为(≥nr.c)i={a∈δi|#{b∈δi|(a,b)∈ri∧b∈ci}≥n}。r、c分别表示关系和概念,δi为论域的非空集合)。本发明从服务编排模型完整性分析的特点出发,在ws-cdl规约基础上重点给出以下服务编排模型完整性约束规则:演绎推理是从一般性的前题出发,通过推导得出具体陈述或个别结论的过程。每条规则都是形为ifantecedentthenconsequent的horn子句,其中前题(antecedent)是一系列子句(逻辑条件)的合取,结果(consequent)是对事实的断言。本发明定义的演绎推理规则主要针对服务编导模型的状态可达性验证。给出如下形式的演绎推理规则:上式表示若p为真同时会话s执行一个基本会话a后其行为表现为会话s′,即会话s推演为s′。推演前后的两个会话可以看做编导模型的两个状态,若编导模型在经历多个中间状态后可以顺利达到null,则该编导模型可正常终止。定义会话间的演绎推理规则如下:atom规则指明了原子会话的不可分性;struct规则说明了同构在会话推演中的应用;seq规则指原子会话被执行后顺序执行的会话最终的表现形式;par规则指基本会话被执行后并行执行的会话最终的表现形式;choice规则指若p1为真,会话s1经过基本会话a的执行后其形为表现为s′1,则选择会话[p1]s1+[p2]s2表现为s′1;nonblock规则指若pg为假,且[pg][prep]*s工作在非阻塞模式下,则该迭代执行的会话被直接跳过;norepeat规则指pg为真prep为假,同时经过基本会话a的执行s表现为s′,则该迭代执行的会话经过a的执行后表现为s′;repeat规则指若pg、prep均为真,同时经过基本会话a的执行s表现为s′,则该迭代执行的会话经过a的执行后表现为s′.[prep]*s,其中[prep]*s表示若prep为真则迭代执行s。二基于shoin(d)的服务编导模型验证方法在元概念模型引导下建立的应用概念模型反映了用户原始的服务协作需求,不仅模型内部可能存在矛盾或冲突,而且还很有可能存在违反服务组合和协作领域知识或规则的情况,因此需要引入形式化方法借助于符号推理系统,发现模型中存在的一致性、完整性及状态可达性等问题。2.1基于shoin(d)的服务编导模型验证机理shion(d)是dl的子集,在描述逻辑语言族中具备较强的知识描述能力,同时也是本体描述语言owldl的逻辑基础。目前,工业界已经推出多种基于一致性推理算法(tableau算法)的自动推理引擎,实现了数据一致性验证及基于规则的逻辑推理。服务编导模型基于shoin(d)的验证方法如图2所示。在构建ws-cdl形式化模型的基础上,将应用概念模型的概念、关系转换为shoin(d)abox中的实例集;将ws-cdl元概念模型的概念、关联及领域一致性、完整性约束规则转换为shoin(d)tbox中的公理集。在此基础上采用wsrl表示演绎推理规则,最终借助pellet自动推理引擎实现数据一致性、完整性验证及基于规则的推理验证。2.2服务编导模型及演绎推理规则转换算法根据dl的语法描述,本发明定义以下服务编导模型向基于shoin(d)的描述逻辑系统转换算法constructtbox&abox.该算法分别从元概念模型和应用概念模型构建tbox和abox.algorithmconstructtbox&aboxswrl结合了owldl和ruleml的子语言datalog,是将dl和horn子句相结合的语义规则描述语言,既实现了对规则知识的表示又可以保持dl语言的高效推理。并且,由于tableau算法支持附加swrl规则的本体推理,本发明采用swrl作为shoin(d)演绎推理规则的规则语言。构建规则转换算法constructrswrl如下:algorithmconstructrswrl前提和结论中的概念、概念属性、概念间关系都被转换为horn子句的前题和结果,通过逻辑连接符将horn子句的前题和结果分别组合为swrl的条件和推论。例如对于规则ratom,转换后的swrl表达式为:guard(sessions,preconditionp)∧excuting(sessions,satoma)∧boolean(preconditionp,true)→sessiondeduction(satoma,null)2.3服务编导模型验证查询sparql是为rdf开发的一种查询语言和数据获取协议,可以用于查询任何用rdf来表示的信息资源,同时sparql提供了orderby、limit、offset等条件谓词保证了查询结果的高效性。描述逻辑中的推理验证问题都可以规约为描述逻辑概念的可满足性问题。首先根据冲突问题的类型定义基于sparql的查询条件,然后在查询条件的语义约束下借助于pellet推理引擎推理发现满足条件的个体,即引发冲突问题的应用概念。若查询结果为空则表明应用概念模型满足此条规则约束,否则以表的形式返回违反规则的个体。实施例为了验证本发明方案的有效性,以电子商务中购物订单编导模型为例,在元概念模型指引下构建应用概念模型,并基于shoin(d)借助pellet实现对模型一致性、完整性、状态可达性验证。1服务编导应用概念模型的构建客户向销售商发送购物订单请求,销售商收到请求后将向银行审核顾客的信用记录,同时向供货商查询商品的库存,若信用良好且库存充裕则接受该订单,否则拒绝该订单。购物订单业务的业务流程及信息交互如图3所示。该服务编导涉及四个角色:buyer、seller、bank、supplier,根据定义2,角色间的交互活动按功能划分为五个会话:sporequest、screditcheck、sinvcheck、sporesponse、sporeject。会话sporequest完成订单请求功能,buyer通过通道ch@seller向seller发送订单请求po,seller收到请求后通过通道ch@buyer向buyer回复确认消息poack,buyer将自己的订单状态变量置为“sent”,seller将自己的订单状态变量置为“received”。sporequest=sreq(buyer.po→seller.po,ch@seller).sresp(buyer.poack←seller.poack,ch@buyer).sassign(buyer.postate="sent").sassign(seller.postate="received").会话screditcheck完成信用查询功能,seller向bank发送信用查询请求ccreq,bank对请求给出回复ccresp=“good”/“bad”。最后,bank和seller分别将相关状态变量置为“sent”、“received”。screditcheck=sreq-resp(seller.ccreq→bank.ccreq,seller.ccresp←bank.ccresp,ch@seller).sassign(seller.ccresp="good"/"bad").sassign(bank.ccstate="sent").sassign(seller.ccstate="received").会话sinvcheck完成库存查询功能,seller向supplier发出库存查询请求,supplier将该货物的库存状况icresp=“sufficient”/“short”回复给seller,并分别对相关状态变量赋值。sinvcheck=sreq-resp(seller.icreq→supplier.icreq,seller.icresp←supplier.icresp,ch@seller).sassign(seller.icresp="sufficient"/"short").sassign(supplier.icstate="sent").sassign(seller.icstate="received").若客户信用良好且库存充裕,seller向buyer作出接受订单的回复,同时订单的状态置为“completed”。sporesponse=sresp(buyer.poresp←seller.poresp,ch@buyer).sassign(buyer.postate="completed").sassign(seller.postate="completed").若客户信用记录和库存状况其中之一不满足,则seller向buyer作出拒绝订单的回复,同时订单的状态置为“uncompleted”。sporeject=sresp(buyer.poresp←seller.poresp,ch@buyer).sassign(buyer.postate="uncompleted").sassign(seller.postate="uncompleted").基于业务流程,组合各会话构建该业务的服务编导如下:cho=sporequest.(screditcheck||sinvcheck).(sporesponse+sporeject)其中各会话的守护条件分别为:pcreditcheck=pinvcheck=(buyer.postate="sent"∧seller.postate="received");pporesponse=(seller.ccresp="good"∧seller.icresp="sufficient"∧seller.ccstate=seller.icstate="received");pporeject=(seller.ccresp="bad"∨seller.icresp="short"∧seller.ccstate=seller.icstate="received").经转换算法constructtbox&abox,上述应用概念模型转换为shoin(d)本体,公理集tbox和实例集abox如表3所示。表3订单服务编导模型的公里集和实例集2模型推理及验证在对服务编导模型进行一致性、完整性验证时以rcon1、rcom1为例,在pellet控制台下输入sparql查询命令:select?a?bwhere{?axmlns:sequence?b.?bxmlns:sequence?a.}和select?awhere{?ardf:typexmlns:choreography.unsaid{?axmlns:contain?b.}.}结果显示不存在违反rcon1、rcom1的个例(限于篇幅这里不再给出相应推理结果界面)。对两类规则逐条加以验证,直至排除所有可能的不一致、不完整情况。在进行服务编导模型状态可达性验证时,首先给出cho的推理过程(其中,<>内给出了该步推理用到的规则,a*代表若干步连续的基本会话)。step1:a*=req-resp(buyer.po→seller.po,buyer.poack←seller.poack,ch@buyer).assign(buyer.postate="sent").assign(seller.postate="received").step2:a*=req-resp(seller.ccreq→bank.ccreq,seller.ccresp←bank.ccresp,ch@seller).assign(bank.ccstate="sent").assign(seller.ccstate="received").step...cho=sporequest.(screditcheck||sinvcheck).(sporesponse+spxreject)→...→null若会话执行的守护条件成立,且该会话的每一步基本会话被顺利执行,则该会话所代表的状态可达。若编导cho的每一步会话都被顺利执行,在经过若干中间状态后编导最终到达终止状态。本例中,我们特意对pcreditcheck中的状态变量进行错误赋值(如令seller.postate=“”)使得会话执行的守护条件pcreditcheck无法满足,则step2无法执行,因此编导无法到达状态spoquest之后的所有状态。根据ratom、rseq2,通过查询会话与null之间的会话推演关系是否成立来验证会话状态的可达性,输入查询命令:select?awhere{?ardf:typexmlns:session.?axmlns:sessiondeduction?null.}推理结果如图4所示。pellet引擎只返回会话spoquest及其包含的四个原子会话,也即上述会话可被成功执行,对应的系统状态均可达;而spoquest的所有后续会话均不满足命令中的会话推演关系,因此这些会话对应的系统状态将不可达。建模人员需要重新审视所建编导模型,排查导致状态不可达因素,直至编导顺利终止。除了上述案例,我们还将dlv-cm应用于其它案例的建模验证,包括在线购物案例(su,j.,sun,y.:choreographyrevisited,lecturenotesincomputerscience,2014,pp.13-25),顾客-供货商案例(wieczorek,s.:modelingandmodel-basedtestingofservicechoreographies,avmakademischeverlagsgemeinschaft,2011)以及供应链管理中涉及的案例(barros,a.,hettel,t.,flender,c.:processchoreographymodeling,internationalhandbooksoninformationsystems,springer-verlagberlinheidelberg,2010)。上述案例的验证过程较为高效,在2ghz处理器和1gb内存的计算机上推理时间均可控制在1秒之内,这个结果也与haarslev及moller(haarslev,v.,moller,r.:consistencytesting:theraceexperience,lecturenotesincomputerscience,2000,pp.57-61)的研究结果相一致,他们指出即使对于最复杂的推理问题描述逻辑的推理过程也会在3秒内结束。但该结论对于服务编导模型的推理也总是成立的吗?为了评估dlv-cm的推理效率,我们选择了本体推理研究中四类最具代表性的本体(motik,b.,sattler,u.:acomparisonofreasoningtechniquesforqueryinglargedescriptionlogicaboxes,in:proceedingsofthe13thinternationalconferenceonlogicforprogrammingartificialintelligenceandreasoning(lpar),penh,cambodia,november,2006):vicodi,lubm,semintec和wine来展开试验,四类本体代表了四种不同复杂度的基准数据集,通过不断增加abox中实例的个数(生成从100到1mio.的不同数量级的数据集来增加abox中实例的个数)来比较分析它们的平均推理时间。为了准确计算不同规模数据集的推理时间我们针对不同的情况使用了不同的查询模式,从最简单的遍历一个概念的所有个体到最复杂的遍历所有概念的所有个体。具体的测试方法参照文献(cimiano,p.,haase,p.,ji,q.,mailis,t.,etal.:reasoningwithlargea-boxesinfuzzydescriptionlogicsusingdlreasoners:anexperimentalevaluation,proceedingsoftheeswcworkshoponadvancingreasoningonthewebscalability&commonsense,2008)。图5展示了四类本体的平均查询时间,其中每类本体abox中实例的个数由100增加到1mio.,每个数量级上的查询时间取测试100次后的平均值。同样地,本测试运行在2ghz处理器和1gb内存的计算机上。同我们预测的一致,随着个体数量级从100增加到1mio.,查询时间也明显增加。以semintec为例,对于从100到10,000的较小规模的数据集平均查询时间少于1秒钟,但是,随着数据集规模超过10,000查询时间显著增加,当数据集增加到最大1mio.时查询时间急剧增加到将近800秒(即17分钟)。dlv-cm中服务编导本体与semintec类似,服务编导领域的复杂度不超过商务服务领域,并且服务编导模型能够通过owldl片段构建而不涉及高级dl构造算子。对于大多数服务编导领域的应用模型而言,它们的个体规模都不超过100000,因此最坏情况下的推理时间也将限制在2分钟之内。此外,在自动化程度方面,基于tublean算法的dlv-cm,因算法本身具备较高的成熟度,拥有pellet、racer等多种工具支撑,保证了较高的自动化程度。在知识复用方面,描述逻辑中的元概念模型及模型验证规则在构建不同的应用概念模型时均可重复利用,具备较强的知识复用性。在验证效率方面,基于dl的dlv-cm既可以验证有穷状态系统,又可以使用归纳的方法处理无限状态问题,很好的规避了状态爆炸问题。综上所述,dlv-cm具备传统系统验证方法的描述能力、自动化程度和验证效率,不存在状态爆炸问题,同时在推理的可判定性和知识的复用等方面具备明显优势。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1