以图形表示定义公式的方法

文档序号:6464199阅读:421来源:国知局

专利名称::以图形表示定义公式的方法
技术领域
:本发明涉及一种图形表示定义公式的方法,用于操作(manipulate)输入数据以产生结果。最好,该方法以计算机程序的形式实现。
背景技术
:通常要对数据进行复杂的操作,就会涉及很多复杂的公式。经常将这样一个模型用于定义(define)公式,该模型提供表示(representing)数据操作的多级方案。要算出对于模型中的每一级所需的公式可能是很困难的。如果以图形表示和定义公式,对于这一操作也可能是有帮助的。授予Kodosky等人、序号为4901221的美国专利公开了一种图形系统和用于将操作模型化的方法。所公开的方法使得用户能够利用一方块示意图编辑器来构造示意图,使得以图形创建的示意图显示一用于取得一定结果的过程性的方法。当用户构造数据流示意图时,自动构成机器语言指令,利用这些指令刻划对应于所显示的操作过程的执行过程。用户通过利用以图形为基础的编程环境,可以仅根据计算机程序创建文本。这种方法的局限性在于,其依靠迭代控制来产生每一个输出,该输出是在任何指定的时间应用于输入变量数据的函数的结果。还要依靠在屏幕上组成一包括迭代图标的数据流示意图,该图标调用一用于控制数据流的多次迭代的迭代控制装置。当设计一个模型时,特别是当设计一个面向对象的模型时,希望不与数据的迭代相关。本发明的概述本发明的目的是提供一种以图形表示定义公式的方法。根据本发明的第一个方面,提供一种以图形表示定义公式的计算机实施的方法。所述方法包括提供第一运算符对象,用于定义操作至少一个输入以产生至少一个输出的方法;显示第一运算符对象的图形表示;提供用于包括数据的第一变量对象;从用户接收一输入以使该变量对象与其中一个输入或第一运算符对象的其中一个结果相关;显示第一变量对象的图形表示及其与第一运算符对象的关系;以及记录各对象之间的相互关系的逻辑描述;由此利用该逻辑描述定义该公式。根据本发明的第二个方面,提供一种以图形表示定义公式的计算机实施的方法。所述方法包括提供用于包括数据的第一变量对象;显示第一变量对象的图形表示;提供第一运算符对象,用于定义操作至少一个输入以产生至少一个结果的方法;从用户接收一输入,使其中一个输入或第一运算符对象的其中一个结果与变量对象相关;显示第一运算符对象的图形表示及其与第一变量对象的关系;以及记录各对象之间的相互关系的逻辑描述;由此利用该逻辑描述定义该公式。最好,该方法还包括步骤提供一个或多个另外的变量对象;从用户接收另外的输入,使每个另外的变量对象与其中一个输入或第一运算符对象的其中一个结果相关;显示另外的变量对象的图形表示以及它们与运算符对象的关系。最好,该方法还包括步骤提供一个或多个另外的变量对象;从用户接收另外的输入,以使每个另外的变量对象与其中一个输入或该另外的运算符对象的其中一个结果相关;显示另外的运算符对象的图形表示以及它们与变量对象的关系。最好,从如下部分中选择每个变量对象输入对象,用于从数据源提供数据;输出对象,用于向数据目的地提供数据;或连接对象,用于从一个运算符对象向另一个运算符对象传递数据。最好,连接对象表示为各运算符对象之间的链接。最好,每个变量对象可以配备一变量标记。最好,每个运算符对象可以配备一变量运算符标记。最好,利用各对象之间的相互关系来定义公式的逻辑描述。最好,记录公式的图形定义,该图形定义定义各对象之间的相互关系的图形显示。最好,该方法包括存储描述逻辑定义的信息的步骤。最好,该方法包括存储描述图形定义的信息的步骤。最好,可以将两个或更多个相关的运算符对象进行分组,使得该分组定义一分组运算符对象,在其中穿过该分组的边界并连接到在该组中的运算符对象的输入的变量对象变为该分组对象元件的输入,和穿过该分组的边界并连接到在该组中的运算符对象的结果的变量对象变为该分组运算符对象的结果。最好,不链接到另一个对象的组中的运算符对象的输入和结果分别变为该分组的运算符对象的输入和结果。最好,利用该分组的运算符对象替代经分组的对象的图形表示,以及利用到该分组对象表示的链接的图形表示来替代到该组内容的链接的图形表示。最好,所定义的公式的逻辑定义包括该分组运算符对象的内容。最好,所显示的整个公式的图形定义排除该分组运算符对象的内容。最好,该分组运算符对象的内容可以分别根据公式的整个图形表示以图形表示。最好,变量对象可以被赋予定义它们能够保持的数据类型的特性。最好,一运算符对象的每个输入和结果可以被赋予定义该运算符对象希望接收和分别能够产生的数据类型的特性。最好,可以使变量对象能够从已经定义的另一个变量对象的特性继承特性并与一插入的运算符对象相关联。最好,可以使变量对象能够从已经定义并与其相关联的运算符对象输入或结果的特性继承特性。最好,运算符对象的输入或结果可以从已经定义并与其相关联的变量对象的特性继承特性。最好,该方法包括步骤检查其属性已经相关匹配的对象的特性。最好,预定义经标记的变量对象的库(library)。最好,预定义经标记的运算符对象的库,每个标记的运算符对象的方法操作其输入以便其结果也被预定义。最好,可以从预定义的变量标记中选择变量对象的对象标记。最好,每个对象标记可以被赋予定义该包含标记有标记的变量对象的数据类型的特性。最好,变量标记的选择赋予与关于变量对象的标记相关联的特性。最好,被赋予变量对象的特性限制需选择性的对象的标记的选择。最好,第一运算符对象是加、减、乘、除、查询表和条件运算的至少其中之一。另外,第一运算符对象可以是多级运算,包括链接的多个简单运算,以便执行更复杂的运算。按一种形式,第一运算符对象是数据库的查询。按另一种形式,第一运算符对象执行向数据库的写入。最好,可以从预定义的运算符标记的列表中选择运算符对象的运算符标记。最好,每个运算符标记可以被赋予定义数据类型的特性,其可以分别接收或提供所标记的运算符对象的输入和结果。最好,运算符标记的选择被赋予与关于运算符标记相关联的特性。最好,被赋予运算符标记的特性限制需选择性的标记变量的选择。最好,可以由运行时间引擎利用逻辑定义,以便投入对定义的公式的运算,数据提供到每个链接到运算符对象的输入的变量对象,由此,该数据变成公式中的运算对象,每个由运算符对象表示的每个运算符变成公式中的运算符,以及运算符对象的每个结果变成下一个运算符的运算对象或该公式的最终的结果,由此,可以进行公式的计算以产生公式结果。最好,可以为每一个变量定义一名称域(namespace),由此,在名称域中每次产生变量对象时,在由变量对象表示的逻辑变量中的数据是相同的。最好,由对需模型化的公式的缺省的全局符表示名称域。最好,在名称域内标记的变量对象的每次产生之间建立逻辑连接。在一个实施例中,可以显示图形化的链接,以表示标记的变量对象的每次产生之间的逻辑连接。最好,可以为每个运算符对象定义名称域,由此,在名称域中每次产生运算符对象时,在由变量对象表示的逻辑变量中的运算是相同的。最好,通过定义要应用于公式的逻辑定义的分组的运算符对象,可以一次以上使用分组的运算符对象。最好,标记的特性包括类型、单位和量纲。最好,该图形定义以XML描述。最好,该逻辑定义以XML描述。最好,每个运算符对象包括多个由以运算符对象表示的运算符执行的运算的定义,每个定义是针对每个定义能由运算符操作的数据的单独类型的。最好,作为具有一个或多个输入和一个或多个输出的元件,以图形表示运算符对象,该元件具有一表示该所表示的运算符表示的识别符。最好,运算符对象可以为空元件,即表示利用操作输入的一套方法(methodology)的运算符,以便产生还需定义的结果。最好,使用该空元件以形成用于搜索的适合的运算符对象的判据,该运算符对象具有适合的定义的一套方法。最好,提供一对象库。最好,对象可以以外部为来源。根据本发明的第三个方面,提供一种以图形表示定义公式的系统,包括计算机,包括一显示屏幕和用户输入装置;一装置,用于提供第一运算符对象,该第一运算符对象用于定义操作至少一个输入以产生至少一个结果的方法;一装置,用于在该屏幕上显示第一运算符对象的图形表示;一装置,用于提供用于包括数据的第一变量对象;一装置,用于从用户接收一输入以使该变量对象与其中一个输入或第一运算符对象的其中一个结果相关;一装置,用于显示第一变量对象的图形表示及其与第一运算符对象的关系;由此利用各对象之间的相互关系来定义该公式。根据本发明的第四个方面,提供一种用于控制计算机以图形表示定义公式的计算机程序,所述计算机程序使计算机采取的步骤包括提供第一运算符对象,用于定义操作至少一个输入以产生至少一个结果的方法;在计算机屏幕上显示第一运算符对象的图形表示;提供用于包括数据的第一变量对象;从用户输入装置接收一输入以使该变量对象与其中一个输入或第一运算符对象的其中一个结果相关;在该屏幕上显示第一变量对象的图形表示及其与第一运算符对象的关系;由此利用各对象之间的相互关系来定义该公式。根据本发明的第五个方面,提供一种用于存储如上所述的计算机程序的计算机可读介质。根据本发明的第六个方面,提供一种以图形表示定义公式的计算机实施的方法,所述方法包括提供至少一个用于包括数据的变量;提供至少一个运算符,用于定义操作输入数据以产生结果的方法;向用户显示变量的列表,以便由此选择结果变量;从用户接收形成的变量的选择,用于包含操作输入数据产生的结果;显示所选择性的结果变量的图形表示;向用户显示运算符的列表,以便由此选择运算符;从用户接收对运算的选择,显示所选择性的运算的图形表示;向用户显示用于包括输入数据的输入的列表,以便由此选择至少一个输入,该输入或者是所述变量或者是一个或多个常数;从用户接收对至少一个输入的选择,显示所选择性的输入的图形表示;由此利用所选择性的结果变量定义该公式,该结果变量等于由所选择性的运算对所选择性的输入的操作。根据本发明的第七个方面,提供一种以图形表示定义公式的计算机实施的方法,所述方法包括提供至少一个变量类型,所述变量类型具有预定的特性;提供至少一个运算,用于定义操作输入数据以产生结果的方法;向用户显示变量的类型,以便由此选择变量的类型;从用户接收对变量类型的选择;接收所选择性的变量类型的名称;显示该名称的变量的图形表示;向用户显示运算的列表,以便由此选择运算;显示所选择性的运算的图形表示;从用户接收对运算的选择;从用户接收输入,以便使所选择性的变量和所选择性的运算相关联,使得所选择性的变量或者是输入变量或者是结果变量;其中使所选择性的变量要和所选择性的运算相关联,从用户接收对输入变量或输入常数的其中之一的选择,显示的输入变量和/或输入常数的图形表示;其中所选择性的变量是输入变量,接收关于输出变量的名称,显示输出变量的图形表示;由此利用对输入数据变量中的输入数据或提供到结果变量的输入常数所选择性的运算的操作的结果来定义该公式。优选实施例的详细介绍为了能够更好的理解,将通过举例的方式参照附图对本发明的优选实施例进行更详细的介绍,其中图1是表示用于执行本发明的方法的系统的示意图,该系统包括图形化公式的定义工具;图2是表示图1中所示图形化公式的定义工具的示意图;图3是由图1和图2中所示图形化公式的定义工具所产生的视窗的屏幕摄影;图4A是表示以图形表示公式的优选实施例中的第一步骤的示意图;图4B是表示以图形表示公式中的第二步骤的示意图;图4C是表示以图形表示公式中的第三步骤的示意图;图4D是表示以图形表示公式中的第四步骤的示意图;图5是表示以图形表示公式的示意图;图6是表示建立元件(运算符)中的步骤的流程图;图7是表示建立命名的连接(变量)对象中的步骤的流程图;图8是表示连接对象建立中的步骤的流程图;图9是表示以图形表示公式的示意图;图10是表示在图4D、5和9中定义的公式的图形表示的示意图,各公式链接在一起以形成高级公式;图11是表示图10中所示高级公式的示意图,该图经简化没有表示在高级公式中的单个级;图12表示由于变量特性的继承对变量类型的限制的另一个实例;图13A表示具有表示对于查询表元件的输入的特性的指针的公式的示意图;图13B表示具有表示命名变量对象的特性的指针的公式的示意图;图14表示利用对于作为一数据库的公式的输入变量表示以图形表示定义公式的示意图;图15表示另一以图形表示定义包括一运算符的公式的示意图;图16表示可以怎样改变图15中的函数C;图17表示图12中的函数C可以怎样添加附加细节;图18表示从第一计算机通过计算机网络向第二计算机传递通过计算机的元件的示意图;图19是由图2中所示图形化公式的定义工具所产生的另一屏幕的摄影;图20示意表示利用一运算符执行的溢出方法(methodology);图21示意表示在单独各页上的各命名的变量对象之间的逻辑连接;图22示意表示在单独各页上的各命名的变量对象和在单独各页上对于函数B的输入的函数A的输出之间的逻辑连接。一个公式是用于通过将一运算符施加到一个或多个运算对象来计算结果的一套方法的描述。通常,在代数意义上讲,运算对象是一变量。本发明将公式作为关于运算对象(变量)运算符描述来定义。具体地说,变量和运算符构成一相互关系。简单的公式X=A+B就是描述运算对象A和B以及加运算符(+)之间的相互关系。本发明能够将此以图形表示,当表示复杂的模型和函数时希望如此。本发明还产生以图形表示定义的相互关系。换句话说,变量和运算符之间的该相互关系定义了公式。利用图形化公式定义工具(GFDT)12执行本发明的方法。参照图1,GFDT12与图形用户界面(GUI)14相互作用。GUI14形成计算机操作系统的一部分,例如各种版本中的MicrosoftWindows;用于Macintosh(计算机商标)的MacOS,或在UNIX操作系统下运行的X-Windows。GFDT12与GUI14通信以便提供用于提供图形显示的指令。图形显示的实际操作由GUI14进行。参照图2,GFDT12包括两个主要部分,即元件管理器16和连接管理器18。元件管理器16处理运算符对象20,该运算符对象20提供一用于定义操作至少一个输入的方法以产生结果。运算符对象表示在公式中的运算符。在本实施例中,将运算符称为元件(component),因此,对于该优选实施例场合,元件管理器管理元件对象。连接管理器18处理变量对象。变量对象表示对于公式结果计算的每个实例的公式中的运算对象。变量对象分为很多类型,其中的主要一个是将数据传递到元件或从元件输出数据的连接对象22,下面将更详细地进行介绍。其它类型的变量对象是通常用标记命名的输入和输出对象。在本优选实施例中,当这些变量对象被指定一用户可以查阅的标记时,将它们称为命名的连接,以便了解关于传递到元件或从元件输出的数据的信息。下面将更详细地进行介绍。GFDT12经过GUI14向用户提供界面,该界面以图形表示要定义的公式。当定义该公式时,GFDT12还记录公式的逻辑描述。图形描述的记录是与逻辑描述的记录分开的。图形描述描述界面上所显示的图形。逻辑描述以逻辑术语描述显示在该界面上的各对象之间的相互关系。在图3中表示界面24的屏幕摄影。界面24是一标准的Windows视窗,其具有工具栏部分26、主视窗28以及辅助视窗30。主视窗28显示一表示整个公式中的一部分的当前页。视窗26包括页选择器32。可以提供表示公式中的其它部分的其它页。所示视窗28表示显示用于一累加器的简单模型。下面将参照图4A到4D介绍构成公式或模型的方法。这一实例涉及一矿场。根据预定的公式,通过利用计算结果进行矿场的计划、预算或监视。当根据特定的运算符操作包含在输入变量中的信息以便产生结果时,该公式确定产生的结果。根据结果进行矿场运算的计划、预算或监视。更具体地说,利用Load(装载)和Haul(运输)IPD的结果作为实例。Load和Haul是矿坑中装载和运输矿用支撑材料的费用,在这一实例中,为InaPitnamedDefiance(在一命名为Defiance的坑中,PID)。参照图4A,希望计算装载和运输IPD。从工具栏26中选择变量对象34,并将其置入主视窗中,通过移动、点击和拖动鼠标,利用将指针定位的公知的操作,将变量对象放在预期的位置。指定该变量命名为“装载和运输IPD”。所使用的符号的惯例是,所命名的变量(标记的变量对象)在圆内,元件(运算符对象)是矩形的,箭头向内表示输入,箭头向外表示输出,用直线表示数据流连接(变量对象)。可以指定装载和运输IPD变量34具有某些特性。通过在辅助视窗30中选择“特性”标记(tab)并输入预期的特性实现这一点,例如其必须是一数字值,更具体地说,其必须是一货币的数字值,货币的单位是AU$。变量一旦建立,就在图像显示单元上以图形将该变量表示为标记有“装载和运输IPD”的圆34。该变量的图标将代表其可以从任何适当的来源例如人工输入接收数据,其可以从另一个程序接收,或者其可以从数据库接收。根据添加到“装载和运输IPD(选择性的(Selective))”数据的“装载和运输IPD(散料(Bulk))”数据计算装载和运输IPD(LoadandHaulIPD)。即,装载和运输IPD表示装载和运输散装材料和选择性的材料的费用。散装材料来自产生矿用支撑材料和非矿用支撑材料的开采法。选择性的材料来自产生高级矿用支撑材料的开采法。参照图4B,下一步骤是从工具栏26中选择元件36,并将其置入主视窗28中。即,向用户提供对于每个元件的列表或一些按钮,以便从中选择例如加、减、乘、除,如表3中所示。也可以提供多个元件,例如查询表、条件运算以及更复杂的运算例如微积分、三角和其它运算。另外,可以包括数据和文本操作运算。能够进行的运算的类型不应受限制。当然,可以使用包括多级运算的大运算库,下面将进行更详细的讨论。在这一实例中选择“加”运算。由方块36以图形表示该运算。该“加”运算具有至少两个输入(在这一实例中实际为2)和一个输出。然后建立各对象之间的相互关系。在这一实例中,“装载和运输IPD”变量是该相加的结果,这样通过从工具栏26中选择连接对象38,以绘出直线38将加元件36的输出箭头连接到装载和运输IPD变量34可以将其连接。因此,利用关联性,装载和运输IPD变成一结果变量。输入和输出用箭头表示,关联性用结果箭头和变量之间的连接38表示。参照图4C,从工具栏26中选择另一个变量对象40,置入主视窗28,并指定该变量命名为“装载和运输IPD(散料)”。可以一开始就输入变量名称,以便产生一列表,使用户能从中选择所需的变量。另外,可以在需要时输入变量名称。通过从工具栏26中选择另一个连接对象42,并在两个对象之间形成连接,使“装载和运输IPD(散料)”变量40与加运算符36的输入相关联。因此,“装载和运输IPD(散料)”变成输入变量。用圆40表示“装载和运输IPD(散料)”输入变量,用在该变量和该元件之间的连接42表示输入相互关系。参照图4D,选择、安置命名为“装载和运输IPD”(选择性的)的另一个变量44和使其与加运算符36的另外输入相关联。现在完成了公式的定义。结果变量、元件(运算符)和输入变量的选择以及其间的相互关系导致形成按照下述定义的公式利用加运算符36将输入变量“装载和运输IPD(散料)”和输入变量“装载和运输IPD(选择性的)”求和,以便产生结果变量“装载和运输IPD”。当将该公式投入运算时,输入到该输入数据变量的输入数据将导致根据所定义的公式产生结果变量。为了保存所定义的公式以便后来检索每个对象的类型,将每个对象的名称和特性连同在主视窗28内的每个对象的位置全部记录下来。利用这一信息可以将公式存储,以便后来为显示进行检索。在画出方块示意的公式的同时,记录公式的逻辑定义。再参照图4A,登记变量对象装载和运输IPD34的建立。在图4B中,还当安置时登记加运算符36的建立。还登记该加元件的输出和变量装载和运输IPD之间的连接符38的安置。然后记录在该元件的结果输出和结果变量之间的逻辑连接。类似地,参照图4C登记变量对象“装载和运输IPD(散料)”40的建立和其与该加元件的第一输入的连接。再参照图4D,还登记变量对象“装载和运输IPD(选择性的)”选择变量的建立和其与该加元件的第二加元件输入的连接。因此,登记了各元件的登记和其间的连接(因此也包括它们的相互关系),因此以对象描述和它们的相互关系的形式建立公式的逻辑定义。对于逻辑描述来说,在屏幕上的位置和其它图形信息并不重要,并仅记录在图形描述中。使用图形描述用于从这样一种方式向用户显示公式,即用户可能涉及公式的逻辑描述的记录,并由公式处理引擎利用公式的逻辑描述的记录,以便将所定义的公式投入使用。用户不需要关注逻辑定义以及处理引擎不需要关注图形定义。在对于这样简单公式的这一阶段,图形定义以及逻辑定义概念层次上是基本不同的。然而,正如下面将介绍的,随着将更复杂的公式模型化,这些定义将是发散性(diverge)的。但用户利用公式的图形表示仍然能够在智力层次上涉及所定义的公式,以及公式处理引擎将能够利用逻辑定义而不必排除与图形表示相关的信息。变量和运算符之间的相关性使得能够至少在某种程度上确定运算符的其它输入的特性。例如,结果变量和运算符之间的相关性使得能够了解运算符的输入的特性,在这一实例中是货币数字值。当装载和运输IPD(散料)输入变量与其中一个输入相关联时,可以对照由运算符所请求的特性来检查与这一个输入变量相关联的特性。另外,如装载和运输IPD(散料)输入变量己不具有与其相关联的特性,则其可继承这些特性。使得由于装载和运输IPD具有货币数字值的特性,装载和运输IPD(散料)变量和装载和运输IPD(选择性的)变量也必须是货币数字值。可以进行检查且在它们的输入不匹配所请求的特性,可以发出警告,或不承认该关联性。另外,如果输入不具有任何关联的特性,则将继承货币数字值特性。检查和继承可双向作业。即,如果输入具有货币数字值特性,则还检查结果以了解其是否具有一致的特性。即,最近建立的输入/结果变量是所检查的变量。元件的输入和输出保持了与该元件相关的特性信息。利用输入和输出的特性连同该根据输入产生输出的函数性定义元件。在图5中,用于计算装载和运输IPD(散料)40的数值的公式是通过将输入变量“散料速率(BulkRate)”48与输入变量“散料BCMs”50相乘来定义的,“散料速率”表示用于就地开采立方米“散料”矿用支撑材料的费用。“散料BCMs”表示“散料”材料的Bank(in-site)CubicMeter(BCM)。通过利用与定义先前的公式相似的步骤可以再次建立这一公式。“装载和运输IPD(散料)”输入变量40能够用作结果变量。因此,可以在显示器上选择和表示。如果输入变量“散料速率”与输入变量“散料BCMs”是不可使用的,则可以将它们输入。然后选择乘运算符48并与输入变量和输出变量相关联。通过拖动乘运算符的表示并将其就位可以实现这一点。输入变量和结果与运算符相关,因此输入变量(“散料速率”和“散料BCMs”)连接到运算符输入,而输出箭头连接到结果变量(“装载和运输IPD散料”)。这里变量和运算的排列次序与先前定义的公式是不同的。该次序在于仅将检查特性和继承排次序时形成差别。如果当一起相乘时,输入变量的特性与结果变量的特性不一致,可以将在特性继承方面存在问题的消息向用户提供。即,如果“散料速率”输入变量不具有单位体积的货币数字值的特性,和/或“散料BCMs”输入变量不具有单位体积的货币数字值的特性,则提供警告消息,或者两者之一具有正确的特性,另一个将继承正确的特性。不需要将特性分析和继承限制到变量/常数的量纲。例如可以检查量纲的单位,如果一个单位是AU$,另一个单位是US$,这将会引起警告。另外可以进行如下进一步介绍的转换。既可以在与图4D中的公式的同一页上建立这一公式,也可以在新的一页上建立这一公式。如果它们在各单独的页上,可以使用页选择器32来选择适当的页。这还是图形定义可能从该逻辑定义开始发散之处,特别是如果它们在各单独的页上。虽然每页将包含对每一公式的单独的图形定义,但逻辑定义将形成图5中的公式的装载和运输IPD(散料)结果变量和图4D中的公式的装载和运输IPD(散料)输入变量之间的连接。因此,对于用户,一个公式以两个较小的公式表示。这将有利于对该公式的推理理解,但是逻辑上并不区分。这不是说在相同名称的变量具有在其内进行运算的特定的域(space)的情况下不能区分。可以定义对于一个变量(和元件)的名称域以限制它们的应用。下面将更详细地介绍这一点。下面将参照图6、7和8更详细地介绍由元件管理器16和连接管理器18进行的处理操作。参照图6,在52元件管理器16首先使用户能根据在工具栏中26中显示的片(plate)选择元件类型。在图3所示的实例中,提供加、减、乘、除按钮,用于按照元件进行选择。当按下这些按钮的其中一个按钮时,操作系统通知元件管理器16该特殊按钮己被选择。运算符元件的类型是己知的。然后用户点击在绘图视窗28中的54,导致在点击的位置中处的元件的安置。这必然伴随在绘图视窗28中的56绘出元件并在公式定义中在58登记该元件。存储关于元件的图形表示的具体细节,例如元件名称、类型以及在该页上的位置以及图标表示元件的细节。在逻辑定义中,登记元件名称、类型。参照图7,当在公式中需包括己命名的连接时,在50用户从片中选择己命名的连接的元件类型。在62用户点击绘图视窗28,并在64绘出空名称连接变量。然后用户可以命名变量,或等待以待后来命名。如果将其命名,则在66,为用户输入名称提供便利,然后在68该名称显示在新命名的视窗中。然后在70登记该命名的连接。记录关于该命名的连接的图形显示的细节,例如该命名的连接的名称、类型、在该页上的位置。登记该命名的连接的逻辑描述的细节,例如该命名的连接的名称、类型。参照图8,相互关系图8介绍各运算符对象例如元件之间的连接,或者元件和该命名的连接之间的连接。在72用户在工具栏26选择一连接任选项。在74,用户点击元件并将连接器链接拖动到命名的连接或另一元件。在76,然后连接管理器根据被连接的对象的特性确定该连接是否被允许。如果该连接不被允许,如由“否”所指出的,则在78,通过改变直线的颜色绘成红色来提出警告,另外,在88,可以将该命名的连接变为红色。在99,当用户释放鼠标时,在92,没有实现绘图并因此不登记该连接。如果在78,该连接是被允许的,如由“是”所指出的,则在80,将该命名的连接变为绿色。在82,当用户释放鼠标时,在84,绘出表示该连接的直线并在86,登记该连接。该细节涉及该连接(直线)的图形表示的细节例如直线的端点和在该直线上的(弯曲)顶点。登记与逻辑描述有关的细节,例如被连接的元件的细节。对于每一页图进行参照图6、7和8所描述的处理操作。此外,在图形描述中,每个图具有记录的名称(页名称),以及对于每一页图,记录每一登记的元件的命名的连接以及连接的细节。此外,记录名称域的细节,正如在面下将要详细介绍的。参照图9,该图表示公式定义的另一个实例。在这一实例中,利用查询表94根据变量和常数96到104的数量定义“散料速率”48。坑(pit)96是一表示开采坑的名称的变量。时间表98是一表示取决于开采矿物数量的开采速度的变量。RL100是一表示深入从中开采矿物的坑深度的相对高程的变量。材料类型102是一表示被开采的材料类型的变量,例如其可以是新或沉积材料。“散料”B104是一文本常数。查询表94是一种根据5个输入的数值查询数值的操作。然后向结果变量48提供结果数值。该图表示在输入和输出之间的连接。通过对输入、结果和运算符的选择来建立相互关系,并记录这些在屏幕上的表示的位置。这些对象的逻辑描述和其间的相互关系运算符定义这一公式。参照图10,按此前已经利用自顶向下的一套方法描述的一些简单的公式的实例,来定义一模型。这些公式可以核对或者作为一个复杂的公式绘出模型,如图所示。可以看出,输入变量PIT96、输入变量SCHEDULE98、输入变量RL100、输入变量MATERIALTYPE102、输入常数散料“B”104、输入变量散料BCMs50和输入变量装载和运输IPD(选择性的)44均都用于计算最终结果变量装载和运输IPD34。轮廓1标记区106表示可以将已有的多步的公式(模件)链接在一起,以产生一更复杂的高级公式。可以将在虚线框106内的步骤分组,以形成一高等级的元件。高等级的元件的输入示作为“X”,输出示作为小圆。无需变量“散料速率”和“装载和运输IPD(散料)”,也可以定义这一高级的公式。相反可以直接馈送运算符94输出到运算符46的输入,以及可以直接馈送运算符46的输出到运算符46的输入。换句话说,可以将各运算符链接在一起。然而,如果无处使用变量“散料速率”和“装载和运输IPD(散料)”,设计图10中所示的公式可能更适合。通过绘出一围绕着需元件化的各元件的方框106以及元件化功能的选择,进行运算符链的元件化。然后从当前页中删除方框106内的对象并将其移到新的一页。在新的一页上可以观看到新的元件的内部作业。将各元件的图形描述复制到该新的一页。以图11中所示的新的元件108取代被删除的对象。元件的图形描述包括在当前的页描述中,每个到被删除的元件的输入形成一个到新的元件108的输入。建立从所命名的连接96到104、50和44到对应的新的元件108的输入的连接。自新的元件的输出的连接被连接到命名的元件34更新关于当前页的描述,以反映新的元件以及与其的连接。建立每个新元件的输入和在另一页上每个被分组的元件的输入之间的逻辑连接。按照相似方式,建立元件的输出和在另一页上的元件的输入之间的逻辑连接。因此模型的逻辑描述实际上保持不变,而模型的图形描述是不同的。在图11中,将在图10中的106内侧的链接的运算符己经一起分组以便提供更高级的运算符108。运算符108要求5个输入以便产生装载和运输IPD结果变量。现在可以重新使用新的元件108,而无需重新定义构成高级的运算符108的各单个的低级公式。为表示元件的作业提供了便利。例如可以通过双击高级的公式,以将其打开,通过转到该其中表示元件的内部作业的一页直到显示内侧的链接。这一操作被称为“向下钻(drilingdown)”,以查看下一级的细节。正如可以看出的,从上到下一套设计方法利用所检查的每一级的特性以保证它们具有一致的继承,可以用于定义各种公式。同样可以采用按钮式一套设计方法。这样可以建立以图形表示和定义的多级模型。也可以进行高级函数的模型建立。参照图12,可以利用继承来限制为选择可使用的变量/常数的任选项。即,如果由于选择另外的变量,所选择性的变量必须具有某些特性,可以将选择性的变量限制到那些具有所要求特性的变量。可以将其它变量涂灰,使其不能用于选择或者不是简单地显示在任选项的列表上。特性继承的一个实例是量纲继承。在这一实例中,每个变量必须具有至少一个量纲,例如距离、时间、质量等。在图12中所示的实例中,将公式定义为A×B=X。指定的变量特性包括类型、量纲和单位。在这一实例中,结果变量是一实变量,具有质量×距离的量纲,以及单位为千克米(kgm)。A具有实数的特性,其量纲为质量,单位为千克(kg)。B定义为具有实数或整数的特性。通过继承这可以具有定义A和C的特性的结果,B必须是实数或整数。例如,如果将A定义为整数以及将C定义为整数,则B当然是整数。此外,由于C具有质量×距离的量纲(千克米),A具有质量的量纲(千克),则B必须具有距离的量纲(米)。与之相似,A和B已首先定义,A为千克,B为米,由于每个输入的量纲和单位以及运算符的作用,则C的量纲必然为千克米,由于B具有实数或整数的特性,其量纲单位为米,满足这些继承特性的实际的变量类型将限制B可为的输入变量的类型。显示一列出一些已经预先输入的变量类型的拉下式莱单110。以正常字体显示满足该特性的变量的类型,以涂灰显示不满足该特性的变量的类型。当然另外一种方式可以不单纯显示不能用于选择性的变量的类型。在这一实例中,可以选择变量类型“SHAFTDIAMETER”或变量类型“LEVELARMLENGTH”。从拉下式莱单中选择这些变量类型中的任何一个,然后将其变为变量B的变量类型。可以从各种来源例如数据库或变量库得到能够选择性的变量,并且不仅是人工输入。拉下式莱单可以包含如图所示的文本变量名称的列表,然而也可以在拉下式莱单中使用变量的图标表示。也可以采用其它的适合的选择方式。可以将相同的操作应用于其它的输入变量例如A、结果变量例如C。变量选择性的次序必然确定后续变量(或常数)的特性。为了检查公式的定义,可以提供这样的便利,而将指针置于在所定义的公式的一部分上,以及视窗将呈现显示此前定义的公式(如图13A和13B中所示)。在图13A中,可以看出将指针置于在查询表的其中一个输入上。在指针之下,出现一个方框,其示出输入的特性需为“Grade”,该“Grade”是一个大于或等于零的数。还可以看出,将这一Grade指定的特性为每吨克数。在图13B中,示出指针指向Schedule结果变量,其表示此前的公式的定义。在这一实例中,定义的公式是这样的如果(查询表“按月计费用时间段”具有变量中的数据“时间段”等于“按月计费用较低值”),该结果是较低值(L),否则该结果是较高值(U)。还可以检查所输入的公式的文法。参照图14,在这一实例中,定义一关于剪应力的公式。“SHEARSTRESS”=(“RADIUS”דAHGLEOFTWIST”דSHEARMODULUSOFELASTICTY”)÷“LENGTH”。在这一实例中,表示所显示的对象是不同的。剪弹性模量120是一接收输入的查询表运算符,是一其中接收数据的金属合金输入变量。查询表可以是一个涉及在GFDT内存储的数据的元件。另外,查询表可以是一个涉及外部数据的元件。例如,外部数据可以取电子数据表的形式。GFDT可以配备一使数据能从外部软件应用程序转移的“插入”。典型的电子数据表应用程序是MicrosoftExcel。GFDT经过该“插入”可以与Excel通信以便检索Excel电子数据表中的数据。可以由关于每种金属合金的剪弹性模量的材料供应者提供的数据产生查询表。该数据可以来源于一些材料供应者。该数据可以来源于由材料供应者提供的数据库。该数据库可以通过计算机网络例如因特网访问。因此,运算符120可以涉及一访问数据库124的数据库查询。数据库124可以是一个分布式数据库。该以图形表示定义公式的方法也可以用于定义一数据库查询,数据库查询是一种根据本方法定义的特定类型的公式。参照图15,在这一实例中,结果变量E定义为E=C(A×B)+D,其中C是另一函数。如果未将C定义,则将其称为空元件。可以利用如图15中所示的公式的其它特性来定义C的特性。即,变量A、B、D和E将在一定程度上定义运算C的输入和输出必须具有的特性。也可以按渐进方式定义C,因此如果希望添加其它的输入“f”,“g”和“w”到C中(如图16中所示的)。则随着公式的逐渐定义,可以添加这些输入。当希望将新的输入添加到元件C时,进行选择以便将一输入添加到所选择性的元件,并按预期生成新的输入或输出。然后可以将因此另外命名的变量“f”,“g”和“w”连接到元件C的对应的输入。以相似的方式,按照需要可以添加另外的输出。当希望规定元件C的函数性(functionality)时,可以通过“向下钻(drillingdown)”到下一级将C打开,如图17中所示。定义C的函数性中的另一层,如方块16中所示。另外可以根据元件库绘出C的函数性。一个基本库可以配备GFDT。另外可以在线提供库。为了通过因特网,可以搜索实现请求的元件。一旦发现实现请求的元件,可以将其插入到公式中。如图18中所示,找出保留在不同的机器上的元件,实现元件的所需特性并执行如在介绍附加到该元件时所描述的请求的函数性,并且通过计算机网络例如因特网可以针对GFDT本地的实例,以将其插入到所建立的公式。参照图16,可以看出,C是A和B的乘积函数,并且还接收输入“f”,“g”和“w”。即,C=(A×B,f,g,w)。参照图17,当C是“向下钻”时,可以看出,利用连接符128将A×B连接到一临时变量“p”,然后将“p”与输入变量“w”相比较,如由等号(“=”)运算符所指示的。RESULT运算符测试,以了解该比较结果是否是真,在这一实例中提供该接收输入“f”和“g”的LOOKUP表的结果。另外,如果比较结果是假,则该结果为“”。然后将RESULT运算符与常数“k”相乘,如乘运算符(“×”)所指示的,并提供到输出端130。然后将其提供,以便输入加运算符(“+”),其中将其添加到变量D以便提供结果E。可以提供空元件作为一个位置保持器(placeholder),用于一个完全定义的元件。空元件在其输入和输出之间还具有其所定义的函数性。用户可以将空元件置于设计环境中,并定义其输入和输出。可以以后当需要时再定义元件的函数性,或者输入和输出的定义可以形成一用于搜索可以根据库执行功能的元件的搜索的判据。此外可以提供搜索的判据,例如关键词、更高级别的结构信息等。空元件还有助于从上到下的一套设计方法。希望利用彩色编码以便有助于图形表示。例如可以用一种颜色例如蓝色表示变量。例如可以用另一种颜色例如绿色表示运算符,再用一种颜色表示常数。输入可以修饰以浅色例如浅蓝色,输出可以修饰以深色例如深蓝色。这有助于观看公式的表示,特别是当时表示复杂的多级公式时。可以使用其它的视觉表示例如图标,以表示变量、常数和运算符,例如在图中所使用的。在GFDT模型中的很多对象将配备用户可以观看和/或修改的特性。如图19中所示,定义一累加器元件,其将从Excel电子数据表132接收的输入累加。来自电子数据表132的离散输出利用运算符134添加到该最后的子总和(sub-total)(RunningTotal),并利用存储运算符136进行存储。然后,在来自电子数据表数据行的端部,利用门电路140将来自“RunningTotal”变量138的结果选通到“Sum(和)”变量142,然后将变量142返回传递到另一个电子数据表144。该连接符146被加亮。在辅助视窗30中,显示被加亮的对象的特性。被加亮的连接符146的特性是这样的,其名称为“Connector1”,其属于数字类型,其单位为米,为长度的量纲。可以提供一范例以便有助于以与在乘积中提供方式例如Delphi或VisualBasic的相似方式选择对象的特性。可以提供一些预定义的数据类型,这些类型可以根据用户的需要由用户进一步扩展。或者用户可以买或得到扩展的数据类型的库。例如按照作为复数中的实数和虚数部分的两个独立的数字可以表示与复杂数字相关的数据类型,而在另一个实例中,发动机的输出可以利用作为通常数据类型“发动机的输出”的子元件的功率、扭矩和角速度来表示。在图19中,用户通过编辑字段(field)的数值,或者从一向下式的(dropdown)列表中进行选择可以简单地改变特性的数值。还需要复杂的数据类型,以便定义根据它们可以执行的运算。运算符可以利用已有的元件作为在模型中的表示。例如复数加法需要与实数加法不同的运算符集。它们两者可以用“加号”元件表示,然而,其中的途径与数据类型涉及的元件取决于数据类型的性质。当与一元件建立连接时,进行协商操作,由此在存在连接符数据类型的特性,或者连接符的输入或输出、或命名的连接的情况下,数据类型的该数据类型连接必须是一致的。因此通过每个对象之间的协商操作,可以选择正确的数据类型。参照图20,一个元件148可以有能力根据数据类型执行几种方法的加法。这被称为数据过载。可以按照用于处理(如在表中所指示的)不同类型的数据的本质的一套方法提供数据类型,然而,可以提供涉及不同数据类型的另外的一套方法。可以提供用于添加另外的定义的定义公式的预定模式,以便能够添加另外的数据类型并涉及利用元件。在很多情况下经常以特定类型的单位提供数据时,可能需要转换因子(factor),例如对于同样的时间量纲,一个单位可以为秒,一个单位可以为分。于是可能需要进行转换。还可能需要转换因子以便例如将每小时千米的速度转换为每秒米。此外量纲的定义需要单位的基本量纲的组合。基本量纲是长度、时间、质量和电荷。例如加速度是长度×时间-2。也可以为对象提供其它特性。其它特性的实例包括安全信息例如可以利用该信息和加密信息的用户的类型、版本信息-版本号以及有效期多长、证明信息-按照来自经证明的源识别的数据类型功能;付款信息-当您使用时的有偿使用和访问数据或对象的预约;定位信息-例如关于数据或对象的位置的IP地址和文件名称;以及调度(broker)信息-关于元件管理器的信息。每个模型、命名的连接和元件定义将拥有自身的名称域。这意味着在特定的模型中使用的特定对象的名称或元件定义对于该模型或元件是唯一的。在不同模型中的对象或不同元件定义特别是共用共同名称的命名的连接,是不相同的对象。然而可以修改名称域。这在很多编程语言中涉及局部变量,其中变量的名称仅应用在特定域的内部。这样就防止具有相同名称但是并不相关的两个对象彼此混淆。某些运算是非固有的,这意味着它们在公式引擎(formulaengine)外侧执行。在为了进一步计算该公式,而将结果(经过插入)反馈到引擎之时,通常通过一特定应用程序调用(call)与任何请求的输入一起插入到外部元件来执行它们。通过输入一元件类型定义文件,使得在GFDT中可使用非固有元件。于是,这就提供了对于由GFDT使用的元件的定义。元件类型通常具有一组输入和输出连接符,然后根据元件类型可以生成一元件。当将一组元件元件化时,如果在元件外侧任何地方使用命名的连接,导致元件外侧的所有连接的元件将生成关于命名的元件的输入Input和Output对象。如果仅在元件内侧使用命名的连接,则命名的连接的名称域将变为连接。在元件外侧其将不再可使用。这种方法提供一种用于隐藏细节的方式,并当建立模型时迫使用户遵循更严格的方案。复杂的元件是具有良好定义的界面的有效的功能块。用户则发现建立“spaghtticode(空心粉式编码)”模型作为定义的界面以及功能块提供是困难的。某些元件是非固有的元件,例如MicrosoftExcel字电子数据表。这可以包装(wrap)到一GFDT元件中,并当定义一模型时使用。当执行定义以计算公式时,实际上使用Excel电子数据表。引擎将经过Excel与电子数据表通信,以便将数据传递到元件中和将数据从元件传递出来。根据主模型远处的元件执行在不同的引擎中。从局部功能引擎的观点出发,它们是具有未知内部作业的“黑块”。在希望在两个部件例如元件之间连接之处,可以将一命名的连接置于在该页上并指定标记,然后可以为命名的连接指定标记。在这一阶段命名的连接并不必须连接到另一个对象,而是通过将另一命名的连接对象置于在指定页上,并例如自顶向下的列表中选择相同的标记,可以到处使用。这将不会生成一个新的对象,而是允许存在相同对象的第二个实例,倘若第二个实例以与第一个相同的名称域。正如图21中所示,形成两个命名的连接之间的逻辑连接,使得当另一个对象实例如一元件的连接符连接到该命名的连接时,该命名的连接的每一实例可以继承元件的特性。以相似方式,当将数据提供到处于一个位置的该命名的连接时,其由于逻辑连接还提供到另一个位置。此外,逻辑连接的其它实例将特性转移到其它元件或与命名的连接相关的元件。通常将命名的连接用于识别到来的数据和传出的数据,以及在模型中的中间值。命名的连接类似于在常规软件编程语言中的变量,在于其可以在模型中的很多位置出现,并带有一在执行编码期间可能变化的数值。仅可以在一个位置实现为该命名的连接或运算符的输入指定一数值,因为根据另外的该命名的连接的其它状况传递该数值。因此仅允许将一个输出连接连接到运算符的输入或命名的连接。参照图22,在元件A向在一页上的命名的连接提供输出,然后,在另一页上命名的连接提供一输入到元件B的情况下,其作用是在元件A的输出和元件B的输入之间建立逻辑连接。逻辑连接实质上是通过模型中的各种数据元件通信。就逻辑连接而论,各命名的连接是不相关的,因为其单纯是各元件的网状网络和其间的连接。在检查两个对象的连接期间,实现匹配和采用。例如如果已经为两个连接定义量纲,则它们必须是相同的,以便能够进行连接。各单位不必相同,只要可以确定变换因子。如果在任一端都未定义任何特性,则可以采用它们或者可以删除不同的特性,以便使特性保持一致。一旦在各连接之间一致的数据类型已经协商,则执行检查以了解元件是否具有可使用于按照数据类型的作业的功能。如果没有检查以了解是否可以形成任何转换器以使得可兼容。例如,可能需要将数字转换为文本信息串。应注意,可以将一输出连接到很多输入,因此不可以在两个连接之间简单协商。每次将另一输入添加到一组连接时,要进行进一步协商以保证数据类型的一致,和如果需要,可以根据新的连接改变数据类型。连接管理器将搜索一组变量过载功能,这是按照可能的数据类型的作业。此外,可以检查变量数据转换器,以了解数据是否可以转换为适当的数据类型。如果这一点不可能,则连接管理器可以试验与一连接已连接到其上的元件重新协商。这可能导致在整个模型中的所有的连接特性的重新协商。然而,用户可以通过定义距一能够通过协商以便继续的新的连接的距离,能够限制这种操作的范围。再来参照图19累加器模型从一输入电子数据表接收数据。这一元件表示一包含一列数字的Excel电子数据表。根据输出连接符顺序地表示每个数字,仅在所有的连接已使用先前数值的情况下,下一个才变成可以使用的。这一元件被连接到一附加元件的输入。其它的输入连接到以“RunningTotal”命名的连接。附加元件的输出连接到一在其输出维持表示其输入的数值的存储元件。对于根据输入电子数据表的每次数据的迭代,所有其它元件复位该输出(到未定义的)。存储元件的输出提供到该在计算期间表示中间“SUM”的以“RunningTotal”命名的连接。以“RunningTotal”命名的连接提供到一开关元件。直到在一选通输入连接符的数值是真或设有更多数据之前,这一元件阻止输入数值向输出连接符的转移。按照这种方式输出仅表示该计算的和而不是任何中间数值。开关连接的输出提供到以“SUM”命名的连接。这一数值表示该写入到输出电子数据表的输出的累加的和。输出电子数据表表示另一将计算结果将写入到其上的Excel电子数据表。在附录1中,表示所定义的公式的可扩展的标高语言(XML)描述的实例。应注意,与图标的定义相关的数据段未表示。在附录2中,表示一定义元件和与其连接的以XML的逻辑描述。参照图23,其表示更复杂的公式,从提供到以“ItemId”152命名的连接的“ListofItemstoPick”电子数据表150接收数据。然后又将其提供到查询表元件154,查询表元件154查询在电子数据表中的每一项的Name、GrossPrice、GST、NetPrice以及Cost。在图24中表示电子数据表,其形成利用通过电子数据表公式根据30个元件的数据库表计算的每个输出的数值换页的元件的基础。通过对“GrossPrice”求和,以产生“TotalGrossPrice”166;对“GST”160求和,以产生“TotalGST”168;通过从“NetPrice”中减去“Cost”确定“Margin”170,通过对“Margin”求和,以产生“TotalMargin”172,对“Name”156、“GrossPrice”158、“GST”160、“NetPrice”162以及164执行其它的计算。“Name”、“GrossPrice”、“TotalGrossPrice”以及“TotalGST”提供到另一个Excel电子数据表174。通过将数值176输入到第一电子数据表可以了解对公式的处理操作。在对这一公式的处理操作中,每一项ID用于利用检索元件的数据库检索关于该项的数据,其提供按照每一项的输出处理,并在数据库154中生成另一输入,由178可以看出。计算的结果由元件174返回到最终的电子数据表。通过接收公式的逻辑定义功能引擎可以执行该计算,该公式根据其对象和它们之间的相互关系描述函数,然后可以利用对公式的这一定义处理所接收的数据,并当提供输入数据时计算公式的结果。按照本发明所定义的以图形表示定义公式的方法具有很多优点。其提供一种根据一些公式建立模型的简单方法,通过利用自顶向下或按钮式一套设计方法可以建立该公式。该方法可以进行检查,以了解变量特性是否被正确地继承,并且如果结果错误则提供警告。该方法具有极大的多样性,生成多级方法的简单方法用于操作查询数据。该表示是易于理解的,使得更易于实现对公式精确性的检查和审核。正如本领域的技术人员将会认识到的,在不脱离本发明的基本概念的前提下,可以进行各种建议、改进和变化,例如可以结合这种一套方法使用各种图形用户界面技术,例如下拉式莱单、图形操作以及信息泡(bubble)。这些改进和变化都预期在本发明的范围内,其性质是由上述确定的。附录1<prelisting-type="program-listing"><![CDATA[<?xmlversion=″1.0″?><Xemplex><PackageName=″Internal″Description=″″>  <TypeName=″ItemList″Description=″Z\Demo\PriceListNQ.xls″Type=″InputData″>  <ApplicationName=″Excel97″Workbook=″Z\Demo\PriceListNQ.xls″Worksheet=″ItemstoPick″Start=″2″/>  <Icon><![CDATA[NDI0REU2MDQwMDAwMDAwMDAwMDAzNjAwMDAwMDI4MDAwMDAwMTQwMDAwMDAxNDAwMDAwMDA0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0]]>  </Icon>  <Outputs>  <OutputName=″ItemID″Type=″Number″DataType=″Number″Line=″A″/>  </Outputs>  </Type>  <TypeName=″Sum″Description=″Z\Demo\PriceListNQ.xls″Type=″OutputData″>  <ApplicationName=″Excel97″Workbook=″Z\Demo\PriceListNQ.xls″Worksheet=″ItemstoPick″Start=″2″/>  <Icon><![CDATA[NDI0REU2MDQwMDAwMDAwMDAwMDAzNjAwMDAwMDI4MDAwMDAwMTQwMDAwMDAxNDAwMDAwMDA0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0ODQ4NDg0]]>  </Icon>  <Inputs>  <InputName=″Total″Type=″Number″Line=″F″/>  </Inputs>  </Type></Package><ComponentPackages>  <PackageFilename=″Z\Delphi\ComponentManager\Basic.xmp″/>  <PackageFilename=″Z\Delphi\ComponentManager\Standard.xmp″/></ComponentPackages><Model>  <PageName=″NewPage″>  <ComponentName=″Add0″ComponentPackage=″Standard″ComponentType=″Add″Left=″161″Top=″83″>  <ConnectorType=″Input″Name=″Connector#0″UID=″12″Edge=″Left″/>  <ConnectorType=″Input″Name=″Connector#1″UID=″13″Edge=″Left″/>  <ConnectorType=″Output″Name=″Connector#2″UID=″14″Edge=″Right″/>  </Component>  <ComponentName=″Memory3″ComponentPackage=″Basic″ComponentType=″Memory″Left=″266″Top=″85″>  <ConnectorType=″Input″Name=″MI″UID=″15″Edge=″Left″/>  <ConnectorType=″Output″Name=″MO″UID=″16″Edge=″Right″Initial=″0″/>  </Component>  <ComponentName=″Block4″ComponentPackage=″Basic″ComponentType=″Block″Left=″485″Top=″84″><ConnectorType=″Input″Name=″BI″UID=″17″Edge=″Left″/>  <ConnectorType=″Output″Name=″BO″UID=″18″Edge=″Right″/>  <ConnectorType=″Gate″Name=″BG″UID=″19″Edge=″Bottom″/>  </Component>  <ComponentName=″ItemList5″ComponentPackage=″Internal″ComponentType=″ItemList″Left=″27″Top=″86″>  <ConnectorType=″Output″Name=″ItemID″UID=″20″Edge=″Right″>  <AttributesLine=″A″/>  </Connector>  </Component>  <ComponentName=″Sum5″ComponentPackage=″Internal″ComponentType=″Sum″Left=″716″Top=″77″>  <ConnectorType=″Input″Name=″Total″UID=″21″Edge=″Left″>  <AttributesLine=″F″/>  </Connector>  </Component>  <NamedConnectionName=″Runningtotal″UID=″22″Left=″400″Top=″101″/>  <NamedConnectionName=″Sum″UID=″23″Left=″620″Top=″102″/>  <VisibleConnectionEndpointA=″15″EndpointB=″14″/>  <VisibleConnectionEndpointA=″16″EndpointB=″22″/>  <VisibleConnectionEndpointA=″12″EndpointB=″22″>  <VertexTop=″92″Left=″160″/>  <VertexTop=″92″Left=″115″/>  <VertexTop=″33″Left=″115″/>  <VertexTop=″33″Left=″400″/>  </VisibleConnection>  <VisibleConnectionEndpointA=″17″EndpointB=″22″/>  <VisibleConnectionEndpointA=″18″EndpointB=″23″/>  <VisibleConnectionEndpointA=″13″EndpointB=″20″/>  <VisibleConnectionEndpointA=″21″EndpointB=″23″/>  </Page></Model></Xemplex>]]></pre>附录2<prelisting-type="program-listing"><![CDATA[<?xmlversion=″1.0″?><Xemplex><Executable>  <ComponentName=″Add0″Type=″Generic″Application=″Xemplex″Operation=″Add″>  <InputName=″Connector#0″Type=″Input″/>  <InputName=″Connector#1″Type=″Input″/>  <OutputName=″Connector#2″Type=″Output″/>  </Component>  <ComponentName=″Memory3″Type=″Generic″Application=″Xemplex″Operation=″Memory″>  <InputName=″MI″Type=″Input″/>   <OutputName=″MO″Type=″Output″Initial=″0″/>  </Component>  <ComponentName=″Block4″Type=″Generic″Application=″Xemplex″Operation=″Block″>  <InputName=″BI″Type=″Input″/>  <OutputName=″BO″Type=″Output″/>  <GateName=″BG″Type=″Gate″/>  </Component>  <ComponentName=″ItemList5″Type=″InputData″Application=″Excel97″Workbook=″Z\Demo\PriceListNQ.xls″Worksheet=″ItemstoPick″Start=″2″>  <OutputName=″ItemID″Type=″Number″Line=″A″/>  </Component>  <ComponentName=″Sum5″Type=″OutputData″Application=″Excel97″Workbook=″Z\Demo\PriceListNQ.xls″Worksheet=″ItemstoPick″Start=″2″>  <InputName=″Total″Type=″Number″Line=″F″/>  </Component>  <ConnectionFrom=″Add0″Output=″Connector#2″To=″Memory3″Input=″MI″/>  <ConnectionFrom=″Memory3″Output=″MO″To=″Add0″Input=″Connector#0″/>  <ConnectionFrom=″Memory3″Output=″MO″To=″Block4″Input=″BI″/>  <ConnectionFrom=″ItemList5″output=″ItemID″To=″Add0″Input=″Connector#1″/>  <ConnectionFrom=″Block4″Output=″BO″To=″Sum5″Input=″Total″/></Executable></Xemplex>]]></pre>权利要求1.一种以图形表示定义公式的计算机实施的方法。所述方法包括提供第一运算符对象,用于定义操作至少一个输入以产生至少一个结果的方法;显示第一运算符对象的图形表示;提供用于包括数据的第一变量对象;从用户接收一输入以使该变量对象与其中一个输入或第一运算符对象的其中一个结果相关;显示第一变量对象的图形表示及其与第一运算符对象的关系;以及记录各对象之间的相互关系的逻辑描述;由此利用该逻辑描述定义该公式。2.一种以图形表示定义公式的计算机实施的方法。所述方法包括提供用于包括数据的第一变量对象;显示第一变量对象的图形表示;提供第一运算符对象,用于定义操作至少一个输入以产生至少一个结果的方法;从用户接收一输入,使其中一个输入或第一运算符对象的其中一个结果与变量对象相关;显示第一运算符对象的图形表示及其与第一变量对象的关系;以及记录各对象之间的相互关系的逻辑描述;由此利用该逻辑描述定义该公式。3.根据权利要求1或2所述的一种以图形表示定义公式的计算机实施的方法,还包括步骤提供一个或多个另外的变量对象;从用户接收另外的输入,使每个另外的变量对象与其中一个输入或第一运算符对象的其中一个结果相关;显示另外的变量对象的图形表示,以及它们与运算符对象的关系。4.根据权利要求1或2所述的方法,该方法还包括步骤提供一个或多个另外的变量对象;提供一个或多个另外的变量对象;从用户接收另外的输入,使每个另外的变量对象与其中一个输入或该另外的运算符对象的其中一个结果相关;显示另外的运算符对象的图形表示,以及它们与变量对象的关系。5.根据权利要求1到4中之一所述的方法,从如下部分中选择每个变量对象输入对象,用于从数据源提供数据;输出对象,用于向数据目的地提供数据;或连接对象,用于从一个运算符对象向另一个运算符对象传递数据。6.根据权利要求1到5中之一所述的方法,其中连接对象表示为各运算符对象之间的链接。7.根据权利要求1到6中之一所述的方法,其中每个变量对象可以配备一变量标记。8.根据权利要求1到7中之一所述的方法,其中每个运算符对象可以配备一变量运算符标记。9.根据权利要求1到8中之一所述的方法,其中利用各对象之间的相互关系来定义公式的逻辑描述。10.根据权利要求1到9中之一所述的方法,其中记录定义各对象之间的相互关系的图形显示的公式的图形定义。11.根据权利要求1到10中之一所述的方法,其中该方法包括存储描述逻辑定义的信息的步骤。12.根据权利要求1到10中之一所述的方法,其中该方法包括存储描述图形定义的信息的步骤。13.根据权利要求1到12中之一所述的方法,其中可以将两个或更多个相关的运算符对象进行分组,使得该分组定义一分组的运算符对象,在其中穿过该分组的边界并连接到在组中的运算符对象的输入的变量对象变为该分组元件,和穿过该分组的边界并连接到在该组中的运算符对象的结果的变量对象变为该分组运算符对象的结果。14.根据权利要求13所述的方法,其中不链接到另一个对象的该组中的运算符对象的输入和结果分别变为该分组的运算符对象的输入和结果。15.根据权利要求13或14所述的方法,其中利用该分组的运算符对象替代经分组的对象的图形表示,以及利用到分组对象的表示的该链接的图形表示替代到该组内容的链接的图形表示。16.根据权利要求13或15所述的方法,其中所定义的公式的逻辑定义包括该分组运算符对象的内容。17.根据权利要求13或16所述的方法,其中所显示的整个公式的图形定义排除该分组运算符对象的内容。18.根据权利要求13或17所述的方法,其中该分组运算符对象的内容可以分别根据公式的整个图形表示以图形表示。19.根据权利要求1到18中之一所述的方法,其中变量对象可以被赋予定义它们能够保持的数据类型的特性。20.根据权利要求19所述的方法,其中一运算符对象的每个输入和结果可以分别被赋予定义该运算符对象希望接收和能够产生的数据类型的特性。21.根据权利要求20所述的方法,其中可以使变量对象能够从已经定义的另一个变量对象的特性继承特性并与一插入的运算符对象相关联。22.根据权利要求20所述的方法,其中可以使变量对象能够从已经定义并与其相关联的运算符对象输入或结果的特性继承特性。23.根据权利要求19到22中之一所述的方法,其中运算符对象的输入或结果可以从已经定义并与其相关联的变量对象的特性继承特性。24.根据权利要求19到23中之一所述的方法,其中该方法包括步骤检查其属性已经相关匹配的对象的特性。25.根据权利要求7所述的方法,其中预定义经标记的变量对象的库。26.根据权利要求8所述的方法,其中预定义经标记的运算符对象的库,操作其输入以便产生其结果的每个标记的运算符对象的方法也被预定义。27.根据权利要求7或25所述的方法,其中可以从预定义的变量标记中选择变量对象的对象标记。28.根据权利要求19所述的方法,其中每个对象标记可以被赋予定义该包含标记有标记的变量对象的数据类型的特性。29.根据权利要求19所述的方法,其中变量标记的选择赋予与关于变量对象的标记相关联的特性。30.根据权利要求29所述的方法,其中被赋予该变量对象的特性限制选择需选择性的对象的标记的选择。31.根据权利要求1到30中之一所述的方法,其中第一运算符对象是加、减、乘、除、查询表和条件运算的至少其中之一。32.根据权利要求1到30中之一所述的方法,其中运算符对象可以是多级运算,包括链接的多个简单运算,以便执行更复杂的运算。33.根据权利要求1到30中之一所述的方法,其中第一运算符对象是数据库的查询。34.一种方法,其中第一运算符对象执行向数据库的写入。35.根据权利要求8所述的方法,其中可以从预定义的运算符标记的列表中选择运算符对象的运算符标记。36.根据权利要求35所述的方法,其中每个运算符标记其属性可以具有定义数据类型的特性,其可以分别接收或提供所标记的运算符对象的输入和结果。37.根据权利要求36所述的方法,其中运算符标记的选择其属性可以具有与关于运算符标记相关联的特性。38.根据权利要求37所述的方法,其中对于运算符标记的属性的特性限制需选择性的标记变量的选择。39.根据权利要求1到38中之一所述的方法,其中可以由运行时间引擎利用逻辑定义,以便投入对定义的公式的运算,其中数据提供到每个链接到运算符对象的输入的变量对象,由此,该数据变成公式中的运算对象,每个由运算符对象表示的每个运算符变成公式中的运算符,以及运算符对象的每个结果变成下一个运算符的运算对象或该公式的最终的结果,由此,可以进行公式的计算以产生公式结果。40.根据权利要求1到39中之一所述的方法,其中可以为每一个变量定义一名称域,由此,在名称域中每次产生变量对象时,在由变量对象表示的逻辑变量中的数据是相同的。41.根据权利要求40所述的方法,其中由对需模型化的公式的缺省的全局符表示名称域。42.根据权利要求40所述的方法,其中在名称域内标记的变量对象的每次产生之间建立逻辑连接。43.根据权利要求40所述的方法,其中可以显示图形化的链接,以表示标记的变量对象的每次产生之间的逻辑连接。44.根据权利要求1到43中之一所述的方法,其中可以为每个运算符对象定义名称域,由此,在名称域中每次产生运算符对象时,在由变量对象表示的逻辑变量中的运算是相同的。45.根据权利要求44所述的方法,其中该名称域利用对于被模型化的公式的缺省全局符。46.根据权利要求13所述的方法,其中通过定义要应用于公式的逻辑定义的分组的运算符对象,可以一次以上使用分组的运算符对象。47.根据权利要求19所述的方法,其中标记的特性包括类型、单位和量纲。48.根据权利要求10所述的方法,其中该图形定义以XML描述。49.根据权利要求1到48中之一所述的方法,其中该逻辑定义以XML描述。50.根据权利要求1到49中之一所述的方法,其中每个运算符对象包括多个由以运算符对象表示的运算符执行的运算的定义,每个定义是针对每个定义能由运算符操作的数据的单独类型的。51.根据权利要求1到50中之一所述的方法,其中按照具有一个或多个输入和一个或多个输出的元件,以图形表示运算符对象,该元件具有一表示该所表示的运算符表示的识别符。52.根据权利要求1到51中之一所述的方法,其中运算符对象可以为空元件,即表示利用操作输入的一套方法的运算符,以便产生还需定义的结果。53.根据权利要求1到52中之一所述的方法,其中使用该空元件以形成用于搜索的适合的运算符对象的判据,该运算符对象具有适合的定义的一套方法。54.根据权利要求1到53中之一所述的方法,其中提供一对象库。55.根据权利要求1到53中之一所述的方法,其中对象可以是外部源。56.一种以图形表示定义公式的系统,包括计算机,包括一显示屏幕和用户输入装置;一装置,用于提供第一运算符对象,该第一运算符对象用于定义操作至少一个输入以产生至少一个结果的方法;一装置,用于在该屏幕上显示第一运算符对象的图形表示;一装置,用于提供第一变量对象,该第一变量对象用于包括数据;一装置,用于从用户接收一输入以使该变量对象与其中一个输入或第一运算符对象的其中一个结果相关联;一装置,用于显示第一变量对象的图形表示及其与第一运算符对象的关系;由此利用各对象之间的相互关系来定义该公式。57.一种用于控制计算机以图形表示定义公式的计算机程序,所述计算机程序使计算机采取的步骤包括提供第一运算符对象,用于定义操作至少一个输入以产生至少一个结果的方法;在计算机屏幕上显示第一运算符对象的图形表示;提供用于包括数据的第一变量对象;从用户输入装置接收一输入以使该变量对象与其中一个输入或第一运算符对象的其中一个结果相关联;在该屏幕上显示第一变量对象的图形表示及其与第一运算符对象的关系;由此利用各对象之间的相互关系来定义该公式。58.一种用于存储如权利要求57所述的计算机程序的计算机可读介质。59.一种以图形表示定义公式的计算机实施的方法。所述方法包括提供至少一个变量,用于包括数据;提供至少一个运算符,用于定义操作输入数据以产生结果的方法;向用户显示变量的列表,以便由此选择结果变量;从用户接收形成的变量的选择,用于包含操作输入数据产生的结果;显示所选择性的结果变量的图形表示;向用户显示运算符的列表,以便由此选择运算符;从用户接收对运算的选择,显示所选择性的运算的图形表示;向用户显示用于包括输入数据的输入的列表,以便由此选择至少一个输入该输入或者是所述变量或者是一个或多个常数;从用户接收对至少一个输入的选择,显示所选择性的输入的图形表示;由此利用所选择性的结果变量定义该公式,该结果变量等于由所选择性的运算对所选择性的输入的操作。60.一种以图形表示定义公式的计算机实施的方法。所述方法包括提供至少一个变量类型,所述变量类型具有预定的特性;提供至少一个运算,用于定义操作输入数据以产生结果的方法;向用户显示变量的类型,以便由此选择变量的类型;从用户接收对变量类型的选择;接收所选择性的变量类型的名称;显示该名称的变量的图形表示;向用户显示运算的列表,以便由此选择运算;显示所选择性的运算的图形表示;从用户接收对运算的选择;从用户接收输入,以便使所选择性的变量和所选择性的运算相关联,使得所选择性的变量或者是输入变量或者是结果变量;其中使所选择性的变量要和所选择性的运算相关联,从用户接收对输入变量或输入常数的其中之一的选择,显示的输入变量和/或输入常数的图形表示;其中所选择性的变量是输入变量,接收关于输出变量的名称,显示输出变量的图形表示;由此利用对输入数据变量中的输入数据或提供到结果变量的输入常数所选择性的运算的操作的结果来定义该公式。全文摘要一种以图形表示定义公式的计算机实施的方法。所述方法包括提供第一运算符对象,用于定义操作至少一个输入以产生至少一个结果的方法。显示第一运算符对象的图形表示。提供用于包括数据的第一变量对象。从用户接收一输入以使该变量对象与其中一个输入或第一运算符对象的其中一个结果相关。显示第一变量对象的图形表示及其与第一运算符对象的关系。记录各对象之间的相互关系的逻辑描述;由此利用该逻辑描述定义该公式。文档编号G06F9/44GK1392978SQ01803032公开日2003年1月22日申请日期2001年8月24日优先权日2000年8月24日发明者克里斯托弗·I·巴格,格里高里·O·约翰斯顿,拉塞尔·B·琼斯申请人:泽姆普莱克斯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1