基于子图同构的web数据自动可视化方法技术

技术编号:21714316 阅读:110 留言:0更新日期:2019-07-27 19:11
一种基于子图同构的web数据自动可视化方法,包括以下步骤:第一步:构建服务数据可视化建模与匹配方法的架构;第二步:定义元数据树MDT;第三步:读取调用的REST API所返回的JSON数据,将JSON数据集ds作为建模算法的输入,对ds进行树形结构建模;第四步:通过剪枝的方法,保留基本的数据结构信息;第五步:对可视化图形进行分类;第六步:先用降维方法对MDT进行降维操作,生成元结构树MST,再进行匹配查询,调用基于子图同构的匹配方法查找MST中与VT的各个StructModel匹配的片段,并根据Mapping信息进行数据映射生成可视化图形。本发明专利技术将模型进行自动化匹配,以实现数据的自动可视化。

Automatic Visualization of Web Data Based on Subgraph Isomorphism

【技术实现步骤摘要】
基于子图同构的web数据自动可视化方法
本专利技术涉及一种基于子图同构的web数据自动可视化方法。
技术介绍
REST(RepresentationalStateTransfer)架构风格于2000年发布于国际会议ICSE上,它是一种Web体系结构的抽象模型,用于指导重新设计和定义超文本传输协议和统一资源标识符。至今仍然能够根据这种架构风格的应用来了解万维网的工作方式与原理,这对于大规模软件架构的理解与发展有重要意义。RoyT.Fielding博士提出REST架构风格的论文在谷歌学术上统计已经被引用超过7000次,发布于ICSE/TOIT的论文被引用超过2000次。REST服务的流行使得网络上出现了大量的轻量级数据服务,并持续保持爆炸性指数增长,国际上网站上也出现了大量服务供应商,致力于网络服务的集中供应与质量保障。大型在线web服务网站ProgrammableWeb聚集了各个领域大量的API信息,目前其收集的API数量已超过两万,其中REST架构风格的服务占80%以上;各大网络科技公司也有自己的API公开平台,如:Google、YouTube、Facebook、百度、阿里巴巴;还有许多个人开发的API公布在GitHub和个人BLOG上。ProgrammableWeb所收集的服务中,响应格式种类繁多,其中以JSON与XML格式为主。XML(可扩展标记语言)是最古老的数据格式之一。它由W3C(万维网联盟)定义,并基于较旧的SGML(标准通用标记语言)格式。在XML中,数据使用元素和属性进行结构化。JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,是一种理想的数据交换语言。相比之下,XML有大量的冗余元素,重复的元素名称导致数据体量增大。JSON则没有重复元素名称所带来的数据冗余,数据传输速率更高,解析效率与查找效率都高于XML。近年来开发者更倾向于使用JSON作为数据响应格式。在ProgrammableWeb收集的REST服务中,响应格式支持JSON的服务占据了90%以上的比例。多样化的服务催生了巨量的数据信息,而数据信息创造的真正价值在于数据分析。数据可视化可以通过交互式可视化界面及数据-图像转换技术来辅助用户对数据进行分析理解。研究人员研发了多种可视化平台,试图实现数据自动或半自动可视化。Roth提出的SAGE是经典的可视化设计系统,可以根据数据的特性,在用户指定相关约束的情况下,自动生成可视化;Satyanarayan提出的Lyra系统在数据管道中选择数据区域后,根据用户选定的可视化图形及参数实现数据可视化;Ren提出的iVisDesigner系统提供了统一界面进行交互式可视化创建、编辑操作,由固定模式定义的数据集在转换为内部元素后用于可视化映射;Viegas设计的ManyEyes在用户上传数据后,先指定可视化方法,并在此基础上进行各种配置,最终生成交互式可视化结果。在上述可视化系统中,为了尽可能实现数据与图形的自动化匹配,都对数据结构与格式有固定的要求。数据结构与可视图形结构的匹配问题可以抽象为子图同构问题,现已有多种算法针对该问题提出了解决方案。Ullmann算法是一种深度递归算法,也是第一个行之有效的子图同构搜索算法。该算法建立了一个部分匹配结果集,通过不断地增加或删除其中的元素来查找确定正确的匹配结果。近年来还有很多算法在Ullmann算法的理念基础上进行改良,得到更有效的子图同构算法。VF2算法和GraphQL算法通过建立剪枝规则来剪除不符合条件的候选节点,从而减小候选集的大小;QuickSI算法尝试尽可能早访问具有不常见标签的顶点和不常见的相邻边标签的顶点;GADDI算法结合相邻子距(theneighboringdiscriminatingsubstructure(NDS)distance)理念,设计了独特的剪枝规则来缩小候选集的大小;SPath算法通过匹配每个调用的路径来最小化递归树的深度,从而提高查找效率。现有的可视化系统虽然不同程度上化简了数据可视化的操作,但是仍然需要用户参与指导,尤其对于复杂数据需要手工编排以保障更好的可视化效果;没有匹配算法的支持令成图的结果限制于人工设置的范围内,无法充分体现自动可视化的优势。
技术实现思路
为了尽可能实现Web数据的自动可视化,本专利技术提出了一种基于子图同构的web数据自动可视化方法,通过对JSON数据进行树形结构建模及对常见可视化图形进行结构建模来构建标准化通用模型,并基于子图同构算法,给出了一种改进的降维匹配算法将模型进行自动化匹配,以实现数据的自动可视化。本专利技术所采用的技术方案是:一种基于子图同构的web数据自动可视化方法,所述方法包括以下步骤:第一步:构建服务数据可视化建模与匹配方法的架构,包括三个模块:数据建模(DataModeling)、图形建模(GraphicsModeling)、降维匹配(Dimensionality-reductionMatching);第二步:定义元数据树(Metadata_Tree,简写为MDT),包括根节点(Tree_Root,简写为TRoot)、索引节点(Index_Node,简写为INode)、数据节点(Data_Node,简写为DNode),同时用深度(level)来表示节点在树结构中的层数,根节点默认为第一层,即level=1;第三步:读取调用的RESTAPI所返回的JSON数据,将JSON数据集ds作为建模算法的输入,对ds进行树形结构建模;第四步:由于JSON数据集中可能存在批量数据,批量数据通常以相同的数据结构形式存在,在数据集中常用数组的形式表现。若是用户的对于JSON数据分析的重点不在于数据的定位、查询,而是针对数据结构的分析,在上述JSON数据解析建模的方法基础上,可以通过剪枝的方法,保留基本的数据结构信息,剪除相同的重复数据结构,缩小模型的体量,但仍然保留基础的数据结构,降低JSON数据结构所带来的查询开销;第五步:对可视化图形进行分类,归纳总结各类图形的属性及结构特征,通过建模创建一种可视模型树(VisualizationTree,简称VT),来形式化地表述各类图形信息;第六步:子图同构是一个在查询图中查找查询子图,判断查询图中是否包含了查询子图的问题;本步骤中先用降维方法对MDT进行降维操作,生成元结构树(MetaStructure_Tree,简称MST),再将可视模型树VT与MST进行匹配查询,调用基于子图同构的匹配方法查找MST中与VT的各个StructModel匹配的片段,并根据Mapping信息进行数据映射,生成可视化图形。进一步,所述第一步的过程如下:1.1、数据建模:从Internet获取的REST服务经解析器(RESTServiceParser)解析后进行注册,存储于缓存cache或数据库Database中,自动调用后所获取的基于JSON的REST服务数据,通过服务数据建模(ServiceDataModeling)将服务数据转变为标准化模型,并抽取出主要数据结构生成元数据树MDT;1.2、图形建模:对多种配置型可视化工具所支持的图形进行数本文档来自技高网
...

