用于问题解决和指导的多代理合作体系结构的制作方法

文档序号:2570496阅读:497来源:国知局
专利名称:用于问题解决和指导的多代理合作体系结构的制作方法
优先权本申请要求申请日为2000年12月22日的美国临时专利申请No.60/257996的优先权。
背景技术
本发明涉及用于指导和问题解决的系统,尤其是一用于指导和问题解决的计算机系统的多代理合作体系结构。
为个人提供基于脚本训练的计算机系统已公知。美国专利No.5,597,312(BLOOM et al.)公开了此系统。而且,在医学领域提供计算机辅助指导的系统也已公知。此系统在美国专利No.4,945,476(BODICK et al.)中公开。然而,这些系统不能利用“黑板”计算机系统结构的优点。
在计算机系统结构中的单词“黑板”是从医学外伤领域借用而来,在医学外伤领域,外伤医生花长时间诊断并处理到医院来的病人。来外伤病房的病人经常受严重伤害或疾病并需要立即看护。此时,单个医生不可能处理整个处理病人的任务。这是因为每个医生是一特殊领域的专家而且没有任何单个领域足以治疗并处理病人。因此,需要医生团队合作才能处理病人。假如医生在交流他们的诊断/发现时,都抢病人并同时开始诊断/发现或说话,结果将是混乱的(或缺乏信息有可能导致误诊)。
本发明用来保持顺序的系统将一白色记事帖附加在病人的担架上,每个医生将其诊断/发现以及建议的检查和药方写在其上,这样,每个医生都能看见其他所有先前医生所说及其诊断。由于处理和诊断中存在冲突,这非常重要。而且,在再观察病人时保持顺序也是非常重要(即脑科专家在作出诊断或给出发现之前需要血压信息等)。此解决分布式合作问题通常采取的方案适用于具有黑板体系结构的人工智能(AI)领域。
现有技术中已存在采用黑板体系结构以提供指导和诊断/解决问题的计算机系统。例如,美国专利No.5,448,722(LYNNE et al.)公开了基于计算机采用多电子黑板的诊断系统和诊断模块。实际上,美国专利No.5,101,362(SIMOUDIS)公开了典型的专家系统,包括一知识库、一工作存储器,也被称为“黑板”、以及一控制端口或推理发动机。Simoudis362专利公开了一种带有多个知识源并能有效执行黑板数据操作的专家系统。
然而,以上提到并描述的专利未公开采用在一指导应用中采用多代理和黑板的体系结构。因此需要一体系结构在一指导环境中来提供多代理合作处理的优点和益处。尤其是,需要一用于辅助系统采用多代理和黑板的体系结构,包括一指导代理、一学生数据库、一训练/测试数据库和多域从属代理,其中每个域从属代理具有一特定领域(域)的专业知识。
而且,现有的指导系统趋向于信息中心而不是用户中心。用户中心系统可调谐成更适合一特定用户需求且因此向一用户提供了更大的信息保留。因此需要一可使一指导系统成为用户中心的体系结构许多现有系统难以改变和更新。通常系统软件必须通过下载和/或替换完成。具有一模块体系结构的系统具有多个易于更新和修改的代理,其中特定代理可分别修改或更新或者代理可整体增加或删去。而且,一模块体系结构易于角色扮演,用户很容易用它来代替系统代理。
许多现有系统未采用传输控制协议/网际协议(TCP/IP)链接以允许体系结构代理彼此通信。此配置使得处于不同地理位置的用户可同时访问系统以完成角色扮演或其他交互作用。
因此,本发明的一个目的是提供一用于问题解决和指导其特征在于多个代理和黑板的体系结构。
本发明的另一目的是提供一用户中心的用于问题解决和指导的体系结构。
本发明的另一目的是提供一模块化的用于问题解决的体系结构。
本发明的还一目的是提供一采用TCP/IP连接以提供代理间通信的体系结构。

发明内容
本发明为用于一包括许多域从属代理的指导和问题解决系统的体系结构,每个包括一知识库、多个域从属代理和多个黑板。每个黑板之一属于或专用于每个域从属代理或域独立代理之一。一黑板代理传送黑板间的消息,因此域从属和域独立代理可通过从专用黑板上发送消息并读取消息来实现彼此通信。域从属和域独立代理通过传输控制协议/网际协议链接与其专用黑板通信。
在会话期间,产生一令牌且域独立代理包括一控制代理,此控制代理在域从属和域独立代理间选择通过令牌以使得仅仅在具有令牌时起作用。域独立代理也包括一通过黑板与域从属和域独立代理通信的指导代理以使得计算机系统用户能在用于指导会话的域从属代理间选择。
此体系结构包括一学生数据库和一训练/测试数据存储库或数据库和大量包括一数据库代理的域独立代理。数据库代理通过黑板向域从属和域独立代理提供数据并从域从属和域独立代理接收数据用于发送到学生数据库上。因此,整个指导会话期间的用户行为可被记录在学生数据库上以用于追踪和未来使用。
此体系结构也包括一用户显示器和一图形前端,且独立代理也包括一用户接口代理,用于向用户显示包括来自域从属代理知识库和训练/测试数据储存库的信息。而且,用户接口代理也接收用户输入并通过黑板将它们直接传送给适当的域从属和域独立代理。
指导系统可安装在超过一个能使不同地理位置用户在整个指导会话期间同时角色扮演的计算机上以下将结合附图详细描述本发明的实施例,以更完全理解本发明的特性和范围。


图1是依据本发明体系结构实施例的指导系统的示意图;图2是如图1系统结构的域独立层的示意图;图3是表示图1和2的控制代理所执行处理的流程图;图4是表示图1和2的控制代理所执行的初始化的流程图;
图5是表示图1和2的控制代理所执行的系统初始化的流程图;图6是表示图1和2的控制代理所执行的代理初始化的流程图;图7是表示图1的代理所执行的单个代理初始化的流程图;图8是表示图1和2的控制代理所执行的通信初始化的流程图;图9是表示图1和2的指导代理所执行的指导、角色扮演或训练会话初始化的流程图;图10是表示图1和2的控制代理所执行的令牌初始化的流程图;图11是表示图1和2的控制代理所执行的中断处理的流程图;图12是表示图1和2的黑板代理所执行的处理的流程图;图13是表示图1和2的数据库代理所执行的处理的流程图;图14是表示图1和2的指导代理所执行的处理的流程图;图15是表示图1和2的指导代理所执行的信息编译的流程图;图16是表示图1和2的UI代理所执行的初始化的流程图;图17是表示图1和2的UI代理所执行的处理的流程图;图18是表示图1和2的UI代理所执行的用户中断处理的流程图;图19是表示用于如图1的域从属代理的内部体系结构的示意图。
具体实施例方式
本发明的体系结构基于以下概念在一复杂问题解决环境中,具有通过提供合作达到整体目的或解决方案的专业知识的多个代理或知识源是有益并且实际上有时是关键的。而且,在提供用于诸如正电子X射线层析术(PET)、核医疗学和核磁共振成像(MRI)的复杂领域的训练和诊断辅助的计算机系统中,不仅支持指导而且捕获问题解决处理本身的系统体系结构尤为重要。本发明的体系结构通过在对象或域的宽范围内结合多个代理提供易于问题解决、指导、鉴定和测试的系统。
本发明的体系结构采用多个代理及其具有的专业知识。本发明体系结构的域从属代理可看作专家共同工作以解决问题或提供指导。具有此多代理环境的优点在于当仍然保持整个系统的一些集中控制时可达到分布式计算模式。
本发明系统结构的另一优点在于问题解决或训练是用户中心而不是信息中心。也就是说,整个系统结构被调谐成满足一特定用户技术和需要。所有信息(问题解决、训练、测试或其他)被修改成适合单个用户。这确保了系统在指导或辅助用户诊断方面有效得多。
常用的采用本发明系统结构实施例的计算化指导系统如图1中的标记20所示。当如下按照一指导系统描述本发明体系结构,可知,此体系结构可用于提供问题解决辅助,包括但不局限于,提供用于医学诊断装备的并行诊断的计算机系统中。
如图1所述,指导系统20为一系统结构,包括域从属代理1-n,标记为22、24、26、28和30,以及一用户接口(UI)代理32、一数据库代理34、一控制代理36、一黑板代理38和一指导代理40。每个代理,无论是域从属或域独立,均为一单个可运行程序或软件模块。如以下将要描述的,代理通过黑板42彼此通信,其中每个代理具有其自己独立专用的黑板。如以下更详细的描述,每个代理通过传输控制协议/网际协议(TCP/IP)链接43a-43j与其专用黑板通信。
数据库代理与一训练/测试数据储存库或数据库44和一学生数据库46通信。这些数据库采用多种形式并可利用各种存储设备。例如,其中包括静态数据的训练/测试数据库可被下载到光盘(CD)并从CDROM驱动器中读出。
UI代理与格式化并通过用户显示器52向用户显示信息系统48的图形前端通信。
图1的指导系统20可被下载到一个单独的或多个计算机上。在后面的情况下,多个计算机可彼此通信以使得系统在训练脚本期间可允许地理位置不同的用户彼此角色扮演。如下所述,当加入多个计算机,本发明的体系结构允许分布式处理,然而,也提供所加入计算机系统的中心控制。
以下将讨论图1中本发明的域独立和从属代理以及其他组成部分。
域独立代理如图2的体系结构的域独立代理形成了此系统的基本指导外壳。这些代理是静态的,即不管在不同域(对象或领域)如何实现指导环境,它们都不改变。这些组核心代理管理整个系统结构的功能,用户与系统的交互以及所实施的训练角色扮演和测试。
在多计算机指导系统中,当多计算机中每一个如图1的标记20所示,计算机中只有一个域独立代理作为中心控制单元。因此,中心控制单元为单个机器并在一多计算机的分布式环境中与多个域代理协同工作。
以下将描述在只有一个计算机的指导系统中每个域独立代理的功能。
1)控制代理控制代理36(图1和2)是负责整个体系结构控制流的主要代理。控制代理的处理如图3所示。如图3所示,控制代理控制指导系统的初始化(启动)、运行和终止。它处理所有系统和用户驱动的中断并通过从代理到代理传递令牌来控制每个代理所允许的中心处理量。只有当一代理接收到令牌时,它才能向外读或写任何信息。一旦操作结束,此令牌将被释放回控制代理,控制代理再将其传递到下一代理。
当系统或用户产生一中断时,控制代理停止整个系统的操作,处理终端,然后重新开始操作。在系统关机请求的情况下,控制代理有序终止所有代理和系统。
参照图3,在用户首先打开系统之后,即标记52的系统启动步骤,控制代理执行初始化步骤54。系统通常的初始化需要使本发明中的代理、数据库以及其他系统结构彼此通信从而使得系统功能正确。
如图3的初始化步骤包括五个如图4所示的初始化子步骤。第一子步骤是系统初始化56。在初始化系统时,控制代理执行如图所示的处理。首先,如58所示,在图1的用户显示器52上显示一初始的“欢迎屏幕”(飞溅屏幕)。当发生以下情况时控制代理指示UI代理(图1和2的32)显示飞溅屏幕。
首先,如62和64所示,所有必须的编译程序和相关系统层驱动程序已从系统(图1的20)硬盘下载到操作系统中。之后,如66所示,错误驱动程序,也就是系统硬盘驱动程序(监控器、鼠标、键盘等)将读入包括安装了指导系统的系统(图1的20)硬件程序概要的文件。系统初始化最后的步骤68是下载指导系统的目录结构,包括如图1代理的普通区域的路径位置、操作系统的目录结构和用于数据库和数据储存库,包括如图1的学生驱动器46和训练/测试数据储存器44,的驱动器字母的初始化。
这样,控制代理完成如图4系统初始化子步骤56,因此,目录结构(路径)、驱动程序、编译程序和系统硬件配置信息已被下载。控制代理接下来处理代理初始化步骤72。
在代理初始化步骤72期间,控制代理将剩余代理下载到指导系统的操作系统中。如图6的74所示,控制代理读一域独立代理程序概要列表,即需要下载的域独立代理列表。因此,如76所示,域独立代理被下载到指导系统的操作系统中。
如图7所示,如每个代理所下载的,在步骤78它读取,例如一将被编译或检查将被下载的驱动程序的,启动脚本。如82和84所示,当下载每个域独立代理时,也下载代理从属驱动程序并创建代理的黑板(文件)。最后,如86所示,当下载第一域独立代理时为域独立代理创建全局列表。将第一域独立代理及其黑板格式信息作为输入加入全局列表。在下载时,每个随后的域独立代理及其黑板格式信息被加入到全局列表中。
如图6的88和92所示,采用域从属代理程序概要列表为域从属代理重复以上处理。当下载域从属代理并创建域从属代理全局列表时,执行图7的步骤。
在初始化指导系统的过程中创建所有代理启动列表以及域独立和域从属程序概要列表。
如图6的94所示,控制代理向每个代理发送一代理初始化消息之后,下载域独立和域从属代理。此消息基本上表示已被下载和准备下载的每个代理。
控制代理可直接与每个代理通信。控制代理是唯一具有此能力的代理。其他代理必须通过如图1的黑板42和黑板代理38与另一代理通信。参照图1以及前述,每个代理通过传输控制协议/网际协议(TCP/IP)链接43a-43j与专用黑板通信。因此,下一初始化子步骤,如图4的96所示,是通信初始化,用来建立代理与其黑板之间的TCP/IP链接。
控制代理通过图8的处理执行通信初始化。如98和102所示,控制代理建立(用于TCP/IP)的唯一端口以及用于每个黑板和域独立和从属代理的监听程序。监听程序允许黑板和代理确认哪些消息或信息包与之相关。然后,假如指导系统只为一计算机,在步骤104和106更新在域独立和域从属代理的全局列表中的这些特定端口和机器名、本地主机。如1 08所示,控制代理然后通过发送确定所有代理启动且能正常通信的测试消息来测试通信通道(TCP/IP链接)。
在此完成指导系统下载。当在图1的用户显示器52上显示飞溅屏幕(图5的58)时迅速执行以上步骤和子步骤。
如图4的110所示,初始化处理的下一步骤是会话初始化。此步骤包括用户与如图1的系统20的交互作用,因此建立用于当前训练/测试会话的参数。当控制代理请求会话初始化时,如图9的步骤112,在参照图14讨论指导代理时将详述指导代理(图1的40)所执行的处理。
在步骤112中,用户登录系统并选择是从其先前会话离开处继续执行或是开始一新会话。假如选择前者,指导代理向用户提供一代表他们过去已经部分尝试并可继续的各种课程计划或测试的书签列表。
假如用户选择开始一新会话,他或她选择主题以及训练水平,每个主题对应一域从属代理,是他或她希望被指导/测试的。训练水平可通过用户具有的专业指示水平、用户在特定领域/主题具有的经验或两方面的一些组合来确定。而且,假如开始一新会话,用户选择他所希望的系统操作模式。用户可在以下三种模式之间选择训练模式在此模式中,用户请求系统评估课程计划的各方面,然后进入代理详细的论证处理。用户具有(在任何时间点)停止系统的能力并询问各种问题以澄清诸如“为什么”的系统正在做什么以及诸如“为什么不”和“假如……则什么”的附加问题。在每个课程计划结束时,用户被给出其所参与的特殊课程计划中一系列问题的选项。
角色扮演模式在此模式中,用户在指导系统的其余部分扮演域从属代理的一些角色。此模式允许用户获得映射实际环境的专业化特定行为而不仅仅是一主题或课程计划。此模式也可在多用户级上工作,其中指导系统中的两个或更多可连接并方便多用户来扮演不同角色。
测试模式在此模式中,系统在被选定的主题范围内基本地测试用户。在此模式中,用户选择一用于测试的特殊领域或者系统让用户通过一组结构化测试。测试也可基于从过去域系统的交互中获得的用户弱点。
一旦用户作出其会话选择,会话选择则被下载到控制代理的存储器中,如图9的114。
如116所示,可初始化用户接口,包括图1中的用户显示器52和图形前端48,因此可以适当的系统屏幕向用户显示。控制代理指示UI代理,图1的32,执行如图16的处理以初始化用户接口。在讨论UI代理时将更详细地讨论图16的处理。
如步骤118所示,控制代理之后创建对应于用户在步骤114的会话设置的学生数据库(图1的46)的入口。因此,系统可追踪用户被指导的主题,用户所作的测试,等等。
会话设置也可使得控制代理更容易将附加路径加入到所创建的目录结构中。这由控制代理在步骤122完成。例如,在多用户角色扮演会话期间假如将使用多计算机则需增加路径。而且,如122所示,计算机错误驱动程序需要重新初始化。这个例子将需要在系统CD ROM驱动中有一不同的光盘(用户希望学习肝癌且当前CD涉及乳癌)。
如图4的124所示,在初始化处理中由控制代理执行的最后子步骤是令牌初始化。此令牌是由控制代理产生且同时只能由一个代理拥有的钥匙。控制代理将令牌直接传递到一接收代理,也就是说,令牌不通过接收代理的黑板传递到接收代理。代理处理令牌,无论一域从属代理或一域独立代理均可从处理代理的黑板请求信息或将信息传送到处理代理的黑板,从而与指导系统的其余部分进行交互。一代理不能将信息传递到它自己的黑板也不能接收来自它自己黑板的信息,除非此代理拥有令牌。这就是为什么控制代理必须直接将令牌传递到接收代理而不是通过其黑板将令牌传递到接收代理。
令牌初始化处理如图10所示。令牌初始化第一步,如126所示,控制代理将令牌传递列表读入其存储器。令牌传递列表以控制代理将传递令牌给它们的顺序列出了指导系统的代理(包括域独立和域从属)。所给出的一些代理,典型地域独立代理,将比其他代理更经常需要令牌,令牌传递列表将包括许多代理备份列表。例如,令牌传递列表可列出一第一域独立代理、黑板代理、一第二域独立代理且再黑板代理。
随后,如128所示,定义令牌。令牌实际上是一由控制代理随机产生的值。为每个指导会话产生一不同的令牌值。
一旦令牌产生,如图10的132和134所示,控制代理访问用于域从属和独立代理的全局列表并与将令牌值通知每个列表。因此,将令牌值通知域从属和域独立代理并因此当依据令牌传递列表将令牌传递给它们时确定它们处理令牌。
以上完成了图3和4的初始化步骤54。用户现在可与指导系统依据更容易选定的会话设置交互接收指导或测试。当用户与指导系统交互时,控制代理执行令牌流控制任务,如图3的136所示。
在令牌流控制过程中,控制代理依据进行会话时的令牌传递列表在代理之间直接(不通过它们的黑板)传递且退回令牌。此处理的唯一中断是当有一系统产生或一用户产生中断时,如图3的138所示。
只在两组特有的情况下产生一中断;用户初始化或者是系统产生一错误。在任一情况下,控制代理通过执行如图11所示的处理来处理中断。当发生一(用户初始化或系统所产生的)中断时,如142所示,控制代理向所有代理广播中止操作直到之后再通知。控制代理直接向所有其他代理广播,也就是说,当令牌通过时,中断消息不通过代理的黑板。控制代理直接向代理广播中断,这是因为假如它仅仅将中断消息放于黑板上,代理将不得不等待直到接收到提醒发生中断的令牌。
一旦代理中止操作,控制代理,如图11的144、146和148所示,收集包括最近UI屏幕处理、用户询问的最后问题以及系统向用户所问的最后问题的信息。最近UI屏幕处理为一列表,包括中断发生时用户所在的屏幕,此屏幕窗口在使用中,用户在屏幕上具有她或他的鼠标(屏幕的x和y坐标),等等。
如152和154所示,控制代理公式化包括询问用户的初始问题列表的中断消息。在步骤144、146和148所收集的信息允许控制代理询问用户有助于解决中断的智能问题。中断消息可为特定代理(152)或基于系统(154)。基于系统消息包括诸如提醒用户未连接键盘或鼠标或是某CD需要被放置在CD ROM驱动器中的典型错误消息。特定代理消息典型地来自用户初始中断,属于一用户关于域从属代理主题的问题。由于域从属代理相应一用户行为产生了一中断,特定代理消息也可产生。如156所示,中断消息被发送到UI代理,UI代理再将消息经由如图1的图形终端48发送到用户显示器52。
假如系统产生中断(无法找到一数据文件,等等)系统中断将提示用户纠正路径,放入一不同的存储数据的CD或媒质,等等。假如用户纠正问题,如158所示,控制代理广播一中断终止消息,如162所示,向代理发它们可继续执行它们分别的处理的信号。如原始的中断消息,直接(不通过代理黑板)向代理广播中断终止消息。
假如中断是用户所产生的且如164所示,所请求的活动是系统从属,例如一用户请求普通的系统帮助、系统特征(鼠标、监控分辨率等等)重配置,控制代理,如166所示,将基于用户响应更新硬件程序概要数据或其他系统相关数据。控制代理然后将广播(直接),每162,一中断终止消息从而发出代理能继续执行它们各自处理的信号。
参照168,假如用户初始中断基于用户想询问一域从属代理的问题,或响应一用户行为通过一域从属代理产生中断,那么,如172所示,控制代理选择适当的域从属代理以处理用户响应特定代理消息152。步骤142、144和146所收集的信息使得控制代理能正确选择域从属代理。在步骤172,在控制代理监视处理下,域从属代理响应用户所问的问题产生回答。然后在174控制代理广播(直接)一中断终止消息从而向代理发出继续执行他们各自处理的信号。
参照图3的182,假如中断(无论它是用户初始化或系统所产生的)为一系统关机(或终止)请求,控制代理,在步骤184期间,(直接)向所有代理广播关机请求,只为指导代理缓存悬而未决的消息从而允许完成处理其所有信息。控制代理向用户显示一终止屏幕且在186终止自身。
2)黑板代理每个代理与一单个专用黑板(图1的42相关)相关,此黑板为系统存储器中用于属于特殊代理的信息消息的保留区域。所有消息具有一预定格式且以编年或优先权顺序发送到黑板上。
当具有令牌时,所有代理无需黑板代理辅助,向它们的黑板发送消息并从它们的黑板读取消息。所有来自或从其他代理发至一代理的通信(消息)被通过黑板代理(图1和2的38)转移到代理专用黑板。也就是说,黑板代理将消息放置在代理的黑板上,这样代理可浏览消息(当其具有令牌时)而且一代理在黑板上公告一消息(当其具有令牌时),这样黑板代理可获知消息。同样地,黑板代理响应传送至且来自代理黑板,并且因此,传送至且来自代理的同步消息。每个代理,只有当它具有令牌时,无需黑板代理辅助,可从其黑板上读取消息或将消息写到黑板上。
发送每个在代理黑板上发布的消息的标识符。有两种标识符一黑板代理标识符和一普通标识符。当代理发送一消息且需要黑板代理将其转移到另一代理的黑板上时,设置黑板代理标识符。普通标识符表示消息本身需要一些其黑板上公告消息的代理的行动。当一代理接收令牌时,它读取在黑板上具有普通标识符设置的任何消息。
黑板代理所执行的处理如图12所述,首先,在190黑板代理检查看是否具有令牌。假如黑板代理不具有令牌,不执行任何操作(“无操作”),如191所示。如192所示,当黑板代理从控制代理获得令牌时,它访问一包含所服务的代理顺序的优先列表。对于列表中的每个代理,在步骤196和198,黑板代理检查看代理黑板上是否有一具有黑板代理标识符设置的消息。假如无代理黑板上具有黑板代理标识符设置,黑板代理放弃令牌,如202所示。
假如在一代理的黑板上有任何消息包括黑板代理标识符设置,黑板代理对每个204依据优先权浏览每一个并对每个206执行以下行为。假如包括黑板标识符的消息不优先或都有相同优先级,黑板代理依次处置/处理消息,如208所示。
在步骤206之后,黑板代理所执行的处理依赖所标识(黑板代理标识)的消息是“读”请求或是“写”请求。假如它从另一代理或一数据库搜索信息,一代理发送一“读”请求消息。假如消息为一读请求210,黑板代理,在212,浏览来自消息的源代理信息、所请求的信息和源代理(信息源)黑板协议。黑板代理然后组成和格式化一消息,如下所述,将被放于源代理的黑板上。
如214所示,假如源代理已经作为令牌环部分被黑板代理服务或“看见”,也就是说,在令牌所拥有的当前周期,那么,如216、218和222所示,黑板代理将重排优先列表以当它仍然具有令牌时再次服务或“看见”源代理。
步骤212中被源代理格式化的消息在步骤220优先。消息的优先级为用于代理请求信息(发布读请求的代理)的优先级和所请求的信息优先级的组合。在全局优先列表中作为域从属和域独立代理全局列表的列可发现代理的优先级。然后在步骤222,消息被发送到源代理黑板。对具有黑板代理标识的请求代理黑板上的下一消息处理如步骤224、226和228所示。假如不再有此标识消息,如步骤230和232所示黑板代理释放令牌。
当代理想发送消息到另一代理或数据库,一代理将一“写”请求消息发布在其黑板上。如234所示,写请求可通过数据库代理(236)发布在数据库代理黑板上或通过响应代理(238)发布在其余代理黑板上。
当数据库代理发布写请求方面,如236所示,黑板代理获取将被发布的数据库链接或实际数据(链接为对图形或多媒体文件等的处理)。然后黑板获取目的代理信息及其黑板消息协议。黑板代理也浏览目的代理的数据格式(假如消息包含数据而不是链接则此格式将接受数据)。黑板代理然后公式化来自数据库代理的新消息用于发布到目的代理的黑板上。
假如写请求来自一非数据库代理的代理,那么,如238所示,黑板代理依据目的代理的黑板协议重格式化写请求。
如240、242和244所示,一旦消息被正确公式化,它以一来自消息源代理的优先级和消息优先级发布在目的代理的黑板上。
如246所示,黑板代理然后继续下一具有用于代理的4黑板代理标识的消息。如248和252所示,在已排序一特殊代理的消息之后,黑板代理然后选出优先级列表中的下一代理并重复以上处理。如254和256所示,当黑板代理已处理在其优先级列表中的所有代理,它释放令牌至控制代理。
3)数据库代理数据库代理,如图1和2的34,用于与数据库进行信息通信。此代理用作数据库黑板(数据库代理黑板)和单个数据库之间的主接口。数据库代理以优先级顺序处理发布在数据库黑板上的所有请求。两个主系统数据库为训练/测试数据储存库和学生数据库,分别如图1的44和46。前者存储用于训练、测试和角色扮演环境的静态数据且典型地包括与用于指导、角色扮演和测试的多媒体和抽样信息有关的域(领域或对象内容)特定信息。也可有应用在训练和测试域的(关于域从属代理共同特性)所有程序信息。学生数据库存储学生信息(或概要)数据。
数据库代理所执行的处理如图13所示。在步骤260和262,数据库代理检查令牌和标识消息,与所有代理一样,数据库代理可处理的两种基本请求是如264所示读请求以及来自学生数据库(图1的46)其他代理的写请求,其中此读请求来自用于训练、角色扮演和测试的训练/测试数据储存库(图1的46)的其他代理请求信息。
在用于来自数据储存库信息的读请求的情况,如266所示,数据库代理将确定在数据库代理黑板上公布的消息的请求或源代理(代理请求信息)。而且,数据库代理将读取信息表,此信息表为一脚本文件,列出了所有不同的数据类型以及它们如何被处理。数据库代理也访问代理全局列表并利用请求/源代理的名字来确定它是本地或远程的,后者将在以下与多计算机有关的单元进行讨论。
然后,如268所示,数据库代理将确定所请求的数据是文本或图形形式。假如是后者,如272所示,所请求数据将被(带有黑板代理标识符设置)发布在数据库代理黑板上。图形或其他多媒体格式信息的请求,如274、276、278和282所示,将导致一来自用于处理所请求的信息路径的数据库代理的响应消息。假如读请求导致多种处理,数据库代理将返回一包含一带有特定覆盖信息(278)的主要数据路径的消息。
假如在数据库代理黑板上发布一写请求,数据库代理将利用学生注册信息访问学生数据库中的学生概要,如284所示。在学生数据库中创建一用于学生的每个指导对话的会话表格。如286所示,数据库代理访问会话表格,然后写入信息/数据,如288所示。
4)指导代理指导代理,如图1和2的40,响应学生在利用指导系统学习、角色扮演和测试的成果,同时也追踪他们的进步。此代理也记录在学生数据库指导或测试会话过程中涉及将被检查的特定课程计划的所有学生行为。在用户通过测试估算的过程中,用户/学生的学生数据库入口可用来加强或减弱。例如,学生所作的测试包括在先前指导会话和测试过程中学生实践难度的主题的问题。
除了如图7所述的所有代理普通的初始化处理,指导系统的任务还有在启动软件时初始化指导、角色扮演或测试会话。当控制代理发送会话初始化请求,如图9的步骤112,指导代理执行以下行为,如图14所示。
首先,指导代理(直接)请求用户接口代理显示作为用户与系统交互的第一屏幕的注册屏幕292。如294所示,用户可采用一现有注册ID和密码登陆或创建一新概要296。如298所示,一新概要的创建触发了一标准模板调用,此调用可创建一带有ID的空学生概要和在学生数据库的注册和一空组表示学生之前从未使用系统的书签。
假如已记录此注册,指导系统将浏览学生的概要和书签。基于此信息,指导代理将公式化一组可能的用户想为此会话做的任务或会话项目。在302向用户显示会话项目。在304学生然后选择会话项目。
假如学生选择一学习会话306,那么,如308所示,指导代理将存储在训练/测试数据储存库的会话模板下载到计算机操作系统中。模板,实际上是一型板,包括依据用户/学生所作选择来自训练/测试数据储存库的会话数据。假如学生希望从其上次会话离开处继续,或希望重做课程计划,系统将为那些课程下载带有书签和适当会话数据的上次已知模板。指导代理然后将发送会话信息给控制代理和其余系统代理的黑板。
假如用户选择测试310,指导系统,如312所示,将安装一用于测试的通用模板。指导代理也将浏览所有存储在关于学生将被测试的特殊领域的学生数据库的历史数据。指导代理然后将在其他代理的黑板上发布两个消息。一个通知所有代理将有一测试会话且第二个则向所有代理请求测试信息。
假如学生请求一角色扮演会话314,指导代理将首先确定会话是单选手或是多选手,如316所示。假如是一多选手请求,如318所示,指导代理将询问用户附加机器地址以及不同用户或学生的角色。指导系统然后将建立一带有附加机器的通信通道(TCP/IP)并向所有机器的控制代理发送一消息,使得请求或主要机器或计算机的域独立和域从属代理的请求同步。之后,所有相连机器的所有指导环境将反映请求/主要机器的行为。以下将描述多机器配置的附加信息。
如320所示,指导代理然后将下载角色扮演模板和会话数据。指导代理然后将角色扮演信息发送到控制代理并在所选域从属代理上公告角色扮演标识符以反映所选对象内容或主题。
308、312和320的处理结束后,指导代理将释放对控制代理的控制。
在通常系统操作期间,当令牌从控制代理传递到指导代理时,指导代理将执行一例程书面保持操作,如图15所述。在指导代理在322检查到它具有令牌且在324检查标识消息,它将收集和编译自从上次它接收令牌以来的所有学生登陆信息并将其存储在学生数据库的学生概要中(步骤326和328)。此书面保持将包括学生概要的域独立和域从属学习。
域独立信息将包括鼠标时间、所问问题、所重复的问题和课程计划的模板基本信息。模板基板信息包含重要问题的标志,例如将产生一将被记录在学生概要中的事件。
域从属信息将包括用于特殊课程计划的脚本(即什么是关键概念、教学点,等等),以及课程特定指南,例如学生学习课题的时间量、在特殊课题练习所需时间量以及从一用于测试的特殊课题中所选问题的时间量。
此学生概要信息被记录在学生数据库中的一组表格上,此表格包含与课程计划、用户产生中断、用户所问问题、向用户提出的问题、用户对问题的回答、各种答案、鼠标时间、用户提交的图形时间等等相关的信息。所有事件将有一代表编年顺序和所花时间量的时间戳。最后值得注意的是,此处理将在系统关机之前完成(步骤184,图3)。
5)用户接口代理此代理控制所有向用户显示的信息。它用来配置图形前端,图1和2的48,从而以用户最形象化格式显示相关信息。此代理也捕获所有用户输入(包括中断)。用户接口(UI)代理采用API与图形前端通信从而允许以任何语言写入前端且此前端独立于代理控制。
系统用户接口初始化如图16所示且如332所示,首先读取一包含系统输入输出设备(I/O设备)及其设置信息的脚本文件。在系统安装期间产生此脚本且此脚本包含关于屏幕分辨率、声卡存在、鼠标、键盘以及其他输入设备配置的信息。屏幕分辨率然后被设置且在步骤334初始化I/O设备。在UI初始化的下一步骤,336和338,控制代理使得UI代理绘出根显示窗口或主显示窗口,其中将发生指导/角色扮演/测试。以上与根窗口布局有关的信息为所有想向用户显示信息的代理设置并相关的全局变量,也就是说,此信息不能物理地显示在此窗口外。
图17标识UI代理的操作。当控制令牌被传递到用户接口代理,342,在344,UI代理检查其黑板上是否有任何标识事件(或未被看见的事件)。在无此事件的情况下,如346所示,UI代理在其黑板上发布一消息用于传递到指导代理黑板上,此消息与自从上次它(UI代理)收到控制令牌以来的学生行为(鼠标、文本等等)有关。
在标识消息或事件348的情况下,事件基本上可分为两种一用户输入请求事件352和一显示信息请求事件354。当系统请求用户提供系统输入时发生一用户输入请求事件352。当向用户显示信息时发生一显示信息请求事件354。
在一用户输入请求事件情况下,信息基本上可再分为两种用于用户文本输入的请求256或用于用户图形输入的请求358。在用户输入文本信息请求的情况下,如362所示,从黑板上发布的消息中,UI代理识别用户应输入哪个窗口、在窗口上应显示的文本以及请求输入的选择或格式。然后高亮度窗口且在其中显示适当的信息,如364所示。用户然后提供他或她的文本输入,此输入将作为一事件在UI代理的黑板上公布以用来传递到请求用户输入的代理黑板上,如366所示。最后,事务被发布在指导代理黑板上,如368所示。UI代理然后进行黑板上下一标识消息(普通标识符)处理。
所请求的信息可选地为图形,358,例如请求用户选择一特殊图形区域、高亮度、填充或绘出一特殊图形,等等。如372所示,必须下载一包括适当图形及其他请求信息的窗口,例如一文本提示。而且,必须下载覆盖信息(用于用户通过现有图形输入显示的一层)和一组图形工具(选择工具、绘图工具等等)。之后,在步骤374,高亮度窗口,并显示带有图形和文本提示的窗口、覆盖图形和图形工具。一旦用户已在覆盖层输入信息,此层被记录且对此层的处理被传送到请求代理,如376所示。最后,事务被发布在指导代理黑板上,如378所示。UI代理然后进行在其黑板上下一标识消息(普通标识符)的处理。
本发明简单显示354的发布在UI黑板上的信息也可按特性分成文本382或图形384。如386和388所示,无论新屏幕内容是文本或图形,必须利用来自发布在UI代理黑板上消息的信息,从训练/测试数据储存库中检索其中显示新屏幕内容和新屏幕内容模式的父窗口。然后显示文本(392)或图形(394)。在任一情况下,假如新屏幕内容是模态,那么新窗口(具有新屏幕内容)受其父窗口限制,用户不能将带有新信息的窗口拖出父窗口的边界。假如信息为非模态的,那么用户可将窗口拖到屏幕上的任何位置。
从发布到代理黑板上的消息中获得的信息附加项是将被显示的新内容的信息标记。在文本信息情况下,这些标记(在386的文本链接)将包括多段用户问问题文本(例如为什么、为什么不、假如……则什么等等)信息。此信息来自将消息传送到UI代理的域从属代理。在图形的情况下,图形链接(388)为覆盖文件形式,其中假如在某区域用户移动鼠标,将显示信息(例如高亮度特定区域)其中用户可询问类似问题。
如前相关于控制代理和图11所述,发生两种中断,一用户启动中断且一系统产生中断。如图18所示,当用户中断系统402时,UI代理通知控制代理404此中断。控制代理然后如图11所述处理中断并且控制代理决定哪些信息将发布在用户显示器或接口上。当此中断由系统产生,UI代理将接收需要发布的中断信息和中断广播,如406所示。然后显示中断信息,如408所示。
一旦相关信息被发布,UI代理等待用户响应412且然后将响应414传送到控制代理处理。如416、418、422和424所示,UI代理然后进入中断所产生的清除窗口和更新窗口后信息的标准处理。然后在继续执行操作之前,UI代理等待(426和428)来自控制代理的中断终止顺序的广播。
消息协议由于信息传递简单,所有代理(域从属或独立)无需选择使用任何消息协议。然而,有一些指南每个代理最好服从。每个消息最好包含至少以下信息a)一“发至”域,规定消息预定接收者。它必须为在初始化处理中控制代理所登记的域从属或域独立代理的全局列表的有效入口。
b)一“发自”域,规定在初始化处理中所登记的代理属主名字。
c)一ID域,由源代理内部产生能索引消息。
d)在域独立代理情况下控制代理请求所获得的一时间戳,或是域从属代理同步模块内部产生的时间戳。
e)一优先级域,域从属代理内部产生或由域独立代理基于一些带有优先级的消息反映。
f)一信息域,此域包含消息所包含的信息。可以是数据、数据处理、控制代码、中断代码或任何需要中继的信息。
g)标识符域,此域为消息已发布且不被“看见”时所设置的标识符。
由于这些协议独立于系统,需要一翻译机制使得代理间的协议不会错误翻译。为了确保以上情况,包含与以上域无关信息的每个代理协议需要在初始化过程中向黑板代理登记从而当黑板代理与目的代理(图12)通信所发布的消息时,它指导如何重组此消息。
域从属代理随着本发明体系结构应用的改变,图1中的域从属代理22、24、26、28和30将改变。这些代理捕获问题解决中的实际处理并代表交互的不同知识源。每个域从属代理是模块化且自给自足且在指导过程中是主动或被动的,这使得它能与角色扮演的人交换。与模态无关,域特定代理的普通体系结构可如图19构建。值得注意的是本发明体系结构除了如图19所述结构还可选用域从属代理体系结构。
在每个代理中的感知和通信模块,分别为图19的500和502,处理系统其余部分的通信方法。因此,感知和通信模块是域从属代理与系统其余部分联系的唯一方法。如前所述,每个域从属代理具有与感知和通行模块通信的专用黑板,如箭头504和506所示。
每个域从属代理具有三个不同模块或它们所属环境的状态表示。全局模型508表示代理所认为的全局(系统)当前状态。这基于各种代理行为而变化。此模型并不真正代表全局而是代表代理所认为的。当进行指导处理(或问题解决)时,此模型将成为反映所有代理(和用户)的信息和行为。为更新全局/系统的表示,全局模型与代理的感知和通信模块通信。
域模型510为在域中代理应该如何执行的行为模型。也就是它希望数据来自谁、它的发现与谁相关、它应该如何发布/读取信息、图像/数据变换协定等等。此模型也反映了属于角色扮演或测试模式的信息。
最后的模块是代理内部状态且模块化为本地模型512。此模型表示特殊代理已处理的所有信息以及它所考虑的当前行为。此状态可被认为是隔离,也就是,与其他代理无交互的特殊代理的整体工作。然而,模型反映了代理接收的所有输入。
除了与黑板的通信,域从属代理已有一管理决定代理所执行的接口是否是应该通信(发布到一黑板上)的“行为”模块514。因此,行为模块在这方面作为域从属代理的“发动机”或“大脑”。
因此,一代理发布到黑板上每个消息必须仔细配置,与黑板上其他消息同步且与类似其他代理按紧急程度确定优先级。一些消息为例程且以常规间隔时间寻址且一些在执行一些其它步骤之前(或经过一段时间)具有不能被忽略的紧急程度。一些消息立即需要注意从而具有一更高的优先级。预备模块516、优先级模块518和同步模块520处理所有消息控制。这些模块的基本组成最好与每个域从属代理相同。
任何代理的核心是其所具有的知识。代理特定知识库522包括此信息。此信息指导代理当前状态且然后选择最适合的类型。知识可为一组规则(辅助解释)的形式或是一神经网络(已被训练的)。此知识体捕获SME(对象内容专家)要素并允许代理在其能力和权限水平执行。知识库工作独立于代理的其他模块且只依赖它们所提供的信息。
多计算机系统如前所述,本发明的体系结构采用一多于一台计算机的用于问题解决或指导用户的系统中。此配置使得不同地理位置用户在指导会话或训练脚本中能同步参与或角色扮演。在一多计算机系统中,如图1所示的所有系统结构组件均被下载到每个计算机上。在一多计算机系统中的域从属和域独立代理处理以下例外如上所述进行操作。
只有产生指导会话的计算机(“主要”计算机)的控制代理进行操作且只有主要计算机的令牌被使用。而且,其余“第二”计算机的域独立和域从属代理与主要计算机的其余域独立和从属代理同步。因此,第二计算机域从属与域独立代理的行为映射那些主要计算机域从属和域独立代理为它们在主要计算机控制代理的控制下操作。因此,多计算机系统为经由主要计算机中心控制。
在一角色扮演训练或指导脚本中,用户已被代替成域从属代理设置的“角色扮演”标识符为。当一域从属代理具有一“角色扮演”标识符设置,它知道保持安静且不做什么,因此对应的用户可执行他的或她的角色。
域从属和域独立代理全局列表只保持在主要计算机中且机器名和用户已被代替的域从属代理端口被下载到后者。
结论如可见的,本发明的体系结构可应用在任何需要多知识源和在问题解决处理中使它们不交互的环境中。此技术可用于多种指导和鉴定域且被转移到问题解决处理本身。此体系结构提供了一用户中心模式,教导指导系统区分各用户的特定需求而不仅仅是一内容储存库。
域从属代理及其专用黑板的感知和通信模块使得域从属代理与系统间的交互简单化。因此,体系结构提供了模块化实现的重要优点。例如,系统可初始实现为一独立于操作系统单元或“智能盒”,其中所有代理在其中编码为软件。当用户更相信技术时,技术可结合到机器硬件中,例如医学图像机器。也就是说,由于类模块化结构,一些域从属代理机器专用黑板可作为机器硬件而其他仍然编码为智能盒中的软件。因此,可采用实现此体系结构的系统的相位实现。此体系结构的关键是模块无需对系统其他部分进行任何改变便可移动或更新。
而且,域从属代理及其专用黑板的类模块化结构在指导应用中具有许多优点。例如,人类用户可替换为系统中不同域从属代理。因此,用户可在系统中角色扮演。多用户可在相同指导系统中假定不同角色并与软件/硬件代理无缝交互。由于可能的分布式(TCP/IP)域从属代理的中心外壳,这是一关键功能。
本发明的此体系结构可用于指导、问题解决、鉴定或仅仅是提供具有系统可提议并解释的有效第二建议的对象内容专家。
本发明的优选实施例已述,很明显本领域普通技术人员可以对其进行改变和修改而未脱离本发明精神。
权利要求
1.一用于计算机系统的体系结构,包括a)多个域从属代理,每个所述域从属代理包括一知识库;b)多个域从属代理黑板,每个所述多个域从属代理黑板之一被每个所述多个域从属代理专用;c)一黑板代理,所述黑板代理传输消息至所述多个域从属代理黑板,并自所述多个域从属代理黑板传输消息;其中所述多个域从属代理可通过发布消息到专用黑板且从专用黑板上读取消息与另一域从属代理通信。
2.如权利要求1所述的体系结构,还包括一控制代理和一令牌,所述控制代理可在所述多个域从属代理和所述黑板代理之间选择传递令牌,从而只有当它们具有令牌时每个所述多个域从属代理和所述黑板代理起作用。
3.如权利要求1所述的体系结构,其中计算机系统用于指导且还包括一指导代理和一专用指导代理黑板,所述指导代理通过专用指导代理黑板和多个域从属代理黑板与域从属代理通信并使计算机系统用户能在用于一指导会话的域从属代理之间选择。
4.如权利要求3所述的体系结构,还包括一数据库代理、一专用数据库代理黑板和一数据库,通过专用数据库代理和专用指导代理黑板,所述数据库代理从所述数据库向所述指导代理提供数据,通过专用指导代理和用于发布所述数据库的专用数据库代理黑板,所述数据库代理从所述指导代理接收数据。
5.如权利要求4所述的体系结构,其中数据库是一学生数据库从而在指导会话期间用户行为可被记录在学生数据库上。
6.如权利要求1所述的体系结构,还包括一用户显示器、一图形前端、一用户接口代理和一专用用户接口代理黑板,所述用户接口代理通过多个域从属代理黑板、专用用户接口代理黑板和图形前端显示来自域从属代理知识库的信息。
7.如权利要求6所述的体系结构,其中所述用户接口代理也接收用户输入并通过专用用户接口代理黑板和多个域从属代理黑板将它们导向适当域从属代理。
8.如权利要求1所述的体系结构,其中多个域从属代理每个通过传输控制协议/网际协议链接与它们专用黑板通信。
9.如权利要求1所述的体系结构,其中每个域从属代理具有一全局模型,指示整个计算机系统的状态,一域模型,对应于计算机系统代理应如何执行,和一本地模型,指示代理的一内部状态。
10.一用于一计算机系统的体系结构,包括a)多个域从属代理,每个所述域从属代理包括一知识库;b)多个域独立代理;c)多个黑板,每个所述多个黑板之一被每个所述域从属代理和域独立代理之一专用;以及c)用于在所属多个黑板之间传输消息的装置;其中所述多个域从属和域独立代理可通过发布消息到专用黑板且从专用黑板上读取消息与另一代理通信。
11.如权利要求10所述的体系结构,其中用于传输消息的装置是一黑板代理。
12.如权利要求10所述的体系结构,还包括一令牌且其中所述域独立代理包括一控制代理,所述控制代理可选地在所述多个域从属和域独立代理之间传递令牌从而使得只有当它具有令牌时每个所述多个域从属和域独立代理起作用。
13.如权利要求10所述的体系结构,其中计算机系统用于指导且多个域独立代理包括一指导代理,并且多个黑板包括一专用指导代理黑板,所述指导代理通过专用指导代理黑板和多个黑板与域从属和域独立代理通信并使计算机系统用户能在用于一指导会话的域从属代理之间选择。
14.如权利要求13所述的体系结构,还包括一数据库且其中多个域独立代理包括一数据库代理,且多个黑板包括一专用数据库代理黑板,所述数据库代理通过专用数据库代理黑板和其余多个黑板从所述数据库向所述域从属和域独立代理提供数据,且所述数据库代理通过专用指导代理黑板和用于发布在所述数据库上的其余多个黑板从所述域从属和域独立代理接收数据。
15.如权利要求14所述的体系结构,其中数据库是一学生数据库从而在指导会话期间用户行为可被记录在学生数据库上。
16.如权利要求10所述的体系结构,还包括一用户显示器和一图形前端,且其中所述多个域独立代理包括一用户接口代理,且多个黑板包括一专用用户接口代理黑板,所述用户接口代理通过专用用户接口代理黑板、其余多个黑板和图形前端显示来自域从属代理知识库的信息。
17.如权利要求16所述的体系结构,其中所述用户接口代理也接收用户输入并通过专用用户接口代理黑板和其余多个黑板将它们导向适当域从属和域独立代理。
18.如权利要求10所述的体系结构,其中多个域从属代理和域独立代理通过传输控制协议/网际协议链接与它们专用黑板通信。
19.计算机体系结构中第一和第二代理之间通信的方法,包括步骤a)提供一具有一专用第一代理黑板的第一代理;b)提供一具有一专用第二代理黑板的第二代理;c)提供一黑板代理;d)第一代理在专用第一代理黑板上发布消息;e)利用黑板代理将来自专用第一代理黑板的消息移动到专用第二代理黑板;以及f)第二代理从专用第二代理黑板读取消息。
20.如权利要求19所述的方法,包括步骤g)提供一控制代理和一令牌;h)利用控制代理将令牌传递到第一代理;i)当第一代理具有令牌时执行步骤d);j)利用控制代理将令牌从第一代理传递到黑板代理;k)当黑板代理具有令牌时执行步骤e);l)利用控制代理将令牌从黑板代理传递到第二代理;以及m)当第二代理具有令牌时执行步骤f)。
全文摘要
一用于计算机系统问题解决和指导的体系结构包括每个具有一知识库的多域从属代理(22-30)、多域独立代理和属于每个代理的专用黑板(图2)。代理通过一传输控制协议/网际协议(TCP/IP)链接(43a-43j)与其专用黑板通信且在黑板之间通过黑板代理(38)移动消息。域独立代理包括一在代理之间传递令牌的控制代理(36)。只有当一代理具有令牌时才起作用。域独立代理也包括一用户接口代理(32)、一数据库代理(34)和一指导代理(40)。也存在训练/测试数据储存库(44)和学生数据库(46)。后者存储测试或指导会话期间与学生行为有关的信息。此体系结构可使用多机器以允许不同地理位置用户同时角色扮演。
文档编号G09B5/08GK1500258SQ01822436
公开日2004年5月26日 申请日期2001年12月21日 优先权日2000年12月22日
发明者S·拉马参专, A·坎车拉保利, S 拉马参专, 道 @ 申请人:艾登泰迪基体医学公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1