首页> 中国专利> 用于从非结构化描述生成结构化表示的系统和方法

用于从非结构化描述生成结构化表示的系统和方法

摘要

本发明公开一种用于从非结构化描述生成结构化表示的方法和系统,所述方法包括:由计算机接收非结构化描述;以及由计算机基于该非结构化描述而生成结构化表示。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-05-06

    未缴年费专利权终止 IPC(主分类):G06F17/30 专利号:ZL200610085036X 申请日:20060522 授权公告日:20090930

    专利权的终止

  • 2011-12-21

    发明专利更正 卷:25 号:39 页码:扉页 更正项目:摘要 误:2006年5月22日提交的 正:2008年1月29日提交的 申请日:20060522

    发明专利更正

  • 2009-09-30

    授权

    授权

  • 2007-01-24

    实质审查的生效

    实质审查的生效

  • 2006-11-29

    公开

    公开

说明书

技术领域

本发明一般涉及用于结构化和形式化非结构化且不严密的信息的方法和系统。具体地说,它涉及用于通过来自提供指导的计算机系统的支持来获得非结构化信息并且使其结构化和形式化的方法和系统。另外,本发明涉及一种用于通过计算机的帮助来获得过程或任务的不严密描述并且使其严密且形式化的系统。

背景技术

大量活动-特别是创造活动-包括工程,需要从业者制作对客户需要的解决方案的结构化图、文档或规范。例如,土木工程师在设计新桥梁时可能制作设计图和结构分析,信息技术(IT)架构师在设计IT系统以满足新业务需要时制作需求文档、以及设计模型,或者作曲者为电影制作配乐。在这些领域的每一个中,创造工作的结果是足以让他人建造或照办的、高度结构化的规范或设计。

同时,存在专用于这些领域的系统,其以这些领域的形式化或结构化概念表示信息。作为示例,IT架构师的典型工具可以表示诸如组件、接口等的IT构造,而为电影配乐的典型工具表示配乐部分、由乐器演奏的音符以及电影的时间方面。

相反,在这些活动的开始,可用信息典型地是非结构化的,并且在质量、数量和细节上是变化的,从而反映来自各种各样的来源的信息的起源。大多数输入来自从业者可以记录笔记的会谈和会议。其它输入由与从业者所受的培训不同的人或者由于其它原因使用非结构化格式而非使用创造领域中的工具来提供素材的人准备。例如,IT客户可以在文本文档中指定需求或业务目标。

由于在开始可用于从业者的信息的内容和格式与行业工具和产物(artifact)所要求的信息内容和格式之间的这一不匹配,因此专用于这些领域的系统经常具有有限的吸引力。例如,在音乐和IT架构领域内,研究显示出从业者不使用领域特定工具,直至他们设计出解决方案的很多细节之后。其结果经常是低效和不准确。

而且,虽然世界中的大部分数据采用非结构化且非形式化的格式(这包括包含采用英语和其它语言的信息的文档),但是计算机要求,在它们可以对信息执行高级处理活动,例如使用信息执行一系列步骤,检测信息的不一致等之前,该信息采用格式化且形式化的格式。信息的形式化表示具有可以在数学上定义的严密语法和语义。这允许采用形式化格式的信息被机器处理。例如,以严密的语义创建形式化表示对于一些信息处理活动例如查询数据库、创建系统的形式化模型、在数据集合上推理等是必要的。

不幸的是,形式化表示的创建对于应用这些和相关的处理活动可能是瓶颈,因为拥有与应用领域有关的详细知识的专家经常不熟练于产生形式化表示。

存在两个传统的方案来尝试解决该瓶颈。然而,这些传统方案都是严重受限的。传统地,当没有经验的人希望创建结构化、形式化的信息表示时,他们可能:(1)寻找形式化表示法的专家来帮助他们,或者(2)试图自己学习表示法。第一方案是严重受限的,这是因为如上所述,熟悉领域的、形式化表示法的专家是非常少的,并且第二方案由于学习任何特定形式化表示法的复杂性的困难而也是受限的。

存在现有的技术来尝试解决非结构化信息的处理和管理。这些传统的方案被称作非结构化信息管理(UIM)方案。然而,这些方案典型地与诸如文档分类、聚类以及检索的问题而非信息的推理和基于机器的信息执行有关。

需要一种方法和系统,其能够自动地使用非形式化信息创建形式化表示中的元素,使得信息变得适于机器处理。

发明内容

鉴于传统方法和结构的前述和其它示例性问题、缺点和缺陷,本发明的示例性特征在于提供一种从非结构化表示生成结构化表示的方法和系统。

在本发明的第一示例性方面,一种用于从非结构化描述生成结构化表示的方法包括由计算机接收非结构化描述,由计算机基于该非形式化描述而生成结构化表示。

在本发明的第二示例性方面,一种用于部署计算机基础设施以便从非结构化描述生成结构化表示的方法包括将计算机可读代码集成到计算系统中。该计算机可读代码包括用于接收非结构化描述的指令、以及用于基于该非结构化描述而生成结构化表示的指令。

在本发明的第三示例性方面,一种可由数字数据处理单元执行以便从非结构化描述生成结构化表示的信号承载介质包括接收非结构化描述,并且基于该非结构化描述而生成结构化表示。

在本发明的第四示例性方面,一种用于从非结构化描述生成结构化表示的系统包括用于接收非结构化描述的装置、以及用于基于该非结构化描述而生成结构化表示的装置。

为了解决上述问题,本发明的示例性实施例提供了使用领域信息的非结构化描述作为用于结构化该信息的基础的方案。

本发明的示例性实施例允许用户通过来自系统的指导或自动帮助,根据领域规则结构化和形式化信息,并且从非结构化输入产生严密的结构化产物。