【技术保护点】
1.一种基于子图同构的web数据自动可视化方法,其特征在于,所述方法包括以下步骤:第一步:构建服务数据可视化建模与匹配方法的架构,包括三个模块:数据建模、图形建模和降维匹配;第二步:定义元数据树MDT,包括根节点TRoot、索引节点INode、数据节点DNode,同时用深度level来表示节点在树结构中的层数,根节点默认为第一层,即level=1;第三步:读取调用的REST API所返回的JSON数据,将JSON数据集ds作为建模算法的输入,对ds进行树形结构建模;第四步:由于JSON数据集中可能存在批量数据,批量数据通常以相同的数据结构形式存在,在数据集中常用数组的形式表现;若是用户的对于JSON数据分析的重点不在于数据的定位、查询,而是针对数据结构的分析,在上述JSON数据解析建模的方法基础上,可以通过剪枝的方法,保留基本的数据结构信息,剪除相同的重复数据结构,缩小模型的体量,但仍然保留基础的数据结构,降低JSON数据结构所带来的查询开销;第五步:对可视化图形进行分类,归纳总结各类图形的属性及结构特征,通过建模创建一种可视模型树VT,来形式化地表述各类图形信息;第六步:子图同构是一个在查询图中查找查询子图,判断查询图中是否包含了查询子图的问题;先用降维方法对MDT进行降维操作,生成元结构树MST,再将可视模型树VT与MST进行匹配查询,调用基于子图同构的匹配方法查找MST中与VT的各个StructModel匹配的片段,并根据Mapping信息进行数据映射,生成可视化图形。...

【技术特征摘要】
1.一种基于子图同构的web数据自动可视化方法,其特征在于,所述方法包括以下步骤:第一步:构建服务数据可视化建模与匹配方法的架构,包括三个模块:数据建模、图形建模和降维匹配;第二步:定义元数据树MDT,包括根节点TRoot、索引节点INode、数据节点DNode,同时用深度level来表示节点在树结构中的层数,根节点默认为第一层,即level=1;第三步:读取调用的RESTAPI所返回的JSON数据,将JSON数据集ds作为建模算法的输入,对ds进行树形结构建模;第四步:由于JSON数据集中可能存在批量数据,批量数据通常以相同的数据结构形式存在,在数据集中常用数组的形式表现;若是用户的对于JSON数据分析的重点不在于数据的定位、查询,而是针对数据结构的分析,在上述JSON数据解析建模的方法基础上,可以通过剪枝的方法,保留基本的数据结构信息,剪除相同的重复数据结构,缩小模型的体量,但仍然保留基础的数据结构,降低JSON数据结构所带来的查询开销;第五步:对可视化图形进行分类,归纳总结各类图形的属性及结构特征,通过建模创建一种可视模型树VT,来形式化地表述各类图形信息;第六步:子图同构是一个在查询图中查找查询子图,判断查询图中是否包含了查询子图的问题;先用降维方法对MDT进行降维操作,生成元结构树MST,再将可视模型树VT与MST进行匹配查询,调用基于子图同构的匹配方法查找MST中与VT的各个StructModel匹配的片段,并根据Mapping信息进行数据映射,生成可视化图形。2.如权利要求1所述的基于子图同构的web数据自动可视化方法,其特征在于,所述第一步的过程如下:1.1、数据建模:从Internet获取的REST服务经解析器解析后进行注册,存储于缓存cache或数据库Database中,自动调用后所获取的基于JSON的REST服务数据,通过服务数据建模将服务数据转变为标准化模型,并抽取出主要数据结构生成元数据树MDT;1.2、图形建模:对多种配置型可视化工具所支持的图形进行数据结构分析与归纳,整理出主要图形的通用数据结构及数据映射关系,再根据上述信息进行可视化图形建模,创建描述性可视模型VT;1.3、降维匹配:调取数据建模所生成的MDT,通过降维算法对其进行结构降维,获得包含源数据基础数据结构的元结构树MST,然后通过VT解析器提取出VT中的图形结构模型,在MST中使用基于子图同构的匹配算法来搜索与图形结构模型匹配的数据结构片段,最后输出源数据可生成的图形种类及MST中的匹配片段;1.4、图像生成:根据所属1.3输出的图形种类及MST中的匹配片段,将其按照VT解析器提取出的映射关系通过映射处理器来自动化生成可视化图形。3.如权利要求1或2所述的基于子图同构的web数据自动可视化方法,其特征在于,所述第二步的过程如下:2.1、根节点:MDT的根节点,即MDT的起始节点;2.2、索引节点:代表JSON数据中每一个关键字KEY,但不包括JSON数据中最内层的“键-值”对的关键字,索引节点为非根节点、非叶子节点;2.3、数据节点:代表JSON数据中最内层的“键-值”对,存储为叶子节点;所述2.1中,所述根节点内包含以下信息:2.1.1、星标isMark:记录JSON数据中最外层结构是否为数组类型,若是用1标记,若否用0标记;isMark形式化定义表述如(1)(2),isMark的数据类型为数字NUMBER,若JSON数据中“键-值”对中的值VALUE为数组ARRAY,则isMark=1,否则isMark=0;“#”为数据类型定义符,“::=”为赋值符,〖A→condition⊕<B>:<C>〗表示若A符合条件condition,则该式值为B,否则该式值为C;(1)、“isMark”#<NUMBER>(2)、“isMark”::=〖“VALUE”→ARRAY⊕<1>:<0>〗2.1.2、元素数量arrayNum:若当前节点的isMark为1,则记录数组元素个数,若当前节点的isMark为0,则用0标记;arrayNum形式化定义表述如(3)(4),arrayNum属性值为数字NUMBER类型,若JSON数据中“键-值”对中的值VALUE为ARRAY,则arrayNum等于VALUE数组的长度,否则arrayNum=0;(3)、“arrayNum”#<NUMBER>(4)、“arrayNum”::=〖“VALUE”→ARRAY⊕<ARRAY.length>:<0>〗所述2.2中,所述索引节点内包含以下信息:2.2.1、节点名称name:name的数据类型为字符串STRING,name属性值为JSON数据中“键-值”对中的关键字KEY;name形式化定义表述如(5)(6);(5)、“name”#<STRING>(6)、“name”::=<KEY>2.2.2、节点值类型vType:vType是JSON数据中“键-值”对中的值VALUE的数据类型,属性值为对象OBJECT、数组ARRAY、字符串STRING、数字NUMBER、TRUE、FALSE之一;vType形式化定义表述如(7);(7)、“vType”::=[OBJECT|ARRAY|STRING|NUMBER|TRUE|FALSE]2.2.3、星标isMark:记录JSON数据中,以当前节点名称name作为关键字的“键-值”对中的值VALUE是否为数组类型,若是用1标记,若否用0标记;isMark形式化定义表述同步骤2.1.1中的(1)(2);2.2.4、元素数量arrayNum:若当前节点的isMark为1,则记录“键-值”对中的值VALUE的数组元素个数,若当前节点的isMark为0,则用0标记;arrayNum形式化定义表述同步骤2.1.2中的(3)(4);所述2.3中,所述数据节点内包含以下信息:2.3.1、节点名称name:保存JSON数据中“键-值”对中的关键字KEY,数据类型为字符串STRING;name形式化定义表述同步骤2.2.1中的(5)(6);2.3.2、节点值nValue:nValue的数据类型为STRING,属性值为JSON数据中“键-值”对中的值VALUE;nValue形式化定义表述如(8)(9);(8)、“nValue”#<STRING>(9)、“nValue”::=<VALUE>2.3.3、节点类型type:保存JSON数据中“键-值”对中的值VALUE的数据类型,为“str”、“num”或NULL,其中“str”代表type的数据类型为STRING,“num”代表type的数据类型为NUMBER,NULL表示type的属性值为空;type形式化定义表述如(10);(10)、“type”::=[“str”|“num”|NULL]。4.如权利要求1或2所述的基于子图同构的web数据自动可视化方法,其特征在于,所述第三步的步骤如下:3.1、创建一棵根节点为TRoot的MDT,TRoot是起始节点,根节点的深度level默认为1;3.2、读取JSON数据集ds,如果是首次读取ds,设置ds的第一个元素为当前元素,元素包括关键字KEY及其值VALUE;否则设置ds的下一个元素为当前元素;若JSON数据最外层就是ARRAY,则TRoot的isMark=1,元素数量arrayNum为ARRAY元素个数。5.如权利要求4所述的基于子图同构的web数据自动可视化方法,其特征在于,所述步骤3.2的过程如下:3.2.1、若VALUE的数据类型非OBJECT,同时非ARRAY,创建深度为level+1的数据节点,节点名称name为关键字KEY,节点值nValue为值VALUE,节点类型type为值VALUE的数据类型;完成后跳转至步骤3.2;3.2.2、若VALUE的数据类型为ARRAY,创建深度level’=level+1的索引节点,节点名称name为关键字KEY,节点值类型vType为ARRAY,isMark=1,元素数量arrayNum为当前VALUE数组中的元素个数;3.2.2.1、若所述3.2.2中的VALUE数组的元素不是OBJECT类型,则创建level”=level’+1的数据节点,节点名称name为关键字KEY,节点值nValue为值VALUE,节点类型type为值VALUE的数据类型;完成后跳转至步骤3.2;3.2.2.2、若所述3.2.2中的VALUE数组的元素是OBJECT类型,则创建level”=level’+1的索引节点,节点名称(name)为每个OBJECT元素中的关键字KEY,节点值类型vType为每个OBJECT元素中的值VALUE的数据类型;若当前vType为ARRAY,则isMark=1,元素数量arrayNum为当前VALUE数组中的元素个数;若当前vType不为ARRAY,则isMark=0,arrayNum=0;3.2.2.3、将步骤3.2.2.2中VALUE数组作为新的JSON数据集ds’,跳转至步骤3.2;3.2.3、若VALUE的数据类型为OBJECT,创建深度level’=level+1的索引节点,节点名称name为每个OBJECT元素中的关键字KEY,节点值类型vType为每个OBJECT元素中的值VALUE的数据类型;若当前vType为ARRAY,则isMark=1,元素数量arrayNum为当前VALUE数组中的元素个数;若当前vType不为ARRAY,则isMark=0,arrayNum=0;3.2.4、将步骤3.2.3中VALUE数组作为新的JSON数据集ds’,跳转至步骤3.2。6.如权利要求1或2所述的基于子图同构的web数据自动可视化方法,其特征在于,所述第四步的步骤如下:4.1、从level=1的TRoot开始,按广度优先策略,按层遍历MDT的根节点与索引节点;广度优先策略将按level逐层遍历MDT,从level=1的第一层开始遍历,当level层的节点遍历完成后,再继续遍历level+1层的节点;4.2、将MDT的TRoot存入遍历队列;4.3、按遍历队列顺序,读取每个节点的isMark属性;过程如下:4.3.1、若遍历到的节点的isMark属性值为1,则保留当前节点的第一个子节点,剪除其余的子节点及其子节点的子树结构,跳转至步骤4.3.4;4.3.2、若遍历到的节点的isMark属性值为0,则不进行任何操作,跳转至步骤4.3.4;4.3.3、若遍历到的节点为数据节点,将当前节点从遍历队列中删除,跳转至步骤4.3;4.3.4、将当前遍历到的节点的子节点加入遍历队列,并将当前节点从遍历队列中删除,再跳转至步骤4.3;4.4、当遍历队列中全部为数据节点时或遍历队列为空时,停止遍历,结束方法;4.5、输出剪枝后的MDT。7.如权利要求1或2所述的基于子图同构的web数据自动可视化方法,其特征在于,所述第五步的过程如下:5.1、定义VT包括基础属性BASICATTRIBUTE和可视结构DVSCHEMA两个部分,形式化定义如(11),其中BASICATTRIBUTE保存了图形标题、副标题及其他文本样式的通用信息;(11)、VisualModel::=<BASICATTRIBUTE><DVSCHEMA>5.2、BASICATTRIBUTE包括三个属性:标题title、子标题subtitle、属性attributes,形式化定义如(12),title用于保存最终生成的可视化图形的标题,subtitle用于保存最终生成的可视化图形的子标题,attributes用于保存最终生成的可视化图形的位置、颜色组合、字体、字号设置参数;(12)、BASICATTRIBUTE::=<title><subtitle><attributes>5.3、BASICATTRIBUTE根据图形所需的数据类型、图形数据结构、图形维度将常见的可视化图形归纳为四种基础类别:一般图形General、拓扑图Topology、地图Map、文本图形Text,形式化定义如(13);(13)、DVSCHEMA::=<General><Topology><Map><Text>5.4、步骤5.3中的四种基础类别下属均分别包含两个属性:图形类型VType和图形结构StructModel,VType保存了该类别所属图形种类,StructModel保存了该类别所属图形的基本可视化结构,形式化定义如(14),“A::B”表示“A包含了属...

【专利技术属性】
技术研发人员:陆佳炜高燕煦赵伟程振波徐俊肖刚
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1