CN101208695B - 基于图形计算的元数据管理 - Google Patents

基于图形计算的元数据管理 Download PDF

Info

Publication number
CN101208695B
CN101208695B CN2006800233734A CN200680023373A CN101208695B CN 101208695 B CN101208695 B CN 101208695B CN 2006800233734 A CN2006800233734 A CN 2006800233734A CN 200680023373 A CN200680023373 A CN 200680023373A CN 101208695 B CN101208695 B CN 101208695B
Authority
CN
China
Prior art keywords
assembly
metadata
port
parameter
relevant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2006800233734A
Other languages
English (en)
Other versions
CN101208695A (zh
Inventor
克雷格·W.·斯坦菲尔
J.·斯凯芬顿·沃莱
布龙德·拉森
格伦·约翰·阿林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Archie Taco Ltd.
Ab Initio Technology LLC
Original Assignee
Ab Initio Software LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ab Initio Software LLC filed Critical Ab Initio Software LLC
Publication of CN101208695A publication Critical patent/CN101208695A/zh
Application granted granted Critical
Publication of CN101208695B publication Critical patent/CN101208695B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24526Internal representations for queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

确定与基于图形计算相关的元数据包括:函数转换与图形的第一部分(2310)相关的元数据,以产生与图形的第二部分(2316)相关的转换后的元数据;通过代表数据流的链接,确定与所述图形的第二部分相关的图形的第三部分(2317);以及根据所述链接,将转换后的元数据从所述图形的第二部分传送至所述图形的第三部分。

Description

基于图形计算的元数据管理
技术领域
本发明涉及对数据处理系统中的计算控制,尤其涉及基于图形计算的元数据管理。 
背景技术
复杂的事务系统通常进行多级数据处理,将一级产生的结果馈送入下一级。经过这些系统的总信息流可以以有向(directed)数据流图的形式被描述,其中图中的顶点代表组件(数据文件或进程),图形中的链接(link)或“边”表示各组件之间的数据流。 
相同类型的图示可以用于描述并行处理系统。出于此讨论的目的,并行处理系统包括使用多个中央处理器(CPUs)的计算机系统的任何配置,所述中央处理器可以是本地的(例如SMP计算多处理器系统)或本地分布式的(例如连接成群组(cluster)的多个处理器或MPP)或是远程的或远程分布式的(例如经由LAN或WAN网络连接的多个处理器)或者它们的任何组合。此外,这些图形可以由组件(数据文件或进程)和流(图形的边或链接)组成。通过明确地或隐含地复制图形的各元素(组件和流),可以表示系统的平行性。 
图形还可以用于直接调用计算。来自Ab Initio Software Corporation,Lexington,MA的具有图形开发环境(GDE)的“CO>OPERATING SYSTEM 
Figure 2006800233734_0
”体现了此种系统。根据此系统产生的图形提供各种方法:用于从图形组件表示的个别进程中输入和输出信息,用于在进程之间移动信息,以及用于规定进程的运行顺序。该系统包括用于选择进程间通信方法的算法和用于调度(schedule)进程的执行的算法,该系统还用于监控图形的执行。 
开发者经常构建各种图形,所述图形通过利用环境变量或命令行自变量(command-line argument)而以一种方式或另一种方式被控制,所述环境变量或命令行自变量可以产生能够被图形编译器在“运行时”(即执行该图形 时)编译成可执行指令的指令(例如外壳脚本(shell script)指令)。从而环境变量和命令行自变量成为特定(ad hoc)参数,用于指定诸如文件名、数据选择表达式和关键字(例如分类(sort)关键字)的信息,以使应用更灵活。然而,用户可能需要读取所产生的shell script指令并搜索该shell script指令,用于引用环境变量和命令行参数,以发现控制特定图形的执行的该组参数。 
发明内容
在总的方案中,本发明的特征在于提供一种用于确定与基于图形计算相关的元数据的方法和对应的软件及系统。该方法包括以下步骤:函数转换与图形的第一部分相关的元数据以产生与图形的第二部分相关的转换后的元数据;通过代表数据流的链接,确定与所述图形的第二部分相关的图形的第三部分;以及根据所述链接,将转换后的元数据从所述图形的第二部分传送至所述图形的第三部分。 
该方案可以包括一个或多个以下特征: 
所述数据流包括在两个相互连接的图形单元的端口之间的数据流。 
所述数据流包括在一图形单元的两端口之间的内部数据流。 
所述图形的第三部分通过链接与所述图形的第二部分相关,所述链接表示与第二部分相关的元数据也应该与所述第三部分相关。 
所述第一部分包括第一图形单元的第一端口,以及所述第二部分包括所述第一图形单元的第二端口。 
所述功能转换包括元数据定义,其包括对与所述第一端口相关的元数据的至少一个引用。 
所述元数据定义将用于所述第二端口的元数据定义为所引用的元数据的函数。 
所述第一端口是输入端口,所述第二端口是输出端口。 
由用户提供被函数转换的元数据。 
从图形的第四部分传送被函数转换的元数据。 
该方法还包括响应于图形连接方式的改变传送转换后的元数据。 
该方法还包括响应于用户行为传送转换后的元数据。 
该方法还包括接收来自用户的请求;和响应于该请求向用户显示与图形单元相关的元数据。 
所述来自用户的请求包括来自用户的输入,该输入用于选择将要显示相关元数据的图形单元。 
所述来自用户的输入包括在预定量时间内在所选择的图形单元的图形表示附近定位屏幕上的指针。 
所显示的元数据包括从另一图形单元传送的元数据。 
在所述图形被运行之前显示已显示的元数据。 
本发明的方案可以包括一个或多个以下优点: 
以运行时间参数方式形成的图形界面已被格式化。图形界面已被适当定义,足以使得系统知道哪些参数需要提供以及这些参数应该如何提示。 
通过运行时间参数可以直接或间接指定或计算出控制组件的元数据。 
可以以控制条件组件的运行时间参数值为依据来修改图形结构,从而基于用户的选择来提供或不提供组件。 
对图形运行时间进行参数化的优点是应用可以被充分参数化,使得诸如事务分析员和统计建模型员的终端用户可以请求能满足他们需求的数据。现代企业数据环境的复杂性导致这种事务状态,即,其中在数据收集和预先分析转换进程中通常需要涉及大量的人力。本发明为终端用户提供有力的工具,使得该终端用户可以定义及恢复他们想要的数据,而在每一个查询类型的关键途径中不需要专业的数据分析家。 
在图形内传送的元数据包括经由函数转换的元数据,例如被定义成其它元数据的函数的元数据。该传送例如发生在图形运行之前的编辑时间。使得所转换的元数据能够传送,就可以增强用户甚至在图形运行之前就可以查看及/或处理元数据的能力。 
存在具有运行时间参数的可再用(可互连)的组件的程序库。通过这些组件,利用具有针对图形中所有运行时间参数而自动确定的提示顺序的组件来构建该图形。在一些情形中,参数需要被重新排序以满足某些限制条件。根据预期的排序(例如由开发者指定的排序)对参数重新排序以满足那些限制条件降低了因严重偏离预期排序的参数顺序而提示用户的可能性。 
通过以下描述和权利要求,本发明的其它特征及优点变得明显。 
附图说明
图1A是示出主元素的相互关系的本发明的一个实施例的框图。 
图1B是数据流图的框图。 
图2是具有汇总组件和分类组件204的典型图形的框图,该汇总组件和分类序组件204具有指定的运行时间参数。 
图3是表示即将与图形相关的运行时间参数网格的图形对话框的一个实施例图。 
图4是总结利用运行时间参数的进程的流程图。 
图5是由关键字提示产生的图形对话框的一个实施例图。 
图6是由过滤提示产生的图形对话框的一个实施例图。 
图7是由汇总提示产生的图形对话框的一个实施例图。 
图8是由重新格式化提示产生的图形对话框的一个实施例图。 
图9A是第一个图形的框图,其中合并(MergeJoin)组件组合文件A和B的数据并输出结果至输出文件。 
图9B是第二个图形的框图,其中汇总组件集合文件A的数据并输出结果至输出文件。 
图9C是一个图形的框图,其中合并组件组合文件A和B的数据,而汇总组件集合所产生的数据并输出最后结果至输出文件。 
图10是表示具有条件解释控制的条件的图形对话框的一个实施例图。 
图11是示出出现损坏情形的图形的示意图。 
图12是总结包括完全移除条件组件的图形的运行时间准备进程的流程图。 
图13是针对本发明的特定实施例而总结包括流替换条件组件的图形的运行时间准备进程的流程图。 
图14是表示没有运行时间参数的汇总应用的图形的示意图。 
图15是表示图14的汇总应用进行运行时间参数化的版本的图形的示意图。 
图16是表示用于图15的示例性应用的运行时间参数网格的图形对 话框的一个实施例图。 
图17A是表示来自图16的参数网格中的信息的Web界面所产生的表格的图形对话框的一个实施例图。 
图17B是由用户用参数值填充图17A的表格的示意图。 
图18是表示运行时间参数化汇总和组合应用的图形的示意图。 
图19是表示用于图18的示例性应用的运行时间参数网格的图形对话框的一个实施例图。 
图20是表示来自图19的参数网格中的信息的Web界面所产生的表格的图形对话框的一个实施例图。 
图21是表示运行时间参数化的汇总-组合-分类应用的图形的示意图。 
图22是表示用于图21所示的示例性应用的运行时间参数网格的图形对话框的一个实施例图。 
图23A是在图形中传送元数据的示意图。 
图23B是图23A中图形的组件的子图形的示意图。 
图24是元数据传送进程的流程图。 
图25A是包括具有组件内和组件间相关性的参数的图形。 
图25B和图25C是表示图25A中的图形的参数之间相关性的相关图。 
图26是改进的拓扑分类进程示意图。 
各个附图中同样的附图标记表示同样的元素。 
具体实施方式
概述 
图1A是示出主单元(principal element)间相互关系的本发明的一个实施例的框图。图形开发环境(GDE)102提供用于创建可执行的图形并定义图形组件的参数的用户界面。该GDE可以是诸如可从本发明的申请人处得到的CO>OPERATING SYSTEM
Figure 2006800233734_1
GDE。GDE 102与库104和并行操作系统106相互通信。Web界面108和执行程序110也连接到库104和并行操作系统106。 
库104优选是可升级的面向对象的数据库系统,其设计用于支持基于图形的应用的开发和执行,以及支持基于图形的应用和其它系统(例如其它操作系统)之间的元数据交换。库104是用于所有元数据类型的存储系统,所述元数据包括(但不限于)文件、记录格式、转换函数、图形、作业和监控信息。库在本领域中是公知的;例如可参看美国专利Nos.5,930,794;6,032,158;6,038,558;以及6,044,374。 
并行操作系统106接受在GDE 102中产生的数据流图的表示法,并产生与经由该图形定义的处理逻辑和资源相对应的计算机指令。然后并行操作系统106通常在多个处理器(不必是同类的)上执行这些指令。合适的并行操作系统是可以从本发明的申请人处得到的CO>OPERATING SYSTEM。 
Web界面108对库104的内容以网页浏览方式进行查看。利用Web界面108,用户可以浏览对象、创建新的对象、改变现有对象、指定应用参数、调度作业等。Web界面108基于存储在库104中与图形相关的运行时间参数的信息,自动创建参数化图形的基于表格的用户界面。 
执行程序110是通过Web界面108访问的任选的基于库的作业调度系统。执行程序110将作业和作业队列在库104内保存为对象,Web界面108提供查看工具以处理作业和作业队列。 
图1B示出简单的数据流图120,具有通过流124连接到过滤组件126的输入数据集122。过滤组件126通过流128连接到输出数据集130。数据集可以包括诸如文件或数据库表,该文件或数据库表可以为经由数据流图执行的计算提供数据(例如输入数据集)或接收数据(例如输出数据集)。 
在数据流图中用“流”表示的数据流可以被组织为离散数据元素。例如,所述元素可以包括来自被组织为记录(或行)和字段(或列)的数据集的记录。描述对应于记录中的值的字段顺序和数据类型的元数据被称作为“记录格式”。 
图形中的组件和数据集具有用于连接到流的输入和/输出端口。流124和128的“源端”分别与输入数据集122的输出端口及过滤组件126的输出端口连接。流124和128的“接收(sink)端”分别与过滤组件 126的输入端口及输出数据集130的输入端口连接。数据集或组件的输入或输出端口与元数据,例如流入或流出端口的数据的记录格式相关联。 
根据参数范围规则将包括端口的记录格式或与组件相关联的其它元数据的参数绑定为一个值。可以在设计时间或运行时间(即如下所述的“运行时间参数”)将参数绑定为一个值。参数值可以例如由用户在用户界面(例如响应提示)上定义,从文件中被定义或被定义为根据相同或不同上下文中的另一个参数。例如,通过指定参数具有与另一个参数“相同”的关系,参数可以从不同的上下文(例如在不同组件的上下文中被赋值的参数)导出。 
用于图形中的组件可以通过与形成“子图形”的流互连的其它组件来实现。在将子图形用作其它图形中的组件之前,定义组件的各种特性,例如该组件的输入和/或输出端口。在一些情形中,与子图形组件之间关系有关的组件特性应该在该组件被用于图形之前被指定。例如,需要选择子图形组件的运行时间参数的提示顺序。下文将详细描述用于选择图形中组件的运行时间参数的提示顺序的方法。 
元数据传送 
与端口相关的元数据值,例如记录格式参数,可以通过“传送”而获得。元数据传送可以从“外部”或“内部”发生。对于外部元数据传送,通过传送第二个组件的端口的记录格式值,其经由流而连接到第一个组件,使得用于第一个组件的端口的记录格式参数值可以获得一个值。该值可以传送从流的源端到接收端的下游流,也可以传送从流的接收端到源端的上游流。元数据从已定义元数据的端口传送到未定义元数据的端口。 
对于内部元数据传送,定义以用于组件的一个端口的元数据基于实现该组件的子图形而传送到该组件的另一个端口。在一些情形中,内部元数据传送发生在“非转换(non-transforming)”内部数据路径上。例如,用户可以为分类组件的输入端口提供元数据,该分类组件指定流入分类组件的记录的数据类型。因为该分类组件重新排序而不转换记录,因此该数据类型没有被该分类组件变换,数据类型未经改变地传送到分类组件的输出端口,该数据类型准确描述流出该分类组件的记录的数据 类型。 
一些组件确实转换(或选择性地转换)了流过它们的数据。例如,用户可以为过滤组件的输入端口提供元数据,该元数据指定流入过滤组件的记录的字段。该过滤组件可以从每一个记录中移除给定字段的值。元数据定义可以用于根据该组件的过滤动作,指定该过滤组件的输出端口的元数据与该输入端口的元数据相关。例如,可以从指定记录字段的元数据中移除被过滤的字段。甚至在知道输入端口元数据之前,也可以提供这种元数据定义。因此,通过允许与端口相关的元数据被指定为一个或多个参数的函数一个或多个参数的函数,该参数包括另一个端口的元数据的,元数据甚至可以在转换内部数据的路径上传送,下文将对此详细描述。 
当构建图形,并且用户为该图形中的一些组件的一些端口提供元数据时,可以将此内部和外部元数据的传送选择性配置为在设计时间发生。可选择地,元数据传送可以发生在图形被构建之后,包括在运行时间或正好在运行时间之前。 
运行时间参数 
运行时间参数允许应用的构建人员将参数设定值(例如分类函数的关键字参数、文件名、记录格式、转换函数等)延迟至运行时间(例如在计算机系统上执行或马上执行程序的时间)。运行时间参数的值可以由终端用户提供,或从其它运行时间参数的组合或存储在对象库内的对象中推导出来。 
运行时间参数使应用增加一定程度的灵活性。通过利用这些参数来计算所需要的元数据(数据格式或类型,以及程序逻辑或转换),可以实现额外的灵活性。类型和转换可以从其它类型和转换、用户提供的参数值和存储的对象(例如来自库中的存储对象)综合得到。这样就可以构建“通用”应用,该“通用”应用工作于任何类型的输入数据,或通过一系列转换而产生数据,所述转换的构建由运行时间参数值来直接控制或由数值间接控制。 
在一些实现方式中,当创建或编辑运行时间参数时,开发人员可以为每一个参数指定提示及显示该提示的条件。该系统解释提示指示,以 在条件符合的情况下提供用于接收参数值的图形用户界面(GUI)控制。 
运行时间参数的指定 
运行时间参数为开发人员提供一种机制,以在图形执行时间(即运行时间)基于外部输入修改图形的状态。在优选实施例中,这些外部值由用户直接输入提供数值。然而,这些外部值还可以来自多个不同源,包括环境变量和命令行参数。GDE 102产生正确的代码以处理所有这些情形,以及在直接从GDE执行图形时向开发人员提示测试值。利用运行时间参数,例如,开发人员可以明确表示通过环境变量而为输入文件路径提供特定名称;该环境变量随后成为图形界面的已知部分。因此,对这些参数就存在有定义明确的界面。这里不需要,例如,读取所产生的shell script指令并搜索该shell script指令,用于引用环境变量和命令行自变量(argument),以发现控制特定图形执行的一组参数。 
图2是具有汇总组件202和分类组件204的典型图形200的框图,该汇总组件202和分类组件204具有指定的运行时间参数。所述运行时间参数(分类组件204的关键字和汇总组件202的规则)将在用于输入的界面206中提供给用户。以下段落描述如何指定运行时间参数,以及创建用于提供提示用户输入的运行时间参数的组合用户界面。 
运行时间参数可以以多种方式被指定或定义。一种方式是通过利用在GDE 102中显示的允许时间参数网格进行指定或定义。图3是表示与图形相关联的运行时间参数网格300的图形对话框的一个实施例图。通过在适当字段中的简单填写,可以创建新的运行时间参数。与每一个运行时间参数相关联的对象被创建在库104中,并连接到相关的使用该参数的所有图形组件。例如,如果将用以图形分类组件的分类关键字定义为运行时间参数,则用以表示该分类关键字参数的对象将被存储在库104中,并连接到相关的分类组件。定义运行时间参数的可选方式就是特别标记图形组件的现有参数,并使其对其它组件是“可见的”(将其导出)。还可以使用这些方法的组合。例如,当创建组件时,开发人员可以将该组件的特定参数指定为运行时间参数。然后,该开发人员利用参数网格来设定图形的所有运行时间参数的默认值(default value)和其它特性,并定义新的运行时间参数。 
当运行图形时,参数被处理为可以从用户输入或从外部程序源获得每一 个参数(例如命令行参数或环境变量)的值。在示出的实施例中,运行时间参数网格300包括以下字段: 
名称302-该字段包含运行时间参数的名称。 
“分数_阀值(score_threshold)”是作为名称的实例。 
类型304-该字段包含运行时间参数内允许的值的类型。“整数”是作为类型的实例。在示出的实施例中所支持的类型为: 
●布尔-其值可以是真或假; 
●选择-其值是一列值中的一个; 
●校正码(collator)-关键字参数值; 
●数据集-外部数据文件名和位置; 
●日期-日期值; 
●表达式-算法、逻辑和/或条件的表达式(例如选择表达式); 
●浮点-浮点数; 
●整数-整数数字; 
●版面-并行或串行版面定义; 
●记录格式-记录描述或包含记录描述的文件; 
●串-任意字符串; 
●转换-转换描述或包含转换描述的文件。 
位置(Loc)306-该字段与记录格式和转换类型一起使用。其指定类型字段304是描述文件位置还是包含嵌入式描述。所支持的位置为: 
●嵌入式-参数包含记录或转换描述; 
●主机-参数包含对主机上文件的参考; 
●本地-参数包含对本地机上文件的参考; 
●库-参数包含对库转换或记录格式的参考。 
默认值308-该字段包含:(1)运行时间参数默认值,即如果从外部程序源没有提供其它值,此时将要使用的运行时间参数的默认值,或(2)规则或表达式,用来描述如何从用户输入得到运行时间值,或如何从用户执行图形时交互地获得信息的。在后一种情形中,如果用户没有提供输入值,则第二个默认值字段(未示出)可用来为运行时间参数提供值。对于“布尔”和“选择”类型,该字段限制用户进行有效选择。对于“版 面”类型,该字段是只读的并显示当前定义的版面定义。对于所有其它类型,该字段优选是简单的文本编辑器,用户可以输入有效字符串到该文本编辑器中。 
编辑310-敲击参数行中的编辑空间310(或图标;例如铅笔图标)将产生更高级的编辑窗,使用户可以遍历各种用于编辑默认值字段308的选项。在所示的实施例中,以下编辑器对于相关类型是可用的: 
●单线编辑-用于整数、浮点、日期和字符串类型; 
●选择对话框-用于布尔和选择类型; 
●关键字编辑器-用于校正码类型; 
●文件浏览器-用于数据集类型和没有嵌入式位置的记录格式和转换类型; 
●转换编辑器-用于具有嵌入式位置的转换类型; 
●记录格式编辑器-用于具有嵌入式位置的记录格式类型; 
●表达式编辑器-用于表达式类型; 
●版面编辑器-用于版面类型。 
上述编辑器都可以使用,除非类别字段值(如下所示)是“PL”(用于参数语言)。在此情形中,为用户提供编辑器以定义规则,该规则用于在图形执行时间得到或提示参数值。 
描述312-是自由格式字段,开发人员用它来描述运行时间参数的预期值。如果默认值包含用于询问用户输入值的规则,则在运行时间用它来作为提示。 
类别314-在图形执行时间,该字段定义图形在何处获得相关参数的值。该类别字段314所支持的值为: 
●环境-运行时间参数的值预期能在相同名称的环境变量中发现。如果环境变量未被定义,则使用默认值字段308中的值。如果需要该参数(例如导出参数),而默认值字段308为空时,则将产生运行时间错误并且停止图形的执行。 
●位置-运行时间参数的值预期处在用于调用应用的命令行的相对位置上。例如,如果运行时间参数是已定义的第三位置运行时间参数,则预期其参数值是执行程式中的第三位置命令行的自变 量。必须提供任何指定的位置参数,如果错失一个就会产生运行时间错误。 
●关键字-运行时间参数的值预期是关键字命令行参数。在所示出的实施例中,关键字参数是以下形式:-<参数名称><参数值>。关键字参数是可选择的,如果未提供关键字参数且默认值字段308为空,而且还需要对应的导出参数,仅在此时产生运行时间错误。 
●固定值-参数的运行时间值总是默认值。这对于在两个或多个运行时间参数之间共享不变的值来说是有用的。 
● PL-运行时间参数的默认值包含PL表达式,在图形执行时,其被解释为或者从其它参数得到该运行时间参数的值,或者提示用户另外输入。在本发明的任何特定实施例中的组件,其组件描述语言可以选择任何合适的程式语言,例如公开可得的面向对象的程式语言“Python”。这些程式可以在程序控制下构建元数据(类型和转换),并执行条件测试、比较、数据转换、算法和逻辑运算、字符串和列表处理、其他用户输入功能、外部程序式提供的输入和其它运行时间参数,以产生任何运行时间参数的最后值。在所示出的实施例中,已经在运行时间参数网格300上直接创建的用于引用运行时间参数的有用的习惯用法是简单地输入前面带有美元标记“$”的参数名。例如,$关键字引用的是名称为关键字的运行时间间变量。在所示出的实施例中,根据默认运行时间类别(默认运行时间类别是“环境”)的高级选项对话框中的值,新的运行时间间参数默认“字符串”类型和默认的类别。 
因为运行时间参数值可以在运行时间被确认,并且PL程式可以提供条件测试,因此可以创建“有条件的”运行时间参数。只有参数的所有条件都能够在运行时间确定时,有条件的运行时间参数才对用户输入产生提示。因此,例如,如果用户响应第一提示,该第一提示请求是否将数据集分类为“NO”,则请求分类关键字的有条件的第二提示就不需要被显示。 
因此,在设计阶段(“设计期间”),开发人员指定图形组件的特定参数为“运行时间”参数。然后将与该图形组件相关联的对象以相关 的参数数据(例如图2中参数网格300的信息类型)进行存储。 
图4是总结使用运行时间参数的程序的流程图。在运行时间期间,恢复对应于将要执行的应用的参数对象(例如从库中恢复),如步骤400。对每一个对象进行是否指示用户输入的判断,如步骤402。如果有指示,则进行是否已满足显示提示的任何条件判断,如步骤403,这可以包括对在先提示的用户输入进行赋值。如果没有指示,则使用默认值,如步骤408。可选择地,也可以不需要该参数值(例如,如果用户没有选择启动分类函数,则不需要分类关键字),从而可以忽略该参数值。否则,对用户输入产生提示,如步骤404。 
如果用户没有输入特定参数的值,如步骤406,则可以选择该参数的默认值,如步骤408。可选择地,可以给出错误条件以指示缺少用户输入。在任何情况下(假设没有因为缺少用户输入而产生错误条件),通过考虑基于其它值的输入转换、相关性和条件,确定参数的最终值,如步骤410。 
如果确定用户输入没有指示特定参数,如步骤402,则作出关于参数值是否由外部编程提供的判断,例如通过环境变量或命令行参数提供,如步骤412。如果不是,则选择该参数的默认值,如步骤414。可选择地,可以给出错误条件以指示缺少指定类型的可用输入。在任何情形下(假设没有因为缺少外部输入而出现错误条件),通过考虑基于其它参数的输入转换、相关性和条件来确定参数的最终值,如步骤410。 
一旦确定最终的参数值,则作为可选步骤,根据上述的特定条件和规则,所有的条件组件(如下所述)可以被完全移除或被流(即图形链接或边)所替换,如步骤416。一旦可操作的图形结构完成并且最终的参数值被确定,则以常规方式执行图形,如步骤418。 
测试值 
在创建和测试具有运行时间参数的图形的期间,为了支持开发人员,GDE 102的优选实施例也支持运行时间参数的测试值。当开发人员运行具有运行时间参数的图形或想要查看影响图形组件的基础代码时,GDE102显示相关的测试参数网格,在该参数网格中用户可以为一个或多个运行时间参数输入新的测试值。优选地,所用的最后一组测试值与图形一 起被记录和保存。 
对于每一个运行时间参数,开发人员在测试值列中输入预期的测试值。编辑字段可以与每一个测试值列相关联。除了在参数类型是PL时之外,该测试值字段和编辑字段与运行时间参数网格200中的默认值字段和编辑字段作用相同。 
如果PL表达式指示需以特定运行时间参数的值来提示用户,则该测试值字段和编辑行为以相关PL表达式的解释。如果该PL表达式基于其它输入而简单得出值,则在标准模式下,该运行时间参数在测试值网格中不可见。 
描述运行时间参数如何获得它们的值 
在将参数指定为运行时间参数之后,在库104中创建对应的对象。如果运行时间参数具有类别字段214的值“PL”,则参数的默认值字段308包括具有以下优选形式的prompt_for伪函数(pseudo-function):prompt_for prompt-kind [modifiers]” options... 
如上所示,prompt_for伪函数可以是用以判断是否基于在先输入来显示提示的条件表达式的部分。 
对于这些对象,用户界面用于将直接输入的运行时间参数提供给用户。在优选实施例中,是由Web界面108提供该功能。特别地,在运行时间期间,由Web界面108对每一个运行时间参数对象的每一个prompt_for伪函数进行解析(parse),以生成具有对应的用户提示的网页(例如以HTML形式)。(可选择地,这种网页可以在运行时间之前被生成并在运行时间期间被简单呈现。然而,这种网页产生运行时间的方式提供了更大的灵活性。特别是网页内容可以依赖于在先的用户输入时。)Web界面108的使用与显示这种网页并接收用户输入的常规网页浏览器相结合。 
prompt_for伪函数指示Web界面108如何提示参数值。特别地,该prompt_for伪函数,即字符串常数,指示哪种类别的用户界面(UI)元素(文本框、下拉列表等)需要被提供。该字符串的修改符(modifiers)部分,即用逗号隔开的关键字列,为各种提示提供一些共同的选项。在所示出的实施例中,在修改符字符串内的空间不是巨大的。对修改符关 键字的解释如下: 
●in place(本位)关键字表明该元素应该直接在应用的总汇级(summary level)用户界面上提供,允许在不“进入”较低级界面的情况下提供该值。如果in place未被指定,则在该总汇级界面上提供简单的“编辑”按钮,该按钮将用户带入用以提供参数值的另一个页面。 
●关键字blank ok表明用户不需要提供值;该应用将以合理的方式处理默认值。如果blank ok未被指定,则在没有提供一些值的情况下该用户无法执行该应用。 
以下是具有不同种类修改符的prompt_for调用的一些实例: 
${prompt_for“text,inplace”} 
${prompt_for“filter,in place”,$input_type} 
${prompt_for“radio,blankok,in place”,${list 1,2,3}} 
此段落的剩余部分列出各种prompt_kind(提示-类别)和它们对应的选项,并解释每一个prompt_kind如何出现在通过Web界面108产生的网页中。 
文本[大小]-提供常规的单行文本框大小的字符宽(如果大小未被提供,则其默认为浏览器针对文本框的默认大小)。 
radio(单选)选项-列表[描述-列表]-以一组单选按钮的形式提供常规的“选择一个”提示,每一个按钮对应选项-列表的每一个元素。如果提供的是描述-列表,则以对应的描述标记每一个选项;否则,以选项-列表中的对应项的字符串形式标记选项。 
Radioplus(单选+)选项-列表[描述-列表]-y与radio方式类似,但在文本框旁边提供另外的按钮,以允许用户选择不在选项-列表中的“写入”值。 
Checkbox(复选框)选项-列表[描述-列表]-以一组复选框的形式提供常规的“选择零个或多个”提示,一个按钮对应于选项-列表的每一个元素。如果提供的是描述-列表,则以对应的描述标记每一个选项;否则,以选项-列表中的对应项的字符串形式标记选项。 
Dropdown(下拉)选项-列表[描述-列表,大小]-以选项-列表中元素 的下拉列表的形式提供常规的“选择一个”提示。如果提供的是描述-列表,则以对应的描述标记每一个选项;否则,以选项-列表中对应项的字符串形式标记选项。如果提供有大小,则一次可以查看很多选项;否则,一次只能查看一个。 
Multidropdown(多个下拉)选项-列表[描述-列表,大小]-以选项-列表中元素的下拉列表形式提供常规的“选择零个或多个”提示。如果提供的是描述-列表,则以对应的描述标记每一个选项;否则,以选项-列表中对应项的字符串形式标记选项。如果提供有大小,则一次可以查看很多选项;否则,显示浏览器的默认项数。 
Key(关键字)类型-对象[大小]-提供由给定的类型-对象的字段组成的关键字(也是公知的校正码)的提示。该关键字可以具有与大小同样多的部分,默认为类型-对象中的字段数。图5是通过关键字提示产生的图形对话框500的一个实施例图。其后是用以3-输入关键字的提示的程式文本实例,其中文件/数据集/固定的用来定义在下拉框502中示出的可用关键字的内容: 
${prompt_for“key”,${dataset_type“/datasets/fixed”},3} 
在所示出的实施例中,标准的校勘(collation)顺序是递增的,但用户也可以通过检查相关的复选框504来选择关键字的递降(descending)校勘顺序。 
filter(过滤)类型-对象-提供由针对给定的类型-对象的每一个字段的条件组成的过滤表达式的提示。blank ok修改符对过滤没有影响;空白过滤得到“真”表达式。图6是通过filter提示而产生的图形对话框600的一个实施例图。与每一个表达式文本编辑框604相关的可用字段名称602由类型-对象定义。将比较值输入到文本编辑框604中,以及从对应的下拉列表控件606中选择比较运算符(例如相等、大于、小于或等于)。 
flexifilter(灵活性过滤)类型-对象-与filter提示类似,但提供由针对给定的类型-对象中每一个字段的条件组成的过滤表达式的提示,在每一个字段中从下拉列表选择每一行上的字段名称。这允许将相同字段用以多个条件(例如,字段STATE=MA或字段STATE=CA)。 
rollup(汇总)类型-对象关键[大小]-根据由给定关键字汇总的给 定类型-对象的字段,提供汇总计算的提示。该汇总可以具有与大小一样多的规则,该规则个数默认为类型-对象中的字段数。blank ok修改符对汇总没有影响;空白汇总产生仅为每一组提供关键字值的程序包,图7是通过rollup提示而产生的图形对话框700的一个实施例图。在所示出的实施例中,由下拉框702的列来定义可用的汇总计算函数(例如求和、最小值和最大值)。与每一个计算相关联的可用字段名称704由类型-对象定义。每一个汇总规则具有让用户定义预期表达式的相关文本编辑框706,用于定义(通过布尔表达式)标准的“地点”文本编辑框708,以及用于指定将要接收计算结果的字段的输出字段文本编辑框710,在该标准下源值将参与该计算。在可以明确获得的情形下,输出字段的名称不需要被指定。 
reformat(重新格式化)类型-对象[大小]-根据给定类型-对象的字段提供重新格式化计算的提示。重新格式化可以具有与大小一样多的规则,该规则个数默认为类型-对象中的字段数。图8是由该reforma提示而产生的图形对话框800的一个实施例图。在所示出的实施例中,reforma提示包括用于简单复制输入字段至同名(like-named)输出字段的部分802(或者利用复选框控件个别选择/取消选择,或者利用选择所有或全部不选择按钮全部选择/取消选择)。第二个提示部分包括允许定义重新格式化表达式(例如total=revenue_1-revenue_2)文本编辑框804的列。每一个规则具有相关的输出字段文本编辑框806用于指定将要接收重新格式化结果的字段。 
outputspec(输出说明)-提供输出数据集说明的提示。所显示的控件包括用于提供可用的格式化选项的下拉控件和用于给输出数据集的特定实例输入名称的文本编辑框。blank ok修改符对输出数据集说明没有任何影响。 
fpath(文件路径)起点-提供文件路径的提示。该提示实质上是文本框,但在该提示旁有“浏览”按钮,该按钮将导致用于浏览文件路径的弹出窗口的出现。如果该文本框是非空白的,则将该文本框用作浏览操作的起点;如果该文本框是空白的,则使用起点参数。 
rpath(库路径)起点-提供库路径的提示。该提示实质上是文本框, 但在该提示旁有“浏览”按钮,该按钮将导致用于浏览的弹出窗口的出现。如果该文本框是非空白的,则将该文本框用作浏览操作的起点;如果该文本框是空白的,则使用起点参数。 
radiofpath(单选文件路径)选项-列表[描述-列表]-与radioplus类似,但在“写入”口(slot)中提供fpath类型的框+浏览按钮。 
radiorpath(单选库路径)选项-列表[描述-列表]-与单选+类似,但在“写入”口中提供rpath类型的框+浏览按钮。 
条件组件 
在一些实施方式中包括条件组件机制,该条件组件机制允许根据参数值和计算出的元数据来改变图形的组件结构和流。图形的每一个组件具有用以控制该组件是否在运行时间期间出现在图形中的条件。该条件可以被直接计算出来,或通过运行时间参数被间接计算出来。条件组件可被用于各种目的,例如图形的优化或专业化。出于优化目的,如果来自特定数据集的值不被使用,则应用可以省略对所述数据集的处理,从而使图形更有效地运行。出于专业化目的,应用可以根据预期的细节等级来调节多个不同输出数据集的产生,或允许执行图形的多个可选部分的一个部分。 
图9A是第一个图形的框图,其中合并组件(MergeJoin component)900从文件A和B中组合数据,并输出结果至输出文件902。图9B是第二个图形的框图,其中Rollup组件904汇集文件A的数据并输出结果至输出文件902。图9C是一个图形的框图,其中MergeJoin组件906从文件A和B中组合数据,而Rollup组件908汇集所产生的数据并输出最终结果至输出文件902。利用条件组件,这三个图形可以被组合为单一图形,该单一图形最初看起来很像图9C的图形,但其精确结构要一直等到运行时间期间才能被确定。通过设定适当条件,Rollup组件908可以被连接(流)替换,导致类似于图9A的图形的运行时间图形。类似地,通过设定适当条件,MergeJoin组件906可以被连接到文件A的连接(流)替换,从而导致类似于图9B的图形的运行时间图形。 
在所示出的实施例中,条件组件可以是定义顶点的任何图形组件(即,诸如输入/输出文件的数据集组件、诸如重新格式化或分类组件的 处理组件或其它图形,其作为子图形而被公知)。在优选实施例中,条件组件由两个特定参数控制:条件和条件解释(interpretation)。条件是布尔表达式,或是被延迟到运行时间期间才进行赋值。在所示出的实施例中,值“假”和“0”指示假条件,所有其它值(包括空白)指示真条件。条件解释参数具有两个允许的互斥值:完全移除和以流替换。 
图10是用以提供具有条件解释控件1004的条件1002的图形对话框1000的一个实施例图。条件解释控件1004允许选择完全移除解释1006或以流替换解释1008。 
完全移除:根据该解释,如果满足条件,则从图形中移除组件和其所有被连接的流(即图形链接或边)。有效的完全移除条件从图形中功能性地移除该组件和其所有被直接连接的流。完全移除条件可被用于任何组件。 
从图形中移除的条件组件可能“损坏(poison)”依赖于条件组件的存在的其它连接组件,使得这些连接组件被移除。图11是示出发生此种损坏(poisoning)情形时的图形1100的示意图。如果针对输入文件组件1102的条件的指示是移除,并且对应的条件解释是完全移除,则输入文件组件1102和其连接流两者都从图形1100中被移除。这样就会损坏分类组件1104而使其被移除,这是因为分类组件1104的输入是有要求的输入端口的,而此时不再有任何数据流连接到该输入端口。这样就会损坏汇总组件1106,使其被移除,因为汇总组件1106的输入是有要求的输入端口的,而此时不再有任何数据流连接到该输入端口。阻止此“损坏不出现”的唯一方法是连接到下游组件的可选用端口或支持(counted)端口。因此,当针对输入文件组件1102的条件的指示是移除时,整个分类-汇总图形分支1108被从图形1100中有效地移除。图11中是原始图形结构的名义上为3次输入的组合组件1110在运行时间期间变成2次输入组合组件的结果。 
在一个实施方式中,损坏的详细语义(也被公知为“隐含条件”)如下所述: 
●如果组件具有有要求的端口并且没有任何实时流连接到该需要的端口,则从图形中移除该组件和所有连接到它的流。 
●如果从图形中完全移除组件,则从该图形中移除连接到该组件端口的所有流。 
●如果以流替换组件,则从图形中移除连接到除了组件的指定输入端口和指定输出端口之外的所有端口的所有流。 
●如果有要求的索引端口没有连接任何实时流,则对于具有相同索引的每一个对应的可选用索引端口而言,任何连接到该对应端口的流均被从图形中移除。 
这些规则具有一些意外的结果。例如,由于损坏的原因,仅具有可选用端口的组件可以总不被移除。因此,如果期望移除该组件的话,必须明确执行。 
图12是总结包括完全移除条件组件的图形的运行时间准备程序的流程图。如果条件解释是完全移除而并未满足该条件,如步骤1200,则不从图形中移除该条件性的组件(COMPONENT),如步骤1202。如果满足该条件,如步骤1200,则该条件性组件连同连接到该组件的所有流,如步骤1204,均从该图形中被移除。然后,根据上述规则,从图形中移除所有“被损坏的”组件和流,如步骤1206。 
以流替换:根据此解释,如果满足条件,则用流(即图形的边)来替换该组件。以流替换条件解释需要附加的信息。参考图10,当从图形中移除组件时,用户指定输入端口1010(或支持端口群)和输出端口1012(或支持端口群)以通过它们进行连接。通过默认,如果这里确实有一个有要求的输入端口或支持端口,和需要的输出端口或支持端口,则这些就是指定的流经(flow-through)连接端口(分别归类为指定输入端口和指定输出端口)。其中,所谓有要求的端口就是至少要求一个被连接的流的端口。 
图13是针对本发明特定实施例而总结包括以流替换条件组件的图形的运行时间准备程序的流程图。由于在所述实施例中一些组件依赖于某些可用的输入和输出(依据的是在CO>OPERATING SYSTEM中可用的组件),因此将多个规则应用到该实施方式中并使用以流替换条件: 
●如果条件解释是以流替换而该条件并未满足,如步骤1300,则不从图形中移除该条件组件,如步骤1302。 
●仅在确实存在有连接到组件的指定输入端口的一个实时的直流,和连接到组件的指定输出端口的一个实时的直流时,具有指定输入端口和指定输出端口的组件才可以被流替换(“实时的”流是指在运行时间期间未被移除的流),如步骤1304。如果这样的话,则从该图形移除该组件自身,而连接到该组件的指定输入端口的实时的直流和连接到该组件的指定输出端口的实时的直流则被互相连接,如步骤1306。将直接连接到已被移除的组件的其它端口(即除了特别指定的输入端口和输出端口之外的任何端口)的任何其它流从该图形中移除。如上所述步骤1308,移除连接到已被移除的组件的任何“被损坏的”流和组件。 
●对于具有以流替换条件的组件,如果其具有连接到多于一个的支持输入群中的指定输入端口的实时流,如步骤1310,则不从图形中移除该组件,因为需要该组件来保证图形的有效性,如步骤1312。 
对具有有要求的输入的实时输入流(fan-in flow)的组件需要进行特别处理。“实时输入流”的意思是该组件可以具有连接到有要求的输入端口的实时的输入流或全部对全部(all-to-all)流,或者该组件业可以具有连接到单独的有要求的输入端口的多于一个的实时直流。对于这些组件而言,对以流替换条件的解释应该是用集合所有实时输入流的集合组件来替换该条件性组件,如步骤1314。然后,如上所述,如步骤1316,移除连接到已被替换的组件的任何“被损坏的”流和组件。 
元数据传送方案 
可以通过例如图形开发者、图形使用者或通过从图形的其它部分传送来提供图形的元数据。可以传送各种元数据,包括与数据有关的元数据或关于数据的计算,例如:端口的记录格式(例如流入或流出端口的字段顺序和记录的数据类型)、分类、压缩方法、字符集、二进制表示(大端字节(big-endian)、小端字节)、划分、该组件可能使用哪些计算资源(例如处理器、临时磁盘空间)、数据转换和该组件可能使用的存储量。图形结构的各个方案可以影响元数据的传送。以下将描述其中的两个方案。 
在组件移除之后传送 
在一些实施方式中,当在移除图形组件之后产生流时,关于定义该流中数据的元数据应该在修订的图形中如何传送,必须做出选择。元数据可以从流的任一端得到。在一些实施方式中,来自该流的上游端的元数据是优选的。 
如果该流的上游端是被移除的组件(或是已由集合组件替换的组件),则GDE 102通过“遍历”该图形的上游直到找到未被移除的组件,来寻找该流的元数据。由上游组件揭示的元数据用于定义所产生的流的数据特性。 
转换后的元数据传送 
如上所述,通过允许将与端口相关的元数据指定为一个或多个参数(包括另一个端口的元数据)的函数,元数据甚至可以在用于转换内部数据的路径上传送。例如,图23A示出计算来自数据集2302和数据集2304的数据的组合操作的图形2300。在此实例中,图形开发者在所述数据集的输出端口处提供元数据。然后将该元数据传送给“智能组合(smartjoin)”组件2306,其用于对输入数据集的记录计算组合操作。例如,元数据从输出端口2308传送到输入端口2310。然后通过“智能组合”组件2306转换该元数据并将转换后的元数据从“智能组合”组件2306的输出端口2316传送到过滤组件2318的输入端口2317。 
图23B显示了实现“智能组合”组件2306的子图形。组件2306使用关键字_字段参数,该关键字_字段参数的值表示由组合组件2350执行的组合操作的关键字字段。组件2306还将该关键字_字段参数用作包括条件分类组件2354和2356的条件。如果流入到输入端口2310的记录已经按照关键字_字段进行了分类,则分类组件2354不被调节。类似地,如果流入到输入端口2314的记录已经按照关键字_字段进行了分类,则分类组件2356不被调节。如果输入记录的任一流仍还没有按照关键字字段进行分类,则分类组件2354和2356在所述记录流入到组合组件2350之前对它们进行分类。 
为了使转换后的元数据传送通过此“智能组合”组件,图形开发者将“智能组合”组件2306的输出端口2316的元数据(例如描述字段的 元数据)定义为第一个输入端口2310的元数据输入0.元数据、第二个输入端口2314的元数据输入1.元数据和关键字字段参数关键字_字段的函数: 
输出.元数据=元数据_组合(关键字_字段,输入0.元数据,输入1.元数据) 
通过绑定函数自变量至多个值(关于适当上下文)并根据绑定结果执行函数元数据_组合,来确定输出端口元数据。在此实例中,因为端口2310和2314的元数据是未定义的,因此将所传送的元数据绑定至元数据参数输入0.元数据和输入1.元数据。用户为输出端口2308提供元数据,输出端口2308为从端口2308流到“智能组合”组件2306的输入端口2310的记录指定字段“A”和“B”。用户还为输出端口2312提供元数据,输出端口2312为从端口2312流到“智能组合”组件2306的输入端口2314的记录指定字段“A”和“C”。此用户提供的元数据传送至端口2310和2314。组合操作的关键字字段是字段A,从而将“形式参数”关键字字段绑定至值“A”。 
通过首先确定关键字_字段参数的值是否是输入0.元数据和输入1.元数据指定的字段集的项,函数元数据_组合确定输出元数据。如果是,则该输出元数据是两个字段集的并集。如果不是,则输出元数据表示空字段集。 
在该元数据传送到“智能组合”组件2306的输入端口(或另外例如由用户所提供)之后,“智能组合”组件2306的输出端口的转换后的元数据包括字段A、B和C。然后可将转换后的元数据传送到其它组件。在该实例中,转换后的元数据传送到过滤组件2318。 
不管是用户提供的或是在端口之间传送的元数据都能被显示给用户。例如,用户可以利用输入装置(例如鼠标)来选择查看元数据值的组件部分。还可以响应这种用户选择来触发元数据传送。 
示例性元数据传送进程 
图24示出了示例性元数据传送进程2400的流程图。进程2400可以在例如每次图形变化时、响应用户动作时和/或仅在图形运行之前被执行。进程2400产生工作列表,如步骤2402,该工作列表具有根据多个流确定 的部分顺序而进行排序的图形中的每一组件(例如,如果存在从组件A到组件B的流,则组件A在组件B之前出现)。在流没有确定两个组件之间的唯一顺序的情况下,可以将组件标签的字母顺序用作仲裁顺序(tie-breaker)。这为该工作列表中的组件提供稳定的顺序(假设组件的标签是唯一的)。如果对图形重复传送进程2400(例如在添加新的组件之后),则新的工作列表保持先前工作列表中的组件之间的顺序相同。 
进程2400在工作列表的起点处开始,并且对于该工作列表中的每一组件,进程2400基于实现该组件的子图形的规定(例如子图形中的数据流)在该组件内内部地传送元数据(例如,从输入端口到输出端口,或从输出端口到输入端口),如步骤2404。该内部元数据传送包括在不转换数据的路径的任一端上的端口之间传送未转换的元数据。内部元数据传送还包括获得具有元数据定义的端口的元数据和/或其它端口的元数据,该元数据定义指的是图形参数,如上所述。当进程2400遇到这种元数据定义时,进程2400对任何这样的参数赋值,所述参数的值要用来获得元数据。 
在对工作列表上的组件执行内部元数据传送之后,进程2400从具有元数据的组件的每一个端口外部地传送元数据至不具有元数据的相关组件的端口,如步骤2406。将通过此外部传送获得元数据的任何组件移至工作列表的末端,如步骤2408。进程2400在工作列表上的最后组件被处理之后终止,如步骤2410。 
支持这种外部元数据传送的组件之间的一种关系是两个组件的端口之间的数据流链接(例如从输入端口到输出端口,或从输出端口到输入端口)。 
支持这种外部元数据传送的组件之间的另一种关系是一种链路,其指示一个端口的元数据也可以用于另一个端口。此种“元数据链接”不必对应于数据流链接。例如,端口可以具有连接到与任何特定端口无关的图形中元数据的元数据链接。 
组件化子图形中的运行时间参数 
在子图形被“组件化”以用作另一个图形中的组件之前,定义该组件的各种特性,例如该组件的输入和/或输出端口。对于包括具有运行时 间参数的组件的子图形,应该选择运行时间参数的提示顺序。因为图形中的组件不是必须按序排序,从而可以存在用于提示用户的多种可能的运行时间参数的全局排序。一些全局排序与关于每一个组件的原始排序不一致。这有利于产生用于提示尽可能保持每一个组件中参数排序的全局排序,同时在适当考虑相关性时重新排序。例如,组件可能将询问“whatdata would you to process?”的提示排在询问“where would you like to storethe processed data?”的提示之前。虽然可以以任一顺序提供所述提示,但期望以该顺序提供所述提示。 
因为对提示的运行时间参数进行赋值的过程中需要对未提示的运行时间参数赋值,因此根据所有运行时间参数的赋值顺序来获得提示顺序。用于确定图形的运行时间参数(包括与任何组件不相关的图形的参数)的赋值顺序的一种方法,包括基于表示参数间相关性的一个或多个有向无环图执行拓扑分类。然而,一些拓扑分类算法可能对参数进行不必要的重新排序,从而导致不想要的运行时间参数的提示顺序。 
排序实例1 
在第一个实例中,参数排序进程为两个图形组件的参数提供初始参数列表,两个组件为组件I和连接到组件I的组件II。在此实例中,参数仅具有“组件内”相关性。也就是说,组件的参数仅与同一组件中的其它参数相关。定义所述参数如下: 
组件I包括以下参数: 
x=${prompt_for“text”} 
y=x+${prompt_for“text”} 
    z=x+y+${prompt_for“text”} 
q=${prompt_for“text”} 
组件II包括以下参数: 
a=${prompt_for“text”} 
b=a+${prompt_for“text”} 
    c=${prompt_for“text”} 
上述列出的参数顺序定义了向用户提示各值的理想顺序。初始参数列表为每一个组件保持此“初始排序”。将“序数”分配给每一个参数 以指示参数在初始排序中的位置。下面的表格列出该初始排序中的参数: 
参数 序数 相关性
 x  0  
 y  1  x
 z  2  x,y
 q  3  
 a  4  
 b  5  a
 c  6  
“相关性”列表示与所列出的参数相关的其它参数。该相关性对参数赋值实施排序限制条件:在参数被另一个参数使用(例如引用)之前需要被定义。 
“通用拓扑分类”算法在每次传递时通过该列表将具有零相关性的参数传送至有序输出列表。在每次传递之后,从相关性列中移除任何被传送的参数。重复此进程,直到所有参数已被传送。输出列表中的参数顺序表示“最后排序”,以使得在其它参数已被赋值之后,与这些其它参数相关的参数被赋值。 
在该实例中,在第一次传递时,将参数x、q、a和c传送到输出列表。在第二次传递时,将参数y和b传送到输出列表。在第三次和最后一次传递时,将参数z传送到输出列表。因此,所述参数的最后排序是:x、q、a、c、y、b、z。同时此排序满足由参数相关性提出的排序限制条件,从而不必对所述参数进行重新排序。在此实例中,初始排序也满足由参数相关性提出的排序限制条件。 
满足排序限制条件的用于确定图形参数赋值顺序的其它方法遵守初始排序。例如,一些方法对参数进行排序以满足排序限制条件,根据以初始排序为基础的准则来选择排序。该准则可以包括给予保持接近初始排序的顺序(例如,基于初始排序的改变来最小化度量(metric))优先权的任何类型的准则。在一些情况下,由于根据准则,有多种排序可能 同样满足给定的准则,所以可能没有唯一的“最优”排序。 
遵守初始排序的方法实例是“改进的拓扑分类”方法。在此方法中,基于初始排序的准则是在与任何未被传送的参数不相关的前述参数被传送之前,最小化从初始列表传送的参数数目。换句话说,在传送具有零相关性的下一个参数之前,该“改进的拓扑分类”从相关性列中移除所传送的参数。对于上述实例而言,该“改进的拓扑分类”方法产生与初始排序相同的最终排序:x、y、z、q、a、b、c。 
遵守初始排序的改进的拓扑分类进程 
以下对两个示例性“改进的拓扑分类”进程给出伪代码,两个所述“改进的拓扑分类”进程都遵守由每个参数的分配序数所确定的初始排序。第二个进程包括优选法以改善一些情形的时间效率。所述进程处理从参数的输入数据产生的数据结构。 
假设有N个待排序的参数,则输入数据包括由唯一参数名、与所命名的参数相关的一组参数(称作为“相关集”)和组成的N个三元组列表,其中任选属性数据对象用于存储与所命名的参数相关的信息。 
与该输入数据相关的是一个或多个有向无环图,所述有向无环图表示参数之间的相关性,称作为“相关图”。每个唯一参数名对应于相关图中的节点,有关的相关集对应于从其它节点到该节点的一组链接。所以链接从第一参数的第一节点指向与该第一参数相关的第二参数的第二节点。可选择地,链接方向与参数相关性之间的对应关系可以相反。 
输出数据结构result_list包括来自重新排序的输入数据的N个参数列表(如果必要的话),从而在参数用于赋值另一个参数之前为该参数赋值,同时给出保持接近初始顺序的顺序优先权。为了产生输出数据结构result_list,通过从工作数据结构param_list到输出数据结构result_list每次传送一个参数,所述进程“移除”参数。在所有参数被移除之后完成该输出数据结构。 
第一个“改进的拓扑分类”进程包括两个阶段。在第一个阶段中,该进程基于输入数据来构建工作数据结构,其中所述输入数据用于产生所分类的输出数据结构。在第二个阶段中,该进程根据由这些工作数据结构表示的相关性限制条件反复排序并移除参数。 
该进程在第一个阶段中构建的一些工作数据结构是字典,所述字典是基于散列法的数据结构。字典中的项可以在O(logN)时被有效地存取。以下的示例性数据结构在第一个阶段中被构建: 
parm_list(参数列表)[索引(index)]:未被移除的参数名有序的列表,由多个index来编索引(其中index=0对应该列表中的第一项)。此数据结构是“动态的”(即,在进程执行期间发生改变)。该列表由位置来编索引,使得如果从该列表的中间移除一项,则位于所移除的项之后的项的索引相应地移动。 
n_dependencies_dict(n_相关性字典)[名称(name)]:由参数名称(name)作为关键字(keyed)的字典,该字典的条目包含与关键字参数相关的参数个数。此字典是动态的。 
dependers_dict(相关字典)[name]:由参数名称(name)作为关键字的字典,该字典的条目是字典(也由参数名称作为关键字),表示与该关键字参数相关的参数组。此字典是“静态的”(即,在进程执行期间不发生改变)。 
order_dict(排序字典)[name]:由参数名称(name)作为关键字的字典,其存储序数位置,初始排序中的参数的整数范围从0至N-1。此字典是静态的。 
attribute_dict(属性字典)[name]:由参数名称(name)作为关键字的字典,其存储关键字参数的任选属性数据对象。此字典是静态的。 
result_list(结果列表)[index]:表示进程输出的参数名称和属性的有序列表,其由数字index(其中index=0对应于该列表中的第一项)来编索引。此数据结构初始为空。此数据结构是动态的。 
出于分析所述进程的时间效率的目的,相关图的平均“度”(或从节点的链接数)假设是z。构建这些数据结构花费O(N)时间,除了n_dependencies_dict和dependers_dict花费O(N*z)时间。 
在第二个阶段,该进程根据分类准则by_n_deps_and_order对param_list数据结构中的参数进行分类,该分类准则首先通过与所述参数相关的未被移除的参数个数(即,通过所述参数的值n_dependencies_dict)从最低至最高对所述参数进行排序,然后通过所述参数的序数(即,通 过它们的值order_dict)从最低至最高对所述参数进行排序。然后该进程在已分类的param_list中消除第一参数。此参数的值n_dependencies_dict应该是零。(如果在已分类的param_list中的第一参数的值n_dependencies_dict不是零,则标记错误)。 
为了消除参数,进程将该参数添加到result_list(连同任何相应的属性)并将所有相关者(即dependers_dict中的参数)的相关计数(即,n_dependencies_dict的值)减1。最后,从parm_list中删除该参数。重复此分类和消除所产生的第一参数的步骤,直到所有参数被消除。 
以下是eliminate(消除)程序的伪代码定义: 
def eliminate(list,index): 
  result_list.append((list[index],attribute_dict[list[index]])) 
   for depender in dependers_dict[list[index]]: 
n_dependencies_dict[depender]=n_dependencies_dict[depender]-1 
   delete list[index] 
eliminate程序的自变量是list(其值是例如param_list)和index。函数result_list.append将在位置index处指示的list项连同其相关属性添加到result_list。然后,该程序递减每个参数depender的值n_dependencies_dict,该参数depender是dependers_dict数据结构的组员,由正被消除的参数作为关键字。然后,该程序从list中删除该参数。eliminate程序的运行时间是O(zlogN)。 
以下是第一个“改进的拓扑分类”进程的分类/消除循环的伪代码: 
while parm_list is not empty: 
  parm_list.sort(by_n_deps_and_order) 
  while       parm_list       is       not       empty       and 
n_dependencies_dict[parm_list[0]]==0; 
  eliminate(parm_list,0) 
  parm_list.sort(by_n_deps_and_order) 
  if parm_list is not empty and n_dependencies_dict[parm_list[0]]>0; 
  delete parm_list[0] 
  <record a circularity error and continue> 
该进程首先利用函数parm_list.sort(by_n_deps_and_order)执行param_list的初始分类,该函数根据上述的分类准则by_n_deps_and_order对param_list中的参数进行排序。然后该进程执行eliminate程序,随后是对param_list进行另一分类,直到param_list为空。该进程进行检查以确保param_list中的第一个参数(index=0)的相关性数字为零。如果不为零,则该进程移除该参数,记录圆度误差并继续。分类需要O(NlogN)时间并且循环范围为N,从而估测循环的总运行时间是O(N2logN)。 
第二个“改进的拓扑分类”进程利用了相关图稀疏情形的优点,使得z<<N。在一个初始分类之后,该进程可以保持与其它任何参数不相关的参数列表candidates()的分类。这减少了预期的运行时间,如下所述。 
以下是第二个“修正的拓扑分类”进程的伪代码: 
parm_list.sort(by_n_deps_and_order) 
while parm_list is not empty: 
  #部分1 
  candidates=[] 
  for p in parm_list: 
  if n_dependencies_dict[p]==0: 
     candidates.append(p) 
  #部分2 
  while       candidates       is       not       empty       and 
n_dependencies_dict[candidates[0]]==0: 
    this_parm=candidates[0] 
    eliminate(candidates,0) 
    idx=parm_list.index(this_parm) 
    delete parm_list[idx] 
    tmp=get_new(this_parm) 
    candidates=merge(candidates,tmp) 
  #部分3 
  ifparm_list is not empty: 
    parm_list.sort(by_n_deps_and_order) 
   if n_dependencies_dict[parm_list[0]]>0: 
       delete parm_list[0] 
    <record a circularity error and continue> 
首先,该进程利用函数parm_list.sort(by_n_deps_and_order)对param_list执行初始分类,该函数根据上述分类准则by_n_deps_and_order对param_list中的参数进行排序。然后该进程执行具有三个部分(标记为“#部分1”、“#部分2”和“#部分3”)的循环。 
在部分1中,该进程构建candidates列表,candidates列表仅包含具有零相关性的参数。该进程浏览parm_list中的所有参数,将所述参数添加到candidates并保持它们的相对顺序。 
在部分2中,该进程执行循环,在所述循环中消除candidates的参数并将新的参数并入到candidates中。将candidates中保存为this_parm的第一参数从candidates中消除并将其从param_list中删除。函数get_new(this_parm)返回参数名称列表,所述参数是新近消除的this_parm的dependers_dict的组员,并具有所剩下的零相关性。然后根据by_n_deps_and_order对这些参数分类(确保根据它们各自的序数进行排序)并将这些参数并入到candidates中,其中这些参数表示它们的最后相关性已被移除的参数。因此,candidates列表保留根据序数分类的零相关性参数的列表。 
如果存在例如由于两个参数相互进行定义而引起的“圆度误差”,则仅输入部分3。在此情形下,进程再次对parm_list进行分类,并且如果parm_list中的第一参数具有非零相关性,则将其删除并且以部分1重复循环。 
假设没有圆度误差,则仅在开始时对N-参数列表parm_list进行分类,结果排序时间为O(NlogN)。此后,仅对新近产生的零相关性参数的较小列表进行分类,该列表是由于消除candidates列表顶端的参数而产生的。该列表的大小小于z(平均来说),结果排序时间为O(zlogz),合并时间为O(z)。所以循环的一次重复时间是O(zlogz),总时间是O(Nzlogz+NlogN)。对于z不随着N增加而增大的情形,此时间实际上是O(NlogN)。 
分类实例2 
在另一个实例中,参数分类进程(例如第一个或第二个“改进的拓扑分类”进程)确定图形2500的运行时间参数的初始列表,其中如图25A所示,图形2500具有图形组件2502、2504和2506。图形2500还具有与输入数据集2510的输出端口2508和输出数据集2514的输入端口2512相关的运行时间参数。在此实例中,参数具有“组件内”和“组件间”相关性。即,组件的参数与同一组件中的参数和不同组件中的参数相关。在此实例中,由于组件之间的流使得与一些参数相关的元数据进行传送,从而产生组件间相关性。 
在图25A中,由从第一参数或端口到第二参数或端口的虚线箭头表示相关性。指向端口的箭头表示链接参数值从该端口传送至下游端口。从端口指出的箭头表示值从上游端口传送至链接参数。从第一参数指向第二参数的箭头表示第二参数的值与第一参数的值相关(例如引用)。 
图25B示出相关图2550,其表示基于图形2500在参数p0、p1、p2、p4、p5和p6之间的排序限制条件。图25C示出相关图2552,其表示基于图形2500在参数p3、p7、p8和p9之间的排序限制条件。 
根据图形2500中元素的放置顺序,该参数分类进程为各图形单元的十个参数p0、p2,...,p9中的每一个分配序数。在图25A中,添加到图形2500的第一个图形单元(例如通过用户使用GDE 102添加)是具有参数p0、p1和p2的组件2502。所添加的第二个单元是具有参数p3、p4和p5的组件2506。所添加的第三个单元是具有参数p6的数据集2510。所添加的第四个单元是具有参数p7的数据集2514。所添加的最后一个单元是不具有运行时间参数的数据集2516。下面的表格列出由所分配的序数定义的初始排序中的参数。 
    参数     序数     相关性
    p0     0  
    p1     1     p0,p6
    p2     2     p6
    p3     3     p8
[0299] 
    p4     4     p1
    p5     5     p1
    p6     6  
    p7     7     p3
    p8     8  
    p9     9     p8
在各处理阶段的param_list和result_list中的参数的下列列表对应于上述的第一个“改进的拓扑分类”进程。示出在每一阶段根据分类准则by_n_deps_and对param_list进行的分类。 
param_list                       result_list 
p0 p6 p8 p2 p3 p4 p5 p7 p9 p1    空 
p6 p8 p1 p2 p3 p4 p5 p7 p9       p0 
p1 p2 p8 p3 p4 p5 p7 p9          p0 p6 
p2 p4 p5 p8 p3 p7 p9             p0 p6 p1 
p4 p5 p8 p3 p7 p9                p0 p6 p1 p2 
p5 p8 p3 p7 p9                   p0 p6 p1 p2 p4 
p8 p3 p7 p9                      p0 p6 p1 p2 p4 p5 
p3 p9 p7                         p0 p6 p1 p2 p4 p5 p8 
p7 p9                            p0 p6 p1 p2 p4 p5 p8 p3 
p9                               p0 p6 p1 p2 p4 p5 p8 p3 p7 
空                               p0 p6 p1 p2 p4 p5 p8 p3 p7 p9 
在各处理阶段的candidates和result_list中的参数的下列列表对应于上述第二个“改进的拓扑分类”进程。由于在每个阶段参数保持相同的顺序,所以在各阶段之间不必对candidates进行分类。 
candidates    result_list 
p0 p6 p8      空 
p6 p8 p0 
p1 p2 p8 p0   p6 
p2 p4 p5 p8   p0 p6 p1 
p4 p5 p8      p0 p6 p1 p2 
p5 p8           p0 p6 p1 p2 p4 
p8              p0 p6 p1 p2 p4 p5 
p3 p9           p0 p6 p1 p2 p4 p5 p8 
p7 p9           p0 p6 p1 p2 p4 p5 p8 p3 
p9              p0 p6 p1 p2 p4 p5 p8 p3 p7 
空              p0 p6 p1 p2 p4 p5 p8 p3 p7 p9 
因此,参照图26,“改进的拓扑分类”进程2600视为输入预期的第一排序2602和参数的排序限制条件2604(例如相关图2550和2552),其中在预期的第一排序中提示用户运行时间参数的值。进程2600根据预期的第一排序2602提供满足排序限制条件的参数组的新排序2606。 
典型用法 
通常,用户坐在Web界面108的前面并在库104中寻找该用户想要运行的应用图形。通过浏览与该应用图形相关的所有对象,Web界面108产生网页形式,其允许用户指定应用的运行时间参数值。一旦指定了所有的运行时间参数,则将应用与参数设定的组合集合为作业,该作业被调度为由执行程序110执行。当到达运行该作业的时间时,执行程序110以公知方式排队在并行操作系统106下执行的应用。并行操作系统106收集跟踪信息和作业状态,并在库104中存储该信息,从而使用户和管理员可以跟踪作业的进展和性能。 
实例 
图14是表示不具有运行时间参数的汇总应用的图形1400的示意图。该图形计算每一种帐户(account)的数目,并将结果写入输出文件。由创建图形的开发者确定此应用的每一个方面:输入文件组件1402的名称、输入数据格式、HashRollup组件1404中用于汇总数据的关键字和转换规则、输出格式和输出文件组件1406的名称。如所定义的,用户只能精确执行此图形。 
图15是表示图14的汇总应用的运行时间参数化版本的图形1500的示意图。该应用的数据流图结构与无运行时间参数化版本非常类似,但该应用更为灵活。终端用户通过运行时间参数可以指定所提取的输入数据集1502的名称(被保存的对象,从其可以获得输入文件名和格式), 指定HashRollup组件1504的汇总关键字和汇总规则,以及指定输出文件组件1506的名称。 
图16是表示图15的示例性应用的运行时间参数网格1600的图形对话框的一个实施例图。该图是图2所示的参数网格版本的填充。需要注意,如上所述,利用prompt_for伪函数定义了多个默认参数,从而需要用户通过Web界面108进行输入界面。虽然此图形的外观与无运行时间参数化应用图形稍有不同,但一个或多个参数网格(或其它适合的控件)使得开发者能够完全跟踪控制图形执行的所有参数。 
图17A是表示由Web界面108根据图16的参数网格1600中的信息产生的表格1700的图形对话框的一个实施例图。在此实例中,表格1700给出用户输入的四个运行时间参数:输入数据集库路径1702、汇总关键字1704、汇总规则1706和输出路径1708。图17B是用户用参数值填充图17A的表格1700的示意图。利用直接条目和/或与运行时间参数1702-1708相关的编辑或浏览器控制按钮,用户提供用于执行相关图形的相应参数值1710-1716。 
图18是表示运行时间参数化汇总和组合应用的图形1800的示意图。图19是表示关于图18的示例性应用的运行时间参数网格1900的图形对话框的一个实施例图。此处,对该应用的一些方面进行了参数化,但包括组合关键字和输入数据集的大部分方面保持固定。图20是表示由Web界面108根据图19的参数网格1900中的信息产生的表格2000的图形对话框的一个实施例图。需要注意,因为在显示项层表格时输入到汇总组件的输入类型是已知的,因此能够以in-place提示汇总规则2002。 
图21是表示运行时间参数化汇总-组合-分类应用的图形2100的示意图。虽然类似于图18的实例,但在图形2100中添加了条件分类组件2102。图22是表示关于图21所示的示例性应用的运行时间参数网格2200的图形对话框的一个实施例图。sort_key运行时间参数2202仅在用户表示想要分类时才进行提示。为了获得此效果,开发者将prompt_for伪函数放入到if条件测试内,所述if条件测试用于sort_key运行时间参数2202的默认值2204。该if条件测试引用第二个运行时间参数dp_sort 2206定义do_sort参数2206的默认值字段2208和描述字段2210,以产生单选 (radio)提示,该提示询问用户对于文本提示“Should the data be sorted?”的回答是真/假或是/否。如果do_sort参数2206的值是“真”,则将包括分类组件2102,作为运行时的图形部分。否则,根据分类组件2102的特定条件的说明,将从图形中完全移除分类组件2102或用流替换。 
程式实施方式 
虽然GDE 102促进了参数化图形的构建,但有时存在有可以提供基于表格界面的无图形程序。利用应用级PL和库104,可以参数化任意的shell script指令。例如,可以将应用的描述写入具有类似以下结构的文件中: 
application AppName( 
description(“One-line Description”), 
comment(“Longer description”), 
parameter ParmName1( 
string,kind(keyword),required, 
description(“Short prompt for top-level form”), 
comment(“Longer prompt for out-of-line form”), 
default(${prompt_for...}) 
), 
parameter ParmName2( 
type,kind(derived), 
de fault(PL-expression) 
), 
...more parameters... 
script(=”scriptname.ksh”) 
通用计算机实施方式 
本发明可以在硬件或软件中实现,或者在二者的组合(例如可编程的逻辑阵列)中实现。除非特别声明,否则作为本发明的部分算法不与任何特定的计算机或其它装置内在相关。特别地,根据本文的教导,可 以使用各种通用机器及写入其中的程序来执行所要求的方法步骤,或为了更方便实施,还可以构建更多专用装置来执行该方法步骤。然而,本发明优选以在一个或多个可编程的计算机系统上执行的一个或多个计算机程序来实现,每一个可编程的计算机系统包括至少一个处理器、至少一个数据存储系统(包括易失性存储器和非易失性存储器和/或存储元件)、至少一个输入设备或端口以及至少一个输出设备或端口。在处理器上执行程序代码以实现本文描述的功能。 
所述程序中的每一个均可以用任何预期的计算机语言(包括机器语言、汇编语言或高级程序语言、逻辑语言或面向对象的编程语言)来实现,以便与计算机系统进行通信。在任何情形下,该语言都可以是编译语言或解释语言。 
优选地,将所述计算机程序中的每一个存储在可由通用或专用可编程计算机读取的存储介质或设备(例如固态介质、磁介质或光学介质)上,在计算机系统读取存储介质或设备以执行本文描述的程序时,用于配置并操作计算机。本发明的系统还可以实现为可由计算机读取的存储介质,该可读取的存储介质配置有计算机程序,如此配置的存储介质使得计算机系统能够以特定和预定的方式操作,以实现本文描述的功能。 
此处描述了本发明的多个实施例。然而,需要理解的是可以对本发明做出各种改进而不会脱离其精神和范围。例如,可以以不同的顺序执行上述多个功能步骤,而不会对总体程序产生实质影响。例如,可以以相反的顺序执行图4中的步骤402和412。因此,还有其它实施例也落在权利要求的保护范围内。 

Claims (39)

1.一种与基于图形计算相关的元数据的确定方法,包括:
产生包括至少第一组件和第二组件的图形中的组件的部分顺序,其中根据所述部分顺序按顺序确定用于所述图形的组件的端口的元数据;
函数转换与所述第一组件的第一部分(2310)相关的元数据,以产生与所述第一组件的第二部分(2316)相关的转换后的元数据;
将所述转换后的元数据从所述第一组件的第二部分传送至所述第二组件的第三部分;以及
在将转换后的元数据传送至所述图形的所述第二组件的第三部分后,将所述第二组件移动至所述部分顺序的末端。
2.如权利要求1所述的方法,其中所述第二组件的第三部分通过所述图形的两个相互连接的组件的端口之间的数据流链接与所述第一组件的第二部分相关。
3.如权利要求1所述的方法,其中所述第一组件的第一部分通过所述图形的组件的两个端口之间的内部数据流与所述第一组件的第二部分相关。
4.如权利要求1所述的方法,其中所述第二组件的第三部分通过链接与所述第一组件的第二部分相关,其中所述链接表示与第二部分相关的元数据也应该与所述第三部分相关。
5.如权利要求1所述的方法,其中:
所述第一部分包括所述第一组件的第一端口,以及
所述第二部分包括所述第一组件的第二端口。
6.如权利要求5所述的方法,其中所述函数转换包括元数据定义,其中所述元数据定义包括对与所述第一端口相关的元数据的至少一个引用。
7.如权利要求6所述的方法,其中所述元数据定义将用于所述第二端口的元数据定义为所引用的元数据的函数。
8.如权利要求5所述的方法,其中所述第一端口是输入端口,所述第二端口是输出端口。
9.如权利要求1所述的方法,其中由用户提供被函数转换的元数据。
10.如权利要求1所述的方法,其中从所述图形的第四部分传送被函数转换的元数据至所述第一组件的第一部分。
11.如权利要求1所述的方法,还包括响应于图形连接方式的改变来传送所述转换后的元数据。
12.如权利要求1所述的方法,还包括响应于用户行为传送所述转换后的元数据。
13.如权利要求1所述的方法,还包括:
接收来自用户的请求;和
响应于该请求向用户显示与图形单元相关的元数据。
14.如权利要求13所述的方法,其中所述来自用户的请求包括来自用户的输入,该输入用于选择将要显示相关元数据的图形单元。
15.如权利要求14所述的方法,其中所述来自用户的输入包括在预定量时间内在所选择的图形单元的图形表示附近定位屏幕上的指针。
16.如权利要求13所述的方法,其中所显示的元数据包括从另一图形单元传送的元数据。
17.如权利要求13所述的方法,其中所显示的元数据在运行所述图形之前被显示。
18.如权利要求1所述的方法,其中为所述图形的第二部分产生的所述转换后的元数据指定流经所述第一组件的第二部分和所述第二组件的第三部分之间的数据流链接的数据元素的至少一个特性。
19.如权利要求1所述的方法,其中流经所述第一组件的第二部分和所述第二组件的第三部分之间的数据流链接的数据元素包括记录,并且所述转换后的元数据描述下列至少一种数据:所述记录的字段顺序,以及对应于所述记录中的值的数据类型。
20.一种与基于图形计算相关的元数据的确定系统,该系统包括:
用于产生包括至少第一组件和第二组件的图形中的组件的部分顺序的装置,其中根据所述部分顺序按顺序确定用于所述图形的组件的端口的元数据;
用于函数转换与所述第一组件的第一部分(2310)相关的元数据的装置,以产生与所述第一组件的第二部分(2316)相关的转换后的元数据;
用于将转换后的元数据从所述第一组件的第二部分传送至所述第二组件的第三部分的装置;以及
用于在将转换后的元数据传送至所述图形的所述第二组件的第三部分后,将所述第二组件移动至所述部分顺序的末端的装置。
21.一种用于确定与基于图形计算相关的元数据的计算系统,包括:
用于存储与基于图形计算相关的元数据的数据存储系统;以及
至少一个处理器,耦接至所述数据存储系统且配置成处理与基于图形计算相关的元数据,所述处理包括:
产生包括至少第一组件和第二组件的所述图形中的组件的部分顺序,其中根据所述部分顺序按顺序确定用于所述图形的组件的端口的元数据;
函数转换与所述第一组件的第一部分(2310)相关的元数据,以产生与所述第一组件的第二部分(2316)相关的转换后的元数据;
将所述转换后的元数据从所述第一组件的第二部分传送至所述第二组件的第三部分;以及
在将转换后的元数据传送至所述图形的所述第二组件的第三部分后,将所述第二组件移动至所述部分顺序的末端。
22.如权利要求21所述的系统,其中所述第二组件的第三部分通过所述图形的两个相互连接的组件的端口之间的数据流链接与所述第一组件的第二部分相关。
23.如权利要求21所述的系统,其中所述第一组件的第一部分通过所述图形的组件的两个端口之间的内部数据流与所述第一组件的第二部分相关。
24.如权利要求21所述的系统,其中所述第二组件的第三部分通过链接与所述第一组件的第二部分相关,其中所述链接表示与第二部分相关的元数据也应该与所述第三部分相关。
25.如权利要求21所述的系统,其中:
所述第一部分包括所述第一组件的第一端口,以及
所述第二部分包括所述第一组件的第二端口。
26.如权利要求25所述的系统,其中所述函数转换包括元数据定义,其中所述元数据定义包括对与所述第一端口相关的元数据的至少一个引用。
27.如权利要求26所述的系统,其中所述元数据定义将用于所述第二端口的元数据定义为所引用的元数据的函数。
28.如权利要求25所述的系统,其中所述第一端口是输入端口,所述第二端口是输出端口。
29.如权利要求21所述的系统,其中由用户提供被函数转换的元数据。
30.如权利要求21所述的系统,其中从所述图形的第四部分传送被函数转换的元数据至所述第一组件的第一部分。
31.如权利要求21所述的系统,还包括响应于图形连接方式的改变来传送所述转换后的元数据。
32.如权利要求21所述的系统,还包括响应于用户行为传送所述转换后的元数据。
33.如权利要求21所述的系统,还包括:
接收来自用户的请求;和
响应于该请求向用户显示与图形单元相关的元数据。
34.如权利要求33所述的系统,其中所述来自用户的请求包括来自用户的输入,该输入用于选择将要显示相关元数据的图形单元。
35.如权利要求34所述的系统,其中所述来自用户的输入包括在预定量时间内在所选择的图形单元的图形表示附近定位屏幕上的指针。
36.如权利要求33所述的系统,其中所显示的元数据包括从另一图形单元传送的元数据。
37.如权利要求33所述的系统,其中所显示的元数据在运行所述图形之前被显示。
38.如权利要求21所述的系统,其中为所述图形的第二部分产生的所述转换后的元数据指定流经所述第一组件的第二部分和所述第二组件的第三部分之间的数据流链接的数据元素的至少一个特性。
39.如权利要求21所述的系统,其中流经所述第一组件的第二部分和所述第二组件的第三部分之间的数据流链接的数据元素包括记录,并且所述转换后的元数据描述下列至少一种数据:所述记录的字段顺序,以及对应于所述记录中的值的数据类型。
CN2006800233734A 2005-06-27 2006-06-27 基于图形计算的元数据管理 Active CN101208695B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/167,902 2005-06-27
US11/167,902 US7877350B2 (en) 2005-06-27 2005-06-27 Managing metadata for graph-based computations
PCT/US2006/024933 WO2007002647A2 (en) 2005-06-27 2006-06-27 Managing metadata for graph-based computations

Publications (2)

Publication Number Publication Date
CN101208695A CN101208695A (zh) 2008-06-25
CN101208695B true CN101208695B (zh) 2013-04-24

Family

ID=37568863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800233734A Active CN101208695B (zh) 2005-06-27 2006-06-27 基于图形计算的元数据管理

Country Status (8)

Country Link
US (3) US7877350B2 (zh)
EP (1) EP1899873A4 (zh)
JP (1) JP5297802B2 (zh)
KR (2) KR101278078B1 (zh)
CN (1) CN101208695B (zh)
AU (1) AU2006261749B2 (zh)
CA (1) CA2610989C (zh)
WO (1) WO2007002647A2 (zh)

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
AU2007286155B2 (en) 2006-08-10 2013-12-12 Ab Initio Technology Llc. Distributing services in graph-based computations
US8069129B2 (en) * 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
EP2174222A4 (en) * 2007-07-26 2010-10-27 Ab Initio Technology Llc TRANSACTIONAL GRAPH-BASED CALCULATION WITH ERROR HANDLING
KR101552188B1 (ko) * 2007-09-07 2015-09-10 삼성전자 주식회사 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치
JP5331203B2 (ja) * 2008-06-30 2013-10-30 アビニシオ テクノロジー エルエルシー グラフベース計算におけるデータ記録
AU2009322437A1 (en) 2008-12-02 2010-06-10 Ab Initio Technology Llc Visualizing relationships between data elements and graphical representations of data element attributes
AU2009322602B2 (en) 2008-12-02 2015-06-25 Ab Initio Technology Llc Mapping instances of a dataset within a data management system
WO2010088523A1 (en) * 2009-01-30 2010-08-05 Ab Initio Technology Llc Processing data using vector fields
CN102317911B (zh) 2009-02-13 2016-04-06 起元技术有限责任公司 管理任务执行
KR101631978B1 (ko) * 2009-09-16 2016-06-20 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
US8667329B2 (en) 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
CA2782414C (en) * 2009-12-14 2021-08-03 Ab Initio Technology Llc Specifying user interface elements
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
KR20150042297A (ko) 2010-06-15 2015-04-20 아브 이니티오 테크놀로지 엘엘시 동적으로 로딩하는 그래프 기반 계산
US9396283B2 (en) 2010-10-22 2016-07-19 Daniel Paul Miranker System for accessing a relational database using semantic queries
US8510288B2 (en) * 2010-10-22 2013-08-13 Microsoft Corporation Applying analytic patterns to data
WO2012061109A1 (en) * 2010-10-25 2012-05-10 Ab Initio Technology Llc Managing data set objects in a dataflow graph that represents a computer program
CA2824282C (en) 2011-01-14 2019-05-21 Ab Initio Technology Llc Managing changes to collections of data
US9003084B2 (en) * 2011-02-18 2015-04-07 Ab Initio Technology Llc Sorting
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US9038033B1 (en) * 2011-12-09 2015-05-19 Sencha, Inc. Techniques and mechanisms for web application minification
JP5971334B2 (ja) * 2012-04-18 2016-08-17 日本電気株式会社 タスク配置装置、タスク配置方法、および、コンピュータ・プログラム
JP6338579B2 (ja) 2012-07-24 2018-06-06 アビニシオ テクノロジー エルエルシー データモデルにおけるエンティティのマッピング
US9032362B2 (en) * 2012-09-10 2015-05-12 Sap Se System and method for generating high performance calculators for calculation graphs
US9852153B2 (en) 2012-09-28 2017-12-26 Ab Initio Technology Llc Graphically representing programming attributes
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
US9323748B2 (en) 2012-10-22 2016-04-26 Ab Initio Technology Llc Profiling data with location information
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9703822B2 (en) 2012-12-10 2017-07-11 Ab Initio Technology Llc System for transform generation
US9116603B2 (en) 2012-12-26 2015-08-25 Ab Initio Technology Llc Managing interactions with data having membership in multiple groupings
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
KR102349573B1 (ko) 2013-09-27 2022-01-10 아브 이니티오 테크놀로지 엘엘시 데이터에 적용되는 규칙 평가
CA2932763C (en) * 2013-12-05 2022-07-12 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
CA3092699C (en) 2013-12-06 2023-07-25 Ab Initio Technology Llc Source code translation
CA2940341A1 (en) 2014-03-14 2015-09-17 Ab Initio Technology Llc Mapping attributes of keyed entities
US9626407B2 (en) 2014-06-17 2017-04-18 Google Inc. Real-time saved-query updates for a large graph
JP6457622B2 (ja) 2014-07-18 2019-01-23 アビニシオ テクノロジー エルエルシー パラメータの集合の管理
CN104182528B (zh) * 2014-08-27 2017-07-07 广西教育学院 基于偏序模式的教育信息化课程关联模式发现方法及系统
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
US10055333B2 (en) * 2014-11-05 2018-08-21 Ab Initio Technology Llc Debugging a graph
US10176234B2 (en) * 2014-11-05 2019-01-08 Ab Initio Technology Llc Impact analysis
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
JP6463845B2 (ja) * 2015-02-11 2019-02-06 アビニシオ テクノロジー エルエルシー データ系統図のフィルタリング
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US20160246574A1 (en) * 2015-02-23 2016-08-25 Eddie Jakobitz Task sequencer
WO2016183211A1 (en) * 2015-05-12 2016-11-17 Phase Change Software Llc Machine-based normalization of machine instructions
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US10127264B1 (en) 2015-09-17 2018-11-13 Ab Initio Technology Llc Techniques for automated data analysis
CN108475189B (zh) * 2015-12-21 2021-07-09 起元技术有限责任公司 子图接口生成的方法、系统及计算机可读介质
CN105843660B (zh) * 2016-03-21 2019-04-02 同济大学 一种编译器的代码优化调度方法
USD881907S1 (en) * 2016-04-22 2020-04-21 Aetna Inc. Display screen with a graphical user interface
US10936289B2 (en) 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations
US10515085B2 (en) 2016-06-19 2019-12-24 Data.World, Inc. Consolidator platform to implement collaborative datasets via distributed computer networks
US11086896B2 (en) 2016-06-19 2021-08-10 Data.World, Inc. Dynamic composite data dictionary to facilitate data operations via computerized tools configured to access collaborative datasets in a networked computing platform
US11023104B2 (en) 2016-06-19 2021-06-01 data.world,Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US11042548B2 (en) 2016-06-19 2021-06-22 Data World, Inc. Aggregation of ancillary data associated with source data in a system of networked collaborative datasets
US10438013B2 (en) 2016-06-19 2019-10-08 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US10324925B2 (en) 2016-06-19 2019-06-18 Data.World, Inc. Query generation for collaborative datasets
US10691710B2 (en) 2016-06-19 2020-06-23 Data.World, Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US11068847B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to facilitate data project development via data access layering logic in a networked computing platform including collaborative datasets
US11755602B2 (en) 2016-06-19 2023-09-12 Data.World, Inc. Correlating parallelized data from disparate data sources to aggregate graph data portions to predictively identify entity data
US10824637B2 (en) 2017-03-09 2020-11-03 Data.World, Inc. Matching subsets of tabular data arrangements to subsets of graphical data arrangements at ingestion into data driven collaborative datasets
US11042556B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Localized link formation to perform implicitly federated queries using extended computerized query language syntax
US11042537B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Link-formative auxiliary queries applied at data ingestion to facilitate data operations in a system of networked collaborative datasets
US11036716B2 (en) 2016-06-19 2021-06-15 Data World, Inc. Layered data generation and data remediation to facilitate formation of interrelated data in a system of networked collaborative datasets
US11947554B2 (en) 2016-06-19 2024-04-02 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US10452677B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US10747774B2 (en) 2016-06-19 2020-08-18 Data.World, Inc. Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets
US11068475B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to develop and manage data-driven projects collaboratively via a networked computing platform and collaborative datasets
US11042560B2 (en) 2016-06-19 2021-06-22 data. world, Inc. Extended computerized query language syntax for analyzing multiple tabular data arrangements in data-driven collaborative projects
US10452975B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US10645548B2 (en) 2016-06-19 2020-05-05 Data.World, Inc. Computerized tool implementation of layered data files to discover, form, or analyze dataset interrelations of networked collaborative datasets
US10699027B2 (en) 2016-06-19 2020-06-30 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US11941140B2 (en) 2016-06-19 2024-03-26 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11675808B2 (en) 2016-06-19 2023-06-13 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US10853376B2 (en) 2016-06-19 2020-12-01 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US11016931B2 (en) 2016-06-19 2021-05-25 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US11036697B2 (en) 2016-06-19 2021-06-15 Data.World, Inc. Transmuting data associations among data arrangements to facilitate data operations in a system of networked collaborative datasets
US10353911B2 (en) * 2016-06-19 2019-07-16 Data.World, Inc. Computerized tools to discover, form, and analyze dataset interrelations among a system of networked collaborative datasets
US11334625B2 (en) 2016-06-19 2022-05-17 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US10346429B2 (en) 2016-06-19 2019-07-09 Data.World, Inc. Management of collaborative datasets via distributed computer networks
US11468049B2 (en) 2016-06-19 2022-10-11 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US10984008B2 (en) 2016-06-19 2021-04-20 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US10162354B2 (en) * 2016-07-21 2018-12-25 Baidu Usa Llc Controlling error corrected planning methods for operating autonomous vehicles
JP6744549B2 (ja) * 2016-11-08 2020-08-19 富士通株式会社 開発支援装置、開発支援方法および開発支援プログラム
DE112017006106T5 (de) 2016-12-01 2019-09-19 Ab Initio Technology Llc Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
WO2018130595A1 (en) * 2017-01-11 2018-07-19 Nestec S.A. Heat sterilized high protein spoonable nutritional compositions with whey protein which comprises whey protein micelles and a source of casein
US12008050B2 (en) 2017-03-09 2024-06-11 Data.World, Inc. Computerized tools configured to determine subsets of graph data arrangements for linking relevant data to enrich datasets associated with a data-driven collaborative dataset platform
US11238109B2 (en) 2017-03-09 2022-02-01 Data.World, Inc. Computerized tools configured to determine subsets of graph data arrangements for linking relevant data to enrich datasets associated with a data-driven collaborative dataset platform
US11068453B2 (en) 2017-03-09 2021-07-20 data.world, Inc Determining a degree of similarity of a subset of tabular data arrangements to subsets of graph data arrangements at ingestion into a data-driven collaborative dataset platform
US10817293B2 (en) 2017-04-28 2020-10-27 Tenstorrent Inc. Processing core with metadata actuated conditional graph execution
US11113051B2 (en) * 2017-04-28 2021-09-07 Tenstorrent Inc. Processing core with metadata actuated conditional graph execution
EP3662384A4 (en) 2017-08-03 2021-05-05 Next Silicon Ltd RUN TIME OPTIMIZATION OF CONFIGURABLE HARDWARE
WO2019055675A1 (en) * 2017-09-13 2019-03-21 Next Silicon, Ltd. DATA ARCHITECTURE WITH DIRECTED AND INTERCONNECTED GRID
GB201716304D0 (en) * 2017-10-05 2017-11-22 Palantir Technologies Inc Data analysis system and method
US11423083B2 (en) 2017-10-27 2022-08-23 Ab Initio Technology Llc Transforming a specification into a persistent computer program
US11055074B2 (en) 2017-11-13 2021-07-06 Ab Initio Technology Llc Key-based logging for processing of structured data items with executable logic
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
US10922308B2 (en) 2018-03-20 2021-02-16 Data.World, Inc. Predictive determination of constraint data for application with linked data in graph-based datasets associated with a data-driven collaborative dataset platform
US11243960B2 (en) 2018-03-20 2022-02-08 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures
US11537990B2 (en) 2018-05-22 2022-12-27 Data.World, Inc. Computerized tools to collaboratively generate queries to access in-situ predictive data models in a networked computing platform
US11327991B2 (en) 2018-05-22 2022-05-10 Data.World, Inc. Auxiliary query commands to deploy predictive data models for queries in a networked computing platform
USD940169S1 (en) 2018-05-22 2022-01-04 Data.World, Inc. Display screen or portion thereof with a graphical user interface
USD920353S1 (en) 2018-05-22 2021-05-25 Data.World, Inc. Display screen or portion thereof with graphical user interface
US12117997B2 (en) 2018-05-22 2024-10-15 Data.World, Inc. Auxiliary query commands to deploy predictive data models for queries in a networked computing platform
USD940732S1 (en) 2018-05-22 2022-01-11 Data.World, Inc. Display screen or portion thereof with a graphical user interface
US11947529B2 (en) 2018-05-22 2024-04-02 Data.World, Inc. Generating and analyzing a data model to identify relevant data catalog data derived from graph-based data arrangements to perform an action
US11442988B2 (en) 2018-06-07 2022-09-13 Data.World, Inc. Method and system for editing and maintaining a graph schema
US11288258B2 (en) 2018-09-25 2022-03-29 Ab Initio Technology Llc Dedicated audit port for implementing recoverability in outputting audit data
CN110968709B (zh) * 2018-09-30 2023-04-07 北京国双科技有限公司 数据传输方法及相关系统
WO2020079681A1 (en) * 2018-10-15 2020-04-23 Netz Forecasts Ltd. Systems and methods for network stabilization prediction
US11175914B2 (en) * 2019-06-28 2021-11-16 Aras Corporation Calculation engine for performing calculations based on dependencies in a self-describing data system
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
US11269526B2 (en) 2020-04-23 2022-03-08 Next Silicon Ltd Interconnected memory grid with bypassable units
US20220091908A1 (en) * 2020-09-24 2022-03-24 UiPath, Inc. Filter instantiation for process graphs of rpa workflows
WO2022165321A1 (en) 2021-01-31 2022-08-04 Ab Initio Technology Llc Data processing system with manipulation of logical dataset groups
US11947600B2 (en) 2021-11-30 2024-04-02 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures

Family Cites Families (203)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3662343A (en) 1970-07-29 1972-05-09 Docutel Corp Credit card automatic currency dispenser
US3662401A (en) 1970-09-23 1972-05-09 Collins Radio Co Method of program execution
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4814979A (en) 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4972314A (en) 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4720780A (en) 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4914568A (en) 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
US5127104A (en) 1986-12-29 1992-06-30 Dataflow Computer Corporation Method and product involving translation and execution of programs by automatic partitioning and data structure allocation
JPS63231613A (ja) 1987-03-20 1988-09-27 Matsushita Giken Kk コマンド設定方法
JPH0526792Y2 (zh) 1987-07-14 1993-07-07
JPH01258122A (ja) * 1988-04-08 1989-10-16 Nec Corp データ形式変換方式
US5357632A (en) 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
US5280619A (en) 1990-05-17 1994-01-18 Texas Instruments Incorporated System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions
US5323452A (en) 1990-12-18 1994-06-21 Bell Communications Research, Inc. Visual programming of telephone network call processing logic
EP0529303A3 (en) 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5333319A (en) 1992-03-02 1994-07-26 International Business Machines Corporation Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
JP3223933B2 (ja) 1993-02-10 2001-10-29 日本電信電話株式会社 知識ベース推論方法およびその装置
US5745778A (en) 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US6044211A (en) 1994-03-14 2000-03-28 C.A.E. Plus, Inc. Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5692168A (en) 1994-10-18 1997-11-25 Cyrix Corporation Prefetch buffer using flow control bit to identify changes of flow within the code stream
JPH08305576A (ja) 1995-01-12 1996-11-22 Internatl Business Mach Corp <Ibm> コンピュータ・ユーザとの対話を行うためのエキスパート・システム及びその方法
US5673369A (en) 1995-03-02 1997-09-30 International Business Machines Corporation Authoring knowledge-based systems using interactive directed graphs
US5701400A (en) * 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US5805462A (en) 1995-08-18 1998-09-08 Vlsi Technology, Inc. Automatic synthesis of integrated circuits employing boolean decomposition
JP3154942B2 (ja) 1995-09-11 2001-04-09 株式会社東芝 分散チェックポイント生成方法および同方法が適用される計算機システム
US5630047A (en) 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints
US5712971A (en) 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
JP3258228B2 (ja) 1996-03-15 2002-02-18 株式会社東芝 チェックポイント生成方法
US7415466B2 (en) 1996-03-19 2008-08-19 Oracle International Corporation Parallel transaction recovery
US6006242A (en) * 1996-04-05 1999-12-21 Bankers Systems, Inc. Apparatus and method for dynamically creating a document
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US5857204A (en) 1996-07-02 1999-01-05 Ab Initio Software Corporation Restoring the state of a set of files
JP3672208B2 (ja) 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
US6016516A (en) 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
US6760903B1 (en) 1996-08-27 2004-07-06 Compuware Corporation Coordinated application monitoring in a distributed computing environment
US5799266A (en) 1996-09-19 1998-08-25 Sun Microsystems, Inc. Automatic generation of test drivers
US5930794A (en) * 1996-10-18 1999-07-27 Sagent Technologies, Inc. Database repository with deferred transactions
US6038558A (en) * 1996-10-18 2000-03-14 Sagent Technology, Inc. Extensible database retrieval and viewing architecture
US6151531A (en) 1996-12-12 2000-11-21 Charles Frankel Et Al System and method for managing the alteration of garments
US5924095A (en) 1997-02-05 1999-07-13 Oracle Corporation Processing distributed transactions in heterogeneous computing environments using two-phase commit
US6330008B1 (en) 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US5933640A (en) 1997-02-26 1999-08-03 Digital Equipment Corporation Method for analyzing and presenting test execution flows of programs
US5999729A (en) * 1997-03-06 1999-12-07 Continuum Software, Inc. System and method for developing computer programs for execution on parallel processing systems
US6088716A (en) * 1997-04-28 2000-07-11 Ab Initio Software Corporation Method for preventing buffer deadlock in dataflow computations
US6032158A (en) * 1997-05-02 2000-02-29 Informatica Corporation Apparatus and method for capturing and propagating changes from an operational database to data marts
JPH1124904A (ja) * 1997-07-01 1999-01-29 Mitsubishi Electric Corp プログラム作成装置及びプログラム作成プログラムを記憶した記憶媒体
US6044394A (en) 1997-07-21 2000-03-28 International Business Machines Corporation Managing independently executing computer tasks that are interrelated by dataflow
US6145017A (en) 1997-08-05 2000-11-07 Adaptec, Inc. Data alignment system for a hardware accelerated command interpreter engine
US6173276B1 (en) * 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
US6574661B1 (en) 1997-09-26 2003-06-03 Mci Communications Corporation Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client
US6332212B1 (en) 1997-10-02 2001-12-18 Ltx Corporation Capturing and displaying computer program execution timing
US5958004A (en) 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US6339775B1 (en) * 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6014670A (en) * 1997-11-07 2000-01-11 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6044374A (en) * 1997-11-14 2000-03-28 Informatica Corporation Method and apparatus for sharing metadata between multiple data marts through object references
JPH11184766A (ja) 1997-12-18 1999-07-09 Nippon Telegr & Teleph Corp <Ntt> ビジネスイベントサーバ
US6272650B1 (en) 1998-02-03 2001-08-07 Amazing Media, Inc. System and method for disambiguating scene graph loads
US6437796B2 (en) 1998-02-17 2002-08-20 Sun Microsystems, Inc. Multiple processor visibility search system and method
US6208345B1 (en) * 1998-04-15 2001-03-27 Adc Telecommunications, Inc. Visual data integration system and method
US6256637B1 (en) 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6480876B2 (en) 1998-05-28 2002-11-12 Compaq Information Technologies Group, L.P. System for integrating task and data parallelism in dynamic applications
US6675189B2 (en) 1998-05-28 2004-01-06 Hewlett-Packard Development Company, L.P. System for learning and applying integrated task and data parallel strategies in dynamic applications
US6314114B1 (en) 1998-06-23 2001-11-06 Oracle Corporation Distributed resource management
US6259988B1 (en) 1998-07-20 2001-07-10 Lockheed Martin Corporation Real-time mission adaptable route planner
JP2000099317A (ja) 1998-09-18 2000-04-07 Toshiba Corp ユーザインタフェース設計装置及び方法
US6401216B1 (en) 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US6608628B1 (en) 1998-11-06 2003-08-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) Method and apparatus for virtual interactive medical imaging by multiple remotely-located users
US6927783B1 (en) 1998-11-09 2005-08-09 Broadcom Corporation Graphics display system with anti-aliased text and graphics feature
US6449711B1 (en) 1999-02-04 2002-09-10 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs
JP2000244749A (ja) * 1999-02-24 2000-09-08 Sony Corp データ演算装置及び方法並びにデータ演算プログラムを供給するプログラム供給媒体
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6728879B1 (en) 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6816825B1 (en) * 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
US6647408B1 (en) 1999-07-16 2003-11-11 Novell, Inc. Task distribution
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US20020129340A1 (en) 1999-10-28 2002-09-12 Tuttle Douglas D. Reconfigurable isomorphic software representations
US7137116B2 (en) 1999-11-09 2006-11-14 Microsoft Corporation Method and system for performing a task on a computer
US6879946B2 (en) 1999-11-30 2005-04-12 Pattern Discovery Software Systems Ltd. Intelligent modeling, transformation and manipulation system
US6584581B1 (en) 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
IES20010131A2 (en) 1999-12-20 2001-05-30 Headway Res Ltd System and method for computer-aided graph-based dependency analysis
US6848100B1 (en) 2000-03-31 2005-01-25 Intel Corporation Hierarchical software path profiling
CN1380883A (zh) * 2000-03-31 2002-11-20 萨诺化学药物股份公司 雪花胺的新衍生物和类似物
US7062483B2 (en) 2000-05-18 2006-06-13 Endeca Technologies, Inc. Hierarchical data-driven search and navigation system and method for information retrieval
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6813761B1 (en) 2000-06-30 2004-11-02 Microsoft Corporation Methods for enhancing flow analysis
US7164422B1 (en) 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US6832369B1 (en) 2000-08-01 2004-12-14 International Business Machines Corporation Object oriented method and apparatus for class variable initialization
US6496961B2 (en) 2000-10-27 2002-12-17 Nec Usa, Inc. Dynamic detection and removal of inactive clauses in SAT with application in image computation
US20020152244A1 (en) 2000-12-22 2002-10-17 International Business Machines Corporation Method and apparatus to dynamically create a customized user interface based on a document type definition
US6804800B2 (en) 2000-12-29 2004-10-12 Intel Corporation Method and apparatus for detecting and recovering from errors in a source synchronous bus
JP4294879B2 (ja) * 2001-02-05 2009-07-15 株式会社日立製作所 サービスレベル制御機構を有するトランザクション処理システム及びそのためのプログラム
US20020111876A1 (en) 2001-02-09 2002-08-15 Rudraraju Panduranga R. Transaction aggregation system and method
US7082386B2 (en) 2001-02-21 2006-07-25 International Business Machines Corporation Generalized software modeling tool
US20030004773A1 (en) * 2001-03-15 2003-01-02 Objectsoft, Inc. Scheduling system with methods for polling to determine best date and time
US7188091B2 (en) 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US6651234B2 (en) 2001-04-06 2003-11-18 Nec Corporation Partition-based decision heuristics for SAT and image computation using SAT and BDDs
US20020147745A1 (en) * 2001-04-09 2002-10-10 Robert Houben Method and apparatus for document markup language driven server
US7082604B2 (en) 2001-04-20 2006-07-25 Mobile Agent Technologies, Incorporated Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
US20040093559A1 (en) * 2001-05-25 2004-05-13 Ruth Amaru Web client for viewing and interrogating enterprise data semantically
GB2376094A (en) 2001-05-30 2002-12-04 Ibm Flexible navigation of a workflow graph in a data processing system
US7069536B2 (en) 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US20030033432A1 (en) 2001-08-08 2003-02-13 Simpson Shell S. Web based imaging service that converts web pages into content on behalf of another web site
US20040006745A1 (en) * 2001-08-31 2004-01-08 Van Helden Wico Methods, apparatuses, system, and articles for associating metadata with datastream
US7165030B2 (en) 2001-09-17 2007-01-16 Massachusetts Institute Of Technology Concatenative speech synthesis using a finite-state transducer
US7085426B2 (en) 2001-10-15 2006-08-01 Jonas August Volterra filters for enhancement of contours in images
US7130484B2 (en) 2001-10-15 2006-10-31 Jonas August Biased curve indicator random field filters for enhancement of contours in images
DE10152213B4 (de) 2001-10-23 2006-04-27 Onespin Solutions Gmbh Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches
US7092401B2 (en) 2001-11-15 2006-08-15 International Business Machines Corporation Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram
EP1320217B1 (en) 2001-12-14 2004-10-13 Hewlett-Packard Company, A Delaware Corporation Method of installing monitoring agents, system and computer program for monitoring objects in an IT network
US7240247B2 (en) 2002-04-29 2007-07-03 Intel Corporation Providing a chain of tokenized error and state information for a call stack
US20040041838A1 (en) 2002-09-04 2004-03-04 Adusumilli Venkata J.R.B. Method and system for graphing data
US7103597B2 (en) 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7694272B2 (en) 2002-10-21 2010-04-06 Sungard (Israel) Ltd Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language
US7412658B2 (en) * 2002-11-14 2008-08-12 Sap Ag Modeling system for graphic user interface
US7711772B2 (en) 2002-11-15 2010-05-04 Schlumberger Technology Corporation Web-based system and method for electronic data delivery
US7430747B2 (en) 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7441008B2 (en) 2002-12-18 2008-10-21 International Business Machines Corporation Method for correlating transactions and messages
US20050193056A1 (en) 2002-12-26 2005-09-01 Schaefer Diane E. Message transfer using multiplexed connections in an open system interconnection transaction processing environment
US20040148373A1 (en) 2003-01-23 2004-07-29 International Business Machines Corporation Service level agreement compliance measurement
US7707564B2 (en) 2003-02-26 2010-04-27 Bea Systems, Inc. Systems and methods for creating network-based software services using source code annotations
US7088374B2 (en) 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7417645B2 (en) 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
US7669129B2 (en) * 2003-04-04 2010-02-23 Avid Technology, Inc. Graphical user interface for providing editing of transform hierarchies within an effects tree
US7665025B2 (en) 2003-04-16 2010-02-16 The Mathworks, Inc. Signal navigation and label propagation in block diagrams
US20040225657A1 (en) 2003-05-07 2004-11-11 Panacea Corporation Web services method and system
US8265979B2 (en) 2003-06-17 2012-09-11 International Business Machines Corporation Automatic generation of process models
EP1636730A2 (en) 2003-06-18 2006-03-22 Applera Corporation Methods and systems for the analysis of biological sequence data
US20050177531A1 (en) 2003-06-24 2005-08-11 Bracewell Robert H. Method, tool and system for increasing the efficiency of a design process
CA2529925C (en) 2003-06-25 2016-08-23 Ab Initio Software Corporation Computer-aided parallelizing of computation graphs
WO2005008414A2 (en) 2003-07-11 2005-01-27 Computer Associates Think, Inc. Method and apparatus for parallel action processing
GB0318196D0 (en) 2003-08-02 2003-09-03 Ibm A method apparatus and computer program for processing a queue of messages
US7444595B2 (en) 2003-08-13 2008-10-28 National Instruments Corporation Graphical programming system and method for creating and managing a scene graph
WO2005022417A2 (en) * 2003-08-27 2005-03-10 Ascential Software Corporation Methods and systems for real time integration services
US7174479B2 (en) 2003-09-10 2007-02-06 Microsoft Corporation Method and system for rollback-free failure recovery of multi-step procedures
ATE515746T1 (de) * 2003-09-15 2011-07-15 Ab Initio Technology Llc Datenprofilierung
US20050102670A1 (en) 2003-10-21 2005-05-12 Bretl Robert F. Shared object memory with object management for multiple virtual machines
US20050097515A1 (en) 2003-10-31 2005-05-05 Honeywell International, Inc. Data empowered laborsaving test architecture
US7840949B2 (en) 2003-11-03 2010-11-23 Ramal Acquisition Corp. System and method for data transformation using dataflow graphs
US7480863B2 (en) * 2003-11-26 2009-01-20 International Business Machines Corporation Dynamic and intelligent hover assistance
US7296072B2 (en) 2003-12-12 2007-11-13 International Business Machines Corporation Enhanced port type agnostic proxy support for web services intermediaries
US7404189B2 (en) 2003-12-30 2008-07-22 International Business Machines Corporation Scheduler supporting web service invocation
US7543275B2 (en) 2004-01-29 2009-06-02 Sun Microsystems, Inc. Mechanism for executing test suites written for different harnesses under one test execution harness
US7467383B2 (en) 2004-03-08 2008-12-16 Ab Initio Software Llc System for controlling task execution using a graphical representation of task dependency
US7594227B2 (en) 2004-03-08 2009-09-22 Ab Initio Technology Llc Dependency graph parameter scoping
EP1757087A4 (en) * 2004-04-16 2009-08-19 James A Aman AUTOMATIC VIDEO RECORDING OF EVENTS, PURSUIT AND CONTENT PRODUCTION SYSTEM
US20050256818A1 (en) 2004-04-30 2005-11-17 Xerox Corporation Workflow auto generation from user constraints and hierarchical dependence graphs for workflows
JP2007536634A (ja) 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US7614037B2 (en) 2004-05-21 2009-11-03 Microsoft Corporation Method and system for graph analysis and synchronization
US7316001B2 (en) 2004-06-05 2008-01-01 Graphlogic Inc. Object process graph system
US7730482B2 (en) 2004-06-08 2010-06-01 Covia Labs, Inc. Method and system for customized programmatic dynamic creation of interoperability content
US7398514B2 (en) 2004-09-29 2008-07-08 Microsoft Corporation Test automation stack layering
US7343482B2 (en) 2004-10-20 2008-03-11 Arm Limited Program subgraph identification
US7598953B2 (en) 2004-11-05 2009-10-06 Microsoft Corporation Interpreter for simplified programming of graphics processor units in general purpose programming languages
US8082541B2 (en) 2004-12-09 2011-12-20 Advantest Corporation Method and system for performing installation and configuration management of tester instrument modules
WO2006078751A2 (en) 2005-01-18 2006-07-27 Everypoint, Inc. Systems and methods for processing changing data
US7620947B2 (en) 2005-03-11 2009-11-17 Autodesk, Inc. Enhanced directed graph representation for dependency systems
US7505975B2 (en) 2005-04-14 2009-03-17 Bea Systems, Inc. Use of transaction context to select single database instance for global transaction
JP4246176B2 (ja) 2005-04-25 2009-04-02 株式会社日立製作所 トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US20070118839A1 (en) 2005-10-24 2007-05-24 Viktors Berstis Method and apparatus for grid project modeling language
US7747565B2 (en) 2005-12-07 2010-06-29 Microsoft Corporation Garbage collector support for transactional memory
US8073671B2 (en) 2006-03-31 2011-12-06 Microsoft Corporation Dynamic software performance models
US7870556B2 (en) 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
AU2007286155B2 (en) 2006-08-10 2013-12-12 Ab Initio Technology Llc. Distributing services in graph-based computations
US7844946B2 (en) 2006-09-26 2010-11-30 Intel Corporation Methods and apparatus to form a transactional objective instruction construct from lock-based critical sections
US20080244524A1 (en) 2007-03-27 2008-10-02 Tim Kelso Program Test System
US7805635B2 (en) 2007-04-09 2010-09-28 International Business Machines Corporation Constraint programming for reduction of system test-configuration-matrix complexity
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
JP4073033B1 (ja) 2007-04-27 2008-04-09 透 降矢 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
EP2174222A4 (en) 2007-07-26 2010-10-27 Ab Initio Technology Llc TRANSACTIONAL GRAPH-BASED CALCULATION WITH ERROR HANDLING
US8347292B2 (en) 2007-08-30 2013-01-01 International Business Machines Corporation Transaction aggregation to increase transaction processing throughout
US8954482B2 (en) 2007-09-20 2015-02-10 Ab Initio Technology Llc Managing data flows in graph-based computations
US7886141B2 (en) 2007-10-27 2011-02-08 Asix Electronics Corporation Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US20090193416A1 (en) 2008-01-24 2009-07-30 Nec Laboratories America, Inc. Decidability of reachability for threads communicating via locks
US8225288B2 (en) * 2008-01-29 2012-07-17 Intuit Inc. Model-based testing using branches, decisions, and options
US8797178B2 (en) 2008-03-10 2014-08-05 Microsoft Corporation Efficient stream sharing for multi-user sensor data collection
US20090235267A1 (en) 2008-03-13 2009-09-17 International Business Machines Corporation Consolidated display of resource performance trends
US9184874B2 (en) 2008-03-31 2015-11-10 Qualcomm Incorporated Storing log likelihood ratios in interleaved form to reduce hardware memory
JP5331203B2 (ja) 2008-06-30 2013-10-30 アビニシオ テクノロジー エルエルシー グラフベース計算におけるデータ記録
US20100070955A1 (en) 2008-07-08 2010-03-18 Nec Laboratories America Alias analysis for concurrent software programs
US8782613B2 (en) 2008-08-12 2014-07-15 Hewlett-Packard Development Company, L.P. Optimizing applications using source code patterns and performance analysis
US8286176B1 (en) 2008-09-29 2012-10-09 Amazon Technologies, Inc. Optimizing resource configurations
US20100169137A1 (en) 2008-12-31 2010-07-01 Ebay Inc. Methods and systems to analyze data using a graph
US7979479B2 (en) 2009-01-08 2011-07-12 International Business Machines Corporation Transaction-controlled graph processing and management
US8635694B2 (en) 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
CN102317911B (zh) 2009-02-13 2016-04-06 起元技术有限责任公司 管理任务执行
US7992040B2 (en) 2009-02-20 2011-08-02 International Business Machines Corporation Root cause analysis by correlating symptoms with asynchronous changes
US8332811B2 (en) 2009-04-30 2012-12-11 United Parcel Service Of America, Inc. Systems and methods for generating source code for workflow platform
US8327377B2 (en) 2009-04-30 2012-12-04 Ca, Inc. Detecting, logging and tracking component dependencies in web service transactions
US8473901B1 (en) 2009-06-12 2013-06-25 The Mathworks, Inc. Non-literal representation of programming language code
US8205113B2 (en) 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
US8667329B2 (en) 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
KR20150042297A (ko) * 2010-06-15 2015-04-20 아브 이니티오 테크놀로지 엘엘시 동적으로 로딩하는 그래프 기반 계산
US9158650B2 (en) 2010-08-04 2015-10-13 BoxTone, Inc. Mobile application performance management
US9727438B2 (en) 2010-08-25 2017-08-08 Ab Initio Technology Llc Evaluating dataflow graph characteristics
AU2012100128A4 (en) 2011-02-22 2012-03-08 Zensar Technologies Ltd A computer implemented system and method for indexing and optionally annotating use cases and generating test scenarios therefrom
US8732669B2 (en) 2011-03-11 2014-05-20 Oracle International Corporation Efficient model checking technique for finding software defects
US9875094B2 (en) 2012-08-29 2018-01-23 International Business Machines Corporation Microcode upgrade in a storage system

Also Published As

Publication number Publication date
KR101278078B1 (ko) 2013-06-25
US20110093433A1 (en) 2011-04-21
JP2008544423A (ja) 2008-12-04
EP1899873A2 (en) 2008-03-19
US20060294150A1 (en) 2006-12-28
WO2007002647A2 (en) 2007-01-04
AU2006261749A1 (en) 2007-01-04
KR101372971B1 (ko) 2014-03-13
CA2610989C (en) 2015-06-16
CA2610989A1 (en) 2007-01-04
US20130297562A1 (en) 2013-11-07
US9158797B2 (en) 2015-10-13
AU2006261749B2 (en) 2013-06-13
WO2007002647A3 (en) 2007-05-03
JP5297802B2 (ja) 2013-09-25
KR20130009859A (ko) 2013-01-23
US8484159B2 (en) 2013-07-09
EP1899873A4 (en) 2008-12-24
CN101208695A (zh) 2008-06-25
US7877350B2 (en) 2011-01-25
KR20080040641A (ko) 2008-05-08

Similar Documents

Publication Publication Date Title
CN101208695B (zh) 基于图形计算的元数据管理
CN101535955B (zh) 基于图形的计算的参数管理
US10838975B2 (en) User interface to prepare and curate data for subsequent analysis
CN101971165B (zh) 数据关系的图形表示
US11061534B2 (en) Generating and applying data transformations in a data import engine
CN107135663B (zh) 影响分析
US7080088B1 (en) Automatic reconciliation of bindable objects
US7343585B1 (en) Operator approach for generic dataflow designs
US8176470B2 (en) Collaborative derivation of an interface and partial implementation of programming code
CN101617292B (zh) 面向生成器图的编程和执行
CN107924406A (zh) 选择用于对实时数据流执行的查询
CN102426582B (zh) 数据操作管理装置和数据操作管理方法
CN101438280A (zh) 管理相关数据对象
JP2010541048A (ja) グラフベース計算におけるデータフロー管理
CN104662535A (zh) 数据模型中的实体映射
WO2019241656A1 (en) System and method for comparing and selectively merging database records
US20240320224A1 (en) Logical Access for Previewing Expanded View Datasets
CN1952936A (zh) 一种信息关联系统及方法
WO2024197264A1 (en) Logical access for previewing expanded view datasets
AU2013228010A1 (en) Managing metadata for graph-based computations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: AB INITIO SOFTWARE CORP.

Free format text: FORMER OWNER: ARCHITEKTEN CO., LTD.

Effective date: 20100415

Owner name: ARCHITEKTEN CO., LTD.

Free format text: FORMER OWNER: AB INITIO SOFTWARE CORP.

Effective date: 20100415

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20100415

Address after: Massachusetts, USA

Applicant after: AB INITIO TECHNOLOGY LLC

Address before: Massachusetts, USA

Applicant before: Archie Taco Ltd.

Effective date of registration: 20100415

Address after: Massachusetts, USA

Applicant after: Archie Taco Ltd.

Address before: Massachusetts, USA

Applicant before: Qiyuan Software Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant