基于自我意识的Agent通信语言研究*
2018-10-08路文华罗钧旻李俊伟高武奇
路文华,罗钧旻,李俊伟,高武奇
(西安工业大学计算机科学与工程学院,陕西 西安 710021)
1 引言
唯识心理学研究成果表明,世界中的一切存在,物质的或精神的,都是心识的随缘变现[1,2]。为了把这一成果用于语义Web[3]中使互联网上的信息便于计算机理解与处理,文献[4]认为文献[5]没有考虑概念间关系的紧密程度而引入了模糊本体的概念。文献[6]认为文献[4]的研究没有考虑概念间关系的动态变化性,且指出动态变化性是由于系统中的主动成份Agent[7]作用的结果,把Agent引入模糊本体的概念提出了动态本体的概念。文献[8]在文献[6]的研究基础上结合文献[9,10]对动态本体描述语言进行了研究。文献[11]认为语义是与Agent的自我意识分不开的,以动态本体描述语言[8]为基础对Agent的自我意识进行了研究,并且认为Agent间的通信就是Agent对其自我意识的解释,但没有深入研究。本文结合知识类别与自我意识关系的研究成果[12,13]和语言学关于语气[14]及疑问词的研究成果[15,16],对经典Agent通信语言[17,18]没有把语气和要表述的知识类别进行分离及没有重视语义的自我意识性进行改进,设计了一个基于自我意识的Agent通信语言ACLBSC(Agent Communication Language Based on Self-Consciousness),使Agent间能更加明确地解释其自我意识。
2 ACLBSC消息结构
经典Agent通信语言虽然描述了通信主体以及通信内容,但是并没有明确通信的语气,不能肯定通信的目的是请求还是告知,也没有确定通信内容属于Agent自我意识的哪一部分,即不能肯定Agent通信内容属于哪种知识类型,在描述内容的细节中也没有体现通信内容的焦点。为了解决这些问题,我们把ACLBSC的消息结构分为通信层、语气层、自我意识层和内容层四层,使得Agent之间通信时能迅速确定通信主体、通信语气、知识类型以及通信内容。各层含义如下:
(1)Agent之间要通信首先要确定通信的主体,也就是消息的发送者和接收者,消息中描述通信主体的部分称为通信层。
(2)语气是指通过一定的语法形式,表明说话者对所说内容的态度,在不同的语种中,一般有陈述、祈使、疑问、感叹等语气,在对话中要确定语气来明确对通信内容的态度,消息中对这部分的描述称为语气层。
(3)通信内容来自通信者对自身结构和状态变化的认知,也就是Agent对自我的认识,我们称为Agent的自我意识。Agent的自我意识就是Agent的知识,知识从大的方面来分可分为描述性知识、过程性知识和控制性知识三类,消息中描述Agent知识类型的部分称为自我意识层。
(4)在明确通信内容所属的知识类型基础上,消息中对通信内容的细节描述部分称为内容层。
因此,我们把ACLBSC的消息结构定义如下:
〈Message〉
〈Sender/〉
〈Receiver/〉
〈Mood/〉
〈Self_consciousness/〉
〈Content/〉
〈/Message〉
3 ACLBSC中的语用词
ACLBSC中的语用词如表1所示。
Table 1 Pragmatic words of all layers表1 消息结构各层语用词表
3.1 通信层语用词
通信层的作用主要在于确定通信的接收者和发送者,因此使用Sender和Receiver两个语用词分别表示。其中,Sender(消息的发送者)的值为发送者AgentID,Receiver(消息的接收者)指明此消息的接收者列表。
3.2 语气层语用词
语气层用于表明发送者对发送内容的态度,根据发送者使用通信内容所期望达到的目的,可分为陈述语气、疑问语气、祈使语气、感叹语气。目前在ACLBSC中设计了疑问和陈述两种语气,用Request、Inform和Not_understood三个语用词来表示请求、告知和不知道,其含义如下:
(1)Request语气的消息用于希望对方执行某些动作或请求获取对方某些信息。
(2)Inform语气的消息可以直接告知接收者自身结构和状态的相关信息,也可以作为对Request类型消息的应答。
(3)Not_understood语气的消息用于对Request和Inform类型消息的整体回答,表示无法理解通信内容。
3.3 自我意识层语用词
消息中描述Agent知识类型的部分称为自我意识层,Agent的知识类型是Agent对其结构的总的认知,在动态本体描述语言DODL(Dynamic Ontology Description Language)中把Agent的结构定义为Belief、Act、Intention、Desire和Loop五部分,从知识类型分,Belief属于描述性知识,Act和Intention为过程性知识,Desire既有描述性知识也有过程性知识,Loop属于行为控制性知识。因此,自我意识层Self_consciousness选用Belief、Act、Intention、Desire和Loop五个作为语用词,旨在更加清晰地表明所交互的内容属于Agent自我意识的哪一具体部分。
3.4 内容层语用词
自我意识层是对Agent知识类型的描述,内容层用来描述各类知识的细节。在DODL中,世界万物使用基于互表性的AOR模型描述,即用主体(Agent)、客体(Object)以及它们之间的关系(Relationship)表示。Agent与Agent之间的关系包括互相认知和交互,互相认知就用其Belief中的熟人来描述,Agent与Agent之间的交互就是我们正在讨论的Agent与Agent之间的通信;Agent与Object之间的关系包括认知和操作,认知就用其Belief中的Object来描述,操作就用Act和Intention来描述;Object与Object之间的关系就体现在各自的组成中。
人们用自然语言进行交流,不管用疑问词或不用疑问词,都是为了获得AOR中的部分内容,为了明确对话的焦点,我们在内容层Content中引入了疑问词作为语用词,包括Who(Whose、Whom)、What、Which、Where、When、How、How Long、How Many、How Much、Why、General-question和General-answer。疑问词就是用来传达问句中疑问信息的载体,在特指疑问句中疑问词能够很好地突出疑问焦点。英语中的疑问词可分为疑问代词与疑问副词两类,疑问代词用于问人或物,疑问副词用于问何时、何地、如何、原因等。根据这个特性,我们把Who(Whose、Whom)、What、Which这些疑问代词用于描述Agent和Object,把Where、When、How、How Long、How Many、How Much、Why、General-question、General-answer这些疑问副词用于描述Agent和Object之间的联系。在通信中使用疑问词可以明确信息焦点,更好地达到理解通信内容的目的。
以上疑问词在汉语中与其对应的疑问词含义为谁、什么、哪个、哪里、何时、怎样、多长、多少个、值多少、为什么、一般疑问、一般回答。在ACLBSC中,Who用于描述Agent的相关信息;What用于描述某一动作或Object或Class的相关信息;Which用于描述做出某种选择的相关信息;Where用于描述实体位置信息;When用于描述一定时间后实体状态信息;How用于描述动作的相关信息;How Long用于描述事物的时长或长度信息;How Many用于描述实体或动作的数量信息;How Much用于描述完成某件事所需花费的代价;Why用于描述结论的理论依据;General-question用于描述某一信息的一般疑问;General-answer是对一般疑问的回答。
其中How用于询问或告知过程性知识,Why用于询问或告知控制性知识,其它用于询问或告知描述性知识。General-question表示一般疑问,只用于Request语气中;General-answer表示对一般疑问的回答,只用于Inform语气中。
4 ACLBSC语用词的语义
我们以自我意识层语用词和内容层语用词对应关系(见表2)为主对ACLBSC语用词的语义进行描述。
Table 2 Basic vocabulary correspondence table of self-consciousness layer and content layer表2 意识层基本词汇和内容层基本词汇对应表
4.1 Belief
Belief是对Agent的当前状态的描述,包括对熟人Agent、客体及其之间关系的描述。这一结构的Agent通信内容是在熟人Agent、客体及其之间关系认识的基础上,根据不同的通信目的来描述Belief中的内容。
Belief的语气层有Request、Inform和Not_understood三种,Request语气的消息用来获取接收者Agent所认知的某一熟人Agent、客体或它们之间关系的信息,Inform语气的消息用来告知发送者Agent所认知的自己的Belief信息,也可作为Request语气的应答。内容层语用词有Who(Whose、Whom)、What、Which、Where、How Long、How Many、How Much、General-question、General-answer,各个语用词含义如下:
(1)Who。在Request中,Who表示询问接收者Agent所认知的具有某种属性或功能的熟人Agent的标识;在Inform中,Who表示对Request的回答,给接收者发送自己所认知的具有某种属性或功能的熟人Agent的标识。
(2)What。在Request中,What表示询问接收者Agent所认知的具有某种属性的Object的标识或某些实体具备的关系;在Inform中,What表示对Request的回答,给接收者发送自己所认知的具有某种属性的Object的标识或某些实体的关系。
(3)Which。在Request中,发送者发送自身Belief中多个熟人Agent或Object或Class的标识,Which表示询问接收者Agent在所给选项中选择一个希望获取的熟人Agent或Object或Class的标识;在Inform中,Which表示对Request的回答,给接收者发送自己选择的熟人Agent或Object或Class的标识。
(4)Where。在Request中,Where表示询问接收者Agent所认知的某一Agent或Object的位置信息,也指这一Agent或Object与其它Agent或Object的关系;在Inform中,Where表示对Request的回答,给接收者发送自己所认知的这一Agent或Object与其它Agent或Object的关系。
(5)How Long。在Request中,How Long表示询问接收者的某个熟人Agent的Act中某一动作完成所需时间,也可以用于询问某一件事物的长度信息;在Inform中,How Long表示对Request的回答,给接收者发送自己所认知的某个熟人Agent完成某一动作所需的时间信息,也可以发送自己所认知的某一事物的长度信息。
(6)How Many。在Request中,How Many表示询问接收者Agent所认知的Agent或Object或Class的数量;在Inform中,How Many表示对Request的回答,给接收者发送自己认知的Agent或Object或Class的数量信息。
(7)How Much。在Request中,How Much表示询问接收者Agent的熟人Agent完成某一动作、意图、愿望所需价值;在Inform中,How Much表示对Request的回答,给接收者发送自己认知的熟人Agent完成某一动作、意图、愿望的价值信息。
(8)General-question。表示发送者询问接收者对某一命题的认可度。
(9)General-answer。表示发送者回答接收者对某一命题的认可度。
4.2 Act
意识层的Act是指Agent所能做的动作的集合,单个动作由动作名、形参表、前置条件、后置条件和动作体组成。这一结构的Agent通信内容是在自身的动作以及自身所认识熟人Agent所具备的动作的基础上,根据不同的通信目的来描述Act中的内容。在这里给DODL定义的Act组成成分加入了新元素:Value用于记录完成某个动作所需花费的价值,Finish-time用于记录完成某个动作所需的估计时间。
Act的语气层包括Request、Inform和Not_understood三种,Request语气的消息可以请求获取单个或多个Act的信息,Inform语气的消息用来告知其他Agent某些动作的相关信息,也可作为Request语气的应答。内容层分别由What、Which、How、How Long、How Many、How Much、General-question、General-answer组成,各个语用词含义如下:
(1)What。在Request中,What表示询问接收者Agent的Act中某一动作的标识、动作名、前置条件、后置条件、函数体;在Inform中,What表示对Request的回答,给接收者发送自己的Act中某一动作的详细信息。
(2)Which。在Request中,发送者发送自身Act中多个动作的标识,Which表示询问接收者Agent在所给选项中选择一个希望获取的动作标识;在Inform中,Which表示对Request的回答,给接收者发送自己选择的动作标识。
(3)How。在Request中,How表示询问接收者某一动作的函数体;在Inform中,How表示对Request的回答,给接收者发送自己的Act中某一动作的函数体信息。
(4)How Long。在Request中,How Long表示询问接收者执行Act中某一动作的所需时间;在Inform中,How Long表示对Request的回答,给接收者发送自己Act中执行某一动作的所需时间。
(5)How Many。在Request中,How Many表示询问接收者Agent的Act中所有动作的数量;在Inform中,How Many表示对Request的回答,给接收者发送自己Act中具备多少个动作。
(6)How Much。在Request中,How Much表示询问接收者Agent完成某一动作的所需价值;在Inform中,How Much表示对Request的回答,给接收者发送自己完成某一动作的所需价值。
(7)General-question。表示发送者询问接收者对Act中某一动作信息的认可度。
(8)General-answer。表示发送者回答接收者对某一动作信息的认可度。
4.3 Intention
意识层的Intention是指Agent为可以实现的愿望所制订的规划序列中最适合完成的动作集合,单个意图Intention由实参表和动作标识符组成。这一结构的Agent通信内容是在自身的意图以及自身所认识熟人Agent的意图的基础上,根据不同的通信目的来描述Intention中的内容。
Intention的语气层有Request、Inform和Not_understood三种,Request语气的消息用于请求获取与当前意图相关的信息,Inform语气的消息用来告知当前意图的相关信息,也可作为Request语气的应答。内容层由What、Which、How、How Long、How Many、How Much、General-question、General-answer组成,各个语用词含义如下:
(1)What。在Request中,What表示询问接收者Agent意图中所包含的动作序列;在Inform中,What表示对Request的回答,给接收者发送自己意图中的动作序列。
(2)Which。在Request中,发送者发送自身Intention中多个动作的标识,Which表示询问接收者Agent在所给选项中选择一个希望获取的动作;在Inform中,Which表示对Request的回答,给接收者发送自己选择的动作标识,告知自己想要获取接收者意图中的某一个动作。
(3)How。在Request中,How表示询问接收者意图中执行某一动作的详细信息;在Inform中,How表示对Request的回答,给接收者发送自己的意图中执行某一动作的详细信息。
(4)How Long。在Request中,How Long表示询问接收者执行意图中某一动作的所需时间;在Inform中,How Long表示对Request的回答,给接收者发送自己意图中执行某一动作的所需时间。
(5)How Many。在Request中,How Many表示询问接收者Agent的意图中动作序列的数量;在Inform中,How Many表示对Request的回答,给接收者发送自己意图中具备多少个动作。
(6)How Much。在Request中,How Much表示询问接收者Agent完成意图中某一动作的所需价值;在Inform中,How Much表示对Request的回答,给接收者发送自己完成意图中某一动作的所需价值。
(7)General-question。表示发送者询问接收者对Intention中某一动作信息的认可度。
(8)General-answer。表示发送者回答接收者对Intention中某一动作信息的认可度。
4.4 Desire
意识层的Desire是指Agent想要达到或保持的状态以及想要具备的能力的集合。这一结构的Agent通信内容是在自身的愿望以及自身所认识熟人Agent的愿望的基础上,根据不同的通信目的来描述Intention中的内容。在这里给DODL语言定义的Desire中加入了新元素:Finish-time用于记录完成愿望所需的估计时间。
Desire的语气层有Request、Inform和Not_understood三种,Request语气的消息用于请求获取愿望的相关信息,Inform语气的消息用来告知愿望的相关信息,也可作为Request语气的应答。内容层分别由Who(Whose、Whom)、What、Which、When、How Long、How Many、General-question、General-answer组成,各个语用词含义如下:
(1)Who。在Request中,Who表示询问接收者Agent所希望认知的具有某种属性或功能的熟人Agent的标识;在Inform中,Who表示对Request的回答,给接收者发送自己所希望认知的熟人Agent的标识。
(2)What。在Request中,What表示询问接收者Agent希望所认知的具有某种属性的Object的标识或某些实体之间的关系,也可以是希望具备的某个动作标识;在Inform中,What表示对Request的回答,给接收者发送自己愿望中希望认知的具有某种属性的Object的标识或某些实体之间的关系或希望具备的动作标识。
(3) Which。在Request中,发送者发送自身愿望中多个熟人Agent或Object或Class或Act的标识,Which表示询问接收者Agent在所给选项中选择一个希望获取的熟人Agent或Object或Class或Act的标识;在Inform中,Which表示对Request的回答,给接收者发送自己选择的熟人Agent或Object或Class或Act的标识,告知自己想要获取接收者愿望中的某一个熟人Agent或Object或Class或Act的标识。
(4)When。在Request中,发送者发送时间消息,When表示询问接收者Agent愿望中一定时间后的Agent将要达到的状态信息;在Inform中,When表示对Request的回答,发送自身Agent状态信息,告知自己愿望中一定时间后将要达到的状态。
(5)How Long。在Request中,How Long表示询问接收者达成愿望的所需时间;在Inform中,How Long表示对Request的回答,给接收者发送自己达成愿望的所需时间。
(6)How Many。在Request中,How Many表示询问接收者Agent的愿望中希望获取的熟人Agent、Object、Class的数量;在Inform中,How Many表示对Request的回答,给接收者发送自己愿望中希望获取多少个Agent、Object、Class。
(7)General-question。表示发送者询问接收者对Desire中某一信息的认可度。
(8)General-answer。表示发送者回答接收者对Desire中某一信息的认可度。
4.5 Loop
意识层的Loop是主体Agent由Belief趋向Desire的控制机制,也就是说,行为控制机制使各组成部分形成有机的统一体——Agent的自我意识。这一结构的Agent通信内容是在自身所认识的熟人Agent的基础上,根据不同的通信目的来描述Loop中的内容。Loop类型的消息主要用于Agent间互相了解彼此的推理依据和历史信息,因此内容层应有语用词When和Why,其含义如下:
(1)When。在Request中,When表示询问接收者Agent某一时间点的熟人Agent或Object或Class状态信息;在Inform中,When表示对Request的回答,给接收者发送自己在Loop推理过程中某一时间点的熟人Agent或Object或Class状态信息。
(2)Why。在Request中,Why表示询问某一结论的依据,也就是Loop的推理过程;在Inform中,Why表示对Request的回答,给接收者发送自己某一结论的推理过程。
5 ACLBSC的使用及其实例分析
ACLBSC的消息结构分为通信层、语气层、自我意识层、内容层,要把ACLBSC应用到实际中,需要根据实际通信情况对各层内容分析,主要步骤如下:
(1)确定Agent通信的对象,给出通信层Sender和Receiver的值。
(2)明确通信目的,是用于陈述一件事,还是提出一个疑问,给出语气层Mood的值。
(3)分析通信内容属于Agent结构的哪一部分,给出自我意识层Self_consciousness的值。
(4)基于Agent自身对通信内容的认识,使用DODL语言来描述,给出内容层Content的具体描述。
下面给出一个简单的Agent通信实例,使用以上步骤对通信过程当中消息结构的形成过程进行分析,并给出相应的ACLBSC形式化描述。AgentA询问AgentB所认识的熟人中谁具备Act1能力,Act1能力信息包括动作名、形参表、前置条件、后置条件;AgentB接收到AgentA的询问消息后,AgentB会在自身所认识的熟人中,根据AgentA发送的Act1的形参表、前置条件、后置条件来查询具备该能力的熟人标识;AgentB查询到自身所认识的熟人中,AgentC具备与该能力相同的形参表、前置条件、后置条件,则把熟人AgentC的标识发送给AgentA。这个通信实例分为两个阶段,即AgentA向AgentB询问阶段和AgentB向AgentA回复阶段,下边将分别对两个阶段中消息结构形成过程进行分析。
在AgentA向AgentB询问阶段,AgentA请求获取AgentB认识的熟人中具备Act1能力的Agent标识,发送Act1能力的信息,包括动作名、形参表、前置条件、后置条件,消息结构形成的具体分析步骤如下:
(1)AgentA请求获取AgentB的熟人标识,通信层Sender为AgentA,Receiver为AgentB。
(2)通信目的为请求获取某些信息,也就是疑问语气,语气层Mood为Request。
(3)请求获取的内容属于AgentB的熟人信息,熟人信息在Agent的Belief中,自我意识层Self_consciousness为Belief。
(4)通信内容为请求获取具备Act1能力的熟人Agent标识,对熟人内容的描述在内容层的Who中。在DODL中,主体Agent的Belief中主要有主体所认识的熟人Agent、客体Object、类Class,熟人Agent由熟人信念、熟人能力、熟人意图、熟人愿望组成。在此次通信中,AgentB是主体AgentA所认识的熟人。AgentA请求获取的信息是主体AgentB所认识的熟人Agent信息,请求获取具备能力Act1的熟人,也就是给出熟人能力的信息,表示请求获取具备该能力的熟人Agent标识。
通过以上分析可以得出如下所示的形式化描述:
〈Message〉
〈Sender〉〈AgentA/〉〈/Sender〉
〈Receiver〉〈AgentB/〉〈/Receiver〉
〈Mood〉Request〈/Mood〉
〈Self_consciousness〉BELIEF〈/Self_consciousness〉
〈WHO〉
〈Act〉
〈Act1〉
〈Parameter List/〉
〈Precondition/〉
〈Postcondition/〉
〈/Act1〉
〈/Act〉
〈/WHO〉
〈/Message〉
在AgentB向AgentA回复阶段,AgentB认识的熟人Agent具备Act1能力的是AgentC,AgentB把熟人AgentC的标识回复给AgentA,消息结构形成的具体分析步骤如下:
(1)AgentB把自身熟人AgentC标识告知AgentA,通信层Sender为AgentB,Receiver为AgentA。
(2)此次通信目的为告知信息,也就是陈述语气,语气层Mood为Inform。
(3)告知的内容是熟人AgentC的标识,属于AgentB的熟人信息,熟人信息在Agent的Belief中,自我意识层Self_consciousness为Belief。
(4)通信内容为告知熟人AgentC的标识,对熟人内容的描述在内容层的Who中。在DODL中,Belief中主要有主体所认识的熟人Agent、客体Object、类Class,熟人Agent的标识就在熟人Agent中。
通过以上分析可以得出如下所示的形式化描述:
〈Message〉
〈Sender〉〈AgentB/〉〈/Sender〉
〈Receiver〉〈AgentA/〉〈/Receiver〉
〈Mood〉INFORM〈/Mood〉
〈Self_consciousness〉BELIEF〈/Self_consciousness〉
〈Statement〉
〈WHO〉
〈AgentC/〉
〈/WHO〉
〈/Statement〉
〈Degree〉
1
〈/Degree〉
〈/Message〉
6 结束语
本文在研究目前经典Agent通信语言的基础上,把要表述的内容和语气分离,设计出基于自我意识的Agent通信语言的四层结构:通信层、语气层、意识层和内容层;结合语气词的相关含义,把内容层中的wh词与AOR模型联系,以自我意识层和内容层语用词对应关系为主对ACLBSC语用词的语义进行了描述,把Agent之间的通信看作是对Agent自我意识的解释,完善Agent的自我意识。通过实例阐明了ACLBSC消息的形成过程其实是Agent在其自我意识上的推理。
为了使ACLBSC能更好地应用到实际中,识别其他Agent语言,我们下一步将研究其他Agnet通信语言语用词,在理解其含义与作用的基础上,使用ACLBSC中的语用词来达到与其相同的目的,也就是表现ACLBSC语用词对其他Agent通信语言语用词的包容性,以说明ACLBSC更具通用性。