CN103279459A - 语义区分和自动合并 - Google Patents
语义区分和自动合并 Download PDFInfo
- Publication number
- CN103279459A CN103279459A CN2013101099819A CN201310109981A CN103279459A CN 103279459 A CN103279459 A CN 103279459A CN 2013101099819 A CN2013101099819 A CN 2013101099819A CN 201310109981 A CN201310109981 A CN 201310109981A CN 103279459 A CN103279459 A CN 103279459A
- Authority
- CN
- China
- Prior art keywords
- file
- rule
- structured data
- version
- versions
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000008859 change Effects 0.000 claims description 28
- 230000009471 action Effects 0.000 description 15
- 230000004069 differentiation Effects 0.000 description 12
- 238000012795 verification Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000000547 structure data Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000007373 indentation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明提供了语义区分和自动合并。解决对结构化数据文件的冲突变更。一种方法包括对于具有泛型结构和构建在该泛型结构上的方言两者的已经对其做出冲突变更的结构化数据文件,确定该结构化数据的方言,其中存在该结构化数据的原始版本、该结构化数据的第一版本和该结构化数据的第二版本。该方法还包括基于所确定的方言来执行对该结构化数据的原始版本、该结构化数据的第一版本和该结构化数据的第二版本的合并或区分操作中的至少一个。
Description
技术领域
本发明涉及语义区分和自动合并。
背景技术
背景和相关技术
计算机和计算系统已经影响了现代生活的几乎每个方面。计算机通常在工作、休闲、保健、运输、娱乐、家政管理等中涉及。
用于计算系统的数据可以按多种不同的方式来存储。例如,数据可被存储在数据库或平面文件中。一种存储数据的方法是将数据存储在结构化文本数据文件中。说明性地,XML文件是其中可以存储数据的结构化文本数据文件。结构化数据是使数据以固定方式组织的数据。例如,数据库可将特定类型的数据存储在特定字段中。XML文件可将特定类型的数据存储在特定标签中。标签定义存储在该标签中的数据的类型。
所存储的数据可以按多种不同的方式来变更。例如,当用户期望变更所存储的数据时,该用户可锁定该数据以防其他用户访问并变更该数据,由此防止冲突的变更。然而,可能存在其中所存储的数据并未完全集中式定位,而是所存储的数据的副本可由不同的用户或在不同的设备上同时访问的情形。用户可变更所存储的数据的副本,但那些变更将需要与其他副本和/或与集中式副本同步。此外,不同的副本可被变更,并且事实上可能在不同的副本中以不同的方式变更恰好相同的数据。当发生这种情况时,可能期望合并变更,包括解决数据中的任何冲突和/或比较相同文件的不同版本中的区别。
在某些情形中,可执行基于行的合并,其中一文件的各行在数据在其中一行中已经变更时进行比较和合并。然而,基于行的合并通常不够智能以至于无法合并某些结构化数据文件。XML文件是这样的结构化数据文件中的一个示例。
在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。
发明内容
一个实施方式包括一种在计算环境中实践的方法。该方法包括用于解决对结构化数据文件的冲突变更的的各个动作。该方法包括对于具有泛型结构和构建在该泛型结构上的方言两者的已经对其做出冲突变更的结构化数据文件,确定该结构化数据的方言,其中存在该结构化数据的原始版本、第一版本和第二版本。该方法还包括基于所确定的方言来执行对该结构化数据的原始版本、第一版本和第二版本的合并或区分操作中的至少一个。
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。
附图说明
为了描述可获得本主题的上述和其它优点和特征的方式,将通过参考附图中示出的本主题的具体实施例来呈现以上简要描述的本主题的更具体描述。应该理解,这些附图仅描绘了各典型实施例,因此其不应被认为是对范围的限制,各实施例将通过使用附图用附加特征和细节来描述并解释,在附图中:
图1示出了结构化数据文件的不同版本以及用于合并结构化文本文件的不同版本的规则引擎;
图2示出了用于合并结构化数据文件的算法;以及
图3示出了解决对结构化数据文件的冲突变更的方法。
具体实施方式
本文描述的一些实施例实现了通过使用文件的语义来执行合并来执行对结构化数据文件的合并操作的功能。类似地,可实现执行区分操作以标识结构化数据文件中的区别的各实施例。
现在参考图1,示出了一个示例。在将XML文件校验成源控制时,可能存在源控制中的最新版本102、经校验的版本102’和当前工作空间版本102’’。具体而言,源控制将控制结构化数据文件的决定性或权威性版本。该版本102是公开接受的版本或通常被认为具有正确的数据版本的版本。因此,当用户期望变更结构化数据文件时,他们从源控制文件储存库104中校验文件。用户可维护从储存库校验出的文件版本102’。用户还可维护其中做出用户变更的工作空间版本102’’。储存库具有决定性版本102。如果另一用户或设备执行导致决定性版本102变更的更新,则该决定性版本102可以不同于经校验的版本102’。
这三个文件之间的语义自动合并可忽略基于行的合并无法合并的琐碎变更,并且能够比基于行的合并频繁得多地完全自动地成功合并这三个文件。为了实现上述功能,一些实施例可包括能够表达用于任意文件类型的各种类型的语义特性的可完全扩展的规则引擎106。规则引擎106包括存储在规则文件中的规则集108。可做出关于不同版本102、102’和102’’的文件类型的判定。取决于文件类型,选择来自规则集108的特定规则文件并且规则引擎106的计算模块使用该特定规则文件来确定应如何合并不同版本102、102’和102’’。
具体而言,一些实施例可支持自定义规则以支持不同的文件格式。以此方式,来自规则集108的不同规则文件取决于正在合并的文件的文件格式来选择。在一些实施例中,可实现各种扩展以便自动从诸如用于XML文件的架构定义XSD文件等用于结构化数据文件的元数据文件中读取和推断特性。在一些替换实施例中,可实现扩展以支持多文件合并。由此,可合并完全不同的文件,而不是合并文件的不同版本。例如,可将在可以从华盛顿州雷蒙德市的公司获得的Visual中创建的不同的统一建模语言(UML)项目合并成单个项目。规则文件指定其中只可存在特定类型的文件的单个实例的作用域。在以上示例中,作用域是可以从华盛顿州雷蒙德市的微软公司获得的Visual解决方案。
在一些实施例中,来自规则集108的规则文件可以用基于XPath的规则语言来编写。规则文件表达用于任意文件类型的语义合并规则。具体而言,规则文件可指定用于结构化数据文件方言的特定规则。规则文件可以按方言专用方式指定用于文件的特定部分的规则。例如,规则文件可指定对于用于文件的特定部分的一些数据文件方言,应强制实施合并数据项的次序。另选地或另外地,规则文件可指定对于用于文件的特定部分的一些数据文件方言,不应执行对这些部分的合并。另选地或另外地,规则文件可指定对于用于文件的特定部分的一些数据文件方言,应忽略诸如特定XML属性等特定属性的区别。另选地或另外地,规则文件可指定对于用于文件的特定部分的一些数据文件方言,应强制实施唯一标识符。尽管此处未具体指定,但可实现其他规则。
在一些实施例中,用户能够使用选项图形用户界面(GUI)来配置自动合并哪些文件格式和结构化数据文件的各部分。
各实施例可包括用于处理对文件的各版本的合并的功能。在一些情形中,可能无法自动解决冲突。由此,一些实施例包括以下功能:执行对其中冲突可被解决或不存在的结构化数据文件的各部分的部分合并,并允许保留未被解决的冲突。在一些实施例中,当存在冲突时,各实施例部分地合并非冲突变更,并且然后向用户提供GUI以允许该用户查看并解决语义冲突。
各实施例还可包括用于在保持人类上下文可识别性的同时合并对结构化数据文件的变更的功能。例如,当一人类用户查看结构化数据文件的文档表示时,该文档的各种数据项促进该用户阅读该文档的能力。例如,诸如段落之间的空间等空白、跳格列空间、换行符等使得文档更可由人类用户阅读。由此,各实施例可被配置成在保留文档中的空白的同时合并文档的各个版本。各实施例可实现智能空白一致性和/或尽可能少的重序列化。跨文件保留空白结构或格式化可以例如通过将文档的各大片段跨越带到其中正逐字合并的版本来执行,而不是通过将该文档跨越带到正逐个片段、逐行或逐个数据项地合并的版本。例如,不同于简单地保留确切的空白,“缩进水平”可能由于其他合并的编辑而不同,因此各实施例可能不想保留确切的空白,但所期望的格式化自动增加缩进水平,同时保持原始格式化。
在另一示例中,当一人类用户查看结构化数据文件的文档表示时,评论可促进该用户阅读该文档的能力。具体而言,评论可被添加到结构化数据文档,这些评论有助于解释该文档的内容。通常,评论与它们所涉及的内容相邻。由此,一些实施例可通过在合并结构化数据文件的各版本时保留评论邻近性来促进用户阅读文档的能力。由此,各实施例可实现评论邻近性保留,藉此即使在已经执行合并操作后,评论也保持在它们对其发表评论的数据项的附近。
现在示出附加细节,对规则引擎106的输入是三个结构化数据文件。第一个是原始文件,该原始文件是用户从源控制中校验出的版本102’。第二个是当前文件,该当前文件是当前在源控制中的版本102。该版本102可能已经由其他用户或设备在版本102’被校验之后修改。因此,版本102可以不同于版本102’。然而,该版本102可另选地与在校验版本102’之后没有对源控制版本102做出变更的情况下进行校验的版本102’相同。第三个文件是被示为最新版本102’’的最新文件。这是具有如由用户输入的修改的用户的工作空间版本102’’。
合并的输出是文件的“合并后”版本102’’’。注意,在该过程的后续迭代中,合并后版本102’’’变成源控制文件储存库104中的最新版本102。
一些实施例可被实现为三步过程。这三个步骤包括双向区分操作、三向区分操作和合并。
在一些实施例中,双向区分操作使用可从华盛顿州雷蒙德市的公司获得的XmlDiff库来执行。区分操作在具有作为输入的两个文件的情况下执行,而输出是这两个文件之间的区别。在一个实施例中,执行第一区分操作“区分1”以计算从已被校验的原始版本102’到当前工作空间版本102’’的区别。执行第二区分操作“区分2”以计算从已被校验的原始版本102’到源控制文件储存库104中所存储的最新版本102的区别。从原始版本102’执行区分操作给予关于变更的更多上下文并且有助于智能地合并文件。对文档进行双向区分操作的结果是添加、更新、删除和移动操作。
为了执行三向区分操作,各实施例遍历区分1并且找到与区分2的任何冲突操作。例如,冲突操作可以是区分1示出一数据项已被删除,而区分2示出同一数据项已被更新。冲突操作对被放置在冲突列表中。区分1和区分2中的所有非冲突操作都被放置在变更列表中。对区分2重复这些步骤,以查找区分1中的冲突。
合并可通过使用冲突和变更列表来执行。现在参考图2,示出了一个示例合并算法。为了执行图2所示的算法,各实施例将文件的原始版本102’读作数据项流,以跟踪正进行三向合并的所有三个文档中的光标位置(即,当前数据项地址)。确定变更列表中是否存在要在光标的当前位置之一应用的操作(如在用于已插入的数据项的202、用于已删除的数据项的204和用于已编辑的数据项的206所示)。如果变更列表中存在要在光标的当前位置之一应用的操作,则各实施例应用该操作(如在用于已插入的数据项的208、用于已删除的数据项的210和用于已编辑的数据项的212所示)。否则,各实施例在没有变更的情况下通过原始文本,这实现了最少的重序列化。如果在该过程结束时,冲突列表是非空的,则各实施例允许用户使用GUI工具来手动解决语义冲突。
再次参考图1,示出了规则集108,包括多个不同的规则文件。这些规则可指定用于文件类型专用配置的不同的XPath规则。对于常见XML文件类型,各实施例可使用为每一种文件格式设置的XPath规则文件来分析语义特性。该分析允许各实施例更好地理解特定文件类型并且适当地合并这些文件。例如,一些规则可指定应忽略特定数据项。具体而言,各实施例可指定将忽略对属性的冲突变更并且合并仍将是成功的。在一些实施例中,规则可指定忽略同辈列表中的数据项的次序。或者,在一些实施例中,规则可指定可以不忽略同辈列表中的数据项的次序。在一些实施例中,规则可要求数据项的唯一ID。具有相同ID的两个添加的数据项将会是冲突。
以下讨论现涉及可以执行的多种方法以及方法动作。虽然用特定次序讨论或用以特定次序发生的流程图示出了各个方法动作,但除非明确规定否则不需要特定次序,或因为一动作依赖于另一动作在执行该动作之前完成而需要特定次序。
现在参考图3,示出了方法300。可以在计算环境中实施方法300。方法300包括用于解决对诸如XML文档等结构化数据文件的冲突变更的各个动作。方法300包括确定用于结构化数据文件的结构化文本数据的方言(动作302)。结构化数据文件具有泛型结构和构建在该泛型结构之上的方言。例如,虽然XML文档具有泛型结构,但可取决于该XML文档中的数据的特质或该数据的所需组织来在该泛型结构上构建特定方言。此外,可能已经对结构化文本数据文件做出冲突变更。冲突变更可存在于结构化文本数据的原始版本、第一版本和第二版本中。示例在上文中的图1中示出,其中存在原始版本102’、当前版本102和最新版本102’’。
方法300还包括基于所确定的方言来执行对结构化数据文件的所有三个版本的合并或区分操作中的至少一个(动作304)。图1和2以及上文中的描述性文本示出了可以对结构化数据的各版本执行的各种合并和区分操作。
方法300还可包括标识与诸如所确定的XML或其他结构化数据方言等所确定的方言相关联的规则文件。图1示出了规则文件集108。方法300还可包括使用规则文件来标识结构化数据文件的三个版本中的一个或多个的不同子集以及与这些不同子集相关联的不同的合并或区分规则中的至少一个,以及对结构化数据文件的三个版本中的一个或多个的不同子集应用这些不同的规则。例如,规则文件可包括指定不为结构化数据文件的三个版本中的一个或多个的特定子集解决合并的规则。例如,规则文件可指定不应被合并的文档的各部分。
另选地或另外地,规则文件可包括指定次序对于针对文件的特定子集的合并或区分操作中的至少一个是要紧的规则。另选地或另外地,规则文件可包括指定次序对于针对结构化数据文件的三个版本中的一个或多个的特定子集的合并或区分操作中的至少一个是不要紧的规则。例如,如果正在合并两个购物车,则这些购物车中的数据项的次序通常是不要紧的。然而,如果正在合并两个旅行路线,则次序可能是要紧的,在这种情况下次序可由旅行日期来确定。有时次序可由数据项的属性(如日期)来指定,有时次序被隐含在项目出现在文件中的位置中。规则可指定如何确定次序。
另选地或另外地,规则文件可包括指定所标识的特定属性的区别对于针对结构化数据文件的三个版本中的一个或多个的特定子集的合并或区分操作中的至少一个是不要紧的规则。例如,或许属性包含用于要在呈现数据时使用的某一工具的x和y坐标,但或许这些工具能够在布局信息丢失的情况下在运行中重新计算该布局信息。在这种情况下,布局x和y属性可被标记为是可忽略的,这意味着对于同一数据项,输入数据文件可具有x值100,而另一个输入数据文件可具有值120。但合并引擎可忽略该区别并且在不引发合并冲突差错的情况下在合并后的结果中输出这些值中的任一个。
另选地或另外地,规则文件可包括以下规则:将结构化数据文件的三个版本中的一个或多个的子集指定为要求唯一性,以使得具有相同的唯一标识符的两个或更多修改后的数据项是冲突的。例如,跨结构化数据文件的不同版本的结构化数据中的数据项可被要求具有不同的唯一标识符。一些这样的实施例能够通过创建一个或多个新的唯一标识符来自动解决其中不同的变更具有相同的唯一标识符的冲突。
另选地或另外地,规则文件可包括指定结构化数据文件的三个版本中的一个或多个的特定部分不应使用任一规则来合并的规则。在一个这样的示例中,最新版本102将在已经做出冲突变更的情况下被使用。
可实施方法300的各实施例,其中使用规则文件来标识结构化数据文件的三个版本中的一个或多个的不同子集以及与这些不同子集相关联的不同的合并或区分规则中的至少一个包括遵循Xpath表达式。例如,Xpath表达式可被用来匹配结构化数据文件的三个版本中的一个或多个的子集,以及为该结构化数据文件的三个版本中的一个或多个的每一部分解析规则文件以确定与文件的不同部分相关联的规则。
如上所述,方法300可包括确定方言。这可通过检查诸如XSD文档等描述文档来实现。或者,这可通过检查结构化数据文件并基于该结构化数据文件中的数据组织或特性来识别方言来实现。
方法300还可包括基于对结构化数据的先前存在的语义格式描述来生成用于语义合并或区分操作中的至少一个的规则。例如,用于XML文件的XSD可被用来生成用于语义合并和/或区分操作的规则。
可实施方法300,其中方言指定要对其进行操作的相关的结构化文本数据集。例如,数据文件中所表达的UML图可要求相关数据文件集表达该图上所表示的底层数据元素。基于特定方言,对作为相干的相关集合的相关数据文件应用区分或合并操作。
方法300的各实施例可被实施为进一步包括在保持人类上下文可识别性的同时合并不同的版本。例如,在保持人类上下文可识别性的同时合并不同的版本可包括保留跨文件的空白结构。这可通过逐字地跨越取得文件的各大片段来实现,而不是通过逐个片段、逐行或逐个数据项地取得文档来实现。另选地或另外地,在保持人类上下文可识别性的同时合并不同的版本可包括保持评论邻近性。评论可促进用户阅读文档的能力。具体而言,评论可被添加到结构化数据文档,这些评论有助于解释该文档的内容。通常,评论与它们所涉及的内容相邻。由此,一些实施例可通过在合并结构化数据文件的各版本时保留评论邻近性来促进用户阅读文档的能力。
此外,各种方法可由包括一个或多个处理器和诸如计算机存储器等计算机可读介质的计算机系统来实施。具体而言,计算机存储器可存储计算机可执行指令,这些指令在由一个或多个处理器执行时使得诸如各实施例中所述的各个动作等各种功能被执行。
本发明的各实施例可以包括或利用包含计算机硬件的专用或通用计算机,这将在下文中更详细地讨论。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:物理计算机可读存储介质和传输计算机可读介质。
物理计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储(如CD、DVD等)、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。以上介质的组合也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件时,以计算机可执行的指令或数据结构的形式存在的程序代码装置可以自动地从传输计算机可读介质传输到物理计算机可读存储介质(或者反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机可读物理存储介质。因此,计算机可读物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
本发明可具体化为其他具体形式而不背离其精神或特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。
Claims (10)
1.一种计算环境中的解决对结构化数据文件的冲突变更的方法(300),所述方法(300)包括:
对于已经对其做出冲突变更的结构化数据文件,确定结构化数据的方言(302),所述结构化数据文件具有泛型结构和构建在所述泛型结构上的方言两者,其中存在所述结构化数据的原始版本(102’)、所述结构化数据的第一版本(102)和所述结构化数据的第二版本(102’’);以及
基于所确定的方言来执行对结构化文本数据的原始版本(102’)、所述结构化文本数据的第一版本(102)和所述结构化文本数据的第二版本(102’’)的合并或区分操作中的至少一个(304)。
2.如权利要求1所述的方法,其特征在于,还包括:
标识与所确定的方言相关联的规则文件;
使用所述规则文件来标识所述结构化数据文件的三个版本中的一个或多个的不同子集以及与所述结构化数据文件的三个版本中的一个或多个的所述不同子集相关联的不同的合并或区分规则中的至少一个;以及
对所述结构化数据文件的三个版本中的一个或多个的不同子集应用所述不同规则。
3.如权利要求2所述的方法,其特征在于,使用所述规则文件来标识所述结构化数据文件的三个版本中的一个或多个的不同子集以及与所述结构化数据文件的三个版本中的一个或多个的所述不同子集相关联的不同的合并或区分规则中的至少一个包括遵循Xpath表达式。
4.如权利要求2所述的方法,其特征在于,所述规则文件包括指定不为所述结构化数据文件的三个版本中的一个或多个的特定子集解决合并的规则。
5.如权利要求2所述的方法,其特征在于,所述规则文件包括指定次序对于针对所述结构化数据文件的三个版本中的一个或多个的特定子集的合并或区分操作中的至少一个是要紧的规则。
6.如权利要求2所述的方法,其特征在于,所述规则文件包括指定次序对于针对所述结构化数据文件的三个版本中的一个或多个的特定子集的合并或区分操作中的至少一个是不要紧的规则。
7.如权利要求2所述的方法,其特征在于,所述规则文件包括指定所标识的特定属性的区别对于针对所述结构化数据文件的三个版本中的一个或多个的特定子集的合并或区分操作中的至少一个是不要紧的规则。
8.如权利要求2所述的方法,其特征在于,所述规则文件包括以下规则:将所述结构化数据文件的三个版本中的一个或多个的子集指定为要求唯一性,以使得具有相同的唯一标识符的两个或更多修改后的数据项是冲突的。
9.如权利要求8所述的方法,其特征在于,还包括通过创建一个或多个新的唯一标识符来解决所述冲突。
10.如权利要求2所述的方法,其特征在于,所述规则文件包括指定所述结构化数据文件的三个版本中的一个或多个的特定部分不应在语义上被合并的规则。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/435,636 US9519631B2 (en) | 2012-03-30 | 2012-03-30 | Semantic diff and automerge |
US13/435,636 | 2012-03-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103279459A true CN103279459A (zh) | 2013-09-04 |
CN103279459B CN103279459B (zh) | 2017-01-18 |
Family
ID=49061984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310109981.9A Active CN103279459B (zh) | 2012-03-30 | 2013-03-29 | 语义区分和自动合并 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9519631B2 (zh) |
EP (1) | EP2831756A4 (zh) |
CN (1) | CN103279459B (zh) |
WO (1) | WO2013148383A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183789A (zh) * | 2015-08-21 | 2015-12-23 | 福建天晴数码有限公司 | 基于git源代码冲突的文件合并方法及系统 |
CN110069455A (zh) * | 2017-09-21 | 2019-07-30 | 北京华为数字技术有限公司 | 一种文件合并方法及装置 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9292822B2 (en) * | 2006-01-03 | 2016-03-22 | Motio, Inc. | Supplemental system for business intelligence systems |
US9195725B2 (en) * | 2012-07-23 | 2015-11-24 | International Business Machines Corporation | Resolving database integration conflicts using data provenance |
US9817804B2 (en) * | 2013-09-12 | 2017-11-14 | Wix.Com Ltd. | System for comparison and merging of versions in edited websites and interactive applications |
US20150356508A1 (en) * | 2014-06-06 | 2015-12-10 | International Business Machines Corporation | Collaboration using extensible state sharing |
US10248409B1 (en) * | 2014-12-03 | 2019-04-02 | Amazon Technologies, Inc. | Limiting the effects of source code patches on corresponding native-code patches |
US9830227B2 (en) | 2014-12-05 | 2017-11-28 | International Business Machines Corporation | Performing a closure merge operation |
US10740129B2 (en) | 2015-06-05 | 2020-08-11 | International Business Machines Corporation | Distinguishing portions of output from multiple hosts |
US10970302B2 (en) | 2017-06-22 | 2021-04-06 | Adobe Inc. | Component-based synchronization of digital assets |
US10146530B1 (en) | 2017-07-12 | 2018-12-04 | International Business Machines Corporation | Simulating and evaluating code branch merge |
US11321012B2 (en) * | 2018-10-12 | 2022-05-03 | Adobe Inc. | Conflict resolution within synchronized composite-part-based digital assets |
US11194553B2 (en) | 2019-09-17 | 2021-12-07 | International Business Machines Corporation | Identifying and recommending code snippets to be reused by software developer |
US11531653B2 (en) * | 2021-03-29 | 2022-12-20 | PlanetScale, Inc. | Database schema branching workflow, with support for data, keyspaces and VSchemas |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1526104A (zh) * | 2001-03-23 | 2004-09-01 | ��˹��ŵ�� | 分析结构化数据 |
US6901403B1 (en) * | 2000-03-02 | 2005-05-31 | Quovadx, Inc. | XML presentation of general-purpose data sources |
CN1804836A (zh) * | 2005-01-14 | 2006-07-19 | 微软公司 | 用于同步对共享对象的多个用户修订的方法和系统 |
US20110066626A1 (en) * | 2009-09-15 | 2011-03-17 | Oracle International Corporation | Merging XML documents automatically using attributes based comparison |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19607149A1 (de) | 1996-02-26 | 1997-08-28 | Siemens Ag | Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei |
CA2255047A1 (en) | 1998-11-30 | 2000-05-30 | Ibm Canada Limited-Ibm Canada Limitee | Comparison of hierarchical structures and merging of differences |
US6768984B2 (en) * | 2000-06-27 | 2004-07-27 | Metapower Llc | Method and apparatus for process design |
EP1525556B1 (en) | 2002-04-19 | 2018-12-05 | CA, Inc. | System and method for providing inferencing services |
US20040177343A1 (en) * | 2002-11-04 | 2004-09-09 | Mcvoy Lawrence W. | Method and apparatus for understanding and resolving conflicts in a merge |
US7296017B2 (en) | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML data files |
US7290251B2 (en) * | 2003-05-16 | 2007-10-30 | Microsoft Corporation | Method and system for providing a representation of merge conflicts in a three-way merge operation |
US20070067373A1 (en) * | 2003-11-03 | 2007-03-22 | Steven Higgins | Methods and apparatuses to provide mobile applications |
US7430711B2 (en) | 2004-02-17 | 2008-09-30 | Microsoft Corporation | Systems and methods for editing XML documents |
US7376648B2 (en) * | 2004-10-20 | 2008-05-20 | Oracle International Corporation | Computer-implemented methods and systems for entering and searching for non-Roman-alphabet characters and related search systems |
EP1825355A4 (en) * | 2004-11-12 | 2009-11-25 | Make Sence Inc | METHOD FOR KNOWING KNOWLEDGE BY CONSTRUCTING KNOWLEDGE CORRELATIONS USING CONCEPTS OR TERMS |
US20060156278A1 (en) * | 2004-11-18 | 2006-07-13 | Reager Sue E | Global localization and customization system and process |
US20060167905A1 (en) * | 2005-01-27 | 2006-07-27 | Peiya Liu | Method and system for template data validation based on logical constraint specifications |
US7904402B2 (en) * | 2007-08-31 | 2011-03-08 | Red Hat, Inc. | Pluggable dialects for a rule engine |
US8060855B2 (en) | 2007-10-09 | 2011-11-15 | Microsoft Corporation | Artifact sharing from a development environment |
US8799860B2 (en) * | 2007-12-14 | 2014-08-05 | International Business Machines Corporation | System and method for expressing XML schema validation using java in a declarative manner |
KR20100113975A (ko) * | 2009-04-14 | 2010-10-22 | 엘지전자 주식회사 | 과거에 수행된 특정 동작을 선택적으로 취소하는 xml 문서 관리 방법 및 이를 이용한 시스템 |
JP5413622B2 (ja) * | 2009-04-30 | 2014-02-12 | 日本電気株式会社 | 言語モデル作成装置、言語モデル作成方法、およびプログラム |
US8572022B2 (en) | 2010-03-02 | 2013-10-29 | Microsoft Corporation | Automatic synchronization conflict resolution |
US20130111336A1 (en) * | 2011-11-01 | 2013-05-02 | Griffin Dorman | Platform and application independent system and method for networked file access and editing |
-
2012
- 2012-03-30 US US13/435,636 patent/US9519631B2/en active Active
-
2013
- 2013-03-18 WO PCT/US2013/032740 patent/WO2013148383A1/en active Application Filing
- 2013-03-18 EP EP13769842.9A patent/EP2831756A4/en not_active Ceased
- 2013-03-29 CN CN201310109981.9A patent/CN103279459B/zh active Active
-
2016
- 2016-12-12 US US15/376,085 patent/US10949612B2/en active Active
-
2021
- 2021-03-12 US US17/200,451 patent/US11573949B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901403B1 (en) * | 2000-03-02 | 2005-05-31 | Quovadx, Inc. | XML presentation of general-purpose data sources |
CN1526104A (zh) * | 2001-03-23 | 2004-09-01 | ��˹��ŵ�� | 分析结构化数据 |
CN1804836A (zh) * | 2005-01-14 | 2006-07-19 | 微软公司 | 用于同步对共享对象的多个用户修订的方法和系统 |
US20110066626A1 (en) * | 2009-09-15 | 2011-03-17 | Oracle International Corporation | Merging XML documents automatically using attributes based comparison |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183789A (zh) * | 2015-08-21 | 2015-12-23 | 福建天晴数码有限公司 | 基于git源代码冲突的文件合并方法及系统 |
CN110069455A (zh) * | 2017-09-21 | 2019-07-30 | 北京华为数字技术有限公司 | 一种文件合并方法及装置 |
CN110069455B (zh) * | 2017-09-21 | 2021-12-14 | 北京华为数字技术有限公司 | 一种文件合并方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20130262419A1 (en) | 2013-10-03 |
US10949612B2 (en) | 2021-03-16 |
US11573949B2 (en) | 2023-02-07 |
US20210200944A1 (en) | 2021-07-01 |
EP2831756A4 (en) | 2016-01-13 |
WO2013148383A1 (en) | 2013-10-03 |
US9519631B2 (en) | 2016-12-13 |
US20170315973A1 (en) | 2017-11-02 |
EP2831756A1 (en) | 2015-02-04 |
CN103279459B (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103279459A (zh) | 语义区分和自动合并 | |
Aghamiri et al. | Automated inference of Boolean models from molecular interaction maps using CaSQ | |
US9304672B2 (en) | Representation of an interactive document as a graph of entities | |
Li et al. | Data flow diagram | |
US9336184B2 (en) | Representation of an interactive document as a graph of entities | |
CN104412227B (zh) | 基于查询的软件系统设计表示 | |
Dimyadi et al. | Modelling and accessing regulatory knowledge for computer-assisted compliance audit | |
US20070027887A1 (en) | Web application for argument maps | |
CN103608772A (zh) | 多承租人协作审阅服务 | |
CN101263477B (zh) | 用于管理与计算机生成文档相关联的数据的系统和方法 | |
Endler et al. | Designing and encoding models for synthetic biology | |
Wouters et al. | A SECO Meta-model: A Common Vocabulary of the SECO Research Domain | |
Silva et al. | TEI4LdoD: textual encoding and social editing in Web 2.0 environments | |
US11176175B1 (en) | System and method for computing and managing datasets using hierarchical analytics | |
Misirli et al. | Annotation of rule-based models with formal semantics to enable creation, analysis, reuse and visualization | |
Gatterbauer et al. | Principles of query visualization | |
Sannier et al. | INCREMENT: A mixed MDE-IR approach for regulatory requirements modeling and analysis | |
Kaes et al. | Mining and querying process change information based on change trees | |
Cicchetti et al. | A Solution for Concurrent Versioning of Metamodels and Models. | |
Thao | A configuration management system for software product lines | |
Wang et al. | Accelerating cancer systems biology research through Semantic Web technology | |
Vieritz et al. | Access to UML diagrams with the HUTN | |
Halilaj et al. | SerVCS: Serialization Agnostic Ontology Development in Distributed Settings | |
Cummings et al. | The Holinshed Project: Comparing and linking two editions of Holinshed's Chronicle | |
Ba et al. | Towards a version control model with uncertain data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150727 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150727 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |