首页 / 专利库 / 软件 / 复合控件 / 数据源到复合控件的绑定

数据源到复合控件的绑定

阅读:389发布:2020-05-22

专利汇可以提供数据源到复合控件的绑定专利检索,专利查询,专利分析的服务。并且数据源到 复合控件 的自动化绑定。复合控件的特性被标识。此外,某一特定数据源与该复合控件相关联。对于该复合控件的一个或多个特性中的每一个特性,关于该复合控件的信息以及所述数据源被用来标识该特定数据源的可被绑定到该复合控件的对应特性的一组一个或多个字段。如果该复合控件的该对应特性已被绑定了一 声明 性变换的一输出参数,则在标识可被用来绑定到该复合控件的该对应特性的该组一个或多个字段时,该变换的本质也可被考虑。,下面是数据源到复合控件的绑定专利的具体信息内容。

1.一种计算机可读存储设备,其上具有计算机可执行指令,所述计算机可执行指令在由计算系统的一个或多个处理器执行时使得所述计算系统执行用于便于将一数据源绑定到一复合控件的方法,所述方法包括:
标识所述复合控件的多个特性;
标识所述复合控件的所述多个特性中的每个特性的类型;
将复合控件信息与来自一个或多个可能数据源的数据源信息相比较以确定所述一个或多个可能数据源是否能够被用作要绑定到所述复合控件的数据源;
标识特定数据源以绑定到所述复合控件,所述特定数据源具有被组织在一模式内的多个字段,并且所述特定数据源的每个字段具有类型,其中,所述特定数据源的所述多个字段中的至少一些字段具有与所述复合控件的所述多个特性中的至少一些特性的所标识的类型相对应的类型;以及
通过至少使用所述数据源的所述模式、关于对应特性的元数据、所述复合控件的所述多个特性中的每个特性的所标识的类型、以及所述特定数据源的所述多个字段的类型,来试探式地标识所述特定数据源的可被绑定到所述复合控件的所述对应特性的一组一个或多个字段。
2.根据权利要求1所述的计算机可读存储设备,其特征在于,所述复合控件的所述对应特性已被绑定了一变换的一输出参数,其中经由所述变换通过绑定到所述变换的一个或多个输入参数,所述特定数据源的所述一组一个或多个字段可被绑定到所述复合控件的所述对应特性。
3.根据权利要求2所述的计算机可读存储设备,其特征在于,所述复合控件被包括在一重算用户界面内,且被绑定到包括所述变换的一变换链的输入参数和输出参数。
4.根据权利要求3所述的计算机可读存储设备,其特征在于,所述变换是声明性的。
5.根据权利要求4所述的计算机可读存储设备,其特征在于,所述方法进一步包括通过以下动作来对所述声明性变换的编辑作出响应:
至少使用所述数据源的所述模式以及关于所述对应特性的元数据来标识所述特定数据源的可被绑定到所述复合控件的所述对应特性的一组一个或多个其他字段。
6.根据权利要求2所述的计算机可读存储设备,其特征在于,所述特定数据源的所述一组一个或多个字段也使用与所述复合控件的所述对应特性相关联的所述变换来标识。
7.根据权利要求1所述的计算机可读存储设备,其特征在于,所述方法进一步包括:
将所述特定数据源的所述一组一个或多个标识出的字段中的一个字段默认绑定到所述复合控件的所述对应特性。
8.根据权利要求7所述的计算机可读存储设备,其特征在于,所述方法包括进一步通过以下动作来对用户输入作出响应:
确定所述用户输入指示出改变到所述复合控件的所述对应特性的所述绑定的意图;以及
响应于所述确定,将所述特定数据源的所述一组一个或多个标识出的字段中的另一个字段绑定到所述复合控件的所述对应特性。
9.根据权利要求1所述的计算机可读存储设备,其特征在于,所述标识特定数据源以绑定到所述复合控件包括:
使用与所述复合控件的所述多个特性相关联的元数据以及至少所述特定数据源的所述模式来确定所述特定数据源可被用作要绑定到所述复合控件的数据的源。
10.一种用于便于将一数据源绑定到一复合控件的方法,所述方法通过运行计算系统内的指令来执行,所述方法包括:
标识所述复合控件的多个特性;
标识所述复合控件的所述多个特性中的每个特性的类型;
将复合控件信息与来自一个或多个可能数据源的数据源信息相比较以确定所述一个或多个可能数据源是否能够被用作要绑定到所述复合控件的数据源;
标识特定数据源以绑定到所述复合控件,所述特定数据源具有被组织在一模式内的多个字段,并且所述特定数据源的每个字段具有类型,其中,所述特定数据源的所述多个字段中的至少一些字段具有与所述复合控件的所述多个特性中的至少一些特性的所标识的类型相对应的类型;以及
通过至少使用所述数据源的所述模式、关于对应特性的元数据、所述复合控件的所述多个特性中的每个特性的所标识的类型、以及所述特定数据源的所述多个字段的类型,来试探式地标识所述特定数据源的可被绑定到所述复合控件的所述对应特性的一组一个或多个字段。

说明书全文

数据源到复合控件的绑定