本发明的示例性实施例使用用于非形式化地描述来自领域的信息的领域特定词汇表和语法。该词汇表应当包含足以允许对在词汇表中产生的语句进行分类的语法结构。

本发明的示例性实施例包括用于非形式化地描述领域的词汇表和语法的编辑器。

本发明的示例性实施例包括语句分类器,其自动地分类使用词汇表和语法表达的语句。

本发明的示例性实施例使用形式化元模型,其描述形式化信息应当具有的形式。该模型为可以由词汇表和语法表示的每个语句类型定义信息的形式化版本的结构。

本发明的示例性实施例包括一个或多个向导程序(wizard),其使领域专家通过一组非形式化信息收集步骤,并且基于所接收的非形式化信息而自动创建元模型元素的实例。

本发明的示例性实施例包括用于每个语句类型的向导程序,每当对在编辑器中分类的语句采取操作时,可以调用它。

本发明的示例性实施例使用检查形式化信息的一致性和完整性的方案。以这种方式,在发现形式化问题时,可以向领域专家提供反馈。

本发明的示例性实施例是有利的,这是因为它使得能够将非形式化信息转换成不同于非形式化表示而可由机器处理的形式化表示。使用该技术的形式化大大简单于手动完成它,并且仅仅需要学习自然语言的结构化词汇表。自然语言是人类形成的语言,例如英文、法文、中文等。

本发明的示例性实施例是有利的,这是因为它可以提供向导程序,其仅仅通过以非形式化表示的方式从用户接收输入来为用户创建形式化表示。

本发明的示例性实施例是有利的,这是因为信息可以在非形式化和形式化表示中同时可用,因而可以由专家和非专家以同样的方式检查和分析它。

本发明的示例性实施例是有利的,这是因为从非形式化表示到形式化表示的信息转换允许通过编程构造来捕获(capture)信息。这使得能够完全地执行和推理信息。

这些和很多其它优点可以通过本发明来实现。

附图说明

根据下面参考附图对本发明的示例性实施例的详细描述,将会更好地理解前述和其它示例性目的、方面和优点,其中:

图1示出了利用并且并入本发明的示例性硬件/信息处理系统100;

图2示出了用于存储根据本发明的方法的程序步骤的信号承载介质200(例如,存储介质);

图3示出了根据本发明示例性实施例的形式化环境300;

图4示出了根据本发明的控制例程的示例性实施例的流程图400,其中该控制例程用于基于由用户提供的信息的非形式化表示而获得该信息的形式化表示;

图5示出了用于管理部门502和项目504的简单系统的示例性数据领域模型500;

图6示出了示例性用例模型600,其示出了图5的数据领域模型的各个用例606;

图7示出了根据本发明的示例性图形用户界面700;

图8示出了根据本发明的示例性实施例的、用于形式化用例的示例性元模型800;

图9示出了根据本发明的示例性图形用户界面900;

图10示出了根据本发明的示例性向导程序314的示例性图形用户界面1000;

图11示出了根据本发明的示例性元模型1100;

图12示出了根据本发明的、用于执行一致性检查的示例性控制例程1200的流程图;

图13示出了根据本发明的、用于检查形式化模型的完整性的控制例程的流程图1300;

图14示出了根据本发明的、用于形式化“预订航班”用例语句的向导程序314的示例性图形用户界面1400;

图15示出了使用图14的图形用户界面1400创建的形式化语句1500;

图16到24示出了用于结构化和形式化信息技术领域内的信息的图形用户界面1600的各个操作状态;

图25示出了用于结构化和形式化音乐领域内的信息的另一个图形用户界面2500;

图26示出了根据本发明示例性实施例的形式化例程的流程图2600;以及

图27示出了根据本发明示例性实施例的准则(criteria)分析引擎的流程图2700。

具体实施方式

现在参考附图,更具体地说,参考图1~27,示出了本发明的方法和结构的示例性实施例。

就本描述而言,对‘结构化’信息或‘结构化’表示的引用意欲表示每一个组成部分都已被给予特定类别并且已被相互排列的信息。

此外,虽然下面描述一般涉及结构化和非结构化信息,但是本领域的普通技术人员应当理解,结构化信息包括形式化信息等,并且非结构化信息包括非形式化信息等。

对‘形式化’的引用不仅表示‘结构化’信息,而且表示其每个组成部分已被给予特定语义的信息。例如,形式化信息可以包括关于编程语言、建模语言、建筑描述语言等中的对象的类型或类的语义。这些语义可以具有特定的组成部分或可能的值和行为。因此,例如,在下面描述中对根据所识别的形式化来生成形式化产物的引用可以包括生成新产物,并且向该新产物给予特定语义。

图1示出了根据本发明的系统100的典型硬件配置,其中系统100用于从非形式化描述捕获形式化且严密的信息,并且优选地具有至少一个处理器或中央处理单元(CPU)111。

CPU 111通过系统总线112互连到随机存取存储器(RAM)114、只读存储器(ROM)116、输入/输出(I/O)适配器118(用于将诸如盘单元121和磁带驱动器140的外围设备连接到总线112)、用户接口适配器122(用于将键盘124、鼠标126、扬声器128、麦克风132和/或其它用户接口设备连接到总线112)、通信适配器134、以及显示适配器136,其中通信适配器134用于将信息处理系统连接到数据处理网络、因特网、内联网、个人区域网(PAN)等,并且显示适配器136用于将总线112连接到显示设备138和/或打印机139(例如,数字打印机等)。

除了上述硬件/软件环境之外,本发明的不同方面还包括用于执行下述方法的计算机实现方法。作为示例,该方法可以在上述具体环境中实现。

这种方法可以例如通过操作如由数字数据处理设备实施的计算机来实现,以执行机器可读指令序列。这些指令可以驻留在各种信号承载介质中。

这样,本发明的这一方面涉及一种编程产品,其包括信号承载介质,该信号承载介质有形地包含可由并入CPU 111和上述硬件的数字数据处理器执行的可机读指令的程序,以执行本发明的方法。

该信号承载介质可以例如包括包含在CPU 111内的RAM,例如,其由快速存取存储装置代表。可选地,这些指令可以包含在可由CPU111直接或间接存取的其它信号承载介质如磁性数据存储盘200(图2)中。

无论是包含在盘200中、计算机/CPU 111中或者其它处,这些指令都可以存储在各种可机读数据存储介质上,例如,DASD存储装置(例如,传统的“硬盘驱动器”或RAID阵列)、磁带、电子只读存储器(例如,ROM、EPROM或EEPROM)、光存储装置(例如,CD-ROM、WORM、DVD、数字光带等)、纸式“打孔”卡、或者其它适合的信号承载介质包括诸如数字和模拟通信链路以及无线的传输介质。在本发明的示例性实施例中,可机读指令可以包括软件目标代码。

图3示出了根据本发明示例性实施例的形式化环境300,其中用户302可以基于由用户302提供的信息的非形式化表示而获得该信息的形式化表示。

形式化环境300包括编辑器304、语句分类器306、约束检查器308、约束集310、向导程序314的集合312、形式化模型316、以及形式化元模型318。

图4示出了根据本发明的控制例程的示例性实施例的流程图400,其中该控制例程用于基于由用户提供的信息的非形式化表示而获得该信息的形式化表示。

在本发明的示例性实施例中,用户302输入用户302希望使用本发明300形式化的非形式化描述。用户302使用相关领域的适当词汇表。

该控制例程在步骤402开始,并且继续到步骤404。在步骤404,用户302激活编辑器,并且控制例程继续到步骤406。

在步骤406,控制例程确定用户操作是否指示输入语句。如果在步骤406,控制例程确定用户操作指示输入语句,则控制例程继续到步骤408。

在步骤408,控制例程解析输入语句,并且向输入语句添加小部件(widget),并且返回到步骤406。

然而,如果在步骤406,控制例程确定用户操作没有指示输入语句,则控制例程继续到步骤410。

在步骤410,控制例程确定用户操作是否指示小部件选择。如果在步骤410,控制例程确定用户操作指示小部件选择,则控制例程继续到步骤412。

在步骤412,控制例程激活向导程序,并且返回到步骤406。

然而,如果在步骤410,控制例程确定用户操作没有指示小部件选择,则控制例程继续到步骤414。

在步骤414,控制例程确定用户操作是否指示保存请求。如果在步骤414,控制例程确定用户操作指示保存请求,则控制例程继续到步骤416。

在步骤416,控制例程保存模型,并且返回到步骤406。

然而,如果在步骤414控制例程确定用户操作没有指示保存请求,则控制例程继续到步骤418。

在步骤418,控制例程确定用户操作是否指示检查约束请求。如果在步骤418,控制例程确定用户操作指示检查约束请求,则控制例程继续到步骤420。

在步骤420,控制例程激活约束检查器,并且返回到步骤406。

然而,如果在步骤418,控制例程确定用户操作没有指示检查约束请求,则控制例程继续到步骤422,其中控制例程停止。

下面描述如图3所示的本发明的示例性实施例的操作,其捕获自动生成测试例来测试软件系统的软件系统的形式化模型。

当测试软件系统时,开发有效且高效的测试集是复杂的问题。如果测试集彻底地覆盖输入、操作和操作序列的组合,从而增强它将遇到软件中的缺陷的可能性,则它是有效的。如果测试集提供这样的覆盖而没有将导致过度增加测试工作的不必要冗余,则它是高效的。

典型地,当测试者测试软件系统时,测试者或测试程序对正被测试的系统采取操作,并且从被测试系统接收所返回的结果或响应。将所接收的结果与预期结果进行比较,以确定该系统是否正确工作。然后,测试者采取另一个操作,获得某个其它响应,并且测试者执行一系列这些操作/响应序列。有时,该序列的次序取决于在该序列中较早接收的响应。序列可被组合的方式的数目非常大。

下面描述涉及用例的概念。用例定义用户感兴趣的一段功能性。换句话说,用例以类似于该系统的用户视图的方式呈现被测试系统。例如,在字处理器中,用户可能想要保存文件。用户考虑“我将要保存文件”。这样,“保存文件”成为用例。用例可以包括若干步骤。在本例中,用户可能点击“保存为”、键入文件名,然后点击“确定”。系统可能以“该文件名已经存在,想要覆写它?”响应,并且用户响应“是”。这样,对于特定用例可能发生很多操作。这些步骤是用例内的操作。

下面描述还涉及另一个概念,该概念被称作“参与者”。对于任何给定软件系统,可以存在很多参与者。参与者的例子可以包括系统管理员、常规用户和客户。不同的参与者经常具有仅仅使用特定用例子集的权限。这些子集可以重叠。

本发明的示例性实施例还使用测试例的概念,其是比用例更高级别的构造。测试例是用例序列。每个用例具有可以影响系统状态的结果,并且还可以向用户提供某种反馈。作为示例,在“保存文件”用例中,向用户的反馈可以是“文件被保存”。这样,在文件被保存的事实中反映了系统状态。

为了为软件系统生成有意义的测试例,应当获得三种信息。第一种信息描述将由软件系统操纵的数据。第二种数据描述必须由软件系统满足的规则(例如,“不变式(invariant)”)。第三种信息提供软件行为的定义。

这三种信息可以通过对数据使用领域数据模型、对不变式使用数据模型上的约束、以及对行为使用用例(case)来建模。

可以使用本发明的示例性实施例以非形式化方式捕获并且形式化所有这三种信息。

