文档归并的制作方法

文档序号:6479090阅读:281来源:国知局
专利名称:文档归并的制作方法
文档归并背景归并是协调对同一文档的不同副本作出的多个改变的动作。通常,两个人同时修 改一文档的是必要的。稍后,这些改变需要归并成反映这两个作者的意图的单个新文档。常规的归并是麻烦且耗时的。需要更高效的归并。概述如本文讨论的,一些实施例的一方面涉及归并第一文档与至少一个第二文档以生 成第三文档的方法。第一和第二文档中的每一个包括至少一个数据单元。每一数据单元与 单元标识符和编辑标识符相关联。该方法包括获得第一文档的数据单元的单元标识符。该 方法还包括获得第二文档的数据单元的单元标识符。将第一和第二文档中的每一个的单元 标识符与第一和第二文档中的另一个的单元标识符相比较,以确定这些单元标识符中的每 一个是匹配的单元标识符还是非匹配的单元标识符。匹配的单元标识符指示第一和第二文 档的对应的数据单元。非匹配的单元标识符中的每一个指示第一和第二文档之一的、与第 一和第二文档中的另一个的任何数据单元都不相对应的数据单元。将与匹配的单元标识符 相关联的数据单元的编辑标识符彼此相比较以查明匹配的编辑标识符。匹配的编辑标识符 中的每一个指示第一和第二文档之一的一数据单元与第一和第二文档中的另一个的对应 数据单元相匹配。将第一和第二文档的与非匹配的单元标识符相关联的数据单元直接插入 到第三文档。另外,将第一和第二文档的与匹配的单元标识符和匹配的编辑标识符相关联 的数据单元直接插入到第三文档。最后,将第一和第二文档的与匹配的单元标识符和非匹 配的编辑标识符相关联的数据单元归并到第三文档。一些实施例的另一方面涉及一种文档处理系统。该文档处理系统包括文档处理应 用程序和第一文档。该文档处理应用程序被配置成将至少两个文档归并到一起以生成第三 文档。第一文档被配置成由文档处理应用程序处理。第一文档存储内容和元数据。内容包 括至少一个数据单元。元数据包括与每一数据单元相关联的单元标识符和编辑标识符。每 一数据单元的单元标识符在创建该数据单元时生成。每一数据单元的编辑标识符在保存对 该数据单元的修改时生成。又一些方面涉及一种具有用于实现从第一文档和第二文档生成归并文档的方法 的计算机可执行指令的计算机可读存储介质。该方法包括确定第一文档是否具有第一文档 标识符以及第二文档是否具有第二文档标识符。该方法还包括在第一和第二文档之一具有 第一和第二文档标识符中的一个的情况下获得第一和第二文档标识符中的一个。该方法还 包括将第一文档的第一文档标识符与第二文档的第二文档标识符相比较。该方法包括在第 一和第二文档中的任一个不具有文档标识符的情况下执行第一和第二文档的常规归并以 生成归并文档。此外,该方法包括在第一文档标识符与第二文档标识符不同的情况下执行 第一和第二文档的常规归并以生成归并文档。最后,该方法包括在第一文档标识符与第二 文档标识符相匹配的情况下执行第一和第二文档的加速归并以生成归并文档。提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概 念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也决不旨在用于限制所要求保护的主题的范围。附图简述

图1是示例性文档处理系统的框图;图2是示出被配置成由图1的示例性文档处理应用程序来处理的示例性文档的框 图;图3是示出图2所示的文档的示例性格式的框图;图4是示出除元数据文件与文档分开存储之外与图3所示的文档相类似的另一示 例性文档的框图;图5是示出归并第一文档与第二文档以生成第三文档的框图;图6是用于实现本发明的各方面的示例性计算系统;图7示出归并第一文档与第二文档以生成第三文档的示例方法;图8示出向文档的每一数据单元分配并存储单元标识符和编辑标识符的示例方 法;以及图9示出归并第一文档与第二文档以生成归并文档的另一示例方法。详细描述本发明现将参考其中示出了各具体实施例的附图来更完整地描述各示例性实施 例。然而,其他方面能以许多不同的形式来实现,并且在本发明中包括各具体实施例不应被 解释为将这些方面限于在此所述的各实施例。相反,包括附图中描绘的各实施例是为了提 供全面和完整且将预期的范围完全地传达给本领域技术人员的公开。在参考附图时,使用 相同的附图标记来指示所有附图所示的相同的结构和元素。本发明的各实施例一般涉及文档归并。在一个非限制性示例中,描述了归并第一 文档与至少一个第二文档以生成第三文档。第一和第二文档中的每一个包括至少一个数据 单元。每一数据单元与单元标识符和编辑标识符相关联。又一些实施例涉及一种文档处理 系统。该文档处理系统包括被配置成将至少两个文档归并到一起以生成第三文档的文档处 理应用程序。图1是示例性文档处理系统的框图。文档处理系统100包括文档处理应用程序 110和文档120。文档处理应用程序110被配置成将文档120归并到一起以生成归并文档。 在替换实施例中,文档处理应用程序110被配置成将三个、四个、或更多文档归并在一起以 生成归并文档。在一个可能的实施例中,文档处理应用程序110是文字处理应用程序,诸如但 不限于微软 Office Word应用程序。在其他可能的实施例中,文档处理系统100是 图像、数据、语音、或任何其他合适的文档处理系统。类似地,文档处理应用程序110也 可以是图像、数据、语音、或任何其他合适的文档处理应用程序,诸如但不限于微软 Office PowerPoint 、Excel 、Visio 、Access 、以及Outlook 软件应用程序。文档 120 可以是文本或富文本文档、演示、电子表格、绘图、数据、电子邮件、以及合适格式的任何其 他文档。图2是示出被配置成由图1的示例性文档处理应用程序110来处理的示例性文档 120的框图。文档120被分成一个或多个数据单元124。每一数据单元124被分配了在数 据单元124的寿命期间持久保持的唯一的单元标识符126。单元标识符126标识文档120
6中的相关联的数据单元124并将其与文档120中的任何其他数据单元区分开来。在创建、编辑、或修改数据单元124时,还向数据单元124分配编辑标识符128。具 体而言,只要创建、编辑、或修改数据单元124,就向数据单元124分配新编辑标识符128以 使新编辑标识符128替换数据单元124的先前编辑标识符(如果有的话)。新编辑标识符 128与数据单元124的先前编辑标识符(如果有的话)不同。在一个可能的实施例中,编辑 标识符128是随机生成的。在各示例实施例中,通过使用各种方法将文档120分成各数据单元124。例如,如 果文档120是文本文档,则该文档的每一段落可被分成一个独立的数据单元。换言之,在文 本文档的示例中,数据单元124也可以被称为段落。在这样的示例中,单元标识符126被称 为段落标识符。在其他类型的文档中,可以使用其他方法来将文档120分成各数据单元。例 如,可以使用文档内的对象、图形、幻灯片、或其他可选择项来将该文档分成各独立的数据 单元。单元标识符126和编辑标识符128可以是用于标识数据单元124的任何合适的格 式。单元标识符126和编辑标识符128的一种可能的示例性格式是数字、字母、和/或符号 的组合,如32位整数。本领域技术人员将明白用于单元标识符126和编辑标识符128的许 多其他合适的标识符格式。单元标识符126和编辑标识符128可以存储在文档120中、存 储在分开的文件中、或存储在任何其他合适的可存储和可访问介质中。存储单元标识符126 和编辑标识符128的一些示例性格式以下在图3-4中更详细地讨论。文档120还包括用于标识文档120的文档标识符122。在一个可能的实施例中, 在新创建文档120时向文档120分配文档标识符122。在另一可能的实施例中,在文档120 不具有文档标识符时向文档120分配文档标识符122。例如,在文档120先前由不识别单元 或编辑标识符的应用程序编辑时向文档120分配文档标识符122。在将文档标识符122分配给文档120时文档标识符122是唯一且持久的。换言之, 文档标识符122在文档120的寿命期间持久保持。即使在编辑和修改文档120时文档标识 符122也不改变。另外,在从文档120创建分开的文档时,文档标识符122与该分开的文档 留在一起。这可在用户将一文档复制到新文档时或在创建该文档的多个用户副本以允许多 个用户编辑同一文档时发生。图3是示出图2所示的文档120的示例性格式的框图。具体而言,文档120包括 内容130和元数据140。文档120存储内容130和元数据140。内容130包括至少一个数 据单元124。元数据140包括与每一数据单元124相关联的单元标识符126和编辑标识符 128。在创建数据单元124时生成单元标识符126。只要将对数据单元124的修改存储在文 档内时就生成编辑标识符128。元数据140被存储在文档120中。图4是示出除元数据文件150与文档120分开存储之外与图3所示的文档相类似 的另一示例性文档120的框图。优选地,元数据文件150包括涉及文档120的内容130的 元数据140。元数据文件150的元数据140包括指示元数据140涉及哪一数据单元124的 单元标识符126。在一个可能的实施例中,元数据140还可包括编辑标识符128。数据单元 124由元数据140中包括的单元标识符126来指示。图5是示出归并第一文档220与第二文档240以生成第三文档260的框图。第一 文档220和第二文档240的示例性结构以上在图1-4中描述。第三文档260是通过归并第一文档220和第二文档240来创建的归并文档。在图5所示的示例中,第一文档220包括第一文档标识符122a和数据单元 124a-c。第一文档标识符122a标识第一文档220。在图5中示出了三个数据单元124a_c, 然而,第一文档220可包括多于或少于三个数据单元。关于所示的数据单元124a-c,数据 单元124a具有与数据单元124a相关联的单元标识符Ul和编辑标识符El。数据单元124b 具有与数据单元124b相关联的单元标识符U2和编辑标识符E20。数据单元124c具有与数 据单元124c相关联的单元标识符U3和编辑标识符E3。类似地,第二文档240包括第二文档标识符122b和数据单元124d-f。第二文档标 识符122b标识第二文档240。在图5中示出了三个数据单元124d-f,然而,第二文档240 可包括多于或少于三个数据单元。数据单元124d具有与数据单元124d相关联的单元标识 符Ul和编辑标识符El。数据单元124e具有与数据单元124e相关联的单元标识符U2和编 辑标识符E21。如上所述,第二文档240中的数据单元124e的编辑标识符E21与第一文档 220中的数据单元124b的编辑标识符E20不同。数据单元124f具有与数据单元124f相关 联的单元标识符U4和编辑标识符E4。在图5所示的示例性归并中,第一文档220的第一文档标识符122a与第二文档 240的第二文档标识符122b相同。因而如以下详细描述的,在加速归并中执行第一文档220 和第二文档240。因为第一文档220的第二文档240具有相同的文档标识符,所以第一和第 二文档220、240共享共同的源或父文档。如此,可以使用以下描述的加速归并过程中的一 个或多个来归并第一文档220与第二文档240。第一文档220的数据单元124a具有与第二文档240的数据单元124d相同的单元 标识符Ul和编辑标识符El。数据单元124a因此被指示为与数据单元124d相同。换言之, 数据单元124d未被从数据单元124a改变或修改。因此,数据单元124a和数据单元124d之 间不需要归并。相反,数据单元124a(或与数据单元124a相同的数据单元124d)被直接插 入到第三文档260,如数据单元124g所示。因为数据单元124a和数据单元124d之间不需 要归并,所以归并文档(即第三文档)260中的数据单元124g使单元标识符Ul和编辑标识 符El与其保持关联。这一直接插入而不进一步将数据单元124a中的内容与数据单元124d 中的内容作比较可以节省时间、提高效率、以及增强归并精度。数据单元124b与数据单元124e具有相同的单元标识符U2但具有不同的编辑标 识符E20、E21。不同的编辑标识符E20、E21指示数据单元124b和数据单元124e是不同的。 换言之,需要数据单元124b与数据单元124e之间的归并。因此,第三文档260中的数据单 元124h是从数据单元124b与数据单元124e之间的归并生成的。单元标识符U2被保持在 数据单元124h中。在两个数据单元124b和124e的归并时创建新编辑标识符E22。没有发现第一文档220的数据单元124c在第二文档240中拥有具有与数据单元 124c的单元标识符U3相匹配的单元标识符的任何数据单元。因此,将数据单元124c直接 插入到第三文档260而无需归并,并且在第三文档260中将其标记为数据单元124i。数据 单元124i因而包括与数据单元124i相关联的单元标识符U3和编辑标识符E3。第三文档 260中的数据单元124i与第一文档220中的数据单元124c完全相同。在一个可能的实施 例中,将数据单元124c直接追加到第三文档260的末尾。在另一可能的实施例中,对数据 单元124c (没有归并数据单元124c的内容)排序以根据数据单元124a-j之间的关系将其插入到第三文档260的正确位置。类似地,没有发现第二文档的数据单元124f在第一文档220中拥有具有与数据单 元124f的单元标识符U4相匹配的单元标识符的任何数据单元。因此,将数据单元124f直 接插入到第三文档260而无需归并,并且在第三文档260中将其标记为数据单元124j。数 据单元124j因而包括与数据单元124j相关联的单元标识符U4和编辑标识符E4。第三文 档260中的数据单元124 j与第二文档240中的数据单元124f完全相同。在一个可能的实 施例中,将数据单元124f直接追加到第三文档260的末尾。在另一可能的实施例中,对数 据单元124f (没有归并数据单元124f的内容)排序以根据数据单元124a-j之间的关系将 其插入到第三文档260的正确位置。归并文档260因而包括数据单元124g_j。数据单元124g-j中的每一个也与单元 标识符和编辑标识符相关联。另外,文档标识符122a(或与122a相同的122b)保留在归并 文档260中,并且在图5中被标记为文档标识符122c。在另一可能的实施例中,如果第一文档220的文档标识符122a与第二文档240的 文档标识符122b不同,则在第一文档与第二文档之间执行常规归并。在又一可能的实施例 中,如果第一和第二文档220、240中的任一个不具有文档标识符,则将执行常规归并以生 成第三文档。图5中的示例示出将两个文档归并在一起成为经归并的第三文档。然而,其不限 于只归并两个文档。相反,本文所示的概念和原理可适用于归并多于两个文档。图6是用于实现本发明的各方面的示例性计算系统600。例如,计算系统600可 以是上述用于创建一个文档和/或归并诸如如上所述的文档220、240等两个或更多个文档 的文档处理系统100。在其最基本的配置中,计算系统600通常包括至少一个处理单元602 和存储器604。取决于计算系统系统的确切配置和类型,存储器604可以是易失性的(诸 如RAM)、非易失性的(诸如ROM、闪存等)或是两者的某种组合。该最基本配置在图6中由 虚线606来示出。另外,计算系统600还可具有附加特征/功能。例如,计算机系统600还 可包括附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。这些附加存 储在图6中由可移动存储608和不可移动存储610示出。计算机存储介质包括以用于存储 诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现 的易失性和非易失性、可移动和不可移动介质。存储器604、可移动存储608和不可移动存 储610都是计算机存储介质的示例。计算机存储介质包括,但不限于,RAM、ROM、EEPR0M、R 存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存 储或其他磁性存储设备、或能用于存储所需信息且可以由计算系统600访问的任何其他介 质。任何这样的计算机存储介质都可以是计算系统600的一部分。计算系统600还可包含允许该计算系统与其他设备进行通信的通信连接612。通 信连接612是通信介质的一个示例。通信介质通常以诸如载波或其他传输机制等已调制 数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介 质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定 或更改的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接, 以及无线介质,诸如声学、RF、红外线和其他无线介质。如此处所使用的术语“计算机可读 介质”包括存储介质和通信介质两者。
9
计算系统600还可具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等输入 设备614。还可包括诸如显示器、扬声器、打印机等输出设备616。所有这些设备在本领域 是众知的并且不必在此详细讨论。在一些实施例中,存储器604包括操作系统620、应用程序622、其他程序模块624 和程序数据626中的一个或多个。例如,应用程序622可包括用于创建和/或归并两个或 更多个文档的文本或文字处理应用程序。图7示出归并第一文档与第二文档以生成第三文档的示例方法700。在所示方法 中,第一和第二文档中的每一个包括至少一个数据单元。每一数据单元与单元标识符和编 辑标识符相关联。文档处理应用程序被配置成将第一和第二文档归并到一起以生成第三文 档。如上所述,在一个可能的实施例中,文档是文本文档。在操作702,文档处理应用程序获得第一文档的数据单元的单元标识符。在一个可 能的实施例中,单元标识符被存储在第一文档内。在另一可能的实施例中,单元标识符被存 储在与第一文档分开的元数据文件中。操作流程前进至操作704。在操作704,文档处理应用程序获得第二文档的数据单 元的单元标识符。在一个可能的实施例中,单元标识符被存储在第二文档内。在另一可能 的实施例中,单元标识符被存储在与第二文档分开的元数据文件中。操作流程前进至操作706。在操作706,文档处理应用程序将第一和第二文档中的 每一个的单元标识符与第一和第二文档中的另一个的单元标识符相比较,以确定这些单元 标识符中的每一个是匹配的单元标识符还是非匹配的单元标识符。匹配的单元标识符意味 着发现第一文档中的单元标识符与第二文档中的单元标识符相同。这些匹配的单元标识符 指示第一和第二文档的对应的数据单元。非匹配的单元标识符意味着没有发现第一和第二 文档之一中的一单元标识符与第一和第二文档中的另一个中的任何单元标识符相同。非匹 配的单元标识符中的每一个指示第一和第二文档之一的、与第一和第二文档中的另一个的 任何数据单元都不相对应的数据单元。操作流程前进至比较操作708。比较操作708确定第一和第二文档之一中的任何 单元标识符是否与第一和第二文档中的另一个中的任何单元标识符相匹配。如果比较操作 708确定第一和第二文档之一中的一单元标识符与第一和第二文档中的另一个中的任何单 元标识符都不匹配,则操作流程分支“否”并且操作流程前进至操作710。在操作710,将与 非匹配的单元标识符相关联的数据单元直接插入到第三文档。如果比较操作708确定第一和第二文档之一中的一单元标识符与第一和第二文 档中的另一个中的任何单元标识符相匹配,则操作流程分支“是”并且操作流程前进至操作 712。在操作712,文档处理应用程序比较与匹配的单元标识符相关联的数据单元的编 辑标识符以查明匹配的编辑标识符。匹配的编辑标识符中的每一个指示第一和第二文档之 一的一数据单元与第一和第二文档中的另一个的对应数据单元相匹配。另一方面,非匹配 的编辑标识符中的每一个指示第一和第二文档之一的一数据单元与第一和第二文档中的 另一个的对应数据单元不相匹配。操作流程前进至比较操作714。比较操作714确定与匹配的单元标识符相关联的 数据单元的编辑标识符是否彼此相匹配。如果比较操作708确定编辑标识符彼此相匹配,则操作流程分支“是”并且操作流程前进至操作710。在操作710,将与匹配的单元标识符和匹配的编辑标识符相关联的数据单元直接插入到第三文档。如果比较操作714确定与匹配的单元标识符相关联的数据单元的编辑标识符彼 此不匹配,则操作流程分支“否”并且操作流程前进至操作716。在操作716,将与匹配的单 元标识符和非匹配的编辑标识符相关联的数据单元归并到第三文档的数据单元中。这可以 例如使用诸如三向归并算法等常规归并过程来完成。还可以使用其他常规归并过程。图7所示的示例示出将两个文档归并在一起成为经归并的第三文档的方法。然 而,其不限于归并两个文档。相反,本文所示的概念和原理可适用于归并多于两个文档。图8示出向文档的每一数据单元分配并存储单元标识符和编辑标识符的示例方 法800。具体而言,在操作802,向文档的每一数据单元分配单元标识符。单元标识符是唯 一且持久的。单元标识符在数据单元的寿命期间持久保持。单元标识符标识文档中的相关 联的数据单元并将其与文档中的任何其他数据单元区分开来。操作流程前进至操作804。在操作804,将单元标识符存储在文档内。在一个可能 的实施例中,单元标识符被存储在文档内的元数据中。在另一可能的实施例中,单元标识符 被存储在与文档分开的元数据文件中。操作流程前进至操作806。在操作806,只要创建或编辑文档的每一数据单元就向 该数据单元分配编辑标识符。因此,编辑标识符指示数据单元是新创建的还是被编辑的。编 辑标识符与单元标识符分开。在向数据单元分配编辑标识符时,新分配的编辑标识符与该 数据单元的先前编辑标识符(如果有的话)不同并替换它。在一个可能的实施例中,编辑 标识符是随机生成的。换言之,编辑标识符可以使用随机标识符来分配。操作流程前进至操作808。在操作808,将编辑标识符存储在文档内。在一个可能 的实施例中,编辑标识符被存储在文档内的元数据中。在另一可能的实施例中,编辑标识符 被存储在与文档分开的元数据文件中。在又一可能的实施例中,在用户保存文档时,编辑标 识符与其一起存储。图9示出归并第一文档与第二文档以生成归并文档的另一示例方法900。文档处 理应用程序被配置成将第一和第二文档归并到一起以生成归并文档。方法900具体地示出 如何处理可能不具有与第一和/或第二文档相关联的文档标识符的第一和第二文档。换言 之,在一个可能的实施例中,方法900示出如何逆行处理由文档处理应用程序的先前版本 所创建和/或编辑的文档。方法900示出文档处理应用程序如何处理与先前应用程序版本 的文档向后兼容性。操作流程在操作902开始。操作902确定第一文档是否具有与该第一文档相关联 的第一文档标识符。如果操作902确定第一文档不具有与其相关联的第一文档标识符,则 操作流程分支“否”并且操作流程前进至操作914(在以下详细讨论)。如果操作902确定 第一文档具有与该第一文档相关联的第一文档标识符,则操作流程分支“是”并且操作流程 前进至操作904。在操作904,从第一文档获得第一文档标识符。操作流程前进至操作906。操作906确定第二文档是否具有与该第二文档相关联 的第二文档标识符。如果操作906确定第二文档不具有与该第二文档相关联的第二文档标 识符,则操作流程分支“否”并且操作流程前进至操作914。如果操作906确定第二文档具 有与该第二文档相关联的第二文档标识符,则操作流程分支“是”并且操作流程前进至操作908。在操作908,从第二文档获得第二文档标识符。操作流程前进至比较操作910。比较操作910确定第一文档的第一文档标识符与 第二文档的第二文档标识符是否相匹配。如果比较操作910确定第一文档的第一文档标 识符与第二文档的第二文档 标识符相匹配,则操作流程分支“是”并且操作流程前进至操作 912。在操作912,如以上在图7-8讨论的,执行加速文档归并。如果比较操作910确定第一 文档的第一文档标识符与第二文档的第二文档标识符不相匹配,则操作流程分支“否”并且 操作流程前进至操作914。在操作914,执行常规文档归并。在常规文档归并在操作914完成之后,操作流程前进至操作916。在操作916,向 归并文档分配文档标识符。文档标识符是唯一且持久的。文档标识符在归并文档的寿命期 间持久保持。操作流程前进至操作918。在操作918,向归并文档中的每一数据单元分配在数据 单元的寿命期间持久保持的唯一单元标识符。单元标识符标识归并文档中的相关联的数据 单元并将其与归并文档中的任何其他数据单元区分开来。操作流程前进至操作920。在操作920,将单元标识符存储在归并文档内。在一个 可能的实施例中,将单元标识符存储在文档内的元数据中。在另一可能的实施例中,单元标 识符被存储在与归并文档分开的元数据文件中。操作流程前进至操作922。在操作922,向数据单元中的每一个分配编辑标识符。 编辑标识符指示数据单元是新创建的还是被编辑的。编辑标识符与单元标识符分开。操作流程前进至操作924。在操作924,将编辑标识符存储在归并文档内。在一个 可能的实施例中,编辑标识符被存储在归并文档内的元数据中。在另一可能的实施例中,编 辑标识符被存储在与归并文档分开的元数据文件中。在又一可能的实施例中,在用户保存 文档时,存储编辑标识符。另外,编辑标识符可以使用随机标识符来分配。在操作916-924之后,将归并文档转换成准备好在稍后编辑和/或复制该归并文 档时进行加速归并的文档。例如,如果归并文档被一个用户修改成第四文档并且被另一用 户修改成第五文档,则可以用上述加速归并方法来归并该第四文档和第五文档。图9所示的示例示出将两个文档归并在一起成为经归并的第三文档的方法。然 而,其不限于只归并两个文档。相反,本文所示的概念和原理可适用于归并多于两个文档。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权 利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为 实现权利要求的示例形式公开的。
权利要求
一种归并第一文档(220)与至少一个第二文档(240)以生成第三文档(260)的方法,所述第一和第二文档(220、240)中的每一个包括一个或多个数据单元(124a、124b、124c、124d、124e、124f),每一数据单元(124a、124b、124c、124d、124e、124f)与单元标识符(U1、U2、U3、U4)和编辑标识符(E1、E3、E4、E20、E21)相关联,所述方法包括获得所述第一文档(220)的数据单元(124a、124b、124c)的单元标识符(U1、U2、U3);获得所述第二文档(240)的数据单元(124d、124e、124f)的单元标识符(U1、U2、U4);将所述第一和第二文档(220、240)中的每一个的单元标识符(U1、U2、U3、U4)与所述第一和第二文档(220、240)中的另一个的单元标识符(U1、U2、U3、U4)相比较以确定所述单元标识符(U1、U2、U3、U4)中的每一个是匹配的单元标识符还是非匹配的单元标识符,其中所述匹配的单元标识符中的每一个指示所述第一和第二文档(220、240)的对应的数据单元(124a、124b、124c、124d、124e、124f),并且其中所述非匹配的单元标识符中的每一个指示所述第一和第二文档(220、240)之一的、与所述第一和第二文档(220、240)中的另一个的任何数据单元(124a、124b、124c、124d、124e、124f)都不相对应的数据单元(124a、124b、124c、124d、124e、124f);比较与所述匹配的单元标识符相关联的数据单元(124a、124b、124c、124d、124e、124f)的编辑标识符(E1、E3、E4、E20、E21)以查明匹配的编辑标识符,所述匹配的编辑标识符中的每一个指示所述第一和第二文档(220、240)之一的数据单元(124a、124b、124c、124d、124e、124f)与所述第一和第二文档(220、240)中的另一个的对应数据单元(124a、124b、124c、124d、124e、124f)相匹配;将所述第一和第二文档(220、240)的、与非匹配的单元标识符相关联的数据单元(124a、124b、124c、124d、124e、124f)直接插入到所述第三文档(260);将所述第一和第二文档(220、240)的、与匹配的单元标识符和匹配的编辑标识符相关联的数据单元(124a、124b、124c、124d、124e、124f)直接插入到所述第三文档(260);以及将所述第一和第二文档(220、240)的、与匹配的单元标识符和非匹配的编辑标识符相关联的数据单元(124a、124b、124c、124d、124e、124f)归并到所述第三文档(260)。
2.如权利要求1所述的方法,其特征在于,还包括 向所述第一文档的每一数据单元分配单元标识符;以及 将所述单元标识符存储在所述第一文档内。
3.如权利要求1所述的方法,其特征在于,还包括 向所述第一文档的每一数据单元分配编辑标识符;以及 将所述编辑标识符存储在所述第一文档内。
4.如权利要求3所述的方法,其特征在于,存储所述编辑标识符包括在用户保存所述 第一文档时存储所述编辑标识符。
5.如权利要求3所述的方法,其特征在于,分配所述编辑标识符包括生成随机标识符。
6.如权利要求1所述的方法,其特征在于,获得所述第一文档的数据单元的单元标识 符包括获得所述第一文档的各段落的段落标识符。
7.一种文档处理系统(100),包括被配置成将至少两个文档(220、240)归并到一起以生成第三文档(260)的文档处理应 用程序(110);以及被配置成由所述文档处理应用程序(110)处理的第一文档(120),所述第一文档(120) 存储内容(130)和元数据(140),所述第一文档(120)的内容(130)包括至少一个数据单 元(124),所述第一文档(120)的元数据(140)包括与每一数据单元相关联的单元标识符 (126)和编辑标识符(128),每一数据单元的单元标识符(126)在创建该数据单元(124)时 生成,每一数据单元的编辑标识符(128)在保存对该数据单元(124)的修改时生成。
8.如权利要求7所述的文档处理系统,其特征在于,所述文档处理应用程序被配置成 在创建每一数据单元时生成该数据单元的单元标识符。
9.如权利要求7所述的文档处理系统,其特征在于,所述文档处理应用程序被配置成 在将所述修改存储在所述第一文档内时生成每一数据单元的编辑标识符。
10.如权利要求7所述的文档处理系统,其特征在于,还包括与所述第一文档分开存储的元数据文件,所述元数据文件包括涉及所述第一文档的内 容的元数据,所述元数据文件的元数据包括指示所述元数据涉及哪一数据单元的单元标识 符。
11.如权利要求10所述的文档处理系统,其特征在于,存储在所述元数据文件中的元 数据与所述元数据中包括的单元标识符所指示的数据单元相关联。
12.如权利要求7所述的文档处理系统,其特征在于,所述文档处理应用程序被配置成 将所述第一文档的单元标识符与第二文档的单元标识符相比较以确定所述单元标识符中 的每一个是匹配的单元标识符还是非匹配的单元标识符,其中所述匹配的单元标识符中的 每一个指示所述第一和第二文档的对应的数据单元,并且其中所述非匹配的单元标识符指 示所述第一和第二文档之一的、与所述第一和第二文档中的另一个的任何数据单元都不相 对应的数据单元。
13.如权利要求12所述的文档处理系统,其特征在于,所述文档处理应用程序被配置 成比较与所述匹配的单元标识符相关联的数据单元的编辑标识符以查明匹配的编辑标识 符,所述匹配的编辑标识符中的每一个指示所述第一和第二文档之一的一数据单元与所述 第一和第二文档中的另一个的对应的数据单元相匹配。
14.如权利要求7所述的文档处理系统,其特征在于,所述文档是文本文档。
15.如权利要求7所述的文档处理系统,其特征在于,所述数据单元是段落。
16.一种具有用于实现一种从第一文档(220)和第二文档(240)生成归并文档(260) 的方法的计算机可执行指令的计算机可读存储介质(604),所述方法包括确定所述第一文档(220)是否具有第一文档标识符(U1、U2、U3),所述第一文档标识符 (U1、U2、U3)标识所述第一文档(220)如果所述第一文档(220)具有第一文档标识符(U1、U2、U3),则获得所述第一文档标识 符(U1、U2、U3)确定所述第二文档(240)是否具有第二文档标识符(U1、U2、U4),所述第二文档标识符 (U1、U2、U4)标识所述第二文档(240);如果所述第二文档(220)具有第二文档标识符(U1、U2、U4),则获得所述第二文档标识 符(U1、U2、U4)将所述第一文档(220)的第一文档标识符(U1、U2、U3)与所述第二文档(240)的第二 文档标识符(U1、U2、U4)相比较;如果所述第一和第二文档(220、240)中的任一个不具有文档标识符(U1、U2、U3、U4), 则执行所述第一和第二文档(220、240)的常规归并以生成所述归并文档(260);如果所述第一文档(220)的第一文档标识符(U1、U2、U3)与所述第二文档(240)的第 二文档标识符(U1、U2、U4)不同,则执行所述第一和第二文档(220、240)的常规归并以生成 所述归并文档(260);以及如果所述第一文档(220)的第一文档标识符(U1、U2、U3)与所述第二文档(240)的第 二文档标识符(U1、U2、U4)相匹配,则执行所述第一和第二文档(220、240)的加速归并以生 成所述归并文档(260)。
17.如权利要求16所述的计算机可读存储介质,其特征在于,执行所述加速归并包括通过比较所述第一文档的每一数据单元的唯一持久标识符与所述第二文档的每一数据单元的唯一持久标识符来标识所述第一文档的哪些数据单元与所述第二文档的数据单 元相匹配;将所标识的数据单元直接插入到所述归并文档以创建所述归并文档的数据单元;以及使用常规归并来归并所述第一和第二文档之一的、与所述第一和第二文档中的另一个 的任何数据单元都不相匹配的每一数据单元,以进一步创建所述归并文档的数据单元。
18.如权利要求16所述的计算机可读存储介质,其特征在于,所述方法还包括如果所述第一和第二文档中的任一个不具有文档标识符,则向所述归并文档的数据单 元中的每一个添加唯一持久标识符;以及如果所述第一文档的文档标识符与所述第二文档的文档标识符不同,则向所述归并文 档的数据单元中的每一个添加唯一持久标识符。
19.如权利要求18所述的计算机可读存储介质,其特征在于,向所述归并文档的数据 单元中的每一个添加唯一持久标识符包括将所述唯一持久标识符存储在所述归并文档内。
20.如权利要求17所述的计算机可读存储介质,其特征在于,比较所述第一文档的每 一数据单元的唯一持久标识符与所述第二文档的每一数据单元的唯一持久标识符包括将所述第一文档的每一数据单元的单元标识符和编辑标识符与所述第二文档的每一 数据单元的单元标识符和编辑标识符进行比较。
全文摘要
归并第一文档与至少一个第二文档以生成第三文档的方法和系统。第一和第二文档中的每一个包括至少一个数据单元。每一数据单元与单元标识符和编辑标识符相关联。文档中的每一个的单元标识符与另一文档的单元标识符相比较以确定每一单元标识符是匹配的还是非匹配的单元标识符。将与匹配的单元标识符相关联的数据单元的编辑标识符彼此相比较。将与非匹配的单元标识符相关联的数据单元直接插入到第三文档。将与匹配的单元标识符和匹配的编辑标识符相关联的数据单元直接插入到第三文档。将与匹配的单元标识符和非匹配的编辑标识符相关联的数据单元归并到第三文档。
文档编号G06F17/24GK101889276SQ200880119647
公开日2010年11月17日 申请日期2008年11月18日 优先权日2007年12月6日
发明者C·J·安托斯, E·J·伯恩斯坦, J·B·贝勒, M·R·奈特 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1