自动文本生成的制作方法

文档序号:6508350阅读:424来源:国知局
专利名称:自动文本生成的制作方法
背景技术
本发明涉及生成文本,尤其涉及指示用户在用户界面上的动作的文本的自动生成。
已经进行了若干尝试来实现与计算机的基于自然语言/语音的交互。这些尝试的结果至今仍是受限的。这由技术的不完美、非入侵性话筒架构的缺乏、高创作成本、不易改变的顾客行为、以及对许多任务提供高价值的GUI(图形用户界面)形式的竞争者的综合而引起的。本发明集中于这些局限中的两个,即与GUI的更紧密集成和降低的创作成本。
图形用户界面(GUI)是一种广泛使用的界面机制。GUI对于定位任务(例如,重定矩形的尺寸)、视觉修饰任务(例如,使某样事物成为模糊的蓝色阴影)或选择任务(例如,这是我希望旋转的一百张图片之一)是极好的。GUI对于对快速单步特征的迅速访问也是好的。应用程序GUI是从功能角度(例如,被组织成菜单、工具栏等)而非面向任务的角度(例如,根据用户希望完成的较高级任务,诸如“使我的计算机没有黑客的危险”来组织)组织的有用的工具箱。
然而,GUI也给用户造成了许多问题。使用工具箱类推,用户难以找出箱中的工具或领会如何使用该工具来完成任务。由单个单词描述的界面、微小按钮以及被迫成为不透明层次的选项卡并不对人们考虑任务的方式起到任何帮助作用。GUI要求用户分解任务以确定需要哪些元素来完成任务。这一要求导致复杂性。除复杂性之外,也需要花费时间来组装GUI元素(即,菜单点击、对话框点击等)。这即使对于专家用户也可能是效率低下且耗时的。
用于解决GUI问题的一种现有的机制是所编写的帮助程序。帮助程序通常采用帮助(Help)文档、PSS(产品支持服务)KB(知识库)文章和新闻组公告的形式,这将填补顾客需求和GUI问题之间的差距。它们类似于随工具箱一起提供的手册,并且具有多种益处。作为示例,这些益处包括1)即使对于非技术作者,它们也相对易于创作;2)它们易于在服务器上更新,因此连接的用户能够容易地访问新内容;以及
3)它们教授GUI,由此使用户能够对解决问题进行控制。
然而,帮助文档、PSS KB文章和新闻组具有其自己的一组问题。作为示例,这些问题包括1)复杂任务需要用户方的大量处理。用户需要完成从每一步中所说的内容到GUI的映射。
2)故障诊断程序,甚至是程序帮助文档通常包括在帮助主题内形成复杂的分支的状态信息,从而使主题冗长且对用户而言难以阅读和处理。可能缺少工具栏,且可能需要在可采取下一步之前打开工具栏。故障诊断程序通常会询问关于状态的问题,这些问题最好也是令人沮丧的(因为故障诊断程序应当能够自己找出答案),而最差则是非专家无法回答的。
3)存在上百万的文档,并且搜索回答涉及从何处开始搜索、以及然后如何从所返回的上千中回答中选取最佳搜索结果这两个问题。
4)没有共享的创作结构。新闻组公告、KB文章、故障诊断程序和程序帮助文档都有不同的结构和创作策略,然而它们解决的仍然是类似的问题。
用于解决GUI问题的另一现有机制是向导。向导被创建来解决GUI以及编写的帮助程序的弱点。现在有上千种向导,且这些向导可以在所制作的几乎每一软件产品中找到。这是由于向导解决了当前现有的基于文本的帮助和协助尚未解决的实际需求。它们允许用户以面向任务的方式访问功能,并可自动组装GUI或工具。向导允许程序管理员和开发者具有用于解决顾客任务的手段。它们类似于困境中的专家,引领用户通过必需的步骤走向任务成功。某些向导帮助顾客设置系统(例如,设置向导),某些向导包括具有特征的内容并帮助顾客创建内容(例如,通讯(Newsletter)向导或PowerPoint的自动内容(AutoContent)向导),而某些向导帮助顾客诊断和解决问题(例如,故障诊断程序)。
向导向用户提供了许多益处。向导的某些益处是1)向导可具体化“任务”的概念。用户通常清楚向导在帮助他们完成什么。采用逐步的页面,用户能够容易地做出选择,且在良好设计的向导的情况下,通常降低了用户在视觉上被淹没的发生率。
2)向导可自动组装软件的底层特征并与其交互,且包括顾客做出选择所需的信息或专业知识。这节省了用户在执行任务时的时间。
3)向导可自动生成内容,并可通过创建文本和规划布局来节省用户时间。
4)向导也是询问问题、获得响应和分支到最相关的下一问题或特征的良好手段。
然而,向导也具有其自己的一组问题。这些问题中的某一些包括,人们试图完成的任务要比用于完成这些任务的向导多。向导和IUI(引导式用户界面)不教导用户如何使用底层GUI,且通常在向导完成时,用户不确定下一步去往何处。创作向导的成本仍是高的,且要求具有技术专业知识的人(例如,软件开发者)来创作向导。
发明概述本发明通过提供一种允许创作上千种任务(或向导)的简便方式,并且或者与GUI集成并教导用户如何使用GUI来执行任务,或者代表用户来执行任务的内容向导,来解决向导、帮助、知识库文章和故障诊断程序的某些问题。具体而言,本发明涉及活动内容向导(ACW)脚本的创作,且尤其涉及创作作为ACW脚本的一部分的文本。
本发明针对一种用于基于作者在用户界面上的动作来自动生成文本文档的系统。为了生成文本文档,作者激活记录组件。记录组件记录作者在用户界面上的动作。记录组件将所记录的动作传递到文本生成组件。基于所记录的动作的属性(包括用户界面控件和作者动作),文本生成组件搜索文本数据库,并标识匹配作者的所记录的动作的条目。该文本生成器可基于一规则体系来生成该文本。该文本然后被组合以形成向用户提供指令或其它信息的文本文档。在生成文本文档的过程期间或之后,可使用编辑器编辑文本来增强文档的易理解性。
附图简述

