CN101589384A - 用于测量svg文档相似性的系统和方法 - Google Patents

用于测量svg文档相似性的系统和方法 Download PDF

Info

Publication number
CN101589384A
CN101589384A CNA2006800434767A CN200680043476A CN101589384A CN 101589384 A CN101589384 A CN 101589384A CN A2006800434767 A CNA2006800434767 A CN A2006800434767A CN 200680043476 A CN200680043476 A CN 200680043476A CN 101589384 A CN101589384 A CN 101589384A
Authority
CN
China
Prior art keywords
svg
logic
document
dom tree
similarity
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.)
Granted
Application number
CNA2006800434767A
Other languages
English (en)
Other versions
CN101589384B (zh
Inventor
V·塞特卢尔
M·英格拉西亚
S·奇图里
T·卡平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN101589384A publication Critical patent/CN101589384A/zh
Application granted granted Critical
Publication of CN101589384B publication Critical patent/CN101589384B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query processing
    • G06F16/8373Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Abstract

一种用于测量SVG文档之间相似性的系统和方法。本发明涉及将各文档降低到它们的最小逻辑表示,然后使用树同构化技术来分析该表示。接下来,应用可以使用该比较数据来更有效地执行动作,例如内容压缩、内容流式传输以及内容搜索。

Description

用于测量SVG文档相似性的系统和方法
技术领域
本发明一般地涉及用于可伸缩矢量图形(SVG)文档的系统。更具体地,本发明涉及用于测量SVG文档中相似性程度的系统和方法。
背景技术
在许多应用中,测量对象之间的相似性水平或程度是很有用的。基于图像的固有颜色和纹理属性来执行图像相似性。可以基于考虑拓扑和特征匹配的形状匹配算法来比较3D对象。可以通过从简单的“diff”程序到更为高级的模式匹配和语义归组算法的量度来匹配文本内容。
尽管许多系统和机制已知用于确定和测量XML文档之间的相似性的水平,但计算SVG文档间的相似性不是那么简单。SVG内容基于下层的XML格式。SVG文档的基本困难在于,具有很相似的下层XML表示的两个给定SVG文档当被呈现(render)时可能具有完全不同的视觉表示,并且反之亦然。图1(a)和图1(b)举例示出该问题。尽管图1(a)和图1(b)中的两个SVG文档看起来相同,但它们的下层文本表示彼此完全不同。特别地,图1(a)使用<defs>和<use>元素来预定义形状并且以不同的颜色和位置来重新使用它们。另一方面,图1(b)在没有重新使用性的情况下单独地呈现每个形状。如果系统依赖于传统的文档比较方法来确定这些文档之间的相似性,则文档可能被分类为完全不同。另外,用于确定相似性水平的传统上基于像素的方法不是最优的,因为将不得不将SVG呈现的内容转换成光栅图形,并且当涉及动画时,则处理变得更为复杂。
另一方面,图2(a)和2(b)表示出一种情形,其中SVG文本内容彼此相似,但文档自身具有十分不同的视觉外观。两个文档之间的不同仅在于下层的SVG文本为“style=“visibility:hidden.””。然而,这小小的差异使得最终的图像在视觉上看起来很不同。
尽管对于2D图形,SVG被认为是有前景的基于XML的语言,其潜在地为新的消费者和企业服务打开许多可能性,但在这些不同的应用中优化SVG远还没有哪怕是相对小的进步。
先前已经开发了若干种方法和工具来计算XML文档间的相似性。例如,一种称为“XML Diff”的工具检测XML子树中的结构变化并且生成描述两个子树之间差异的Diffgram。第二种方法涉及使用匹配算法来测量XML文档和DTD之间的结构相似性。第三种方法涉及通过将每个XML文档表示为数字序列来将其结构线性化,并且接着通过对它们频率进行分析来比较序列。第四种方法涉及用于XML文档的结构相似性量度,其基于由DTD得到的有序标记树到聚类(cluster)文档之间的“XML aware”编辑距离。第五种方法在基于文档的矢量形式表示文档后测量矢量之间的相似性。该方法用于获得在两个给定文档之间的结构相似性的测量,并且在美国专利申请公布号2005/0038785中有所讨论。然而,这些系统没有关注下层内容和视觉表示中的差异问题,因为XML本身不是可见的并且SVG是XML内容的特殊形式。
除了上述,还有若干种方法用于基于某些优化来压缩XML内容以移除冗余模式。一个此类的系统是新的XML压缩机制,其基于Sequitur压缩算法以移除其表示中过量的信息冗余。通过将压缩结果组织为一组上下文自由语法规则,该机制在没有解压缩的情况下支持XPath查询的处理。另一种方法涉及一种工具,其通过数据交换和存档中的应用来压缩XML数据,其通常以大致相同的速率实现两倍于gzip的压缩率。该压缩器称为XMill,其结合以及组合现有的压缩器以将它们应用到异类的XML数据。XMill使用zlib,其用于gzip的库函数,用于简单数据类型的数据类型特定压缩器的集合,以及用于应用特定数据的用户定义压缩器。
发明内容
本发明提供一种改进的处理,其用于确定任意两个给定SVG文档是否视觉上相似,以及确定文档之间相似性程度和相似性特性。本发明引入一种机制,其基于某些SVG优化启发式算法(heuristics)来将各个SVG文档转换成它们最小的逻辑表示。接着在表示的减小逻辑DOM树上计算这些逻辑表示的相似性。树同构化用于确定树结构相对于彼此如何相似。若干种量度,例如最大公共子树和树距离度量,可用于确定两个给定树之间的公共节点的最大数目。最大公共子树越大,则这两个树也更为相似。
本发明用于将SVG减小到它的最小逻辑形式的方法不同于上述讨论的XML压缩方法,其不同之处在于,利用本发明,基本上以不同的方式来计算最小的表示。另外,不同于先前讨论的基于压缩的方法,最小逻辑SVG形式仍是未压缩的并且仍能够使用本发明的系统和方法来进行呈现。
本发明能够最大程度地改进并且甚至优化SVG的性能,从而包括SVG内容的大数据集合的下层逻辑表示可以基于计算的相似性信息来更为有效地修改、更新或遍历(traverse)。本发明的独特性在于,其关心SVG类型的内容,其中在实际计算相似性程度前,需要考虑下层的XML表示和其可视外观。此外,本发明提供新的技术,其用于通过在归一化的SVG树上应用树同构性来计算相似性、计算SVG文档的最小逻辑表示并且表示该相似性信息。
本发明的系统和方法可以应用到各种用例中,特别是与移动设备群体相关的。在流式传输的方案中,该相似性信息允许客户端更为明确是否使用到达的数据分组来重构场景图形。另外,客户端能够基于在RTP净荷报头中提供的信息来修复其现有的场景图形,而不是破坏掉整个场景图形并且重构一个新的。在内容搜索情形中,可以基于示例的SVG文档或通过查询关键词来检索类似的SVG文档。这有助于更为有效的和智能的内容搜索应用。在压缩情形中,通过观察文档内的相似性,可以通过替代地仅存储元素ID来移除给定SVG文档内的冗余信息。
通过结合附图的下述详细说明,本发明的这些和其他目的、优点和特征,以及组织和操作方式将变得清楚,其中贯穿下述的几个附图,相同的元件以相同的标号表示。
附图说明
图1(a)和图1(b)示出图形上表现相似、但下层文本表示极大不同的两个SVG文档的例子;
图2(a)和图2(b)示出图形上表现不同、但下层文本表示类似的两个SVG文档的例子;
图3示出通过忽略冗余、未引用和未使用的SVG元素来将SVG文档的下层文本表示转换成最小逻辑表示;
图4演示在从SVG文档计算最小逻辑表示时解析属性的例子;
图5示出计算计算最小逻辑表示时忽视更少的重要信息的例子;
图6示出两个SVG文档共享它们之间的某些类似内容的例子;
图7示出两个SVG文档共享它们之间的某些类似结构的例子;
图8示出两个SVG文档共享它们之间的类似内容和结构的例子;
图9(a)表示原始SVG场景的图形描绘;图9(b)表示场景更新的效果:SetpdateAttribute动作;图9(c)示出后续场景更新的影响:AddElement(添加元素)动作;图9(d)表示后续场景更新的影响:DeleteElement(删除元素)动作;以及图9(e)表示后续场景更新的影响:ReplaceElement(替换元素)动作;
图10是示出将重要性权重分配给SVG文档中的单个内容片的示图;
图11是示出用于实现本发明的一个实施方式的处理的流程图;
图12是其中可以实现本发明的系统的概略图;
图13是可结合本发明原理的电子设备的透视图;以及
图14是图13的电子设备的电路的示意图。
具体实施方式
本发明提供了一种系统和方法,其用于将SVG文档减小到它们的最小逻辑DOM树结构,从而避免每个文档的视觉表示和下层文本表示之间的不一致性问题。接着本发明可基于树的同构性来将相似性度量应用于计算SVG文档之间的相似性程度。本发明可用于例如流式传输、内容搜索和压缩的应用中。下面将讨论这些用例中的每一个。
在图11中描绘出根据本发明的计算SVG样本之间相似性的处理。在步骤100处,确定两个SVG文档的最小逻辑表示。在步骤110处,在每个SVG的文档对象模型(DOM)上执行树的同构性。在步骤120处,系统针对每个文档将相似性度量应用于创建的分层树。在步骤130处,创建针对两个文档的、所计算的相似性信息的表示。接着在步骤140处,该信息可以由若干个应用中的一个来使用。下面将讨论这些处理部分的每个。
在本发明的一个实施方式中,确定SVG文档的最小逻辑表示涉及四个不同的子处理。第一子处理涉及瓦解(collapse)该文档。冗余、未引用和未使用的SVG元素和注释被忽略。应用该子处理以便将对于SVG文档的视觉表示没有贡献的元素移除。文档可能经常包含不被呈现或可能设置成不可见的<defs>块内的特定元素定义。可以在将所讨论的文档与其他SVG文档进行比较之前移除此类的元素。在图3中描绘出该瓦解子处理,其中注释和带有“visibility:hidden(可视性:隐藏)”设置的指令被移除。
第二子处理涉及“替换”。该子处理应用于扩展SVG文档内的内部引用和定义,解析引用和将相对URL解析成绝对URL以便更为公平地比较。如图1中所见,<defs>和<use>元素意味着元素定义的可重用性并且可以在SVG文档中按照期望多次使用。如果存在<use>元素,则使用的内容被克隆并且可视地附加到<use>元素。该克隆内容是获得“<use>ed”的原始元素的“阴影树”。替换涉及扩展其中提到<use>元素的元素定义内联(inline)。可以如此执行,从而精确地将文档与例如不使用<defs>和<use>元素的另一个视觉类似的SVG文档进行比较。
创建最小逻辑表示的第三子处理涉及解析属性。通常,即使从<defs>块正确地替换了引用,并且以“xlink:href”使用相同的元素id,但文档中的属性也可能不同。这可导致视觉表示中的显著变化。例如,在SVG动画中,高度、宽度、开始时间等的改变可能导致在特定时间戳处的完全不同画面。在图4中示出此类的例子。在该方案中,尽管两个文档使用了相同的动画定义,但实际动画中的属性并不同,如在两秒标记处的相应视觉表示中所指示出的。当第一动画比第二动画早一秒开始时,通过两秒标记,矩形已经从紫色改变为黄色。
创建最小逻辑表示的第四子处理涉及忽略不太重要的差异。SVG中的各个元素或属性通常可能与其他元素或属性不一样重要。例如,当计算相似性以用于某些应用时,字体类型和大小的差异可以被忽略。另外,SVG嵌入其他的媒体,例如光栅图像、音频和视频。除了计算SVG相似性以外,这些元素也将需要音频/视频相似性量度单独地应用到它们,或根据特定的应用或系统,可以简单地忽略这些元素。在图5示出的例子中,两个SVG文档在视觉上相似,例外在于当与第二图像比较时,第一图像中的单词“Hello(你好)”更大。观察文本表示,可以看到字体大小的变化。根据应用,这可以不是很重要,并且当创建最小逻辑表示时,如果应用允许这样,则“font-size(字体大小)”属性可以忽略。
图11中的步骤110涉及每个SVG的文档对象模型(DOM)上的树同构性。在SVG中,按照元素在场景图形或文档对象模型(DOM)中出现的顺序来呈现这些元素。以该数据格式的每个元素可以被认为是在其上应用着色的画布。如果将对象由<g>标签归组到一起,则首先它们被呈现为单独的组画布,接着使用与组关联的过滤器或阿尔法遮罩(alpha mask)来在主画布上进行合成。以类似XML的节点标记的树结构来给出下层的SVG定义。换句话说,DOM可以被视为有向非循环树,允许对组成各种SVG元素的树的节点进行遍历。
如果通过简单地对节点进行重命名而将一个树变换成另一个树,则两个给定的树通常被认为是同构的。SVG文档树T可以被定义为4元组T=(N,r,E,L),其中N是节点的有限集;属于N的r=root(T)是根节点‘<svg>’;E是边缘并且因此与N2成二元关系;并且L定义表示如在SVG 1.2中定义的元素名或属性的字符串,其可在http://www.w3.org/TR/SVG12/找到。
为了使得两个SVG树T1和T2是同构的,需要成为1-1映射f:V1->V2,使得当且仅当{f(v),f(w)}是E2中的边缘时,{v,w}是E1中的边缘。另外,T1和T2表示两个SVG文档的最小逻辑表示。
图11中的步骤120涉及应用相似性量度。可以应用用于计算分层树相似性的不同相似性量度。本发明可使用下面量度的任意项而同时提供更为优良的性能。
(1)如果A和B是两个逻辑上最小化的SVG DOM树,则集合操作∩(交集)可以被定义。该操作指示对于树A和B二者共同的SVG子树。SVG DOM树的基数(cardinality)(|T|)是树T中节点(SVG元素)的数目。相似性的百分比度量可以通过下式给出:
S1=|A∩B|/|A|*100
S2=|A∩B|/|B|*100
(2)树距离度量:在本例子中,A和B是两个逻辑上最小化的SVG DOM树,D(A,B)是它们的树编辑距离(即,不同节点的数目)并且Cost(A,B)是在A中删除不同的节点并且从B插入新的节点的成本。A和B之间的树距离度量S接着被定义为S(A,B)=D(A,B)/Cost(A,B)。当SVG文档类似于高百分比的匹配节点时,则S(A,B)是低的,并且当它们很不相同并且类似于低百分比匹配节点时,则S(A,B)是高的。在该情况下,值的范围处于0和1之间。
任意两个最小逻辑SVG场景图形的相似性可以基于下面的三个分类来进行表征:内容相似性、结构相似性和位置内容相似性。
内容相似性涉及确定两个逻辑SVG场景图形之间的公共内容交集。两个给定SVG场景图形中的内容等同性类似于子字符串匹配。例如,在图6中示出的两个SVG场景图形共享一些公共的路标符号定义。在两个SVG文档之间共享的公共SVG内容的片断在下面的场景图形提供。
结构相似性涉及确定两个逻辑SVG场景图形之间的公共结构交集。结构上相似的SVG场景图形具有相似的树分层,即,它们共享某些公共元素和元素的孩子(children)。然而,公共元素的属性可能不同。在图7中,文档具有某种结构相似性,但每个文档中的图标具有不同的属性和ID。例如,第一SVG文档具有定义天气符号的图标元素,并且第二SVG文档具有定义路标的图标元素。另外,在两个文件中,各种元素的填充颜色属性不同。然而,这两个文档确实具有与道路连接符和城市类似的下层地图结构。
位置内容相似性涉及考虑内容以及位置。位置内容相似性是位于公共结构中的公共内容的度量,并且其最适宜在进行流式传输的同时用于确定SVG分组相似性,这是因为其提供了最多的信息。两个SVG场景图形之间的位置内容相似性百分比越高,则SVG场景图形彼此更为相同。在图8中,两个SVG文档/场景图形在位置上与正在考虑的地图安排相似。然而,SVG文档B在地图的一个区域上具有缩放能力。
图11中的步骤130涉及创建计算的相似性信息的表示。当相似性量度通知用户相似性的类型以及SVG场景图形彼此如何相似时,相似性信息告诉用户什么是相似的。例如,在流式传输情形中,如果两个SVG样本之间的位置内容相似性大于80%,则流式传输服务器可选择向客户端发送相似性信息。接着客户端可基于进入的相似性信息来修改场景图形。
SVG是基于XML的,并且两个SVG场景图形之间的相似性信息可通过使用SVG场景图形中的节点位置来直观地表示。可用于指定针对SVG相似性信息的节点位置的语法规则可以如下定义:
指定节点->‘/’节点位置‘/’...,其中‘/’指“其孩子”。
节点的范围->节点位置‘-‘节点位置
使用例子,/1/2/3-6->指从根<svg>层处开始的第一节点的第二个孩子的第三、第四、第五和第六个孩子。
图11中的步骤140涉及令各种应用使用生成的相似性信息。在这里讨论三种此类的应用。然而,其他应用也可以能够使用本发明生成的相似性信息。
流式传输。SVG内容具有向音频和视频内容提供框架的能力,并且可以在给定的时间通过网络被流式传输到达许多客户端。由于流式传输本身不能保证数据递送中的稳定性(residency),若干种纠错机制的一种包括在特定的时间间隔处重传相同的样本,只要其在表示中是时间上有效的。为了确保客户端在特定的时刻处接收到相关的SVG场景,流式传输服务器以规则的间隔发送当前的SVG场景,直到其在时间上变得无效。
当呈现当前SVG场景的客户端接收相同的分组,破坏其现有的场景图形,并且以新的分组对其进行重构时出现问题。当客户端侧以规则的间隔重复地破坏和重构SVG场景时,这在客户端侧上导致严重优化问题。还不存在在进行流式传输的同时确定SVG样本间相似性的常规解决方案,并且在实时传输协议(RTP)净荷格式中还没有提供信息来这样做。通过提供在进行流式传输的同时比较SVG媒体内容的两个相邻样本的有效方法,该信息可以被指定为RTP净荷报头中的新单元。在接收到样本时,客户端因此可以简单地从报头读取该信息,并且如果新样本是不同的,则选择破坏其现有的场景图形。
在流式传输的情形中,通过使用由服务器发送的添加、删除或替换操作形式更新语法,相似性信息本身也可以用于动态地更新客户端上的SVG DOM。流式传输服务器可发送具有相似性或非相似性的RTP分组中的信息。基于分组之间的相似性,客户端中DOM的位置可以被动态地修改。这通过最小化DOM重构的数目并且仅修复或修改DOM树来优化客户端的性能。应该注意到,如果正在比较的SVG场景图形很相似,则更为最佳的是发送非相似性信息而不是相似性信息。场景更新指令如下。
SetAttribute(设置属性):该元素用于更新由目标元素(xlink:href)所指定的场景的属性。属性名(attributeName)和属性值(attributevalue)对应于将被添加或替换的目标元素的属性和值。
<SetAttribute attributeName=“x”attributeValue=“10”
attributeType=”CSS/XML/auto”xlink:href=“#myRect”/>
AddElement(添加元素):该元素用于通过作为指定的父母元素(xlink:href)的孩子的新元素(myCircle)来更新场景。如果指定insertBefore(之前插入),则新元素在该元素之前被插入。
  <AddElement xlink:href=“#Scene1”insertBefore=“#myRect”>
       <circle id=myCircle”cx=“20”cy=“20”r=“50”fill=“yellow”/>
  </AddElement>
DeleteElement(删除元素):该元素用于从场景或DOM对象模型中删除指定的元素(href)。
</DeleteElement xlink:href=“#myRect”/>
如果在语法中不存在指定的元素,则该更新被忽略。另外,如果讨论的元素恰好有孩子,则整个子树从客户端的存储器中移除。然而,如果其是叶节点,则仅删除一个元素。
ReplaceElement(替换元素):该元素用于以新的元素(myCircle)来替换来自场景的现有元素(xlink:href)。该操作本质上按顺序组合了DeleteElement和AddElement。
<ReplaceElement xlink:href=“#myCircle”>
           <ellipse id=“myEllipse”cx=“40”cy=“35”rx=“110”ry=“60”
fill=“blue”/>
</ReplaceElement>
此外,如果未向SVG元素提供属性名,则相对于根的节点位置可以用于上述的更新操作。使用相对节点位置来进行各种更新操作的例子是:
<SetAttribute attributeName=“x”attributeValue=“10”attributeType=
“CSS/XML/auto”position=“/1/5-6”/>
该命令更新了在根层处开始的第一孩子的第五和第六孩子节点的属性。
<AddElement xlink:href=“#Scene1”insertBefore=“/2/6”>
     <circle id=myCircle”cx=“20”cy=“20”r=“50”fill=“yellow”/>
 </AddElement>
上述命令在从根层处开始的第二孩子的第六孩子节点前添加新的元素。
<DeleteElement position=“/3/1”/>
上述命令删除在从根层处开始的第三节点的第一孩子。
<ReplaceElement xlink:href=/3/4/2”>
      <ellipse id=“myEllipse”cx=“40”cy=“35”rx=“110”ry=“60”fill=“blue”/>
上述命令替换了在从根层处开始的第三孩子节点的第四孩子节点的第二孩子。
图9(a)-9(e)示出各种场景更新操作的例子。图9(a)示出包括矩形元素“myRect”的原始SVG场景。图9(b)示出使用“SetAttribute”的效果,其改变原始元素“myrect”的位置。图9(c)示出“AddElement”属性的影响,其将新的项“myCircle”添加到场景。图9(d)示出“DeleteElement”属性的效果,从场景删除“myrect”元素。图9(e)示出“ReplaceElement”属性的效果,其中新的项“myCircle”替换先前存在的项“myEllipse”。
内容搜索。不同于传统的光栅图形,SVG具有下层的XML语法,因此使得搜索任务相对来说更为直接。利用SVG的持续增长的可应用性来生成天气图、交通信息和娱乐,仅SVG文档的本体(corpus)在增加。更快和更为有效的检索技术因此是必要的。借助于例子的内容搜索和借助于关键词的内容搜索是可从本发明的SVG相似性计算系统极大获益的两个框架。另外,通过SVG作为基于web的矢量图形语言的随之普及,搜索引擎可以被扩展到也包括针对SVG文档的搜索。
可以在例如Google的若干搜索引擎上查询SVG文档。然而,此类的搜索主要基于SVG的文件名和围绕该文件名的上下文。开发相似性信息并且能够以一些重要的属性来对SVG文档的多个部分进行优先顺序排列,则可得到更为智能的搜索机制。
在图10中示出分配此类信息的例子。在该情形下,重要性权重被归一化并且范围从0到1,1是最重要的。因此可以搜索文档,其中关联性是基于搜索SVG文档的最重要部分。用于搜索文档的内部查询可以是这样的形式:
指定节点->‘/’节点位置‘/’...其中‘/’指“其孩子”。
压缩。已经做出相当的努力来使得SVG文件大小尽可能的小而同时仍保持XML的益处并且实现兼容性以及与其他万维网联盟(W3C)规范的平衡。SVG文档具有像XML的结构并且包含重复的和冗余的信息。通过观察文档内相似性,在通过搜索DOM结构中的相似性和去除冗余信息来对SVG进行编码的同时,可以做出更大的优化。
如同任意的文本标记语言,SVG通常是冗长的。在SVG文档中有许多“冗余”数据,包括空白空间(white space)、注释和先前指出的元素和属性名。因此SVG文档是用于压缩的理想候选者。通过将SVG文档的归一化扩展到它们的最小逻辑表示,一组新的压缩算法可开发用于SVG。
下面是本发明的可选实现的若干例子。在一个此类的实现中,确定两个SVG文档的最小逻辑表示的步骤可包括其他SVG规则的应用,从而基于正在使用的应用或系统来实现最小逻辑表示。
在另一实现中,SVG树同构性的概念可以被应用于不同种类的SVG树,例如归一化树或完整版本。在附加的实施方式中,可以使用在计算同构性中使用的参数的标记变化。
在本发明的另一实施方式中,其他常用的相似性量度可以被应用在分层树上。沿相同的行,在针对每个文档将相似性量度应用于创建的分层树的步骤处,在相似性分类中可以存在其他的变化。
在本发明的另一实施方式中,在关于如何在DOM树中访问各个元素的语法中可以存在变化。根据使用的客户端和服务器以及应用本身,场景更新语法也可包括用于流式传输情形的变化。最后,可以对如何在搜索和压缩情形中计算SVG最小逻辑表示、树同构性和相似性量度做出修改。所有的上述实施方式和实现也可以根据需要或期望的那样进行组合以符合系统和应用的要求。
图12示出在其中可以利用本发明的系统10,该系统包括可以通过网络进行通信的多个通信设备。系统10可以包括有线或无线网络的任意组合,该网络包括但不限于移动电话网、无线局域网(LAN)、蓝牙个域网、以太网LAN、令牌环LAN、广域网、互联网等。系统10可以包括有线和无线通信设备两者。
例如,图12中所示的系统10包括移动电话网11和互联网28。到该互联网28的连接可以包括但不限于远程无线连接、近程无线连接以及各种有线连接,各种有线连接包括但不限于电话线、电缆线、电力线等等。
该系统10的示例性通信设备可以包括但不限于移动电话12、PDA和移动电话的组合14、PDA 16、集成消息收发设备(IMD)18、台式计算机20和笔记本计算机22。通信设备可以是固定的或者当由正在移动中的个人携带时可以是移动的。通信设备还可以处于运输方式中,该运输方式包括但不限于汽车、卡车、出租车、公共汽车、船、飞机、自行车、摩托车等。通信设备中的部分或全部可以发送和接收呼叫和消息以及通过到基站24的无线连接25与服务供应商进行通信。基站24可以连接到网络服务器26,其允许移动电话网11和互联网28之间的通信。系统10可以包括另外的通信设备和不同类型的通信设备。
通信设备可以使用不同的传输技术进行通信,该传输技术包括但不限于,码分多址(CDMA)、全球移动通信系统(GSM)、通用移动通信系统(UMTS)、时分多址(TDMA)、频分多址(FDMA)、传输控制协议/互联网协议(TCP/IP)、短消息收发服务(SMS)、多媒体信息收发服务(MMS)、电子邮件、即时消息收发服务(IMS)、蓝牙、IEEE 802.11等。通信设备可以使用各种介质进行通信,该介质包括但不限于,无线电、红外线、激光、电缆连接等等。
图13和14示出了在其中可以实现本发明的代表性移动电话12。然而,应当理解,本发明不希望限定于一个特定类型的移动电话12或其他电子设备。图13和图14中的移动电话12包括壳体30、以液晶显示器形式的显示器32、小键盘34、麦克风36、听筒38、电池40、红外端口42、天线44、根据本发明的一个实施例的UICC形式的智能卡46、读卡器48、无线接口电路52、编解码器电路54、控制器56和存储器58。各个电路和元件都是本领域公知的类型,例如Nokia移动电话系列。
在方法步骤的通常环境中描述了本发明,其可以通过包括计算机可执行指令的程序产品在一个实施例中实现,例如程序代码,可由计算机在网络互连环境中执行。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例行程序、程序、对象、组件、数据结构等。计算机可执行指令、相关联的数据结构和程序模块代表用于执行在此公开的方法的步骤的程序代码的例子。这种可执行指令或相关联的数据结构的特定序列代表了用于执行以这种步骤描述的功能的相应动作的例子。
本发明的软件和web执行可以使用标准编程技术完成,该标准编程技术具有基于规则的逻辑和其他逻辑用于完成不同的数据库搜索步骤、相关性步骤、比较步骤和决定步骤。还应当注意此处和权利要求书中使用的词语“组件”和“模块”旨在包含使用一行或多行软件代码的执行、和/或硬件执行、和/或用于接收手动输入的设备。
为了示意和描述的目的,已经对本发明的实施例进行了前述描述。不旨在穷举或者将本发明限制在所公开的精确形式下,并且修改和变化可以参照上述教导做出,或者从本发明的实践中获得。选择和描述的实施例用于解释本发明的原理及其实际应用,以使本领域技术人员能够在各种实施方式中利用本发明并且可以具有各种修改以适应于特定的预期应用。

Claims (22)

1.一种用于比较SVG文档的方法,包括:
创建第一SVG文档的最小逻辑表示;
在所述第一SVG文档的文档对象模型的最小逻辑表示上执行树同构性,以便创建第一逻辑最小化SVG DOM树;
使用相似性量度来将所述第一逻辑最小化SVG DOM树与针对第二SVG文档的第二逻辑最小化SVG DOM树进行比较;以及
从所述第一逻辑最小化SVG DOM树和所述第二逻辑最小化SVG DOM树的比较来创建所计算的相似性信息的表示。
2.根据权利要求1所述的方法,进一步包括在流式传输应用中发送关于所述表示的信息。
3.根据权利要求2所述的方法,其中所述发送的信息包括从包括下面信息的组中选择的信息条目,该组包括:关于场景中属性更新的信息、关于将元素添加到场景中的信息、关于从场景中删除元素的信息、关于在场景中替换元素的信息、以及它们的组合。
4.根据权利要求1所述的方法,进一步包括在压缩应用中使用所创建的表示。
5.根据权利要求1所述的方法,进一步包括在内容搜索应用中使用所创建的表示。
6.根据权利要求1所述的方法,其中所述第一SVG文档的最小逻辑表示的创建包括移除所述第一SVG文档中的至少一个冗余、未引用或未使用的SVG元素或注释。
7.根据权利要求1所述的方法,其中所述第一SVG文档的最小逻辑表示的创建包括执行从包括下面动作的组中选择的至少一个动作,该组包括:在所述第一SVG文档中,扩展至少一个内部引用、扩展至少一个定义、解析至少一个引用、将至少一个相对URL解析成绝对URL,以及它们的组合。
8.根据权利要求1所述的方法,其中所述第一SVG文档的所述最小逻辑表示的创建包括解析所述第一SVG文档内的至少一个属性。
9.根据权利要求1所述的方法,其中所述相似性量度的使用包括使用所述第一逻辑最小化SVG DOM树和所述第二逻辑最小化SVG DOM树之间的交集来创建相似性的百分比度量。
10.根据权利要求1所述的方法,其中所述相似性量度的使用包括定义所述第一逻辑最小化SVG DOM树和所述第二逻辑最小化SVG DOM树之间的距离度量。
11.根据权利要求1所述的方法,其中相似性量度用于度量所述第一逻辑最小化SVG DOM树和所述第二逻辑最小化SVG DOM树之间的内容相似性、结构相似性和位置内容相似性。
12.一种用于比较SVG文档的计算机程序产品,包括:
用于创建第一SVG文档的最小逻辑表示的计算机代码;
用于在所述第一SVG文档的文档对象模型的最小逻辑表示上执行树同构性,以便创建第一逻辑最小化SVG DOM树的计算机代码;
用于使用相似性量度来将第一逻辑最小化SVG DOM树与第二SVG文档的第二逻辑最小化SVG DOM树进行比较的计算机代码;以及
用于从所述第一逻辑最小化SVG DOM树和所述第二逻辑最小化SVG DOM树的比较来创建所计算的相似性信息的表示的计算机代码。
13.根据权利要求12所述的计算机程序产品,其中所述第一SVG文档的最小逻辑表示的创建包括移除所述第一SVG文档中的至少一个冗余、未引用或未使用的SVG元素或注释。
14.根据权利要求12所述的计算机程序产品,其中所述第一SVG文档的最小逻辑表示的创建包括执行从包括下面动作的组中选择的至少一个动作,该组包括:在第一SVG文档中,扩展至少一个内部引用、扩展至少一个定义、解析至少一个引用、将至少一个相对URL解析成绝对URL,以及它们的组合。
15.根据权利要求12所述的计算机程序产品,其中所述第一SVG文档的所述最小逻辑表示的创建包括解析所述第一SVG文档内的至少一个属性。
16.根据权利要求12所述的计算机程序产品,其中所述相似性量度的使用包括使用所述第一逻辑最小化SVG DOM树和所述第二逻辑最小化SVG DOM树之间的交集来创建相似性的百分比度量。
17.根据权利要求12所述的计算机程序产品,其中所述相似性量度的使用包括定义所述第一逻辑最小化SVG DOM树和所述第二逻辑最小化SVG DOM树之间的距离度量。
18.一种电子设备,包括:
处理器;以及
存储单元,其可操作地连接到所述处理器并且包括:
用于创建第一SVG文档的最小逻辑表示的计算机代码;
用于在所述第一SVG文档的文档对象模型的最小逻辑表示上执行树同构性,以便创建第一逻辑最小化SVG DOM树的计算机代码;
用于使用相似性量度来将所述第一逻辑最小化SVG DOM树与第二SVG文档的第二逻辑最小化SVG DOM树进行比较的计算机代码;以及
用于从所述第一逻辑最小化SVG DOM树和所述第二逻辑最小化SVG DOM树的比较来创建所计算的相似性信息的表示的计算机代码。
19.根据权利要求18所述的电子设备,其中所述第一SVG文档的最小逻辑表示的创建包括移除所述第一SVG文档中的至少一个冗余、未引用或未使用的SVG元素或注释。
20.根据权利要求18所述的电子设备,其中所述第一SVG文档的最小逻辑表示的创建包括执行从包括下面动作的组中选择的至少一个动作,该组包括:在第一SVG文档中,扩展至少一个内部引用、扩展至少一个定义、解析至少一个引用、将至少一个相对URL解析成绝对URL,以及它们的组合。
21.根据权利要求18所述的电子设备,其中所述相似性量度的使用包括使用所述第一逻辑最小化SVG DOM树和所述第二逻辑最小化SVG DOM树之间的交集来创建相似性的百分比度量。
22.根据权利要求18所述的电子设备,其中所述相似性量度的使用包括定义所述第一逻辑最小化SVG DOM树和所述第二逻辑最小化SVG DOM树之间的距离度量。
CN2006800434767A 2005-10-07 2006-10-06 用于测量svg文档相似性的系统和方法 Expired - Fee Related CN101589384B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/245,859 2005-10-07
US11/245,859 US7403951B2 (en) 2005-10-07 2005-10-07 System and method for measuring SVG document similarity
PCT/IB2006/002779 WO2007042891A2 (en) 2005-10-07 2006-10-06 System and method for measuring svg document similarity

Publications (2)

Publication Number Publication Date
CN101589384A true CN101589384A (zh) 2009-11-25
CN101589384B CN101589384B (zh) 2011-06-29

Family

ID=37912206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800434767A Expired - Fee Related CN101589384B (zh) 2005-10-07 2006-10-06 用于测量svg文档相似性的系统和方法

Country Status (8)

Country Link
US (1) US7403951B2 (zh)
EP (1) EP1932085A4 (zh)
JP (1) JP2009512006A (zh)
KR (1) KR101040094B1 (zh)
CN (1) CN101589384B (zh)
HK (1) HK1133711A1 (zh)
TW (1) TW200805089A (zh)
WO (1) WO2007042891A2 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555480B2 (en) * 2006-07-11 2009-06-30 Microsoft Corporation Comparatively crawling web page data records relative to a template
WO2008043042A2 (en) * 2006-10-05 2008-04-10 Educational Testing Service Data structure for defining a chart
DE102006047465A1 (de) * 2006-10-07 2008-04-10 Deutsche Telekom Ag Verfahren und Vorrichtung zur Kompression und Dekompression digitaler Daten auf elektronischem Wege unter Verwendung einer Kontextgrammatik
DE102007032812A1 (de) * 2007-07-13 2009-01-22 Siemens Ag Verfahren und Vorrichtung zum Erstellen eines Komplexitätsvektors für zumindest eines Teils einer SVG Szene, sowie Verfahren und Prüfvorrichtung zum Überprüfen einer Abspieltauglichkeit zumindest eines Teils einer SVG-Szene auf einem Gerät
US8095543B1 (en) 2008-07-31 2012-01-10 The United States Of America As Represented By The Secretary Of The Navy Fast algorithms and metrics for comparing hierarchical clustering information trees and numerical vectors
CN101777048B (zh) * 2009-01-14 2013-04-03 国际商业机器公司 解决web应用复合中UI样式冲突的方法和装置
US9171097B2 (en) * 2009-03-31 2015-10-27 Qualcomm Incorporated Memoizing web-browsing computation with DOM-based isomorphism
US9311425B2 (en) * 2009-03-31 2016-04-12 Qualcomm Incorporated Rendering a page using a previously stored DOM associated with a different page
JP5478936B2 (ja) * 2009-05-13 2014-04-23 キヤノン株式会社 情報処理装置、情報処理方法
WO2011063561A1 (en) * 2009-11-25 2011-06-03 Hewlett-Packard Development Company, L. P. Data extraction method, computer program product and system
US9032067B2 (en) * 2010-03-12 2015-05-12 Fujitsu Limited Determining differences in an event-driven application accessed in different client-tier environments
US8773470B2 (en) 2010-05-07 2014-07-08 Apple Inc. Systems and methods for displaying visual information on a device
WO2012000185A1 (en) * 2010-06-30 2012-01-05 Hewlett-Packard Development Company,L.P. Method and system of determining similarity between elements of electronic document
JP5372853B2 (ja) * 2010-07-08 2013-12-18 株式会社日立製作所 デジタルシーケンス特徴量算出方法及びデジタルシーケンス特徴量算出装置
US8880588B2 (en) 2010-10-29 2014-11-04 Fujitsu Limited Technique for stateless distributed parallel crawling of interactive client-server applications
US9400962B2 (en) 2010-10-29 2016-07-26 Fujitsu Limited Architecture for distributed, parallel crawling of interactive client-server applications
US8832065B2 (en) 2010-10-29 2014-09-09 Fujitsu Limited Technique for coordinating the distributed, parallel crawling of interactive client-server applications
US9449024B2 (en) 2010-11-19 2016-09-20 Microsoft Technology Licensing, Llc File kinship for multimedia data tracking
US9208054B2 (en) 2011-02-14 2015-12-08 Fujitsu Limited Web service for automated cross-browser compatibility checking of web applications
US8886679B2 (en) * 2011-10-11 2014-11-11 Hewlett-Packard Development Company, L.P. Mining web applications
US9396540B1 (en) 2012-03-28 2016-07-19 Emc Corporation Method and system for identifying anchors for fields using optical character recognition data
US8832108B1 (en) * 2012-03-28 2014-09-09 Emc Corporation Method and system for classifying documents that have different scales
US8843494B1 (en) 2012-03-28 2014-09-23 Emc Corporation Method and system for using keywords to merge document clusters
US9069768B1 (en) 2012-03-28 2015-06-30 Emc Corporation Method and system for creating subgroups of documents using optical character recognition data
US8880951B2 (en) 2012-04-06 2014-11-04 Fujitsu Limited Detection of dead widgets in software applications
JP5701830B2 (ja) * 2012-09-04 2015-04-15 日本電信電話株式会社 文書構造解析装置及びプログラム
US9619711B2 (en) * 2014-09-29 2017-04-11 Digitalglobe, Inc. Multi-spectral image labeling with radiometric attribute vectors of image space representation components
US10635744B2 (en) * 2016-04-21 2020-04-28 Arivis Ag File format agnostic document viewing, link creation and validation in a multi-domain document hierarchy
KR101886069B1 (ko) * 2016-12-13 2018-08-07 유비스톰 주식회사 웹 페이지의 분할 전송 제어 가능한 전자문서 제공장치
CN110874526B (zh) * 2018-12-29 2024-03-01 北京安天网络安全技术有限公司 一种文件相似性检测方法、装置、电子设备及存储介质
CN113885307A (zh) * 2021-10-12 2022-01-04 广东安朴电力技术有限公司 Svg并机冗余控制方法、svg控制方法及控制系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721747B2 (en) * 2000-01-14 2004-04-13 Saba Software, Inc. Method and apparatus for an information server
KR20020049164A (ko) * 2000-12-19 2002-06-26 오길록 유전자 알고리즘을 이용한 카테고리 학습과 단어클러스터에 의한 문서 자동 분류 시스템 및 그 방법
KR20020058639A (ko) * 2000-12-30 2002-07-12 오길록 엑스엠엘 문서 검색 시스템 및 그 방법
US20030050931A1 (en) * 2001-08-28 2003-03-13 Gregory Harman System, method and computer program product for page rendering utilizing transcoding
US7055092B2 (en) * 2001-12-05 2006-05-30 Canon Kabushiki Kaisha Directory for multi-page SVG document
US7437664B2 (en) * 2002-06-18 2008-10-14 Microsoft Corporation Comparing hierarchically-structured documents
US7064760B2 (en) * 2002-06-19 2006-06-20 Nokia Corporation Method and apparatus for extending structured content to support streaming
WO2004017225A1 (de) 2002-07-15 2004-02-26 Siemens Aktiengesellschaft Verfahren und vorrichtungen zum kodieren/dekodieren von strukturierten dokumenten, insbesondere von xml-dokumenten
JP2004287923A (ja) * 2003-03-24 2004-10-14 Seiko Epson Corp 画像加工判定装置、画像加工判定方法および画像加工判定プログラム
US7203679B2 (en) 2003-07-29 2007-04-10 International Business Machines Corporation Determining structural similarity in semi-structured documents
US7877399B2 (en) * 2003-08-15 2011-01-25 International Business Machines Corporation Method, system, and computer program product for comparing two computer files
FR2860315A1 (fr) * 2003-09-30 2005-04-01 Canon Kk Procede et dispositif d'edition de documents graphiques numeriques du type svg notamment a partir d'un butineur
JP2005115628A (ja) * 2003-10-07 2005-04-28 Hewlett-Packard Development Co Lp 定型表現を用いた文書分類装置・方法・プログラム
KR100862587B1 (ko) 2007-03-28 2008-10-09 인하대학교 산학협력단 엑스엠엘 문서 유사도 측정 장치 및 그 방법

Also Published As

Publication number Publication date
US7403951B2 (en) 2008-07-22
KR20080069988A (ko) 2008-07-29
CN101589384B (zh) 2011-06-29
JP2009512006A (ja) 2009-03-19
KR101040094B1 (ko) 2011-06-09
HK1133711A1 (en) 2010-04-01
EP1932085A1 (en) 2008-06-18
EP1932085A4 (en) 2013-08-21
US20070083808A1 (en) 2007-04-12
WO2007042891A2 (en) 2007-04-19
TW200805089A (en) 2008-01-16

Similar Documents

Publication Publication Date Title
CN101589384B (zh) 用于测量svg文档相似性的系统和方法
CA2687483C (en) Method and system for desktop tagging of a web page
US7162494B2 (en) Method and system for distributed user profiling
US8806345B2 (en) Information exchange using generic data streams
US20070198918A1 (en) Techniques for binding scalable vector graphics to associated information
US6901441B2 (en) Knowledge sharing between heterogeneous devices
CN102012906A (zh) 基于SaaS架构的三维场景管理平台及编辑浏览方法
CN106933837A (zh) 一种数据库表模型及创建方法
US20030158805A1 (en) Method of translating electronic data interchange documents into other formats and in reverse
CN102222110A (zh) 数据处理装置和数据处理方法
US6904562B1 (en) Machine-oriented extensible document representation and interchange notation
De Floriani et al. Dynamic view-dependent multiresolution on a client–server architecture
Zhang et al. GML-based interoperable geographical databases
Neun et al. Web service approaches for providing enriched data structures to generalisation operators
CN116150437A (zh) 图查询方法
CN112783836A (zh) 信息交换方法、装置及计算机存储介质
CN104239068B (zh) 多维度语义web服务开发方法
Riedemann et al. Services for data integration
KR101810519B1 (ko) LandXML과 IFC 포맷의 BIM 데이터를 이용한 객체 질의 시스템 및 방법
Ming A 3D web GIS system based on VRML and X3D
Stojanovic et al. Modeling and management of spatio-temporal objects within temporal GIS application framework
Chung et al. An extension of XQuery for moving objects over GML
Xu et al. Applying semantic web technologies for geodata integration and visualization
Xiaqing et al. The deliver and visualization of geospatial information in mobile GIS
van Oosterom et al. The architecture of the geo-information infrastructure

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1133711

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1133711

Country of ref document: HK

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160119

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110629

Termination date: 20161006