软件执行控制装置和软件执行控制方法

文档序号:6506405阅读:210来源:国知局
软件执行控制装置和软件执行控制方法
【专利摘要】本发明提供一种软件执行控制装置和软件执行控制方法。该软件执行控制装置根据从用户接收到的用户消息控制多个应用程序的执行,包括:参照信息管理部,其收集为了执行多个应用程序而参照的参照信息并更新;用户消息预处理部,其接收通过预定的方法从用户输入或传达的用户消息,从接收到的上述用户消息中提取一个或一个以上的组分,根据提取出的组分解释上述用户消息;消息处理部,其根据从上述用户消息解释的事项,确定上述用户所请求的一个或一个以上的动作;应用程序执行部,其根据由上述参照信息管理部管理的参照信息、由上述消息处理部确定的动作,挑选为了完成所确定的各个上述动作而应该执行的应用程序,执行挑选出的上述应用程序。
【专利说明】软件执行控制装置和软件执行控制方法
【技术领域】
[0001]本发明涉及一种软件执行控制装置和软件执行控制方法。特别地本发明涉及一种软件执行控制装置和软件执行控制方法,其通过控制保存在用户的计算机系统中的软件、或保存在外部的计算机系统例如服务器中的软件的执行,而能够灵活地对应用户所需要的业务。
【背景技术】
[0002]存在包含中小自营业、垄断经销等各种各样规模和形式的餐厅。为了运营这样的各种各样的餐厅,必须执行各种各样的业务,以前通常根据业务的种类由人直接处理,或购买市场中流通的软件来处理。例如,店主购买市售的会计用软件,安装在自己的个人计算机中,将销售额信息输入到上述软件而执行,由此能够得到销售额信息。最近,如个人计算机、智能手机、平板PC等那样,伴随着能够下载应用软件(以下称为“应用程序”)、或能够与网页服务器连接而利用网页服务的高性能的各种计算系统的开发以及广泛普及,而活跃地开发出各种餐厅业务用应用程序(例如参照国际公开公报W091/08540A1)。
[0003]餐厅的店主、工作人员向用于特定业务的专用应用程序输入预先决定的类型和格式的数据,使上述应用程序执行,由此完成必需的业务。店主、工作人员为了自己要完成的业务,可能有时直接生成程序代码而开发应用程序,但大部分让软件开发者开发专用应用程序,或购买和利用软件开发者或开发公司已经开发出的市售用应用程序。店主、工作人员在要完成的业务包含不被一个应用程序支持的工作的情况下,搜索能够执行上述工作的一个或一个以上的追加应用程序,使该应用程序另外执行,或自己直接进行该工作。

【发明内容】

[0004]在餐厅业务中,例如必须完成预约管理、账目作成、库存管理等各种业务,这样的各种业务必须相互协作的情况也很多。但是,为了处理这样的各种各样的业务,由店主分别开发与自己的要求和状况符合的专用应用程序在成本和时间方面相当难。另外,即使直接开发应用程序,也存在以下的问题,即在业务的处理、细节的事项有变动的情况下,为了与之对应,必须在每次有变动时变更应用程序的程序代码,或完全重新开发。
[0005]在购买由软件开发者开发的市售用应用程序而使用的情况下,无法追加该应用程序不提供的功能,或无法变更应用程序的功能或动作。因此,在需要新的功能的情况下,必须再购买其他应用程序,或开发包含必要的功能的专用应用程序。另外,一个应用程序大多数情况下不支持应该完成的业务所要求的各种功能。存在以下的不良状况,即为了一个应用程序不支持的追加的功能,必须执行支持该功能的其他应用程序,还要重复地将相同数据输入到多个应用程序,或每次变更输入数据的格式。还必须直接搜索支持必要的功能的应用程序,因此需要很多时间,在无法搜索到必要的应用程序的情况下,有时还无法进行目标业务自身。并且,在为了特定业务而开发的应用程序中,还存在完全无法处理未预定的业务的问题点。[0006]本发明的课题在于解决上述现有技术的问题点。具体地说,本发明的目的在于:提供一种软件的执行控制装置和执行控制方法、记录了该执行控制程序的记录介质,其控制多个软件的执行,使得能够迅速、并且方便地处理餐厅商务所需要的多种业务。必须注意到本发明的应用领域并不限于餐厅,只要是医院、学校、书店、剧场、商业中心、主题公园等能够应用本发明的技术思想的地方,则对其业务种类就没有限制。
[0007]为了解决上述问题,本发明的一个形式是一种软件执行控制装置,其根据从用户接收到的用户消息来控制多个应用程序的执行,该软件执行控制装置包括:参照信息管理部,其收集并更新为了执行多个应用程序而参照的参照信息;用户消息预处理部,其接收通过预定的方法从用户输入或传达的用户消息,从接收到的上述用户消息中提取一个或一个以上的组分,根据提取出的组分解释上述用户消息;消息处理部,其根据从上述用户消息解释的事项,确定上述用户所请求的一个或一个以上的动作;应用程序执行部,其根据由上述参照信息管理部管理的参照信息、由上述消息处理部确定的动作,挑选为了完成所确定的各个上述动作而应该执行的应用程序,并执行挑选出的上述应用程序。
[0008]另外,本发明的另一个形式是一种软件执行控制方法,其利用软件执行控制装置,根据从用户接收到的用户消息来控制多个应用程序的执行,该软件执行控制方法包括:收集并更新为了执行多个应用程序而参照的参照信息的参照信息管理阶段;接收通过预定的方法从用户输入或传达的用户消息,从接收到的上述用户消息中提取一个或一个以上的组分,根据提取出的组分解释上述用户消息的用户消息预处理阶段;根据从上述用户消息解释的事项,确定上述用户所请求的一个或一个以上的动作的消息处理阶段;根据上述参照信息、在上述消息处理阶段确定的动作,挑选为了完成所确定的各个上述动作而应该执行的应用程序,并执行挑选出的上述应用程序的应用程序执行阶段。
[0009]根据本发明,能够提供一种软件执行控制装置和执行控制方法、记录了执行控制程序的记录介质,其通过生成满足用户所请求的业务的动作流程,依照该动作流程挑选一个或多个应用程序,控制挑选出的应用程序的执行,从而迅速、并且高效地对应用户所请求的多种业务。因此,不需要另外开发完成构成复杂业务的各种各样动作的专用应用程序,就能够对多个应用程序进行各种组合来对应用户所请求的各种各样的业务。
【专利附图】

