数据编程环境的制作方法

文档序号:6364973阅读:160来源:国知局
专利名称:数据编程环境的制作方法
技术领域
本发明涉及计算机应用,尤其涉及数据编程环境。
背景技术
数据操纵是ー种特定形式的数据处理。顾名思义,数据操纵涉及操纵或改变数据,例如以便于从较少价值的数据中提取有价值的信息。典型的数据操纵操作包括插入、更新、删除、排序、以及合并等等。通常首先向信息工作者以及一般公众展示对电子表格的数据操纵。电子表格是允许利用表和公式来对数据进行简单分析和操纵的计算机应用。更具体地,数据被存储在驻留在表中列与行相交处的各単元中,且各单元之间的关系可通过公式来定义。数据可被操纵以确定例如修改对于其他数据的影响。这样的操纵可以与以下操纵相对应改变列名、将 数据拆分成多个字段、剥离不合需要的字符、或将跨多个列的数据组合成单个列。诸如应用开发者等更高级的用户利用数据操纵语言(DML)来程序性地指定数据操纵。最流行的DML是SQL(结构化查询语言),该SQL被采用以检索并操纵关系型数据。例如,关系型数据库中的数据可由应用或直接由开发者利用诸如“插入”、“更新”和“删除”等SQL DML命令来操纵。

发明内容
下面呈现了简化的发明内容,以便提供对所公开主题的某些方面的基本理解。本发明内容不是广泛性的概观。它并不_在标识关键/重要元素,也不_在划定所要求保护主题的范围。其唯一目的是以简化形式呈现ー些概念,作为稍后呈现的更详细的描述的序言。简言之,本发明一般涉及便于数据操纵的数据编程环境。更具体地,可以提供数据操纵操作的视觉表示,以供对一个或多个数据源的选择和采用。另外,这样的操作可由更高级的/知识渊博的用户来程序性地指定和/或修改。示出ー个或多个数据操纵操作的结果的数据预览也可被显示。此外,可以采用任务流来视觉地表示随时间连续地细化数据的ー系列操作,以及启用与该一系列操作的交互。为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均_在落在所要求保护主题的范围之内。当结合附图考虑以下详细描述时,其他优点和新颖特征将变得显而易见。