图1是其中可使用本发明的一个示例性实施例的框图。
图2是示出本发明的自动文本生成系统的组件的框图。
图3是示出其上可使用本发明的图形用户界面的示例的屏幕截图。
图4是示出根据本发明的一个实施例的在文本文档的生成和编辑期间执行的步骤的流程图。
图5是示出可用于记录的示例性显示的屏幕截图。
图6是示出用于控制本发明的记录工具的用户界面控制元素的一个实施例的屏幕截图。
图7是示出本发明的突出显示特征的屏幕截图。
图8是示出向创作者呈现所生成的文本以供编辑的一种方式的屏幕截图。
图9是更详细示出在对所接收的命令生成自动文本期间执行的步骤的流程图。
说明性实施例的详细描述本发明涉及基于用户在用户界面上的动作来自动生成文本。在更详细描述本发明之前,将讨论其中可使用本发明的一个示例性环境。
图1示出了其上可实现本发明的合适的计算系统环境100的一个示例。计算系统环境100仅为合适的计算环境的一个示例,并非对本发明的使用范围或功能提出任何局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有任何依赖或需求。
本发明可以使用众多其它通用或专用计算系统环境或配置来操作。适用于本发明的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
本发明可以在诸如程序模块等由计算机执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可位于包括记忆存储设备的本地和远程计算机存储介质中。
参考图1,用于实现本发明的一个示例性系统包括计算机110形式的通用计算设备。计算机110的组件可包括但不限于,处理单元12O、系统存储器130以及将包括系统存储器的各类系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构中的任一种的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局域总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。通信介质通常具体化为诸如载波或其它传输机制的已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
系统存储器130包括以易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作示例,图1示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器141、对可移动、非易失性磁盘152进行读写的磁盘驱动器151以及对可移动、非易失性光盘156,如CD ROM或其它光介质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到系统总线121,并且磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到系统总线121。
上文讨论并在图1示出的驱动器及其关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。
用户可以通过输入设备,如键盘162、话筒163和定位设备161(通常指鼠标、跟踪球或触摸板)向计算机110输入命令和信息。其它输入设备(未示出)可包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121。除监视器之外,计算机也可包括其它外围输出设备,如扬声器197和打印机196,它们通过输出外围接口195连接。
计算机110可以使用与一个或多个远程计算机,如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、手持式设备、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有相对于计算机420所描述的元件。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或用于通过WAN 173,如因特网建立通信的其它装置。调制解调器172可以是内置或外置的,它通过用户输入接口160或其它适当的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可储存在远程记忆存储设备中。作为示例而非局限,图1示出远程应用程序185驻留在远程计算机180上。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
图2是示出根据本发明的一个实施例的自动文本生成系统200的组件的框图。文本生成系统200具有记录器207和文本生成器203。记录器207包括记录组件210、挂钩组件212和用户界面(UI)自动化组件214。还可任选地提供图像捕捉组件。文本生成器203包括文本数据库220以及文本生成组件230。文本生成系统200与用户界面205交互。作者可将系统200的组件配置成自动记录在用户界面205控件上执行的动作,并自动生成描述这些动作的文本235。作者201还可编辑自动生成的文本235以获得描述任务(或UI控件动作)的最终文本245。现在将详细描述图2中的多个组件。
用户界面205在一个实施例中是具有允许用户采取动作来执行任务的控件的图形用户界面。用户界面205被显示在图1所示的显示设备191上。图形用户界面(GUI)是一种广泛使用的用户界面机制。
图3是使出可结合本发明使用的GUI的一个示例的屏幕截图。在本示例中,该GUI被划分成背景部分(未示出)和窗口部分300,并包括一系列控件310。控件310可说明性地包括列表框、按钮、选项卡、树形控件和列表视图项。然而,GUI内可存在其它类型的控件,且所示和列出的这些仅是示例。窗口部分300进一步被划分成工具栏部分320和应用程序部分325。工具栏部分320具有被排列在可由用户在相关联的应用程序的正常操作期间选择的菜单322中的一系列任务。这些菜单项可进一步包括下拉菜单或选项,并且还可使另一窗口/GUI在屏幕上弹出。
记录组件210在一个实施例中是允许作者201或另一用户在用户界面205上执行任务并记录该任务的应用程序。当作者201正在执行与用户界面205上的任务相关联的步骤时,记录组件210记录关于作者在用户界面205上与哪些控件和窗口交互的信息。该信息被提供给文本生成器230以生成诸如帮助文档等文档中的文本。
记录组件210通过挂钩212和用户界面(UI)自动化组件214与用户界面205交互。这些组件可以与记录组件210分离,或者在某些实施例中,这些组件可以与记录组件210集成。
挂钩组件212在一个实施例中是计算机使用的操作系统内的模块或组件。当为鼠标点击设置挂钩时,例如将鼠标点击转发到消耗它的挂钩组件212,并且在由记录组件210记录之后,为计算机中注册来接收鼠标点击的其它组件回放该鼠标点击。因此,一般而言,挂钩组件212担当操作系统和目标应用程序之间的缓冲区。挂钩组件212可被配置成查找基本上任何输入动作,诸如所接收的信号的类型,例如单击、双击、右键或左键点击、键盘动作等等。一旦记录组件210记录了表示动作的信息,即由挂钩组件212向应用程序回放表示该鼠标点击(或所记录的任何动作)的信息。其原因之一是用户可能在记录第一动作之前采取了第二动作。第二动作可能导致用户界面的状态改变,且因此导致对第一动作的不正确记录。通过消耗第一动作并且一旦完成之后即回放它,确保了第一动作可被正确地记录。
还应当注意,挂钩组件212执行的功能(即,监听鼠标点击和回放它们)说明性地在单独的线程上执行。这确保所有用户界面动作(例如,鼠标点击、键盘动作等)将被正确地记录和回放而不会遗漏任何动作。此外,挂钩组件212的记录和回放机制可覆盖在操作系统内隐含的任何超时特征。如果操作系统的超时周期太短以致于不允许对动作的正确记录,则这是必需的。
用户界面自动化组件214说明性地是被配置成解释由作者或用户通过用户界面205执行的任务的原子步骤的计算机程序。在一个实施例中,用户界面自动化组件214是使用微软公司的Microsoft User Interface Automation(微软用户界面自动化)实现的GUI自动化模块。该模块提供了访问关于可视用户界面的信息并可编程地与可视用户界面交互的编程性方式。然而,取决于系统设置,用户界面自动化组件214可使用能够可编程地导航图形用户界面并实现、执行和检测用户界面上的命令的任何应用程序。
用户界面自动化组件214因此检测与作者201(或另一用户)以任务的顺序在用户界面205上执行的期望任务相关联的每一步骤。例如,当该任务要求用户点击GUI上的按钮以显示新菜单或窗口时,UI自动化组件214确定哪一控件位于鼠标在用户界面205上的位置上。记录组件210使用来自挂钩组件212的信息(例如,点击了哪一鼠标按键以及鼠标光标位于用户界面上何处)以及来自UI自动化组件214的信息(例如,控件的类型、名称和状态)来记录作者用于执行该步骤的控件的名称和属性。由用户界面自动化组件214确定的该信息被提供给记录组件210,以使记录组件210能记录由作者用于执行该步骤的控件的名称、状态和类型。
文本生成组件230是被配置成生成描述在记录过程期间执行或实现的动作的自然语言文本的程序或模块。文本生成组件230使用由记录组件210所记录的信息来从文本数据库220中选择一正确的模板或条目。
文本数据库220说明性地是可由文本生成器230搜索的数据库或其它信息存储系统。文本数据库220包含与用户界面205上可用的控件有关的信息。该信息可包括例如控件的名称、控件的类型、在控件上执行的动作以及作为自然语言语句的动作的文本描述。
在某些实施例中,条目的文本描述是以多种语言提供的。当以多种语言提供文本描述时,为每一条目提供一语言标识符以允许选择正确的语言。
然而,取决于系统的需求,可在文本数据库220中提供其它信息。在一个实施例中,文本数据库220中的某些条目具有与按序执行的多个控件为例的两个或多个动作有关的信息。在多个控件上的多个动作以文本数据库220中的单个条目表示的情况下,条目的文本包含作为单个语句的对在两个控件上执行的动作的自然语言描述。通过将两个命令的描述组合成单个语句,改进了最终的文本文档的可读性。
在一个实施例中,文本数据库220是以可扩展标记语言(XML)来编写的。每一条目的数据可作为一系列子条目来储存,其中该条目的每一子条目涉及标识任务所需的一条单独的信息。然而,可以使用其它格式来储存数据。
在一个实施例中,文本生成组件230在文本数据库220中搜索条目时考虑两个或多个所记录的动作。可以这样做以提供更流畅的文本文档。例如,良好的程序文档通常将一个以上步骤组合成单个语句作为对可读性的增强。如果文本生成组件230标识了文本数据库220中匹配所记录的信息的两个或多个条目,则文本生成组件230可使用任何已知的方法,诸如通过基于对每一条目的评分消除条目的歧义并选择具有最高得分的条目,来确定要选择数据库中的哪一条目。
根据一个实施例,基于在用户界面上激励的控件的类型以及所执行的动作,文本生成组件230在文本数据库220中搜索匹配所执行的控件类型和动作的条目。一旦在文本数据库220中标识了匹配,则文本生成组件230从文本数据库220中获得该动作的相关联的自然语言描述,并将其作为语句指令放置在所生成的文本文档235中。在一个替换实施例中,文本生成组件220还可基于由UI自动化模块214提供的信息来生成文本文档的可执行版本。
当从文本数据库235中选择文本描述时,文本生成组件也可考虑控件的状态。这在控件为复选框或可扩展或可折叠树时是重要的。在这一情况下,仅仅点击框可能不是描述该动作的适当动作,因为无论所期望的结果是什么,控件上的动作都是相同的。因此,在这些情况下,控件的新状态会影响所选择的文本。例如,如果控件是复选框且将要被取消选择,则所匹配的文本是基于该控件的新状态加上控件名称。
文本编辑器240是被配置成对自动生成的文本235纠正、改变或添加信息或文本的编辑器。取决于由文本生成器230生成的所得的文本以及作者执行的动作,可能必须编辑该文本来进一步增强其可理解性。因此,文本编辑器240接收所生成的文本235,并允许作者201编辑所生成的文本。
文本编辑例如由于语法必要性或由于所记录的步骤之一需要用户动作而是必需的,并且系统并不在记录用户动作时请求该用户动作的描述。在这一情况下(当需要用户输入时),在根据一个实施例执行要记录的任务时,文本生成器235仅在文本中提供一空间以供作者提供用户应在该步完成什么的指令/描述。
例如,假定由用户和记录组件执行的任务要改变计算机屏幕上的背景面板。这要求用户为背景选择一个图案。因此,文本数据库为所记录的改变背景的用户动作返回的文本可以是“Please select[insert description of action]”(请选择[插入动作的描述]),其中作者必须编辑该文本以使其成为“Please select the desired backgroundfrom the list”(请从列表中选择期望的背景)。同样,在编辑阶段期间,如果总体任务的描述并不是在记录任务之前提供的,则作者201可以提供该描述。一旦编辑了文本,就从创作工具200输出最终文本245,并且以允许用户在期望时检索该最终文本的适当存储模式来储存该文本。
图4是示出根据本发明的一个实施例在创作文本文档期间执行的步骤的流程图。为讨论起见,假定所编写的文档是帮助文档。帮助文档对于应用程序的用户而言是有用的,因为它们以向用户解释如何执行期望任务的书写格式提供了协助。同样,在图4的流程图的讨论期间,将参考各个示例性屏幕截图。这些屏幕截图在图5到8中示出。
首先,帮助文档的作者激活记录组件。该记录组件类似于图2所示的记录组件。作者通过首先打开类似于图5所示的窗口来激活记录组件。此时,作者可编辑由线510和520指示的屏幕部分,以包括诸如所创建的文档的标题以及关于该任务的任何介绍性信息等信息。然而,如上所述,该信息可在稍后的编辑期间被添加到文本文档中。记录组件的激活由步骤410示出。在这一步骤期间,还向作者显示记录工具。
用显示元素600来表示记录工具的用户界面的一个实施例在图6中示出。这表示记录工具具有记录按钮610、停止按钮620、用户动作按钮630以及文本按钮640。通过激活记录按钮610,记录组件210记录作者(或其它用户)在用户界面205上的动作。当作者选择停止按钮620时记录停止。如果该动作需要用户动作,则作者选择动作按钮630。如果作者期望在记录过程期间编辑文档的文本,则作者可选择文本按钮640。另外,在某些实施例中,可存在一附加按钮。该附加按钮允许用户设置一值。这允许当在运行时用户必须向编辑框键入文本时生成正确的文本。
在开始记录动作之前,如有需要,作者打开要为其编写文本文档的应用程序。然而,如果该文本文档被设计成在应用程序的框架之外运行,则在记录用户界面上的动作之前不打开任何窗口。
记录进程在作者选择记录工具600上的记录按钮610时开始。此时,UI自动化组件214确定用户界面205上的可用功能和组件。这在图5的步骤420处示出。记录组件210还在用户界面上提供关于当前哪一命令或功能被标识为使用从UI自动化组件214提供的信息来访问的指示。该命令的这一突出显示由图7的参考标号710示出。
接着,作者在屏幕上执行期望的命令。这在图4的步骤430处示出。然后,记录组件210使用挂钩组件212捕捉与该命令有关的信息。这在步骤440处示出。该命令由记录组件在图4的步骤450处记录。在本发明的一个实施例中,在步骤450处记录的信息包括命令的类型加上控件的状态,以及由作者提供的输入的类型。如上所述,该信息是从UI自动化组件214接收的。然而,在记录过程期间可由UI自动化组件214提供其它信息。一旦记录组件记录了命令,挂钩组件212即向操作系统传递、重发或重放该命令,操作系统将该命令发送给应用程序以在应用程序上可编程地执行该命令。挂钩组件212保持该命令不被传递到应用程序,以确保UI自动化组件214有时间将所需的信息传递给记录组件。
然后,记录组件210将所记录的信息传递到文本生成组件230,以生成作为所接收命令的合适描述的文本。这在图4的步骤460处示出。用于获得该文本的进程的一个示例参考下文详细描述的图9示出。
在步骤460处为所执行的任务的特定步骤生成文本之后,记录组件确定是否还有其它步骤要执行。这在步骤470处示出。在本发明的一个实施例中,这一检查是由记录组件210自动执行的。例如,如果所记录的命令的结果导致另一窗口被打开或弹出,则系统假定有另一步骤要记录。在另一实施例中,除非作者从图6所示的记录工具中选择停止按钮620,否则系统假定有另一步骤要记录。如果有另一步骤要执行,则系统在步骤475处前进到任务中的下一步骤,并重复步骤420到470。
所生成的文本的一个示例在图8中由参考标号820-820示出。该文本向用户提供了期望任务的逐步指令。该文本可如对文本数据库220和文本生成组件230描述的那样来生成,或者可根据允许从接收的输入命令自动生成文本的任何方法来生成。
一旦完成了所有的步骤,系统就进入编辑文本模式。此时,向作者201呈现所记录的所有步骤和由文本生成器组件230生成的相关联文本。作者然后在步骤480处审阅这些文本,并对文本作出任何必要的纠正。这些纠正可包括改变所生成的文本的语法结构、向所生成的文本添加信息以提高文本的可理解性、删除不必要的步骤、或任何其它编辑。在编辑之前显示的文本的一个示例在图8中示出。在一个实施例中,文本可在创作工具中编辑。然而,在其它实施例中,文档的文本可在诸如Microsoft Word或Notepad等文字处理程序或带有编辑器的任何其它程序中编辑。在图8中,作者可能期望添加描述线830处的动作的附加信息,或者在线818处的短语“description of choice”(选择描述)处提供所请求的信息。
一旦编辑了文本文档,在步骤490处保存文本文档的最终版本。文档以允许文档在被请求时能被容易地检索的任何方式来保存。在一个实施例中,文本文档被保存为在线帮助程序的一部分。在创作文本文档期间,还可生成对应于所记录的步骤的可执行文件。
根据美国第10/337,745号中描述的方法,在一个实施例中,创建文档的可执行版本。
图9是更详细示出根据本发明的一个实施例被执行来为所接收的命令生成文本的步骤的流程图。在步骤910处,在文本生成模块230处从记录组件210接收与所记录的命令有关的信息。如上所述,该信息由UI自动化组件210提供。然而,也可使用其它设备或技术来获得与用户界面上所选的项有关的信息。
一旦文本生成器组件接收了与命令有关的信息,文本生成器组件230即开始在文本数据库中搜索匹配所接收的命令的条目。在一个实施例中,文本数据库220是含有包括控件或所交互的其它项的类型、动作类型、控件的新状态(例如,被复选、取消复选、扩展、折叠等)以及动作的文本的多个条目的XML数据库。然而,可使用其它数据存储方法来保存文本。此外,可在文本数据库220中保存其它信息。根据一个实施例的文本数据库的一部分的一个示例在以下表1中提供。
表1<EnglishTemplate actionTypeID=″value″controlTypeID=″check box″ActionText=″Select″specialValueID=″checked″>
<Sentence>Select the<tag id=″1″X/tag>checkbox</Sentence></EnglishTemplate>
<EnglishTemplate actionTypeID=″invoke″controlTypeID=″button″ActionText=″Click″>
<Sentence>Click<tag id=″1″X/tag></Sentence></EnglishTemplate>
<EnglishTemplate actionTypeID=″invoke″controlTypeID=″list item″ActionText=″Double-click″>
<Sentence>In the <tag id=″2″X/tag> list,double-click<tagid=″1″></tag></SentenceX/EnglishTemplate>
<EnglishTemplate actionTypeID=″expand_collapse″controlTypeID=″tree item″ActionText=″Expand″specialValueID=″expanded″>
<Sentence>Click the minus sign next to<tag id=″1″X/tag>to collapseit</Sentence></EnglishTemplate>
例如,假定从记录组件接收的关于命令的信息是动作类型=“invoke(调用)”,控件类型=“button(按钮)”,控件名称=“OK”“click(点击)”,则文本生成组件230搜索文本数据库220并找出匹配该信息的文本。对文本的这一获取在步骤930处示出。
在记录所述的步骤期间,如果作者通过选择图6所示的用户界面600上的用户动作按钮630为步骤指定了用户动作步骤,或者如果文本数据库220中的条目指示该动作是用户动作,则文本生成组件230在一个实施例中能够提示作者向所获得的文本添加对期望动作的描述。这在步骤940处示出。作者然后可在步骤950处提供文本。然而,作者可忽略该步骤,并稍后在编辑阶段添加信息。任何所添加的文本在步骤960处被添加到文本235。
如果不需要用户动作,或者如果作者已提供了必要的用户动作信息,则文本生成器230将所获得的文本提供给文本文档。这在步骤970处示出。应当注意,图9的步骤910-970对应于图4中的步骤460。
尽管参考具体实施例描述了本发明,但是本领域的技术人员可以认识到,可以在不脱离本发明的精神和范围的前提下在形式和细节上作出任何改变。
权利要求
1.一种被配置成响应于用户界面上执行的至少一个动作来生成文本的文本生成系统,包括被配置成记录对应于用户界面上的所述至少一个动作的特征的记录组件;以及被配置成从所述记录组件接收所述特征并基于所述特征输出所生成的文本的文本生成组件。
2.如权利要求1所述的文本生成系统,其特征在于,所述记录组件被配置成从用户界面自动化组件接收特征,所述用户界面自动化组件被配置成标识与所述用户界面上的每一动作相关联的多个特征。
3.如权利要求2所述的文本生成系统,其特征在于,所述动作是通过激励所述用户界面上的控件来执行的,且其中,所述多个特征还包括控件名称;控件类型;以及在所述控件上执行的动作的标识。
4.如权利要求3所述的文本生成系统,其特征在于,还包括可由所述文本生成组件搜索的文本数据库,所述文本数据库含有多个条目,每一条目包括与至少一个动作相关联的文本。
5.如权利要求4所述的文本生成系统,其特征在于,所述文本数据库中的每一条目包括多个子条目,所述子条目包括与所述多个特征相关联的文本;以及所执行的动作的文本描述。
6.如权利要求5所述的文本生成系统,其特征在于,所述动作的文本描述包括多种语言的文本描述。
7.如权利要求5所述的文本生成系统,其特征在于,所述动作的文本描述是所述动作的自然语言文本描述。
8.如权利要求5所述的文本生成系统,其特征在于,所述文本生成组件被配置成通过将从所述记录组件接收的所记录的特征与所述文本数据库中的条目或子条目进行匹配来标识所述文本数据库中的条目。
9.如权利要求5所述的文本生成系统,其特征在于,所述文本生成组件响应于所述匹配输出所述条目的文本描述。
10.如权利要求8所述的文本生成系统,其特征在于,所述文本生成组件被配置成搜索所述文本数据库,以通过将为动作组合所记录的特征与所述文本数据库中的条目进行匹配来标识匹配条目。
11.如权利要求10所述的文本生成系统,其特征在于,所述文本生成组件被配置成从所述匹配条目输出所述动作组合的文本描述。
12.如权利要求2所述的文本生成系统,其特征在于,所述用户界面自动化组件还被配置成向所述记录组件提供与所述用户界面上的动作相关联的多个可执行命令,并且其中,所述文本生成组件还被配置成基于所述可执行命令生成所生成的文本的可执行版本。
13.如权利要求1所述的文本生成系统,其特征在于,还包括被配置成允许编辑所生成的文本的文本编辑组件。
14.一种生成描述在用户界面上执行的任务的文本的方法,包括执行与所述任务相关联的一系列步骤;用记录器组件记录所述一系列步骤中的每一个;从文本存储中获得与所述一系列步骤中的每一个相关联的文本;以及从所获得的文本中生成所述文本。
15.如权利要求14所述的方法,其特征在于,记录所述一系列步骤中的每一个还包括接收用户界面上可用的元素的指示;接收所述用户界面上正被操纵的控件的指示;以及记录与所述用户界面上正被操纵的控件相关联的特征。
16.如权利要求15所述的方法,其特征在于,记录特征还包括以给定状态保持所述用户界面直到记录了所述特征;以及然后在所述用户界面上执行所述命令。
17.如权利要求15所述的方法,其特征在于,所述用户界面上可用的元素的指示以及正被操纵的控件的指示是从用户界面自动化组件接收的。
18.如权利要求17所述的方法,其特征在于,还包括生成所生成的文本的可执行版本。
19.如权利要求16所述的方法,其特征在于,所述用户界面自动化组件还向所述文本生成组件提供可执行信息。
20.如权利要求14所述的方法,其特征在于,还包括编辑所生成的文本。
21.如权利要求14所述的方法,其特征在于,从所述文本存储获得文本包括从所述记录组件接收与所述一系列步骤中的一个相关联的所记录的特征的指示;以及在所述文本存储中搜索匹配所接收的特征的条目;以及从所述匹配条目中检索文本描述。
22.如权利要求21所述的方法,其特征在于,从所述文本存储获得文本还包括从所述记录组件接收与至少两个步骤相关联的所记录的特征的标识;在所述文本存储中搜索匹配所述至少两个步骤的条目;以及为所述匹配条目提供文本输出。
23.如权利要求21所述的方法,其特征在于,生成文本还包括确定所述步骤之一是否需要用户输入;以及如果是,则连同从所述文本存储获得的文本一起提供所述用户输入的描述。
24.一种包含计算机可执行指令的计算机可读介质,当所述指令被执行时,使计算机执行如权利要求14到23中任一项所述的方法。
全文摘要
文本生成器(200)基于作者(201)在用户界面(205)上的动作自动生成文本文档(235、245)。为生成文本文档(235),作者(201)激活记录组件(210)。记录组件(210)记录作者在用户界面(205)上的动作。基于所记录的动作,文本生成组件(230)搜索文本数据库(220),并标识匹配作者的所记录的动作的条目。该文本然后被组合以形成向用户提供指令或其它信息的文本文档(235)。在生成文本文档(235、245)的过程期间,在需要时可使用编辑器(240)来编辑文本,诸如用于增强文档(235、245)的可理解性。
文档编号G06F9/06GK1973256SQ200480043312
公开日2007年5月30日 申请日期2004年7月8日 优先权日2004年7月8日
发明者A·芭拉, A·J·麦克格林奇, J·D·雅各布, H-W·弘, S·森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1