如上所述,用例是使用描述软件系统与其用户(也被称作参与者)之间的交互的场景(scenario)来定义系统的行为能力的方式。这些用例被描述为语句序列,其中每一个定义使用系统时的步骤。

在本发明的示例性实施例中,存在至少三种语句步骤:输入步骤、输出步骤、以及计算步骤。输入步骤是参与者向系统提供某信息的步骤。输出步骤是系统向参与者返回某信息的步骤。计算步骤涉及系统执行计算的步骤。

为了说明这些能力,考虑下面如图5所示的、用于管理部门502和项目504的简单系统的数据领域模型500。部门502和项目504具有名称(name)506和预算(budget)508。每个部门502可以具有零个或更多个与其相关联的项目504。项目504与正好一个部门502相关联。

在该模型500上存在不变式510(也被称作业务规则),其规定了部门502中的项目504的所有预算508之和不能超过该部门502的预算508。

除了领域数据模型500之外,该示例还具有图6所示的用例模型600,其示出了各个用例606。在该模型中存在两个参与者:部门管理者602、以及监管几个部门502的总监604。

给定用例606,本发明的示例性实施例从领域专家接收详细描述每个特定用例的交互的非形式化步骤序列。

例如,对于“创建项目”用例606,系统需要部门管理者的授权,向部门管理者询问名称、部门和预算,从部门管理者接收名称、部门和预算,为该部门创建项目。换句话说,“创建项目”用例606的步骤序列如下:

前提:部门管理者已授权

1.系统询问名称、部门和预算

2.部门管理者输入名称、部门和预算

3.系统创建与指定的部门相关联的项目。

部门管理者的授权被认为是前提,这是因为在可以执行其余步骤之前必须满足该前提。

向部门管理者询问被分类为输出步骤。由部门管理者输入信息被分类为输入步骤,并且创建项目被分类为计算步骤。

给定上述非形式化软件系统模型,本发明的示例性实施例根据下面描述创建形式化模型。

本发明的示例性实施例首先使用词汇表和语法以便捕获组成用例步骤的语句。

如上所述,存在三类语句:输入步骤、输出步骤和计算步骤。本发明的示例性实施例基于语句中的动词而对语句进行分类。在本发明的其它示例性实施例中,除了动词之外,可以使用其它语法结构。

例如,下面示出了根据本发明示例性实施例的用于语句分类的样例语法。

输入::=参与者名称[输入|选择]信息

输出::=系统名称参与者名称[显示|返回]输出

计算::=系统名称[创建|计算|更新|删除]信息

在本发明的示例性实施例中,每个语句内的斜体词可以用自由文本替换,其中自由文本是用户希望输入的任何自然语言文本。这样,有效的计算语句将是:

ATM系统更新帐户状态。

因为该语句指定了对系统内的元素的更新,所以该语句是计算语句。

本发明的示例性实施例包括编辑器和分类器,其中编辑器用于捕获语句,并且分类器用于将语句分类到由词汇表定义的语句类型中。分类器以一旦提供模板/向导程序机制则分类可以支持语句的形式化的方式对语句进行分类。

在关于上面示例讨论的简单语言的情况下,如图7所示,编辑器304的图形用户界面700可以是具有附加特性的简单文本编辑器。图形用户界面700可以用粗体显示每个语句704的动词702,并且将动词之后的文本712显示为链接元素。编辑器304基于每个语句的分类而确定如何在图形用户界面700中显示语句内的文本。然后,用户302可以“点击”作为链接712而显示的文本,以便使系统启动支持对应语句的形式化的适当向导程序。

图形用户界面700还示出了将不被本描述解决的若干“异常”语句714。然而,这些语法元素全都以相同的方式处理。

由图形用户界面700示出的示例性用例对应于从帐户取款的用例。

图8示出了根据上述本发明示例性实施例的、用于形式化用例的示例性元模型800。

该元模型示出了“规范化模型”(NormedModel)41(在我们的示例性实施例中,用于形式化模型的名称)包含四项内容:“规范化参与者”(NormedActor)40、“规范化用例”(NormedUseCases)44、“规范化类”(NormedClass)43以及作为“规范化表达式”(NormedExpression)45的业务规则。此外,“规范化类”43包含“规范化属性”(NormedAttribute)46。“规范化用例”44包含“规范化结果”(NormedResult)48,其由在产生结果时规定的保护(guard)以及“规范化结果更新”(NormedResultUpdate)49语句集组成,其中“规范化结果更新”49语句描述伴随给定“规范化结果”48的任何计算。“规范化结果”48保护、“规范化结果更新”49以及业务规则全都以作为“规范化表达式”45表示,这是我们的实施例所提供以便捕获约束和计算语句的共同方式。

根据该示例性实施例,输入语句引用用户向系统提供的用例参数。类似地,输出语句引用系统向参与者输出的用例参数。计算语句引用当产生特定用例结果时所发生的对(由类和属性建模的)对象字段的状态更新。该结果包括保护和更新语句自身。

就本描述而言,保护是用例中的各个结果上的约束,并且更新语句相同于计算。

如上所述,本发明的示例性实施例包括用户可以使用编辑器304的图形用户界面700激活以形式化语句的向导程序314或其它帮助工具。向导程序是从用户接收信息并且为用户执行自动任务的小程序(程序段)。在这种情况下,向导程序314是从用户接收有关语句的信息以便形式化该语句的小程序。

为了允许通过编辑器304使用向导程序314,本发明的示例性实施例依赖于编辑器304的图形用户界面700,其在每个语句内显示“置标”文本。图形用户界面700使用允许用户识别哪些语句需要形式化的标记来显示语句文本。例如,如上所述,图形用户界面700可以通过对文本712加下划线来标记语句内的文本。以这种方式,当用户302点击标记712时,本发明的示例性实施例启动向导程序314,其帮助该语句的形式化。

