CN112083921B - 一种基于声明式语法的两层可视化联动编排方法及系统 - Google Patents
一种基于声明式语法的两层可视化联动编排方法及系统 Download PDFInfo
- Publication number
- CN112083921B CN112083921B CN202010947539.3A CN202010947539A CN112083921B CN 112083921 B CN112083921 B CN 112083921B CN 202010947539 A CN202010947539 A CN 202010947539A CN 112083921 B CN112083921 B CN 112083921B
- Authority
- CN
- China
- Prior art keywords
- grammar
- layer
- data
- linkage
- visual
- 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
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000006243 chemical reaction Methods 0.000 claims abstract description 135
- 230000003993 interaction Effects 0.000 claims abstract description 48
- 238000010586 diagram Methods 0.000 claims abstract description 28
- 230000002452 interceptive effect Effects 0.000 claims abstract description 28
- 238000012800 visualization Methods 0.000 claims description 51
- 238000013507 mapping Methods 0.000 claims description 31
- 238000004458 analytical method Methods 0.000 claims description 18
- 238000013079 data visualisation Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 9
- 238000013501 data transformation Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 7
- 238000013519 translation Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000002457 bidirectional effect Effects 0.000 claims 1
- 238000013461 design Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于声明式语法的两层可视化联动编排方法及系统,包括:抽象联动的交互语义,得到上层框架,抽象联动的数据结构,得到下层框架,建立两层框架的转换关系;基于上层框架,构建基于交互操作的上层编排语法,基于下层框架,构建基于数据流图的下层编排语法,基于两层框架的转换关系,建立两层编排语法的转换关系;根据上述两层编排语法及其转换关系,构建语法解析器,其中,根据上层编排语法,构建上层语法解析模块,根据下层编排语法,构建下层语法解析模块,根据两层语法的转换关系,构建两层语法解析模块之间的连接模块;获取符合所述上层或下层编排语法的描述代码,使用语法解析器进行解析,编排可视化联动。
Description
技术领域
本发明涉及多视图可视化领域,尤其涉及一种基于声明式语法的两层可视化联动编排方法及系统。
背景技术
数据的可视化呈现使人们能够直观、快速地了解数据中的模式和规律。交互式的可视化在此基础上提供了用户交互的功能,使用户能够通过交互改变可视化的呈现,对数据进行探索和分析。多视图可视化通过在视窗内排布多个可视化,使人们能够从多个角度观察数据、综合观察多种数据。交互式的多视图可视化则综合了上述两者的特点。所谓可视化联动,是指在交互式多视图可视化中,用户在某一视图上进行交互触发了多个视图的改变的情形。联动提高了用户的探索和分析过程的效率,促进了用户对于数据中的联系的理解。
可视化联动编排方法,其主要目标是让编排者在已构建多视图可视化的基础上,快速地实现复杂多样的联动。联动编排涉及对交互操作、被可视化数据、数据转换、视图依赖、触发控制之间的关系的指定和具体实现。方法可从四个方面进行评价:一、表现力,指方法能够实现的联动的种类的数量;二、易学性,指编排者学会使用该方法进行联动编排的容易程度;三、编排效率,指熟练编排者使用该方法构建可视化联动的速度;四、兼容性,指方法对现有可视化库的支持程度。
现有编排方法可分为四类。第一类是编程库类的方法(例如D3),在直接编程的基础上提供了丰富的API用于交互监听、数据绑定、视图更新等,表现力强,但由于需要手动编程处理交互事件、视图更新等,易学性、编排效率较差。第二类是声明式语法类的方法(例如Vega-Lite),进一步封装了形状、视觉通道、数据转换、用户交互等可视化元素,使用户能通过在更高层面上声明式地组合这些元素来构建联动的多视图可视化,编排效率较强,但由于需要学习特殊的语法,易学性有限,而表现力的强弱则取决于语法的设计。第三类是图形界面类的方法(例如Tableau),使用户能够在软件内通过常见交互来构建联动的多视图可视化,易学性和编排效率较强,但表现力有限。第四类是自然语言界面类的方法(例如FlowSense),使用户能够通过输入自然语言构建可视化,易学性和编排效率强,而表现力依赖于设计。此外,现有方法中已有方法大多不支持在联动中进行复杂的数据转换,限制了方法的表现力。现有方法中也少有兼容性方面的考虑,大多仅支持内置的可视化;若兼容性强,则用户能够使用他们熟悉的可视化工具构建视图,随后使用编排方法编排联动,从而间接地提高易学性。总之,现有方法中,没有方法能在四个方面都有较好的平衡的表现。
发明内容
本发明实施例的目的是提供一种基于声明式语法的两层可视化联动编排方法及系统,以克服已有的可视化联动编排方法无法在表现力、易学性、编排效率、兼容性四个方面都取得较好表现的问题。为了达到上述目的,本发明实施例所采用的技术方案如下:
第一方面,本发明实施例提供一种基于声明式语法的两层可视化联动编排方法,其特征在于,包括:
抽象联动的交互语义,得到上层框架,抽象联动的数据结构,得到下层框架,建立上层框架和下层框架之间的转换关系;
基于上层框架,构建基于交互操作的声明式的上层编排语法,基于下层框架,构建基于数据流图的声明式的下层编排语法,基于上、下层框架之间的转换关系,建立两层编排语法之间的转换关系;
根据上述两层编排语法和两层编排语法之间的转换关系,构建语法解析器,其中,根据基于交互操作的编排语法,构建上层语法解析模块,根据基于数据流图的编排语法,构建下层语法解析模块,根据两层编排语法之间的转换关系,构建上层语法解析模块和下层语法解析模块之间的连接模块;
获取符合所述上层或下层的编排语法的描述代码,使用语法解析器进行解析,编排可视化联动。
第二方面,本发明实施例还提供一种基于声明式语法的两层可视化联动编排系统,包括:
框架抽象单元,用于抽象联动的交互语义,得到上层框架,抽象联动的数据结构,得到下层框架,建立上层框架和下层框架之间的转换关系;
编排语法构建单元,用于基于上层框架,构建基于交互操作的声明式的上层编排语法,基于下层框架,构建基于数据流图的声明式的下层编排语法,基于上、下层框架之间的转换关系,建立两层编排语法之间的转换关系;
语法解析器构建单元,用于根据上述两层编排语法和两层编排语法之间的转换关系,构建语法解析器,其中,根据基于交互操作的编排语法,构建上层语言语法解析模块,根据基于数据流图的编排语法,构建下层语法的解析模块,根据两层语编排法之间的转换关系,构建上层语法解析模块和下层语法解析模块之间的连接模块;
语法解析与联动编排单元,用于获取符合所述上层或下层的编排语法的描述代码,使用语法解析器进行解析,编排可视化联动。
根据以上技术方案,本发明的有益效果是:该方法通过对可视化联动编排进行语义和结构两层的抽象,设计两层的声明式联动编排语法,并为该语法实现解析器,利用语法解析器解析声明式语法的描述代码来编排可视化联动,以获得上述四个方面的较好表现。该方法的框架和语法分为两层,兼顾了表现力、易学性和编排效率,上层从用户交互的角度出发,易于理解,且可以简洁地指定联动的起点、终点和数据转换,用于提升易学性和编排效率;下层从数据流图的角度出发,可以细致地指定可视化联动的底层结构细节,用于增强表现力。该方法采用声明式语法,在编排可视化联动时可以直接描述所需联动的用户交互或数据流图,无需描述联动的具体实现步骤,提升了易学性和编排效率。本方法的语法解析器能够完成两层编排语法的解析,其中连接模块能够完成上层语法到下层语法的转换,使两层语法能够混用,提升了整体表现,下层语法解析模块能够完成从数据流图描述代码到联动编排效果的解析,屏蔽各种数据转换和可视化的底层细节,提升了兼容性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例提供的一种基于声明式语法的两层可视化联动编排方法的流程图;
图2是本发明实施例提供的一种基于声明式语法的两层可视化联动编排方法的结构图;
图3是发明实施例中实现的地图与直方图、堆叠柱状图之间的可视化联动效果图;
图4是发明实施例中实现的地图与散点图之间含有数据转换的联动的效果图;
图5为本发明实施例提供的一种基于声明式语法的两层可视化联动编排系统的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例1:
本实施例中,利用基于json格式的描述代码、类似英语的自然语言语法作为例子,使用本方法设计了可视化联动编排语法并实现了其解析器,该语法和解析器能够快速地编排多样的联动,随后利用以地图和直方图、堆叠柱状图展示杭州市住宅数据的多视图可视化为例,编排三种可视化之间数据点选中、范围选中、拖动、缩放等交互的联动。
图1为本发明实施例提供的一种基于声明式语法的两层可视化联动编排方法的流程图;本实施例提供的一种基于声明式语法的两层可视化联动编排方法,包括以下步骤:
步骤S101,抽象联动的交互语义,得到上层框架,抽象联动的数据结构,得到下层框架,建立上层框架和下层框架之间的转换关系;
具体地,本实施例中,抽象联动的交互语义,得到上层框架,具体包括:
从用户交互的角度,把多视图可视化中的所有联动视为一个或多个1对1、1对多、或多对1联动的集合,得到上层框架,其中,把一个联动抽象为:一个或多个起点视图的用户交互(Origin)、中间的数据转换(Transformation)、一个或多个响应视图的视图改变(Destination)构成的组合,其中,把数据转换抽象成拥有输入数据列表(InputParameters)、输出数据列表(Output Parameters)、可选的触发条件(Trigger)的黑盒,将联动中响应视图的视图改变抽象为终点视图的用户交互,其中,将用户交互抽象为操作方法(Method)、操作目标(Target)、可视化视图(Visualization)的组合。调研常见可视化联动的实例,总结出7种常见的操作方法类型:选择(select)、筛选(filter)、编码(encode)、导航(navigate)、重排(reconfigure)、添加(append)、设置(set)。根据上述描述,如图3,本例中可以抽象出3个可视化联动,以图3的a和b所示的联动为例:
起点视图的用户交互为在地图(Visualization)上绘制选框选中(Method)部分数据点(Target),数据转换为输入等于输出的恒等映射,其中输入数据列表(InputParameters)只含有一个值,即地图上选中的数据点的集合,输出数据列表(OutputParameters)也只含一个值,即与输入相同的数据点的集合,终点视图的用户交互为在上方、左方的直方图和右方、下方的堆叠柱状图(Visualization)上设置(Method)数据点(Target)。
本步骤从用户交互的角度逐层明确了可视化联动的构成,便于用户理解并描述其所需的可视化联动,为后续上层语法的设计奠定基础。
本实施例中,抽象联动的数据结构,得到下层框架,具体包括:
从数据绑定的角度,将多视图可视化中的所有联动视为一个或多个数据流图,得到下层框架,其中,将可视化联动涉及的数据、可视化和数据转换这三个组分抽象成数据流图的节点,将可视化联动涉及的数据-可视化、数据-数据转换这两种关系抽象成数据流图的边。数据节点存储数据,被多个可视化的多个属性依赖,当数据改变时更新对应可视化属性,从而触发可视化视图的改变。可视化节点对数据进行视觉展现,包含数据的视觉编码、渲染逻辑、更新逻辑。数据转换节点对输入参数进行转换,形成输出结果(其中的转换细节与本发明无关),包含输入参数和输出结果列表。数据-可视化边是数据和可视化属性的绑定。数据-数据转换边是数据转换输入和输出参数与数据的绑定。根据上述描述,如图3所示,本例中可以抽象出3个可视化联动,以图3的a和b所示的联动为例:
数据节点共2个,可命名为数据1和数据2,
可视化节点共5个,即地图中的选中数据点属性,上方直方图、左方直方图、右方堆叠柱状图、下方堆叠柱状图各自的数据集属性,
数据转换节点为恒等映射,输入列表仅含一个输入参数,输出列表仅含一个输出参数,
数据-可视化边共5条,即地图中的选中数据点属性和数据1之间的边,以及数据2到上方直方图、左方直方图、右方堆叠柱状图、下方堆叠柱状图各自的数据集属性的边,
数据-数据转换边共2条,即数据1到恒等映射的输入参数的边,数据2到恒等映射的输出参数的边。
本步骤从底层数据流图的角度明确了可视化联动的构成,有利于用户精确地描述复杂联动,为后续下层语法设计奠定基础。应指出虽然本例中使用了最简单的恒等映射作为数据转换,本方法实际上对于所选用的数据转换没有限制。
本实施例中,建立上层框架和下层框架之间的转换关系,具体包括:
(1)建立上层框架的用户交互到下层框架的可视化节点的映射;根据上述描述,用户交互中的操作方法、操作目标、可视化视图的组合可以唯一指定可视化节点,以图3的a和b所示的联动中的起点的用户交互为例,“在地图上绘制选框选中部分数据点”这一用户交互可以映射到“地图中的选中数据点属性”这一可视化节点。
(2)建立上层框架的数据转换到下层框架的数据转换节点的映射;根据上述描述,从上层框架的数据转换直接获得下层框架的数据转换节点的名称,以图3的a和b所示的联动为例,即由“恒等映射”这一数据转换映射到“恒等映射”数据转换节点。
(3)分析上层框架的起点、终点的用户交互,建立到下层框架的数据节点和数据-可视化边的映射,分析上层框架的数据转换的输入输出关系,建立到下层框架的数据-数据转换边的映射。根据上述描述,以图3的a和b所示的联动的起点用户交互为例,用户交互所含数据可以映射到一个数据节点,且根据用户交互到可视化节点的映射,可以建立到下层框架的数据-可视化边的映射。以图3的a和b所示的联动为例,上层的数据转换的输入输出关系可以映射到下层的数据-数据转换边。
上、下层框架之间的转换关系这一设计能支持更贴近用户、简洁易用的上层框架到更贴近程序实现、精确、功能强大的下层框架的转换,有利于用户在从两种角度去构思可视化联动,有利于在后续上下层语法的转换,以及复用为下层语法设计的解析器的功能。
步骤S102,基于上层框架,构建上层的基于交互操作的编排语法,基于下层框架,构建下层的基于数据流图的编排语法,基于上、下层框架之间的转换关系,建立两层编排语法之间的转换关系;
具体地,本实施例中,基于上层框架,构建上层的基于交互操作的编排语法,具体包括:
将上层语法设计成自然语言规则的形式,每一个联动通过三个子句来声明,依次声明可视化联动的起点、数据转换及终点;
其中声明的起点为:交互操作、操作对象、可视化的三元组的集合;
声明的数据转换为:数据转换名称、输入参数列表、输出参数列表构成的组合;
声明的终点为:交互操作、操作对象、可视化、数据转换输出参数的四元组的集合;
上述声明子句中的操作对象若无指定,则填充为该交互操作的预置默认值。
具体地,交互操作取得的数据自动定义为一个数据数组(Parameters),名为$,其中每个元素名为$(number),如$1,这些数据名称用于定义数据转换的输入参数。数据转换定义为数据转换名称、可选的输入参数列表、可选的触发器的组合,其中输入参数列表默认为$,指定时可引用起点数据数组的元素,也可以另外定义并引用全局数据,或者可以提供单纯字符串作为值。
数据转换的输出定义为一个数组(Parameters),名为$,其中每个元素名为$(number),如$1,这些名称用于在终点中引用。终点类似起点,除了额外定义可选的用于更新数据的数据转换输出,默认为$1。
此外,考虑自然语言本身的语法,添加辅助词增强可读性。语法定义如表1所示。
表1上层框架自然语言语法定义
起点的语法声明实例如"select items in scatterplot",其中select是交互操作,items是操作对象,scatterplot是可视化,若不指定操作对象,则填充为select的默认操作对象,即items。允许在起点里定义多个交互,如"select in chart1,select inchart2",此时,出于编排效率的考虑,在符合自然语言规律的基础上提供简便语法,如"select in chart1and chart2"。
数据转换的语法声明实例如"select in chart1 and chart2,then when my-button clicked,intersect with$1,$2,and data-id",其中第一个子句是如前述的起点部分,第二个子句中,when my-button clicked指定名称为my-button的按钮作为触发器,intersect是数据转换名称,“$1,$2,and data-id”是输入参数列表,将按顺序将对应数据赋值给数据转换的输入参数,其中$1和$2是起点数据数组中的元素,data-id是单纯字符串值。若数据转换为恒等映射(identity),则在描述代码中可以默认省略。
终点的语法声明实例如"set data in chart3 with$2",其中set为交互操作,data为操作对象,chart3为可视化,$2为数据转换输出数组中的第二个元素。
此外,可以在起点和终点中指定可视化为any或者others,此时需搭配一个可视化名单列表,来指定联动生效的范围。
根据上述描述,本例中图3中的三个联动可以声明为,
上层语法采用类似英语自然语言的声明式语法,通过语句中的各成分来指定联动中的各构成组分,从而指定一个联动,在保证较高程度的表达力的基础上提升了易学性和编排效率。
本实施例中,基于下层框架,构建下层的基于数据流图的编排语法,具体包括:
将一个联动声明为一个数据流图的描述对象,其中,显式地声明数据-可视化边、数据-数据转换边,同时隐式地声明数据、可视化、数据转换节点,其中,
(1)根据数据-可视化边的抽象,将其声明为数据和与之绑定的可视化的组合、以及绑定关系的方向,其中,将仅能由数据改变触发可视化更新的绑定声明为单向,将还能通过可视化交互操作改变数据的绑定声明为双向,默认为双向;在json语法中,具体例子为:
如图4中的联动为,用户在地图、散点图组成的多视图可视化中,在地图上用鼠标进行拖拽和缩放,使地图上只显示部分数据点,则散点图中点的选中状态自动随地图上可见状态而改变,散点图中选中点用实心填色圆表示,未选中点用空心圆表示,图4的a为用户操作前的显示状态,图4的b为用户用鼠标拖动、缩放地图后的显示状态。根据上述描述,图4联动中的数据-可视化边可以描述为:
用json对象和数组的形式描述底层数据流图的数据节点和可视化节点的绑定关系,显式地指定了数据-可视化边,隐式地声明了数据节点和可视化节点,支持对这三个组分的精确指定,提升了表达力。
(2)根据数据-数据转换边的抽象,将多个数据节点和一个数据转换节点之间的所有边声明为数据转换的输入、输出列表,其中,将由数据到数据转换的单向边声明为输入列表的项,将由数据转换到数据的单向边声明为输出列表的项,同时可以定义一个可选的触发器。如果没有指定触发器或触发器设为任意(any),则当任一输入参数更新时,数据转换都会立即执行,否则若指定为某个视图上按钮的名字,则仅当按钮按下时执行数据转换。具体json实例如:
根据上述描述,如图4中的联动的数据-数据转换边可以描述为:
用json对象和数组的形式描述了数据节点和数据转换节点的输入输出参数之间的绑定关系,显示地声明了数据-数据转换边,隐式地声明了数据转换节点,支持对数据转换相关信息的精确指定,提升了表达力。
本实施例中,基于上、下层框架之间的转换关系,建立两层编排语法之间的转换关系,具体包括:
(1)根据上层框架的用户交互到下层框架的可视化节点的映射,建立上层语法的用户交互中的三元组或四元组声明到下层语法的可视化声明的映射;以图3的a、b所示的联动的起点用户交互为例,上层语法的select items in map可以映射到下层语法数据可视化边中隐式声明的可视化节点map.items。
(2)根据上层框架的数据转换到下层框架的数据转换节点的映射,建立上层语法的数据转换声明到下层语法的数据转换声明的映射;以图3的a、b所示的联动为例,上层语法的恒等映射数据转换可以映射到下层语法恒等映射数据转换节点。
(3)根据上层框架起点终点到下层框架的数据节点和数据-可视化边的映射,建立可视化联动的起点和终点的声明到下层语法的数据-可视化边的声明的映射;根据上层框架的数据转换的输入输出关系到下层框架的数据-数据转换边的映射,建立两者的声明之间的映射。以图3的a、b所示的联动为例,上层语法的起点用户交互select items in map和终点用户交互set data in histo-top,histo-left,stackedbar-right,and stackedbar-bottom可以映射为下层数据节点和数据-可视化边:
上层语法的恒等映射的输入输出关系可以映射为下层的数据-数据转换边的声明:
建立上层语法到下层语法的转换关系是为了使语法解析器能够将上层语法解析成下层语法,以利于复用为下层语法设计的解析器的功能以实现联动的编排。
步骤S103,根据上述两层编排语法和两层编排语法之间的转换关系,构建语法解析器,其中,根据基于交互操作的编排语法,构建上层语言语法解析模块,根据基于数据流图的编排语法,构建下层语法的解析模块,根据两层语编排法之间的转换关系,构建上层语法解析模块和下层语法解析模块之间的连接模块;
具体地,本实施例中,根据基于交互操作的编排语法,构建上层语言语法解析模块,具体包括:
通过词法分析、默认值填充,解析符合上层语法的声明,输出联动起点、终点、数据转换的各组分信息,构建上层语言语法解析模块。根据上述描述,本例中的上层语法解析模块可以从符合上层语法的描述代码中提取出可视化联动的关键信息。
本实施例中,根据基于数据流图的编排语法,构建下层语法的解析模块,具体包括:
解析符合下层语法的声明,获得数据-可视化边、数据-数据转换边的各组分信息,将数据、可视化属性、数据转换的输入和输出实例化成响应式数据实例(利用响应式数据模型定义可视化属性与操作方法、操作目标名称的映射关系,并定义属性改变时更新视图的回调函数),利用各边的连接关系,构建数据、可视化、数据转换之间的依赖,利用观察者模式,在被依赖的响应式数据实例的依赖者列表中添加依赖者(其他响应式数据实例),监听改变并传播依赖、触发更新,编排可视化联动,构建下层语法的解析模块;若有按钮触发器,添加用户事件监听器,在按钮按下时触发对应数据转换的执行。
根据上述描述,本例中的下层语法解析模块可以从符合下层语法的描述代码中提取出可视化联动的关键信息,并利用响应式数据模型进行联动编排的具体实现。
本实施例中,根据两层语编排法之间的转换关系,构建上层语法解析模块和下层语法解析模块之间的连接模块,具体包括:
按照两层语法间的转换关系,重组联动起点、终点、数据转换的各组分信息,输出符合下层语法的声明,构建连接模块。根据上述描述,本例中的连接模块能够从由上层语法解析获得的联动关键信息中构建出符合下层语法的描述代码,从而复用下层语法解析模块实现联动的编排。
步骤S104,获取符合所述上层或下层的编排语法的描述代码,使用语法解析器进行解析,编排可视化联动。
具体地,获取符合上层语法或者下层语法的联动声明,若为符合上层语法的声明,则根据上层语法解析模块,获得联动起点、终点、数据转换的各组分信息,再根据连接模块,获得符合下层语法的声明,再进入若为符合下层语法的声明时相同的步骤;若为符合下层语法的声明,则根据下层语法解析模块,编排可视化联动。
获取如图3中所示的所有联动(coordinations)的描述代码如下所示,其中数组的每一项为一个联动的描述代码:
该描述代码为符合上层语法的描述代码,指定了编排地图与直方图、堆叠柱状图之间的三个联动,通过上层语法解析模块提取联动的关键信息,通过连接模块产生符合下层语法的描述代码,然后通过下层语法解析模块实现三个联动的编排,
其一为地图中的点的选中与四周的直方图、堆叠柱状图的数据重设之间的联动,即用户用鼠标在地图中绘制选框选中数据点时,直方图、堆叠柱状图的数据源变为选中的数据点,有助于用户对所选中的局部地理空间内的住宅分布及其他属性的了解,效果如图3中a和b所示;
其二为地图、四周的直方图和堆叠柱状图的范围选中之间的联动,即用户用鼠标在直方图、堆叠柱状图、或者地图上刷选一个范围时,其余视图也会自动更新选中范围,有助于用户对住宅各属性之间的关系的综合理解,效果如图3中a和c所示;
其三为地图的拖动、缩放与四周的直方图和堆叠柱状图的拖动、缩放之间的联动,即用户用鼠标在地图上进行拖拽、用鼠标滚轮进行缩放时,直方图、堆叠柱状图也会自动呈现拖拽、缩放的效果,有助于用户探索不同地理空间范围和不同缩放比例下的住宅分布及其他属性,如图3中a和d所示。
根据上述描述,通过声明式的语法实现了地图和四周的直方图、堆叠柱状图的三种联动的编排,采取此设计是因为住宅数据含有地理空间信息及其他属性信息(如房价、建造年份、面积等)等多方面信息,适合用多视图联动的可视化进行呈现,以方便用户对多个视图的同步操作、促进用户对数据多个属性之间的关系的综合理解,因此设计了地图、直方图、堆叠柱状图之间的数据点选中、范围选中、拖动、缩放等交互的联动,通过声明式语法直观、简洁地描述了联动,通过解析器快速实现了联动编排。
获取如图4中的联动的描述代码如下:
该描述代码为符合下层语法的描述代码,以数据流图的形式指定了地图的可见范围的变化和散点图的选中点集的变化之间的联动,如图4所示(散点图用实心填色点表示选中点),明确地定义了数据流图的各组分,有很大的表现力空间。
实施例2:
图5为本发明实施例提供的一种基于声明式语法的两层可视化联动编排系统的框图,该系统可以执行任意本发明任意实施例所提供的一种基于声明式语法的两层可视化联动编排方法,具备执行该方法相应的功能模块和有益效果。该系统包括:
框架抽象单元901,用于抽象联动的交互语义,得到上层框架,抽象联动的数据结构,得到下层框架,建立上层框架和下层框架之间的转换关系;
编排语法构建单元902,用于基于上层框架,构建上层的基于交互操作的编排语法,基于下层框架,构建下层的基于数据流图的编排语法,基于上、下层框架之间的转换关系,建立两层编排语法之间的转换关系;
语法解析器构建单元903,用于根据上述两层编排语法和两层编排语法之间的转换关系,构建语法解析器,其中,根据基于交互操作的编排语法,构建上层语言语法解析模块,根据基于数据流图的编排语法,构建下层语法的解析模块,根据两层语编排法之间的转换关系,构建上层语法解析模块和下层语法解析模块之间的连接模块;
语法解析与联动编排单元904,用于获取符合所述上层或下层的编排语法的描述代码,使用语法解析器进行解析,编排可视化联动。
各单元的细化功能都已在实施例1做了详细的描述,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的设备实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于声明式语法的两层可视化联动编排方法,其特征在于,包括:
抽象联动的交互语义,得到上层框架,抽象联动的数据结构,得到下层框架,建立上层框架和下层框架之间的转换关系;
基于上层框架,构建基于交互操作的声明式的上层编排语法,基于下层框架,构建基于数据流图的声明式的下层编排语法,基于上、下层框架之间的转换关系,建立两层编排语法之间的转换关系;
根据上述两层编排语法和两层编排语法之间的转换关系,构建语法解析器,其中,根据基于交互操作的编排语法,构建上层语法解析模块,根据基于数据流图的编排语法,构建下层语法解析模块,根据两层编排语法之间的转换关系,构建上层语法解析模块和下层语法解析模块之间的连接模块;
获取符合所述上层或下层的编排语法的描述代码,使用语法解析器进行解析,编排可视化联动。
2.根据权利要求1所述的一种基于声明式语法的两层可视化联动编排方法,其特征在于,抽象联动的交互语义,得到上层框架,具体包括:
从用户交互的角度,把多视图可视化中的所有联动视为一个或多个1对1、1对多、或多对1联动的集合,得到上层框架,其中把一个联动抽象为:一个或多个起点视图的用户交互、中间存在的数据转换、以及一个或多个响应视图的视图改变构成的组合,其中,将数据转换抽象成拥有输入数据列表、输出数据列表的黑盒,将联动中响应视图的视图改变抽象为终点视图的用户交互,其中,将用户交互抽象为操作方法、操作目标、以及可视化视图的组合。
3.根据权利要求1所述的一种基于声明式语法的两层可视化联动编排方法,其特征在于,抽象联动的数据结构,得到下层框架,具体包括:
从数据绑定的角度,将多视图可视化中的所有联动视为一个或多个数据流图,得到下层框架,其中将可视化联动涉及的数据、可视化和数据转换这三个组分抽象成数据流图的节点,将可视化联动涉及的数据-可视化、数据-数据转换这两种关系抽象成数据流图的边。
4.根据权利要求1所述的一种基于声明式语法的两层可视化联动编排方法,其特征在于,建立上层框架和下层框架之间的转换关系,具体包括:
建立上层框架的用户交互到下层框架的可视化节点的映射;
建立上层框架的数据转换到下层框架的数据转换节点的映射;
分析上层框架的起点、终点的用户交互,建立到下层框架的数据节点和数据-可视化边的映射,分析上层框架的数据转换的输入输出关系,建立到下层框架的数据-数据转换边的映射。
5.根据权利要求1所述的一种基于声明式语法的两层可视化联动编排方法,其特征在于,基于上层框架,构建基于交互操作的声明式的上层编排语法,具体包括:
将上层语法设计成自然语言规则的形式,每一个联动通过三个子句来声明,依次声明可视化联动的起点、数据转换及终点;
其中声明的起点为:交互操作、操作对象、可视化的三元组的集合;
声明的数据转换为:数据转换名称、输入参数列表、输出参数列表构成的组合;
声明的终点为:交互操作、操作对象、可视化、数据转换输出参数的四元组的集合。
6.根据权利要求1所述的一种基于声明式语法的两层可视化联动编排方法,其特征在于,基于下层框架,构建基于数据流图的声明式的下层编排语法,具体包括:
将一个联动声明为一个数据流图的描述对象,其中,显式地声明数据-可视化边、数据-数据转换边,同时隐式地声明数据、可视化、数据转换节点,其中
根据数据-可视化边的抽象,将其声明为数据和与之绑定的可视化的组合、以及绑定关系的方向,其中,将仅能由数据改变触发可视化更新的绑定声明为单向,将还能通过可视化交互操作改变数据的绑定声明为双向;
根据数据-数据转换边的抽象,将多个数据节点和一个数据转换节点之间的所有边声明为数据转换的输入、输出列表,其中,将由数据到数据转换的单向边声明为输入列表的项,将由数据转换到数据的单向边声明为输出列表的项。
7.根据权利要求1所述的一种基于声明式语法的两层可视化联动编排方法,其特征在于,基于上、下层框架之间的转换关系,建立两层编排语法之间的转换关系,具体包括:
根据上层框架的用户交互到下层框架的可视化节点的映射,建立上层语法的起点中的三元组或四元组声明到下层语法的可视化声明的映射;
根据上层框架的数据转换到下层框架的数据转换节点的映射,建立上层语法的数据转换声明到下层语法的数据转换声明的映射;
根据上层框架起点终点到下层框架的数据节点和数据-可视化边的映射,建立可视化联动的起点和终点的声明到下层语法的数据-可视化边的声明的映射;根据上层框架的数据转换的输入输出关系到下层框架的数据-数据转换边的映射,建立两者的声明之间的映射。
8.根据权利要求1所述的一种基于声明式语法的两层可视化联动编排方法,其特征在于,根据基于交互操作的声明式的上层编排语法,构建上层语法解析模块,具体包括:
解析符合上层语法的声明,输出联动起点、终点、数据转换的各组分信息,构建上层语言语法解析模块;
根据基于数据流图的声明式的下层编排语法,构建下层语法解析模块,具体包括:
解析符合下层语法的声明,获得数据-可视化边、数据-数据转换边的各组分信息,利用各边的连接关系,构建数据、可视化、数据转换之间的依赖,利用观察者模式,监听改变并传播依赖、触发更新,编排可视化联动,构建下层语法的解析模块;
根据两层编排语法之间的转换关系,构建上层语法解析模块和下层语法解析模块之间的连接模块,具体包括:
按照两层语法间的转换关系,重组联动起点、终点、数据转换的各组分信息,输出符合下层语法的声明,构建连接模块。
9.根据权利要求1所述的一种基于声明式语法的两层可视化联动编排方法,其特征在于,获取符合所述上层或下层的编排语法的描述代码,使用语法解析器进行解析,编排可视化联动,具体包括:
获取符合上层语法或者下层语法的联动声明,若为符合上层语法的声明,则根据上层语法解析模块,获得联动起点、终点、数据转换的各组分信息,再根据连接模块,获得符合下层语法的声明,再进入若为符合下层语法的声明时相同的步骤;若为符合下层语法的声明,则根据下层语法解析模块,编排可视化联动。
10.一种基于声明式语法的两层可视化联动编排系统,其特征在于,包括:
框架抽象单元,用于抽象联动的交互语义,得到上层框架,抽象联动的数据结构,得到下层框架,建立上层框架和下层框架之间的转换关系;
编排语法构建单元,用于基于上层框架,构建基于交互操作的声明式的上层编排语法,基于下层框架,构建基于数据流图的声明式的下层编排语法,基于上、下层框架之间的转换关系,建立两层编排语法之间的转换关系;
语法解析器构建单元,用于根据上述两层编排语法和两层编排语法之间的转换关系,构建语法解析器,其中,根据基于交互操作的编排语法,构建上层语言语法解析模块,根据基于数据流图的编排语法,构建下层语法的解析模块,根据两层语编排法之间的转换关系,构建上层语法解析模块和下层语法解析模块之间的连接模块;
语法解析与联动编排单元,用于获取符合所述上层或下层的编排语法的描述代码,使用语法解析器进行解析,编排可视化联动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010947539.3A CN112083921B (zh) | 2020-09-10 | 2020-09-10 | 一种基于声明式语法的两层可视化联动编排方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010947539.3A CN112083921B (zh) | 2020-09-10 | 2020-09-10 | 一种基于声明式语法的两层可视化联动编排方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112083921A CN112083921A (zh) | 2020-12-15 |
CN112083921B true CN112083921B (zh) | 2023-12-19 |
Family
ID=73736208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010947539.3A Active CN112083921B (zh) | 2020-09-10 | 2020-09-10 | 一种基于声明式语法的两层可视化联动编排方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112083921B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3037958A1 (en) * | 2014-12-24 | 2016-06-29 | SAP Portals Israel, Ltd. | Declarative user interface representation conversion via hierarchical templates |
CN106951305A (zh) * | 2017-03-24 | 2017-07-14 | 南京大学 | 一种基于模型转换由QVT‑R语言生成midCore脚本的方法 |
CN110471666A (zh) * | 2019-07-18 | 2019-11-19 | 五八有限公司 | 代码自动转换方法和装置、代码转换器及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6944603B2 (en) * | 2000-06-24 | 2005-09-13 | International Business Machines Corporation | Fractal semantic network generator |
-
2020
- 2020-09-10 CN CN202010947539.3A patent/CN112083921B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3037958A1 (en) * | 2014-12-24 | 2016-06-29 | SAP Portals Israel, Ltd. | Declarative user interface representation conversion via hierarchical templates |
CN106951305A (zh) * | 2017-03-24 | 2017-07-14 | 南京大学 | 一种基于模型转换由QVT‑R语言生成midCore脚本的方法 |
CN110471666A (zh) * | 2019-07-18 | 2019-11-19 | 五八有限公司 | 代码自动转换方法和装置、代码转换器及介质 |
Non-Patent Citations (2)
Title |
---|
一种基于语义重构的模型映射方法;杨潇;万建成;侯金奎;;计算机工程(第23期);全文 * |
可视化建模语言编辑器的自动生成和配置技术;张莉;姜可;高晖;;北京航空航天大学学报(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112083921A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Schwinger et al. | A survey on web modeling approaches for ubiquitous web applications | |
US9424026B2 (en) | Visualizations of inter-entity calls | |
US8275775B2 (en) | Providing web services from business intelligence queries | |
US20110173220A1 (en) | Generating web services from business intelligence queries | |
Pardillo et al. | Extending OCL for OLAP querying on conceptual multidimensional models of data warehouses | |
JP2006510133A (ja) | 関連出願と相互参照するグラフィック利用者インターフェースのためのモデル化システム | |
US20080082962A1 (en) | User interface for defining a text file transformation | |
Lee | Building environment rule and analysis (BERA) language | |
Grundy et al. | Domain-specific visual languages for specifying and generating data mapping systems | |
JP2007527058A (ja) | データおよびメタ・データをリンクさせるためのフォームの構成メカニズムおよびその方法 | |
US7779005B2 (en) | Database management apparatus and method of managing database | |
Mutlu et al. | Automated Visualization Support for Linked Research Data. | |
US20240061993A1 (en) | Multi-component abstract association and fusion method and apparatus in page design | |
CN112083921B (zh) | 一种基于声明式语法的两层可视化联动编排方法及系统 | |
Nestor et al. | Visualisation of variability in software product line engineering | |
Liu et al. | Maramatatau: Extending a domain specific visual language meta tool with a declarative constraint mechanism | |
Shishedjiev et al. | XML-based language for specific scientific data description | |
Rinker et al. | A multi-model reviewing approach for production systems engineering models | |
Spidlen et al. | MUDRLite-health record tailored to your particular needs | |
Kövesdán et al. | A classification of domain-specific language intents | |
Bakhtin | A tool for querying multi-model data | |
JP4865323B2 (ja) | 図形情報処理装置 | |
Sampson et al. | Visual ontology alignment for semantic web applications | |
Grundy | End-User Applications of DSVLs and MDE | |
CN117312438A (zh) | 数据处理方法、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |