用于查看和操纵在时间参考点处的产物的系统的制作方法

文档序号:6533032阅读:99来源:国知局
用于查看和操纵在时间参考点处的产物的系统的制作方法
【专利摘要】在一个方面中,一种用于查看和操纵在时间参考点处的产物的系统可以包括:与多个产物中的每一个相关联的一个或多个产物草案,所述一个或多个产物草案中的每一个表示相关联的产物在一时间点处的状态、以及命令堆栈中的将所述每一个产物草案的父代变换成所述每一个产物草案的一个或多个命令。多个可追溯性链接和可追溯性顶点表示多个产物的所述一个或多个产物草案之间的联系,其中可追溯性链接包括多个产物中的一产物的产物草案和多个产物中的另一产物的产物草案之间的边缘,多个产物中的一产物的所述产物草案和多个产物中的另一产物的产物草案形成可追溯性顶点。
【专利说明】用于查看和操纵在时间参考点处的产物的系统

【技术领域】
[0001] 本申请一般涉及计算机和计算机应用,并且更特别地涉及操纵在时间参考点处的 产物。

【背景技术】
[0002] 知识通常跨越一组数字产物或文件(诸如文本文件、图像、二进制文件、源代码、 专有应用文件等)被捕捉和碎片化。在捕捉或创建这种知识的过程中,所述一组数字产物 中的各产物之间的隐含关系被创建和/或假定。为了理解或查看知识在给定时间的状态, 人们必须经常在捕捉的产物在当时存在时检查捕捉的产物的全部或许多。
[0003] 知识的类型及其捕捉产物可以变化很大。示例包括:在文字处理文档、电子数据 表、图像、图表等中捕捉的人类可理解的知识;在源代码、二进制文件、配置文件等中捕捉的 可执行"知识";在分布式事务系统中捕捉的分布式事务知识;在构成流程的各种系统和服 务中捕捉的业务流程知识;在并行/多线程程序的运行中捕捉的进程/线程知识。
[0004] 存在捕捉并使各种类型的知识相关的系统。这种系统的示例包括依赖关系管理系 统、版本控制系统、内容管理系统。这些系统仅捕捉在指定的点处的产物状态(例如经由版 本、里程碑、提交点);而并非捕捉将产物从状态N变换到状态N+1的动作/变更的集合。产 物之间的导航和关系是围绕产物在指定的点处的状态而组织的并且被局限于产物在指定 的点处的状态。
[0005] 如果指定的点(例如版本、里程碑、提交点)对于给定的时间点而言不存在,则在 该给定的时间点查看一组相关产物的状态是不可能的。在本领域的当前状态中,用户不能 够访问一组产物在时刻Y存在时的状态,和/或不能够从所述产物在时刻Y的状态开始创 建所述产物的新状态,其中Y并不是现在、并且在时刻Y的状态并没有通过版本、里程碑、提 交点或由已知方法捕捉的另一种这样的指定点而被明确地捕捉。这种无能为力呈现出协同 知识创建和发现、分布式和/或并行系统的调试、法务知识发现等中的限制因素。
[0006] 此外,在本领域的当前状态中,产物必须处于这些系统的单个实例/安装的控制 下,以便使它们彼此相关且因此重新创建捕捉的/碎片化的知识。在一个或多个产物完全 存在于系统的层级结构外部的情况下,产物之间的关系不能被捕捉或导航。


【发明内容】

[0007] 在一个方面中,一种用于查看和操纵在时间参考点处的产物的系统可以包括:与 多个产物中的每一个相关联的一个或多个产物草案。产物草案中的每一个可以表示相关联 的产物在一时间点处的状态、以及命令堆栈中的将产物草案的父代变换成该产物草案的一 个或多个命令。多个可追溯性链接和可追溯性顶点可以表示产物草案之间的联系。可追溯 性链接可以包括多个产物中的一产物的产物草案和多个产物中的另一产物的产物草案之 间的边缘。多个产物中的一产物的产物草案和多个产物中的另一产物的产物草案可以形成 可追溯性顶点。模块可操作以在处理器上执行并经由多个可追溯性链接从参考时间点导航 通过多个产物中的一个或多个产物。
[0008] 在一个方面中,一种用于查看和操纵在时间参考点处的产物的方法可以包括:接 收编辑第一产物的命令。该方法还可以包括:将时间戳添加到命令中。该方法还可以包括: 将命令存储在命令堆栈中。该方法还可以包括:存储第一产物的当前状态和命令堆栈作为 产物草案。该方法还可以包括:响应于检测到命令是访问第二产物的动作,创建所述产物草 案和与所述第二产物相关联的第二产物草案之间的可追溯性链接。
[0009] 还可以提供一种计算机可读存储介质,其存储可由机器执行的指令程序以执行在 此描述的一个或多个方法。
[0010] 在下面参考附图详细描述另外的特征以及各种实施例的结构和操作。在附图中, 相同的附图标记指示相同或功能类似的元件。

【专利附图】

【附图说明】
[0011] 图1A-1B示出在一个实施例中本公开的系统和方法的使用情况。
[0012] 图2是示出在一个实施例中本公开的系统的组件的系统图。
[0013] 图3示出在本公开一个实施例中发送命令给TCS的示例。
[0014] 图4示出在本公开一个实施例中创建产物草案的示例。
[0015] 图5示出在本公开一个实施例中用于创建可追溯性链接的示例序列流。
[0016] 图6示出说明在本公开一个实施例中用户可以查看不同产物的状态的情景的示 例序列流。
[0017] 图7示出在本公开一个实施例中可以实现时间控制系统的示例计算机或处理系 统的示意图。

【具体实施方式】
[0018] 在一个实施例中本公开提供了一种系统和方法,用于查看和操纵在先前的时间点 存在时的产物领域中的产物。例如,查看产物X在时间y时的状态的用户(其中用户是人 类或自动化系统)可以选择查看处于时间y时的状态的由系统的用户查看的其他产物。用 户可以可选地对于一个或多个产物向前分支出新路径,其中产物的新分支的起始状态是产 物在时间y的状态。用户可以遍历产物草案图,其中产物草案通过可追溯性链接被连接,使 得查看产物X的状态会使用户能够查看处于去往产物X的每个连接被创建的时间点的状态 的连接到X的所有产物。
[0019] 一般地,产物指在项目或作业中使用或创建的组件或条目。产物可以是数字产物, 例如信息技术系统中的组件或条目(诸如文件、图像、二进制文件、源代码、专有应用文件 等),其可以存储在存储器装置中并可经由计算机处理器访问。因此感兴趣的产物领域可以 是计算系统。本申请的系统和方法还可以适用于可以用状态和转变描述并且可以映射到计 算系统的任何其他类型的系统(例如机械或化学系统)的计算说明。那些系统中的组件可 以描述或表示为数字产物。本公开的系统和方法尤其提供了用于数字产物的时间撤销和/ 或执行机制。
[0020] 图1A-1B示出在一个实施例中本公开的系统和方法的使用情况。在102处,用户编 辑第一产物。在104处,每个编辑动作将加有时间戳的命令添加到第一产物的可重放/可 倒回的命令堆栈中。命令堆栈包括改变该产物的一个或多个命令。在106处,可以向用户 给予使用例如标记、标签或其他要素将第一产物状态指派为草案的选项。草案指产物在一 时间点处的状态,并且如用户指定的那样保存。例如,第一产物草案可以从第一产物创建, 并且将第一产物变换成第一产物草案的一组命令可以保存在命令堆栈中。对第一产物的后 续访问可以是对第一产物的第一产物草案中的一个或多个的访问。
[0021] 在108处,第一产物由其他的一个或多个产物使用或重新使用。在一个实施例中, 本公开的系统检测这种使用,并且作为响应在110处创建例如从第一产物草案(源)到另 一产物的草案(目标)的可追溯性链接。在一个实施例中,可追溯性链接被创建成去往当 该链接被创建时正在被查看、使用、访问和/或引用的草案。如果例如源和目标在编辑器中 打开、并且剪切和粘贴或另一类似操作被执行,则打开的版本是源;如果例如第一产物没有 在编辑器或查看器中被全部查看/使用,而是例如在使用户能够看到所存在的产物的浏览 器应用/查看器等中的产物列表上,则源将是在所述浏览器内选择的任何草案。这种浏览 器可以明确地示出每个产物的所有草案的列表并且用户可以明确挑选草案,或者浏览器可 以示出产物的列表并规定假设,诸如"最近的草案"、"最后查看的草案"等。系统也可以在 用户一边没有作出任何明确动作本身的情况下自动检测另一产物的使用。例如,如果用户 将文本键入到使用户能够编写可执行业务逻辑的工具中、并且用户键入单词"客户"(其中 "客户"已经在业务本体中被定义),则业务逻辑可以被自动检测为目标、并且本体中的"客 户"实体或本体本身可以被检测为源;在该情况下,由逻辑编写工具当前利用的本体的草案 将是被指定为源的草案。
[0022] 作为另一个示例,在一个实施例中本公开的系统可以从一个或多个产物检测第一 产物的访问或使用。示例可以是电子表格应用程序从电子文字处理应用文档拷贝数据到电 子表格文档。在该示例中,可追溯性链接在与电子表格应用程序文档相关联的产物草案和 与文字处理应用文档相关联的产物草案之间创建。在112处,第一产物草案(源)和第二 产物草案(目标)之间的可追溯性链接也可以直接由用户创建。
[0023] 在114处,例如,在自从可追溯性链接被创建的时间点以来,一个或多个产物已经 被编辑/改变之后的某个稍后的时间点处,用户使用功能可见性(affordance,例如时间 线、堆栈、树等)导航到第一产物的草案。功能可见性指用户借以执行各种动作的手段。在 一个实施例中本公开的功能可见性可以包括但不限于:应用程序接口(API),其是由交互 工具以及自动化系统使用从而访问和/或操纵产物草案的编程装置;产物查看器、程序或 模块,用于显示产物草案的状态使得其可以由用户感知到;编辑器,其是借以改变产物的状 态并从而创建命令和/或产物草案的程序或模块;导航工具,其是诸如时间线、数据树等之 类的实用工具,用于到达和/或选择产物草案或两个草案之间的草案命令堆栈中的点,从 而选择其作为时间参考点,经由可追溯性链接到达可追溯性顶点。可追溯性顶点指具有可 追溯性链接的产物或产物草案。
[0024] 在116处,例如在某个稍后的时间点处,用户选择第一产物的草案或两个草案之 间的命令堆栈中的点,作为用于其他产物的时间参考点。时间参考点指由用户选择的时间 点,使得由用户打开、编辑和/或访问的任何产物将被呈现为在该时间点时的样子。在本公 开的一个实施例中,该状态通过在该参考时刻创建的产物草案、或者通过在时间上接近参 考时间的草案上播放/倒回产物的命令堆栈来捕捉,以便到达产物在参考时间的状态。
[0025] 在118处,本公开的系统确定例如由用户查看或迄今为止由用户查看的其他产 物,以示出处于在时间参考点时或接近时间参考点时的状态的那些其他产物。
[0026] 在120处,确定由系统的用户当前查看和/或操纵的一个或多个其他产物的状态 是否在时间参考点被所述其他产物的草案(例如草案y)表示,并且如果这样,则在一个实 施例中本公开的系统在122处示出所述草案(y)。这可以通过遍历与指示时间参考点的选 定草案相关联的可追溯性链接、并找出可追溯性链接的目标顶点来执行。目标顶点将是所 述一个或多个其他产物。
[0027] 在124处,确定时间参考点是否在一个或多个其他产物的两个草案之间,并且如 果这样,则在一个实施例中本公开的系统在126处选择其他产物的在时间上最接近时间参 考点的草案,并且例如通过重放/倒回其他产物的命令堆栈来将其他产物的状态滚动到时 间参考点。如果被选为参考点的时间点在其他产物的草案的时间戳之后、但是在其他产物 的随后草案的时间戳之前、并且存在着在两个草案之间的命令堆栈中的命令,则时间参考 点将处于两个草案之间。在本公开的一个实施例中,如果在参考点处不存在另一产物的草 案,则步骤124和126被执行。在时间参考点处不存在另一产物的草案的情况下,可以如下 所述采取几个不同的步骤。
[0028] 如果时间参考点比其他产物的第一个草案更早,则下述中的一个或多个可以被执 行:对于其他产物,什么都不显示,并且向用户通知其他产物在该时间不存在;显示其他产 物的最早草案,但是向用户警告该最早草案并非来自于与参考点相同的时间,并且突出地 显示其草案所来自的时间;继续显示先前示出的其他产物的草案,并且向用户通知产物在 时间参考处还不存在。
[0029] 如果时间参考点比另一产物的最近草案的时间戳更迟,则在一个实施例中本公开 的方法可以显示另一产物的最近草案,因为其是针对该时间点的当前草案。
[0030] 对于参考点在其他产物的两个草案之间的情况,考虑产物的命令和草案的以下序 列,其中各自具有时间戳:草案 1 (DRAFTl)、cl、c2、c2、c4、草案 2、c5、c6、c7、c8、c9、cio、 (311、(312、(:13、草案3。虽然"最接近"的精确定义将取决于命令的性质而变化,但是由于人 们可以想象一些命令在除了时间之外的一些其他维度(实现成本、复杂度等)中会比另一 些命令更消耗时间和/或更昂贵,所以为了该示例的目的,假设所有命令的时间和成本都 相同这样的简单化的世界(在实际的实现中,并非所有的命令都是相等物并且"接近"的定 义可以是应用所特定的)。假设参考点在c7和c8之间。由于c7距离草案2有3个命令, 而c8距离草案3有6个命令,所以人们可以从草案2开始,然后执行命令c5、c6和c7从而 达到被认为"最接近"参考点的状态并显示该状态。
[0031] 在一个实施例中本公开的系统包括功能可见性,其使用户能够在128处选择和/ 或查看与例如由系统选择的草案不同的产物草案。在一个实施例中本公开的方法使用户能 够理解和控制产物如何随着时间独立地且相对于彼此演变。考虑用户选择产物1的草案X 作为时间参考点、并且其具有到产物2的草案Y的链接的示例,所以系统显示草案Y。在该 点处,用户可能想要例如看看产物2的草案Y-1和/或草案Y+1以便更好地理解其在可追 溯性链接创建之前和之后的演变。用户可以使用例如允许在产物2的不同草案之间导航的 时间线小插件(widget)来做到这一点。
[0032] 在130处,向用户给予编辑不是产物的草案树中的最近草案的草案的选项,以在 产物的草案树中创建新分支,其中产物的新分支的起始状态是从其中创建新分支的草案中 的产物状态。
[0033] 在132处,可以使用使得能够遍历产物草案曲线图(artifact draft graph)的功 能可见性,而使用户能够导航到处于第一产物草案(源)的可追溯性曲线图中的(目标) 产物,其中产物草案曲线图中的边缘是可追溯性链接。
[0034] 在134处,用户可以查看可追溯性链接被创建去往的(目标)产物的草案、和/或 表示在当前时间参考点处的状态的(目标)产物的草案。
[0035] 在图1A-1B中,步骤102、104和106示出产物草案和命令堆栈如何被创建的示例。 步骤108U10和112示出可追溯性链接如何在不同的产物或产物草案之间被创建的示例。 步骤114示出用户如何查看产物和相关联的命令堆栈。步骤116、118、120、122、124、126和 128示出被链接到所选草案的其他草案如何在用户可选择的时间参考点或接近该时间参考 点处被查看。步骤130示出用户如何查看和编辑草案并在草案树中创建新分支的示例。步 骤132和134示出用户如何基于可追溯性链接导航通过不同草案。应该理解的是,那些步 骤不必全都一起执行、或者不必以所示的该顺序顺次执行。
[0036] 本公开的系统也可以被称为"时间控制系统"或TCS。图2是示出在一个实施例中 本公开的系统的组件的系统图。TCS服务器202可以包括用于数字产物草案204和可追溯 性链接和顶点206的永久存储器(存储装置),并且提供用于创建、访问和管理数字产物草 案(包括命令)204和可追溯性链接206的TCS服务208。
[0037] 产物草案指产物在一时间点处的状态。命令堆栈包括自从该草案的初始创建以来 被发布从而将其初始内容/状态变换成当前内容/状态的一个或多个命令。草案可以被指 定为"完成"或"可编辑"。例如,草案可以是可编辑的,直到用户明确密封(seal)它们或系 统密封它们以保持产物领域的逻辑完整性。例如,如果多于一个的子草案已经从该草案被 创建,则系统可能会想要密封草案而不是允许其被进一步编辑(这会触发产物的草案树中 的复杂连锁效应,从而可能导致树的不一致状态)。完成的草案是不再被编辑的草案。然 而,人们可以基于它创建新的子草案。草案的可编辑版本保持产物的目前状态以及将产物 父代的状态变换成可编辑草案所捕捉的状态的命令堆栈。当草案被"密封"时,其从"可编 辑"被改变为"完成"。在本公开的一个实施例中,一旦子草案从完成的草案被创建,在没有 发生子草案的删除或断开的情况下,完成的草案不能恢复到可编辑状态。
[0038] 多于一个的产物草案可以与一个产物相关联地被创建和保持。这些多个草案可以 在概念上类似于具有版本控制系统中的多个代码分支。数据库/永久存储器中的给定草案 经由其唯一的草案标识符(ID)而被唯一地识别。草案所属于的产物也具有唯一的ID,并且 该产物的唯一 ID与草案一起存储。因此,在本公开的一个实施例中,产物和相关联的草案 可以例如根据它们唯一的ID来记录,由此所有相关的查询可以得到执行。
[0039] 可追溯性链接206表示两个产物之间的内容生产者-消费者关系。该关系可以通 过诸如剪切和粘贴之类的一次动作、诸如事件的激发/处理之类的周期性动作、或者诸如 能量的供给/消费之类的连续动作而具体化。可追溯性链接表示两个产物之间的限定链 接。那些可追溯性链接的源和目标可以是特定产物(在特定时间点处)的特定草案。可追 溯性顶点206是在可追溯性链接的末端处的生产者或消费者。顶点识别产物草案,并且也 可以识别进入到被识别产物的命令堆栈中的偏移。
[0040] 本公开中的用户可以是查看和/或访问和/或操纵产物的一个或多个人或自动化 系统。TCS服务208可以包括一个或多个应用程序和接口,其允许用户212或诸如另一计算 机程序或系统之类的自动化系统214创建、访问和管理产物草案204和可追溯性链接206。
[0041] 功能可见性指用户借以执行各种动作的模块或程序等。功能可见性可以包括但不 限于:
[0042] -TCS API :由交互工具以及自动化系统使用从而访问和/或操纵产物草案的编程 装直。
[0043] -产物查看器:用于显示产物草案的状态使得其可以由人类感知的装置。由查看 器显示的产物草案可以由在另一功能可见性中做出的选择确定,其中另一功能可见性确定 时间参考点。
[0044] -编辑器:用户借以更改产物的状态并从而创建命令和/或产物草案的装置。
[0045] -导航:诸如时间线、树等的装置,以便例如:
[0046] 〇到达和/或选择产物草案或两个草案之间的草案命令堆栈中的点。
[0047] 〇选择时间参考点。
[0048] 〇经由可追溯性链接到达可追溯性顶点。
[0049] TCS工具和/或TCS使能工具可以包括组合成单个用户接口的多个功能可见性, 例如由用户使用以与TCS服务器202和/或TCS服务208交互的工具。例如,TCS使能工 具210可以是文本编辑器、图形编辑器、包括(例如作为插件)允许与TCS服务208和/或 TCS服务器202通过接口连接的TCS功能性的其他程序。例如TCS使能文本编辑器或文字 处理应用可以自动确定TCS产物正被编辑,并创建用于与产物相关联的命令堆栈的一个或 多个命令,并呈现将产物指派为产物草案的选项。
[0050] 图3示出在本公开一个实施例中发送命令给TCS的示例。自动化系统314可以发 送命令给修改或改变产物的TCS服务308。同样,用户可以例如使用TCS使能工具310上的 用于对产物做出改变的功能可见性,来手动执行命令生成动作。TCS使能工具可以将命令生 成动作变换成发送给TCS服务208从而对产物做出改变的命令。改变后的产物可以被保存 或存储为产物草案304,并且包括被应用从而将草案的初始状态变换成其当前状态的命令 (例如 cl、c2、c3、c4、c5,…)。
[0051] 图4示出在本公开一个实施例中创建产物草案的示例。自动化系统414可以发送 创建产物的草案的请求给TCS服务408。同样,用户可以例如使用TCS使能工具410上的 功能可见性来手动请求创建草案。TCS使能工具410发送创建草案的请求给TCS服务408。 TCS服务408和TCS服务器402基于该请求而创建产物草案。该请求可以包括诸如产物标 识符和草案标识符之类的输入。在本公开的一个实施例中创建的产物可以存储在TCS服务 器402中。
[0052] 不同的产物草案404、406可以被创建,其包括被应用于先前的产物状态的不同的 命令组。以这种方式,产物草案的分支可以被创建。作为示例,考虑具有两级年假政策、且 在整个国家有办事处的公司:每个员工得到总计15天的带薪假,外加每在该公司工作满5 年会有5天额外假。对于该15天带薪假,它们中的7天是对于整个国家设定的,而其余的 8天在每个地区经理的控制下,从而当所有的员工都休假时分配固定的天数,或者允许员工 按照他们认为合适的方式使用那8天。全国休假政策文档可以是概述上述政策的初始产 物。对于国家中的每个地区,地区经理创建添加更多信息的地区子草案,规定在地区控制下 的8天将如何被分配。该地区政策可以随年份不同而改变,并且因此子草案可以随着时间 而改变。
[0053] 图5示出例如在图1中的条目108处引用的用于创建可追溯性链接的示例序列 流。用户502可以使用TCS使能工具506从产物1的草案x(Al. Dx)拷贝内容到产物2的草 案y(A2.Dy) (504)。TCS使能工具506在508处可以向TCS服务510通知从A2.Dy (目标) 到Al.Dx(源)的可追溯性链接(TL1)的添加。TCS服务510将可追溯性链接插入到数据 库514(例如在图5中被称为TCS-DB)中。可追溯性链接可以包括源产物ID、目标产物ID、 源草案ID、目标草案ID的值(例如如图所示的AL ID、A2. ID、A1. Dx. ID、A2. Dy. ID)。数据 库(例如TCS-DB)可以充当用于TCS服务器的永久存储器,并且提供跨越在其内存储的数 据的查询能力。
[0054] 图6示出说明用户可以查看不同产物的状态的情景的示例序列流。该序列流示出 打开在其间具有可追溯性链接的两个产物,选择一个产物的较早草案作为时间参考点,并 且打开另一产物的对应草案。用户可以在602处经由TCS使能工具打开产物1的最近草案, 这会在604处触发TCS使能工具从TCS服务得到Al. latest内容。TCS服务作为响应在606 处例如通过查询(例如从ARTIFACT_ID = Al. ID且DRAFT_ID = Al. latest. ID的产物草案 中选择ARTIFACT_CONTENT)而从数据库(例如TCS-DB)检索Al. latest内容。TCS-DB在 608处将查询的内容返回到TCS服务。TCS服务在610处将内容返回到TCS使能工具。类 似地,用户在612处打开产物2的最近草案会触发TCS使能工具在614处从TCS服务得到 产物2的最近草案(A2. latest),TCS服务进而在616处例如通过查询(例如从ARTIFACT_ ID = A2. ID 且 DRAFT_ID = latest. ID 的产物草案中选择 ARTIFACT_CONTENT)而从数据库 检索内容。TCS-DB在618处将A2. latest内容返回到TCS服务,TCS服务在620处将该内 容返回到TCS使能工具。
[0055] 用户可以使用功能可见性(例如以图形呈现给用户的时间线)而去往产物 1(A1)的较早草案,这例如会触发在622处打开该较早草案Al. latest-n (产物1的草案 latest-n)。TCS使能工具在624处从TCS服务检索该草案的内容即Al. latest-n内容。在 626 处,TCS 服务例如通过查询(例如从 ARTIFACT_ID = AL ID 且 DRAFT_ID = latest-n. ID 的产物草案中选择ARTIFACT_CONTENT)而从数据库(例如TCS-DB)得到内容。在628处, TCS-DB将Al. latest-n内容返回到TCS服务。在630处,TCS服务将Al. latest-n内容返 回到TCS使能工具。
[0056] 用户可以设定Al. latest-n作为时间参考点。在632处,用户将时间参考点设定为 Al. latest-n. CreationTime。TCS 使能工具可以在 634 处经由 TCS 服务检查 Al. latest-n 和A2之间的可追溯性链接。TCS服务在636处查询TCS-DB以检索在该时间参考点处链接 的其他产物的草案。示例查询可以是"从(源产物ID = Al. ID且目标产物ID = A2且源草 案ID = latest-n. ID)或者(源产物ID = A12. ID且目标产物ID = A1且目标草案ID = latest-n. ID)的可追溯性链接中选择*"。结果,被链接到用户选择的时间参考点的其他产 物在638处被返回到TCS服务,然后在640处被返回到TCS使能工具。利用工具的用户然 后可以访问和/或查看被链接到用户选择的时间参考点的其他草案。
[0057] 在640处,工具已经接收A1和A2之间的可追溯性链接的列表。附图示出选择框 ("alt"即可选项)。第一选择一 "不存在可追溯性链接"一表示在A1和A2之间不存在 链接。在该情况下,可以向用户通知没有对应的草案,并且序列结束。第二选择一 "存在 至少一个可追溯性链接"一表示在A1和A2之间存在链接,所以工具经历步骤642-652以 显示与由用户选择的时间参考点(即Al. latest-n. CreationTime)对应的A2的草案(A2. latest-k)。应注意的是,A2. latest-k中的"k"和Al. latest-n中的"η"的值不必相等; 例如,可以是:Α2自从时间参考点以来已经具有7个草案(k = 7),而Α1已经具有15个草 案(η = 15)。
[0058] 通过从一个产物的角度选择时间参考点,用户可以查看另一产物在相同或基本上 相同的时间点的状态。如上所讨论,本公开的方法可以基于例如情景的不同组合来识别所 述另一产物的状态。例如考虑两个产物是Α和Β,并且存在以Β作为源且以Α作为目标的可 追溯性链接。以下不同的算法可以基于在找出链接的顶点过程中的情景来利用:
[0059] -用户选择A的草案作为参考点,并且其与B的草案对应。在该情景中,对于B,不 需要命令堆栈播放/倒回。
[0060] -用户选择A的草案作为参考点,并且其不与B的草案对应。在该情景中,对于B, 可能需要命令堆栈播放/倒回。
[0061] -用户选择A的两个草案之间的点,即A的历史中的两个草案之间的命令堆栈中的 某处,并且其与B的草案对应。在该情景中,对于B,不需要命令堆栈播放/倒回。
[0062] -用户选择A的两个草案之间的点,即A的历史中的两个草案之间的命令堆栈中的 某处,并且其与B的草案不对应。在该情景中,对于B,可能需要命令堆栈播放/倒回。
[0063] 作为用于本公开的系统和/或方法的示例使用情景,考虑示例公司(公司A)。公 司A是在数字媒体的所有方面(音乐标签、压缩盘(CD)生产和分销、数字音乐销售、移动新 闻应用、电子装置、家庭娱乐系统等)中都有子公司的大型跨国公司。公司A具有把来自所 有子公司的关于其客户的数据汇集到一起的数据仓库。公司A把该数据用于跨越其不同 生产线的销售和市场营销。作为其电子商务基础设施的一部分,公司A具有机会识别服务 (OIS,Opportunity Identifier Service),其使用商业规则和预测性分析学的组合来处理 公司A的数据仓库中的信息,从而当客户访问其网站时识别增销/交叉销售机会。
[0064] 公司A的用于运营决策的发展过程(诸如在0IS中捕捉的那些过程)按如下方式 工作:
[0065] -企业所有者在文本公文(text prose)中陈述要求;
[0066]-经营分析人员与企业所有者一起工作以创建捕捉业务逻辑的决策模型,包括业 务词汇表、规则、所需数据和分析学的使用;
[0067] -IT把实现产物连接到决策模型的每个方面(可执行规则、分析模型、运营数据 等);
[0068]-决策被部署。
[0069] 作为示例,考虑与作为公司A的分销团队的一部分的人员B -起工作的0IS团队 领导(人员A),从而将工具包(rootkit)添加到公司A销售的每个CD和移动应用中。该工 具包被用于收集关于客户常去什么网站的更多信息,以便改进在公司A的网站上的0IS机 会识别的质量。包含商业级文本公文的文档被写入以描述什么新信息将从由工具包收集的 数据中被捕捉到0IS数据库中,以及数据应当如何被用于识别机会的说明。
[0070] 在本公开的系统中,文档是在TCS使能文本编辑器中创建/编辑的新产物。每当 用户添加、删除或编辑单词时,该动作由编辑器发送给TCS作为在TCS中被添加到该文档的 当前草案的命令堆栈中的命令。在本公开的一个实施例中,粘贴到在TCS使能文本编辑器 中编辑的文档中会创建可追溯性链接,其以该文档作为消费者,并且该链接指向粘贴所发 生于的文本的偏移+长度。从文档中拷贝会创建可追溯性链接,其以该文档作为生产者,并 且该链接指向被拷贝的偏移+长度。在本公开一个实施例中TCS使能编辑器与TCS通信从 而共同地创建可追溯性链接。每个不同类型的TCS使能客户端(不管是编辑器、构建系统 还是别的装置)可以独自确定什么构成命令以及什么构成新草案。
[0071] 接着,0IS决策模型被编辑以添加各种元素到模型中。模型的编辑会在本公开的 系统中触发从而添加命令到TCS中的决策模型的当前草案的命令堆栈中。例如,定义可以 被添加到与模型相关联的词汇表中。词汇表的每个编辑被发送给TCS作为词汇表的当前草 案的命令堆栈中的命令。一旦新词汇表术语被添加,用户可能想要将其指定为词汇表的新 草案。0IS决策模型也可以被编辑以便当引用工具包数据时添加包含使用这些术语的业务 规则的新的子决策。每当子决策或规则被添加或编辑时,决策模型编辑器发送新命令以使 其被添加到TCS中的决策模型的当前草案的命令堆栈中。0IS决策模型可以进一步被编辑 以添加请求给分析模型从而确定给定的增销或交叉销售的成功概率。这些概率在业务规则 中被使用。在本公开的一个实施例中,如果特定模型被发现/引用,则可以在该点创建可追 溯性链接,其以决策模型作为消费者并且以分析模型作为生产者。在本公开的一个实施例 中,如果仅存在需要基于什么变量集确定什么概率的描述,则还不创建链接。
[0072] 公司A的IT部门然后可以更新0IS数据库(DB)模式,以包括文本公文中描述的 列。在本公开的一个实施例中模式编辑器是有TCS能力的,并且因此每个编辑会发送命令 给TCS以使其被添加到当前草案的命令堆栈中。在编辑完成之后,用户可以指定它作为新 的草案。
[0073] 公司A的IT部门也可以例如用新的分析模型更新0IS分析库,所述新的分析模型 使用新的列来确定客户将接受给定报价的概率。在本公开的一个实施例中,每个分析模型 可以是其自身的产物,并且分析库可以是复合产物,可能是从一组分析模型创建的二进制 文件。在本公开一个实施例中,对模型的编辑会在其草案的命令堆栈上创建命令,并且库的 构建(创建或对其进行的添加)也会创建库的新草案。
[0074] 公司A的IT部门也可以将决策模型的分析引用连接到新的分析模型。这可经由 对决策模型的编辑来实现,对决策模型的编辑可以创建决策模型产物的命令堆栈上的新命 令,并且也可以创建新草案。
[0075] 0IS采用可执行决策模型、分析模型、新数据库模式来更新,并且因此开始使用由 工具包收集的数据以识别新的机会。如果构建系统有TCS能力,则新的构建物被视为应用 /服务库的新草案,并且库从其中被构建出来的源的添加/更新被视为命令。
[0076] 在稍后的点处,0IS团队领导(例如人员A)决定改写该文档中的商业级文本公文 的描述该新0IS特征的功能的那一部分。作为响应,TCS使能文本编辑器(其由人员A使 用以改写文本公文)发送命令和草案给TCS。在编辑公文之后,人员A使用公文、决策模型、 商业词汇表、数据库列和分析模型变量名称之间的可追溯性链接,以快速找出并改变也可 能需要改写的任何措辞或名称。例如,人员A可以使用功能可见性(诸如树)来查看经由 可追溯性链接连接到该文档的产物的曲线图(graph),并经由链接导航到使用人员A已经 在该文档中改变的语言/名称的那些产物中的精确位置。在本公开的一个实施例中,每个 产物在其相应的TCS使能编辑器中打开。人员A编辑产物从而创建一系列命令以及每个产 物的最终的新草案,并且根据需要部署/传播新草案。
[0077] 在公司A决定去除工具包并且返回到在工具包被集成到0IS决策模型中之前的 0IS决策模型的情况下,可以通过选择来自人员A作出改变之前的日子的0IS决策模型的 草案、并将其设定为时间参考点,来使用TCS和TCS使能系统和工具。以这种方式,公司A 能够立即识别在日期上早于与人员A的想法相关的改变的0IS决策模型、0IS构建物(0IS build)、分析库和数据库模式的草案,重新构建没有任何工具包特征的0IS。在本公开的一 个实施例中,功能可见性(诸如时间线)可以被用于导航到在人员A的改变之前存在的0IS 决策模型的草案,并设定决策模型的该草案作为时间参考点。TCS工具或诸如工具栏上的按 钮之类的用户接口元素可以被用于执行这种动作。另一功能可见性(诸如树)可以被用于 选择具有去往/来自决策模型的可追溯性链接的所有产物,将它们全都滚动返回到时间参 考点,并且重新构建和重新部署0IS。
[0078] 采用本公开的系统和方法,人们可以取消在产物上采取的动作过程。对应的撤销 动作可以通过在产物领域中滚动回到先前时间而例如一次性地在不同产物(例如两个文 字处理文档,三个电子表格文档,以及维基(wiki))上执行。例如当产物y的草案X在时间 z创建时,产物的可追溯性链接还保持相关性的历史和源-目标关系的存在。相关联的产物 可以在给定的时间参考点处被跟踪。本公开的系统和方法还提供了使用户能够将整个产物 领域转变成在给定时间参考点处的状态的能力。
[0079] 已知的版本控制系统在其将产物一起分组成标签/版本/快照方面是严格分层 的;不必创建跨越整个包围层次结构的标签/版本/快照就能交互地查看和操纵在时间参 考点处的所有产物的能力是不存在的。不必创建跨越整个包围层次结构的标签/版本/快 照就能在连接的产物之间导航并查看在该连接时它们的状态的能力是不存在的。
[0080] 当一组产物共同定位在一个系统中或分布在不同系统中时,在一个实施例中本公 开的系统可以很好地工作。例如,系统可以被用作DVCS(分布式版本控制系统)。在一个实 施例中本公开的系统能解决关于分布式补偿或回滚的检查定点问题。在一个实施例中本公 开的系统能提供用于调试并行/多线程应用的时间机器,能提供关于时间的撤销功能。在 一个实施例中本公开的系统使用户能够跨越时间(例如基于时间参考点)移动通过产物领 域。在一个实施例中本公开的系统和方法可以结合现有的版本控制等系统来利用。
[0081] 图7示出可以在本公开一个实施例中实施时间控制系统的示例计算机或处理系 统的示意图。计算机系统仅是合适的处理系统的一个示例,并且并非旨在暗示关于在此描 述的方法实施例的用途或功能的范围的任何限制。示出的处理系统可以采用许多其他通用 或专用计算系统环境或配置来操作。可能适合于与图7中示出的处理系统一起使用的众所 周知的计算系统、环境和/或配置的示例可以包括但不限于:个人计算机系统、服务器计算 机系统、瘦客户端、胖客户端、手持式或膝上型装置、多处理器系统、基于微处理器的系统、 机顶盒、可编程消费电子装置、网络PC、小型计算机系统、大型计算机系统和包括任何以上 系统或装置等的分布式云计算环境。
[0082] 计算机系统可以在诸如由计算机系统执行的程序模块的计算机系统可执行指令 的一般上下文中描述。一般地,程序模块可以包括例程、程序、对象、组件、逻辑、数据结构 等,其执行特定任务或实现特定的抽象数据类型。计算机系统可以在任务由通过通信网络 连接的远程处理设备执行的分布式云计算环境中实施。在分布式云计算环境中,程序模块 可以位于包括存储器存储装置的本地和远程计算机系统存储介质两者中。
[0083] 计算机系统的组件可以包括但不限于一个或多个处理器或处理单元12、系统存储 器16以及把包括系统存储器16的各种系统组件耦合到处理器12的总线14。处理器12可 以包括执行在此描述的时间控制服务方法的时间控制模块10。模块10可以被编程到处理 器12的集成电路中,或者从存储器16、存储装置18或网络24或其组合被加载。
[0084] 总线14可以代表一个或多个任何类型的总线结构,包括存储器总线或存储器控 制器、外围总线、加速图形端口以及使用任何各种总线架构的处理器或局部总线。借助于示 例而不是限制的方式,这种架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增 强型ISA (EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线。
[0085] 计算机系统可以包括各种计算机系统可读介质。这种介质可以是可由计算机系统 访问的任何可用介质,并且其可以包括易失性和非易失性介质,可移除和不可移除介质。
[0086] 系统存储器16可以包括采取易失性存储器形式的计算机系统可读介质,诸如随 机存取存储器(RAM)和/或高速缓冲存储器等。计算机系统还可以包括其他可移除/不可 移除、易失性/非易失性计算机系统存储介质。仅借助于示例,存储系统18可以被提供用 于从不可移除、非易失性磁介质(例如,"硬盘驱动器")读取和向其写入。虽然没有示出, 但是可以提供用于从可移除、非易失性磁盘(例如"软盘")读取和向其写入的磁盘驱动器, 以及用于从诸如CD-ROM、DVD-ROM或其他光学介质的可移除非易失性光盘读取或向其写入 的光盘驱动器。在这些实例中,各自可以通过一个或多个数据媒体接口连接到总线14。
[0087] 计算机系统还可以与以下装置通信:一个或多个外部装置26,诸如键盘、指点装 置、显示器28等;使用户能够与计算机系统交互的一个或多个装置;和/或使计算机系统 能够与一个或多个其他计算装置通信的任何装置(例如网卡、调制解调器等)。这种通信可 以通过输入/输出(I/O)接口 20发生。
[0088] 此外,计算机系统可以经由网络适配器22与诸如局域网(LAN)、一般广域网(WAN) 和/或公共网络(例如因特网)的一个或多个网络24通信。如所描绘的,网络适配器22 经由总线14与计算机系统的其他组件通信。应该理解的是,虽然没有示出,但是其他硬件 和/或软件组件可以与计算机系统结合使用。示例包括但不限于:微代码、装置驱动器、冗 余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
[0089] 所属领域的技术人员将理解的是,本发明的各个方面可以实施为系统、方法或计 算机程序产品。因此,本发明的各个方面可以采取以下形式,即:完全的硬件实施方式、完全 的软件实施方式(包括固件、驻留软件、微代码等),或软件和硬件方面结合的实施方式,这 里可以统称为"电路"、"模块"或"系统"。此外,本发明的各个方面还可以采取用一个或多 个计算机可读介质实施的计算机程序产品的形式,该计算机可读介质上包含有计算机可读 程序代码。
[0090] 可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算 机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是--但不限 于--电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的适当组合。计 算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、 便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存 储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、 或者上述的任意合适的组合。在本文件的上下文中,计算机可读存储介质可以是任何包含 或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使 用。
[0091] 计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信 号,其中承载了计算机可读程序代码。这种传播的信号可以采用各种形式,包括但不限于电 磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储 介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令 执行系统、装置或者器件使用或者与其结合使用的程序。
[0092] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无 线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0093] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明各方面的 操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言(诸如Java、 Smalltalk、C++等),还包括常规的过程式程序设计语言(诸如"C"程序设计语言或类似的 程序设计语言)、脚本语言(诸如Perl、VBS或类似语言)和/或函数式语言(诸如Lisp和 ML以及面向逻辑的语言如Prolog)。程序代码可以完全地在用户计算机上执行、部分地在 用户计算机上执行、作为独立的软件包执行、部分在用户计算机上部分在远程计算机上执 行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以 通过任意种类的网络--包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可 以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0094] 参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或 框图描述本发明的各方面。应当理解的是,流程图和/或框图的每个方框以及流程图和/ 或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给 通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得 这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生实现 流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0095] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令可以使得计算 机、其它可编程数据处理装置、或其他设备以特定方式工作,使得存储在计算机可读介质中 的指令产生包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的 制造品°
[0096] 计算机程序指令还可以加载到计算机、其它可编程数据处理装置或其他设备上, 以使一系列操作步骤在计算机、其它可编程装置或其他设备上被执行以产生计算机实现的 过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图中的 一个或多个方框中规定的功能/动作的处理。
[0097] 附图中的流程图和框图示出根据本发明的各种实施例的系统、方法和计算机程序 产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模 块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规 定的逻辑功能的可执行指令。也应当注意的是,在有些替代性实现中,方框中所标注的功 能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行 地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图 和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功 能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实 现。
[0098] 计算机程序产品可以包括使本文所描述的方法能够实现的所有相应特征,并且当 在计算机系统中加载时能够执行这些方法。在本上下文中计算机程序、软件程序、程序或软 件意味着一组指令的以任何语言、代码或符号表示的任何表达,所述一组指令旨在或者直 接地或者在下述的一者或两者之后使具有信息处理能力的系统执行特定的功能:(a)转换 成另一种语言、代码或符号;和/或(b)以不同材料形式再现。
[0099] 在此所用的术语仅用于描述特定实施例的目的,且并非旨在限制本发明的。如在 此所使用的,单数形式的"一"、"一个"和"该"旨在也包括复数形式,除非上下文另有明确 说明。将进一步理解的是,当在本说明书中使用时术语"包括"和/或"包含"指的是所陈述 的特征、整数、步骤、操作、元件和/或组件的存在,而并不排除一个或多个其他特征、整数、 步骤、操作、元件、组件和/或其组合的存在或附加。
[0100] 下面的权利要求中的所有装置或步骤加功能元件(如果有的话)的对应结构、材 料、动作和等同物旨在包括与具体要求保护的其他元件结合的用于执行功能的任何结构、 材料或动作。本发明的描述已经被提供用于说明和描述的目的,而并非旨在是无遗漏的或 限制于所公开的形式的发明。在不背离本发明范围和精神的情况下,对于那些本领域的普 通技术人员,许多修改和变化将是明显的。实施例被选择和描述是为了最好地解释本发明 的原理和实际应用,并且使本领域的其他技术人员能够理解具有适合于特定预期用途的各 种修改的各种实施例的发明。
[0101] 本发明的各个方面可以体现为在计算机或机器可用或可读介质中体现的程序、软 件或计算机指令,当在计算机、处理器和/或机器上执行时其使计算机或机器执行方法步 骤。还提供了可由机器读取的程序存储装置,其有形地包含指令程序,该指令程序可由机器 执行从而执行在本公开中描述的各种功能和方法。
[0102] 本公开的系统和方法可以被实现并且在通用计算机或专用计算机系统上运行。可 在本申请中使用的术语"计算机系统"和"计算机网络"可以包括固定和/或便携式计算机 硬件、软件、外围设备和存储装置的各种组合。计算机系统可以包括联网或以其他方式连 接以协作执行的多个独立组件,或者可以包括一个或多个独立的组件。本申请的计算机系 统的硬件和软件组件可以包括诸如台式机、膝上型计算机和/或服务器的固定和便携式装 置,并且可以被包括在诸如台式机、膝上型计算机和/或服务器的固定和便携式装置内。模 块可以是装置、软件、程序或系统的实现一些"功能"的组件,其可以体现为软件、硬件、固 件、电子电路等。
[0103] 以上描述的实施例是说明性示例,并且不应当被解释为本发明局限于这些特定实 施例。因此,各种变化和修改可以由本领域技术人员实现,而不背离在所附权利要求中定义 的本发明的精神或范围。
【权利要求】
1. 一种用于查看和操纵在时间参考点处的产物的系统,包括: 与多个产物中的每一个相关联的一个或多个产物草案,所述一个或多个产物草案中的 每一个表不相关联的产物在一时间点处的状态、以及命令堆栈中的将所述每一个产物草案 的父代变换成所述每一个产物草案的一个或多个命令; 多个可追溯性链接和可追溯性顶点,其表示所述多个产物的所述一个或多个产物草案 之间的联系,其中可追溯性链接包括所述多个产物中的一产物的产物草案和所述多个产物 中的另一产物的产物草案之间的边缘,所述多个产物中的一产物的所述产物草案和所述多 个产物中的另一产物的产物草案形成可追溯性顶点; 处理器;以及 模块,其可操作以在所述处理器上执行,并且经由所述多个可追溯性链接从参考时间 点导航通过所述多个产物的所述一个或多个产物。
2. 如权利要求1所述的系统,还包括:存储所述一个或多个产物草案以及所述多个可 追溯性链接和可追溯性顶点的服务器。
3. 如权利要求1所述的系统,其中所述模块还可操作以:创建所述一个或多个产物草 案以及所述多个可追溯性链接和可追溯性顶点。
4. 如权利要求1所述的系统,其中响应于在所述多个产物中的一产物的所述产物草案 上执行的、访问所述多个产物中的另一产物的所述产物草案的动作,自动地创建所述可追 溯性链接和可追溯性顶点。
5. 如权利要求1所述的系统,其中所述模块包括:使用户能够选择所述时间参考点以 及呈现所述产物草案的视图的用户接口。
6. 如权利要求5所述的系统,其中所述模块还经由所述用户接口呈现从所述时间参考 点开始导航的所述产物草案。
7. 如权利要求1所述的系统,其中所述模块还可操作以:基于接收到的命令来修改所 述一个或多个产物草案。
8. 如权利要求1所述的系统,其中所述模块还包括:应用接口,经由所述应用接口接收 用于操纵所述一个或多个产物草案的一个或多个命令。
9. 如权利要求1所述的系统,其中所述模块还可操作以:通过从不是最新近的草案的 产物草案创建新产物草案来创建产物草案的新分支,其中产物草案的新分支的起始状态是 从其中创建所述新分支的草案中的产物状态。
10. -种用于查看和操纵在时间参考点处的产物的方法,包括: 接收编辑第一产物的命令; 向所述命令添加时间戳; 将所述命令存储在命令堆栈中; 存储所述第一产物的当前状态和所述命令堆栈作为产物草案;以及 响应于检测到所述命令是访问第二产物的动作,创建所述产物草案和与所述第二产物 相关联的第二产物草案之间的可追溯性链接。
11. 如权利要求10所述的方法,还包括:将所述第一产物的当前状态指派为新产物草 案。
12. 如权利要求10所述的方法,其中对多个产物重复所述步骤,以及其中对所述多个 产物中的每一个生成多个产物草案和相关联的多个可追溯性链接。
13. 如权利要求12所述的方法,还包括: 接收选定的产物草案,所述选定的产物草案表示时间参考点; 搜索所述可追溯性链接和可追溯性顶点,以找出链接到所述选定的产物草案的一个或 多个其他产物草案; 如果所述一个或多个其他产物草案具有与所述时间参考点对应的时间戳,则呈现所述 选定的产物草案和所述一个或多个其他产物草案。
14. 如权利要求13所述的方法,还包括: 如果所述一个或多个其他产物草案不具有与所述时间参考点对应的时间戳, 从与所述一个或多个其他产物草案相关联的命令堆栈中选择具有最接近所述时间参 考点的时间戮的命令点; 从所述命令点倒回或重放所述命令堆栈中的一个或多个命令,以生成所述一个或多个 其他产物的状态;以及 呈现所述一个或多个其他产物的所生成的状态。
15. 如权利要求12所述的方法,还包括: 接收所述命令堆栈中的在两个产物草案之间的点,所述命令堆栈中的点表示时间参考 占 . 从所述两个产物草案中选择在时间上最接近所述命令堆栈中的点的产物草案; 搜索所述可追溯性链接和可追溯性顶点以找出链接到所选择的产物草案的其他一个 或多个其他产物草案; 如果所述其他一个或多个其他产物草案具有与所述时间参考点对应的时间戳,则呈现 所述其他一个或多个其他产物草案;以及如果所述其他一个或多个其他产物草案不具有与 所述时间参考点对应的时间戳, 从与所述一个或多个其他产物草案相关联的命令堆栈中选择具有最接近所述时间参 考点的时间戳的命令点; 从所述命令点倒回或重放所述命令堆栈中的一个或多个命令,以生成与所述命令堆栈 中的在两个产物草案之间的点相关的所述一个或多个其他产物的状态;以及 呈现所述一个或多个其他产物的所生成的状态。
16. 如权利要求12所述的方法,还包括: 编辑不是与产物相关联的最新近的产物草案的产物草案;以及 从编辑后的产物草案开始创建产物草案的新分支。
17. -种存储指令程序的计算机可读存储介质,所述指令程序能够由机器执行从而执 行用于查看和操纵在时间参考点处的产物的方法,所述方法包括: 接收编辑第一产物的命令; 向所述命令添加时间戳; 将所述命令存储在命令堆栈中; 存储所述第一产物的当前状态和所述命令堆栈作为产物草案;以及 响应于检测到所述命令是访问第二产物的动作,创建所述产物草案和与所述第二产物 相关联的第二产物草案之间的可追溯性链接。
18. 如权利要求17所述的计算机可读存储介质,还包括:将所述第一产物的当前状态 指派为新产物草案。
19. 如权利要求17所述的计算机可读存储介质,其中对多个产物重复所述步骤,以及 其中对所述多个产物中的每一个生成多个产物草案和相关联的多个可追溯性链接。
20. 如权利要求19所述的计算机可读存储介质,还包括: 接收选定的产物草案,所述选定的产物草案表示时间参考点; 搜索所述可追溯性链接和可追溯性顶点,以找出链接到所述选定的产物草案的其他一 个或多个其他产物草案;以及 如果所述一个或多个其他产物草案存在,则呈现所述选定的产物草案和在相同的时间 参考点时的一个或多个其他产物草案。
21. 如权利要求20所述的计算机可读存储介质,还包括: 如果所述一个或多个其他产物草案不具有与所述时间参考点对应的时间戳, 从与所述一个或多个其他产物草案相关联的命令堆栈中选择具有最接近所述时间参 考点的时间戮的命令点; 从所述命令点倒回或重放所述命令堆栈中的一个或多个命令,以生成所述一个或多个 其他产物的状态;以及 呈现所述一个或多个其他产物的所生成的状态。
22. 如权利要求19所述的计算机可读存储介质,还包括: 接收所述命令堆栈中的在两个产物草案之间的点,所述命令堆栈中的点表示时间参考 占 . 从所述两个产物草案中选择在时间上最接近所述命令堆栈中的点的产物草案; 搜索所述可追溯性链接和可追溯性顶点以找出链接到所选择的产物草案的其他一个 或多个其他产物草案; 如果所述其他一个或多个其他产物草案具有与所述时间参考点对应的时间戳,则呈现 所述其他一个或多个其他产物草案;以及如果所述其他一个或多个其他产物草案不具有与 所述时间参考点对应的时间戳, 从与所述一个或多个其他产物草案相关联的命令堆栈中选择具有最接近所述时间参 考点的时间戳的命令点; 从所述命令点倒回或重放所述命令堆栈中的一个或多个命令,以生成与所述命令堆栈 中的在两个产物草案之间的点相关的所述一个或多个其他产物的状态;以及 呈现所述一个或多个其他产物的所生成的状态。
23. 如权利要求19所述的计算机可读存储介质,还包括: 编辑不是与产物相关联的最新近的产物草案的产物草案;以及 从编辑后的产物草案开始创建产物草案的新分支。
【文档编号】G06F17/30GK104106066SQ201380008803
【公开日】2014年10月15日 申请日期:2013年1月29日 优先权日:2012年2月9日
【发明者】J·M·迪亚芒, J·A·马蒂诺, J·C·小托马斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1