用于数据可视化的描述性框架的制作方法

文档序号:6506661阅读:385来源:国知局
用于数据可视化的描述性框架的制作方法【专利摘要】这里描述了一种用来便利数据可视化的描述性框架。根据该框架的一个方面,提供了一个或多个模块清单,其中模块清单描述表示可视化的特定组件的模块。图清单可以用来协调一个或多个模块清单。可以基于图清单来呈现可视化。【专利说明】用于数据可视化的描述性框架【
技术领域
】[0001]本公开一般涉及数据可视化(visualization),更具体地,涉及用于构造数据可视化的描述性框架。【
背景技术
】[0002]数据的图形化表示可以极大地便利对数据的分析和理解。可以从数据集合生成不同类型的图(chart)(或图形(graph)),诸如条形图、面积图、饼图、线形图、柱形图、散点图等等,以便适应不同的需求。这样的可视化有助于便利对复杂的商业数据集合的理解。[0003]开发者可以使用图(或制图(charting))库为网络应用添加基于网络的可视化支持。图库(chartlibrary)通常提供用来呈现可视化的命令。它可以包括预先定义的图组件(例如,图例、轴、标题、工具提示、绘图区域等等)的库,所述预先定义的图组件可以用作用于新的可视化的构建块。不同的图可以共享若干公共的图部件(part)。例如,条形图和线形图可以共享相同的图例,而多条图(multi-barchart)能够与单条图(singlebarchart)共享相同的绘图区域。[0004]然而,传统图库的问题之一是:虽然不同的图可以共享公共的图部件,但是这样的图部件不容易被重复使用。为了生成新的可视化,所有不同的图部件都需要从代码层面重新定义。此外,每个客户可能具有不同的要求。例如,客户可能要求饼图具有两个标题(例如,主标题和副标题(subtitle))或者要求条形图具有位于顶端的数值轴(valueaxis)。然而,图库通常仅仅支持预先定义的图,并且客户不能够自行对图进行定制或扩展。因此,如果图库仅仅提供具有一个标题的默认饼图或者具有位于底部的数值轴的默认条形图,则不能生成这样的图,除非图库被定制以适应这样的特定的要求。[0005]因此,需要解决上述挑战的改进的框架。【
发明内容】[0006]这里描述一种用于便利数据可视化的描述性框架。根据框架的一个方面,在存储于存储器模块中的清单系统中提供预先定义的模块清单,其中预先定义的模块清单描述表示可视化的特定组件的模块。可以基于预先定义的模块清单之一生成新的模块清单。可以提供引用(reference)新的模块清单或者预先定义的模块清单中的至少一个的图清单。然后可以基于图清单呈现可视化。[0007]根据框架的另一个方面,提供了一个或多个模块清单,其中模块清单描述表示可视化的特定组件的模块。图清单可以用来协调一个或多个模块清单。然后可以基于图清单呈现可视化。[0008]利用以下将变得清楚的这些及其它优点和特征,通过参考下面的详细描述和所附权利要求、以及通过参考附图,可以获得更多的信息。【专利附图】【附图说明】[0009]附图中示出了一些实施例,其中相似的参考标号指定相似的部分,并且其中:[0010]图1是示出示范性系统的框图;[0011]图2示出为真实的图定义的不同的示范性模块;[0012]图3a示出示范性架构;[0013]图3b示出各种类型的图清单(manifest)和模块清单的示范性结构;[0014]图4a示出模块清单文件的示范性结构;[0015]图4b示出将被添加到容器(container)类型模块的模块清单文件的结构的示范性项目;[0016]图4c示出布局(layout)模块清单文件的示范性结构;[0017]图4d示出图清单文件的示范性结构;[0018]图5a示出模块引用(modulereference)的示范性结构;[0019]图5b分别示出主标题和副标题的示范性结构;[0020]图6示出另一个模块引用的示范性结构;[0021]图7示出具有行为配置(behaviorconfiguration)的模块引用的示范性结构;[0022]图8示出值依赖(valuedependency)的示范性结构;[0023]图9示出事件依赖的结构;[0024]图IOa到图IOe示出模块的示范性接口定义;[0025]图11示出示范性条形模块清单样本;[0026]图12a到图12c示出示范性条形图清单样本;[0027]图13a到图13c示出多条图清单样本;[0028]图14示出用于构造可视化的示范性过程;[0029]图15示出在运行时构建可视化的示范性过程。【具体实施方式】[0030]在下面的描述中,为了阐释的目的,特定的数字、材料、和配置被阐述,以便提供对本框架和方法的全面理解,并且以便满足对规定的书面描述、可实施性和最佳方式的要求。然而,本领域技术人员将清楚,无需特定的示范性细节就可以实践本框架和方法。在其它实例中,熟知的特征被省略或简化,以便使本框架和方法的示范性实施方式的描述变得清楚,从而更好地阐释本框架和方法。另外,为了容易理解,某些方法步骤被描绘为单独的步骤;然而,这些单独描绘的步骤不应该被解释为在执行上一定依赖于顺序。[0031]这里描述了用于便利构造(compose)数据可视化的描述性方法的框架。根据一些实施方式,通过首先开发表示图的组件或部件的较小的可重用模块来构造可视化,其中图的组件或部件诸如轴、图例、标题、容器、绘图区域等等。不同于需要从代码层面定义图组件的传统系统,根据本框架的模块可以使用配置文件或模块清单来定义。它们可以独立或者经由至少一个图清单(或配置文件)与其它模块组合以形成可视化。来自清单系统127的现有模块可以用来构造可视化。此外,可以扩展或定制现有模块以便生成将要添加到清单系统127的新的模块。图清单按照其组件模块和组件模块之间的关系来描述可视化。图清单可以被用户扩展和容易地创造而无需高级编程知识或技能。[0032]因此,本框架有利地达到了可重用性、可定制性、以及可扩展性。它使得图库提供商的客户能够根据他们的要求通过定制或扩展现有模块或图清单以创建新的模块或图类型,来修改(tailor)他们的图库。此外,客户能够实施他们自己的模块并且将它们添加到现有的数据可视化或者创建新的数据可视化。[0033]这里描述的框架可以实施为方法、计算机控制的装置、计算机过程、计算系统、或实施为诸如计算机可用介质的制造物品(article)。这些和各种其它特征将从下面的描述中显而易见。[0034]图1是示出可以用来实施这里描述的框架的示范性系统100的框图。一般来说,系统100可以包括计算机系统106,计算机系统106通信地耦合到输入设备102(例如,键盘、触摸板、麦克风、照相机等等)和输出设备104(例如,显示设备、监视器、打印机、扬声器等等)。计算机系统106也可以包括用于使用通信链路130(例如,电话线、无线网络链路、有线网络链路、或电缆网络)与网络132交换数据的通信卡或设备116(例如,调制解调器和/或网络适配器)。网络132可以是局域网(LAN)或广域网(WAN)。计算机系统106可以经由网络132通信地耦合到一个或多个其它的计算机系统150。例如,计算机系统106可以充当服务器并且使用到一个或多个客户端计算机150的逻辑连接在联网环境中操作。客户端计算机150可以包括与计算机系统106相似的组件,并且可以采用台式计算机、移动设备、平板计算机、通信设备、基于浏览器的设备等等的形式。位于客户端计算机150的用户可以与用户接口152交互,以便与可视化构造框架(visualizationcompositionframework)122通信。[0035]计算机系统106可以通信地耦合到一个或多个数据源154。数据源154可以是,例如,任何数据库(例如,关系数据库、内存数据库等等)、实体(例如,相关记录的集合)、或者包括在数据库中的数据集合。数据源154可以是任何合适的数据,包括缓存或者驻留在本地易失性存储器中的数据,并且不需要与数据库直接相关。[0036]应当理解,计算机系统106的不同组件和子组件可以位于不同的机器或系统上。还应当理解,客户端计算机150的组件也可以位于计算机系统106上,反之亦然。[0037]计算机系统106包括中央处理单元(CPU)114、输入/输出(1/0)单元110、和存储器模块112。诸如高速缓存、电源、时钟电路和通信总线的其它支持电路也可以包括在计算机系统106中。此外,上述各项中的任何一个都可以由专用集成电路来补充或者被合并在专用集成电路中。计算机系统106的示例包括手持设备、移动设备、个人数字助理(PDA)、工作站、服务器、便携式膝上型计算机、另一个便携式设备、迷你计算机、大型计算机、存储系统、专用数字电器、设备、组件、其它装备、或者能够以定义的方式响应并执行指令的这些项目的某个组合。[0038]存储器模块112可以是任何形式的非临时计算机可读介质,包括但不限于,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可擦可编程只读存储器(EPR0M)、电可擦可编程只读存储器(EEPR0M)、快闪存储器设备、磁盘、内部硬盘、可移动盘、磁光盘、压缩盘只读存储器(CD-ROM)、任何其它易失性或非易失性存储器、及它们的组合。[0039]存储器模块112用于存储用于实现这里描述的技术的机器可执行指令、数据、和各种软件组件,以上各项全部可以被CPU114处理。因此,计算机系统106是当执行机器可执行指令时变成专用计算机系统的通用计算机系统。可替换地,这里描述的各种技术可以实施为软件产品的部分。每个计算机程序可以用高级程序语言或面向对象的编程语言(例如,C、C++、Java、JavaScript、来自SAP?AG的高级业务应用编程(ABAP?)、结构化查询语言(SQL)等等)来实现,或者用汇编语言或机器语言来实现,如果期望的话。所述语言可以是编译语言或者解释语言。机器可执行指令不意图限制在任何特定的编程语言及其实施方式。要理解,各种编程语言及其代码可以用来实现这里包含的公开的教导。[0040]在一个实施方式中,计算机系统106的存储器模块112包括可视化构造框架122、呈现组件124、和清单系统127。可视化构造框架122可以包括被设计用来便利用于构造可重用、可定制、并且可扩展的可视化的描述性方法的一组功能模块或程序。可视化可以以存储在清单系统127中的图清单文件(或配置文件)的形式来构造,稍后将更详细地描述清单系统127。呈现组件124可以从清单系统127和/或数据源154检索数据(例如,图清单文件)并且基于该数据生成可视化表示。[0041]清单系统127与管理大量清单(或清单文件)的配置注册表相似。除了管理清单之夕卜,清单系统127还可以支持清单继承和扩展,从而便利清单创建和/或维护。在一些实施方式中,每个清单都是使用无需高级编程知识或技能就能够方便地写或读的简单的人类可读语言(诸如JavaScript对象表示法(JS0N)、可扩展标记语言(XML)等等)创作的配置文件。[0042]在一些实施方式中,清单可以是模块清单或者图清单。模块清单描述模块,其中模块是制作可视化(或图)的最小单元。模块清单通过例如描述模块的特征(例如,类型、特性等等)来定义新的模块。图清单类似于协调模块使它们按照对可视化所预期的那样表现的应用。图清单通过描述如何由现有模块来构造图(例如,层级关系)以及模块如何交互来定义新的图。模块清单或图清单可以通过对一个或多个现有模块或图进行定制、扩展、或重复使用来分别生成新的模块或图。可以为不同的模块类型定义不同的接口,以保证它们很好地一起协作。用户可以实现他们自己的模块,并且如果这些模块与这些接口兼容,则将它们用在图中。[0043]清单系统127还可以包括用于提供清单管理功能的一个或多个组件或应用编程接口(API)。例如,清单系统127可以包括用于创建新的类别的"registerCategory(注册类别)"API。"类别"一般是指清单的类型。例如,清单系统127可以将模块清单和图清单分为两类,即,图类别和模块类别,进行管理。清单系统127还可以包括用于将新的清单安装在类别中的"register(注册)"API、基于清单"id"并且支持对用于定位和访问清单中的配置项目的一个或多个容易使用的访问器(accessor)API的引用的索引系统、和/或用来启用能够用来容易地扩展和重复使用现有清单的继承(inheritance)的"base/abstract(基础/抽象)"关键词。[0044]在一些实施方式中,清单系统127提供一个或多个预先定义的模块清单。每个模块表示特定类型的可视化组件,诸如图例、标题、轴、绘图、工具提示等等。可以为不同类型的可视化组件定义不同类型的模块。通常,可以存在五种类型的模块:(1)容器;(2)布局;(3)辅助(supplementary);(4)图;和(5)行为。[0045]容器类型的模块是包含其它模块的模块。它用于在例如数据分派(dispatch)、事件分派等等中协调它的子模块。每个容器类型的模块可以指定特定的布局模块在可视化中布置由其子模块表示的可视部件。示范性容器类型的模块可以包括但不限于commonContainer(公共容器)模块、tableContainer(表格容器)模块、matrixContainer(矩阵容器)模块等等。每个容器类型的模块可以表示不同的协调方式。例如,tableContainer模块和matrixContainer模块可以实施不同的数据分派算法。[0046]布局类型的模块用于布置其被分配到的容器类型的模块的子模块。它与容器类型的模块分开定义,并且允许用户为单一容器类型的模块指定不同的布局。示范性布局类型的模块可以包括但不限于gridLayout(网格布局)、xyLayout(xy布局)、chartLayout(图布局)等等°[0047]辅助类型的模块不直接表示数据,而是用于便利用户对数据的解释。示范性辅助类型的模块包括但不限于标题模块、轴模块(例如,数值轴模块、类别轴模块等等)、图例模块(例如,色彩图例模块、尺寸图例模块等等)、工具提示模块等等。[0048]图类型的模块直接以可视的形式表示数据。示范性图类型的模块包括但不限于条形模块(例如,柱状条形模块、堆叠条形模块等等)、线形模块、饼状模块、散点图或气泡图模块、雷达模块等等。[0049]行为类型的模块用于定义并控制可视化的行为。示范性行为类型的模块包括但不限于选择模块、导出模块等等。[0050]图2示出为真实的图200定义的不同的示范性模块。如图所示,图200可以由容器模块202、辅助模块/标题204a、辅助模块/类别轴204b、辅助模块/数值轴204c、辅助模块/图例204d、和行为模块206构造。[0051]图3a示出系统106的示范性架构300。应当注意到,在下面的讨论中,可以使用相似的参考标号引用图1中描述的特征。[0052]可视化构造框架122通信地耦合到清单系统127。可视化构造框架122可以分别基于来自用户的输入选项(例如,定制模块或清单定义)和/或清单系统127中的现有模块和/或图清单来构建输出可视化。[0053]清单系统127包括各种类型的现有模块302a_e,诸如图模块(例如,条形模块302a)、辅助模块(例如,标题模块302b、图例模块302c)、容器模块(例如,XYContainer模块302d)、以及可能的表示任何其它模块的其它模块302e。模块302a-e的每一个与定义模块302a_e的特征的各个模块清单304a_e相关联。例如,条形模块302a与条形模块的清单304a相关联,标题模块302b与标题模块的清单304b相关联,图例模块302c与图例模块的清单304c相关联,XYContainer模块302d与XYContainer模块的清单304d相关联,并且其它模块302e与其它模块的清单304e相关联。[0054]模块清单304a_e中的每一个还可以分别与图清单306a_b相关联。在一些实施方式中,多个模块清单304a-e与图清单306a或306b的每一个相关联。每个图清单描述如何由各种模块来构造图。例如,条形图的清单306a可以描述如何由条形模块302a、标题模块302b、图例模块302c、XYContainer模块302d、和其它模块302e来构造条形图。图清单可以"引用"来自清单系统127的一个或多个模块,并且指定所述模块的特殊特性以生成所述模块的"实例化"。[0055]图3b示出各种类型的图清单322和模块清单324的示范性结构。通常,实线箭头指示继承关系,而具有虚线的箭头指示引用关系。[0056]更具体地,从第一清单到第二清单的实线箭头指示其中第二清单从第一清单(即,基础)继承属性或行为的继承关系。例如,为了简化模块清单的定义,图清单可以从预先存在父类图清单继承某些属性或行为。如图所示,圆环图清单326可以从饼图清单328继承;线形图清单330、瀑布(waterfall)图清单332和垂直条形图清单334可以从基础垂直图清单336继承;双水平图清单340和双条形图清单342可以分别从水平线形图清单344和条形图清单346继承,而水平线形图清单344和条形图清单346都可以从基础水平图清单348继承。[0057]从第三清单到第四清单的具有虚线的箭头指示其中第三清单包括对第四清单的引用的引用关系。例如,图清单可以引用一个或多个模块清单以构造图。如图所示,条形图清单346可以引用根容器清单360。模块清单也可以引用其它模块清单。例如,根容器清单360可以引用工具提示清单350、背景清单352、XYContainer(根)清单354、标题清单356、和图例清单358。XYContainer(根)清单354还可以引用X轴:轴清单362、y轴:轴清单364、行为清单370、和条形清单372。[0058]图4a示出模块清单文件的示范性结构402。模块清单文件可以用来定义辅助类型、图类型、容器类型或行为类型的模块。如图所示,可以通过指定关键词(id(或唯一标识符)、名称、类型、基础、特性、事件、和css(或层叠样式表))的值来定义每个模块。为了简化定义,关键词'基础'可以用来指示基础模块,其中定义从基础模块继承和重载(override)。[0059]图4b示出将被添加到容器类型模块的模块清单文件的结构402的示范性项目412。更具体地,项目412包括可以用来为特定的容器类型模块定义默认布局(例如,表格、网格、等等)的关键词'布局'。[0060]图4c示出布局模块清单文件的示范性结构422。如先前所讨论的,布局类型的模块负责布置其被分配到的容器类型模块的子模块。如图所示,可以通过指定关键词(id(或唯一标识符)、名称、基础、特性、CSS(或层叠样式表)和布局(其描述可以使用的布局规范))的值来定义每个布局类型的模块。[0061]图4d示出图清单文件的示范性结构432。如先前所讨论的,图清单主要定义具有现有模块的图结构和模块之间的协调方式。如图所示,可以通过指定关键词(id、名称、基础、根、依赖、属性、和事件)的值来定义每个图。为了简化定义,通过使用用来指示基础模块标识符的关键词'基础'来支持继承/重载。关键词'根'指定根模块引用,所述根模块引用通常引用包含其全部子模块的容器类型的模块。[0062]图5a示出模块引用500的示范性结构。当使用模块500来构造图时,对该模块的引用可以包括在图的清单文件中。当可视化构造框架122遇到每个模块引用500时,它可以使用唯一模块标识符(id)502在清单系统127中搜索原始的模块清单。来自原始的模块清单的元数据可以与模块引用中的特定信息503合并,并且被当做用于该模块在图中的实例的元数据。特定信息503可以包括与特定用于这个引用实例的某些特性相关联的'特性'。例如,可以为图指定两个标题(例如,主标题和副标题),全部两个标题都可以引用标题模块。[0063]图5b分别示出主标题504和副标题506的示范性结构。如图所示,可以为两个标题指定不同的'特性'值(例如,'对齐'值)。例如,主标题可以被配置为与'中心'对齐,而副标题可以被配置为与'右边'对齐。[0064]图6示出另一个模块引用602的示范性结构。在这个示例中,该模块引用是容器模块引用。关键词'模块'604可以用来指定子模块的名称。在结构602的主体中,关键词'布局'606可以用来指定布局模块。如果没有指定布局模块,则可以应用默认布局。在每个子模块引用中,关键词'布局'608可以用来向布局模块提供关于如何布置子模块的信息(例如,列信息和行信息)。[0065]图7示出具有行为配置的模块引用702的示范性结构。为了支持图内的丰富交互,可以将行为模块绑定到目标模块以使其能够支持行为。如图所示,唯一标识符'id'704可以在结构702的行为模块引用中被指定,以便,例如,启动选择行为模块。关键词'特性'可以用来为行为模块引用定制特性值。[0066]图8示出值依赖801的示范性结构。值依赖801可以包括在图清单文件中以便基于值指定两个引用模块之间的依赖关系。更具体地,值依赖可以用来连接模块以使它们在某个方面一致。当模块被聚集在图中时,它们可能需要在一个或多个方面一致。例如,图例模块应该与图绘制模块使用相同的调色板;图例模块的轴应该与图绘制模块使用相同的比例尺,等等。如结构801所示,'目标'关键词806和'源'关键词808用来指定相同的'调色板'功能,这允许'图例'目标模块和'main,plot'源模块共享相同的调色板。[0067]关键词'targetModule(目标模块)'802可以用来指定目标模块路径,而关键词'sourceModule(源模块)'804可以用来指定源模块路径。模块路径用来在框架分解(resolve)值依赖时找到某个模块。模块路径反映从该模块的图根模块到该模块的组成结构。例如,源模块路径'main,plot'指示源模块是由名为'plot'的模块引用定义的,所述名为'plot'的模块引用是名为'main'的另一个模块引用的孩子。[0068]任何模块可以经由指定的源和目标功能具有对任何其它模块的任何依赖。对于对象的依赖,可能需要预先定义用于全部可能的依赖的接口。换句话说,需要为被其它模块依赖的全部模块配置接口。这可以限制其它模块的实施。例如,如果模块A基于功能X依赖于模块B,则任何想要被模块A依赖的模块C应当具有与功能X相同的签名。鉴于模块C可以为了其它功能性而使用功能X,模块C的实施方式可以被限制。然而,对于值依赖,功能签名可以包括在值依赖配置中,并且只要模块C向模块A提供正确的值,则模块C就能够使用任何其它功能而不管其签名为何。[0069]图9示出事件依赖902的结构。事件依赖902可以包括在图清单中以便基于事件指定两个模块之间的依赖关系。结构902与如先前结合图8所描述的值依赖结构801相似。如图所示,目标模块'工具提示'和源模块'main,plot'基于事件'hideTooltip(隐藏工具提示)'共享依赖关系。源模块(例如,'main.plot')可以触发事件,而目标模块(例如,'hideTooltip')可以倾听事件并且对事件作出响应。[0070]图10a-e示出模块的示范性接口定义。如先前所讨论的,可以为每个模块定义接口,以便协调模块之间的交互。图IOa示出可以用于除了行为类型模块之外的全部类型的模块的示范性接口定义。图IOb示出辅助类型模块的示范性接口定义。图IOc示出行为类型模块的示范性接口定义。图IOd示出容器类型模块的示范性接口定义。图IOe示出图类型模块的示范性接口定义。[0071]图11、图12a_c、和图13a_c示出示范性清单样本。更具体地,图11示出示范性条形模块清单样本1102。图12a-c示出示范性条形图清单样本1202。如图所示,条形图是由标题模块1204、图例模块1206、工具提示模块1208、具有选择支持1211的容器模块1210、数值轴模块1212、类别轴模块1214、条形模块1216、值依赖1218、和事件依赖1220来构造的。[0072]图13a_c不出多条图(multiplebarchart)清单样本1302。如图所不,多条图是通过重复使用参考图12a-c描述的单条图模块1202来构造的。工具提示支持1302a-b和选择支持1304a-b也被提供。[0073]图14示出用于构造可视化的示范性过程1400。过程1400可以由系统100自动地或半自动地执行,如先前参考图1所描述的。应当注意到,在下面的讨论中,将使用相似的参考标号对图1中描述的特征进行引用。[0074]在1402,可视化构造框架122接收构造可视化的请求。通常,构造可视化包括创建、修改、和/或导入(import)可视化。可以从,例如,经由相关联的用户接口152的用户交互,接收该用户请求。该用户请求可以指示,例如,对于用于构造可视化的期望的模块或图清单的用户选择。用户可以选择定制来自清单系统127的一个或多个现有模块。[0075]在1404,可视化构造框架122确定是否用户选择的全部模块已经存在于清单系统127中。如果用户选择的全部模块已经存在,则过程1400在1418继续生成图的清单文件。[0076]在1406,可视化构造框架122确定是否需要定制的容器模块。当例如需要现有容器模块中没有的特殊协调方式、布局或其他特性时,会需要定制的容器模块。如果仅仅需要特殊布局,则可以在1410实施定制的布局模块。如果需要除了特殊布局之外的特性,则可以在1412实施新的容器模块。[0077]更具体地,如果需要定制的容器模块,则过程1400在1408继续确定是否需要定制的布局模块。当清单系统127中预先存在的布局模块不满足用户需求时会需要定制的布局模块。例如,可能需要表格布局,而不是默认的流程图布局。如果需要定制的布局模块,过程1400在1410继续以实施布局模块。可以通过定制或者扩展现有布局模块来实施布局模块。在一些实施方式中,用户可以经由相关联的用户接口152编写(write)布局模块清单文件以便实施布局模块。[0078]如果不需要定制的布局模块,则过程1400在1412继续以实施容器模块。可以通过定制或者扩展现有容器模块来实施容器模块。在一些实施方式中,用户可以经由相关联的用户接口152来编写容器模块清单文件。可以根据使用,例如,简单的人类可读语言根据这里描述的描述性方法对布局模块清单文件和容器模块清单文件进行编程,其中所述简单的人类可读语言诸如JavaScript对象表示法(JS0N)、可扩展标记语言(XML)等等。[0079]如果不需要定制的容器模块,则过程1400在1414继续以确定是否需要定制的模块。当清单系统127中的现有模块不满足用户需求时会需要定制的模块。[0080]如果需要定制的模块,则过程1400在1416继续以实施模块。可以通过定制或扩展从清单系统127中检索到的现有模块来实施模块。例如,用户可以选择修改现有模块中预先定义的特性、依赖、和/或事件。在一些实施方式中,用户可以经由相关联的用户接口152编写模块清单文件以便实施定制的模块。应当理解,在需要多于一个的定制模块的情况中,步骤1416可以重复所期望的次数。[0081]如果不需要定制的模块或者全部所期望的模块已经存在于清单系统127中,则过程1400在1418继续以编写图清单文件。在一些实施方式中,用户可以经由相关联的用户接口152来编写图清单文件。可以根据使用,例如,简单的人类可读语言在这里描述的描述性方法对图清单文件进行编程,其中所述简单的人类可读语言诸如JavaScript对象表示法(JSON)、可扩展标记语言(XML)等等。在图清单文件中,用户可以选择重新组织组件模块和/或定义新的图类型。用户也可以将采用现有图类型的模块实施方式(例如,容器、图、或辅助)替换为步骤1410、1412、和/或1416中实施的新模块。[0082]在1420,在清单系统127中注册新的图类型以用于构建新的可视化。例如,清单系统127可以调用"registerCategory"API来创建新的类别,以及调用"register"API以将新的图类型清单安装在新的类别中,其它注册方法也是有用的。[0083]图15示出在运行时构建可视化的示范性过程1500。过程1500可以由系统100自动地或半自动地执行,如先前参考图1所描述的。应当注意到,在下面的讨论中,将使用相似的参考标号引用图1中描述的特征。[0084]在1502,呈现组件124接收图清单文件。可以响应于例如用户经由用户接口152对图的选择,接收图清单文件。[0085]在1504,呈现组件124确定是否存在与图清单相关联的图。如果图的清单文件为"有效"("valid")或者可以在清单系统127中找到,则该图存在。如果图已经存在,则过程1500结束。如果图不存在,则过程在1506继续。[0086]在1506,呈现组件124读取图清单文件并且检查其根模块。在1508,呈现组件124确定根模块是否是容器模块。容器模块可以是可选的,并且当需要多于一个的模块来构造可视化时被实施。换句话说,当指定仅仅一个模块来构造可视化时,容器模块可以不是必需的。[0087]如果根模块是容器模块,在1510,呈现组件124直接从根模块构建模块树。模块树是表示模块之间的引用关系的数据结构。例如,图3b示出模块清单部分324中的示范性模块树。如图所示,根容器模块360引用5个子模块(350、352、354、356、358)。子模块XYContainer(根)354也是引用两个轴模块实例(362、364)、行为模块实例370、和条形图模块实例372的容器类型的模块。[0088]如果根模块不是容器模块,则在1514创建新的模块(而不是模块树)。在1516,呈现组件124分解和/或合并新的模块的特性。所述特性可以在创建图实例时由用户指定。可替换地,所述特性可以在图清单中包括的模块引用中被指定。[0089]在1512,呈现组件124通过使用例如图清单中指定的布局模块来构建图的布局。布局模块负责对全部的模块实例进行定位和/或尺寸衡量(sizing)。期望的布局特性可以由用户指定,或者在图清单中包括的模块引用中被指定。例如,参考图12b,公共容器模块可以被配置为使用默认的布局模块(例如,边界布局模块)。可以通过指出图清单中的一个或多个期望的特性1213来配置默认布局模块。然后默认布局模块可以基于所指出的特性1213来布置子模块。[0090]在1518,呈现组件124分解图清单中引用的模块之间的任何依赖。在一些实施方式中,值依赖和/或事件依赖被分解。所述依赖被分解以便生成连接全部模块实例的依赖配置。由于一些依赖与布局组件的尺寸相关,所以步骤1518通常在步骤1512之后执行。[0091]在1520,呈现组件124呈现图的可视的表示。可以基于由步骤1510确定的模块树或者由步骤1514-1516创建的单一模块来执行所述呈现。在一些实施方式中,可以为模块树中的每个孩子模块实例分配来自其父类模块实例的呈现元素。每个呈现元素可以被处理以呈现图的可视的组件。[0092]虽然已经用对结构化特征和/或方法步骤而言特定的语言描述了上述一个或多个实施方式,将理解,可以无需所描述的特定特征或步骤就可以实践其它实施方式。相反,所述特定的特征和步骤作为一个或多个实施方式的优选形式被公开。【权利要求】1.一种计算机实施的数据可视化的描述性方法,包括:在存储在存储器模块中的清单系统中提供预先定义的模块清单,其中预先定义的模块清单描述表示可视化的特定组件的模块;基于预先定义的模块清单中的至少一个生成新的模块清单;提供引用新的模块清单或者预先定义的模块清单中的至少一个的图清单;基于图清单呈现可视化。2.-种计算机实施的数据可视化的描述性方法,包括:提供一个或多个模块清单,其中模块清单描述表示可视化的特定组件的模块;通过定义图清单来协调所述一个或多个模块;W及基于所述图清单来呈现可视化。3.如权利要求2所述的方法,其中所述模块包括包含子模块的容器类型的模块。4.如权利要求3所述的方法,其中所述容器类型的模块指定布置子模块的布局类型的模块。5.如权利要求2所述的方法,其中所述模块包括便利用户对数据的解释的辅助类型的模块。6.如权利要求5所述的方法,其中所述辅助类型的模块包括标题模块、轴模块、图例模块、或工具提示模块。7.如权利要求2所述的方法,其中所述模块包括W可视的形式表示数据的图类型的模块。8.如权利要求7所述的方法,其中所述图类型的模块包括条形模块、线形模块、饼状模块、散点图或气泡图模块、或雷达模块。9.如权利要求2所述的方法,其中所述模块包括定义可视化的行为的行为类型的模块。10.如权利要求2所述的方法,其中所述提供一个或多个模块清单包括提供JavaScript文件。11.如权利要求2所述的方法,其中所述提供一个或多个模块清单包括基于清单系统中预先定义的模块清单来实施新的模块清单。12.如权利要求11所述的方法,还包括为新的模块清单定制特性值。13.如权利要求2所述的方法,其中定义图清单包括定义化vaScript文件。14.如权利要求2所述的方法,其中所述图清单是基于预先定义的图清单来定义的。15.如权利要求2所述的方法,其中定义所述图清单包括指定两个模块之间的值依赖。16.如权利要求2所述的方法,其中定义所述图清单包括指定两个模块之间的事件依赖。17.-种其上存储了程序代码的非临时性计算机可读介质,所述程序代码可W由计算机运行W便执行W下操作:提供一个或多个模块清单,其中模块清单描述表示可视化的特定组件的模块;通过定义图清单来协调所述一个或多个模块清单;W及基于所述图清单来呈现可视化。18.如权利要求17所述的非临时性计算机可读介质,其中所述模块包括容器类型的模块、布局类型的模块、辅助类型的模块、图类型的模块、或行为类型的模块。19.一种系统,包括:非临时性存储器设备,用于存储计算机可读程序代码;和处理器,其与所述存储器设备通信,所述处理器利用所述计算机可读程序代码操作W便执行W下操作:提供一个或多个模块清单,其中模块清单描述表示可视化的特定组件的模块,通过定义图清单来协调所述一个或多个模块清单,W及基于所述图清单来呈现可视化。20.如权利要求19所述的系统,其中所述模块包括容器类型的模块、布局类型的模块、辅助类型的模块、图类型的模块、或行为类型的模块。【文档编号】G06F9/44GK104346149SQ201310325767【公开日】2015年2月11日申请日期:2013年7月30日优先权日:2013年7月30日【发明者】杨宇彬,柳佳,李徐洲,陶刚,叶伟强申请人:商业对象软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1