换句话说,当本发明的示例性实施例确定用户302选择了标记712(例如,“点击链接”)时,则该示例性实施例启动帮助用户形式化语句的向导程序。

图10示出了根据本发明的示例性向导程序314的图形用户界面1000。图9示出了在动作动词902之后的文本912上具有置标的图形用户界面900。通过该示例性实施例,用户302点击在图9中圈起的置标916导致本发明的示例性实施例启动如图10所示的、向导程序314的图形用户界面1000。

向导程序314的图形用户界面1000允许用户302在语句中非形式化表示的信息,本发明的示例性实施例将通过其按照数据模型和输入参数来形式化语句。用户302可以在由向导程序的图形用户界面1000提供的字段中填写,并且可以回答由向导程序的图形用户界面1000提供的任何问题(未示出)。在图形用户界面1000中,用户302可以在“领域对象”字段1002、“属性”字段1004、“参数”字段1006、以及“常量”字段1008中输入信息。然后,当用户302在其它字段1002~1008中输入信息时,图形用户界面1000可以在“表达式”字段1010中提供语句的形式化表示。

在用户302完成填写由图形用户界面1000提供的字段1002~1008之后,用户302可以激活“完成”按钮1012,以使向导程序314保存语句的形式化表示。

由本发明的示例性实施例创建的取款用例的部分形式化(使用扩展置标语句)如下:

<UseCase abstract="false">      <Name>Withdraw</Name>

  <Precondition>let User:domainmodel::atmNew::User=

  archetest::domainmodel::atmNew::User.allInstanees()->any(c|true)

  in User.uebtAttrloggedOn=true

  </Precondition>

  <Step>1

     <Input>account

     <Type>archetest::domainmodel::atmNew::AccountType

</Type>

            </Input>

  </Step>

  <Step>2

            <Input>account

            <Type>Real</Type>

            </Input>

  </Step>2

  <Step>3

            <Output>cash

            <Type>Physical Action<\Type>

            </Output>

  </Step>

  </Step>4

         <Computation>

              let Account:

archetest::domainmodel::atmNew::Account=archetest::domainmodel::atmNew   ::Account.allInstances()->any(c|true),useCaseInv:

archetest::expressions::UseCaseInvocation=

archetest::expressions::UseCaseInvocation.allInstances()->any(uc|true),

bindings:Sequence(archetest::expressions::Binding)=useCaseInv.bindings,

amount:Real=bindings->any(b|b.parameter.name=′amount′).value in

Account.ucbtAttrbalance#Account.ucbtAttrbalance-amount

         </Computation>

 </Step>   </UseCase>

以这种方式,本发明的示例性实施例基于使用编辑器304和向导程序314由用户302提供的信息,从元模型318创建一个或多个元类的实例,并且向形式化模型316填充形式化数据。

在本发明的示例性实施例中,在步骤420,约束检查器308通过检查形式化模型的一致性和完整性来检查以确保不违反约束310。在给定领域内,还可以检查其它属性(property)(例如,安全性、存活性等)。

约束检查器308首先基于对于用例的任何给定参数集,应当存在一个并且仅一个结果的事实,检查一致性。完整性意味着每个输入组合应当具有为它们定义的结果的相关属性。

模型的形式化中的约束可以使用对象约束语言(OCL)由本发明的示例性实施例表示。OCL是用于表述模型上的不变式的形式化约束语言。对象约束语言可以用来约束任何模型,包括在形式化中使用的元模型。第一阶逻辑(FOL)是提供普遍且存在的量化(quantification)、以及标准命题操作(非、与、或、蕴含以及双向蕴含)的标准逻辑。一致性通常意味着检查约束不能相互矛盾,它们也不可通过使得有可能产生两个结果而引入歧义。完整性通常意味着检查一组约束形成重言式(tautology)。

图12示出了根据本发明的、用于执行一致性检查的示例性控制例程1200的流程图。约束检查器308在步骤1202开始,其中创建要被检查的约束的有序列表,并且约束检查器308继续到步骤1204。

在步骤1204,约束检查器308选择列表中下一个未被处理的约束,并且将下一个未被处理的约束设为当前语句,并且继续到步骤1206。

在步骤1206,约束检查器308确定是否存在当前语句下的约束。如果在步骤1206,控制例程确定存在当前约束下的约束,则约束检查器308继续到步骤1210。

在步骤1210,约束检查器308使用逻辑推理来确定是否能够同时满足当前约束和当前语句下的任何约束,并且继续到步骤1212。

在步骤1212,约束检查器308根据是否能够同时满足当前约束和当前语句下的任何约束而分支。如果在步骤1212约束检查器308确定能够同时满足当前约束和当前约束下的任何约束,则控制例程继续到步骤1214。

在步骤1214,约束检查器308向用户报告不一致,并且继续到步骤1216,其中约束检查器308完成。

然而,如果在步骤1212,约束检查器308确定不能同时满足当前约束和当前语句下的任何约束,则约束检查器308返回到步骤1204。

然而,如果在步骤1206,约束检查器308确定不存在当前约束下的元素,则约束检查器308继续到步骤1208。在步骤1208,约束检查器308报告该模型一致,并且继续到步骤1216,其中约束检查器308停止。

以这种方式,约束检查器308检查形式化模型的一致性。

图13示出了用于检查形式化模型316的完整性的控制例程的流程图1300。约束检查器308在步骤1302开始,并且创建领域模型的所有用例的有序列表,并且继续到步骤1304。

在步骤1304,约束检查器308将当前用例设为列表中的下一个用例,并且继续到步骤1308。在步骤1308,约束检查器308创建用例中的所有约束的析取(disjunction)D,并且继续到步骤1310。

在步骤1310,约束检查器308确定析取D是否是重言式。如果在步骤1310,约束检查器308确定析取D不是重言式,则约束检查器308继续到步骤1312,并且报告用例的不完整。

然而,如果在步骤1310,约束检查器308确定析取D是重言式,则约束检查器308继续到步骤1306。

在步骤1306,约束检查器308确定是否存在更多要处理的用例。如果在步骤1306,约束检查器308确定存在更多要处理的用例,则约束检查器308返回到步骤1304。

然而,如果约束检查器308确定不存在更多要处理的用例,则约束检查器308继续到步骤1314,其中约束检查器308的操作停止。

以这种方式,约束检查器308的示例性实施例可以检查形式化模型的完整性。

参考图14和15示出本发明的示例性实施例在其中是有用的应用的另一个示例。

在该第二示例中,本发明可以用来生成复杂的旅行计划。在本例中,可以定义与上述用例的语法类似的语法,这允许用户谈论旅行日期、城市、航线、旅馆、出租车、旅馆、吸引力(attraction)等。通过本发明,用户因而将能够以非形式化格式将期望旅程描述为步骤序列。

例如,用户可能为从纽约到巴黎的旅程提供下面旅程序列。

1.在2005年12月22日从纽约飞往巴黎。

2.逗留3天。

3.在2005年12月23日在L’Entrecote用餐

4.在2005年12月26日从巴黎乘火车到卡尔卡松尼

5.在卡尔卡松尼逗留7天。

6.在2006年1月2日返回巴黎。

7.逗留一晚。

8.在2006年1月3日返回纽约。

给定该描述,本发明的示例性实施例将形式化可以由诸如计算机等的机器自动处理的旅程描述。为了简单起见,下面描述将仅仅考虑旅行、旅馆、预订以及进餐选择,不过,本领域的普通技术人员应当理解,本发明的示例性实施例可以有利地有用于形式化旅程的所有方面。

给定上面旅程描述中的语句类型,将需要把将用于形式化语句的元模型318提供给形式化环境300。图11示出了并入必要特征的示例性元模型1100。

给定语言和元模型1100,现在提供向导程序314,其将用来进一步精炼(refine)由非形式化描述捕获的信息。

图14示出了用于形式化“预订航班”用例语句的向导程序314的示例性图形用户界面1400。该图形用户界面1400对应于上面提供的非形式化描述中的第一语句。以类似于前述的方式,用户将信息输入到图形用户界面1400中,并且向导程序314获得输入信息,并且创建形式化语句1500,如图15所示。

本发明的第三示例性实施例用作让用户结构化信息技术(“IT”)系统架构的领域内的信息的工具。就本描述而言,信息技术可以是指如在Astandard for architecture description,R.Youngs,D.Redmond-Pyle,P.Spaas、以及E.Kahan,IBM Systems Journal 38(1)1999,第32~50页中定义的IT系统架构。

现在参考附图,并且更具体地参考图16,图16示出了根据本发明的示例性图形用户界面1600。

在示例性实施例中,图形用户界面1600可能被实现为诸如Eclipse的平台的扩展,其在Eclipse:A Platform Becomes an Open-SourceWoodstock,A.Wolfe,ACM Queue 1(8),2003年11月,第14~16页中有描述。

图形用户界面1600包括:描述区域1601,用户可以将包括非结构化信息的非形式化描述输入到其中,并且在其中用户可以识别非形式化描述的部分;形式化区域1602,在其中可以列出候选形式化,并且在其中用户可以识别形式化;产物(Artifact)区域1603,在其中可以列出基于所识别的非形式化描述的部分、根据所识别的形式化所生成的形式化产物;以及建议区域1604,在其中可以显现由该工具输出的建议。

在该示例性实施例中,候选形式化涉及例如可以在Youngs等人的参考文献中定义的、来自IT系统架构领域的产物,包括:参与者、用例、场景(Scenario)、协作、组件、接口等。

在该示例性实施例中,可以预定义候选形式化列表。图16示出了紧接在启动了根据本发明的形式化例程之后并且用户执行了任何操作之前的图形用户界面1600。

图26示出了根据本发明的、用于将非结构化信息转换成结构化信息的示例性控制例程2600的流程图。

现在参考图16~26,将描述本发明的示例性实施例的操作。

形式化例程在步骤2601开始,并且继续到步骤2602。在步骤2602,形式化例程等待用户执行操作。一旦接收到用户操作,则形式化例程继续到步骤2603。

在步骤2603,形式化例程确定用户操作是否是描述编辑操作。例如,形式化例程可以确定用户在描述区域1601中执行编辑操作。如果在步骤2603,形式化例程确定用户操作是描述编辑操作,则该工具继续到步骤2604。在步骤2604,形式化例程编辑描述,并且返回到步骤2602。

在本发明的示例性实施例中,编辑操作可以简单地是如在许多通常可用的编辑应用中可能发现的传统文本或图形编辑。

例如,在本发明的示例性实施例中,标准编辑器如OpenOffice字处理器或者编辑模式中的Firefox HTML浏览器可以与本发明一起使用。

此外,本发明的示例性实施例可以使用具有包装器(wrapper)的标准编辑器,其为形式化例程提供对编辑器内容的访问,以及提供通过形式化例程对编辑器的控制。可以支持的示例性编辑操作包括将内容粘贴到区域中、选择内容的多个部分、删除或插入内容、改变内容的格式等。

再次参考图26,在步骤2605,形式化例程确定用户操作是否是部分识别操作。如果在步骤2605形式化例程确定用户操作是部分识别操作,则形式化例程继续到步骤2606,其中形式化例程突出(highlight)通过部分识别操作识别的部分,并且返回到步骤2602。

