CN112654995A - 跟踪在线协作电子文档中的内容归因 - Google Patents

跟踪在线协作电子文档中的内容归因 Download PDF

Info

Publication number
CN112654995A
CN112654995A CN201980057904.9A CN201980057904A CN112654995A CN 112654995 A CN112654995 A CN 112654995A CN 201980057904 A CN201980057904 A CN 201980057904A CN 112654995 A CN112654995 A CN 112654995A
Authority
CN
China
Prior art keywords
model
coordinate
attribution
electronic document
collaborative electronic
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.)
Pending
Application number
CN201980057904.9A
Other languages
English (en)
Inventor
贝努史·哈里里
朱莉·蒙德
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN112654995A publication Critical patent/CN112654995A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/169Annotation, e.g. comment data or footnotes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

在协作电子文档的客户端模型的第一坐标位置处接收第一更改的指示。第一坐标位置在协作电子文档的坐标结构内。在协作电子文档的服务器模型的第二坐标位置处应用第一更改。第一更改与第一修订标识符相关联。生成归因模型,该归因模型包括与协作电子文档的坐标结构的至少一部分相对应的坐标结构并且包括与第一坐标位置和第二坐标位置相对应的第三坐标位置。用第一修订标识符更新归因模型的第三坐标位置。与第一修订标识符相关联地存储用于第一更改的归因信息。

Description

