专利名称:用于测量svg文档相似性的系统和方法
技术领域:
本发明一般地涉及用于可伸缩矢量图形(SVG)文档的系统。
更具体地,本发明涉及用于测量SVG文档中相似性程度的系统和方法。
背景技术:
在许多应用中,测量对象之间的相似性水平或程度是很有用的。 基于图像的固有颜色和紋理属性来执行图像相似性。可以基于考虑
拓朴和特征匹配的形状匹配算法来比较3D对象。可以通过从简单的
"diff,程序到更为高级的模式匹配和语义归组算法的量度来匹配文
本内容。
尽管许多系统和机制已知用于确定和测量XML文档之间的相似 性的水平,但计算SVG文档间的相似性不是那么简单。SVG内容基 于下层的XML格式。SVG文档的基本困难在于,具有很相似的下 层XML表示的两个给定SVG文档当被呈现(render)时可能具有完 全不同的视觉表示,并且反之亦然。图l(a)和图l(b)举例示出该问题。 尽管图l(a)和图l(b)中的两个SVG文档看起来相同,但它们的下层 文本表示彼此完全不同。特别地,图1(a)使用〈defs〉和〈use〉元素来 预定义形状并且以不同的颜色和位置来重新-使用它们。另 一方面, 图l(b)在没有重新使用性的情况下单独地呈现每个形状。如果系统
可能被分类为完全不同。另外,用于确定相似性水平的传统上基于 像素的方法不是最优的,因为将不得不将SVG呈现的内容转换成光 栅图形,并且当涉及动画时,则处理变得更为复杂。
另一方面,图2(a)和2(b)表示出一种情形,其中SVG文本内容
6彼此相似,但文档自身具有十分不同的视觉外观。两个文档之间的
不同仅在于下层的SVG文本为"style^"visibility:hidden.""。然而,这 小小的差异使得最终的图像在视觉上看起来很不同。
尽管对于2D图形,SVG被认为是有前景的基于XML的语言, 其潜在地为新的消费者和企业服务打开许多可能性,但在这些不同 的应用中优化SVG远还没有哪怕是相对小的进步。
先前已经开发了若干种方法和工具来计算XML文档间的相似 性。例如, 一种称为"XMLDiff,的工具检测XML子树中的结构变化 并且生成描述两个子树之间差异的Diffgram。第二种方法涉及使用 匹配算法来测量XML文档和DTD之间的结构相似性。第三种方法 涉及通过将每个XML文档表示为数字序列来将其结构线性化,并且 接着通过对它们频率进行分析来比较序列。第四种方法涉及用于 XML文档的结构相似性量度,其基于由DTD得到的有序标记树到 聚类(cluster)文档之间的"XMLaware"编辑距离。第五种方法在基 于文档的矢量形式表示文档后测量矢量之间的相似性。该方法用于 获得在两个给定文档之间的结构相似性的测量,并且在美国专利申 请公布号2005/0038785中有所讨论。然而,这些系统没有关注下层 内容和视觉表示中的差异问题,因为XML本身不是可见的并且SVG 是XML内容的特殊形式。
除了上述,还有若干种方法用于基于某些优化来压缩XML内容 以移除冗余模式。 一个此类的系统是新的XML压缩机制,其基于 S叫uitur压缩算法以移除其表示中过量的信息冗余。通过将压缩结果 组织为一组上下文自由语法规则,该机制在没有解压缩的情况下支 持XPath查询的处理。另一种方法涉及一种工具,其通过数据交换 和存档中的应用来压缩XML数据,其通常以大致相同的速率实现两 倍于gzip的压缩率。该压缩器称为XMill,其结合以及组合现有的 压缩器以将它们应用到异类的XML数据。XMill使用zlib,其用于 gzip的库函数,用于筒单数据类型的数据类型特定压缩器的集合, 以及用于应用特定数据的用户定义压缩器。
发明内容
本发明提供一种改进的处理,其用于确定任意两个给定SVG文
档是否视觉上相似,以及确定文档之间相似性程度和相似性特性。
本发明引入一种机制,其基于某些SVG优化启发式算法(heuristics) 来将各个SVG文档转换成它们最小的逻辑表示。接着在表示的减小 逻辑D O M树上计算这些逻辑表示的相似性。树同构化用于确定树结 构相对于彼此如何相似。若干种量度,例如最大公共子树和树距离 度量,可用于确定两个给定树之间的公共节点的最大数目。最大公 共子树越大,则这两个树也更为相似。
本发明用于将SVG减小到它的最小逻辑形式的方法不同于上述 讨论的XML压缩方法,其不同之处在于,利用本发明,基本上以不 同的方式来计算最小的表示。另外,不同于先前讨论的基于压缩的 方法,最小逻辑SVG形式仍是未压缩的并且仍能够使用本发明的系 统和方法来进行呈现。
本发明能够最大程度地改进并且甚至优化SVG的性能,从而包 括SVG内容的大数据集合的下层逻辑表示可以基于计算的相似性信 息来更为有效地修改、更新或遍历(traverse)。本发明的独特性在 于,其关心SVG类型的内容,其中在实际计算相似性程度前,需要 考虑下层的XML表示和其可视外观。此外,本发明提供新的技术, 其用于通过在归一化的SVG树上应用树同构性来计算相似性、计算 SVG文档的最小逻辑表示并且表示该相似性信息。
本发明的系统和方法可以应用到各种用例中,特别是与移动设 备群体相关的。在流式传输的方案中,该相似性信息允许客户端更 为明确是否使用到达的数据分组来重构场景图形。另外,客户端能 够基于在RTP净荷报头中提供的信息来修复其现有的场景图形,而 不是破坏掉整个场景图形并且重构 一 个新的。在内容搜索情形中, 可以基于示例的SVG文档或通过查询关键词来检索类似的SVG文 档。这有助于更为有效的和智能的内容搜索应用。在压缩情形中, 通过观察文档内的相似性,可以通过替代地仅存储元素ID来移除给
8定SVG文档内的冗余信息。
通过结合附图的下述详细说明,本发明的这些和其他目的、优 点和特征,以及组织和操作方式将变得清楚,其中贯穿下述的几个 附图,相同的元件以相同的标号表示。
图l(a)和图l(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处,该信息可以由若干个应用中的一个来使用。下 面将讨i仑这些处理部分的每个。
在本发明的一个实施方式中,确定SVG文档的最小逻辑表示涉 及四个不同的子处理。第一子处理涉及瓦解(collapse)该文档。冗 余、未引用和未使用的SVG元素和注释被忽略。应用该子处理以便 将对于SVG文档的视觉表示没有贡献的元素移除。文档可能经常包 含不被呈现或可能设置成不可见的〈defs〉块内的特定元素定义。可以 在将所讨论的文档与其他SVG文档进行比较之前移除此类的元素。 在图3中描绘出该瓦解子处理,其中注释和带有"visibility: hidden (可视性隐藏)"设置的指令被移除。
第二子处理涉及"替换"。该子处理应用于扩展SVG文档内的 内部引用和定义,解析引用和将相对URL解析成绝对URL以便更 为公平地比较。如图1中所见,〈defs〉和〈use〉元素意味着元素定义 的可重用性并且可以在SVG文档中按照期望多次使用。如果存在 〈use〉元素,则使用的内容被克隆并且可视地附加到〈use〉元素。该 克隆内容是获得"<use〉ed"的原始元素的"阴影树"。替换涉及扩展其中提到〈use〉元素的元素定义内联(inline)。可以如此执行,从 而精确地将文档与例如不使用〈defs〉和〈use〉元素的另 一个3见觉类似 的SVG文档进行比较。
创建最小逻辑表示的第三子处理涉及解析属性。通常,即使从 〈defs〉块正确地替换了引用,并且以"xlink:hrer使用相同的元素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是边缘并且因此与Ns成二元关系;并且L 定义表示如在SVG 1.2中定义的元素名或属性的字符串,其可在 http:〃www.w3.org/TR7SVG12/找到。
为了使得两个SVG树T1和T2是同构的,需要成为1-1映射 f:Vl-〉V2,使得当且仅当(f(v),f(w"是E2中的边缘时,(v,w)是El 中的边缘。另外,Tl和T2表示两个SVG文档的最小逻辑表示。
图11中的步骤120涉及应用相似性量度。可以应用用于计算分 层树相似性的不同相似性量度。本发明可使用下面量度的任意项而 同时提供更为优良的性能。
(1) 如果A和B是两个逻辑上最小化的SVGDOM树,则集合
操作n (交集)可以被定义。该操作指示对于树A和B二者共同的
SVG子树。SVG DOM树的基数(cardinality )(|")是树T中节点(SVG
元素)的数目。相似性的百分比度量可以通过下式给出
SI =|AnB|/|A| * 100
S2-lAnBl/间* 100
(2) 树距离度量在本例子中,A和B是两个逻辑上最小化的 SVGDOM树,D(A,B)是它们的树编辑距离(即,不同节点的数目) 并且Cost(A,B)是在A中删除不同的节点并且从B插入新的节点的成 本。A和B之间的树距离度量S接着被定义为S(A,B) = D(A,B)/CoSt(A,B)。 当SVG文档类似于高百分比的匹配节点时,贝'J S(A,B)是低的,并且 当它们很不相同并且类似于低百分比匹配节点时,则S(A,B)是高的。 在该情况下,值的范围处于0和1之间。
任意两个最小逻辑S VG场景图形的相似性可以基于下面的三个 分类来进行表征内容相似性、结构相似性和位置内容相似性。内容相似性涉及确定两个逻辑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〃"-G々指从根〈SVg〉层处开始的第一节点的第二 个孩子的第三、第四、第五和第六个孩子。
图11中的步骤140涉及令各种应用使用生成的相似性信息。在 这里讨论三种此类的应用。然而,其他应用也可以能够使用本发明 生成的相似性信息。
流式传输。SVG内容具有向音频和视频内容提供框架的能力,
并且可以在给定的时间通过网络被流式传输到达许多客户端。由于
流式传输本身不能保证数据递送中的稳定性(residency),若干种纠 错机制的一种包括在特定的时间间隔处重传相同的样本,只要其在 表示中是时间上有效的。为了确保客户端在特定的时刻处接收到相 关的SVG场景,流式传输服务器以规则的间隔发送当前的SVG场 景,直到其在时间上变得无效。
当呈现当前SVG场景的客户端接收相同的分组,破坏其现有的 场景图形,并且以新的分组对其进行重构时出现问题。当客户端侧 以规则的间隔重复地破坏和重构SVG场景时,这在客户端侧上导致 严重优化问题。还不存在在进行流式传输的同时确定SVG样本间相 似性的常规解决方案,并且在实时传输协议(RTP)净荷格式中还没 有提供信息来这样做。通过提供在进行流式传输的同时比较SVG媒 体内容的两个相邻样本的有效方法,该信息可以;陂指定为RTP净荷 报头中的新单元。在接收到样本时,客户端因此可以简单地从报头 读取该信息,并且如果新样本是不同的,则选择破坏其现有的场景 图形。
在流式传输的情形中,通过使用由服务器发送的添加、删除或 替换操作形式更新语法,相似性信息本身也可以用于动态地更新客 户端上的SVGDOM。流式传输服务器可发送具有相似性或非相似性 的RTP分组中的信息。基于分组之间的相似性,客户端中DOM的 位置可以被动态地修改。这通过最小化DOM重构的数目并且仅修复或修改DOM树来优化客户端的性能。应该注意到,如果正在比專交的
SVG场景图形很相似,则更为最佳的是发送非相似性信息而不是相
似性信息。场景更新指令如下。
SetAttribute(设置属性)该元素用于更新由目标元素(xlink:href)
所指定的场景的属性。属性名(attributeName)和属性值(attribute
value)对应于将纟皮添加或替换的目标元素的属性和值。 〈SetAttribute attributeName ="x" attributeValue = "10"
attributeType=,,CSS/XML/auto,, xlink:hre^lyRect" />
AddElement (添加元素)该元素用于通过作为指定的父母元
素(xlink:href)的孩子的新元素(myCircle)来更新场景。如果指定
insertBefore (之前插入),贝'J新元素在该元素之前被插入。 〈Ad犯lement xlink:href - "弁Scenel" insertBefore = "#myRect,5>
<circle id = myCircle" cx="20" c产"20" r="50,, fill-"yellow" />
</AddElement>
DeleteElement (删除元素)该元素用于从场景或DOM对象才莫 型中删除指定的元素(href)。
</DeleteElementxlink:href="#myRect,7>
如果在语法中不存在指定的元素,则该更新被忽略。另外,如 果讨论的元素恰好有孩子,则整个子树从客户端的存储器中移除。 然而,如果其是叶节点,则仅删除一个元素。
ReplaceElement(替换元素)该元素用于以新的元素(myCircle )
来替换来自场景的现有元素(xlink:href)。该操作本质上按顺序组
合了 DeleteElement和AddElement 。
〈ReplaceElement xlink:href = "#myCircle,,>
〈ellipse id = "myEUipse" cx="40" cy="35" rx="l 10" r""60"
fill-'T3lue,, /> </ReplaceElement>
此外,如果未向SVG元素提供属性名,则相对于根的节点位置 可以用于上述的更新操作。使用相对节点位置来进行各种更新操作 的例子是〈SetAttribute attributeName = "x,, attributeValue = "10" attributeType= "CSS/XML/auto" position- 7 1 / 5 — 6 " />
该命令更新了在根层处开始的第一孩子的第五和第六孩子节点 的属性。
<AddElement xlink:href - "將cenel" 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-"l 10" ry="60" fill-'^lue" />
上述命令替换了在从根层处开始的第三孩子节点的第四孩子节
点的第二孩子。
图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, l是最重要的。因此可以搜索文档,其
中关联性是基于搜索SVG文档的最重要部分。用于搜索文档的内部
查询可以是这样的形式
指定节点々'/'节点位置'/'…其中'/'指"其孩子"。
压缩。已经做出相当的努力来使得SVG文件大小尽可能的小而
同时仍保持XML的益处并且实现兼容性以及与其他万维网联盟 (W3C)规范的平衡。SVG文档具有像XML的结构并且包含重复
的和冗余的信息。通过观察文档内相似性,在通过搜索DOM结构中
的相似性和去除冗余信息来对SVG进行编码的同时,可以做出更大
的优化。
如同任意的文本标记语言,SVG通常是冗长的。在SVG文档中 有许多"冗余,,数据,包括空白空间(whitespace)、注释和先前指 出的元素和属性名。因此SVG文档是用于压缩的理想候选者。通过 将SVG文档的归一化扩展到它们的最小逻辑表示, 一组新的压缩算 法可开发用于SVG。
下面是本发明的可选实现的若干例子。在一个此类的实现中, 确定两个SVG文档的最小逻辑表示的步骤可包括其他SVG规则的 应用,从而基于正在使用的应用或系统来实现最小逻辑表示。
在另一实现中,SVG树同构性的概念可以被应用于不同种类的 SVG树,例如归一化树或完整版本。在附加的实施方式中,可以使 用在计算同构性中使用的参数的标记变化。
在本发明的另一实施方式中,其他常用的相似性量度可以被应 用在分层树上。沿相同的行,在针对每个文档将相似性量度应用于 创建的分层树的步骤处,在相似性分类中可以存在其他的变化。
在本发明的另一实施方式中,在关于如何在DOM树中访问各个元素的语法中可以存在变化。根据使用的客户端和服务器以及应用 本身,场景更新语法也可包括用于流式传输情形的变化。最后,可 以对如何在搜索和压缩情形中计算SVG最小逻辑表示、树同构性和 相似性量度做出修改。所有的上述实施方式和实现也可以根据需要 或期望的那样进行组合以符合系统和应用的要求。
图12示出在其中可以利用本发明的系统10,该系统包括可以通 过网络进行通信的多个通信设备。系统IO可以包括有线或无线网络 的任意组合,该网络包括但不限于移动电话网、无线局域网(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之间的通信。系统IO可以包括另外的通信设备和不 同类型的通信设备。
通信设备可以使用不同的传输技术进行通信,该传输技术包括 j旦不限于,码分多址(CDMA)、全球移动通信系统(GSM)、通 用移动通信系统(UMTS )、时分多址(TDMA )、频分多址(FDMA )、 传输控制协议/互联网协议(TCP/IP)、短消息收发服务(SMS)、 多媒体信息收发服务(MMS )、电子邮件、即时消息收发服务(IMS )、蓝牙、IEEE 802.il等。通信设备可以使用各种介质进行通信,该介 质包括但不限于,无线电、红外线、激光、电缆连接等等。
图13和14示出了在其中可以实现本发明的代表性移动电话12。 然而,应当理解,本发明不希望限定于一个特定类型的移动电话12 或其他电子设备。图13和图14中的移动电话12包括壳体30、以液 晶显示器形式的显示器32、小键盘34、麦克风36、听筒38、电池 40、红外端口42、天线44、根据本发明的一个实施例的UICC形式 的智能卡46、读卡器48、无线接口电路52、编解码器电路54、控 制器56和存储器58。各个电路和元件都是本领域公知的类型,例如 Nokia移动电i舌系列。
在方法步骤的通常环境中描述了本发明,其可以通过包括计算 机可执行指令的程序产品在一个实施例中实现,例如程序代码,可 由计算机在网络互连环境中执行。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的 例行程序、程序、对象、组件、数据结构等。计算机可执行指令、 相关联的数据结构和程序模块代表用于执行在此公开的方法的步骤 的程序代码的例子。这种可执行指令或相关联的数据结构的特定序 列代表了用于执行以这种步骤描述的功能的相应动作的例子。
本发明的软件和web执行可以使用标准编程技术完成,该标准
索步骤、相关性步骤、比较步骤和决定步骤。还应当注意此处和权 利要求书中使用的词语"组件"和"模块"旨在包含使用 一行或多行软 件代码的执行、和/或硬件执行、和/或用于接收手动输入的设备。
为了示意和描述的目的,已经对本发明的实施例进行了前述描 述。不旨在穷举或者将本发明限制在所公开的精确形式下,并且修 改和变化可以参照上述教导做出,或者从本发明的实践中获得。选 择和描述的实施例用于解释本发明的原理及其实际应用,以使本领
改以适应于特定的预期应用。
权利要求
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文档的文档对象模型的最小逻辑表示上执 行树同构性,以便创建第一逻辑最小化SVGDOM树的计算机代码;用于使用相似性量度来将第 一逻辑最小化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文档的文档对象模型的最小逻辑表示上执行树同构性,以便创建第一逻辑最小化SVGDOM树的计算机代码;用于使用相似性量度来将所述第一逻辑最小化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树之间的距离度量。
全文摘要
一种用于测量SVG文档之间相似性的系统和方法。本发明涉及将各文档降低到它们的最小逻辑表示,然后使用树同构化技术来分析该表示。接下来,应用可以使用该比较数据来更有效地执行动作,例如内容压缩、内容流式传输以及内容搜索。
文档编号G06F17/22GK101589384SQ200680043476
公开日2009年11月25日 申请日期2006年10月6日 优先权日2005年10月7日
发明者M·英格拉西亚, S·奇图里, T·卡平, V·塞特卢尔 申请人:诺基亚公司