例如,图17示出了在某内容已被放置到描述区域1700中之后图形用户界面1600的显现。在本例中,内容涉及唱片公司的音乐网站的需求,并且用户在描述区域1601中执行部分识别操作。

如上所述,本发明能够在步骤2605识别出部分识别操作,并且作为响应,形式化例程继续到步骤2606,其中形式化例程突出通过部分识别操作识别的描述的部分。

在本发明的示例性实施例中,部分识别操作可以简单地是标准选择操作,例如可能用来在OpenOffice字处理器中选择短语的操作(例如,双击词,在短语上拖动光标等)。

在本发明的示例性实施例中,突出所识别的部分可以简单地是标准选择指示,例如可能用来在OpenOffice字处理器中指示所选短语的操作(例如,改变短语背景和前景颜色)。

然而,如果在步骤2605,形式化例程确定用户操作不是部分识别操作,则形式化例程继续到步骤2607。

在步骤2607,形式化例程确定用户操作是否是形式化识别操作。作为示例,图18示出了在用户识别了词‘artists(艺术家)’1800之后的图形用户界面1600,并且图19示出了用户识别了‘参与者’形式化1900之后的图形用户界面1600。

如果在步骤2607,形式化例程确定用户操作是形式化识别操作,则形式化例程继续到步骤2608。

在步骤2608,形式化例程基于所识别的非形式化描述的部分1800、根据所识别的形式化1900,生成形式化产物2608,并且继续到步骤2609。在步骤2609,形式化例程根据所识别的描述的部分1800,为所生成的形式化产物设置标签(label),并且继续到步骤2610,其中形式化例程应用准则分析引擎,下面参考图27描述其示例。

图20示出了生成了以‘artists’2000标注的形式化参与者产物的图形用户界面1600。

以这种方式,通过本发明的示例性实施例,用户可以指示IT系统必须与被称作“artists”的外部用户交互,并且可以将该指示形式化为系统架构的结构化表示中的产物。

图21示出在识别了短语‘post news(张贴新闻)’2100之后并且在用户识别用例形式化2101时的图形用户界面1600。

图22示出了根据用例形式化2101生成了post news产物2200之后的图形用户界面1600。

以这种方式,用户可以将非形式化描述的一部分识别为对应于用例形式化,并且基于该识别而获得系统的结构化表示中的形式化产物。

图27示出了根据本发明示例性实施例的准则分析引擎的流程图2700。准则分析引擎可以在图26的步骤2610或2613由形式化例程初始化。

准则分析引擎在步骤2701开始,并且继续到步骤2702,其中准则分析引擎删除可能已经在图形用户界面1600的建议区域1604中提供的任何先前建议。

然后,准则分析引擎继续到步骤2703,其中准则分析引擎定位到与形式化产物有关的一组准则中的第一准则,并且继续到步骤2704。

在示例性实施例中,可以预定义这组准则。就本描述而言,与形式化产物有关的准则可以包括与形式化产物的属性相关的条件。例如,准则可能是“其标签不包括被称作‘标识符’的第一字符串、随后的下划线字符、随后的第二字符串的用例产物”。

在示例性实施例中,可能使用如在Perl编程语言中定义的模式或正规表达式(regular expression)来表达,其中Perl编程语言的描述可以在Programming Perl,L.Wall,T.Christiansen、以及J.Orwant,“(第三版)”,O′Reilly,2000年7月中找到。

作为准则的另一个例子,准则可能是“没有对应的场景产物的用例产物,其中用例产物标签标识符是场景产物标签识别符的前缀”。本领域的一般技术人员应当理解,根据本发明,很多其它类型的准则是可能的而不存在限制。

再次参考图27,在步骤2704,准则分析引擎确定是否处理了所有准则。如果在步骤2704,准则分析引擎确定处理了所有准则,则控制例程继续到步骤2711,其中准则分析引擎结束。

然而,如果在步骤2704,准则分析引擎确定尚未处理所有准则,则准则分析引擎继续到步骤2705,其中准则分析引擎定位到第一产物,并且继续到步骤2706。

在步骤2706,准则分析引擎确定是否处理了所有产物。如果在步骤2706,准则分析引擎确定处理了所有产物,则准则分析引擎继续到步骤2709。

在步骤2709,准则分析引擎定位到下一个准则,并且返回到步骤2704。

然而,如果在步骤2706,准则分析引擎确定了尚未处理所有产物,则准则分析引擎继续到步骤2707,其中准则分析引擎确定准则分析引擎所定位的产物是否满足准则分析引擎所定位的准则。

如果在步骤2707,准则分析引擎确定该产物确实满足该准则,则准则分析引擎继续到步骤2708,其中准则分析引擎在识别产物的建议区域1604中产生输出。然后,准则分析引擎继续到步骤2709。

在本实施例中,产生产物的标签作为输出。另外,可以在建议区域1604中产生与产物有关的建议作为输出。

如果在步骤2707,准则分析引擎确定了该产物不满足该准则,则准则分析引擎继续到步骤2709。

再次参考图22,图22示出了在输出了被标注为“post news”的形式化用例产物2200和建议2201之后的图形用户界面1600的外观。

建议的示例可以包括与用户希望作为结构化和形式化非形式化描述的处理的一部分而执行的另外操作有关的指导。建议可以基于已经生成的产物集的当前主体。在该示例性实施例中,建议不仅仅基于处理的某静态定义,并且不是必须被用户立即注意到的东西,或者是根本无需被用户注意到的东西。相反,对于该示例性实施例,建议是每当出现机会时用户可能希望注意到的东西。

在本发明的示例性实施例中,建议不是不一致或其它错误的指示。相反,建议可以指示可改进(形成中的)结构化表示的当前状态的方式。

图22所示的示例性建议2201是这样的建议,即改变标签以使其遵循标签包括被称作‘标识符’的第一字符串、随后的下划线字符、随后的第二字符串的约定。

在该示例性实施例中,每当存在对已经生成的产物集的状态的改变(例如,如参考步骤2609和2612所述)时,可以重新计算建议集。

在该示例性实施例中,可以每次重新计算整个建议集。然而,本领域的普通技术人员应当理解,根据本发明,通过仅仅考虑可能受到最近状态改变的影响的那些产物、准则和建议,可以增量更新建议集。

再次参考图27,在步骤2708,准则分析引擎定位到下一个产物,并且返回到步骤2706。类似地,在步骤2709,准则分析引擎定位到下一个准则,并且返回到步骤2704。

图23示出了在描述区域2301中识别了非形式化描述的多个部分、在每例中识别了来自形式化区域2302的形式化、在每例中相应地生成了形式化产物、在每例中在产物区域2303中显现了形式化产物,并且在建议区域2304中显现了对应的建议之后的图形用户界面1600。

再次参考图26,在步骤2611,控制例程确定用户操作是否是产物重命名操作。如果在步骤2611,控制例程确定用户操作是产物重命名操作,则控制例程继续到步骤2612。

在步骤2612,控制例程根据用户的指令执行产物的重命名,并且继续到步骤2613,其中应用准则分析引擎。然后,控制例程返回到步骤2602。

在该示例性实施例中,用户的重命名操作可以包括在产物区域1603中双击形式化产物,并且为它输入新标签。

图24示出了用户通过执行重命名操作来响应建议2305之后的图形用户界面1600,其中该重命名操作将用例产物2306的标签从‘create aportal(创建门户)’改变为‘UC01_reate portal’,从而导致用例产2400以‘UC01_Create portal’标注。

另外,图24示出了建议2305不再在建议区域中,但是现在已经输出了与该用例产物有关的不同建议2401。

再次参考图26,如果在步骤2611,形式化例程确定用户操作不是产物重命名操作,则形式化例程继续到步骤2614。

在步骤2614,形式化例程确定用户操作是否是保存操作。如果在步骤2614,形式化例程确定用户操作是保存操作,则形式化例程继续到步骤2615。

在步骤2615,形式化例程保存形式化产物,并且返回到步骤2602。

然而,如果在步骤2614,形式化例程确定用户操作不是保存操作,则形式化例程继续到步骤2616。在步骤2616,形式化例程确定用户操作是否是退出操作。如果在步骤2616,形式化例程确定用户操作不是退出操作,则形式化例程返回到步骤2602。否则,形式化例程继续到步骤2617,其中形式化例程结束。

在示例性实施例中,退出操作可以简单地包括在用户界面的任何区域中输入字符‘Q’。

示例性实施例可以另外允许在办公应用中通常找到的许多操作,例如OpenOffice程序集中的操作。它们可能例如对应于如同在例如步骤2615一样保存工具的当前状态。可以将工具的当前状态保存到例如持久性存储装置例如盘上的文件等。另外,操作还可以允许从持久性存储装置装载系统的状态。

本发明的第四示例性实施例用作让用户结构化配乐领域内的信息的工具。

参考图25,与图16~24的图形用户界面1600类似的示例性图形用户界面2500包括:描述区域2501,用户可以将包括非结构化信息的非形式化描述输入到其中,并且在其中用户可以识别非形式化描述的部分;形式化区域2502,在其中该工具可以列出候选形式化,并且在其中用户可以识别形式化;产物区域2503,在其中该工具可以列出基于所标识的非形式化描述的部分、根据所识别的形式化而可以生成的形式化产物;以及建议区域2504,在其中可以显现建议。

在该示例性实施例中,候选形式化涉及来自音乐领域的产物,包括:乐句(Phrase)、乐段(Segment)、乐旨(Motif)、韵律(Verse)、合唱(Chorus)、过渡乐节(Bridge)等。这些产物是熟练于配乐领域的普通人员所熟悉的概念。

图25示出了音乐已被输入到描述区域2501中之后的图形用户界面2500。在示例性实施例中,可以使用来自诸如在The MIDI Manual,David Miles Huber,Focal Press,1991年1月中描述的应用的复制和粘贴功能,将乐谱输入在描述区域2501中。

另外,图25示出了在识别了描述的部分2505之后并且在用户识别‘Phrase’形式化2506时的图形用户界面2500。

最后,图25示出了在描述区域2501中识别了非形式化描述的多个部分(例如,2505)、为每个所识别的部分识别了来自形式化区域2502的形式化、并且针对每个所识别的部分相应地生成了形式化产物,并且针对每个所识别的部分在产物区域2503中显现了形式化产物之后的图形用户界面2500。

形式化产物集2503包括被标注为:‘Golum theme’、‘Hobbit villagetheme’和‘Frodo theme’的形式化产物。

在所有其它方面,第四示例性实施例的工具的操作类似于第三示例性实施例的工具的操作。

虽然本发明在上面被描述为有利地用于测试例生成、旅游计划、IT系统架构以及配乐,但是本领域的普通技术人员应当理解,本发明也可以有利地应用于可以结构化和形式化非结构化的非形式化信息的任何应用。例如,本发明的示例性实施例不加限制地有用于形式化引起产品问题的事件序列、形式化在商业中应当遵循的过程、描述和形式化医疗过程、形式化科学实验等。

虽然上面描述提供了计算机编程和音乐领域内的信息,但是本领域的普通技术人员应当理解,本发明适用于可以提供分类词汇表和形式化元模型的任何领域。

虽然本发明是按照若干示例性实施例来描述的,但是本领域的技术人员应当认识到可以加以修改地实施本发明。

此外,应当注意,本申请人的意图是囊括所有权利要求元素的等价物,即使以后在审查期间有修改的话,也是如此。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号