跟踪在线协作电子文档中的内容归因
技术领域
本公开的方面和实施例涉及电子文档,并且更具体地,涉及生成归因模型以跟踪协作电子文档中内容的归因信息并提供归因信息以用于呈现在客户端设备处。
背景技术
电子文档处理应用(例如,文字处理应用、电子表格应用、演示应用)可以用于操纵(例如,创建、编辑、查看、打印等)电子文档。在编辑电子文档时,用户通过移除文本、键入新文本或以其他方式更改电子文档的内容来更改电子文档的内容。
发明内容
本公开的一方面提供了一种方法,包括:由托管协作电子文档的服务器接收对在所述协作电子文档的客户端模型的第一坐标位置处的第一更改的指示,其中,所述第一坐标位置在所述协作电子文档的坐标结构内;在所述协作电子文档的服务器模型的第二坐标位置处应用所述第一更改,其中所述服务器模型的第二坐标位置与所述客户端模型的第一坐标位置相对应,并且其中所述第一更改与第一修订标识符相关联;生成归因模型,所述归因模型包括与所述协作电子文档的坐标结构的至少一部分相对应并且包括与所述第一坐标位置和所述第二坐标位置相对应的第三坐标位置的坐标结构;用所述第一修订标识符更新所述归因模型的第三坐标位置;以及与所述第一修订标识符相关联地存储用于所述第一更改的归因信息。
可以形成该方法的一部分的一些可选特征如下。所述方法可以包括:从客户端设备接收归因查询,所述归因查询请求与所述协作电子文档的客户端模型的第一坐标位置相关联的所述归因信息。所述方法可以包括使用所述协作电子文档的客户端模型的第一坐标位置的坐标标识符来标识与所述归因模型的第三坐标位置相关联的所述第一修订标识符。所述方法可以包括从数据存储中检索与所述第一修订标识符相关联的所述归因信息。所述方法可以包括响应于所述归因查询将所述归因信息提供给所述客户端设备。对所述协作电子文档的客户端模型的第一坐标位置处的所述第一更改的指示可以被提供有具有命令类型的命令。所述方法可以进一步包括:确定所述命令的命令类型是否满足命令类型条件,其中,响应于确定所述命令的命令类型满足所述命令类型条件来生成所述归因模型。所述归因信息可以包括对与所述第一更改相关联的用户账户和与所述第一更改相关联的时间戳的指示。所述方法可以包括:存储具有在所述第二坐标位置处的所述第一更改的所述协作电子文档的服务器模型的修订副本,其中,所述修订副本与所述第一修订标识符相关联。生成包括与所述协作电子文档的坐标结构的至少一部分相对应并且包括与所述第一坐标位置和所述第二坐标位置相对应的所述第三坐标位置的所述坐标结构的归因模型可以包括:生成包括比所述协作电子文档的坐标结构更小的坐标结构的所述归因模型。所述方法可以包括从客户端设备接收指示对所述协作电子文档的坐标结构的更改的命令。所述方法可以包括由所述服务器应用对所述协作电子文档的坐标结构的更改,其中,对所述协作电子文档的坐标结构的所述更改与第二修订标识符相关联。所述方法可以包括修改所述归因模型的坐标结构以将所述更改反映到所述协作电子文档的坐标结构,其中,鉴于所述归因模型的修改后的坐标结构来调整所述归因模型的内容的位置。所述方法可以包括存储具有对所述协作电子文档的坐标结构的更改的所述协作电子文档的服务器模型的修订副本,其中,包括对所述坐标结构的更改的所述修订副本与所述第二修订标识符相关联。所述方法可以包括抑制用所述第二修订标识符更新所述归因模型的第三坐标位置。所述方法可以包括。用所述修订标识符更新所述归因模型的第三坐标位置的步骤可以进一步包括:用所述第三坐标位置的坐标标识符更新所述归因模型的第三坐标位置,其中,鉴于所述归因模型的调整后的坐标结构,将所述归因模型的第三坐标位置的内容移动到所述归因模型的第四坐标位置。所述方法可以包括由所述服务器接收指示在所述协作电子文档的客户端模型的第五坐标位置处的第二更改的命令。方法可以包括根据所述命令在所述协作电子文档的服务器模型的第六坐标位置处应用所述第二更改,其中所述服务器模型的第六坐标位置对应于所述客户端模型的第五坐标位置,并且其中所述第二更改与所述第三修订标识符相关联。所述方法可以包括用所述第二更新的修订标识符和所述第四坐标位置的坐标标识符更新所述归因模型的第四坐标位置。所述方法可以包括在数据存储中与所述第三修订标识符相关联地存储用于所述第二更改的归因信息。所述方法可以包括,从客户端设备接收对与所述协作电子文档的客户端模型的第五坐标位置相关联的所述归因信息的请求。所述方法可以包括使用所述协作电子文档的所述客户端模型的第五坐标位置的坐标位置来标识与所述归因模型的第四坐标位置相关联的所述第一修订标识符、所述第三修订标识符和所述第三坐标位置的坐标标识符。所述方法可以包括检索与所述第三修订标识符相关联的所述归因信息。所述方法可以包括使用所述第一修订标识符来检索所述协作电子文档的服务器模型的第一修订副本。所述方法可以包括使用所述归因模型的第三坐标位置的坐标标识符来标识所述协作电子文档的服务器模型的第二坐标位置处的所述第一更改。所述方法可以包括响应于所述请求将所述归因信息提供给所述客户端设备,其中所述归因信息包括所述第一更改。
本公开的一方面提供一种方法,包括:经由在客户端设备处呈现的图形用户界面(GUI)接收用户对协作电子文档的客户端模型的一部分的选择,其中,所述协作电子文档由基于云的文档编辑系统托管,并且其中所述协作电子文档可由包括所述用户的多个用户并发编辑;接收对在由所述多个用户中的所述用户选择的所述客户端模型的一部分内的内容的更改的归因信息的用户请求;以及响应于接收到对所述归因信息的用户请求,经由所述GUI中的图形用户界面元素呈现所述归因信息,所述归因信息包括对所述协作电子文档的客户端模型的所述部分的内容作了更改的用户的用户账户标识符。
可以形成该方法的一部分的一些可选特征如下。所述协作电子文档可以包括具有包括一个或者多个行和一个或者多个列的协作结构的协作电子表格文档,其中,由所述用户选择的所述协作电子文档的客户端模型的所述部分包括所述协作电子表格文档的单元格。可选地,所述多个用户中没有一个用户可以已经调用命令来跟踪应用于所述协作电子文档的部分的更改。所述方法可以包括,响应于接收到对所述归因信息的所述用户请求;向所述基于云的文档编辑系统发送请求所述归因信息的归因查询,其中,所述归因查询包括第一坐标位置的坐标标识符,其中,所述坐标标识符标识所述协作电子文档的客户端模型的所述部分。所述方法可以包括经由所述图形用户界面接收对由所述多个用户中的所述用户选择的所述客户端模型的所述部分内的内容的另一更改的附加归因信息的后续用户请求。所述方法可以包括,响应于接收到对所述附加归因信息的所述后续用户请求,在所述GUI中的所述图形用户界面元素处呈现所述附加归因信息,所述附加归因信息包括提供所述协作电子文档的客户端模式的所述部分的内容的其他更改的用户的用户账户标识符。
本公开的又一方面提供了一种系统,包括:存储器;和处理设备,该处理设备被耦合到所述存储器,所述处理设备执行根据本文描述的任何方面或实施例的方法。本公开的又一方面提供一种计算机程序产品(诸如可以下载而不必以非暂时性方式存储的有形计算机可读介质或软件产品),所述计算机程序产品包括指令,所述指令响应于处理设备的执行,使所述处理设备执行包括根据本文描述的任何方面或实施例的方法的操作。
可以并入在系统中的一些可选特征如下。所述处理设备可以被配置成从客户端设备接收归因查询,所述归因查询请求与所述协作电子文档的客户端模型的第一坐标位置相关联的所述归因信息。所述处理设备可以被配置成使用所述协作电子文档的客户端模型的第一坐标位置的坐标标识符来标识与所述归因模型的第三坐标位置相关联的所述第一修订标识符。所述处理设备可以被配置成从数据存储中检索与所述第一修订标识符相关联的所述归因信息。所述处理设备可以被配置成响应于所述归因查询将所述归因信息提供给所述客户端设备。所述处理设备可以被配置使得对在所述协作电子文档的客户端模型的第一坐标位置处的所述第一更改的指示被提供有具有命令类型的命令。所述处理设备可以被配置成确定所述命令的命令类型是否满足命令类型条件,其中,响应于确定所述命令的命令类型满足所述命令类型条件来生成所述归因模型。所述处理设备可以被配置成存储具有在所述第二坐标位置处的所述第一更改的所述协作电子文档的服务器模型的修订副本,其中所述修订副本与所述第一修订标识符相关联。所述处理设备可以被配置成从客户端设备接收指示对所述协作电子文档的坐标结构的更改的命令。所述处理设备可以被配置成将所述更改应用于所述协作电子文档的坐标结构,其中,对所述协作电子文档的坐标结构的所述更改与第二修订标识符相关联。所述处理设备可以被配置成修改所述归因模型的坐标结构以反映对所述协作电子文档的坐标结构的更改,其中,鉴于所述归因模型的修改后的坐标结果调整所述归因模型的内容的位置。
附图说明
通过以下给出的详细描述以及本公开的各种方面和实施例的附图,将更全面地理解本公开的方面和实施例,然而,不应将其理解为将本公开限制为特定方面或实施例,但仅用于解释和理解。
图1图示根据本公开的实施例的系统架构的示例。
图2A是根据本公开的实施例的用于生成归因模型的操作的图。
图2B是根据本公开的实施例的用于更新归因模型的操作的图。
图2C是根据本公开的实施例的用于更新归因模型的操作的图。
图2D是根据本公开的实施例的用于更新归因模型的操作的图。
图3A是图示根据本公开的实施例的服务器模型和归因模型的图。
图3B是图示根据本公开的实施例的服务器模型和归因模型的图。
图3C是图示根据本公开的实施例的服务器模型和归因模型的图。
图3D是图示根据本公开的实施例的服务器模型和归因模型的图。
图4是根据本公开的实施例的用于将归因信息提供给客户端设备的操作的图。
图5是图示根据本公开的实施例的将归因信息提供给客户端设备的系统的图。
图6A-6C是图示根据本公开的实施例的用于向客户端设备提供协作电子文档的先前内容的服务器模型和归因模型的图。
图7是根据本公开的实施例的用于向客户端设备提供包括协作电子文档的一部分的先前内容的归因信息的操作的图。
图8A-8B图示根据本公开的实施例的允许用户检索归因信息的图形用户界面。
图9是图示根据本公开的实施例的用于生成归因模型以跟踪协作电子文档中的内容的归因信息并将该归因信息提供给客户端设备的方法的流程图。
图10是图示根据本公开的实施例的用于在用户设备处呈现归因信息的方法的流程图。
图11描绘根据本公开的一个或多个方面进行操作的示例计算系统的框图。
具体实施方式
电子文档可以指代以电子形式使用的媒体内容。媒体内容可以包括文本、表格、视频、音频、图像、图形、幻灯片、图表、软件编程代码、设计、列表、计划、蓝图、地图等。电子文档处理应用(例如,文字处理应用、电子表格应用、演示应用)可以用于操纵(例如,创建、编辑、查看、打印等)电子文档。电子文档处理应用可以是由用户设备托管以操纵存储在用户设备上的本地电子文档的本地应用。可替代地,可以从客户端设备远程地提供电子文档处理应用,例如,电子文档处理应用可以由在基于云的环境中操作的基于云的管理平台提供,该基于云的管理平台可以使用户能够在基于云的环境中将数据文件存储在一个或多个服务器上,从而跨用户的各种设备同步数据文件,并与一个或多个其他用户共享数据文件。在一些情况下,基于云的内容管理平台可以为用户提供管理数据文件的单个位置。基于云的内容管理平台可以使得电子文档的作者能够邀请其他用户作为合作者加入关于存储在基于云的平台处的电子文档。在本文中,已经授予用户并发访问或编辑的权限的电子文档可以称为协作文档。
协作电子文档可以具有坐标结构。坐标结构可以指代对象的组织。坐标结构允许使用坐标标识符来标识坐标结构内的元素或位置。例如,坐标结构可以包括许多坐标位置,每个坐标位置可以由坐标标识符来标识。例如,协作电子表格文档具有包括以特定方式组织的多个行和多个列的坐标结构,使得每个单元格可以通过行坐标和列坐标来标识。
协作电子文档可以由多个用户并发或在不同时间编辑。协作电子文档的每个用户可以在相应用户的客户端设备处具有协作电子文档的本地模型(例如,客户端模型)。基于云的文档编辑系统还可以包括协作电子文档的本地模型(例如,服务器模型)。随着协作电子文档的用户更改协作电子文档,基于云的文档编辑系统和客户端设备一起工作,使得使相应客户端设备处的本地模型和基于云文档编辑系统处的本地模型同步。
基于云的文档编辑系统可以实施修订方案,该修订方案协助协作电子文档的本地模型之间的同步。修订方案可以将协作电子文档(或对协作电子文档的更改)另存为多个修订(例如,版本),其中每个修订都捕获给定实例处的协作文档的状态。例如,当用户更改协作电子文档的相应本地模型时,用户的客户端设备可以向基于云的文档编辑系统发送更改请求。更改请求可以指示本地模型的更改类型、更改值、更改位置以及当前修订号(例如,修订1)中的一种或多种。响应于更改请求,基于云的文档编辑系统可以更新协作电子文档的服务器模型,使得服务器模型反映最近更改。基于云的文档编辑系统还可以保存协作电子文档的更新的服务器模型的修订副本,并将该修订副本与修订标识符(诸如当前修订(例如,修订1))相关联。在更新服务器模型之后,基于云的文档编辑系统可以增加服务器模型的修订号(例如,修订2)。基于云的文档编辑系统可以将确认发送到已提交更改已应用于服务器模型的更改请求的客户端设备。响应于接收到确认,客户端设备可以增加本地模型的修订号(修订2)。基于云的文档编辑系统可以将更改发送到其他客户端设备。其他客户端设备可以通过更改来更新其相应的本地模型,并将当前版本号(版本1)增加到下一个修订(版本2)。结果,基于云的文档编辑系统和客户端已经同步协作电子文档的内容。如果任何用户在协作电子文档的相应本地模型中键入另一值,则可以重复该过程。
在文档的整个生命周期中,特定协作电子文档的修订数量可能很多。例如,为了向各种客户端设备提供实时更改,更改请求中发送的更改可以是原子的。例如,每个单词甚至每个字符都可以在离散更改请求中发送到基于云的文档编辑系统。对于每个更改请求,基于云的文档编辑系统可以应用原子更改,并保存具有原子更改的协作电子文档的修订副本。
协作电子文档的每个修订可以与归因信息(例如,元数据)相关联。归因信息可以指代将协作电子文档上的动作(例如,编辑)归因于特定用户、作者或设备的信息,或为动作提供上下文的信息。例如,协作电子文档的修订副本的归因信息可以包括更改的作者、指示基于云的文档编辑系统何时将更改应用于服务器模型的时间戳、更改之前的先前值、更改请求中的信息等中的一个或多个。
在协作电子文档的整个生命周期中跟踪协作电子文档中内容的归因信息、标识特定坐标位置的正确归因信息、并提供归因信息以用于呈现在一个或多个客户端设备处是一种有益的服务,但呈现一些挑战。
在一些系统中,为了标识用于协作电子文档的特定位置(诸如协作电子表格文档中的特定单元格)的正确归因信息(诸如作者和时间),系统可以加载从最近修订开始的协作电子文档的修订副本中的每一个,并且检查修订副本的特定部分以确定特定部分是否被修改。如果确定修订副本的特定部分未被修改,则系统进入到下一个最近修订,直到系统找到对特定部分进行了修改的修订。一旦找到修改特定部分的修订,就可以使用关联的修订标识符来检索相应的归因信息。前述过程缓慢(例如,几分钟),并且消耗大量的计算、内存和存储资源。
此外,在协作电子文档的生命周期中跟踪协作电子文档中内容的归因信息、标识特定坐标位置的正确归因信息、并提供归因信息以用于呈现在一个或多个客户端设备处也可能是具有挑战性的,因为协作电子文档中的特定位置可能未与通用唯一标识符关联,并且特定位置和其中的内容可能会在协作电子文档的整个生命周期中更改和移动。例如,用户可以编辑协作电子表格文档的特定单元格。在协作电子表格文档的整个生命周期中,单元格及其内容可以移动多次,并可以被编辑多次。例如,一个或多个其他用户可以通过添加列或删除行来修改协作电子表格文档,这会导致单元格及其内容在协作电子表格文档中移动。用户还可以在单元格移动之前和之后更改单元格中的值。这样,在协作电子表格文档的每个修订中定位特定单元格并在协作电子表格文档的每个修订中确定该特定单元格的归因信息可能是计算密集且冗长的过程。
通过生成(例如,动态地生成)归因模型以在归因模型的整个生命周期中跟踪内容的归因信息,使用归因模型标识与坐标位置相关联的归因信息,并提供归因信息以用于呈现在一个或多个客户端设备处,本公开的各方面解决以上和其它挑战。在实施例中,归因模型可以是轻量级索引,该轻量级索引通过在协作电子文档的整个生命周期中移动并且其内容更改的坐标位置来跟踪归因信息。
在一些实施例中,托管协作电子文档的服务器接收更改请求。更改请求可以包括对协作电子文档的客户端模型的坐标位置的更改的指示(例如,作为命令的一部分)。响应于接收到更改请求,服务器可以将更改应用于协作电子文档的服务器模型的相应坐标位置。服务器可以存储包括最新更改的服务器模型的修订副本,并将该修订副本与当前修订号相关联。服务器还可以存储归因信息,并将归因信息与当前修订号相关联。服务器可以生成(例如,动态地生成)归因模型以跟踪归因信息。归因模型可以具有与协作电子文档的坐标结构相对应的坐标结构,并且包括与键入更改的协作电子文档的坐标位置相对应的坐标位置。
例如,协作电子表格文档可以具有相交形成单元格的许多行和许多列。归因模型还可以具有许多相交形成单元格的行和列。协作电子表格文档的单元格和归因模型的单元格可以具有相应的坐标标识符。例如,协作电子表格文档中的单元格A2在位于等效位置中的归属模型内具有对应单元格A2。
在一些实施例中,服务器可以利用可以用于在协作电子文档的整个生命周期中跟踪协作电子文档的内容的归因信息的信息(例如,跟踪信息)来更新归因模型的相应坐标位置。可以将与协作电子文档的服务器模型中应用更改的坐标位置相对应的归因模型的坐标位置与应用了更改的服务器模型的修订副本的修订标识符相关联。在一些实施例中,标识键入更改的坐标位置的坐标标识符(例如,A2)可以与归因模型的相应坐标位置相关联。如果在以后的时间更改协作电子文档的相同坐标位置,则可以更新归因模型的相应坐标位置的跟踪信息。
在实施例中,服务器可以接收归因查询,该归因查询请求与协作电子文档的客户端模型的坐标位置相关联的归因信息。标识客户端模型的坐标位置的坐标标识符也可以用于标识归因模型的相应坐标位置。响应于标识该归因模型的相应坐标位置,服务器可以检索与该归因模型的相应坐标位置相关联的跟踪信息。跟踪信息可用于检索所请求的归因信息。
例如,用户可以在协作电子表格文档中的特定单元格处请求最近编辑的作者和时间戳。服务器可以标识归因模型中的对应单元格,并检索与归因模型中的对应单元格相关联的最近修订标识符。服务器可以使用最近修订标识符来检索与最近修订标识符相对应的归因信息,并将该归因信息提供给客户端设备。如果用户请求协作电子表格文档中的特定单元格的第二最近编辑的归因信息,则服务器可以检索第二最近修订标识符,并检索与第二最近修订标识符相关联的归因信息。
在另一个示例中,用户可以请求最近编辑之前的单元格的值。服务器可以在归因模型中标识相应单元格,并检索第二最近修订标识符和与协作电子文档的服务器模型的相应修订副本中应用了第二最近更改的坐标位置相对应的坐标标识符。服务器可以使用第二最近修订标识符来加载相应修订副本,并读取在坐标位置处标识的坐标位置处的值,该值是最近编辑之前的单元格的值。
在一些实施例中,如果协作电子文档的坐标结构更改,则归属模型的坐标结构可以类似地更改。例如,如果将一列添加到协作电子文档,则可以将同一列添加到归因模型。可以相应地位移归因模型的坐标位置,但是不能基于坐标结构的更改来调整归因模型的坐标位置的内容。
在一些实施例中,可以在客户端设备处呈现图形用户界面(GUI)。用户可以选择协作电子文档的一部分。例如,用户可以选择协作电子表格文档的单元格。客户可以请求接收协作电子文档的所选部分的归因信息。服务器可以返回归因信息,该归因信息被呈现在客户端设备处的GUI中的图形用户界面元素处。
正如指出,通过本公开的实施例解决的技术问题是标识和检索用于坐标位置的正确归因信息以及提供归因信息以用于呈现在客户端设备处或将归因信息提供给其他过程或服务的时延。
还正如指出,本公开的实施例解决的另一个技术问题是在通过加载一系列修订副本以确定哪个修订副本包括坐标位置处的更改来标识和检索坐标位置的归因信息中使用大量的计算和存储资源。
此外,本公开的实施例解决的另一个技术问题是用户设备无法检索和呈现由用户选择的协作电子文档的一部分的归因信息。
对以上标识的技术问题的技术解决方案可以包括:由托管协作电子文档的服务器在协作电子文档的客户端模型的第一坐标位置处接收第一更改的指示,其中,第一坐标位置在协作电子文档的坐标结构内;根据命令在协作电子文档的服务器模型的第二坐标位置处应用第一更改,其中服务器模型的第二坐标位置对应于客户端模型的第一坐标位置,并且其中第一更改与第一修订标识符相关联;生成归因模型,该归因模型包括与协作电子文档的坐标结构的至少一部分相对应并且包括与第一坐标位置和第二坐标位置相对应的第三坐标位置的的坐标结构;通过第一修订标识符更新归因模型的第三坐标位置;以及与第一修订标识符相关联地存储用于第一更改的归因信息。
对上述所标识的技术问题的技术解决方案可以包括:经由在客户端设备处呈现的图形用户界面(GUI)接收用户的标识协作电子文档的客户端模型的一部分的选择,其中协作电子文档由基于云的文档编辑系统托管,并且其中协作电子文档可由多个用户并发编辑;接收对在由用户选择的客户端模型的部分内的内容更改的归因信息的用户请求;以及响应于接收到对归因信息的用户请求,经由GUI中的图形用户界面元素呈现归因信息,该归因信息包括对协作电子文档的客户端模型的部分内容作了更改的用户的用户标识符。
因此,技术效果可以包括减少确定坐标位置的归因信息并将归因信息提供给客户端设备或其他过程或服务的时延。
进一步的技术效果可以包括:通过加载一系列修订副本来确定哪个修订副本包括坐标位置处的更改来减少用于确定坐标位置的归因信息的计算和内存存储资源的数量。例如,技术效果可能涉及归因模型和/或体现归因模型的方法,从而导致更小,最小化或可接受的小存储需求或占用空间。
附加的技术效果可以包括允许用户设备提供由用户选择的协作电子文档的一部分的归因信息。
图1是根据本公开的实施例的系统架构100的示例。系统架构100包括经由网络130连接到客户端设备110A-110Z(在本文中通常称为“客户端设备110”)的基于云的环境101。尽管在基于云的环境101的上下文中描述了系统架构100,其可以启用基于云的环境101中的服务器112A-112Z(在本文中通常称为“服务器112”)之间的通信以及通过网络130与客户端设备110A-110Z之间的通信以存储和共享数据,可以理解,本文描述的实施例也可以应用于本地互连的系统。在实施例中,基于云的环境101指代的是物理机的集合,该物理机托管经由网络130将一个或多个服务(例如,文字处理、电子表格处理、包括在幻灯片演示文稿中的幻灯片生成、网页处理等)提供给多个客户端设备110A-110Z的应用(例如,文字处理应用、电子表格应用、幻灯片演示应用、网页应用等)。
网络130可以是公共网络(例如,互联网)、专用网络(例如,局域网(LAN)或广域网(WAN))或它们的组合。网络130可以包括无线基础设施,该无线基础设施可以由诸如与网络130连接的无线保真(Wi-Fi)热点或可以使用各种数据处理装备、通信塔等来实现的无线载波系统的一个或多个无线通信系统提供。另外或替代地,网络130可以包括有线基础设施(例如,以太网)。
基于云的环境101可以包括一个或多个服务器112A-112Z和数据存储114。在实施例中,数据存储114可以存储数据文件116、协作电子文档修订117和归因信息119。数据存储114的内容可以在随后的附图中进一步描述。
在实施例中,数据存储114可以存储一个或者多个数据文件116,该数据文件116可以包括内容(例如,文本、数据表、图像、视频、音频等)。在一个实施例中,数据文件116可以是任何合适的数据文件,包括由客户端设备110A-110Z或从基于云的环境101内部或外部的服务器上传到基于云的环境101的内容。在一些实施例中,数据文件116可以是与协作电子文档(在本文中也称为“协作文档”)相关联的归因模型132。在实施例中,数据文件116可以是电子文档,诸如可以与用户共享或由用户并发可编辑的协作电子文档。在实施例中,术语“并发可编辑”可以指代用户并发修改(例如,添加、删除、更改等)内容(例如,文本、单元格、图像、数据、幻灯片等)、并发建议对内容的更改、并发对内容进行评论等。
在实施例中,可以向客户端设备110A-110Z实时提供或在客户端设备110A-110Z上呈现对协作电子文档的更改。在实施例中,实时可以指代当在不同的客户端设备上进行更改时,向一个或多个客户端设备110传输、呈现或显示对协作电子的更改。例如,对协作电子文档的实时更改(例如,编辑)可以基本上与用户使用客户端设备110Z编辑协作电子文档同时在客户端设备110A的显示器上显示(至少在显示实时更改的技术限制内,例如用户对协作电子文档的编辑可以在用户输入的几毫秒内显示,并且可能在接收用户看来就像是绝对实时的)。
在实施例中,协作电子文档可以是协作文字处理文档、协作电子表格文档、协作幻灯片演示文档、协作网页文档或可以与用户共享的任何合适的电子文档(例如,包括诸如文本、数据表、视频、图像、图形、幻灯片、图表、软件编程代码、设计、列表、计划、蓝图、地图等内容的电子文档)。
协作电子文档可以由作者创建,并且作者可以与其他用户(例如,合作者)共享协作电子文档。共享协作电子文档可以指代授予其他用户访问(查看和/或编辑)协作电子文档的权限。共享协作电子文档可以包括经由包括与协作电子文档的链接的消息(例如,电子邮件、文本消息等)向其他用户通知协作电子文档。授予每个用户的许可级别可以基于每个特定用户的用户类型。例如,具有编辑者用户类型的用户可能能够打开协作电子文档并直接对协作电子文档进行更改。为此,众多合作者可以对协作电子文档中呈现的内容进行更改。
服务器112A-112Z可以是物理机(例如,服务器机器、台式计算机等),每个物理机包括通信地耦合到内存设备和输入/输出(I/O)设备的一个或多个处理设备。处理设备可以包括计算机、微处理器、逻辑设备或配置有硬件、固件和软件的其他设备或处理器,以实施本文所述的实施例中的一些。服务器112A-112Z中的每个可以托管归因模块118A-118Z(本文中通常称为“归因模块118”)。归因模块118A可以被实现为计算机指令,该计算机指令可由服务器112A-112Z中的每个上的一个或多个处理设备执行。归因模块118A可以执行相关于以下附图描述的操作。
在实施例中,一个或多个服务器112A-112Z可以向客户端设备110A-110Z提供协作电子文档环境122A-122Z(在本文中通常称为“协作电子文档环境122”)。被选择以提供协作电子文档环境122A-122Z的服务器112A-112Z可以基于某些负载平衡技术、服务水平协议、性能指标等。协作电子文档环境122A-122Z可以提供用户界面124A-124Z,该用户界面124A-124Z显示基于一个或多个数据文件116中的内容生成的协作电子文档。协作电子文档环境122A-122Z可以使使用不同的客户端设备110A-110Z的用户能够并发访问协作电子文档以在相应的用户界面124A-124Z中审查、编辑、查看和/或提议对协作电子文档的更改。
在实施例中,用户界面124A-124Z可以是由网络浏览器渲染并显示在网络浏览器窗口中的客户端设备110A-110Z上的网页。在另一个实施例中,用户界面124A-124Z可以被包括在下载到客户端设备110A-110Z并且在客户端设备110A-110Z上本地运行的独立应用(也称为“本地应用”或“本地客户端应用”)中。
客户端设备110A-110Z可以包括通信地耦合到内存设备和I/O设备的一个或多个处理设备。客户端设备110A-110Z可以是台式计算机、膝上型计算机、平板计算机、移动电话(例如,智能电话)或任何合适的计算设备。客户端设备110A-110Z可以包括诸如输入设备和输出设备等部件。服务器112A-112Z可以使用由用户经由用户界面124A-124Z提供的用户名和密码(或其他标识信息)来认证该用户,使得同一客户端设备110A-110Z可以被不同用户在不同时间使用。
如上面所讨论的,客户端设备110A-110Z可以均包括web浏览器或本机客户端应用。被邀请并成为协作电子文档的合作者的用户可以请求经由web浏览器或本机客户端应用访问协作电子文档。例如,用户可以从由基于云的环境101提供并由web浏览器或本机客户端应用呈现的用户界面124A中选择协作电子文档。为此,与用户相关联的客户端设备110A可以从基于云的环境101请求协作电子文档。协作电子文档环境122A-122Z可以使用户能够在相应的用户界面124A-124Z内查看和/或管理它们被关联的协作电子文档。
协作电子文档环境122A-122Z还可以使使用不同客户端设备110A-110Z的用户能够同时访问协作电子文档以在呈现协作电子文档的相应的协作应用(例如,协作幻灯片演示应用、协作文字处理应用、协作电子表格应用、协作网页应用等)的相应的用户界面124A-124Z中评论、编辑(例如,修改或建议更改)或查看协作电子文档。
在一些实施例中,归因模块118B-118Z可以是客户端设备110A-110Z的一部分。例如,在一些实施例中,客户端设备110A-110Z可以具有本地安装的应用,该应用包括归因模块118B-118Z,以生成(例如动态生成)归因模型以跟踪协作电子文档中内容的归因信息并提供归因信息给一个或多个客户端设备110A-110Z。客户端设备110A-110Z处的归因模块118B-118Z可以与服务器112处的归因模块118相同或相似。在一些实施例中,数据文件116、协作电子文档修订117或归因信息119中的一个或多个可以将其存储在客户端设备110A-110Z本地。在一些实施例中,客户端设备110A-110Z可以整体执行归因模块118B-118Z以生成归因模型,以跟踪协作电子文档中内容的归因信息,标识特定坐标位置的正确归因信息,并提供归因信息给一个或多个客户端设备110A-110Z。
在一些实施例中,基于云的环境101可以整体执行归因模块118A以生成归因模型以跟踪协作电子文档中的内容的归因信息,标识特定坐标位置的正确归因信息,并且将归因信息提供给一个或多个客户端设备110A-110Z。在其他实施例中,可以在服务器112A-112Z或客户端设备110A-110Z当中划分归因模块118A-118Z的操作。
如上所述,协作电子文档可以具有坐标结构。坐标结构可以指代对象的组织。坐标结构允许使用坐标标识符来标识坐标结构内的元素或位置。例如,坐标结构可以包括许多坐标位置,每个坐标位置可以由坐标标识符来标识。例如,协作电子表格文档具有包括以特定方式组织的多个行和多个列的坐标结构,使得每个单元格可以通过行坐标和列坐标来标识。坐标位置可以指代坐标结构中的元素或位置。坐标位置可以存储内容或与内容相关联。坐标位置可以通过坐标标识符(例如,行坐标和列坐标)来标识。坐标标识符可以标识坐标结构内的定位或位置,并且可以相对于坐标结构参考坐标位置的定位或位置。坐标标识符可以更改坐标结构内的位置,并且可以分别更改给定元素的坐标位置。
在示例中,协作文字处理文档可以具有阵列类型的坐标结构。可以注意到,不同坐标结构可以用于相同类型的协作电子文档,并且前述内容仅用于说明而不是限制。
在一些实施例中,每个客户端设备存储协作电子文档的客户端模型。例如,客户端设备110A存储协作电子文档的客户端模型125A,并且客户端设备110Z存储协作电子文档的客户端模型125Z(在本文中通常称为“客户端模型125”)。当用户在客户端设备110处编辑客户端模型125时,将更改请求发送到服务器112。更改请求可以包括可以描述更改类型、更改位置(例如,坐标位置)以及更改内容(如果适用)的命令。例如,如果用户在协作电子表格文档的单元格中键入值,则命令“设置单元格属性”连同键入到该单元格中的值和该单元格的坐标位置一起被发送到服务器112。在实施例中,对发送到服务器的客户端模型124的更改本质上是原子的。例如,键入到协作文字处理文档中的每个字符可以作为命令发送到服务器112。在另一个示例中,键入到协作电子表格文档的单元格中的值可以作为命令的一部分发送到服务器112。
在实施例中,服务器112A可以从客户端设备110A接收更改请求。服务器112A可以将由更改请求中的命令描述的更改应用于协作电子文档的服务器模型131。在一些实施例中,服务器112A可以保留包括添加的更改的协作电子文档的当前修订(例如,修订1)的副本(例如,修订副本)。修订副本可以作为协作电子文档修订117(例如,修订副本)的一部分存储在数据存储114处。在实施例中,服务器可以存储协作电子文档的每个修订的修订副本。
在实施例中,在将更改应用于服务器模型131之后(并且在一些实施例中,在存储当前修订的修订副本(例如,修订1)之后),服务器112A递增与服务器模型131相关联的修订号(例如,修订2)。在将更改应用到服务器模型131之后,服务器112可以向客户端设备110A发送确认,该确认指示更改已经被应用到服务器模型131。可以注意到,服务器模型130可以被连续地更新,使得它反映协作电子文档的最近修订。客户端设备110A可以更新与客户端模型125A相关联的修订号,使得服务器模型131和客户端模型125A同步。服务器112A还可以将更改发送到客户端设备110Z。客户端设备110Z可以基于从服务器112A接收到的更改来更新客户端模型125Z,并且还可以更新与客户端模型125Z相关联的修订号以将客户端模型125Z与服务器模型130同步。
在一些实施例中,服务器112可以生成和更新归因模型132。归因模型132与特定服务器模型131相关联,并且可以被用于跟踪协作电子文档中的内容的归因并标识与协作电子文档的特定坐标位置相关联的归因信息。结合以下附图进一步描述归因模块132、归因模块118的操作以及归因信息119。
在此处讨论的系统收集关于用户的个人信息或可以利用个人信息的状况下,可以为用户提供控制基于云的环境101是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户偏好或用户当前位置的信息)或控制是否和/或如何从可能与用户更为相关的内容服务器接收内容的机会。另外,在存储或使用某些数据之前,可能会以一种或多种方式对其进行处理,以使得移除个人可识别信息。例如,可以对用户的身份进行处理,以使得无法确定该用户的任何个人可识别信息,或者可以在获得位置信息的情况下概括用户的地理位置(诸如,概括为城市、邮政编码或州级别),以使得无法确定用户的特定位置。因此,用户可以控制如何收集关于用户的信息以及如何被基于云的环境101使用。
图2A是根据本公开的实施例的用于生成归因模型的操作的图。系统200可以包括与图1的系统架构100类似的组件。可以注意到,图1的组件可以用来帮助描述图2A。为了说明而非限制的目的,关于系统200的操作被描述为由服务器112A的归因模块118A、客户端设备110A的归因模块118B、客户端设备110Z的归因模块118Z执行或可以由其任何组合执行,除非另外说明。为了说明而不是限制,关于图2A描述的操作被示出以被顺序地执行。可以注意到,可以以任何顺序执行操作,并且可以与一个或多个其他操作并发地执行任何操作。在一些实施方式中,可以以任何顺序执行相同、不同、更少或更多数量的操作。图3A是图示根据本公开的实施例的服务器模型和归因模型的图。图3A的组件被用于帮助描述关于图2A描述的操作。为了说明而非限制的目的,在本文中使用协作电子表格文档作为协作电子文档的示例。可以注意到,本公开的各方面可以应用于其他类型的协作电子文档,诸如但不限于协作文字处理文档和协作幻灯片文档。
在操作201处,客户端设备110Z对协作电子文档的客户端模型进行更改。如图3A中所图示,客户端设备110Z的用户在协作电子表格文档的特定单元格A2中键入值(例如,“lorem”)。
在操作202处,客户端设备110Z显示包括该更改的协作电子文档的更新的客户端模型。例如,客户端设备110Z在图形用户界面(GUI)中显示协作电子表格文档的更新的客户端模型,其在单元格A2中包括内容“lorum”。
在操作203处,客户端设备110Z向服务器112A发送更改请求。更改请求可以包括指示在客户端设备110Z处的协作电子文档的客户端模型的坐标结构内的坐标位置的更改的命令。例如,服务器112A可以接收包括命令的更改请求,该命令指示对存储在客户端设备110Z处的协作电子表格文档的客户端模型的特定单元格的更改。
在一些实施例中,更改请求可以包括各种信息或与各种信息相关联。例如,更改请求可以包括命令(例如,要执行的动作)、客户端模型的修订号的标识符(例如,进行更改的当前修订)、键入的内容(例如,值)、更改的位置(例如,坐标标识符)、会话标识符、用户标识符以及其他信息中的一个或多个或与其相关联。
在一些实施例中,命令可以与多个命令类型中的命令类型相关联。例如,第一命令类型可以更改协作电子文档内的坐标位置处的值。例如,第一命令类型可以向协作电子表格文档中的单元格添加值。第二命令类型可以更改协作电子文档的坐标结构。例如,第二命令类型可以将一个或多个行或列添加到协作电子表格文档中。第三命令类型可以更改协作电子文档内的坐标位置处的值的格式。例如,第三命令类型可以将一个单元格中的字体从第一字体类型更改为第二字体类型。提供本文描述的命令类型是为了说明而不是限制。附加或不同的命令类型可以用于任何协作电子文档。在实施例中,服务器112A可以鉴于接收到的命令类型来执行一个或多个不同的操作。
参考当前示例,服务器112A可以接收更改请求,该更改请求包括第一命令类型的命令(例如,“设置单元格属性”),其指示对存储在客户端设备110Z处的协作电子表格文档的客户端模型的特定单元的值的更改。更改请求标识坐标标识A2,该坐标标识A2标识协作电子表格文档的客户端模型的坐标位置,在A2处的单元格。更改请求还标识更改值(“lorem”)、客户端模型的当前修订号以及会话标识符。
在操作204处,服务器112A根据该命令在协作电子文档的服务器模型的相应坐标位置处应用更改。在实施例中,客户端模型的坐标结构和协作电子文档的服务器模型是相似或相同的,使得客户端模型的坐标位置对应于服务器模型的坐标位置。在一些实施例中,该更改与修订标识符相关联。在一些实施例中,修订标识符可以标识在将更改应用于协作电子文档的服务器模型之后递增的修订号(例如,操作211)。在一些实施例中,版本标识符在版本号递增之前标识当前版本。
例如,在图3A中,用户在协作电子表格文档的客户端模型的坐标位置,在A2处的单元格,键入“lorem”。为了将更改应用于协作电子表格文档的服务器模型310,将值“lorem”键入到协作电子表格文档的服务器模型310的对应坐标位置,A2处的单元格。当前版本号是版本1,并且修订标识符可以是rev.1。
在操作205处,服务器112A将协作电子文档的服务器模型的修订副本以及所应用的更改存储在对应的坐标位置处。修订副本与修订标识符关联。例如,服务器112A存储协作电子表格文档的服务器模型的当前状态的修订副本,其在坐标位置,单元格A2处包括更改“lorem”。服务器将修订副本与当前修订ID(rev.1)相关联。
在操作206处,服务器112A确定命令的命令类型是否满足命令类型条件。在一些实施例中,为了确定命令的命令类型是否满足命令类型条件,服务器112A确定命令类型是否是预定义命令类型中的一种(例如,第一命令类型、第二命令类型、第三命令类型等)。响应于确定命令的命令类型是特定命令类型,服务器112A执行特定动作。在当前实施例中,服务器112A确定命令的命令类型是更改协作电子文档的坐标位置处的值的第一命令类型。例如,命令“设置单元格属性”是第一命令类型,其将值添加到协作电子表格文档中的单元格。
在操作207处,响应于确定命令的命令类型满足命令类型条件(例如,属于第一命令类型),服务器112A生成归因模型。归因模型跟踪协作文档中内容的归因。在实施例中,归因模型包括与协作电子文档的坐标结构的至少一部分相对应的坐标结构。归因模型可以至少包括与应用了更改的服务器模型的坐标位置相对应的坐标位置。可以使用与应用了更改的服务器模型的坐标位置相关联的坐标标识符来标识归因模块的相应坐标位置。
在一些实施例中,服务器112A可以生成归因模块,该归因模块的坐标结构小于协作电子文档的坐标结构(例如,仅包括该协作电子文档的坐标结构的一部分)。归因模型可以具有相似的坐标结构,但不包括一些还没有应用任何更改的坐标位置。较小的归因模型可以是减轻用于生成、保存和加载归因模型的存储和内存资源量的优化。
例如,在图3A中,生成归因模型320以具有一列(列A)和四行(行1-4)。相反,协作电子表格文档的服务器模型310具有五列(列A-E)和四行(行1-4)。归因模型320的坐标结构与服务器模型310类似,因为这两个坐标结构都具有相同的结构类型(例如,行和列),并且都包括可以通过相同的坐标标识符来寻址相应坐标位置的坐标结构(例如A2)。所生成的归因模块320反映协作电子表格文档的服务器模型的一部分,但是服务器模型310的坐标结构的充分,使得归因模块320包括应用了更改的坐标位置。该方法在减少存储和使用归因模型320所需的数据存储和其他资源方面可能是有益的。可以注意到,提供的坐标结构的大小是示例性的,而非限制性的。在其他实施例中,归因模型320的坐标结构可以通过例如消除行3和4而变得更小,或者通过例如增加列B而更大。
在其他实施例中,归因模型320可以具有与协作电子文档的服务器模型相同的坐标结构(例如,相同的尺寸以及相同数量的行和列)。
在操作208处,服务器112A用修订标识符更新归因模块的相应坐标位置。例如,在图3A中,服务器112A将修订标识符rev.1与和将更改“lorem”添加到服务器模型310的服务器模型310的坐标位置相对应的归因模块320的坐标位置相关联。在服务器模型310和归因模块320中,已调整A2处的单元格。
在操作209处,服务器112A生成与对协作电子文档的更改相关联的归因信息。归因信息可以指代将特定用户或作者对协作电子文档的动作(例如,编辑)进行归因的信息、或为该动作提供上下文的信息。在一些实施例中,归因信息可以包括与该更改相关联的用户账户(具有基于云的系统101)的指示和与该更改相关联的时间戳中的一个或多个。在一些实施例中,与该更改相关联的用户账户的指示可以包括作者对该协作电子文档的客户端模型进行了更改的标识符。在一些实施例中,与更改相关联的时间戳可以指示服务器112A将更改应用于协作电子文档的服务器模型的时间。时间戳可以包括更改日期(例如,日、月或年)或更改时间(例如,时、分、秒)中的一个或多个。
在一些实施例中,归因信息可以包括更多、更少或不同的信息。例如,归因信息可以包括在更改之前的坐标位置处的值(例如,在应用更改之前的单元格的内容),如将参考图6A-6C和7A-7C进一步描述的。在一些实施例中,客户端设备可以生成归因信息的一个或多个元素。例如,更改请求可以包括对协作电子文档的客户端模型进行更改的用户的标识符。
在操作210处,服务器112A存储与对协作电子文档的更改相关联的至少一些归因信息。归因信息可以与当前修订的修订标识符相关联。例如,在图3A中,归因信息可以存储在数据存储(例如,数据存储114)中,并且与协作电子表格文档的服务器模型的当前修订标识符rev.1链接或以其他方式相关联(例如,一起存储)。
在操作211处,服务器112A可以更新协作电子文档的服务器模型的当前修订号。例如,服务器112A将服务器模型的修订号递增到下一个修订号。例如,服务器112A可以将服务器模型的版本号从版本1(rev.1)递增到版本2(rev.2)。
在操作212处,服务器112A可以向客户端设备110Z发送该更改请求中提交的更改已经被应用于协作电子文档的服务器模型的指示。
在操作213处,响应于接收到在更改请求中提交的更改已被应用在协作电子文档的服务器模型的指示,客户端设备110Z更新协作电子文档的客户端模型的当前修订号。例如,客户端设备110Z可以将客户端模型的修订号从修订1(rev.1)递增到修订2(rev.2)。在更新当前修订号之后,客户端设备110Z处的协作电子文档的客户端模型与协作电子文档的服务器模型同步。
在操作214处,服务器112A将更改的指示发送到客户端设备110A。例如,更改的指示可以指示协作电子表格文档的A2处的单元格具有新值“lorem”。
在操作215处,响应于接收到更改的指示,客户端设备110A将更改应用于客户端设备110A处的协作电子文档的客户端模型。例如,客户端设备110A将值“lorem”应用于协作电子表格文档的客户端模型的A2处的单元格。
在操作216处,客户端设备110A更新协作电子文档的客户端模型的当前修订号。例如,客户端设备110A可以将客户端模型的修订号从修订1(rev.1)递增到修订2(rev.2)。在更新当前修订号之后,客户端设备110A处的协作电子文档的客户端模型与协作电子文档的服务器模型同步。
图2B是根据本公开的实施例的用于生成归因模型的操作的图。系统200可以包括与图1的系统架构100类似的组件。可以注意到,图1的组件可以用来帮助描述图2B。出于说明而非限制的目的,关于系统200的操作被描述为由服务器112A的归因模块118A、客户端设备110A的归因模块118B、客户端设备110Z的归因模块118Z执行,或者可以由任何组件执行除非另有说明。为了说明而不是限制,关于图2B描述的操作被示出以被顺序地执行。可以注意到,可以以任何顺序执行操作,并且可以与一个或多个其他操作并发执行任何操作。在一些实施方式中,可以以任何顺序执行相同、不同、更少或更多数量的操作。图3B是图示根据本公开的实施例的服务器模型和归因模型的图。使用图3B的组件以帮助描述关于图2B所描述的操作。在实施例中,图2B的操作可以类似于关于图2A描述的操作,并且关于图2A的描述可以被用于为关于图2B描述的操作提供附加细节。
在操作220处,客户端设备110A对协作电子文档的客户端模型进行更改。如图3B中所图示,客户端设备110A的用户将值(例如,“ipsum”)键入到协作电子表格文档的特定单元,D3处的单元格中。
在操作221,客户端设备110A显示包括更改的协作电子文档的更新的客户端模型。例如,客户端设备110A在GUI中显示在D3处的单元格处包括内容“ipsum”的协作电子表格文档的更新的客户端模型。
在操作222处,客户端设备110A向服务器112A发送更改请求。更改请求可以包括指示在客户端设备110A处的协作电子文档的客户端模型的坐标结构内的坐标位置处的更改的命令。例如,服务器112A可以接收包括命令的更改请求,该命令指示对存储在客户端设备110A处的协作电子表格文档的客户端模型的特定单元格的更改。
在当前示例中,服务器112A可以接收更改请求,该更改请求包括第一命令类型的命令(例如,“设置单元格属性”),其指示对协作电子表格文档的客户端模型的特定单元处的值的更改。更改请求标识协作电子表格文档的客户端模型的坐标位置(D3处的单元格)、更改值(“ipsum”)、客户端模型的当前修订号(例如,rev.2)和会话标识符。
在操作223处,服务器112A根据该命令在协作电子文档的服务器模型的相应坐标位置处应用更改。例如,在图3B中,用户在协作电子表格文档的客户端模型的坐标位置(D3处的单元格)处键入“ipsum”。为了将更改应用于协作电子表格文档的服务器模型310,将值“ipsum”输入到协作电子表格文档的服务器模型310的对应坐标位置(D3处的单元格)。当前修订号是修订2,并且修订标识符可以是rev.2。
在操作224处,服务器112A将协作电子文档的服务器模型的修订副本以及所应用的更改存储在相应的坐标位置处。该修订副本与所标识的修订相关联。例如,服务器112A存储协作电子表格文档的服务器模型的当前状态的修订副本,该修订副本包括在坐标位置D3处的单元格处的更改“ipsum”。服务器将修订副本与当前修订ID,rev.2相关联。
在操作225处,服务器112A确定命令的命令类型是否满足命令类型条件。在当前实施例中,服务器112A确定命令的命令类型是将值添加到协作电子文档的坐标位置的第一命令类型。例如,“设置单元格属性”命令是将值添加到协作电子表格文档中的单元格的第一命令类型。
在操作226处,响应于确定命令的命令类型满足命令类型条件(例如,属于第一命令类型),服务器112A修改与协作电子设备的服务器模型相关联的归因模型文档。特别地,在一些实施例中,归因模型的坐标结构被修改。
例如,在图3B中,通过添加列B、C和D来修改归因模块320的坐标结构。注意,归因模块320的坐标结构仍然小于服务器模型310的坐标结构。修改后的归因模块320反映协作电子表格文档的服务器模型310的一部分,但是服务器模型310的坐标结构充分,使得归因模型320可以包括更改的坐标位置。
在操作227处,服务器112A通过当前修订标识符更新归因模块的相应坐标位置。例如,在图3B中,服务器112A将修订标识符rev.2与和将更改“ipsum”添加到服务器模型310的服务器模型310的坐标位置相对应的归因模型320的坐标位置相关联。在服务器模型310和归因模型中,D3处的单元格已更新,但是具有不同的信息。可以注意到,归因模块320不包括已经被包括在服务器模型310的D3处的单元格中的值“ipsum”,这减少了归因模块310的存储和内存开销。
在操作228处,服务器112A生成用于对该协作电子文档的更改的归因信息。例如,归因信息可以包括更改的作者(例如,客户端设备110A的用户A)以及服务器112A将更改应用于服务器模型310的时间戳。
在操作229处,服务器112A将用于更改的归因信息与当前修订的修订标识符相关联地存储。例如,在图3B中,归因信息可以存储在数据存储(例如,数据存储114)处,并且与协作电子表格文档的服务器模型的当前修订标识符rev.2相链接或以其他方式相关联(例如,存储在一起)。
在操作230处,服务器112A可以更新协作电子文档的服务器模型的当前修订号。例如,服务器112A可以将服务器模型的修订号从修订2(rev.2)递增到修订3(rev.3)。
在操作231处,服务器112A可以向客户端设备110A发送在更改请求中提交的更改已应用于协作电子文档的服务器模型的指示。
在操作232处,响应于接收到在更改请求中提交的更改已被应用于服务器模型的指示,客户端设备110A更新协作电子文档的客户端模型的当前修订号。例如,客户端设备110A可以将客户端模型的修订号从修订2(rev.2)递增到修订3(rev.3)。在更新当前修订号之后,客户端设备110A处的协作电子文档的客户端模型与协作电子文档的服务器模型同步。
在操作233处,服务器112A将对服务器模型的更改的指示发送到客户端设备110Z。例如,更改的指示可以指示协作电子表格文档的D3处的单元格具有新值“ipsum”。
在操作234处,响应于在服务器模型处接收到更改的指示,客户端设备110Z在客户端设备110Z处将更改应用于协作电子文档的客户端模型。例如,客户端设备110Z在客户端设备110A处的协作电子表格文档的客户端模型的D3处的单元处应用值“ipsum”。
在操作235处,客户端设备110Z更新协作电子文档的客户端模型的当前修订号。例如,客户端设备110Z可以将客户端模型的修订号从修订2(rev.2)递增到修订3(rev.3)。在更新当前修订号之后,客户端设备110Z处的协作电子文档的客户端模型与协作电子文档的服务器模型同步。
图2C是根据本公开的实施例的用于更新归因模型的操作的图。系统200可以包括与图1的系统架构100类似的组件。可以注意到,图1的组件可以用来帮助描述图2C。出于说明而非限制的目的,关于系统200的操作被描述为由服务器112A的归因模块118A、客户端设备110A的归因模块118B、客户端设备110Z的归因模块118Z执行,或者可以由其任何组件执行,除非另有说明。为了说明而不是限制,关于图2C描述的操作被示出为顺序地执行。可以注意到,可以以任何顺序执行操作,并且可以与一个或多个其他操作并发地执行任何操作。在一些实施方式中,可以以任何顺序执行相同、不同、更少或更多数量的操作。图3C是图示根据本公开的实施例的服务器模型和归因模型的图。图3C的组件被用于帮助描述关于图2C描述的操作。在实施例中,图2C的操作类似于关于图2A描述的操作,并且关于图2A的描述被可用于提供关于图2C描述的操作的附加细节。
在操作240处,客户端设备110Z对协作电子文档的客户端模型进行更改。如图3C中所图示,客户端设备110Z的用户在协作电子表格文档的特定单元格(A2处的单元格)中键入值(例如,“Hello”),该值替换原始值“lorem”。
在操作241处,客户端设备110Z显示包括该更改的协作电子文档的更新的客户端模型。例如,客户端设备110Z在GUI中显示在A2处的单元格中包括内容“Hello”的协作电子表格文档的更新的客户端模型。
在操作242处,客户端设备110Z向服务器112A发送更改请求。更改请求可以包括指示在客户端设备110Z处的协作电子文档的客户端模型的坐标结构内的坐标位置处的更改的命令。例如,服务器112A可以接收包括命令的更改请求,该命令指示对存储在客户端设备110Z处的协作电子表格文档的客户端模型的特定单元格的更改。
在当前示例中,服务器112A可以接收更改请求,该更改请求包括第一命令类型的命令(例如,“设置单元格属性”),其指示对协作电子表格文档的客户端模型的特定单元格处的值的更改。更改请求标识协作电子表格文档的客户端模型的坐标位置(A2处的单元格)、更改值(“Hello”)、客户端模型的当前修订号以及会话标识符。
在操作243处,服务器112A根据该命令在协作电子文档的服务器模型的对应坐标位置处应用更改。例如,在图3C中,用户在协作电子表格文档的客户端模型的坐标位置(A2处的单元格)处键入“Hello”。为了将更改应用于协作电子表格文档的服务器模型310,服务器112A用新值“Hello”替换值“lorem”。将“Hello”键入到协作电子表格文档的服务器模型310的相应坐标位置(A2处的单元格)。当前版本号是版本3,并且版本标识符可以是rev.3。
在操作244处,服务器112A将协作电子文档的服务器模型的修订副本以及所应用的更改存储在对应的坐标位置处。修订副本与修订标识符相关联。例如,服务器112A存储协作电子表格文档的服务器模型的当前状态的修订副本,其包括在坐标位置(A2的单元格)处的更改“Hello”。服务器将修订副本与当前修订ID,rev.3相关联。
在操作245处,服务器112A确定命令的命令类型是否满足命令类型条件。在当前实施例中,服务器112A确定该命令的命令类型是将值添加到协作电子文档的坐标位置的第一命令类型。例如,“设置单元格属性”命令是在协作电子表格文档中的单元格添加或更改值的第一命令类型。
在操作246处,响应于确定命令的命令类型满足命令类型条件(例如,属于第一命令类型),服务器112A用修订标识符更新归因模块的相应坐标位置。例如,在图3B中,服务器112A将在对应于服务器模型310的坐标位置的归因模块320的坐标位置处的当前修订本标识符rev.3与更改“Hello”相关联。如所图示的,归因模型320的坐标位置(在A2处的单元格)包括两个修订标识符rev.1和rev.3。可以注意到,因为归因模块320已经包括在A2处的单元格,所以归因模块320的坐标结构不需要再次修改。
在操作247处,服务器112A生成用于对协作电子文档的修改的归因信息。
在操作248处,服务器112A与当前修订的修订标识符相关联地存储用于更改的归因信息。例如,在图3C中,归因信息可以存储在数据存储(例如,数据存储114)处,并且与协作电子表格文档的服务器模型的当前修订标识符rev.3链接或以其他方式与其相关联(与其存储在一起)。
在操作249处,服务器112A可以更新协作电子文档的服务器模型的当前修订号。例如,服务器112A可以将服务器模型的版本号从版本3(rev.3)递增到版本4(rev.4)。
在操作250处,服务器112A可以向客户端设备110Z发送在更改请求中提交的更改已应用于协作电子文档的服务器模型的指示。
在操作251处,响应于接收到在更改请求中提交的更改已应用于协作电子文档的服务器模型的指示,客户端设备110Z更新协作电子文档的客户端模型的当前修订号。例如,客户端设备110Z可以将客户端模型的版本号从版本3(rev.3)递增到版本4(rev.4)。在更新当前修订号之后,客户端设备110Z处的协作电子文档的客户端模型与协作电子文档的服务器模型同步。
在操作252处,服务器112A将对服务器模型的更改的指示发送到客户端设备110A。例如,更改的指示可以指示协作电子表格文档的A2处的单元格具有新值“Hello”,该值替代旧值“ipsum”。
在操作253处,响应于接收到对服务器模型的更改的指示,客户端设备110A将更改应用于客户端设备110A处协作电子文档的客户端模型。例如,客户端设备110A将值“Hello”应用于客户端设备110A处的协作电子表格文档的客户端模型的A2处的单元格。
在操作254处,客户端设备110A更新协作电子文档的客户端模型的当前修订号。例如,客户端设备110A可以将客户端模型的版本号从版本3(rev.3)递增到版本4(rev.4)。在更新当前修订号之后,客户端设备110A处的协作电子文档的客户端模型与协作电子文档的服务器模型同步。
图2D是根据本公开的实施例的用于更新归因模型的操作的图。系统200可以包括与图1的系统架构100类似的组件。可以注意到,图1的组件可以用来帮助描述图2B。出于说明而非限制的目的,关于系统200的操作被描述为由服务器112A的归因模块118A、客户端设备110A的归因模块118B、客户端设备110Z的归因模块118Z执行,或者可以由其任何组件执行除非另有说明。为了说明而不是限制,关于图2D描述的操作被示出为顺序地执行。可以注意到,可以以任何顺序执行操作,并且可以与一个或多个其他操作并发执行任何操作。在一些实施方式中,可以以任何顺序执行相同、不同、更少或更多数量的操作。图3D是图示根据本公开的实施例的服务器模型和归因模型的图。图3D的组件被用于帮助描述关于图3D描述的操作。在实施例中,图2D的操作类似于关于图2A描述的操作,并且关于图2A的描述可以被用于为关于图2D描述的操作提供附加细节。
在操作260处,客户端设备110A对协作电子文档的客户端模型进行更改。如图3D中所图示,客户端设备110A的用户在协作电子表格文档的原始列C和列D之间添加列。
在操作261处,客户端设备110A显示包括该更改的协作电子文档的更新的客户端模型。例如,客户端设备110A在GUI中显示包括新列D的协作电子表格文档的更新的客户端模型。新列D右侧的其他列和相关联的单元格已相应地进行调整。
在操作262处,客户端设备110A向服务器112A发送更改请求。更改请求可以包括指示对客户端设备110A处的协作电子文档的客户端模型的坐标结构的更改的命令。例如,服务器112A可以接收更改请求,该更改请求包括指示对存储在客户端设备110A处的协作电子表格文档的客户端模型的坐标结构的尺寸的更改的命令。
在当前示例中,服务器112A可以接收包括第二命令类型的命令(例如,“添加列”)的更改请求,其指示对存储在客户端设备110A的协作电子表格文档的客户端模型的坐标结构的更改。更改请求标识协作电子表格文档的客户端模型的坐标位置、在其之间添加了新列的列C和列D。更改请求还标识添加的列数、客户端模型的当前修订号(例如,rev.4)以及会话标识符。
在操作263处,服务器112A根据命令将更改应用于协作电子文档的服务器模型的坐标结构。例如,在图3D中,用户在协作电子表格文档的客户端模型的原始列C和列D之间插入新列。为了将更改应用于协作电子表格文档的服务器模型310的坐标结构,将新列D添加到协作电子表格文档的服务器模型310,并且D列右侧的列向右位移并且与新坐标标识符相关联。当前版本号是版本4,并且版本标识符可以是rev.4。
在操作264处,服务器112A存储具有应用于协作电子文档的服务器模型的坐标结构的更改的协作电子文档的服务器模型的修订副本。修订副本与当前版本标识符关联。例如,服务器112A存储具有新插入的列的协作电子表格文档的服务器模型的当前状态的修订副本。服务器将修订副本与当前修订标识符rev.4相关联。
在操作265处,服务器112A确定命令的命令类型是否满足命令类型条件(例如,属于预定义的命令类型之一)。在当前实施例中,服务器112A确定该命令的命令类型是更改协作电子文档的坐标结构的第二命令类型。例如,命令“添加列”是更改协作电子表格文档的坐标结构的尺寸的第二命令类型。
在操作266处,响应于确定命令的命令类型满足命令类型条件(例如,属于第二命令类型),服务器112A修改归因模型的坐标结构以将更改反映到坐标协作电子文档的服务器模型的结构。鉴于归因模型的修改后的坐标结构,调整归因模型内容的位置。
例如,在图3D中,通过添加新列D并调整新列D的右侧的单元格的坐标标识符来修改归因模块320的坐标结构。要注意,归因模块320的坐标结构小于服务器模型310的坐标结构。还可以注意到,归因模型的单元格的内容未更新。还可以注意到,针对特定命令类型未生成归因信息。可以注意到,归因模型的坐标位置的内容未更新。在其他实施例中,以与本文所述类似的方式生成和存储用于第二命令类型的归因信息。可以进一步注意到,不同应用可以具有不同命令类型,以响应于归因查询而为其生成、存储并随后检索归因信息。
在操作267处,服务器112A可以更新协作电子文档的服务器模型的当前修订号。例如,服务器112A可以将服务器模型的修订号从修订4(rev.4)递增到修订5(rev.5)。
在操作268处,服务器112A可以向客户端设备110A发送在更改请求中提交的更改已应用于协作电子文档的服务器模型的指示。
在操作269处,响应于接收到在更改请求中提交的更改已应用于协作电子文档的服务器模型的指示,客户端设备110A更新协作电子文档的客户端模型的当前修订号。例如,客户端设备110A可以将客户端模型的版本号从版本4(rev.4)递增到版本5(rev.5)。在更新当前修订号之后,客户端设备110A处的协作电子文档的客户端模型与协作电子文档的服务器模型同步。
在操作270处,服务器112A将对服务器模型的更改的指示发送到客户端设备110Z。例如,更改的指示可以指示在协作电子文档的原始列C和列D之间添加了列。
在操作271处,响应于接收到对服务器模型的更改的指示,客户端设备110Z将更改应用于客户端设备110Z处的协作电子文档的客户端模型。例如,客户端设备110Z在原始列C和原始列D之间插入新列D,并且将列和值位移到列D的右侧。
在操作272处,客户端设备110Z更新协作电子文档的客户端模型的当前修订号。例如,客户端设备110Z可以将客户端模型的修订号从修订4(rev.4)递增到修订5(rev.5)。在更新当前修订号之后,客户端设备110Z处的协作电子文档的客户端模型与协作电子文档的服务器模型同步。
图4是根据本公开的实施例的用于将归因信息提供给客户端设备的操作的图。系统400可以包括与图1的系统架构100类似的组件。可以注意到,图1和图3D的组件可以用来帮助描述图4。为了说明而非限制的目的,关于系统400的操作被描述为由服务器112A的归因模块118A、客户端设备110A的归因模块118B、客户端设备110Z的归因模块118Z执行,或者可以由其任何组件执行,除非另有说明。为了说明而不是限制,关于图4描述的操作被示出为顺序地执行。可以注意到,可以以任何顺序执行操作,并且可以与一个或多个其他操作并发执行任何操作。在一些实施方式中,可以以任何顺序执行相同、不同、更少或更多数量的操作。图5是图示根据本公开的实施例的用于标识归因信息并将其提供给客户端设备的系统500的图。图5的组件被用于帮助描述关于图4描述的操作。
在操作401处,客户端设备110Z经由客户端设备110Z处呈现的图形用户界面(GUI)接收标识协作电子文档的客户端模型的一部分的用户的选择。例如,在图5中,用户选择协作电子表格文档的特定单元格。
在操作402处,客户端设备110Z接收对用于在由用户选择的客户端模型的该部分内的内容的更改的归因信息的用户请求。例如,用户可以在选择协作电子表格文档的单元格时右击,或执行其他类似动作。可以显示图形用户界面元素(例如,下拉菜单、复选框或单选按钮的列表等),该图形用户界面元素允许用户请求所选单元格的归因信息。
在操作403处,客户端设备110Z将归因查询发送到基于云的文档编辑系统的服务器112A,该归因查询请求与协作电子文档的所选部分相关联的归因信息。在实施例中,归因查询包括坐标标识符,该坐标标识符标识协作电子文档的客户端模型的一部分。例如,在图5中,查询包括所选单元格的坐标标识符(例如,x坐标和y坐标)。
在操作404处,服务器112A从归因查询中标识协作电子文档的客户端模型的坐标位置。例如,服务器112A从归因查询中标识所选单元格的x坐标和y坐标。例如,在归因中标识的单元格的坐标位置是位于A2的单元格。
在操作405处,服务器112A标识与协作电子文档相关联的归因模型。例如,在图3D中,服务器112A将归因模型320标识为与特定协作电子文档相关联。
在操作406处,服务器112A使用来自归因查询的客户端模型的坐标标识符来标识与归因模块的相应坐标位置相关联的修订标识符。在一些实施例中,归因模型的坐标位置可以包括多个修订标识符。所选或标识的修订标识符可以取决于归因查询所请求的内容。如果归因查询请求最后一次编辑(例如,最近编辑)的归因信息,则服务器112A可以在具有最大数字的特定坐标位置处标识修订标识符。如果归因查询请求倒数第二次编辑的归因信息,则服务器112A可以使用第二最大数字来标识在特定坐标位置处标识的修订。
在当前示例中,在图5中,归因查询请求单元格A2的最后编辑的归因信息。如图3D中所图示,服务器112A标识修订标识符,rev.3。
在操作407处,服务器112A检索与修订标识符相关联的归因信息。例如,服务器112A使用修订标识符rev.3,以查找存储在数据存储处的相应归因信息。归因信息可以指示客户端设备110Z的用户Z在2019年3月27日晚上7:40对单元格A2做出最后更改。
在操作408处,服务器112A响应于归因查询将归因信息提供给客户端设备。
在操作409处,客户端设备110Z将归因信息呈现给客户端设备110Z的用户。在一些实施例中,客户端设备110Z在GUI中提供呈现归因信息的图形用户界面元素。归因信息可以包括对协作电子文档的客户端模型的一部分的内容作了更改的用户的用户标识符。
在操作410处,客户端设备110Z接收对在由用户所选择的客户端模型的部分内的内容的另一更改(例如,第二最近更改)的附加归属信息的后续用户请求。例如,先前显示的图形用户界面元素可以允许用户检索所选单元格的附加归因信息。
在操作411处,客户端设备110Z将归因查询发送到基于云的文档编辑系统的服务器112A,该归因查询请求与协作电子文档的所选部分的坐标位置相关联的附加归因信息。在实施例中,归因查询包括坐标标识符,该坐标标识符标识协作电子文档的客户端模型的一部分。例如,在图5中,查询包括所选单元格的坐标标识符(例如,x坐标和y坐标)。
在操作412处,服务器112A从归因查询中标识协作电子文档的客户端模型的坐标标识符。例如,服务器112A从归因查询中标识所选单元格的x坐标和y坐标(A2)。
在操作413处,服务器112A标识与协作电子文档相关联的归因模型。例如,在图3D,服务器112A将归因模型320标识为与特定协作电子文档相关联。
在操作414处,服务器112A使用从归因查询获得的客户端模型的坐标标识符来标识与归因模块的相应坐标位置相关联的修订标识符。在实施例中,归因查询请求倒数第二编辑的归因信息。服务器112A可以使用第二最大数字来标识在特定坐标位置处标识的修订。在当前示例中,在图3D中,服务器112A标识修订标识符rev.1。
在操作415处,服务器112A检索与修订标识符相关联的归因信息。例如,服务器112A使用修订标识符rev.1,以查找存储在数据存储中的相应归因信息。归因信息可以指示客户端设备110Z的用户Z在2019年3月26日下午1:20对单元格A2做出最后更改。
在操作416处,服务器112A响应于归因查询将归因信息提供给客户端设备。
在操作417处,客户端设备110Z将归因信息呈现给客户端设备110Z的用户。在一些实施例中,客户端设备110Z经由GUI中的图形用户界面元素来呈现附加归因信息。附加归因信息包括对协作电子文档的客户端模型的部分的内容作了更改(例如,第二最近的更改)的用户的用户标识符。
应当注意,在实施例中,可以将归因信息提供给客户端设备110Z,而不管协作电子文档的任何用户是否调用跟踪更改命令(例如,跟踪对文档的更改的命令)。
图6A-6C是图示根据本公开的实施例的用于向客户设备提供协作电子文档的先前内容的服务器模型和归因模型的图。关于图6A-6C描述的操作类似于关于图2A-2D和图3A-3D描述的操作。为了清楚起见,关于图2A-2D和图3A-图3D描述的许多操作和组件在这里不再重复。关于图2A-图2D和图3A-图3D描述的操作和组件可以应用于图6A-图6C的图,除非另外描述。图6A-6C的图示出如何更新与归因模型620的坐标位置相关联的数据以允许检索先前内容(例如,值)并将其作为归因信息的一部分提供给客户端设备。
图6A对应于图2B。在图6A中,客户端设备110A的用户将内容“ipsum”键入到协作电子表格文档的客户端模型中。在一些实施例中,客户端设备110A可以向服务器112A发送包括第一命令类型的命令的更改请求。该命令可以指示内容“ipsum”已添加到协作电子表格文档的客户端模型的D3处的单元格。协作电子表格文档的当前修订为修订2(例如,rev.2)。服务器112A可以将相应的更改应用于协作电子表格文档的服务器模型610。服务器112A可以存储服务器模型的修订副本,并将该修订副本与当前修订标识符rev.2相关联。服务器112A可以确定该命令满足命令条件(例如,该命令的命令类型是第一命令类型)。响应于确定命令的命令类型是第一命令类型,服务器112A可以更新归因模块620的相应坐标位置。
在一些实施例中,为了更新归因模块620的相应坐标位置,服务器用在协作电子表格文档的服务器模型610处应用了更改的位置坐标的当前版本标识符(例如,rev.2)和坐标标识符(例如,D2)更新相应坐标位置。在一些实施例中,为了更新归因模块620的相应坐标位置,服务器用被更新的(归因模型的)坐标位置的当前修订标识符(例如,rev.2)和相应坐标标识符(例如,D2)更新相应坐标位置(与在协作电子表格文档的服务器模型610处应用了更改的坐标标识符(例如,D2)相同)。
在一些实施例中,服务器112A生成对应于当前修订的归因信息。例如,归因信息可以是时间A的用户A。归因信息与当前版本标识符相关联存储。
在一些实施例中,在归因模块620处使用的当前修订号被标识为当前修订号。例如,在归因模型620中,当前修订号由“R:2”标识。在一些实施例中,在归因模型620处使用的坐标标识符被标识为当前坐标位置。例如,在归因模型620中,当前坐标位置由“C:D2”标识。
服务器112A可以将协作电子表格文档的服务器模型的版本号从当前修订号2(rev.2)更新到修订号3(rev.3)。
图6B对应于图2D。在图6B中,客户端设备110Z的用户对协作电子表格文档的客户端模型的坐标结构进行修改。例如,客户端设备110Z的用户删除协作电子表格文档的客户端模型的列B(而不是如图2D中那样添加列)。客户端设备110Z向服务器112A发送包括更改协作电子表格文档的坐标结构的第二命令类型的命令的更改请求。服务器112A接收该命令,并将更改应用于协作电子表格文档的服务器模型610。例如,移除服务器模型610的列B,并且将列B右侧的单元格向左位移,并相应地修改位移后的单元格的坐标位置的坐标标识符。服务器112A确定命令的命令类型满足第二命令类型的条件,并采取适当的动作来修改归因模块620。例如,归因模块620的坐标结构被修改以反映协作电子表格文档的服务器模型610的坐标结构中的更改。移除归因模型620的列B,并且将列B右侧的单元格(及其内容)向左位移,并相应地修改位移后的单元格的坐标标识符。可以注意到,服务器模型610和归因模块620的坐标位置的内容均未更改。服务器112A可以存储服务器模型的修订副本,并将该修订副本与当前修订标识符rev.3相关联。服务器112A可以将协作电子表格文档的服务器模型的修订号从当前修订号3(rev.3)更新为修订号4(rev.4)。
图6C对应于图2C。在图6C中,客户端设备110Z的用户将内容“Lorem”键入到协作电子表格文档的客户端模型的单元格C2中,该内容替换先前内容“ipsum”。在一些实施例中,客户端设备110Z可以向服务器112A发送包括第一命令类型的命令的更改请求。该命令可以指示内容“Lorem”已替换协作电子表格文档的客户端模型的C2处的单元格的先前内容。协作电子表格文档的当前修订为修订4(例如,rev.4)。服务器112A可以将相应更改应用于协作电子表格文档的服务器模型610。服务器112A可以存储服务器模型的修订副本,并将该修订副本与当前修订标识符rev.4相关联。服务器112A可以确定命令满足命令条件(例如,命令的命令类型是第一命令类型)。响应于确定命令的命令类型是第一命令类型,服务器112A可以更新归因模块620的相应坐标位置。
在一些实施例中,为了更新归因模块620的相应坐标位置,服务器用在将更改应用于协作电子表格文档的服务器模型610的坐标位置的当前版本标识符(例如,rev.4)和坐标标识符(例如,C2)更新相应坐标位置。在一些实施例中,为了更新归因模块620的相应坐标位置,服务器用正在更新的归因模型的坐标位置的当前修订标识符(例如,rev.4)和相应坐标标识符(例如,C2)更新相应坐标位置。
在一些实施例中,服务器112A生成与当前修订相对应的归因信息。例如,归因信息可以是用户Z在时间Z。归因信息与当前版本标识符相关联存储。
在一些实施例中,与归因模型620的坐标位置相关联的当前修订号被标识为当前修订号。例如,在归因模型620中,当前修订号由“R:4”标识。在实施例中,在归因模块620处使用的先前修订号被保留并且被标识为先前修订号。例如,在归因模型620中,先前修订号被标识为“PR:2”。在一些实施例中,在归因模型620处使用的坐标标识符被用于标识当前坐标位置。例如,在归因模块620中,当前坐标位置由“C:C2”标识。在实施例中,在归因模型620的坐标位置中使用的先前坐标标识符被用于标识先前坐标位置。例如,在归因模块620中,先前坐标位置由“PC:D2”标识。在一些实施例中,可以以与关于协作电子文档的服务器模型的修订副本所描述的相似的方式来存储归因模块的一个或多个修订副本。在一些实施例中,为了进一步追溯归因历史,可以加载归因模型的较旧修订以确定归因信息。在一些实施例中,可以在归因模型620的坐标位置处存储任何数量的先前修订号或先前坐标标识符。
图7是根据本公开的实施例的用于提供包括协作电子文档的一部分的先前内容的归因信息以用于呈现在客户端设备处的操作的图。系统700可以包括与图1的系统架构100类似的组件。可以注意到,图1以及图6A-6C和图8A-8B的组件可以被用于帮助描述图7。出于说明而非限制的目的,关于系统700的描述被描述为由服务器112A的归因模块118A、客户端设备110A的归因模块118B、客户端设备110Z的归因模块118Z执行,或者可以由其任何组件执行,除非另有说明。为了说明而不是限制,关于图7描述的操作被示出以被顺序地执行。可以注意到,可以以任何顺序执行操作,并且可以与一个或多个其他操作并发地执行任何操作。在一些实施方式中,可以以任何顺序执行相同、不同、更少或更多数量的操作。图8A-8B图示根据本公开的实施例的允许用户检索归因信息的图形用户界面。可以注意到,除了关于图7所描述的操作之外,关于图8A-图8B描述的GUI还可以与本公开的任何方面一起使用。
在操作701处,客户端设备110Z经由客户端设备110Z处呈现的图形用户界面(GUI)接收标识协作电子文档的客户端模型的一部分的用户的选择。例如,在图8A中,用户选择协作电子表格文档的特定单元格。该单元格包含内容“Lorem”。
在操作702处,客户端设备110Z接收对由用户选择的客户端模型部分内的内容的最近更改的归因信息的用户请求。例如,在图8A中,用户可以在选择协作电子表格文档的单元格时右击。可以显示图形用户界面元素,该图形用户界面元素提供相对于所选单元格而对用户可用的一个或多个命令选项。如所图示的,在选项“显示编辑历史”上,允许用户检索所选单元格的归属信息的历史记录。用户可以选择“显示编辑历史记录”命令选项来检索与所选单元格相关联的归因信息。
在操作703处,客户端设备110Z将归因查询发送到基于云的文档编辑系统的服务器112A,该归因查询请求与协作电子文档的所选部分相关联的归因信息。在实施例中,归因查询包括坐标标识符,该坐标标识符标识协作电子文档的客户端模型的一部分。例如,在图8A中,查询包括所选单元格的坐标标识符(例如,x坐标和y坐标)。例如,坐标标识符是C2。
在操作704处,服务器112A从归因查询中标识协作电子文档的客户端模型的坐标位置。例如,服务器112A从归因查询中标识所选单元格的x坐标和y坐标。
在操作705处,服务器112A标识与协作电子文档相关联的归因模型。例如,在图6C中,服务器112A将归因模型620标识为与特定协作电子文档相关联。
在操作706处,服务器112A使用从归因查询中标识的客户端模型的坐标位置的坐标标识符来标识与该归因模块的相应坐标位置相关联的最近修订标识符。在当前示例中,在图6C中,归因查询请求单元格C2的最后编辑的归因信息。如图6C中所图示,服务器112A将修订标识符rev.4(例如,“R:4”)标识为与上一次编辑相关联的修订标识符。
在操作707处,服务器112A检索与修订标识符关联的归因信息。例如,服务器112A使用修订标识符rev.4,以查找存储在数据存储中的相应归因信息。归因信息可以指示客户端设备110Z的用户Z在2019年3月25日下午2:36在C2处的单元格做出最后更改。
在操作708处,服务器标识在归因模型的相应坐标位置处的第二最近修订标识符。例如,在图6C中,服务器112A读取归因模型620的C2处的单元格并标识先前修订号rev.2(例如“PR:2”)。
在操作709处,服务器112A标识在归属模型处与第二最近修订标识符相关联的坐标标识符。例如,在图6C中,服务器读取归因模型630的C2处的单元格,并标识与先前修订号rev.2(例如,“PR:2”)相关联的坐标标识符先前坐标位置(在D2处的单元格)(例如,“PC:D2”)。
在操作710处,服务器112A读取与先前修订号相关联的协作电子文档的服务器模型的修订副本处的先前坐标位置的内容。例如,服务器112A可以查找与先前修订号rev.2(例如,“PR:2”)相关联的协作电子表格文档的服务器模型的修订副本。服务器112A可以读取修订副本的先前坐标位置(D2处的单元格)的内容。在当前示例中,与rev.2相关联的修订副本的D2处的单元格的内容是“ipsum”,如图6A中所图示。
在操作711处,服务器112A响应于归因查询将归因信息提供给客户端设备。在一些实施例中,归因信息包括做出更改的作者、更改的时间戳以及由用户选择的协作电子文档的部分的当前内容、以及由用户选择的协作电子文档的该部分的先前内容。
在操作712处,客户端设备110Z将归因信息呈现给客户端设备110Z的用户。在一些实施例中,客户端设备110Z在GUI中提供呈现归因信息的图形用户界面元素。例如,在图8B中,GUI中的图形用户界面元素示出“用户Z”在3月25日下午2:36做出最后编辑,并且该编辑用当前内容“Lorem”替换先前内容“ipsum”。可以注意到,图形用户界面元素包括允许用户查看协作电子表格文档的所选部分的归因信息的历史的向右箭头和向左箭头。例如,用户可以选择向左箭头来确定倒数第二编辑(例如,第二最近编辑)的归因信息等等。关于图7描述的操作可以被重复以允许用户接收归因信息的历史记录。
图9是图示根据本公开的实施例的用于生成归因模型以跟踪协作电子文档中的内容的归因信息并将归因信息提供给客户端设备的方法900的流程图。方法900可以由包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码)、软件(例如,在处理设备上运行以执行硬件仿真的指令)或其组合的处理逻辑来执行。在一些实施例中,在客户端设备110处执行的归因模块118可以执行一些或所有操作。在其他实施例中,在服务器112处执行的归因模块118可以执行一些或所有操作。在一些实施例中,在客户端设备110和一个或多个服务器112处执行的归因模块118可以执行一些或全部操作。可以注意到,在一些实施例中,方法900可以包括以任何顺序执行的相同、不同、更少或更多数量的操作。
在框902处,处理逻辑执行方法900接收在协作电子文档的客户端模型的第一坐标位置处的第一更改的指示(例如,作为命令的一部分)。第一坐标位置在协作电子文档的坐标结构内。在框904处,处理逻辑在协作电子文档的服务器模型的第二坐标位置处应用第一更改。服务器模型的第二坐标位置对应于客户端模型的第一坐标位置。第一个更改与修订标识符关联。
在一些实施例中,处理逻辑将具有第一更改的协作电子文档的服务器模型的修订副本存储在第二坐标位置。修订副本与修订标识符相关联。
在一些实施例中,处理逻辑确定命令的命令类型是否满足命令类型条件。响应于确定命令的命令类型满足命令类型条件而生成归因模型。
在框906处,处理逻辑生成包括与协作电子文档的坐标结构的至少一部分相对应的坐标结构的归因模型。归因模型包括与第一坐标位置和第二坐标位置相对应的第三坐标位置。
在一些实施例中,为了生成包括与协作电子文档的坐标结构的至少一部分相对应的坐标结构的归因模块,处理逻辑生成具有比协作电子文档的坐标结构小的坐标结构的归因模块。
在框908处,处理逻辑用修订标识符更新归因模型的第三坐标位置。
在框910处,处理逻辑与修订标识符相关联地存储用于第一更改的归因信息。在一些实施例中,归因信息包括对与第一更改相关联的用户以及与第一更改相关联的时间戳的指示。
在一些实施例中,处理逻辑接收指示对协作电子文档的坐标结构的更改的命令。处理逻辑应用对协作电子文档的服务器模型的坐标结构的更改。对协作电子文档的坐标结构的更改与第二修订标识符相关联。处理逻辑修改归因模型的坐标结构,以反映对协作电子文档的坐标结构的更改。鉴于归因模型的修改后的坐标结构,调整归因模型内容的位置。
在一些实施例中,处理逻辑存储协作电子文档的服务器模型的修订副本与对协作电子文档的坐标结构的更改。包括对坐标结构的更改的修订副本与第二修订标识符相关联。鉴于命令类型是第二命令类型,处理逻辑抑制使用第一更新的修订标识符来更新归因模块的第三坐标位置。
在框912处,处理逻辑接收归因查询。归因查询请求与协作电子文档的客户端模型的第一坐标位置相关联的归因信息。
在框914处,处理逻辑标识与归因模型的第三坐标位置相关联的修订标识符。使用协作电子文档的客户端模型的第一坐标位置来标识修订标识符。
在框916处,处理逻辑从指定的数据存储中检索与修订标识符相关联的归因信息。
在框918处,响应于归属查询,处理逻辑将归属信息提供给客户端设备。
在一些实施例中,用修订标识符更新归因模块的第三坐标位置进一步包括用第三坐标位置的坐标标识符更新归因模块的第三坐标位置。鉴于归因模型的调整后的坐标结构,将归因模型的第三坐标位置的内容移动到归因模型的第四坐标位置。处理逻辑接收指示在协作电子文档的客户端模型的第五坐标位置处的第二更改的命令。处理逻辑根据命令在协作电子文档的服务器模型的第六坐标位置处应用第二更改。服务器模型的第六坐标位置对应于客户端模型的第五坐标位置。第二更改与第三修订标识符相关联。处理逻辑用第三修订标识符和第四坐标位置的坐标标识符更新归因模块的第四坐标位置。处理逻辑与第三修订标识符相关联地存储第二更改的归因信息。
在实施例中,处理逻辑接收对与协作电子文档的客户端模型的第五坐标位置相关联的归因信息的请求。处理逻辑使用协作电子文档的客户端模型的第五坐标位置来标识与归因模型的第四坐标位置相关联的第一修订标识符、第三修订标识符和第三坐标位置的坐标标识符。处理逻辑检索与第三修订标识符相关联的归因信息。处理逻辑使用第一修订标识符来检索协作电子文档的服务器模型的第一修订副本。处理逻辑使用归因模型的第三坐标位置的坐标标识符来标识协作电子文档的服务器模型的第二坐标位置的第一更改。处理逻辑响应于该请求而将归因信息提供给客户端设备。归因信息包括第一更改。
图10是图示根据本公开的实施例的用于在用户设备处呈现归因信息的方法1000的流程图。方法1000可以由包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码)、软件(例如,在处理设备上运行以执行硬件仿真的指令)或其组合的处理逻辑来执行。在一些实施例中,在客户端设备110处执行的归因模块118可以执行一些或所有操作。在其他实施例中,在服务器112处执行的归因模块118可以执行一些或所有操作。在一些实施例中,在客户端设备110和服务器112处执行的归因模块118可以执行一些或全部操作。可以注意到,在一些实施例中,方法1000可以包括以任何顺序执行的相同、不同、更少或更多数量的操作。
在框1002处,处理逻辑执行方法1000经由在客户端设备处呈现的图形用户界面(GUI)接收标识协作电子文档的客户端模型的一部分的用户的选择。协作电子文档由基于云的文档编辑系统托管。协作电子文档可由多个用户并发编辑。
在框1004处,处理逻辑接收对由多个用户中的用户选择的客户端模型的一部分内的内容的更改的归因信息的用户请求。
在一些实施例中,响应于接收到对归因信息的用户请求,处理逻辑将归因查询发送到基于云的文档编辑系统,该归因查询请求归因信息。归因查询包括第一坐标标识符,该第一坐标标识符标识协作电子文档的客户端模型的一部分。
在框1006处,处理逻辑经由GUI中的图形用户界面元素呈现归因信息。归因信息包括最近更改了协作电子文档的客户端模型的部分内容的用户的用户标识符。
在一些实施例中,协作电子文档包括具有包括被布置为创建多个单元格的一个或多个行和一个或多个列的坐标结构的协作电子表格文档。由用户选择的协作电子文档的客户端模型部分包括协作电子表格文档的单元格。
在一些实施例中,多个用户中没有一个已经调用命令来跟踪应用于协作电子文档的该部分的更改。
在一些实施例中,处理逻辑经由图形用户界面接收对由多个用户中的用户选择的客户端模型的一部分内的内容的另一更改的附加归因信息的后续用户请求。响应于接收到对附加归因信息的后续用户请求,处理逻辑在GUI中的图形用户界面元素处呈现附加归因信息,该附加归因信息包括提供对协作电子文档的客户端模式的部分内容的其他更改的用户的用户标识。
图11描绘根据本公开的一个或多个方面操作的示例计算系统的框图。在各种说明性示例中,计算机系统1100可以与图1的系统架构1100内的计算设备中的任一个相对应。在一个实施例中,计算机系统1100可以是服务器112A-112Z中的每一个。在另一实施方式中,计算机系统1100可以是客户端设备110A-110Z中的每一个。
在某些实施例中,计算机系统1100可以(例如,经由诸如局域网(LAN)、内联网、外联网、或互联网的网络)连接到其它计算机系统。计算机系统1100可以在客户端-服务器环境中以服务器或客户端计算机的身份操作,或者在对等或分布式网络环境中作为对等计算机操作。计算机系统1100可以由能够执行指定要由该设备采取的动作的指令集合(顺序的或其它的)的个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web电器、服务器、网络路由器、交换机或桥接器、或任何设备来提供。另外,术语“计算机”应当包括单独地或联合地执行一个(或多个)指令集合以执行本文中描述的方法中的任何一个或多个的计算机的任何合集。
在另一个方面中,计算机系统1100可以包括处理设备1102、易失性存储器1104(例如,随机存取存储器(RAM))、非易失性存储器1106(例如,只读存储器(ROM)或电可擦除可编程ROM(EEPROM))、和数据存储设备1116,其可以经由总线1108彼此通信。
处理设备1102可以由诸如以下各项目的一个或多个处理器提供:通用处理器(诸如例如,复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、甚长指令字(VLIW)微处理器、实现其它类型的指令集的微处理器,或实现各种类型的指令集的组合的微处理器)或专用处理器(诸如例如,专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、或网络处理器)。
计算机系统1100还可以包括网络接口设备1122。计算机系统1100还可以包括视频显示单元1110(例如,LCD)、字母数字输入设备1112(例如,键盘)、光标控制设备1114(例如,鼠标)和信号生成设备1120。
数据存储设备1116可以包括计算机可读存储介质1124(可以是非暂时性计算机可读存储介质,尽管本公开不限于此),其存储对本文中描述的方法或功能中的任何一个或多个进行编码的指令1126,其包括实现用于实现本文中描述的任意方法的图1的归因模块118(118A-118Z)的指令。
指令1126还可以在其由计算机系统1100执行期间完全地或部分地驻留在易失性存储器1104内和/或在处理设备1102内,因此,易失性存储器1104和处理设备1102还可以构成机器可读存储介质。
虽然计算机可读存储介质1124在说明性示例中作为单个介质被示出,但是术语“计算机可读存储介质”应当包括存储一个或多个可执行指令集合的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应当包括能够存储指令集合或者对指令集合进行编码以用于由计算机执行的的任何有形介质,所述指令使计算机执行本文中描述的方法中的任何一个或多个。术语“计算机可读存储介质”应当包括但不限于固态存储器、光介质、和磁介质。
在前面的描述中,阐述了许多细节。然而,对于受益于本公开的本领域的普通技术人员而言将显而易见的是,能够在没有这些具体细节的情况下实践本公开。在一些情况下,众所周知的结构和设备是以框图形式而不是详细地示出,以便避免使本公开模糊。
已经在对计算机存储器内的数据比特的操作的算法和符号表示方面呈现了详细描述的一些部分。这些算法描述和表示是由数据处理领域的技术人员使用来最有效地将其工作的实质传达给本领域的其它技术人员的手段。算法在这里且一般地被认为是导致期望结果的步骤的自相一致序列。这些步骤是要求物理量的物理操纵的步骤。通常,尽管不一定,然而这些量采取能够被存储、转移、组合、比较并以其它方式操纵的电信号或磁信号的形式。出于通用的原因,有时将这些信号称为比特、值、元素、符号、字符、项、数字等已经证明是方便的。
然而,能够记住的是,所有这些和类似的术语将与适当的物理量相关联并且仅仅是应用于这些量的方便标签。除非像从以下讨论中显而易见的那样具体地陈述,否则应当显而易见的是在整个说明书中,利用诸如“接收”、“应用”、“生成”、“更新”、“存储”、“接收”、“标识”、“检索”、“提供”、“确定”、“修改”“抑制”、“呈现”、“发送”等的术语的讨论指的是计算机系统或类似的电子计算设备的动作和过程,所述计算机系统或类似的电子计算设备将表示为计算机系统的寄存器和存储器内的物理(例如,电子)量的数据操纵并转换成类似地表示为计算机系统存储器或寄存器或其它这种信息存储、传输或显示设备内的物理量的其它数据。
为了说明的简单,方法在本文中被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种次序发生和/或同时并且与在本文中未呈现和描述其它动作一起发生。此外,能够不要求所有图示的动作来实现根据所公开的主题的方法。此外,本领域的技术人员应当理解并显而易见的是,这些方法能可替选地经由状态图或事件被表示为一系列相关状态。附加地,应当显而易的是,本说明书中公开的方法能够被存储在制品上以方便将此类方法输送并转移到计算设备。如本文中所使用的术语制品旨在包含可从任何计算机可读设备或存储介质访问的计算机程序。
本公开的某些实施例还涉及一种用于执行本文的操作的装置。此装置能够被构造用于预定目的,或者它能够包括通过在计算机中存储的计算机程序选择性地激活或者重新配置的通用计算机。这种计算机程序能够被存储在计算机可读存储介质中,所述计算机可读存储介质诸如但不限于包括软盘、光盘、CD-ROM、和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡的任何类型的盘,或适合于存储电子指令的任何类型的介质。
词语“示例”或“示例性”在本文中用于表示充当示例、实例或说明。本文描述为“示例”或“示例性”的任何方面或设计未必解释为比其它方面或设计优选或有利。相反,使用词语“示例”或“示例性”旨在以具体方式呈现概念。如本申请中使用的,术语“或”旨在表示包括性“或”,而不是排他性“或”。也就是说,除非另外指定或从上下文中清楚可知,否则“X包括A或B”旨在表示任何自然的包括性置换。也就是说,如果X包括A;X包括B;或X包括A和B两者,则“X包括A或B”满足任何前述情况。另外,本申请和所附权利要求书中使用的冠词“一”和“一个”一般应解释为表示“一个或多个”,除非另外指定或从上下文清楚地指示为单数形式。此外,除非如此描述,否则贯穿全文使用术语“一实施方式”或“一个实施方式”或“一实施例”或“一个实施例”并不意图表示相同的实施例或实施方案。本文描述的一个或多个实施方式或实施例可以在特定的实施方式或实施例中进行组合。如本文中所使用的,术语“第一”、“第二”、“第三”、“第四”等意指用于在不同元件之间进行区分的标签,并且根据它们的数字名称不一定具有序数含义。
应当理解的是,以上描述旨在为说明性的,而不是限制性的。在阅读和理解以上描述后,许多其它实施例对于本领域的技术人员而言将是显而易见的。因此,能够参考所附权利要求以及此类权利要求所赋予的等同物的完全范围来确定本公开的范围。