[0001] 背景
[0002] “重算文档”是示出各种数据源和数据宿并允许数据源和数据宿之间的声明性变换的电子文档。对于互连各种数据源和数据宿的任何给定一组变换,数据源的输出可由数据宿消费,或数据源的输出可在由数据宿消费之前经受变换。这些各种变换可被评估,造成遍及重算文档来表示的一个或多个输出。
[0003] 用户可以添加和编辑声明性变换,而无需对编码的深度知识。这样的编辑自动使得变换被重新计算,从而造成一个或多个输出的变化。
[0004] 重算文档的一特定示例是电子数据表文档,它包括单元格的网格。任何给定单元格可能包括被求值以输出在该单元格中显示的特定值的表达式。表达式可以引用数据源,如一个或多个其他单元格或值。
[0005] 简要概述
[0006] 本文所述的至少一些实施例涉及数据源到复合控件的自动化绑定。复合控件的特性被标识。此外,某一特定数据源与该复合控件相关联。对于该复合控件的一个或多个特性中的每一个特性,关于该复合控件的信息以及所述数据源被用来标识该特定数据源的可被绑定到该复合控件的对应特性的一组一个或多个字段。如果该复合控件的该对应特性已被绑定了一声明性变换的一输出参数,则在标识可被用来绑定到该复合控件的该对应特性的该组一个或多个字段时,该变换的本质也可被考虑。
[0007] 该概述不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在被用来帮助确定所要求保护的主题的范围。
[0008] 附图简述
[0009] 为了描述可获得以上记载的及其他好处和特征的方式,将参照附图呈现各个实施例的更具体描述。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:
[0010] 图1抽象地例示出其中可采用本文描述的一些实施例的计算系统;
[0011] 图2例示出包括多个数据源和多个控件的环境;
[0012] 图3更详细地例示出包括单个数据源和单个控件以及两者之间的关联的环境;
[0013] 图4例示出用于将数据源绑定到数据控件的方法的流程图
[0014] 图5例示出用于将该特定数据源与诸如复合控件之类的一控件相关联的方法的流程图;
[0015] 图6例示出一用户界面,其中例示出图库控件以及用于绑定到该图库控件的可用数据源的列表;
[0016] 图7例示出与图6的用户界面类似的用户界面,不同之处在于用户选择设备数据;
[0017] 图8例示出一用户界面,该用户界面示出鉴于设备数据源的字段到图库控件的特性的默认绑定的图库控件的响应;
[0018] 图9例示出一用户界面,该用户界面示出用户查阅并改变与标签相关联的绑定;
[0019] 图10例示出一用户界面,该用户界面示出包括可被用于将颜色值绑定到标签控件的颜色特性的颜色选择器控件的颜色选择器界面;
[0020] 图11示出一用户界面,其中用户被呈现了允许用户编辑输出用于标签的颜色的变换的变换编辑器;
[0021] 图12抽象地例示出示例重算用户接口,它例示出带有中介变换的若干数据源和数据宿,且被用作为解释本文所述的更宽泛原理而提供的具体示例;
[0022] 图13例示出示例编译环境,该示例编译环境包括访问变换链以及产生编译代码以及依赖关系链的编译器;以及
[0023] 图14例示出用于编译重算用户接口的变换链的方法的流程图;
[0024] 图15例示出其中可采用本发明的原理的环境,该环境包括构造依赖于输入数据的视图合成的数据驱动的合成框架(composition framework);
[0025] 图16例示出表示图15的环境的一个示例的流线环境;
[0026] 图17图示地例示出图16的流水线的数据部分的一实施例;
[0027] 图18图示地例示出图16的流水线的分析部分的一实施例;以及
[0028] 图19图示地例示出图16的流水线的视图部分的一实施例。
[0029] 详细描述
[0030] 本文所述的至少一些实施例涉及便于数据源到复合控件的自动化绑定。复合控件的特性被标识。此外,某一特定数据源与该复合控件相关联。例如,该特定数据源可能已被用户从多个可用数据源中选出以便用来绑定到该复合控件。可用数据源可能已通过评估关于该复合控件的信息(诸如层次、构成特性等)以及关于所述数据源的信息(诸如模式)被自动标识,来确定哪些数据源是用于绑定到该复合控件的最合适的匹配。
[0031] 对于该复合控件的一个或多个特性中的每一个特性,关于该复合控件的信息以及所选择的数据源被用来标识该特定数据源的可被绑定到该复合控件的对应特性的一组一个或多个字段。如果该复合控件的该对应特性已被绑定了一声明性变换的一输出参数,则在标识可被用来绑定到该复合控件的该对应特性的该组一个或多个字段时,该变换的本质也可被考虑。
[0032] 自动化绑定过程以及对声明性变换的使用意味着即使是非程序员也可创建复杂数据与控件之间的绑定。这允许复杂控件被合理地用于诸如重算文档之类的重算用户接口的上下文中,其中数据源、数据宿以及控件之间的变换可被声明性地定义,而无需使用命令式编程。
[0033] 将参考图1来描述对计算系统的一些介绍性讨论。然后,将参考后续附图描述复杂数据和控件的绑定的过程。
[0034] 计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
[0035] 如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算系统是分布式的,则处理、存储器和/或存储能也可以是分布式的。如本文中所使用的,术语“可执行模”或“可执行组件”可以指可以在计算系统上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
[0036] 在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可被存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。计算系统100还包括显示器112,显示器112可被用于向用户显示视觉表示。
[0037] 本文中描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文中描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
[0038] 计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他有形介质。
[0039] “网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可用于携带计算机可执行指令或数据结构形式的期望程序代码装置并可被通用或专用计算机访问的网络和/或数据链路。上述的组合应当也被包括在计算机可读介质的范围内。
[0040] 此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中被缓冲,然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
[0041] 计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
[0042] 本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。
[0043] 图2例示出包括多个数据源210和多个控件220的环境200。例如,数据源210被例示为包括五个数据源210A至210E。然而,省略号210F表示数据源210内可能存在任意数量的数据源,从只有一个到无数个,因为本文所述的原理不限于环境200中可用的数据源的数量。
[0044] 每个数据源包括被组织成特定模式的一个或多个字段,所述模式描述字段之间的位置关系以及还描述每个字段的类型。尽管一数据源可具有唯一模式,但模式可在两个或更多个数据源之间共享。由于数据变得更容易丰富且存储能力更先进,数据源可能是相当复杂的,涉及无数的字段。
[0045] 控件220被例示为包括三个控件220A、220B和220C。然而,再一次,省略号220D表示数据源210内可能存在任意数量的数据源,从只有一个到无数个,因为本文所述的原理不限于环境200中可用的控件的数量。
[0046] 控件220各自是具有它们基于其操作的布局的概念的计算机可执行代码。例如,在可视化控件中,对应的可视化通常被显示在显示器(诸如图1的显示器112)上所显示的用户界面内。在复合控件中,一控件可被包括在父控件内和/或与对等控件相关联,以形成控件的可枚举的各种各样的分层结构。此外,一控件可以是“重复合成”,意义在于分层结构被重复来表示数据系列。例如,多个柱形条的图表可以是重复合成的控件,每个柱形条一个。从而,每个柱形条是从数据系列的数据组中形成的。作为另一示例,多个项目的图库可以是重复合成的控件,每个项目一个。每个项目可能本身是一分层结构。例如,该结构可能包括一图像以及两个标签控件,一个用于说明,一个用于价格。
[0047] 控件的功能受到其特性的影响。因此,通过将数据绑定到控件的特性,控件的预期功能可被获得。然而,数据源可能具有可枚举的字段的复杂模式。此外,控件也可具有复杂的结构以及许多特性。熟悉可用数据源的模式以及复杂控件的结构的程序员可使用他们的知识来将来自数据源的数据绑定到复杂控件的某一特性。从而,程序员可能已经知晓可用于绑定的控件特性。
[0048] 另一方面,非程序员可能不知道哪个数据可用于绑定到控件特性。他们也可能不熟悉绑定命令的语言,以及控件特性的命名约定。本文所述的原理使得非程序员容易得多地能够标识出数据可被绑定于的可用控件特性。这些原理还使得非程序员更容易找到用于绑定到特性的合适的数据。由此,本文所述的原理允许复杂数据到复杂控件的更直观的绑定,从而为非程序员开辟了钻研创建复杂控件的过程的新机会。复杂控件甚至可被结合到诸如文字处理文档、电子数据表程序等之类的重算用户接口(下文中进一步详细描述)中。例如,控件220可被包括在重算用户接口内。
[0049] 图3进一步详细例示出包括单个数据源310和单个控件320的环境300。例如,数据源310可能是图2的数据源210中的任一个,而控件320可能是图2的控件220中的任一个。数据源310与控件320相关联,如箭头330所表示的那样。
[0050] 数据源310和控件320之间发生的绑定位于数据源310的字段与控件320的特性之间。如图3中所例示的,数据源310包括四个字段311至314。然而,省略号315表示本文所述的原理可操作来绑定来自可能具有与其模式一致的任意数量的字段(从只有一个至可枚举的)的数据源的数据。如所例示的,控件320包括两个特性321和322。然而,再一次,省略号323表示本文所述的原理可操作来将数据绑定到控件的特性,而不管控件中有多少特性。实际上,本文所述的原理允许非程序员更直观地将来自数据源的数据绑定到控件的特性,而不管数据源和控件如何复杂和可扩展。
[0051] 在本说明书中,将讨论两种类型的绑定。一种类型的绑定被称为“直接绑定”。直接绑定提供了数据的复制,而没有从数据源的对应字段到控件的对应特性的修改。另一种类型的绑定在本文中将被称为“变换”绑定。在变换绑定中,对应的控件特性被绑定到具有一个或多个输入参数以及一个或多个输出参数的相关联的变换的一输出参数。字段被绑定到该变换的一个或多个输入参数中的一输入参数。该变换对输入参数内的数据执行计算或其他类型的变换以生成输出参数,这影响了控件的功能。直接绑定可被视为变换绑定的最简形式,其中该变换仅用于将其唯一的输入参数处的数据提供至其唯一的输出参数。
[0052] 图4例示出用于将数据源绑定到数据控件的方法400的流程图。与本文所述的任何过程或方法一样,方法400可由计算系统响应于计算系统的一个或多个处理器执行被结构化成致使所述计算系统执行所述方法的计算机可执行指令而被执行。这样的指令可例如被体现在一个或多个计算机可读介质上。
[0053] 方法400涉及计算系统标识复合控件的特性(动作401)。参考图3,存在与控件320相关联的信息302。该信息302包括控件320的各种特性的名称以及类型。该信息302还包括表示控件320的层次结构的信息。该信息302可被计算系统用来在控件320中导航以及找到全部特性的名称和类型,使得这些名称可被呈现给用户。该信息302还可能包括有助于标识什么数据可能更适合被绑定到控件的特性的任何其他信息。
[0054] 在分层结构化的控件中,计算系统可能使用信息302来遍及该分层的控件进行导航以找到控件的特性。相关联的特性的名称然后可作为列表被呈现给用户,而不是以复杂的层次结构将特性呈现给用户。从而,用户无需熟悉控件的层次结构,而可仅仅简单地看可能发生对其的绑定的特性的列表。
[0055] 此外,一特定数据源与该复合控件相关联(动作402)。参考图3,数据源310与控件320之间的关联被箭头330抽象地表示。从而,通过将数据源310的一个或多个字段绑定到控件320的一个或多个特性(要么通过直接绑定,要么通过变换绑定),数据源310将被绑定到控件320。
[0056] 该特定数据源可能已被从多个数据源中选出作为到该控件的合适的绑定源。例如,在图2中,环境200中存在多个数据源220。计算系统然后可使用与控件320的特性相关联的元数据(如信息302)以及关于数据源310的信息301来试探式地标识出该数据源是用于该控件的合适的数据绑定源。这样的试探法可能考虑可用字段的类型、计算系统已经能够获得的关于字段的含义的任何知识、与更大用户群体相关联的先前使用、以及与该特定用户相关联的先前使用、以及任何其他有用信息。
[0057] 图5例示出用于将该特定数据源与诸如复合控件之类的一控件相关联的方法500的流程图。方法500表示图4的动作402的示例,从而将在此被描述。在图5的描述之后,说明书将转到图4的描述。
[0058] 框510内的动作501至505中的全部动作是对多个数据源中的每个数据源执行的。例如,在图2的上下文中,框510的内容可对数据源210中的每一个执行。方法500涉及访问数据源信息(动作501)。例如,如果按照图3的数据源310动作,计算系统将访问与数据源310相关联的信息301。此数据源信息301可能包括对于确定用于绑定到控件的数据源的适用性有帮助的任何信息,和/或对于作出数据源的哪些字段可能被用于绑定到控件的某一特性的判断有帮助的任何信息。该数据源信息301可能包括每个数据类型字段的名称、类型以及或许含义,以及数据源的模式。
[0059] 计算系统然后将数据源信息(如信息301)与控件信息(如信息302)相比较(动作502)以确定该对应的数据源是否可被用作要绑定到该复合控件的数据的源(判决框503)。
如果该数据源可被用作要绑定到该复合控件的数据的源(判决框503中“是”),则该数据源的身份被添加到可用数据源的列表中(动作504)。
[0060] 框510内所有动作的执行可导致列表中有不只一个可用数据源。如果这样,则计算系统向用户呈现可用数据源的列表供选择(动作511)。计算系统然后接收对特定数据源(如数据源310)的用户选择(动作512)。
[0061] 返回至图4,方法400的剩余部分(框410的内容)对控件的每个特性执行。对于对应的特性,计算系统确定该特性是否要被绑定到数据源(判决框411)。例如,也许数据源内没有任何适合于绑定到该特性的字段。在该情况下,计算系统可提供因该类型的特性而异的变换创作界面(动作412)。
[0062] 例如,也许存在包括“颜色”特性的标签控件。数据源可能具有相当多的能够被绑定到该控件的数据,但没有颜色。因此,用户可能被呈现允许用户为该标签选择颜色的颜色选择器,或者提供声明性变换,该声明性变换提供该颜色作为输出参数用于绑定到对应的特性。
[0063] 如果该特性要被绑定到所选择的数据源(判决框411中“是”),则数据源信息(如数据源模式)以及控件信息(如关于该特性的元数据)被用于标识该特定数据源中可被绑定到该复合控件的该对应的特性的一组一个或多个字段(动作413)。再次,计算系统可使用任何可用的信息以便作出该标识。例如,与类似的数据源和类似的特性相关联的描述字段如何已被多个用户(或该特定用户)选择用于绑定的任何先前的绑定统计数据可被评估。从而,计算系统可随着时间来学习什么字段是对什么特性的最佳匹配。计算系统还可能考虑由用户提供给计算系统的暗示。
[0064] 在某些情况下,每个绑定可以直接绑定开始,但给予用户机会来向该绑定提供变换。例如,该变换可能是声明性变换,从而允许由非程序员提供变换,因为不需要命令式语言编码知识来实现该变换。当声明性变换被提供时,动作413可被执行,也考虑该变换的性质。例如,该变换的一个或多个输入参数的类型、名称和含义,以及该变换的一个或多个输出参数的类型、名称和含义可被考虑。该输入参数类型可对照数据源的字段类型来被匹配,用于数据源字段到该变换的输入参数的适当绑定。同样地,输出类型可对照控件特性类型被匹配,用于该变换输出参数到该控件特性的特性绑定。
[0065] 计算系统然后可执行该数据源的字段之一到该对应的特性的默认绑定(动作414)。同样,计算系统可显示可被绑定到该对应的特性的一个或多个替代字段的列表(动作
415)。该默认绑定可能已经是计算系统在给定判决试探法的情况下确定为用于绑定到该对应的特性的最佳可能性。该一个或多个替代绑定可以是在给定判决试探法的情况下的次优者。如果没有次优者,则或许无替代绑定选项被建议。替代绑定还可能建议将允许合适的绑定的不同变换绑定。
[0066] 在该状态下,存在可能造成进一步绑定活动的许多事件。一个事件是计算系统接收指示出希望改变绑定的用户输入。例如,或许替代绑定中的一个或多个被用户认为更合适。在该情况下,通过将数据源的另一字段绑定到该对应的特性,所选择的替代绑定被执行。
[0067] 另一事件可能是为该对应的特性添加或编辑变换。如果检测到这样的事件,则这可能非常好地改变哪个字段应通过该变换被绑定到该控件特性。因此,如果该事件发生,则方法400在判决框411开始为该特性重复。
[0068] 另一种类别的事件可能在增量式创作环境中发生,其中复合控件本身仍然在构造中。例如,如果某一特性被添加到一控件,则框410的内容可对该新特性重复。如果一新控件被添加到该复合控件,则该控件的各种一个或多个属性被标识(动作401在添加的控件的范围内),框410的内容对该添加的控件的新发现的特性中的每一个被执行。
[0069] 现在将参考图6至11的用户界面描述一具体示例用户体验。图6例示出其中例示出图库控件601的一用户界面600。图库控件可包括多个项目控件。然而,目前仅单个项目控件602被例示出。从而,图库控件601包含项目控件602。项目控件602也包括若干控件,这些控件包括图像控件603和标签控件604。从而,图库控件具有层次结构的控件。在图6的状态中,控件的特性具有默认值和/或为空,因为它们还未被绑定到数据源。
[0070] 然而,用户不会留待他们自己的设备来试图找到数据源来将值绑定到图库控件601。相反,用户界面600提供了可用数据源列表605。可用数据源包括汽车数据源、衣服数据源以及设备数据源。可用数据源的建议列表可能是通过例如执行方法500一直到动作511而生成的,其中该可用数据源列表被呈现给用户。
[0071] 图7例示出与图6的用户界面类似的用户界面700,不同之处在于用户选择设备数据源,如突出显示701所表示的那样。从而,计算系统检测对设备数据源的选择(动作512的示例),从而将设备数据源与图库控件601相关联。
[0072] 图8例示出用户界面800,该用户界面示出鉴于设备数据源的字段到图库控件601’的特性的默认绑定的图库控件601’的响应。由于项目控件是图库控件的上下文内的可重复的合成,因此设备数据结构的合适的可重复的字段(如列)被绑定以创建多个项目,设备数据源的每一行一个。元素801向用户示出默认绑定。图像控件用一图像合适地填充,标签用关于该图像中有什么的描述性文本来填充。该默认绑定是图4的方法400的结果的示例。
[0073] 图9例示出用户界面900,该用户界面示出用户改变与标签相关联的绑定。此处,用户选择价格而非说明要被用在标签中。从而,如突出显示901所表示的,设备数据源的价格列被映射到可重复的项目控件的标签控件。供用户选择的其他替代是屏幕大小、以及视图之外的其他事项。当执行动作413时,计算系统确定存在许多可被用于绑定到标签控件的文本特性的串字段。尽管在动作414中计算系统将设备数据控件的说明文本列绑定到标签文本特性(如图8中所示),用户被呈现了替代物且能够容易地切换绑定(如图9中所示)。用户永远不必具有关于图库控件的层次结构的个人知识,也不需要理解数据源的模式。相反,用户被呈现了用于特性的可用绑定的扁平列表。从而,该用户体验允许非程序员参与将复杂数据绑定到复杂控件。
[0074] 图10例示出用户界面1000,该用户界面示出包括可被用于将颜色值绑定到标签控件1001的颜色特性的颜色选择器控件1002的颜色选择器界面。这是动作412的示例,其中特性是颜色,且没有来自设备数据源的可用数据来帮助绑定到标签的颜色特性。图11示出用户界面1100,其中用户被呈现了允许用户编辑输出用于标签1001的颜色的变换的变换编辑器1101。
[0075] 本文所述的原理尤其在创作重算用户接口的上下文中有帮助,因为非程序员可更容易地且直观地将复杂数据绑定到复杂控件,即使那些控件正被构造中。例如,控件220中的每一个可以是被包括在重算用户接口内的控件。
[0076] 在本说明书以及权利要求书中,“重算用户接口”是用户可与之交互的且出现于其中存在一个或多个数据源和一个或多个数据宿的环境中的接口。此外,存在一组变换,每个变换可被声明性地定义在一个或多个数据源与一数据宿之间。例如,一个数据源的输出被馈入变换,变换的结果然后被提供给数据宿,从而潜在地导致对用户的可视化中的某种改变。
[0077] 变换是“声明性的”,意义在于用户无需具体的编码知识就能编写定义变换的声明。由于变换被声明性地定义,用户可改变声明性变换。作为响应,重算被执行,导致可能不同的数据被提供给数据宿。
[0078] 重算用户接口的一种经典示例是电子数据表文档。电子数据表文档包括单元格网格。最初,单元格是空的,从而电子数据表程序的任一单元格都具有成为数据源或数据宿的可能性,这取决于用户输入的声明性表达式的含义和上下文。例如,用户可能选择一给定单元格,并将一表达式键入该单元格中。该表达式可能与被赋予该单元格的表达出的标量值一样简单。该单元格可稍后被用作数据源。替代地,某一给定单元格的表达式可能采用等式的形式,其中输入值取自一个或多个其他单元格。在该情况下,该给定单元格是显示变换结果的数据宿。然而,在持续创作期间,该单元格可被用作用于创作者声明性作出的又一些其他变换的数据宿。
[0079] 电子数据表文档的创作者不需要是命令式代码方面的专家。创作者仅仅是作出定义变换的声明,以及选择相应的数据宿和数据源。下文描述的图15至19提供了更一般化的声明性创作环境,其中描述了更一般化的重算用户接口。在该后续描述的环境中,可视化的控件可充当数据源和数据宿两者。此外,可通过对那些控件的简单操纵来更直观地创作声明性变换。
[0080] 图12抽象地例示出一示例重算用户接口1200,它是被为解释本文所述的更宽泛原理而提供的具体示例。重算用户接口1200仅仅是一示例,因为本文所述的原理可被应用于任何重算用户接口来为无数种类的应用创建无数种类的重算用户接口。
[0081] 重算用户接口1200包括若干声明性变换1211至1215。围绕表示变换1211至1216的箭头中每一个箭头的虚线环象征变换各自采用声明性形式。
[0082] 在图12的该具体示例中,变换1211包括相应的数据源1201和数据宿1202。注意,一个变换的数据宿也可以是另一变换的数据源。例如,变换1211的数据宿1202也充当变换1212的数据源。此外,变换可具有多个数据源。从而,可使得变换链是分层的,从而相当复杂。例如,变换1212包括数据源1202和数据宿1203。数据宿1203包括两个数据源;即变换
1212的数据源1202以及变换1214的数据源1205。也就是说,也许单个变换将两个数据源
1202和1205引入数据宿1203。变换1213包括数据源204和数据宿1205。
[0083] 如果重算用户接口是例如电子数据表文档,则各种数据源/宿1201至1205可能是电子数据表单元格,在这种情况下,变换表示将与每个数据宿相关联的表达式。每个表达式的输出被显示在单元格内。从而,在电子数据表的情况下。数据源/宿可能是复杂的可视化的控件,既包括到变换链的输入参数也包括来自变换链的输出参数。例如,在图12中,存在从数据源1205引导到数据宿1201中的附加的声明性变换1215。从而,数据源/宿1201可能可视化表示来自变换1215的输出的信息,以及向其他数据宿提供进一步数据。
[0084] 重算用户接口不需要具有可视化控件。一个示例是意图执行基于变换的计算的重算用户接口,它消耗源数据以及更新宿数据,正常情况下不向用户显示关于计算的信息。例如,该重算用户接口可能支持后台计算。第二示例是具有操作诸如流程控制示例中的之类的外部执行器(actuator)的输出控件的重算用户接口。这样的控件类似于显示控件,因为它们的状态受到变换计算的结果以及信号输入的控制。然而,这里,输出是对某一设备的控制信号,而不是对显示器的可视化。例如,考虑用于控制机器人的重算用户接口。该重算用户接口可能具有针对依赖于输入机器人传感器(如伺服位置和速度、超声测距测量等)的机器人动作和行为的规则。或者考虑基于获取来自设备传感器的信号(如阀位置、流体流速等)的重算用户接口的流程控制应用。
[0085] 图13例示出包括访问变换链1300的编译器1310的示例编译环境1301。变换链301的一示例是图12的变换链1200。图14例示出用于编译重算用户接口的变换链的方法1400的流程图。方法1400可由图13的编译器1310执行。在一个实施例中,方法1400可响应于处理器(一个或多个)102执行体现在一个或多个计算机可读存储介质上的计算机可执行指令由计算系统100来执行。
[0086] 方法1400包括就依赖关系来分析重算用户接口的变换链(动作1401)。例如,参考图12,编译器1300可分析变换1211至1215中的每一个。变换是声明性的,因此依赖关系可比使用命令式计算机语言表达变换的情况更容易地被提取。
[0087] 基于该分析,在变换中所引用的实体之间创建依赖关系图(动作1402)。本质上,依赖关系具有源实体和目标实体,源实体表示某一事件,目标实体表示对该目标实体的评估依赖于该事件。该事件的示例可以是一用户事件,其中用户以特定的方式与重算用户接口交互。作为另一示例,该事件可以是一实体间事件,其中如果源实体被评估,则该依赖关系的目标实体也应被评估。
[0088] 编译器然后基于该依赖关系图来创建较低级别的执行步骤(动作1403)。较低级别的执行步骤可以是例如命令式语言代码。命令式语言代码适合于响应来检测事件、引用某一事件图表来确定要执行的功能、以及执行该功能。因此,依赖关系图中的每一个依赖关系可被简化为一功能。依赖关系图本身可被提供给运行时(动作1404)。命令式语言代码可以是例如脚本语言,诸如JAVASCRIPT。然而,本文所述的原理并不限制命令式语言代码是任何特定语言。
[0089] 作为一示例,图13例示出编译器1310也生成较低级别代码1311。这样的较低级别代码1311包括对变换链中每个变换的编译。例如,较低级别代码1311被例示为包括表示变换链中每个变换的编译的元素1321。在图12的上下文中,元素1321将包括对变换1211至1215中每个变换的编译。较低级别代码1311还包括各种各样的功能322。对依赖关系图中的每个依赖关系生成一功能。功能可以是命令式语言功能。
[0090] 当命令式语言运行时检测到依赖关系图中所列出的某一事件时,经编译的功能1322内的相应功能也被执行。因此,随着所有变换被适当地编译以及随着关于特定事件的每个依赖关系被专的功能所强制执行,声明性重算用户接口被适当地表示为命令式语言代码。
[0091] 因此,已经描述了一种用于编译声明性重算用户接口的有效机制。此外,运行时被提供有依赖关系图,而不是更广泛的解释器。
[0092] 现在将参考图15至19描述允许非程序员使用重算用户接口创作具有复杂行为的程序的创作流水线的一具体示例。
[0093] 图15例示出可被用于构造采用重算用户接口形式的交互式视觉合成(visual composition)的视觉合成环境1500。该重算用户接口的构造是使用数据驱动的分析法以及对分析结果的可视化来执行的。环境1500包括执行逻辑的合成框架1510,该逻辑是独立于视图合成1530的问题域(problem-domain)而被执行的。例如,相同的合成框架1510可被用于为城市规划、分子模型、杂货店货架布局、机器性能或装配分析、或其他因域而异的渲染来编制交互式视图合成。
[0094] 然而,合成框架1510使用因域而异的数据1520来构造因域而异的实际视觉合成1530。因此,通过改变因域而异的数据1520,相同的合成框架1510可被用于构造任何数量的不同域的重算用户接口,而无需重新编码合成框架1510本身。从而,通过变更数据而不是重新编码和重编译,流水线1500的合成框架1510可适用于可能无限数量的问题域,或者至少适用于多种多样的问题域。视图合成1530然后可作为指令被提供给合适的2D或3D渲染模块。本文所述的架构还允许将预先存在的视图合成模型作为构件块方便地纳入到新的视图合成模型。在一个实施例中,多个视图合成可被包括在一集成视图合成中,以允许对某一模型的两个可能解之间进行容易地比较。
[0095] 图16例示出流水线环境1600形式的合成框架510的示例架构。流水线环境1600尤其包括流水线1601本身。流水线1601包括数据部分1610、分析部分1620以及视图部分630,将分别参考后续的图17至19以及伴随的说明来详细描述各部分。现在,一般来说,流水线1601的数据部分1610可接受各种各样的不同类型的数据,以及以规范形式向流水线1601的分析部分1620呈现该数据。分析部分1620将该数据绑定到各种模型参数,以及使用模型分析法来求解模型参数中的未知量。各种参数值然后被提供给视图部分1630,视图部分730使用模型参数的那些值来构造合成视图。例如,数据部分610可将数据源贡献给重算用户接口。
[0096] 流水线环境1600还包括创作组件1640,创作组件740允许流水线1601的创作者或其他用户公式化表示和/或选择数据来提供给流水线1601。例如,创作组件1640可被用于将数据提供给数据部分1610(由输入数据1611表示)、分析部分1620(由分析数据1621表示)、以及视图部分1630(由视图数据1631表示)中的每一个。各种数据1611、1621和1631表示图15的因域而异的数据1520的一示例,且将在下文更详细地被描述。创作组件1640支持提供各种各样的数据,包括例如数据模式、要被模型使用的实际数据、要从外部源引入的数据的位置或可能位置范围、可视(图形或动画)对象、可在某一画面上执行的用户界面交互、建模语句(如视图、等式、约束)、绑定等等。在一个实施例中,创作组件是整体管理器组件(图16中未示出,但由图15的合成框架1510表示)提供的功能的仅仅一个部分。该管理器是响应于事件(诸如用户交互事件、外部数据事件、以及来自诸如求解器、操作系统等之类的任何其他组件的事件)来对所有其他组件(诸如数据连接器、求解器、查看器等)的操作进行控制和排序的整体指挥器。
[0097] 在图16的流水线环境1600中,创作组件1640被用于向现有的流水线1601提供数据,其中正是该数据从定义输入数据,到定义分析模型(上文称为“变换链”),到定义变换链的结果如何在视觉合成中被可视化来驱动整个过程。因此,不需要执行任何编码来使流水线1601适应于多种多样的域和问题中的任一个。仅提供给流水线1601的数据是要改变的事物,以便应用流水线1601来从完全不同的问题域可视化不同的视觉合成,或者可能调整对现有域的问题求解。此外,由于数据可在使用时(即运行时)以及在创作时被改变,模型可在运行时被修改和/或扩展。从而,创作一模型与运行该模型之间存在较少的(如果有的话)区别。由于所有的创作涉及编辑数据项且由于软件从数据运行其所有行为,对数据的每个改变立即影响行为而无需重编码和重编译。
[0098] 流水线环境1600还包括检测何时某一用户已与显示出的视图合成交互以及然后确定作为响应要做什么的用户交互响应模块1650。例如,某些类型的交互可能要求提供给流水线1601的数据无改变,并从而要求对视图合成无改变。其他类型的交互可改变数据1611、1621或1631中的一个或多个。在该情况下,该新的或经修改的数据可致使新的输入数据被提供给数据部分1610,可能要求由分析部分1620对该输入数据进行重分析,和/或可能要求由视图部分1630对视图合成进行重新可视化。
[0099] 因此,流水线1601可被用于将数据驱动的分析可视化扩展到可能无限数量的问题域,或者至少扩展到多种多样的问题域。此外,不需要是程序员来变更视图合成以解决各种各样的问题。现在将参考图17的相应数据部分1700、图18的分析部分1800以及图19的视图部分1900以这个顺序描述流水线1610的数据部分1601、分析部分1620以及视图部分1630中的每一个。如将从图17至图19显而易见的那样,流水线1601可被构造为一系列变换组件,其中它们各自1)接收某一合适的输入数据,2)响应于该输入数据执行某一动作(诸如对输入数据执行变换),以及3)输出然后用作至下一变换组件的输入数据的数据。
[0100] 图17例示出图16的流水线1601的数据部分1700的许多可能的实施例中的仅一个实施例。数据部分1700的功能之一是以与参考图18所讨论的流水线的分析部分1800所理解的模式相一致的规范格式提供数据。该数据部分包括访问异种数据1701的数据访问组件1710。输入数据1701可以是“异种的”,意义在于数据可(但无需)以规范形式呈现给数据访问组件1710。实际上,数据部分1700被结构化使得异种数据可以是各种各样的格式。可被模型访问并操作的不同种类的域数据的示例包括文本和XML文档、表、列表、层级(树)、SQL数据库查询结果、BI(商业智能)立方体查询(cube query)结果、诸如各种格式的2D绘图和3D视觉模型之类的图形信息、以及它们的组合(即合成)。进一步,通过为要被访问的数据提供定义(如模式),可被访问的数据的种类可以被声明性地扩展。因此,数据部分1700允许各种各样的异种输入进入模型,且还支持可访问数据类型的运行时、声明性扩展。
[0101] 在一个实施例中,数据访问部分1700包括用于从数个不同数据源获得数据的数个连接器。由于连接器的主要功能之一是将对应的数据放入规范形式,这样的连接器在下文以及附图中将通常被称为“规范化器”。每个规范化器可能理解其相应的数据源的特定应用程序接口(API)。规范化器还可能包括用于与该对应的API接口以从数据源读取和/或向数据源写入数据的对应逻辑。从而,规范化器桥接在外部数据源与数据的存储器映像之间。
[0102] 数据访问组件1710评估输入数据1701。如果输入数据已经是规范的且从而可被分析部分1800处理,则输入数据可作为规范数据1740被直接提供以被输入给分析部分1800。
[0103] 然而,如果输入数据1701不是规范的,则合适的数据规范化组件1730能够将输入数据1701转换成规范格式。数据规范化组件1730实际上是数据规范化组件1730的集合,其各自能够将具有特定特征的输入数据转换成规范形式。规范化组件1730的该集合被例示为包括四个规范化组件1731、1732、1733和1734。然而,省略号1735表示也可能存在其他数量的规范化组件,也许甚至比所例示出的四个更少。
[0104] 输入数据1701甚至可包括一规范化器本身以及相关的数据特征(一个或多个)的标识。数据部分1700然后可登记相关的数据特征,以及将规范化组件提供给数据规范化组件集合1730,在该集合中它可被添加到可用的规范化组件。如果稍后接收到具有那些相关特征的输入数据,则数据部分1710可将该输入数据指派给相关的规范化组件。也可从外部源动态地发现规范化组件,例如从网络上的所定义的组件库。例如,如果用于某一给定数据源的模式是已知的但所需要的规范化器不存在,则可从外部组件库定位该规范化器,只要这样的库能被发现且包含所需的组件。流水线还可能解析模式仍未知的数据并将解析结果与已知组件库中的模式信息相比较,以尝试动态确定数据的类型,并从而定位所需要的规范化器组件。
[0105] 替代地,不是输入数据包括该规范化组件的全部,而是输入数据可提供定义规范化变换的变换定义。集合1730于是可被配置成将该变换定义转换成相应的规范化组件,该相应的规范化组件实施该变换以及零个或多个标准的默认规范化变换。这表示了某种情况的示例,在该情况中数据部分1700消费输入数据且不进一步沿流水线向下提供对应的规范化数据。然而在可能大多数情况中,输入数据1701导致对应的规范化数据1740被生成。
[0106] 在一个实施例中,数据部分1710可被配置成根据输入数据的文件类型和/或格式类型将输入数据指派给数据规范化组件。其他特征可包括例如输入数据的源。默认的规范化组件可被指派给不具有指定的对应规范化组件的输入数据。该默认的规范化组件可应用一组规则来尝试规范化输入数据。如果该默认的规范化组件不能规范化数据,则该默认的规范化组件可能触发图15的创作组件1540来提示用户以提供针对输入数据的模式定义。如果模式定义并非已经存在,则创作组件1540可能呈现模式定义助手来帮助创作者生成可被用于将输入数据变换成规范形式的对应的模式定义。一旦数据是规范形式,伴随该数据的模式提供该数据的充分描述,流水线1601的剩余部分不需要新代码来解释该数据。相反,流水线1601包括能够根据可以可访问的模式声明语言表达的任何模式来解释数据的代码。
[0107] 无论如何,规范数据1740被提供作为来自数据部分1700的输出数据以及作为至分析部分1800的输入数据。规范数据可能包括包括各种各样的数据类型的字段。例如,这些字段可包括简单数据类型,诸如整数、浮点数、字符串、向量、数组、集合、层级结构、文本、XML文档、表、列表、SQL数据库查询结果、BI(商业智能)立方体查询结果、诸如各种格式的2D绘图和3D视觉模型之类的图形信息,或甚至这些各种数据类型的复杂组合。作为另一优点,规范化过程能够规范化各种各样的输入数据。此外,数据部分1700能够接受的输入数据的多样性是可扩展的。这在多个模型被组合的情况中是有帮助的,如稍后在本说明书中将被讨论的那样。
[0108] 图18例示出表示图16的流水线1601的分析部分1620的示例的分析部分1800。数据部分1700将规范化的数据1801提供给数据模型绑定组件1810。尽管规范化数据1801可能具有任何规范化的形式以及任何数量的参数,其中参数的形式和数量甚至可能在输入数据的各片段之间不同。然而,为了讨论的目的,规范化数据1801具有字段1802A至1802H,可总地被称为“字段1802”。
[0109] 另一方面,分析部分1800包括数个模型参数1811。模型参数的类型和数量可根据模型而不同。然而,为了对一具体示例的讨论的目的,将按照包括模型参数1811A、1811B、1811C和1811D来讨论模型参数811。在一个实施例中,模型参数的身份以及模型参数之间的分析关系可无需使用命令式编码而被声明性地定义。
[0110] 数据模型绑定组件1810在规范化的数据字段1802和模型参数1811之间调停,从而提供字段之间的绑定。在该情况下,数据字段1802B被绑定到模型参数1811A,如箭头1803A所表示的那样。换言之,来自数据字段1802B的值被用于填充模型参数1811A。同样,在该示例中,数据字段1802E被绑定到模型参数1811B(如箭头1803B所表示的那样),以及数据字段1802H被绑定到模型参数1811C(如箭头803C所表示的那样)。
[0111] 数据字段1802A、1802C、1802D、1802F和1802G未被示出与任何模型参数绑定。这是为了强调并非来自输入数据的所有数据字段总被要求要被用作模型参数。在一个实施例中,这些数据字段中的一个或多个可被用于向数据模型绑定组件810提供关于来自规范化的数据(对于该规范化的数据或也许任何将来的类似的规范化的数据)的哪些字段要被绑定到哪个模型参数的指令。这表示可被提供给图16的分析部分1621的分析数据1620的种类的示例。对于来自规范化的数据的哪些数据字段要被绑定到哪些模型参数的定义可用许多方式来被制定。例如,绑定可以1)由创作者在创作时显式设定,2)由用户在使用时显式设定(服从于创作者强加的任何限制),3)基于算法启发由创作组件1640自动绑定,4)在确定不能在算法上作出绑定时由创作组件提示创作者和/或用户指定绑定。从而,绑定也可被解析为模型逻辑本身的一部分。
[0112] 创作者定义哪些数据字段被映射到哪些模型参数的能力给予创作者在能够使用创作者感觉舒适的符号来定义模型参数方面很大的灵活性。例如,如果模型参数之一表示压力,创作者可将该模型参数命名为“压力”或“P”或对创作者有意义的任何其他符号。创作者可甚至重命名该模型参数,在一个实施例中这可能造成数据模型绑定组件1810自动更新来允许先前与旧名字的模型参数的绑定反而被绑定到新名字的模型参数,从而保存了所希望的绑定。用于绑定的这种机制还允许在运行时绑定被声明性地改变。
[0113] 模型参数1811D被例示为带有星号来强调在该示例中模型参数1811D未被数据模型绑定组件1810赋值。因此,模型参数1811D保持未知。换言之,模型参数1811D未被赋值。
[0114] 建模组件1820执行许多功能。首先,建模组件1820定义模型参数1811之间的分析关系1821。分析关系1821被分类成三个一般类别,包括等式1831、规则1832以及约束1833。然而,求解器的列表是可扩展的。例如,在一个实施例中,一个或多个仿真可被结合作为分析关系的一部分,只要对应的仿真引擎被提供并注册作为求解器。
[0115] 如本文所使用的术语“等式”符合在数学领域中所使用的术语。
[0116] 如本文所使用的术语“规则”指的是条件语句,其中如果一个或多个条件被满足(条件语句的条件或“if”(如果)部分),则要采取一个或多个动作(条件语句的结果或“then”(则)部分)。如果一个或多个模型参数被表达在条件语句中,或者一个或多个模型参数被表达在结果语句中,则规则被应用于模型参数。
[0117] 如本文所使用的术语“约束”指的是限制被应用于一个或多个模型参数。例如,在城市规划模型中,某一房屋元素可被限制成放置在具有全部可能分区指定的子集的地图位置上。桥元素可被限制为低于某一最大长度,或某一数量的车道。
[0118] 熟悉该模型的创作者可提供应用于该模型的这些等式、规则和约束的表达式。在仿真的情况下,创作者可能提供合适的仿真引擎,该仿真引擎提供模型参数之间的合适的仿真关系。建模组件1820可为创作者提供一种为等式、规则和约束提供自然符号表达式的机制。例如,热力学相关模型的创作者可简单地从热力学教科书中复制并粘贴等式。将模型参数绑定到数据字段的能力允许创作者使用创作者熟悉的任何符号(诸如创作者所依赖的教科书中所使用的确切符号)或者创作者想要使用的确切符号。
[0119] 在求解之前,建模组件1820还标识模型参数中的哪些要被求解(即下文中,单数情况的“输出模型变量”,或复数情况的“输出模型变量”,或可能为单个或多个输出模型变量的“输出模型变量(一个或多个)”)。输出模型变量可以是未知参数,或者它们可以是已知模型参数,其中已知模型参数的值受求解操作中的改变的支配。在图18的示例中,在数据模型绑定操作之后,模型参数1811A、1811B和1811C是已知的,而模型参数1811D是未知的。因此,未知模型参数1811D可能是输出模型变量之一。替代地或附加地,已知模型参数1811A、1811B和1811C中的一个或多个也可能为输出模型变量。如果可能的话,求解器840然后求解输出模型变量(一个或多个)。在下文所述的一个实施例中,求解器1840能够求解各种各样的输出模型变量,即使是在单个模型中,只要足够的输入模型变量被提供以允许求解操作被执行。输入模型变量可能是例如其值不受到求解操作期间的改变的支配的已知模型参数。例如,在图18中,如果模型参数1811A和1811D是输入模型变量,求解器可能反而替代地求解输出模型变量1811B和1811C。在一个实施例中,求解器可能为单个模型参数输出许多不同数据类型中的任何一个。例如,不管操作数是整数、浮点数、向量还是矩阵,某些等式操作(诸如加法、减法等)都适用。
[0120] 在一个实施例中,即使当求解器1840不能求解某一输出模型变量时,即使实际数值结果(或无论什么求解出的数据类型)的完全解是不可能的,求解器1800仍能给出该输出模型变量的部分解。这允许流水线通过提示创作者需要什么信息来得出完全解来促进增量式开发。这还帮助消除创作时和使用时之间的区别,因为贯穿各种创作阶段至少部分解是可用的。举一抽象示例,假设分析模型包括等式a=b+c+d。假设a、c和d是输出模型变量,b是具有已知值5(在该情况中是整数)的输入模型变量。在求解过程中,求解器1840仅能够求解输出模型变量之一“d”,并将值6(整数)赋予称为“d”的模型参数,但是求解器840不能求解“c”。由于“a”依赖于“c”,则称为“a”的模型参数也保持未知且未被求解。在该情况下,不是将整数值赋予“a”,求解器而是可能进行部分解并将串值“c+11”输出到模型参数“a”。如先前所述,当域专家正在创作一分析模型时这可能尤其有用,且将实质上用于提供关于模型参数“a”的内容的部分信息以及也将用于提示创作者需要提供允许“c”模型参数被求解的某些进一步的模型分析。该部分解结果可能或许以某种方式被输出在视图合成中,以允许域专家看到该部分结果。
[0121] 求解器1840在图18中以简化形式被示出。然而,如将参考图19所描述的那样,求解器1840可指导多个构成的求解器的操作。在图18中,建模组件1820然后使得模型参数(包括现在已知和被求解出的输出模型变量)可用作要被提供给图19的视图部分1900的输出。
[0122] 图19例示出表示图16的视图部分1630的示例且表示重算用户接口1200中的可视化的控件的示例的视图部分1900。视图部分1900从图18的分析部分1800接收模型参数1811。视图部分还包括包含视图组件的集合的视图组件储存库1920。例如,视图组件储存库
1920在该示例中被例示为包括视图组件1921至1924,但是视图组件储存库1920可包含任意数量的视图组件。视图组件各自可包括零个或多个输入参数。例如,视图组件1921不包括任何输入参数。然而,视图组件1922包括两个输入参数1942A和1942B。视图组件1923包括一个输入参数1943,而视图组件1924包括一个输入参数1944。也就是说这仅仅是一示例。输入参数可(但非必须)影响视觉项如何被渲染。视图组件1921不包括任何输入参数的事实强调了可能存在无需引用任何模型参数而被生成的视图。考虑仅包括不改变的固定(内建)数据的视图。这样的视图可能例如为用户构成参考信息。替代地,考虑仅提供一种浏览目录的方式的视图,使得项目可从中被选取来导入模型中。
[0123] 每个视图组件1921至1924包括或关联于对应的逻辑,当视图合成组件1940使用对应的视图组件输入参数(一个或多个)(如果有的话)执行逻辑时,使得相应的视图项被放置在虚拟空间1950中。虚拟项可以是静态图像或物体,或者可以是动态动画化的虚拟项或物体。例如,视图组件1921至1924中的每一个与对应的逻辑1931至1934相关联,当逻辑被执行时使得对应的虚拟项1951至1954分别被渲染在虚拟空间1950中。虚拟项被例示为简单形状。然而,虚拟项可以是相当复杂的形式,或许甚至包括动画。在本说明书中,当一视图项被渲染在虚拟空间中时,这意味着视图合成组件已经创作了足够的指令,这些指令当被提供给渲染引擎时,渲染引擎能够在指定的位置和以指定的方式在显示器上显示该视图项。
[0124] 使用例如图16的创作组件1640,视图组件1921至1924或许甚至可作为视图数据被提供给视图部分1900。例如,创作组件1640可能提供使得创作者能够从若干几何单形中选择,或者或许组成其他几何单形的选择器。创作者也可能为每个视图组件指定输入参数的类型,而某些输入参数可以是视图部分1900所强加的默认输入参数。与每个视图组件1921至1924相关联的逻辑也可作为视图数据被提供,和/或也可包括由视图部分1900本身提供的某些默认功能。
[0125] 视图部分1900包括被配置成将模型参数中的至少一些绑定到视图组件1921至1924的对应输入参数的模型视图绑定组件1910。例如,模型参数1811A被绑定到视图组件
1922的输入参数1942A,如箭头1911A所表示的那样。模型参数1811B被绑定到视图组件1922的输入参数1942B,如箭头1911B所表示的那样。同样,模型参数1811D被分别绑定到视图组件1923和1924的输入参数1943和1944,如箭头1911C所表示的那样。模型参数1811C未被示为绑定到任何对应的视图组件参数,强调了并非所有的模型参数都需要被流水线的视图部分所使用,即使那些模型参数在分析部分中是重要的。同样,模型参数1811D被示为绑定到视图组件的两个不同输入参数,表示模型参数可被绑定到多个视图组件参数。在一个实施例中,模型参数与视图组件参数之间的绑定的定义可以通过以下来被制定:1)由创作者在创作时显式设定,2)由用户在使用时显式设定(服从于创作者强加的任何限制),3)基于算法启发由创作组件1640自动绑定,和/或4)在确定不能在算法上作出绑定时由创作组件提示创作者和/或用户指定绑定。
[0126] 本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