图I是便于数据操纵的系统的框图。图2是代表性用户界面组件的框图。图3是示例性用户界面的屏幕截图。
图4是示例性公式视图的屏幕截图。
图5是便于利用预览的数据操纵的方法的流程图。图6是便于利用任务流的数据操纵的方法的流程图。图7是便于通过基于上下文的操作呈现的数据操纵的流程图。图8是示出用于本发明各方面的合适操作环境的示意性框图。
具体实施例方式
以下细节一般涉及便于数据操纵的数据编程环境。将数据操纵成合乎需要的形式对于用户而言是ー难题。常规上能实现的数据操纵涉及ー要求相当大量所学知识的费カ过程。无摩擦且简单的体验由此处公开的数据编程环境来提供,该数据编程环境在能力上还随用户知识缩放。更具体地,执行数据操纵的各操作可被视觉地表示且能用最小数量的姿势来选择。这样的操作还可由更高级的/知识渊博的用户针对数据操纵语言来程序性地指定和/或修改。示出ー个或多个数据操纵操作的效果的数据预览也可被显示。此外,可将ー系列操作在视觉上表示成任务流,该任务流示出随时间的连续数据细化并且在各时间启用交互。现在參考附图更详细地描述本公开的各个方面,在全部附图中用相似的标记来指示相似或相应的元素。然而应该理解,附图及其相关详细描述不g在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护主题的精神和范围之内的所有修改、等价物和替换的方案。首先參考图1,示出了便于数据操纵等的系统100。数据操纵的先决条件(也称为数据变换或数据成形)是数据本身。因此,系统100被配置成与多个数据源110(数据源I-数据源N,其中“ N”是正整数)进行交互。此外,数据源110可以是以各种方式不同(例如,数据表示(例如,文本、表、XML(可扩展标记语言)……),数据检索(例如,查询处理器、获取机制……),变换能力,性能特征……)的异构数据源。例如,一个数据源可与关系型数据库相对应,而另一数据源可与数据馈源或电子表格相对应。运行时组件120被配置成支持以计算机编程语言编写的计算机程序对于数据源110的执行。作为示例而非限制,运行时组件120可支持以功能性编程语言所指定的对于表达式或公式的执行。根据ー个实施例,运行时组件120可提供对跨公共数据类型的简单的ー组操作的同构支持。換言之,计算机程序可以用ー组公共操作来指定,而不管与特定数据源110有关的详情如何,且运行时组件120可执行必需的转换。此外,运行时组件120可按多种方式来优化。例如,运行时组件120可被配置成使用延迟执行来启用基于流传输的计算以供迅速的预览生成。換言之,运行时组件120可以惰性地或按需执行一程序或其一部分。另外,在有能力且高效的情况下,可将查询和/或操纵操作推入数据源110以供执行,以便利用数据源优化。此外,运行时组件120可被配置成例如通过确保过滤器在一联结之前被执行,来分析并优化跨不同源的联结。句法和功能库组件130被配置成扩展由运行时组件120所提供的功能性。具体而言,可以支持对于操作规范的句法,该操作规范最小化各概念并最大化公共数据类型以及同构和异构集合的表达性。此外,可以支持少量控制流操作,以启用对数据的连续细化。另夕卜,提供了一组应用编程接ロ(API),以启用这样的交互该交互从对于信息工作者而言容易使用,缩放到对于诸如开发者等高级用户而言完整的表达性。
用户界面组件140提供用于对ー个或多个数据源110进行数据操纵的数据编程环境。此外,用户界面组件140—般被配置成提供无摩擦且简单的、或換言之平滑的(例如,容易使用,没有困难)用户体验。用户界面组件140可通过利用句法和功能库组件130以及运行时组件120所提供的功能性来启用这样的交互,以便对于来自数据源110的数据执行操作。此外,在用户指示时,根据ー系列ー个或多个所指定的操作来操纵的数据可从ー个或多个数据源110中获得,且被输出或导出至另一位置或源。換言之,采用用户界面组件140来指定被执行的且其结果被输出的数据操纵程序。作为示例而非限制,信息工作者可采用系统100来便于数据的获得和操纵,该数据随后可被导入至或导出至诸如电子表格应用等精选应用,而不是在该精选应用中直接地执行这样的动作。转而关注图2,详细地呈现了代表性用户界面组件140。操作组件210被配置成提供对数据操纵操作的简便访问和选择,如由本系统支持的编程语 言所提供的。尽管不限于此,根据一个实施例,可以呈现操作的视觉表示(例如,用户界面隐喻)供选择。換言之,操作组件210可将用户界面元素映射到数据操纵编程语言的操作,由此提供语言、运行时、库和用户界面之间的匹配。此外,操作组件210可被配置成将这样的操作呈现在工具栏、帯状界面等中。工具栏是用于在选择(例如,点击、双击……)后发起特定动作的图形用户界面的元素。这里,工具栏可以使用用于启动的操纵操作的视觉表示来填充,潜在地按功能来分组。帯状界面或简称带状条与包括针对选项卡来组织的ー组工具栏的用户界面相对应。在这ー情形中,可以采用多个工具栏以便于对数据操纵操作的访问。操作组件210还可根据上下文(例如,包括数据类型、先前所选的操作、和/或光标位置等)来控制操作的呈现。作为示例而非限制,由帯状条呈现的操作可根据所获得的、所确定的或所推断的上下文信息来动态地改变。预览组件220被配置成显示服从初始或后续操纵的数据的预览。此外,就相对于操纵操作是连续可用的而言,该预览可以是恒定的。同样,该预览可以是恒定大小或预定的最大大小。作为预览的本质,可以展示数据的子集,诸如例如,表的三十行。因此,在应用ー操作之后,预览可以改变以反映该操作的执行,但在三十行处保持恒定(除非结果集小于三十行)。另外,预览组件220启用可缩放性或处理小数据集(例如,一百行的表)以及非常大的数据集(例如,一亿行的表)的能力。注意,预览的格式可以由被采用的跨异构数据源的公共(也称为标准的或中性的)格式来規定。換言之,可将数据归ー化为公共表示。根据ー个实施例,公共格式可以是表,使得数据被呈现在多个列和行的相交处,而不管数据源表示(例如,公共的分割文件)如何。以此方式,用户可以按熟悉的形式(即,电子表格的表形式)来解释数据。预览的大小可以根据可用的以及指定的屏幕空间来预先确定。換言之,预览大小对于不同设备(例如,移动电话相对于平板计算机相对于台式计算机)可基于其屏幕大小以及特定图形用户界面布局而不同。然而,在可用的或指定的屏幕空间改变的情况下,预览大小可动态地改变。此外,且根据一个实施例,在数据源具有这样的能力(例如,执行引擎、查询处理器……)的情况下,可以将操作推入这些数据源以供执行。以此方式,与例如使用运行时组件120本地执行操作相反,可以利用与数据源执行相关联的优化或效率,以便于至少对预览的迅速显示。而且,整个结果集不需要被返回以及随后被过滤以供预览。相反,过滤可由数据源来执行,使得所返回的数据量与被用于对预览进行填充的数据量相对应。作为示例而非限制,假设该域是百万行的数据库。预览组件220 (単独或与其他系统组件组合)可高效地请求和显示前三十行。在数据操纵任务被指定之后,可以显示新预览以反映变化。然而,预览不需要被本地确定,相反,至少一部分的操作可以被推回数据源(例如,将允许尽可能多的数据源),以便通过利用数据源索引和其他优化技术来允许最大效率。換言之,如果操纵操作指定选择每个第五行,则该操作的执行可被推入可返回三十行的后端数据源(例如,关系型数据库)。不按此方式执行操作的结果会导致需要获得大量数据以及随后过滤这些结果以便填充三十行,这是一更复杂的过程。与数据操纵相关联的常规技术获得所有数据并本地执行各操作 。除了与获得数据相关联的延迟以外,由于数据的大小以及本地系统约束(例如,随机存取存储器的量),获得所有数据并非总是可能的。常规所采用的替换技术是对于数据的子集进行工作。这ー技术遭受不同的问题,因为ー个或多个操作可能需要整个数据集(例如,聚集每个第五行上的值)。将执行推入数据源的性能优点使得预览能够被立即生成和显示。然而,在某些情形中,数据源可能不能执行操纵操作以及返回结果以供预览。例如,考虑平面文件。在该情形下,可将平面文件移动至允许执行的替换数据源(诸如关系型数据库),但至少就移动该数据的时间而言存在提前支付的费用。然而,迅速预览的优点可胜过该费用。例如,在要执行数据操纵的前ー晚,数据可被移动。资源组件230被配置成便于对ー个或多个数据源的标识和选择。根据ー个实施例,资源组件230可呈现数据源的视觉表示,数据操纵可在该视觉表示上执行。在涉及包括异构数据源等多个数据源的情况下,资源组件230可标识数据源中的每ー数据源。通过姿势来选择数据源之一可使得所选数据源活动。因此,可以显示对所选数据源的预览和可用操作。任务流组件240被配置成呈现对于数据所执行的一系列操纵操作(或換言之任务流)的视觉表示。每ー操作表示递增操纵,或換言之,数据的连续细化。因此,任务流随着用户选择用于在数据上执行附加操作而增长。此外,任务流组件240可结合预览组件220来操作,使得对于所执行的每ー操作或任务,数据的预览被显示。因此,在选择用于执行的操纵操作之后,该操纵操作可被呈现在任务流中,且数据的预览可在该操作执行之后被显示。此外,任务流组件240可与预览组件220交互来在所显示的预览内注入交互式控件,以便允许用户按“所见即所得”的方式来操纵数据。作为示例而非限制,用户可选择ー种方式来在下拉式菜单的列中对数据排序,通过拖放表示列名称的列图标来对列重新排序,检查列上的框来标识要合并的列,检查列上的框来移除列,或填充文本框来对列重新命名等等。換言之,交互式控件便干与任务流中的操作有关的详情的指定。此外,任务流中的每ー操作可通过姿势来选择,且选择导致捕捉特定操纵操作以及时间上在先的操作的执行的预览被显示。此外,对于依赖性操纵操作,对数据作出的任何改变可被自动地帯入。任务也可在流中相对于其他任务而移动、被折叠成ー组其他任务、或被重构等等。作为示例,考虑数据操纵由于存在列名称被改变的相关联的数据源而不起作用的场景。用户可采用任务流来导航至处理该列的点,或系统可使用针对问题任务的图标来标识该错误。在选择该问题任务之后,用户可将该列重新命名为后续操纵操作所期望的名称。改变随后被带入,且该问题被修复。任务流组件240结合操作组件210、预览组件220以及资源组件230,使得数据操纵对于信息工作者以及一般公众执行任意复杂的数据操纵而言是简便的。換言之,不存在操纵数据需要的大量所学知识。数据操纵操作在视觉上被表示成用户界面隐喻(例如,示出对于拆分操作将一列拆分成两列的图形),可以选择该用户界面隐喻以供执行,这随后可导致将操作插入任务流中以及预览被应用了操作的数据。随着用户通过与系统和/或其他装置的交互获得知识,用户可能希望更直接地指定数据操纵。公式组件250提供该机制。公式组件250提供程序性表达式或公式(以所支持的底层数据操纵语言来指定)的视觉表示。由于数据操纵操作被指定,公式组件250利用图形表示可以显示对应的程序性表达式或公式(例如,根据程序语言语法来指定),该程序性表达式或公式在后台被自动地产生。这向用户提供了更多地学习底层数据操纵语言的机会。此外,公式组件250可直接地接受数据操纵操作或对所显示的表达式的修改。換言之,操作可相对于数据操纵语言 来被程序性地指定和/或修改。可以产生结果,就好像改变是利用图形用户界面机制来指定的那样。因此,诸如开发者等更高级的用户可通过直接指定来访问底层数据操纵语言的完整表达。为进ー步辅助直接指定,自动完成功能可由公式组件250采用,来根据当前指定的表达式以及与所采用的数据操纵语言相关联的语法(例如句法)来预测并建议字符、单词、短语、关键词、符号等。图3是示出由用户界面组件140所产生的各方面的示例性实施例的屏幕截图。提供了本屏幕截图以便于对本公开的各方面的澄清和理解。因此,所要求保护的主题不旨在对其限制,因为存在各种方式来呈现图形用户界面的元素并与其交互以便产生基本相同的结果。如图所示,提供了能够呈现多个工具栏的带状条310。这里,“Table Tools(表エ具)”已被选择。此外,存在尤其是表示动作可在哪里被执行(例如,对于列、行、表……)的一系列选项卡。这里,“Columns(列)”选项卡已被选择,且数据操纵操作可按功能来分割(例如,Select & Order (选择和排序)、Headers (标题)、Add (添加)、Split (拆分)、Merge (合并)、transform (变换))。还描绘了任务流320,该任务流320提供数据操纵操作的记录。如图所示,任务流包括带有指示源和特定操作的图形的多个框。向右指的箭头被定位在这些框之间,以指示随时间的操作或从左向右的连续细化。此外,尽管未示出,但可以理解,在选择任务之后,可以提供附加图形用户界面支持,以便于对特定任务的指定,该附加图形用户界面支持包括例如,文本框、下拉框以及按钮等等。任务流320的左边存在多个选项卡320,这些选项卡指定可在其上执行数据操纵的多个数据源。这里,第一选项卡“Resourcel(资源I)”是活动的。选择另ー选项卡会将所选数据源带到最前端。预览340是显示满足数据源上的操纵操作的数据子集的窗ロ窗格,如任务流320中所指定的以及句法上在公式栏350中所指定的。如图所示,预览在公共表的表示中显示数据。此外,可以理解,可响应于诸如对其所执行的过滤操作或合并来自异构数据源的数据等附加任务,来基本实时地修改预览340。任务流320还可与预览组件340交互,以便注入交互式控件。如这里所示出的,对于移除列的这一任务,框342被注入到预览340中的每一列上,框342可通过查看该框来被选择以指示该列要被移除。这里,如灰色阴影所指示的,选择一列以供移除。任务流320还包括与任务相关联的部分322,该部分322包括用于基于与预览控件的交互来更新数据的按钮、以及用于指示针对特定任务和预览控件的操纵已完成或已做完的按钮。总之,响应于简单的用户界面姿势(例如,定点、点击……),各任务的程序被建立(例如,查询、查询构建器……)。此外,这样的界面姿势被绑定到公式栏350,该公式栏350也可由高级用户直接修改。而且,可将与任务流相关联的所有公式(或換言之,整个程序)显示在例如分开的公式视图窗ロ或窗ロ窗格中。作为示例,图4示出描绘整个程序410的示例性公式视图的屏幕截图400。以此方式,高级用户可直接编辑资源和任务流管理的整个程序。 存在编程环境的范围。一方面,存在传统编程环境,程序在其中被编译、运行和调试。另ー方面是宏记录器,其中动作被记录且稍后再次运行。该传统编程环境是非常详细的,且编程者具有完全的控制。然而,编程者并不立即知道动作的实际效果将会是什么,因为直到程序被运行时才知道动作的实际效果。因此,与多次采用该方法相关联的摩擦或困难是大的。在该范围的另一端,宏记录器是非常简便的,但如果犯下任何错误,则编辑该宏记录几乎将是不可能的。另外,如果编程者必需运行通过各动作例如三十次,以便获取完美的记录,这是非常费カ且痛苦的。此外,传统编程环境针对诸如具有大量知识的开发者等高级用户,而宏记录器针对具有很少所需知识的信息工作者。由用户界面组件140所生成的本编程环境与上述编程环境不同,且可位于该范围中间的某处。首先,本编程环境以信息工作者为目标,或換言之,少量所学知识是需要的。然而,本编程环境还支持更高级的用户。此外,该编程环境是不断运行的(或至少看上去是这样(例如,惰性的/按需执行)),因此用户可继续观察所执行的操作的效果。同样,任务流可被持续地成形或操纵。这里,任务流的中间ー改变,用户/编程者就可前往任务流的末尾并确保该值是正确的。在传统编程环境中,如果代码行在中间被改变,则在编程者得出该代码在中间被修复且结果是正确的之前,该编程者可能花费若干小时来调试。对于宏记录器,必需持续地记录新的宏并调试。參考若干组件之间的交互已经描述了上述系统、架构、环境等。应该理解,这样的系统和组件可以包括其中指定的那些组件或子组件,某些指定的组件或子组件,和/或附加的组件。子组件也可以被实现为在通信上被耦合到其他组件而不是被包括在父组件中的组件。此外,一个或多个组件和/或子组件可以组合成提供聚集功能的单个组件。系统、组件、和/或子组件之间的通信可以根据推送(push)和/或拉取(pull)模型来实现。各组件也可以与ー个或多个其他组件进行交互,出于简要考虑在此未具体描述其他组件,但本领域的技术人员均已知。此外,以上公开系统以及以下方法的各个部分可以包括人工智能、机器学习或基于知识或规则的组件、子组件、过程、手段、方法或机制(例如,支持向量机、神经网络、专家系统、贝叶斯置信网络、模糊逻辑、数据融合引擎、分类器..·)。这样的组件和其它组件可以自动化其执行的某些机制或过程,由此使得系统和方法的各部分更为自适应以及高效及智能。作为示例而非限制,用户界面组件140可利用这样的机制来确定或推断数据操纵操作以供根据上下文来呈现。考虑到以上描述的示例性系统,參考图5-7的流程图将可以更好地理解依照所公开的主题实现的方法。尽管为了说明简洁起见,按照一系列框示出和描述了方法,但是,应该理解和知道,所要求保护的主题不限于框的顺序,因为ー些框可以按与此处所描绘和描述的不同的顺序进行和/或与其它框并发地进行。此外,并非全部所示出的框都是实现下面所描述的方法所必需的。參考图5,示出了利用预览来便于数据操纵的方法500。在附图标记510,从用户接收与数据操纵有关的输入。例如,这样的输入可以与数据操纵操作相对应。在附图标记520,根据该输入从数据源获得数据。例如,可将数据操纵操作发送至数据源以供处理,其中数据源具有执行该操作的能力。此外,数据操纵操作可以用过滤器来指定以返回数据的子集。在附图标记530,用所获得的数据(例如,满足操纵约束的数据子集)来显示预览。随后,方法500可終止。可任选地,该方法可在510处继续,在那里从用户获得附加输入。本 质上,方法500可持续运行以接受用户输入并显示预览。图6描绘了利用任务流来便于数据操纵的方法600。在附图标记610,例如,通过用户界面从用户接收数据源的标识。在附图标记620,对于该数据源,生成并显示预览。在附图标记630,将该数据源添加到标识特定用户动作的任务流中,这里是数据源的标识。在附图标记640,通过选择操作的图形表示或该操作针对例如程序性表达式或公式的指定,来接收针对所标识的数据源的数据操纵操作。在附图标记650,基于操作生成并显示预览。在一个实施例中,预览生成可以与将操作推至数据源以供用过滤器执行以及接受结果相对应。在附图标记660,将操作添加到任务流。随后,方法600可以终止或另选地循环回640以继续接收附加的数据操纵操作。一旦构建了任务流,就可利用该任务流来导航至特定操作以便作出改变。例如,如果任务流已经运行一段时间,且例如由于先前用斜杠表示的日期(例如,1/1/2011)已改变且现在用破折号来表示(例如,1-1-2011)而导致错误发生,则用户可导航至任务流的特定部分,并且作出相对于任务流中的后续操作将被反映出的改变。此外,被表示为任务的操作也可在该流中相对于其他任务而移动、被折叠成ー组其他任务(例如,任务中超过ー个的操作)、或被重构等等。图7是便于数据操纵的方法700的流程图。在參考标号710,可标识上下文信息。这样的信息可与数据源、数据、数据操纵操作、用户历史(例如,先前数据操纵)、和/或流行的操作等相对应。在附图标记720,根据所标识的上下文信息来显示数据操纵操作的视觉表示。例如,在操作被视觉地表示在带状条界面中的情况下,相比于其他被确定为不相关的操作,可以显示那些基于上下文被确定为相关的操作以供用户选择。此处使用的术语“组件”和“系统”及其各种形式g在表示与计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是,在处理器上运行的进程、处理器、对象、实例、可执行程序、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。在本文中使用的词语“示例性”或其各种形式意味着用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,各示例只是出于清楚和理解的目的来提供的并且并不意味着以任何方式限制或约束所要求保护主题或本发明的相关部分。可以理解,本来可呈现不同范围的多个附加或替换示例,但出于简明的目的已被省略。如此处所使用,术语“推论”或“推断”通常指的是从经由事件和/或数据捕捉的一组观察结果来推理或推断系统、环境、和/或用户状态的过程。可以使用推断来标识特定上下文或动作,也可以生成例如状态上的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑,计算在感兴趣状态上的概率分布。推断也可以是指用于从ー组事件和/或数据构成较高级别的事件的技术。这样的推断导致从一组观察到的事件和/或存储的事件数据构建新的事件或动作,不管事件在时间上是否紧密相关,以及事件和数据是来自ー个还是多个事件和数据源。可采用各种分类方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎……)来执行关于所要求保护的主题的自动化和/或推断的动作。而且,对于在详细描述或权利要求书中使用术语“包括”、“包含”、“具有”、“含有”或其它形式的变型而言,这样的术语g在以类似于术语“包括”的方式体现包含性,如同“包括”在用作权利要求书中的过渡词时所解释的那样。为了为所要求保护主题提供上下文,图7以及以下讨论g在提供对其中可以实现本主题的各方面的合适环境的简要、概括描述。然而,合适的环境只是示例并且并非g在对使用范围或功能提出任何限制。尽管能够在可以在一台或多台计算机上运行的程序的计算机可执行指令的一般上下文中描述以上公开的系统和方法,但是,本领域的技术人员将认识到,各方面也可以与其他程序模块等相结合地实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件和数据结构等。此外,本领域技术人员可以理解,上述系统和方法可用各种计算机系统配置实现,包括单处理器、多处理器或多核处理器计算机系统、小型计算设备、大型计算机、以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、手表……)、基于微处理器或可编程消费或エ业电子设备等。各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。然而,所要求保护主题的某些方面,如果不是所有方面的话,可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中的一个或两者中。參考图8,示出了示例通用计算机810或计算设备(例如,台式机、膝上型计算机、服务器、手持式设备、可编程消费或エ业电子产品、机顶盒、游戏系统……)。计算机810包括一个或多个处理器820、存储器830、系统总线840、大容量存储850、以及ー个或多个接ロ组件870。系统总线840与至少上述系统组件通信地耦合。然而,可以理解,在其最简单的形式中,计算机810可包括耦合到存储器830的一个或多个处理器820,该ー个或多个处理器820执行存储在存储器830中的各种计算机可执行动作、指令和/或组件。处理器820可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或被设计为执行此处描述的功能的其任意组合来实现。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何处理器、控制器、微控制器、或状态机。处理器820还可被实现为、计算设备的组合,例如DSP和微处理器的组合、多个微处理器、多核处理器、结合DSP核的一个或多个微处理器、或任何其它这种配置。计算机810可包括各种计算机可读介质或以其他方式与各种计算机可读介质交互以便于控制计算机810来实现所要求保护主题的ー个或多个方面。计算机可读介质可以是能由计算机810访问的任何可用介质,并包含易失性和非易失性介质以及可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,存储器设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)……)、磁存储设备(例如,硬盘、软盘、磁带 盒、磁带……)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)……)、以及固态设备(例如,固态驱动器(SSD)、闪存驱动器(例如,卡、棒、键驱动器……)……)、或者可用于存储所需信息并且可由计算机810访问的任何其他介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。存储器830和大容量存储850是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器830可以是易失性的(例如RAM)、非易失性的(例如ROM、闪
存......)或是两者的某种组合。作为示例,包括诸如在启动期间在计算机810内的元件之
间传输信息的基本例程的基本输入/输出系统(BIOS)可被存储在非易失性存储器中,而易失性存储器可担当外部高速缓存存储器以便于处理器820的处理等。大容量存储850包括相对于存储器830用于存储大量数据的可移动/不可移动、易失性/非易失性计算机存储介质。例如,大容量存储850包括但不限于,诸如磁盘或光盘驱动器、软盘驱动器、闪存存储器、固态驱动器、或记忆棒的ー个或多个设备。存储器830和大容量存储850可包括或其中存储有操作系统860、一个或多个应用862、ー个或多个程序模块864和数据866。操作系统860用于控制和分配计算机810的资源。应用862包括系统和应用软件之ー或两者,并且可利用操作系统860对资源的管理通过存储在存储器830和/或大容量存储850中的程序模块864和数据866来执行ー个或多个动作。因此,应用862可根据由此提供的逻辑来将通用计算机810变成专用机器。所要求保护主题的全部或各部分可以使用产生控制计算机以实现所公开功能的软件、固件、硬件或其任意组合的标准编程和/或工程技术来实现。作为示例而非限制,便于数据操纵的系统100或其一部分可以是应用862或形成应用862的一部分,并且包括存储在存储器和/或大容量存储850中的一个或多个模块864和数据866,这些模块和数据的功能可在由一个或多个处理器820执行时实现。根据ー个特定实施例,处理器820可与片上系统(SOC)或在单个集成电路基座上包括或換言之集成硬件和软件的类似架构相对应。此处,处理器820可包括至少与处理器820和存储器830相似的一个或多个处理器以及存储器等。常规处理器包括最少量的硬件和软件并且广泛依赖于外部硬件和软件。作为对比,处理器的SOC实现更強大,因为它将硬件和软件嵌入其中以能够用最少的硬件和软件或不依赖于外部硬件和软件来启用特定功能。例如,系统100和/或相关联的功能可被嵌入到SOC体系结构中的硬件内。计算机810还包括通信地耦合到系统总线840并方便与计算机810的交互的ー个或多个接ロ组件870。作为示例,接ロ组件870可以是端ロ(例如,串行、并行、PCMCIA、USB、
火线......)或接ロ卡(例如,声音、视频......)等等。在ー个示例实现中,接ロ组件870可被
具体化为用户输入/输出接ロ,该用户输入/输出接ロ使得用户能够通过ー个或多个输入设备(例如,诸如鼠标等定点设备、跟踪球、指示笔、触摸垫、键盘、话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、照相机、其他计算机……)来将命令和信息输入到计算机810中。在另ー示例实现中,接ロ组件870可被具体化为输出外围接ロ,该输出外围接ロ向显示器(例如,CRT、LCD、等离子……)、扬声器、打印机和/或其他计算机等提供输出。此外,接ロ组件870可被具体化为网络接ロ,该网络接ロ使得能够诸如通过有线或无线通信链路与其 他计算设备(未示出)通信。以上所已经描述的内容包括所要求保护主题的各方面的示例。当然,出于描绘所要求保护主题的目的而描述每ー个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护主题的许多进一步的组合和排列都是可能的。从而,所公开的主题g在涵盖落入所附权利要求书的精神和范围内的所有这样的变更、修改和变化。
权利要求
1.一种便于数据操纵的方法,包括 采用被配置成执行存储在存储器(830)中的计算机可执行指令以执行以下动作的至少ー个处理器(820) 响应于向至少ー个外部数据源发出的、对满足指定的数据操纵操作的数据子集的查询,将从该外部数据源所获得的数据子集显示在图形用户界面的一部分中。
2.如权利要求I所述的方法,其特征在于,还包括呈现由数据操纵语言支持的操作的视觉表示。
3.如权利要求I所述的方法,其特征在于,还包括呈现所指定的数据操纵操作的视觉 表不。
4.如权利要求3所述的方法,其特征在于,按照所指定的数据操纵操作被指定的次序来呈现一系列所指定的数据操纵操作的视觉表示。
5.如权利要求4所述的方法,其特征在于,还包括显示与选自所述一系列所指定的数据操纵操作的一数据操纵操作相关联的数据子集。
6.一种便于数据操纵的系统(100),包括 耦合到存储器(830)的处理器(820),所述处理器(820)被配置成执行存储在所述存储器(830)中的以下计算机可执行组件 第一组件(240),所述第一组件(240)被配置成呈现针对数据源来执行的各系列操作的视觉表示;以及 第二组件(220),所述第二组件(220)被配置成显示由执行所述一系列操作中的ー个或多个操作所得的数据预览。
7.如权利要求6所述的系统,其特征在干,所述ー个或多个操作是跨异构数据源来执行的。
8.如权利要求6所述的系统,其特征在于,在从所述一系列操作中选择ー操作之后,所述第二组件显示所述预览。
9.如权利要求6所述的系统,其特征在于,还包括第三组件,所述第三组件被配置成呈现指定所述ー系列操作的表达式的视觉表示。
10.如权利要求6所述的系统,其特征在于,所述第二组件被配置成提供具有所述数据预览的ー个或多个交互式控制元素,以便指定与所述第一组件所呈现的所述一系列操作中的ー个操作有关的详情。
全文摘要
本发明公开了数据编程环境。公开了便于数据操纵的数据编程环境。呈现了针对一个或多个数据源的可用操作的视觉表示。显示了捕捉针对操纵的数据状态的数据预览。此外,一系列所选操作的视觉表示被维护,以便捕捉连续细化并辅助后续交互。
文档编号G06F17/30GK102693263SQ20121003756
公开日2012年9月26日 申请日期2012年2月17日 优先权日2011年2月18日
发明者E·克里斯腾森, G·德拉-利贝拉, J·佛克, S·密利特 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1