【附图说明】
[0010]图1是概念性地表示本发明的一个实施例的软件执行控制装置的结构的图。
[0011]图2是概念性地表示本发明的软件执行控制装置的用户消息预处理部、消息处理部、程序执行部、参照信息管理部的结构的一个实施例的图。
[0012]图3是表示本发明的一个实施例的软件执行控制方法的流程图。
[0013]图4是表示本发明的一个实施例的结构化了的用户消息的图。
[0014]图5是表示本发明的一个实施例的结构化了的用户消息的实体构造表的图。
[0015]图6是表示本发明的一个实施例的结构化了的用户消息的指令词构造表的图。
[0016]图7是表示本发明的一个实施例的定型消息数据库的构造的图。
[0017]图8是表示图7所图示的定型消息数据库的餐厅用系统的实施例的图。
[0018]图9是表示本发明的一个实施例的动作请求同义词数据库的构造的图。
[0019]图10是表示本发明的一个实施例的对应工作数据库的构造的图。[0020]图11是表示本发明的一个实施例的对应工作-动作数据库的构造的图。
[0021]图12是表示本发明的一个实施例的用户消息的组分区分候选动作目录的图。
[0022]图13是表示本发明的一个实施例的特性信息数据库的构造的图。
[0023]图14是表示本发明的一个实施例的用户消息的候选动作流程目录的图。
[0024]图15是表示本发明的一个实施例的动作-应用程序数据库的构造的图。
[0025]图16是概念性地表示本发明的一个实施例的应用程序确定方法的图。
[0026]图17是表示本发明的一个实施例的应用程序过程(procedure)数据库的构造的图。
[0027]图18是概念性地表示本发明的一个实施例的应用程序执行处理中应用程序之间的输入和输出数据的关系的图。
[0028]图19是概念性地表示本发明的一个实施例的餐厅预约和点菜管理系统的图。【具体实施方式】
[0029]以下,参照附图详细说明本发明的实施方式的例子。当然本发明的技术思想并不限于附图所示的例子。
[0030]图1是概念性地表示本发明的一个实施例的软件执行控制装置100的结构的图。如图1所示,根据本发明的一个实施例,本发明的软件执行控制装置100包括:中央处理装置CPU102 ;基本输入输出系统B10S104 ;用于保存数据、文件等的硬盘或⑶-ROM等存储装置106 ;存储器108,包括USB、电源装置、显示器设备等各种硬件110、相互关联地管理各种数据、信息的数据库112。另外,本发明的软件执行控制装置100包括编程接口、各种驱动程序、库等软件120、操作系统(OS) 122。另外,本发明的软件执行控制装置100还包括:用户消息预处理部200,其对从用户接收到的用户消息进行结构化而解释;消息处理部300,其从上述用户消息查明用户的请求,生成用于确定满足上述用户的请求的工作、操作的动作流程;应用程序执行部400,其挑选与上述动作流程对应的应用程序,控制挑选出的应用程序的执行;参照信息管理部500,其收集并更新为了执行多个应用程序而参照的参照信息。上述结构要素通过总线140相互连接。图1只是本发明的软件执行控制装置100的结构的一个实施例,根据实施例,可以不包含上述结构要素中的一部分,或还包含其他结构要素。
[0031]在软件执行控制装置100中,包括主机(main frame)、微型计算机、工作站、个人计算机等典型的计算机系统,当然还包括触摸板、PDA、智能手机等具有运算能力的手持设备。对于软件执行控制装置100的硬件形式、构造、运营体系等软件结构并没有特别限制。例如,软件执行控制装置100是POS (Point of Sale:销售点)终端装置。上述结构要素200?500也可以分别作为能够记录到ROM、闪速存储器、硬盘、⑶-ROM、DVD等合适的硬件中的纯粹的软件来实现,或作为逻辑电路等硬件和软件的组合来实现。另外,也可以在一个设备内实现全部上述结构要素200?500,但也可以以分散在多个设备中的方式来实现。例如,也可以将上述结构要素200?500的一部分或全部保存在通过网络连接的外部服务器中。
[0032]在作为软件实现结构要素200?500的情况下,可以通过利用了面向对象C(Objective C)、C++、Java等语言的面向对象型编程来实现它们。或者,也可以通过利用了BASIC、C等语言的过程型编程(Procedural Programming)来实现。图1表示了从CPU102等硬件、0S122独立地实现结构要素200?500的实施例,但根据设计上的选择,也可以作为OS122的一部分来实现,或作为应用程序来实现。即,只要是在本发明所属的【技术领域】中具有通常的知识的人,就能够明确地理解对本发明的技术思想的实现方式没有任何限制。关于结构要素200?500的细节的结构和动作,在本说明书的全体中,特别在以下详细进行说明。
[0033]各种各样的业务用应用程序可以保存在上述软件执行控制装置100的存储器108或存储装置106中,或保存在外部服务器(例如网页服务器)那样的独立的计算机系统150a、150b中。在本说明书中,“应用程序”(或其简称的“程序”)这样的术语不只是表示个别的应用软件,也可以表示执行独立的功能的软件的一部分,不只是通过安装在用户终端设备中而独立地执行的应用程序,还能够通过子服务(servlet)、子应用程序(applet)、控件(Widget)、网页服务等各种形式实现。即,对应用程序的形式、实现方式没有特别限制。各个应用程序独立或与其他应用程序相互协作地生成具有固有格式的输出。在将上述应用程序保存在软件执行控制装置100的内部的情况下,可以根据被定义为特定目录的特定文件夹的位置信息来调用。在应用程序存在于外部的计算机系统150a、或150b的情况下,例如可以根据URL (Uniform Resource Locator)这样的位置信息调用,或搜索。
[0034]用户消息预处理部200为了根据用户消息识别形式部分,提取一个或一个以上的用户消息组分,而对上述用户消息进行结构化,解释上述结构化了的消息,判断上述用户消息是定型消息还是非定型消息。上述用户消息的组分作为分别表示独立的信息的单词,可以根据内容分类为指示特定动作、操作的指令词、在完成指令词时灵活运用的含义内容(人、事物、事件、场所、时间等)即实体。定型消息包含预先决定的内容和个数的指令词、预先决定的种类、类型和个数的实体。如果上述用户消息是定型消息,则消息处理部300参照对应地记录定型消息和动作流程所得的数据库,读出与上述定型消息对应的动作流程。如果上述用户消息不是定型消息,则消息处理部300查明上述用户消息的请求,生成满足上述查明的请求的一连串或并列的工作、操作的组合、即动作流程。上述动作流程规定了应该执行的动作的执行时刻、执行顺序的先后、即执行定时。应用程序执行部400挑选包含在由上述消息处理部生成的动作流程中的各动作所对应的应用程序,并执行挑选出的应用程序。另外,对输入到各应用程序的数据的类型和/或格式进行变换,或生成用于控制各个应用程序的执行的控制信号。另外,应用程序执行部也可以有选择地组合上述执行的应用程序的输出数据,生成向上述用户或根据上述用户消息确定的接收者提供的输出。参照信息管理部500构建消息处理部300和应用程序执行部400所参照的各种参照信息并运用。参照信息管理部500可以从系统设计者、系统管理者、或用户等接收关联信息,或定期或随时收集这样的信息并分类,并更新各种参照信息。
[0035]图2是表示本发明的软件执行控制装置的用户消息预处理部200、消息处理部300、程序执行部400、参照信息管理部500的结构的一个实施例的图。在图2所示的实施例中,上述用户消息预处理部200、消息处理部300、应用程序执行部400、参照信息管理部500分别以包含执行上述动作的多个模块的方式来实现。本发明所属的【技术领域】中具有通常知识的人能够明确地理解可以存在与图2不同的各种实现方式,并不根据各模块的功能结构的宽窄来限定本发明的技术范围。
[0036]用户消息预处理部200包括用户消息接收模块202、用户消息结构化模块204、用户消息解释模块206。如果用户向软件执行控制装置100输入请求完成预定业务的内容的用户消息,则软件执行控制装置100开始动作。如果通过预定的方法输入或传达了来自用户的用户消息,则通过用户消息接收模块202接收上述用户消息。可以通过用有线、或无线连接的键盘、鼠标、或麦克风等输入装置(未图示),将上述用户消息输入到软件执行控制装置100。如果软件执行控制装置100包含显示器设备,则也可以通过上述显示器设备提供图形用户界面来使用户能够通过鼠标等输入装置输入上述用户消息。在该情况下,可以是用鼠标点击显示在显示器设备上的用于指示特定业务的图标的方式。在通过麦克风输入了声音指令的情况下,用户消息接收模块202将声音指令变换为文本,传达到用户消息结构化模块204。另外,软件执行控制装置100也可以从外部的通信设备以电子邮件、便携电话消息等形式接收用户请求。为此,软件执行控制装置100可以具有预先确定的电子邮件地址、电话号码等固有识别信息。例如,用户为了向软件执行控制装置100请求特定业务的完成,可以利用与软件执行控制装置100独立的自己的便携电话,向在软件执行控制装置100中预先指定的邮件地址发送电子邮件。在该情况下,在用户位于从软件执行控制装置100远离的地方时,也能够向软件执行控制装置100请求必要的业务,因此非常方便。
[0037]为了方便,可以用用户日常使用的语言即自然语言生成用户消息。用户不需要具体知道为了完成特定业务应该执行哪个应用程序、应该执行的一个或多个应用程序的输入的类型、格式如何,用自然语言记述上述业务即可。例如,假定软件执行控制装置100是设置在餐厅的POS终端装置,用户是运营餐厅的店主的情况。在用户为了个人的事务而在餐厅的外部时,如果希望知道当日的销售额,则用自己的便携电话向上述POS终端装置传送“请通知今日的销售额”这样的内容的电子邮件或便携电话消息即可。在该情况下,如后述那样,上述POS终端装置处理上述用户消息而识别所需要的应用程序,使得执行识别出的应用程序。接着,以合适的形式(例如文本文件)生成作为上述执行结果所得到的当日的销售额数据,作为电子邮件或便携电话消息向用户的便携电话传送。这样,通过使能够输入用户消息的方法多样化,能够提高便利性。
[0038]用户消息结构化模块204提取由用户消息接收模块202接收到的用户消息所包含的有意义的数据(例如发送者的身份、发送日期时间、发送地点等)和消息正文。接着,针对用户消息(特别是形式信息以外的正文的内容的部分),例如应用词素分析,将用户消息分离为有意义的最小单位即词素。词素分析方法根据语言的特性而有差别,对每个语言都存在各种分析技术。采用哪个词素分析方法是系统设计者的选择,并不一定采用特定的方法。接着,上述用户消息结构化模块204向用户消息的各词素赋予含义封面,对用户消息进行结构化。为了对词素赋予含义封面,例如使用本体(ontology)映射技法。例如对“5小时”赋予时间、对“卡西欧”赋予企业这样的含义封面。另外,用户消息结构化模块204例如依照六何法(5W1H)对用户消息进行结构化,由此规定用户消息所具有的整体含义。
[0039]例如在上述用户以电子邮件的形式发送了自己的消息的情况下,上述用户消息结构化模块204能够从由上述用户消息接收模块202接收到的电子邮件中识别发送者的电子邮件地址和消息正文等,根据识别出的电子邮件地址判断用户是谁、是否是具有能够访问软件执行控制装置100的权限的人。为此,理想的是预先构建按照用户区分地记录了标识符(ID)、电子邮件地址、便携电话号码等识别信息的用户数据库。在不具有对软件执行控制装置100的访问权限的人发送了用户消息的情况下,结束动作。在该情况下,软件执行控制装置100也可以向发信者、系统管理者、或从具有权限的用户中选择出的用户发送通知该情况的消息。另一方面,如果上述用户是具有正当权限的用户,则进行上述那样的消息分析,进一步准确地查明用户的请求内容。
[0040]接着,上述用户消息结构化模块204从结构化了的用户消息中,提取一个或一个以上的用户消息组分(以下也简称为“组分”)即实体和指令词。例如,在根据六何法对用户消息进行了结构化的情况下,与5H相当的组分是实体,与IH相当的组分是指令词。通常用户消息可以包含一个或一个以上的指令词即组分。图4表示结构化了的用户消息的实施例。在图4的实施例中,例如用户I的用户消息i包含实体ENTil、ENTi2、ENTi3、指令词COMMil。作为实体的组分以后可以用作执行应用程序时所需要的输入数据。
[0041]接着,为了判断用户消息是否是定型消息,用户消息解释模块206对上述结构化了的用户消息进行解释。为此,可以生成与上述结构化了的用户消息有关的实体构造表和指令词构造表。实体构造表按照实体区分地识别和保存种类和类型,指令词构造表识别指令词的内容并保存各指令词的个数。由此,能够判别用户消息包含何种实体和怎样内容的指令词。将在后面参照图4?图6对用户消息的解释进行更详细的说明。如果用户消息包含预先决定的种类和类型的实体、预先决定的内容和个数的指令词,则判断为该消息是定型消息。为此,预先将定型消息的构造(实体的种类和类型、指令词的内容和个数)记录在后述那样的定型消息数据库510中,比较当前输入的用户消息的构造和保存在上述数据库中的定型消息的构造,由此能够判断上述用户消息是否是定型消息。特别针对用户能够请求的多种业务中反复请求的可能性高的业务,理想的是预先将与该业务对应的用户消息的定型构造记录在定型消息数据库510中。
[0042]接着,消息处理部300分别包括进行以下处理等的定型消息处理模块302、非定型消息处理模块304,即生成与由用户消息解释模块206判断为定型消息的用户消息、判断为非定型消息的用户消息对应的动作流程。在本说明书中,作为为了满足用户的请求而应该完成的工作,将其内容上能够相互独立地区别的最小单位的工作或动作(操作)称为“动作”。还有用户通过特定消息请求的业务由一个动作构成的情况,但由以固定的顺序组合的2个以上的动作构成的情况也很多。将这样构成业务的一个或多个动作的次序、或并列的组合称为“动作流程”。动作流程还规定应该执行的动作的执行定时(执行的时刻或执行的顺序)。如果假定在餐厅中使用本发明的软件执行控制装置100的例子,则“预约信息登记”、“预约信息查询”、“预约信息删除”、“预约信息变更”等分别相当于动作。可以由一个应用程序或应用程序的一部分完成这样的各动作。根据本发明,将上述动作定义为在其内容上区分的最小单位的工作、动作,因此也可以与一个用户消息对应地反复执行相同的动作。例如“预约信息查询”这样的动作可以只执行一次使得查询与一人的顾客有关的特别销售处的特定日的预约信息,但也可以数次地反复执行使得统一地查询特定日的全部顾客对全部销售处的预约信息。
[0043]如参照图7和图8后述的那样,定型消息数据库510记录一个或一个以上的定型消息,并且与各个定型消息对应地记录预定的动作流程。通过灵活运用这样的定型消息数据库510,定型消息处理模块302在执行时存在被解释为定型消息的用户消息的情况下,能够从上述定型消息数据库510中读出与该定型消息对应的动作流程。如果一个用户消息包含2个以上的定型消息,则能够顺序或并列地组合与各个定型消息对应的动作流程,生成与该用户消息对应的最终动作流程。由此,在输入了定型消息作为用户消息的情况下,只通过简单地读出记录在数据库中的信息,就能够迅速并且容易地生成动作流程。
[0044]另一方面,非定型消息处理模块304针对被解释为不对应于定型消息、即被解释为非定型消息的用户消息,挑选与上述用户消息的各组分对应的动作,顺序或并列地组合挑选出的动作,生成用于上述非定型用户消息的处理的动作流程。为了挑选上述各动作,而参照后述的动作请求同义词数据库520、对应工作数据库530、对应工作-动作数据库540和/或特性信息数据库550。关于这样的非定型消息处理模块304的动作,在后面参照图9?图14进行说明。
[0045]接着,应用程序执行部400包含应用程序挑选模块402、应用程序执行控制模块404,根据实施例可以有选择地包含输出生成模块406。程序挑选模块402挑选与由消息处理部300生成的动作流程的各动作对应的应用程序。程序执行控制模块404使得执行上述挑选出的应用程序的一部分或全部。应用程序挑选模块402可以参照后述的动作-应用程序数据库560,挑选与各个动作对应的应用程序。动作-应用程序数据库560对应地记录独立地完成的单位工作或动作(操作)即动作的识别信息、为了完成该动作所需要的应用程序的识别信息。在参照动作-应用程序数据库560的结果是存在多个完成一个动作的应用程序的情况下,参照后述的特性信息数据库550,挑选更合适的应用程序。为了使得执行上述挑选出的应用程序,应用程序执行控制模块404参照后述的应用程序过程数据库570,生成为了执行应用程序所需要的控制信号。另外,应用程序执行控制模块404参照应用程序执行信息数据库580,在必要的情况下,变换为执行应用程序所需要的数据的类型、格式。
[0046]如果上述挑选出的全部应用程序的执行结束,则向上述用户或根据上述用户消息确定的接收者传送处理结果。上述处理结果可以是最终执行的应用程序的输出数据或所执行的全部应用程序的输出数据的一部分或全体。这根据用户消息的请求内容而变化。在必要的情况下,可以根据预先确定的类型、格式或输出方式,对向用户或特定接收者提供的上述输出数据进行变换。或者,输出生成模块406可以组合所执行的全部应用程序的输出数据的一部分或全部而生成处理结果,以预先确定的类型、格式或输出方式,向上述用户或特定接收者提供上述处理结果。输出生成模块406也可以将上述输出数据的一部分或全部分割为多个输出,或将多个输出数据组合为一个或其他个数的输出。也可以参照特性信息数据库550决定适合于上述用户或特定接收者的输出的类型、格式或输出方式。
[0047]参照信息管理部500包括定型消息数据库510、动作请求同义词数据库520、对应工作数据库530、对应工作-动作数据库540、特性信息数据库550、动作-应用程序数据库560、应用程序过程数据库570、应用程序执行信息数据库580、参照信息运用模块590。在图
7、图9、图10、图11、图13、图15、图17、图18中分别图示上述数据库510?580各自的构造。参照对应的附图在后面说明与各数据库有关的详细内容。根据本实施例,构成为在本发明的软件执行控制装置100的参照信息管理部500内构建全部的数据库510?580。但是,只要是在本发明所属的【技术领域】中具有通常的知识的人,就能够明确地理解并不一定要在上述软件执行控制系统100内构建上述数据库510?580的一部分或全部,例如也可以灵活利用已经在外部服务器等中构建的数据库。
[0048]参照信息运用模块590随时或定期地构建并更新上述数据库520?580。上述数据库510?580既可以在处理用户的请求之前预先构建,也可以在执行处理时实时地构建。记录在上述数据库520?580中的信息可以由系统设计者、系统管理者或具有正当权限的用户进行变更、追加或删除,为此,参照信息运用模块590可以提供合适的接口。另外,记录在上述数据库中的信息有时随着时间的经过而变化,因此参照信息运用模块590定期或随时地更新上述数据库,使得上述数据库包含变化了的信息。由此,能够根据用户的请求更适合地对应。
[0049]例如,参照信息运用模块590定期或随时、或有来自系统管理者、用户发出的指示时,搜索软件执行控制装置100的内部或外部的预定区域,收集与应用程序有关的信息,根据收集到的信息,将应用程序的识别信息登记到动作-应用程序数据库560或特性信息数据库550中,或管理其变化。参照信息运用模块590探知是否有新的应用程序、现有的应用程序的位置信息是否变化、应用程序是否升级、或应用程序是否被删除等变更内容。参照信息运用模块590参照该变更内容,更新对应的数据库中记录的信息。例如,如果保存在软件执行控制装置100的内部的应用程序被移动到不同的文件夹,则参照信息运用模块590探知该情况而将记录在动作-应用程序数据库560中的该应用程序的位置信息更新为变更后的位置信息。这时,理想的是如果在多个数据库中记录了相同的信息,则统一地更新上述多个数据库。另外,在有应用程序的升级版本的情况下,将动作-应用程序数据库560的应用程序信息更新为上述升级版本的位置信息。
[0050]接着,参照图3说明本发明的一个实施例的软件执行控制方法。通过将用户请求完成预定业务的内容的用户消息输入、传送或传达到本发明的软件执行控制装置100,来开始本发明的处理(阶段1000)。软件执行控制装置100通过预定的方法进行输入,或传送或传达的上述用户消息(阶段1002),对上述用户消息进行结构化(阶段1004)。例如,在按照自然语言的形式生成上述用户消息的情况下,对上述接收到的用户消息应用词素分析方法,对各词素赋予含义封面。接着,软件执行控制装置100从上述结构化了的用户消息中提取一个或一个以上的组分即实体和/或指令词(阶段1006)。接着,软件执行控制装置100为了解释上述结构化了的用户消息,而识别所提取的指令词的内容和个数、实体的种类和类型(阶段1008)。根据上述识别出的信息,判断上述用户消息是否是定型消息(阶段1010)。为此参照定型消息数据库510。
[0051]在上述用户消息是定型消息的情况下(阶段1010:是),读出与该定型消息对应地记录在定型消息数据库510中的动作流程,由此生成与上述用户消息对应的动作流程(阶段1020)。在上述用户消息是非定型消息的情况下(阶段1010:否),为了查明上述用户消息所内含的用户的请求,挑选与上述提取出的组分对应的动作请求,挑选满足上述挑选出的动作请求的动作,顺序或并列地组合上述挑选出的动作而生成动作流程(阶段1040 )。上述生成的动作流程可以保存在缓存存储器、缓冲器、队列(queue)等中,如果这样根据上述用户消息生成动作流程,则挑选用于完成动作流程的各动作的应用程序(阶段1060)。为此,可以参照对应地记录了各动作、满足该动作的应用程序的动作-应用程序数据库560。另外,如果与一个动作对应的应用程序是多个,则例如也可以参照特性信息数据库550,挑选其中最适合的一个应用程序。
[0052]接着,软件执行控制装置100调用上述挑选出的应用程序(阶段2000)。可以根据其位置信息调用各应用程序。接着,针对各个应用程序,确认该应用程序所需要的输入数据的类型和格式(阶段2002)。为此,可以参照对应地记录了各应用程序的识别信息、该应用程序的输入数据的类型和格式的应用程序执行信息数据库580。如果应该输入到上述应用程序的数据的类型和格式与该应用程序的输入数据的类型和格式一致(阶段2002:是),则将上述数据直接输入到应用程序使得执行应用程序(阶段2006)。如果应该输入的数据的类型、格式与该应用程序的输入数据的类型、格式不一致(阶段2002:否),则与上述输入数据的类型和格式一致地对上述数据的类型和格式进行变换(阶段2004)。接着,软件执行控制装置100确认用于上述动作流程的全部动作的应用程序是否已经执行(阶段2008)。在应该执行的应用程序中一部分还没有执行的情况下(阶段2008:否),返回到阶段2000。在与上述动作流程对应的全部应用程序的执行完成了的情况下(阶段2008:是),向用户或根据用户消息选定的特定接收者提供全部或一部分应用程序的输出数据(阶段2010),结束对该用户消息的处理过程(阶段2020)。
[0053]接着,参照图4?图6,更详细地说明用户消息的解释。图4表示本发明的一个实施例的结构化了的用户消息,图5图示本发明的一个实施例的结构化了的用户消息的实体构造表,图6图示本发明的一个实施例的结构化了的用户消息的指令词构造表。如图4所示那样,从用户I接收到的用户消息i包含3个实体ENTil、ENTi2、ENTi3、l个指令词COMMil,从用户2接收到的用户消息j包含2个实体ENTjl和ENTj2、2个指令词COMMjl和C0MMj2。用户消息解释模块206根据上述结构化了的用户消息生成实体构造表和指令词构造表。实体构造表如图5所示,按照包含在上述用户消息中的按实体区分地识别并保存种类和数据类型。例如,实体的种类可以根据由用户消息结构化模块204赋予的含义封面确定,可以包含名称、电话号码、日期、人数等。指令词构造表识别指令词的内容而保存各指令词的个数。可以根据上述实体构造表和指令词构造表,判别用户消息包含哪种实体和怎样内容的指令词。上述用户消息的解释方法只不过是一个实施例,在本发明所属的【技术领域】中具有通常的知识的人能够明确认识到存在各种变形或代替方案。例如,在上述实施例中说明了定型消息包含实体和指令词两者的情况,但根据其他实施例,存在只包含实体的定型消息,另外根据其他实施例,有可能有只包含指令词的定型消息。这样的定型消息的构造只不过是设计上的选择事项,本发明并不限于特定结构。
[0054]接着,参照图7和图8,说明定型消息数据库510。定型消息数据库510使得相互
间对应地记录定型消息的识别信息(StpMESOl、StpMES02、StpMES03、StpMES04、......)、各
个定型消息的构造、满足各个定型消息的动作流程。例如,定型消息StpMESOl具有包含一个指令词COMMl1、2个实体ENTlI和ENT12的构造,实体ENTlI的种类和类型分别是KindOl和Typell,实体ENT12的种类和类型分别是Kind02和Typel2。只要接收到的用户消息具有上述那样的构造(即包含指令词COMMl1、上述种类和类型的实体ENTll和ENT12),则该用户消息相当于定型消息StpMESOl。因此,可以将与上述用户消息对应的动作流程规定为ACT11+ACT12+ACT16。这样,在将用户消息解释为定型消息的情况下,通过从定型消息数据库510读出与该定型消息对应地记录的动作流程,能够迅速地进行应对。
[0055]在本发明所属的【技术领域】中具有通常的知识的人能够认识到图7所示的定型消息数据库只不过是一个实施例,存在与之对应的各种各样的变形、代替方案。注意定型消息数据库510可以按照用户或企业体系、或针对全部用户统一地构建。其中选择怎样的方式和内容是理想的可以根据行业、业务的内容而变化,是可以考虑用户的方便性、系统的效率性等由系统设计者选择的事项。在其他实施例中,也可以存在多个与一个定型消息对应的动作流程。在这样的实施例中,可以依照用户的选择,或参照记录在后述的特性信息数据库550中的特性信息,在多个动作流程中挑选最合适的动作流程。
[0056]图8图示与餐厅用系统的实施例有关的定型消息数据库510’。例如预约在餐厅中是非常日常并且频繁地请求的业务之一,用于预约的必需信息限于预约日、预约时间、预约人数,因此对上述业务的请求能够定型化。如图示那样,“新预约”这样的定型消息具有包含“预约”这样的指令词、日期、时间、人数这样的实体的构造。例如,如果图4的用户消息i是“2012/07/01,6点,3人预约”,则用户消息解释模块206解释为上述用户消息包含“预约”这样的指令词、日期“2012/07/01”、时间“6点”、人数“3人”这样的实体,将其与记录在定型消息数据库510中的定型消息的构造进行比较。由此,能够判断为上述用户消息i相当于“新预约”这样的定型消息。因此,读出在定型消息数据库510’中与上述定型消息对应地记录的动作流程即“桌子查询(查询在请求预约的日和时间是否有能够容纳该人数的空的桌子)+新预约登记(记录预约信息)+便携电话消息(向确定了的接收者通知预约完成)”,由此能够容易地生成与上述用户消息对应的动作流程。上述3个实体被用作为了完成上述动作流程而执行的应用程序的输入数据。在该情况下,在上述用户消息记载了“今日6点3人预约”的情况下,也可以将“今日”这样的单词例如解释为“2012/07/01”这样的日期,因此当然可以作为上述那样的定型消息来处理。
[0057]接着,参照图9?图13,说明本发明的一个实施例的非定型消息的处理。图9?图11分别图示本发明的一个实施例的动作请求同义词数据库520、对应工作数据库530、对应工作-动作数据库540。图12图示针对非定型消息生成的按组分区分候选动作目录的一个实施例。图13图示特性信息数据库550的一个实施例。
[0058]动作请求同义词数据库520与构成被请求根据用户消息完成的业务的一个或一个以上的动作请求对应地记录一个或一个以上的同义词。在本说明书中,将为了指示通过预定的应用程序或其一部分完成的工作、操作而由用户经常使用的代表性的指令词、单词称为动作请求。上述动作请求的同义词是有可能由用户、或在关联行业中作为与动作请求相同或类似的含义而实际经常使用的单词。接着,请求对应工作数据库530分别与上述动作请求对应地记录为了满足用户消息内含的用户请求而应该完成的一个或一个以上的对应工作。另外,对应工作-动作数据库540分别与上述对应工作对应地记录完成各个对应工作所需要的一个或一个以上的动作。在此,动作请求同义词数据库520的上述动作请求
REQOl、REQ02、REQ03、REQ04、......、上述动作请求同义词SYN11、SYN12、......等也可以由系
统设计者、系统管理者、或用户等挑选,事先输入,或在处理非定型消息时实时地输入。这对于对应工作数据库530和对应工作-动作数据库540也同样。
[0059]以下,说明针对作为非定型消息的用户消息j (参照图4),生成图12图示的按组分区分候选动作目录的过程。如图示那样,根据本实施例,上述用户消息j包含2个实体和2个指令词。假定在上述组分中,ENTjI和ENTj2是其含义明确地被确定的实体。在该情况下,不需要针对组分ENTjl和ENTj2确定动作请求。在实体表示什么不明确的情况下,为了明确地定义该实体,可以确定与之对应的动作请求。例如在餐厅用系统的例子中,在输入了“今日下午6点5人预约”这样的用户消息的情况下,在其组分中,“今日”、“下午6点”、“ 5人”相当于实体,“预约”相当于指令词。如果在上述实体中“今日”的含义不明确,则为了明确地确定“今日”所表示的日期,可以参照动作请求同义词数据库520。例如,针对上述实体,可以确定“日期查询”这样的动作请求。另一方面,在用户消息中包含“其”、“那人”这样的代名词而无法规定实体的情况下,也可以使用谈话分析(discourse analysis)。针对“预约”这样的指令词,参照动作请求同义词数据库520,确定与之对应的动作请求。
[0060]为了确定与上述用户消息j的2个指令词COMMjI和C0MMj2对应的动作请求,非定型消息处理模块304参照动作请求同义词数据库520。参照结果判断为指令词COMMjl相当于同义词SYNll和SYN21,因此使动作请求REQOl和REQ02与上述指令词COMMjl对应。指令词C0MMj2相当于同义词SYN31,因此动作请求REQ03与上述指令词对应。这样,通过参照动作请求同义词数据库520,能够针对用户消息的各组分确定动作请求。另一方面,为了确定动作请求并不一定利用动作请求同义词数据库520,也可以如上述那样,实时地输入动作请求、其同义词。在该情况下,非定型消息处理模块304可以向用户或系统管理者等提供接口,由用户、系统管理者等决定它。或者,非定型消息处理模块304也可以通过因特网检索等,查明与用户消息的各组分对应的动作请求。或者,非定型消息处理模块304也可以让用户选择动作请求,或向用户传送用于进行追加说明的询问消息。
[0061]接着,非定型消息处理模块304为了挑选与针对上述各组分确定的各个动作请求对应的对应工作,而参照对应工作数据库530。在图10的实施例中,存在多个分别与REQO1、REQ02、REQ03对应的对应工作。为了挑选其中更适合的对应工作,可以参照特性信息数据库550,或让系统管理者、用户等直接选择对应工作。在本实施例中,针对组分COMMjI挑选对应工作JOBll和J0B21,针对组分C0MMj2挑选对应工作J0B31。另一方面,在本实施例中,针对一个动作请求挑选了 一个对应工作,但也可以挑选多个对应工作。
[0062]接着,非定型消息处理模块304参照对应工作-动作数据库540,针对上述挑选出的对应工作分别挑选最适合的动作。上述挑选可以参照特性信息数据库550进行,或让系统管理者、用户等直接选择。在图12的实施例中,在与针对组分COMMjI挑选出的对应工作JOBll和J0B21分别对应地记录的动作中,分别挑选ACTlll和ACT112、ACT211和ACT212作为更适合的动作。针对上述组分C0MMj2,挑选ACT311、ACT312、ACT313。这样,针对用户消息j,能够生成图12图示的按组分区分候选动作目录。
[0063]动作请求同义词数据库520、对应工作数据库530、对应工作-动作数据库540和/或特性信息数据库550可以由系统设计者、系统管理者、或用户等事先或实时地生成、追力口、删除。另外,上述数据库的全部并不一定要始终包含在本发明的软件执行控制系统100的内部。不只如此,也可以将上述数据库中的至少一部分替代为由系统设计者、系统管理者或用户等实时指定或输入的方式等。
[0064]上述实施例为了根据动作请求查明动作而使用了 2个数据库530和540,但在其他实施例中,可以利用一个数据库、即动作请求-动作数据库。即通过直接对应地记录动作请求和动作,能够减少为了确定与各动作请求对应的动作所需要的处理。在该实施例中,动作请求-动作数据库可以由系统设计者、系统管理者、或用户等事先或实时地生成、追加、删除。上述数据库并不一定要始终包含在本发明的软件执行控制系统100的内部,也可以替代为由用户或系统设计者、系统管理者等实时指定或输入的方式等。
[0065]为了确定动作而使用2个数据库、即对应工作数据库530、对应工作-动作数据库540的实施例与只使用I个数据库的实施例相比处理增加,因此处理时间也可以变得更长。但是,在上述使用2个数据库的情况下,有挑选出更适合于用户的请求的动作的可能性高的优点。
[0066]在无法确定与组分对应的动作的情况下,根据实施例,也可以(i)判断为无法处理用户消息,结束软件执行控制装置100的动作,或(ii)参照过去由该、或其他用户为了处理相同或类似的消息而执行应用程序的履历(history)信息,或(iii)灵活运用通过网页搜索等收集到的信息等。考虑到用户的方便性、系统的效率性等,由系统设计者选择该情况下的处理方式。 [0067]接着,参照图13详细说明特性信息数据库550。如图示那样,特性信息数据库550按照用户区分地对应地记录各种各样的特性信息和与各特性关联的选择项的加权值。根据实施例,也可以代替按照各选择项区分地保存加权值,而只保存选择项相互之间的优先顺序。对于与多个选择项对应的加权值或优先顺序,可以(i)由用户、系统管理者或系统设计者等设定,或(ii)参照与过去的非定型消息处理有关履历信息来决定,或(iii)根据各选择项的属性决定。在挑选各特性的选择项时,可以按照各个选择项区分地逐一地只挑选加权值或优先顺序最高的,也可以选择按照特性区分选择项的组合中最佳的。例如,在前者的情况下,针对按照非定型消息的组分区分而确定的动作请求,挑选加权值最高的一个对应工作,针对上述挑选出的对应工作挑选加权值最高的一个动作。在后者的情况下,可以是以下的实施例,即按照加权值从高到低的顺序在按照组分区分而挑选出的各个对应工作所对应的动作中选择多个,在挑选出的动作的组合中挑选最佳的一个或多个。当然可以是其他组合。特别地也可以求出包含在各个组合中的选择项的加权值的合计或积,按照其值从大到小的顺序选择一个或一个以上的组合。
[0068]在根据选择项的属性决定加权值或优先顺序的情况下,决定与一个动作对应的应用程序的加权值或优先顺序的方法例如如下。
[0069]
【权利要求】
1.一种软件执行控制装置,其根据从用户接收到的用户消息来控制多个应用程序的执行,该软件执行控制装置的特征在于,包括: 参照信息管理部,其收集并更新为了执行多个应用程序而参照的参照信息; 用户消息预处理部,其接收通过预定的方法从用户输入或传达的用户消息,从接收到的上述用户消息中提取一个或一个以上的组分,根据提取出的组分解释上述用户消息;消息处理部,其基于根据上述用户消息解释的事项,确定上述用户所请求的一个或一个以上的动作; 以及 应用程序执行部,其根据由上述参照信息管理部管理的参照信息、由上述消息处理部确定的动作,挑选为了完成所确定的各个上述动作而应该执行的应用程序,并执行挑选出的上述应用程序。
2.根据权利要求1所述的软件执行控制装置,其特征在于, 上述用户消息预处理部包括: 用户消息接收模块,其接收通过预定的方法从用户输入或传达的用户消息; 用户消息结构化模块,其从接收到的上述用户消息中提取一个或一个以上的组分,各个上述组分是指令词或实体;以及 用户消息解释模块,其根据提取出的一个或一个以上的上述组分,判断上述用户消息是否是定型消息, 上述消息处理部根据由上述用户消息预处理部提取出的一个或一个以上的组分确定动作。
3.根据权利要求2所述的软件执行控制装置,其特征在于, 上述消息处理部包括: 定型消息处理模块,其根据被解释为定型消息的定型用户消息确定一个或一个以上的动作;以及 非定型消息处理模块,其根据被解释为不是定型消息的非定型用户消息确定一个或一个以上的动作。
4.根据权利要求3所述的软件执行控制装置,其特征在于, 上述参照信息管理部构建并运用定型消息数据库,该定型消息数据库将与一个或一个以上的定型消息的构造有关的信息、规定与上述定型消息的各个对应的一个或一个以上的动作的执行定时的动作流程与一个或一个以上的上述定型消息对应地记录起来, 上述用户消息解释模块根据从包含由上述用户消息结构化模块提取出的指令词的内容和个数、实体的种类和类型的组中选择出的一个或一个以上的信息以及记录在上述定型消息数据库中的信息,判断上述用户消息是否是定型消息, 如果由上述用户消息解释模块判断为上述用户消息是定型消息,则上述定型消息处理模块从上述定型消息数据库读出与上述定型消息对应地记录的动作流程。
5.根据权利要求3所述的软件执行控制装置,其特征在于, 上述参照信息管理部构建并运用以下数据库: 动作请求同义词数据库,其对于构成被请求根据上述用户消息完成的业务的一个或一个以上的动作请求,对应地记录了一个或一个以上的同义词; 对应工作数据库,其将为了满足各个上述动作请求而应该完成的一个或一个以上的对应工作与各个上述动作请求对应地记录起来;以及 对应工作-动作数据库,其将完成各个上述对应工作所需要的一个或一个以上的动作与各个上述对应工作对应地记录起来, 上述非定型消息处理模块参照上述动作请求同义词数据库、上述对应工作数据库、上述对应工作-动作数据库中的一个或一个以上,确定与从上述用户消息中提取出的实体或指令词对应的一个或一个以上的动作,规定所确定的上述动作的执行定时。
6.根据权利要求3所述的软件执行控制装置,其特征在于, 上述参照信息管理部构建并运用以下数据库: 动作请求同义词数据库,其对于构成被请求根据上述用户消息完成的业务的一个或一个以上的动作请求,对应地记录了一个或一个以上的同义词;以及 动作请求-动作数据库,其将满足各个上述动作请求的一个或一个以上的动作与各个上述动作请求对应地记录起来, 上述非定型消息处理模块参照上述动作请求同义词数据库、上述动作请求-动作数据库中的一个或一个以上,确定与从上述用户消息中提取出的实体或指令词对应的一个或一个以上的动作,规定所确定的上述动作的执行定时。
7.根据权利要求1所述的软件执行控制装置,其特征在于, 上述应用程序执行部根据与应该执行的上述应用程序的输入数据的类型和格式相关的信息,变更应该输入到上述应用程序的数据的类型或格式。
8.根据权利要求1 所述的软件执行控制装置,其特征在于, 上述应用程序执行部根据与应该执行的上述应用程序的过程有关的信息,生成控制上述应用程序的执行的控制信号。
9.根据权利要求1所述的软件执行控制装置,其特征在于, 上述应用程序执行部还包括:输出生成模块,其组合针对上述用户消息挑选出的应用程序的输出数据的一部分或全部,生成向上述用户或根据上述用户消息确定的接收者提供的一个或一个以上的输出。
10.根据权利要求1~6的任意一项所述的软件执行控制装置,其特征在于, 上述参照信息管理部构建并运用特性信息数据库,该特性信息数据库按照用户对应地记录了一个或一个以上的特性、从由按照各特性的多个选择项的优先顺序和加权值构成的集合中选择出的信息, 上述消息处理部参照上述特性信息数据库,确定与上述用户消息对应的一个或一个以上的动作。
11.根据权利要求1~6的任意一项所述的软件执行控制装置,其特征在于,上述参照信息管理部构建并运用特性信息数据库,该特性信息数据库按照用户对应地记录了一个或一个以上的特性、从由按照各特性的多个选择项的优先顺序和加权值构成的集合中选择出的信息, 上述应用程序执行部参照上述特性信息数据库挑选上述应用程序。
12.根据权利要求5或6所述的软件执行控制装置,其特征在于,上述非定型消息处理模块在存在与上述动作请求的任意一个对应的多个动作的情况下,生成与上述动作请求对应的多个上述动作的组合,在上述组合中挑选一个或一个以上。
13.根据权利要求12所述的软件执行控制装置,其特征在于, 上述参照信息管理部构建并运用特性信息数据库,该特性信息数据库按照用户对应地记录了特性、按照各特性的多个选择项的加权值信息, 上述非定型消息处理模块参照上述特性信息数据库,根据从选择自集合的运算结果中选择的值完成上述挑选,所述集合由构成各个上述组合的动作的加权值的合计和积构成。
14.一种软件执行控制方法,其利用软件执行控制装置,根据从用户接收到的用户消息来控制多个应用程序的执行,该软件执行控制方法的特征在于,包括: 收集并更新为了执行多个应用程序而参照的参照信息的参照信息管理阶段; 接收通过预定的方法从用户输入或传达的用户消息,从接收到的上述用户消息中提取一个或一个以上的组分,根据提取的组分解释上述用户消息的用户消息预处理阶段; 根据从上述用户消息解释的事项,确定上述用户所请求的一个或一个以上的动作的消息处理阶段; 根据上述参照信息、在上述消息处理阶段中确定的动作,挑选为了完成所确定的各个上述动作而应该执行的应 用程序,并执行挑选出的上述应用程序的应用程序执行阶段。
【文档编号】G06Q50/10GK103577183SQ201310315054
【公开日】2014年2月12日 申请日期:2013年7月25日 优先权日:2012年7月25日
【发明者】高桥弘司, 园山佑司, 西谷耕司 申请人:卡西欧计算机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1