Claims (20)

1.一种方法,包括:
由托管协作电子文档的服务器接收对在所述协作电子文档的客户端模型的第一坐标位置处的第一更改的指示,其中,所述第一坐标位置在所述协作电子文档的坐标结构内;
在所述协作电子文档的服务器模型的第二坐标位置处应用所述第一更改,其中所述服务器模型的第二坐标位置与所述客户端模型的第一坐标位置相对应,并且其中所述第一更改与第一修订标识符相关联;
生成归因模型,所述归因模型包括与所述协作电子文档的坐标结构的至少一部分相对应并且包括与所述第一坐标位置和所述第二坐标位置相对应的第三坐标位置的坐标结构;
用所述第一修订标识符更新所述归因模型的第三坐标位置;以及
与所述第一修订标识符相关联地存储用于所述第一更改的归因信息。
2.根据权利要求1所述的方法,进一步包括:
从客户端设备接收归因查询,所述归因查询请求与所述协作电子文档的客户端模型的第一坐标位置相关联的所述归因信息;
使用所述协作电子文档的客户端模型的第一坐标位置的坐标标识符来标识与所述归因模型的第三坐标位置相关联的所述第一修订标识符;
从数据存储中检索与所述第一修订标识符相关联的所述归因信息;以及
响应于所述归因查询将所述归因信息提供给所述客户端设备。
3.根据权利要求1所述的方法,其中对所述协作电子文档的客户端模型的第一坐标位置处的所述第一更改的指示被提供有具有命令类型的命令,其中所述方法进一步包括:
确定所述命令的命令类型是否满足命令类型条件,其中,响应于确定所述命令的命令类型满足所述命令类型条件来生成所述归因模型。
4.根据权利要求1所述的方法,其中所述归因信息包括对与所述第一更改相关联的用户账户和与所述第一更改相关联的时间戳的指示。
5.根据权利要求1所述的方法,进一步包括:
存储具有在所述第二坐标位置处的所述第一更改的所述协作电子文档的服务器模型的修订副本,其中,所述修订副本与所述第一修订标识符相关联。
6.根据权利要求1所述的方法,其中生成包括与所述协作电子文档的坐标结构的至少一部分相对应并且包括与所述第一坐标位置和所述第二坐标位置相对应的所述第三坐标位置的所述坐标结构的归因模型包括:
生成包括比所述协作电子文档的坐标结构更小的坐标结构的所述归因模型。
7.根据权利要求1所述的方法,进一步包括:
从客户端设备接收指示对所述协作电子文档的坐标结构的更改的命令;
由所述服务器应用对所述协作电子文档的坐标结构的所述更改,其中,对所述协作电子文档的坐标结构的所述更改与第二修订标识符相关联,以及
修改所述归因模型的坐标结构以将所述更改反映到所述协作电子文档的坐标结构,其中,鉴于所述归因模型的修改后的坐标结构来调整所述归因模型的内容的位置。
8.根据权利要求7所述的方法,进一步包括:
存储具有对所述协作电子文档的坐标结构的所述更改的所述协作电子文档的服务器模型的修订副本,其中,包括对所述坐标结构的所述更改的所述修订副本与所述第二修订标识符相关联;和
抑制用所述第二修订标识符更新所述归因模型的第三坐标位置。
9.根据权利要求7所述的方法,其中用所述修订标识符更新所述归因模型的第三坐标位置进一步包括用所述第三坐标位置的坐标标识符更新所述归因模型的第三坐标位置,其中,鉴于所述归因模型的调整后的坐标结构,将所述归因模型的第三坐标位置的内容移动到所述归因模型的第四坐标位置,所述方法进一步包括:
由所述服务器接收指示在所述协作电子文档的客户端模型的第五坐标位置处的第二更改的命令;
根据所述命令在所述协作电子文档的服务器模型的第六坐标位置处应用所述第二更改,其中所述服务器模型的第六坐标位置对应于所述客户端模型的第五坐标位置,并且其中所述第二更改与所述第三修订标识符相关联;
用所述第二更新的修订标识符和所述第四坐标位置的坐标标识符更新所述归因模型的第四坐标位置;以及
在数据存储中与所述第三修订标识符相关联地存储用于所述第二更改的归因信息。
10.根据权利要求9所述的方法,进一步包括:
从客户端设备接收对与所述协作电子文档的客户端模型的第五坐标位置相关联的所述归因信息的请求;
使用所述协作电子文档的所述客户端模型的第五坐标位置的坐标位置来标识与所述归因模型的第四坐标位置相关联的所述第一修订标识符、所述第三修订标识符和所述第三坐标位置的坐标标识符;
检索与所述第三修订标识符相关联的所述归因信息;
使用所述第一修订标识符来检索所述协作电子文档的服务器模型的第一修订副本;
使用所述归因模型的第三坐标位置的坐标标识符来标识所述协作电子文档的服务器模型的第二坐标位置处的所述第一更改;以及
响应于所述请求将所述归因信息提供给所述客户端设备,其中所述归因信息包括所述第一更改。
11.一种方法,包括:
经由在客户端设备处呈现的图形用户界面(GUI)接收用户对协作电子文档的客户端模型的一部分的选择,其中,所述协作电子文档由基于云的文档编辑系统托管,并且其中所述协作电子文档可由包括所述用户的多个用户并发编辑;
接收对在由所述多个用户中的所述用户选择的所述客户端模型的所述部分内的内容的更改的归因信息的用户请求;以及
响应于接收到对所述归因信息的用户请求,经由所述GUI中的图形用户界面元素呈现所述归因信息,所述归因信息包括对所述协作电子文档的客户端模型的所述部分的内容作了更改的用户的用户账户标识符。
12.根据权利要求11所述的方法,其中所述协作电子文档包括具有包括一个或者多个行和一个或者多个列的协作结构的协作电子表格文档,其中,由所述用户选择的所述协作电子文档的客户端模型的所述部分包括所述协作电子表格文档的单元格。
13.根据权利要求11所述的方法,其中所述多个用户中没有一个用户已经调用命令来跟踪应用于所述协作电子文档的所述部分的更改。
14.根据权利要求11所述的方法,进一步包括:
响应于接收到对所述归因信息的所述用户请求,向所述基于云的文档编辑系统发送请求所述归因信息的归因查询,其中,所述归因查询包括第一坐标位置的坐标标识符,其中,所述坐标标识符标识所述协作电子文档的客户端模型的所述部分。
15.根据权利要求11所述的方法,进一步包括:
经由所述图形用户界面接收对由所述多个用户中的所述用户选择的所述客户端模型的所述部分内的内容的另一更改的附加归因信息的后续用户请求;和
响应于接收到对所述附加归因信息的所述后续用户请求,在所述GUI中的所述图形用户界面元素处呈现所述附加归因信息,所述附加归因信息包括提供所述协作电子文档的客户端模式的所述部分的内容的其他更改的用户的用户账户标识符。
16.一种系统,包括:
存储器;和
耦合到所述存储器的处理设备,所述处理设备:
由所述处理设备接收对在所述协作电子文档的客户端模型的第一坐标位置处的第一更改的指示,其中,所述第一坐标位置在所述协作电子文档的坐标结构内;
在所述协作电子文档的服务器模型的第二坐标位置处应用所述第一更改,其中所述服务器模型的第二坐标位置与所述客户端模型的第一坐标位置相对应,并且其中所述第一更改与第一修订标识符相关联;
生成归因模型,所述归因模型包括与所述协作电子文档的坐标结构的至少一部分相对应并且包括与所述第一坐标位置和所述第二坐标位置相对应的第三坐标位置的坐标结构;
用所述第一修订标识符更新所述归因模型的第三坐标位置;并且
与所述第一修订标识符相关联地存储用于所述第一更改的归因信息。
17.根据权利要求16所述的系统,所述处理设备进一步:
从客户端设备接收归因查询,所述归因查询请求与所述协作电子文档的客户端模型的第一坐标位置相关联的所述归因信息;
使用所述协作电子文档的客户端模型的第一坐标位置的坐标标识符来标识与所述归因模型的第三坐标位置相关联的所述第一修订标识符;
从数据存储中检索与所述第一修订标识符相关联的所述归因信息;以及
响应于所述归因查询将所述归因信息提供给所述客户端设备。
18.根据权利要求16所述的系统,其中对在所述协作电子文档的客户端模型的第一坐标位置处的所述第一更改的指示被提供有具有命令类型的命令,所述处理设备进一步:
确定所述命令的命令类型是否满足命令类型条件,其中,响应于确定所述命令的命令类型满足所述命令类型条件来生成所述归因模型。
19.根据权利要求16所述的系统,其中所述处理设备进一步:
存储具有在所述第二坐标位置处的所述第一更改的所述协作电子文档的服务器模型的修订副本,其中所述修订副本与所述第一修订标识符相关联。
20.根据权利要求16所述的系统,其中所述处理设备进一步:
从客户端设备接收指示对所述协作电子文档的坐标结构的更改的命令;
将所述更改应用于所述协作电子文档的坐标结构,其中,对所述协作电子文档的坐标结构的所述更改与第二修订标识符相关联;并且
修改所述归因模型的坐标结构以反映对所述协作电子文档的坐标结构的更改,其中,鉴于所述归因模型的修改后的坐标结果调整所述归因模型的内容的位置。
CN201980057904.9A 2019-04-08 2019-04-08 跟踪在线协作电子文档中的内容归因 Pending CN112654995A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/026370 WO2020209832A1 (en) 2019-04-08 2019-04-08 Tracking attribution of content in an online collaborative electronic document

Publications (1)

Publication Number Publication Date
CN112654995A true CN112654995A (zh) 2021-04-13

Family

ID=66248780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980057904.9A Pending CN112654995A (zh) 2019-04-08 2019-04-08 跟踪在线协作电子文档中的内容归因

Country Status (4)

Country Link
US (2) US11645455B2 (zh)
EP (1) EP3827370A1 (zh)
CN (1) CN112654995A (zh)
WO (1) WO2020209832A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020181152A1 (en) * 2019-03-05 2020-09-10 Farrokh Shokooh Utility network project modeling & management
CN113535434A (zh) * 2021-07-22 2021-10-22 北京字跳网络技术有限公司 一种数据节点的协同编辑方法、装置、存储介质及设备
US20230205904A1 (en) * 2021-12-29 2023-06-29 Microsoft Technology Licensing, Llc Enhanced security features for controlling access to shared content and private content of a shared document
US20240012986A1 (en) * 2022-07-06 2024-01-11 Microsoft Technology Licensing, Llc Enhanced Spreadsheet Presentation Using Spotlighting and Enhanced Spreadsheet Collaboration Using Live Typing

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030112273A1 (en) * 2001-12-17 2003-06-19 Workshare Technology, Ltd. Document collaboration suite using a common database
US20050033811A1 (en) * 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
US20080222510A1 (en) * 2007-03-08 2008-09-11 Huy Nguyen Method and system for generating a history log associated with a spreadsheet
US20110252312A1 (en) * 2010-04-12 2011-10-13 Google Inc. Real-Time Collaboration in a Hosted Word Processor
CN102999482A (zh) * 2011-12-12 2013-03-27 微软公司 用于管理协作文档的技术
US20140032488A1 (en) * 2009-01-22 2014-01-30 Adobe Systems Incorporated Method and apparatus for processing collaborative documents
US20140372852A1 (en) * 2013-06-15 2014-12-18 Microsoft Corporation Showing Presence of Multiple Authors in a Spreadsheet
CN104798066A (zh) * 2012-11-27 2015-07-22 谷歌公司 检测编辑之间的关系并且对编辑的子集有所行动
US20160162461A1 (en) * 2014-12-04 2016-06-09 Google Inc. Efficient copy paste in a collaborative spreadsheet
CN108604155A (zh) * 2016-03-04 2018-09-28 微软技术许可有限责任公司 在用户之间管理消息以协作编辑电子文档
US20190097823A1 (en) * 2017-09-25 2019-03-28 Microsoft Technology Licensing, Llc Asynchronous collaboration for a synchronous collaboration environment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436927B2 (en) * 2008-03-14 2016-09-06 Microsoft Technology Licensing, Llc Web-based multiuser collaboration
US11036712B2 (en) * 2016-01-12 2021-06-15 Microsoft Technology Licensing, Llc. Latency-reduced document change discovery
US10175955B2 (en) * 2016-01-13 2019-01-08 Hamilton Sundstrand Space Systems International, Inc. Spreadsheet tool manager for collaborative modeling

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030112273A1 (en) * 2001-12-17 2003-06-19 Workshare Technology, Ltd. Document collaboration suite using a common database
US20050033811A1 (en) * 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
US20080222510A1 (en) * 2007-03-08 2008-09-11 Huy Nguyen Method and system for generating a history log associated with a spreadsheet
US20140032488A1 (en) * 2009-01-22 2014-01-30 Adobe Systems Incorporated Method and apparatus for processing collaborative documents
US20110252312A1 (en) * 2010-04-12 2011-10-13 Google Inc. Real-Time Collaboration in a Hosted Word Processor
CN102999482A (zh) * 2011-12-12 2013-03-27 微软公司 用于管理协作文档的技术
CN104798066A (zh) * 2012-11-27 2015-07-22 谷歌公司 检测编辑之间的关系并且对编辑的子集有所行动
US20140372852A1 (en) * 2013-06-15 2014-12-18 Microsoft Corporation Showing Presence of Multiple Authors in a Spreadsheet
US20160162461A1 (en) * 2014-12-04 2016-06-09 Google Inc. Efficient copy paste in a collaborative spreadsheet
CN108604155A (zh) * 2016-03-04 2018-09-28 微软技术许可有限责任公司 在用户之间管理消息以协作编辑电子文档
US20190097823A1 (en) * 2017-09-25 2019-03-28 Microsoft Technology Licensing, Llc Asynchronous collaboration for a synchronous collaboration environment

Also Published As

Publication number Publication date
US11645455B2 (en) 2023-05-09
US20220050961A1 (en) 2022-02-17
WO2020209832A1 (en) 2020-10-15
US20230229857A1 (en) 2023-07-20
EP3827370A1 (en) 2021-06-02

Similar Documents

Publication Publication Date Title
US20220335206A1 (en) Managing comments on binary files preview view in a cloud-based environment
US11645455B2 (en) Tracking attribution of content in an online collaborative electronic document
JP6293142B2 (ja) データを消費型コンテンツに変換するときにバリエーションを生じさせること
US9208216B2 (en) Transforming data into consumable content
US20150193492A1 (en) Editing sub-section of an electronic document via notification message
EP3646168B1 (en) Code review rebase diffing
US20140025650A1 (en) Abstract relational model for transforming data into consumable content
US11579866B2 (en) Developer collaboration control system
US10198411B2 (en) Storing additional document information through change tracking
US10740367B2 (en) Displaying an indication of changes made to content at a source
US20150365497A1 (en) Providing access to information across multiple computing devices
US20190250780A1 (en) Selective user notification of actions taken to content by other users
US9063949B2 (en) Inferring a sequence of editing operations to facilitate merging versions of a shared document
US11663038B2 (en) Workflow data migration management
US20200394152A1 (en) Digital design application plugin for content updates and delivery

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination