掌桥专利:专业的专利平台
掌桥专利
首页

跨文档的数据重用

文献发布时间:2023-06-19 10:22:47


跨文档的数据重用

背景技术

当今的工作人员使用各种设备、软件应用和基于web的服务来完成许多任务。例如,用户可以使用电话来捕获数据和记录笔记,并且使用一个或多个应用和服务与同事共享信息。用户可以使用电话或另一计算设备在项目过程期间使用相同或不同的应用和服务来处理信息并开发其他工作产品。

在项目过程期间可以生成并开发多个文档。可以生成这些文档的各种版本。查找关于某个主题的过去或现在的文档,并且如果不是不可能的话,也会是耗时和困难的。此外,文档的某些部分可以被复制或剪切并粘贴到相同或不同应用的其他文档中。如果复制的原始源是不正确的或者以后进行了更新,则复制原始源的所有下游用户将具有不正确或过时的信息。

一些系统提供了将信息插入或嵌入到文档中的能力。然而,这样的系统不支持对信息的共享,或者不提供以控制变化的动态方式和能够易于共享信息的方式来更新嵌入的信息的任何方式。此外,用户通常使用各种应用和设备,并且一些信息段必须被修改或翻译才能够被不同的应用和设备呈现或者以其他方式消费。

这些缺点对于用户而言会是不方便的,并且在计算资源的利用率方面导致严重的低效。例如,打开多个应用并且与之交互以查看和共享关于特定上下文或主题的相关信息会导致对处理器周期、存储器、电池电量和网络带宽的低效利用。类似地,分发过时的信息会导致大量返工和由于人工更新引起的延迟,更不用说在文档中捕获错误信息段的代价。此外,在没有人工干预的情况下无法跨设备和应用动态地更新信息段会导致无效的计算机交互,从而增加无意或错误的用户输入的频率,这继而导致计算资源的利用率进一步低效和损失时间和精力来实现用户之间兼容性。给定这些缺点和其他缺点,仍然需要能够以动态方式有效地共享、重用和更新信息的工具。

相对于这些和其他技术挑战,提出了在本文中所公开的内容。

发明内容

本公开描述了使得能够使用信息段或块(chunk)的各种实施例,所述信息段或块能够在用户与文档之间共享和重用,并且随着信息的发展和完善而能够在形式和内容方面(例如,经由其元数据)演变。如在本文中所使用的,信息块通常可以被定义为具有相关联的元数据并且可以被独有地标识的可修改和可重用数据的集合。信息块在本文中可以被称为信息的模块化单元或者可替代地被称为信息的现代单元(MUI)。信息块在本文中还可以被称为持久性数据对象。这些术语可以被互换地使用。

信息块可以被使用和重用,因为围绕块生成并开发了许多相关或分支文档,诸如提案、规范、合同、报告、演示、媒体文件(诸如视频/音频)等。例如,块能够包括乐器数字接口(MIDI)指令、歌曲歌词或视频标题,并且能够与其他块组合以形成媒体文件,诸如包括歌词的视频文件。在各种实施例中,描述了允许合并信息块的分支文档包括对基础信息块的引用的方法和技术,其中,随着基础块的演变和变化,所述块在文档内被自动地更新。通过提供这样的机制,可以实现更有效和高效的信息创作和共享。例如,这样的机制可以允许一位作者对电子表格中的信息块执行财务分析,而另一位作者可能仅希望插入所述分析的概要。随着基础信息块的变化,每个用户的文档可以被自动地更新。作为另一示例,尽管在一些情况下会需要动态地更新数据,但是在一些情况下,作者可能希望冻结数据,例如,当产生已经发布的报告时,其中,从基础块中提取数据的表必须与可能仅驻留在分支文档中的数据的评论保持同步。在本文中所描述的各种实施例使得能够实现这样的场景。此外,因为可以在每个分支文档内嵌入相同的块引用,因此即使实际信息自身随时间演变,也能够更有效地搜索和发现分支文档。

在一个实施例中,可以将本地或基于web的应用实现为块管理功能。所述块管理功能可以被合并到应用中、作为独立的应用来操作、作为现有应用的插件来操作、作为远程(例如,基于云的)功能来操作、或者使用组合来操作。所述应用自身可以是本地执行的应用或基于web的应用。

在一个实施例中,任何文档的任何部分都可以被保存为块。所述块管理功能可以被配置为接收输入并且将一个或多个数据块写入到共享存储设备/从共享存储设备读取一个或多个数据块。所述块管理功能还可以被配置为基于块信息和/或文档信息(诸如来自用户输入)来自动地生成文本、数据、音频和/或图像。可以创建或更新文档文件,所述文档文件包含对存储在存储装置中的块中的信息实例的引用,并且包含其他文档信息。

所述块管理功能还可以被配置为使得用户能够更新所述块的实例的内容。另外,所述块管理功能可以被配置为允许用户重新打开包含对在存储装置中维护的一个或多个信息块的引用的文档。当重新打开文档时,可以获得对信息块的最新更新并且将其插入在文档中的相关位置中。

当打开文档时,块功能可以自动地扫描块信息并且监视块信息,并且当用户请求时提供定义新块的能力。可以提供接口,所述接口指示文档中在使用中的块,并且还允许用户标识和提交新的块。

在一些实施例中,可以基于条件而能访问块。例如,给定的块可以无条件地用于所述块的发起者的授权同事,可以收费提供给一些用户,并且可以以折扣价提供给其他用户。另外,可以将不同的条件应用于块的不同版本,例如,付费版本可以利用某些信息进行更新,或者某些细节可能不能用于免费版本(例如,HD视频与低分辨率数据)。还可以基于各种支付或订阅计划,为块提供不同的更新频率或者发布信息的时间。

在一些实施例中,可以通过为每个信息块生成独有的标识符来保存文档文件中的块引用。可以将所述块存储在数据存储库中,以用于存储块信息并且标识所述块。块管理功能可以隐式地通过将块放置在其他已标识内容之后的序列中,或者显式地通过对块的文档位置的指定,来标识文档文件中应当插入块的位置。

在一些实施例中,可以实现针对块的访问要求。访问要求可以由个体用户或者由群组来实现。例如,可以对组织的成员、服务的订户、与授权用户具有识别出的关系的用户等来实现访问要求。在一些实施例中,块创建者而不是文档作者能够发布对块的更新。例如,块作者可以许可块并且提供不同的付款或订阅计划以接收更新,诸如一些文档接收的更新基于许可比其他文档更频繁或更早地被更新。可以验证块的内容以建立信任,例如,通过让组织、公司、社区验证块信息并且添加可信源。块内容或整个块可以被加密,并且包括安全特征,诸如DRM。

在一些实施例中,所述块管理功能可以提供检测块内的额外项目可用的能力。例如,可以添加和更新参考列表中的新项目。所述块管理功能可以为用户提供查看、选择和插入来自列表的项目的能力。所述块管理功能可以提供额外服务,诸如翻译块并且可选地将翻译存储在块元数据中。

在一些实施例中,所述块管理功能可以提供被配置为接收对块信息和文档信息的请求并且响应所述请求的应用编程接口(API)。例如,API可以接收取回包含特定块的所有文档的请求。所述块管理功能可以搜索具有针对所述块的独有的标识符的文档,并且返回文档的列表。

在本文中所公开的技术能够改善与计算设备的用户交互,这能够提高用户的生产率并且帮助减少无意、过时或其他不正确的输入的数量。同样地,通过提供更准确和更上下文相关的信息,系统能够关于存储器使用、处理资源、网络资源等来更有效地操作。具有更准确和更上下文相关的数据能够减少电子邮件和可以被用于澄清和校正不正确信息的其他形式的通信的数量。也能够从在本文中所公开的技术的实现方式中实现除了在本文中所提及的那些之外的其他技术效果。

附图说明

参考附图描述了详细描述。不同图中相同的附图标记指示相似或相同的项目。对多个项目中的个体项目的引用能够使用带有字母序列中的字母的附图标记来引用每个个体项目。对项目的通用引用可以使用不带字母序列的特定附图标记。

图1图示了图示说明根据各种实施例的块的生成和使用的图。

图2图示了示出块的内容的示例表。

图3图示了示出块的内容的示例表。

图4图示了示出块的内容的示例表。

图5图示了示出块的内容的示例表。

图6图示了用于识别块并且将其提供给应用的框图。

图7图示了用于识别块并且将其提供给组织的框图。

图8图示了用于更新块的框图。

图9图示了用于更新块的框图。

图10图示了用于使得能够如下文所示和所描述的在本文中所公开的技术的各方面的例程的各方面。

图11图示了用于使得能够如下文所示和所描述的在本文中所公开的技术的各方面的例程的各方面。

图12图示了用于使得能够如下文所示和所描述的在本文中所公开的技术的各方面的例程的各方面。

图13是计算机架构图,其图示了用于能够实现在本文中所提出的技术和技艺的各方面的计算系统的说明性计算机硬件和软件架构。

具体实施方式

在本文中描述了用于以允许在多种文档类型和应用中重用或扩展信息的格式和模式来生成和使用数据、模因和信息的块的系统和方法。如在本文中所使用的,通常可以将信息块或块定义为具有相关联的元数据并且可以被独有地标识的可修改和可重用的数据的集合。块还可以包括其他块。信息块在本文中可以被称为持久性数据对象。这些术语可以被互换地使用。块可以包括任何类型的数据,诸如文本、图形、表格或者可以被插入在任何类型的文档(诸如文字处理文档、电子表格、演示等)中的任何其他类型的信息。

在本文中所公开的信息块可以被配置为作为独立的对象被创建、存储、更新、发送和接收以及插入到文档中。当被插入到文档中时,所述信息块被合并到文档中,因为其他信息可以被插入到文档中,诸如在剪切和粘贴或者复制和粘贴操作中。然而,插入的信息块可以继续被独立地标识和跟踪。换言之,所述信息块独立于其被合并在其中的文档而存在。在一个实施例中,当所述信息块被更新时,无论是在插入的文档内,还是独立地在可以由在相同或不同计算机中执行的应用更新的另一文档中,所述更新都可以被提供给已经合并信息块的所有文档,而不管文档类型和应用如何。通过提供这样的机制,信息块可以被一致地使用,而不会变得过时或者包含陈旧或错误的信息。另外地,因为所述信息块可以与多种文档类型和应用相兼容,所以可以提供块以及其更新,而无需考虑其所驻留的文档的特定类型。此外,即使内容已经被更新,也可以跟踪信息块的身份。

作为示例,用户可以在待办事项列表应用中生成笔记。然后,可以将所述笔记演变为在Excel电子表格中的调查问题、在iPhone上的应用中运行的实时调查、并且最后演变为在PowerPoint演示文稿中的调查结果。所述笔记的一部分可以被定义为块,然后可以将所述块合并到Excel电子表格、调查和PowerPoint演示文稿中。各种实施例包括用于跟踪块的变化的机制,从而可以在合并所述块的任何地方应用对在一个应用中的特定块进行的个体改变。此外,可以基于对应文档类型以及其各自应用的属性来对其他文档进行改变。在一些实施例中,块可以可选地包括或者关联于用于智能地响应和/或保护编辑的功能/逻辑。例如,能够将调查块配置为在问题改变时擦除结果。所述块可以与显示应用通信以确保应用提示用户是要更新问题并且删除结果,还是保留结果并且放弃编辑。替代地,所述块可以访问或打开所述块管理功能以执行用户提示。

因此,所公开的实施例为用户提供了一种在一个文档或应用中进行更新的方式,所述更新能够选择性地被反映在其他文档或应用中使用块的位置。另外地,在一些实施例中,所述块可以与诸如数据历史和模式历史的元数据相关联。该信息可以被用于跟踪块的历史以及其修订。在一些实施例中,每个应用能够具有其支持的模式,能够从块的上下文中声明或推断所述模式。

例如,能够在每个块中支持单个文本字段的待办事项列表应用可以将“商业机会大小是多少”呈现为笔记,但是可能无法将“商业机会大小是多少:小|中|大”正确呈现为笔记,而在能够支持复杂模式和多个字段的Excel中的调查问题列表可以在一列中显示“商业机会大小是多少”,并且在下一列中显示“小|中|大”。调查应用还可以认识到“小|中|大”字段实际上是多响应字段,并且可以呈现下拉菜单以允许由用户进行选择。

在各种实施例中,当例如通过改变问题或者通过响应调查来更新或增加块中的数据时,可以将版本化的数据添加到块。使用所述块的每个应用和文档都可以确定是否合并新数据,以及应用是否能够呈现该新数据或者较旧版本的数据,并且如果是,则确定其能够支持的方案的各方面。

另外地,可以以独立于特定呈现格式的多种方式来呈现信息块,只要能够呈现数据的类型即可。在一些实施例中,可以实现可视化平台,所述可视化平台提供能够以块来呈现信息而无需任何特定应用来自然地呈现信息的各种呈现能力,诸如图形和图表。

在实施例中,实现块的计算环境可以使用一个或多个组件来实现。在一个实施例中,所述组件可以在相同物理计算设备上执行。在其他实施例中,可以例如以客户端-服务器架构来分布。

图1图示了用于启用来自多个应用141的块的生成、存储和更新,并且在使得用户能够在每个应用141的上下文环境内工作的同时执行该操作的系统100。在该示例中,用户能够与个体应用141进行交互以创建和编辑文档,并且查看和添加或编辑被插入在特定类型的文件(例如,文字处理文档、电子表格文档等)中的块内容。应用141均可以被配置为显示创作窗格191和块窗格192。每个文件的内容被显示在创作窗格191中。用户能够选择在创作窗格191中所显示的内容的部分。能够选择所选择的部分作为任何应用的块窗格192中的块以创建并且保存新的块。块窗格192还可以被用于查看可用块,以用于选择和插入到应用中。可以同步每个应用141的块窗格192,以使得用户能够在每个应用141内工作并且查看文档(例如,演示文稿)的当前版本,其正在被编辑,同时还查看特定于每个应用或者可用于每个应用的块内容。

块窗格192中的内容能够被用于生成具有内容和元数据的块数据151。在一些配置中,块数据151能够是表格、文件、多帧图像文件、视频文件或者任何其他合适格式的形式。在一些实施例中,所述块窗格可以针对每个修订来显示选项卡或类似机制,从而用户能够还原到较旧或较新的版本。所述块窗格还可以提供用于容易地查看修订之间的差异的机制。

在一些实施例中,系统100能够识别或生成块数据以供多个用户和应用来使用。例如,计算设备106A或存储服务110和管理服务120能够识别块内容并且存储所述块内容。

块数据151能够包括文本、图像、媒体或者任何其他形式的数据。块数据151能够包括被存储在包括数据存储库136的存储服务110内并且由包括管理模块138的管理服务120管理的数据。在一些实施例中,块数据152能够包括被集成到或链接到块数据151的可视化逻辑。

块数据151能够经由网络108从第一计算设备106A或服务110被通信到任何数量的计算设备106,在本文中被称为计算设备106B-106N。与接收者相关联的每个计算设备106B-106N能够通过使用查看应用142在用户界面195(195A-195N)上显示块数据151。查看应用142能够是任何合适的应用,诸如演示程序、web浏览器、媒体播放器等。查看应用142还可以是基于web的应用。在一个实施例中,查看应用142可以是虚拟助手,其使用语音而不是视觉表示来传达块内容,例如,促进文本到语音(TTS)。在一些实施例中,查看应用142可以是增强现实、混合现实或虚拟现实设备,并且所述块能够被呈现在虚拟现实显示器内。例如,块可以表示能够在后台被更新的传感器数据。块可以表示例如在购物场景中配置的虚拟汽车,所述虚拟汽车被即时地更新并且被显示在虚拟城市中。

应当意识到,在本文中所描述的主题可以被实现为计算机控制的装置、计算机过程、计算系统、或者诸如计算机可读存储介质的制品。在本文中所示的技术针对各种计算资源提高了效率,以及许多其他益处。例如,可以改善与设备的人机交互,因为在本文中所公开的技术的使用使得用户能够在一个应用中操作以组成包括来自文件的数据的块的同时查看和编辑来自多种文件类型的数据。另外,经改进的人机交互改善了诸如处理器和网络资源之类的其他计算资源,例如,用户能够在数量减少的应用中工作,并且减少用户的计算机交互、减少无意输入的机会、减少网络业务、并且减少计算周期。在本文中所公开的技术减少了下载、启动、维护更新多个应用(包括专用演示程序)以及在多个应用之间切换的需要。同样地,替代要求用户将所选择的内容复制并且粘贴到专门的发布或演示程序中,现有的计算机设计得到了改进,因为所有应用都是同步的,并且最终被配置为提高用户的交互的效率。也能够从在本文中所公开的技术的实现方式中实现除了在本文中所提及的那些之外的其他技术效果。

在一个实施例中,可以提供一种存储服务,其被配置为管理和存储块。在一些实施例中,可以使用数据表来实现块。在一种实现方式中,所述数据可以具有诸如ID、标题、作者和时间日期(TimeDate)的列。所述表的每一行可以是信息块的实例。例如,如果Bob Smith略记下想法以获得关于其销售和运营团队的反馈,则他可以创建三个块,即“确认收货”、“对销售流程满意吗?”和“想买更多?”。所述三个块可以与姓名Bob Smith、创建块的时间和日期的时间戳相关联,并且每个块可以具有不同的独有ID。图2图示了一个示例表,其示出了关于两个块的信息,每个块具有:ID,其可以符合全球独有标识符(GUID)方案;针对所述块的标题,其可以是文本字符串;块的作者,其可以是文本字符串或者针对用户的某种其他标识符;以及所述块被修改的日期/时间,其能够是日期和时间格式。

在一些实施例中,可以包括额外或不同的列。列的示例可以包括位置、类型或目的。另外地,列可以包含文件,诸如图像、视频、文档片段或XML/HTML文件。在一些实施例中,信息块可以包含多维数据。例如,可以包含评级列,所述评级列继而可以包含用于1星、2星等的计数的子列。

多个应用或服务可以以块的形式来读取或写入数据,并且允许对数据的模式进行修改。术语“应用”可以指代任何应用、网站、插件、SaaS服务等。所述存储服务可以接收来自一个或多个应用的信息,所述应用被配置为接收与块有关的用户或系统输入。例如,可以经由略写笔记、照片、来自数据分析的自动见解、从IoT传感器生成的见解等来接收输入。

所述存储服务可以诸如在服务器上远程地实现,或者可以在一个或多个设备上实现。在一些实施例中,提供存储服务的设备可以与执行应用的设备分开。所述应用可以通过网络向存储服务读取和/或写入数据。在一些实现方式中,数据的模式可以包括列,所述列包含谁具有访问权限的列表。例如,所述访问权限可以指示仅认证的用户(诸如BobSmith@Contoso.com和FredJacoby@Contoso.com)可以访问数据。还可以公开API,以允许用户请求或取回相关的块,诸如由于共享任务或项目用户可以访问或参与的那些块。

可以使用能够接收用户输入并且处理输入以生成或修改与信息单元(诸如文件)有关的信息的任何应用来创建和编辑块。在一个示例中,可以使用诸如智能电话上的笔记应用之类的文本编辑器来编辑块。也可以使用任意数量的更复杂的应用(诸如MicrosoftExcel)来编辑所述块。在实施例中,即使当使用更复杂的编辑应用进行修改时,也可以使用相对简单的形式在存储服务中保存所述块。

在实施例中,应用可以被配置为允许用户将所述块中的一个块插入到文档文件中。例如,如果Bob希望创建标题为“测量客户满意度”的PowerPoint演示文稿,那么Bob可以打开带有该标题的幻灯片,以及被称为“建议的客户调查”的第二幻灯片。然后,Bob可以例如通过点击用户界面中的按钮来向所述应用指示他希望重用Bob可访问的信息块。在一个实施例中,所述应用可以提供能用于插入的块的列表。在一些实施例中,可以按参数(诸如时间、最近)对列表进行排序,或者列表可以提供基于搜索查询项、日期过滤、类型或其他参数来过滤块的列表的选项。

一些实施例可以解决并非所有块类型都可以在所有文档类型中工作的情况。例如,相对简单的文本编辑器可以支持块以及基本文本编辑,并且在这种场景中,可能不提供图表或图片作为用于插入的选项。在一些实施例中,所述应用可以过滤应用所支持的那些块类型。例如,如果块支持多个可视化(例如,文本或图形),则可以允许插入所述块,但是可用的可视化可能限于所支持的那些可视化。在一些实施例中,对于预订了一个或多个块的用户或者已经付费访问所述块的用户可以访问块。例如,在线存储库可以付费提供块和/或关联的可视化逻辑。在一些实施例中,可以为组织或其他实体内的用户提供内部在线商店或存储库。在能够混合内部和外部块的组织内部的场景中,所述块可能受组织提供的管理控制的约束。在一些实施例中,块可以具有与块相关联的许可机制。例如,当尝试刷新文档时,所述应用可以检查许可要求。所述应用还可以检查基于权限的访问限制以及其他约束。

在一个实施例中,可以包括针对块的列,所述列指定所支持的内容的类型,诸如文本、图像、向量图等。在一些实施例中,可以提供相同数据块的替代视图。例如,除了被呈现为图像之外,还可以通过词语或声音来描述图像格式的块。在一些实施例中,可以严格地定义数据块的类型。例如,“普通文本”可以是简单的类型,并且“平均评级”可以是更复杂的类型。“饼状图”可以是“图表”的子类型。通过提供严格定义的类型,可视化能够得到专门化。例如,可以呈现复杂类型的图表,诸如带注释的3D图表,突出统计显著偏差,但是可以允许应用退回到更简单的可视化(例如,纯条形图),能够通过将“3D偏差图表”定义为“图表”的子类型来启用。因此,当用户想要改变可视化时,能够首先向用户示出相关的子类型、父类型或者其他相关的类型。

继续所述示例,Bob可以选取将两个块“对销售流程满意吗?”和“想买更多?”插入到客户调查幻灯片中。在另外的实施例中,所述应用可以允许用户更新给定的块,并且存储服务可以随着数据变化来记录数据的快照。在图3中所示的示例中,包括列以指示版本控制和访问权限。在一些实施例中,可以以非线性方式来实现版本控制。例如,不同的实体(诸如用户、热点、公司和组织)可能需要不同版本的块。在一些实施例中,可以使用树状或图状结构对块进行版本控制,其中,块可以并行产生多个版本。不同的分支/边缘可以并行地表示不同的编辑,导致相同块的版本或节点断开连接。每个版本或节点都可以在其代表子树/子图中视为“最新”。例如,当确定许可信息时,可以提供管理工具来仅更新个体子树/子图上的块。所述管理工具还可以允许将信息融合到两个不同的子树/子图中,并且利用融合的内容来创建新节点。此外,所述管理工具可以允许利用来自先前节点的内容来覆盖节点。当块由其他块组成时,所述管理工具可以被用于利用不同的块替换所述块内的块或者移除所述块。块的每次编辑都可以是新版本。每个块版本可以利用ID独有地标识。在一个实施例中,可以存储块之间的差异以替代块自身,或者除了块自身之外还存储块之间的差异。这可以促进有效地跟踪和检查版本之间的差异,以及节省存储空间。在其他实施例中,可以存储各种块版本的多个完整副本。在一个实施例中,版本可以具有指向先前版本的指针。

在一些实施例中,可以提供一种机制来解决由不同作者对块进行的冲突或同时编辑的情况。在一个实施例中,占优的编辑可以被确定为最后修改的编辑。在其他实施例中,所述冲突或同时编辑中的每一个都可以被记录、跟踪和使得可用。例如,如果市场功能的用户和研究部门的用户各自修改了列,则每个编辑可以具有由不同最终用户做出的潜在可用性。因此,可以提供一种机制,其中,用户可以指定能够确定哪些编辑将被提供给该用户的属性。例如,所述用户可能希望查看市场人员的最后编辑,或者其希望查看由一组具名个人的最后编辑,或者中央管理员可以定义用于选择最终用户无法改变的编辑的规则。可以提供其他方式来确定可以如何选择冲突或同时编辑。

在一些实施例中,可以提供一种允许最终用户与确定给定最终用户和/或给定应用可访问哪些更新和更新版本的属性相关联的机制。

信息可以被保存在文档文件中以将其连接到信息块。例如,所述文档文件可以包括以下信息:

在上文例示说明的示例中,第二幻灯片现在包含对块存储服务的引用。例如,标签“Happy with Sales Process?”指示块标识符和版本。另外地,所述标签引用两个较旧的数据块(1.0版),然后从块存储服务中取回这些数据块并且将其插入到文档中。在一个实施例中,可以假设存储服务的位置对于试图打开所述文档的应用是已知的。例如,Microsoft Office应用可能具有指向对Microsoft Office应用可用的块的存储服务的URL或其他链接的内置知识。另外地,Microsoft Office应用可能具有用于访问存储服务的认证方法的内置知识。在其他实施例中,可以将源明确地声明为文档文件内的属性。

在一些实施例中,所述存储服务可以存储最初被创作为连贯列表的一部分的项目组。示例可以包括照片的顺序集合、全部都放置在相同板上的任务的集合、以及来自演示幻灯片中的项目符号(bullet)集合。当信息被用作集合时,对集合中的项目进行分组的能力在重用块中的信息时是有益的。另外地,当将新项目添加到集合中或者当将集合中的现有项目删除时,通过通知该块的集合的用户可能受益。

在一个实施例中,可以通过使每行信息包括共享属性值来在存储服务中实现分组机制。例如,共享属性可以是如在图4中的示例表中所示的父位置URL。共享属性还可以指示次序,例如,列表中的哪个项目是给定块的一部分。

在一些实施例中,块的粒度级别可以变化。例如,存储服务中的块的列表的每一行可以是完整列表或完整表,并且可以为作者(或者其他用户)提供从每个块中取回某些项目的方法。尽管可以取回块,但是在插入所述块的文档中的引用可以指代块项目,而不是块自身,如在以下示例中所示的。

Happy with Sales Process?

Likely to buy more?

在实施例中,当重新打开文档时,能够处理文档文件的应用能够执行操作。例如,应用可以正在无法通过网络连接到存储服务(其可以被称为“脱机支持”)的计算机设备上运行。在这种情况下,所述应用仍然能够从文档文件中读取信息的静态副本,从而所述应用能够显示被保存在文档中的块的版本。在一个示例中,存储服务不可用的原因在于:尚未被授权访问存储服务的不同用户已经打开了应用。在一些实施例中,所述应用可以例如通过呈现显示“该文档包含实时信息块。要查看最新版本,请点击此处以请求访问”的通知栏来向用户提供通知。响应于点击所述请求,可以将所述用户带到其能够请求对存储服务的访问控制的不同应用或网页。

在一个实施例中,如果用户不能访问在线数据,则可以实现限制以限制允许未授权用户也离线查看数据。在一些实施例中,对数据的访问权限可以被包括作为可选地与块一起存储的项目之一。如果访问不足,则可以实现访问权限以防止对内容的显示。在一些实现方式中,可以将IRM或DRM应用于块的内联内容,以确保用户不以其他方式入侵文档以访问内容。在一些实施例中,块内容可以被加密。另外地,在块或块的部分被共享或转发时,IRM或DRM机制可以被继承或转移。当打印或复制(例如,截屏)块时,可以为视觉或音频文件实现其他方法,诸如加水印。在一些实施例中,块内容可以不包括在文档中,使得在没有在线访问的情况下,丢失的块内容将导致文档中的内容丢失。例如,如果担心对数据的访问,则确保通过经认证的用户从服务器取回数据能够确保满足访问控制。另外地,能够捕获和存储对访问的记录。

当应用用户确实有权访问存储服务或者至少所需的块时,所述应用可以向存储服务发送请求,以查询所述块的较新版本是否可用,或者是否已经添加或移除了来自相同的位置的项目。在一些实施例中,所述应用可以向用户提供提示,询问其是否希望更新其文档,从而使其包含任何插入的块的所有最新版本。在其他实施例中,所述文档可以自动刷新。在一些实施例中,设备或应用可以连续地或周期性地轮询远程数据存储是否存在任何更新。在一个实施例中,设备或应用可以在其打开和关闭文档时通知存储服务,以及其包含哪些块,从而存储服务能够在文档被打开的情况下在发生更新时发送更新。在又其他实施例中,用户可以显式地设置属性,使得文档不为其他用户或者基于其他条件而自动刷新。例如,如果发布的报告引用针对给定季度的人口数据,则在人口数据已经发生显著变化的一年之后,用户可能不希望打开文档。报告中的调查结果(其可能是多页文本公开)可能错误地引用关于一年前有效但是对最新(最新版本)人口数据不再有效的人口数据的观察结果。在又其他实施例中,可以对文档执行文本分析,以识别文档在何处引用了较旧版本的块,从而可以突出文档的那些部分以供用户修订。

在实施例中,可以将应用配置为允许用户直接编辑应用内的块。即使在使用信息的上下文可能不同的情况下,也可以跨多个应用并且在多个文档中使用在一个应用内编辑的块。在一些实施例中,使用一个应用对块进行的编辑可以被应用于其他应用和文档。在改变不适用的情况下,可以实现特征以限制或阻止改变的传播。例如,如果所述块是概述一季度销售的演示幻灯片(并且在跨组织的多个演示中使用),则所述块在该上下文内可能有意义,并且可以传播更新。在另一示例中,如果所述块是包含调查结果的表,诸如同意一组问题的受访者的百分比,则所述表对于重用也是有意义的。如果在所述块的各版本之间的差异是句子的少量重述,则跨使用所述块的文档应用编辑是有意义的。

当块被编辑时,可以添加额外属性以与所述块相关联的列。例如,如在图5的示例中所示的,Fred可以将客户服务项目符号的想法转变为客户调查(注意,为简洁起见,移除了作者、已修改、访问权限和父位置)。

在一些情况下,较旧的文档可以具有被锁定为特定版本的块,从而一些数据不在具有锁定的块的文档中进行更新。图5中的示例示出了“销售过程满意度”包括两个版本1.0和1.1。当文档是历史的并且意图包括来自不被更新的某个时间点的信息时,这可以是有用的。当对所述块进行最新改变时,所述改变可能不被应用于较旧或历史文档中的锁定的数据。在一个实施例中,可以实现一种机制,所述机制被配置为接收对所述块的更新并且绕过已经合并了块但是被“冻结”的文档。在一个实施例中,仅来自外部源的数据可以被冻结。在另一实施例中,可以实现一种机制来访问先前的版本以用于更新。在另外的实施例中,可以提供一种机制来保存对所有旧副本的更新。

在一个实施例中,可以实现一种机制,所述机制基于能够由块的用户定义的一个或多个因素来确定更新是否重要。能够绕过不重要的更新或者以其他方式被视为对块的特定实例不必要的更新。例如,可以提示用户选择是否应当传播更新。另外地,可以实现一种机制来允许更新被禁用,例如,在可能禁止改变历史法律文件的情况下。在一个实施例中,应用可以示出其任何版本中的块的所有使用,并且允许批准更新在文档中所使用的每个“版本/文档”对。

在上文的示例中,可以添加额外的列以捕获用户如何响应调查。信息的类型可以从更简单或线性的表示演变为更复杂的表示。在一些实现方式中,可以生成子类型并且将其包含在块中,例如“调查/客户满意度”(与“调查/午餐选项”或“调查/理想投票”相反)。因此,语义注释可以被用于提供可视化。

在本文中详述的一些示例中,块的原始内容是“主题”,并且新内容可以针对问题。在其他示例中,原始内容可能是上下文中性的,但是新列表内容可能是特定于上下文的。这样,应用或调查可以使用各种启发法来确定是在应用更新之前请求来自用户的显式输入,还是应当自动地应用更新。例如,启发法可以包括但不限于:之前和之后的字符编辑距离、块的类型是否已经改变、增加的项的数量、块是否是纯数字的、改变是否是更新的照片文件、块是否为演示幻灯片、块是否引入了大量新的列、块的语义类型是否被认为与在文档中已经使用的相似、是否存在转换器来将最新的块类型(例如调查)修改为文档中存在的类型(例如,单一形)、块是否仅包括从与外部源(例如,SQL数据库或网站等)的连接中取回的数据。在实施例中,可以提供一种机制,其中,第三方能够签名和锁定块,并且因此防止他人(可能包括块的所有者)对其进行改变。另外地,可以修改元数据,以指示块或其特定内容已经被改变。

在一个实施例中,可以实现用于更新块的以下序列:当用户在一个文档(或者一个应用)的上下文中对块进行更新时,数据可以总是被保存在存储装置中。当启动引用块的第二文档或者从块读取数据的第二应用时,或者在共同创作的文档的情况下,当检测到更新时,可以确定是否(1)更新文档中的块以自动地使用最新版本的块,或者(2)通知用户已经做出了其可能希望接受的改变,以及是接受还是忽略所述改变。

并非所有的应用都可以支持向用户提供对块进行更新的通知。例如,包括笔记功能的简单电话应用可能不被配置为提供通知平台。另外地,并非所有应用都可以包含能够确定要使用哪个版本的块的逻辑。在这样的情况下,可以在服务器上执行确定提供给特定设备或应用的块的哪个版本的计算逻辑,所述服务器可以被网络连接到存储装置或者与其共同地定位。这可以允许电话应用以及其与存储服务的接口保持相对简单。例如,所述应用可以简单地执行用于读取/写入列表的任务。转换和处理更新的复杂任务可以在服务器上执行。所述服务器可以被配置为在并不限于电话应用的各种场景中执行更新处理。

在块被保存在独立于个体用户设备的存储服务中的情况下,所述块可以被暴露给更宽泛的应用和用户。在一些实施例中,用户和应用能够向存储服务查询相关的块。例如,可以查询和取回在相同父位置中创建的块或者由相同作者在给定时间帧中创建的块。在这样的情况下,输入参数可以由应用或用户来提供,并且可以过滤结果以直接匹配。随着块的使用增加,可以实现可以合并搜索引擎技术的块取回机制,其中,诸如“向我显示包含关键字‘客户’的所有最近创作或更新的块”之类的查询可能依赖于标准信息取回(IR)实践,以查找包含大量提及关键字“客户”的那些块。这样,查询可以通过针对创作块有多新近来分配子分数,并且针对块包含“客户”的次数来分配另一子分数,来返回排序的结果。可以将两个子分数组合(例如,求和)以计算给定块的相关性如何。例如,其他场景(诸如给定块被重用的频率,以及是否由已知联系人或者在组织或团队内重用所述块)可以是用于对块的查询结果进行排名的额外因素。更一般而言,块存储和管理服务可以与查询引擎(例如,用于企业搜索场景的搜索爬虫,或者用于程序化查询的类似数据库的查询)集成。在一些实施例中,与块或其他功能相关联的可视化逻辑能够被配置为将任何类型的丰富元数据转换成纯文本,以促进自由文本搜索。另外地,结合针对块的搜索,可以向用户提供选择块的能力并且向用户提供相似块的列表。在一些实施例中,可以使用基于社交网络数据、先前搜索、当前应用和其他因素的所确定的相关性来对列表进行偏置。可以对块进行索引以促进进行搜索。

在各个实施例中,可以提供一种机制来呈现信息块。可以在应用的上下文中或者独立于应用来呈现所述块。例如,可以查询和呈现来自块存储服务的块以用于检查,或者可以在应用内检查块。

在一些实施例中,应用可以被配置为呈现信息块。可以基于块包含的信息的类型以及由其元数据指示的块的属性来呈现所述块,这能够被用于确定如何呈现所述信息。与块相关联的一些元数据(例如,作者、时间日期、版本、父位置、项目等)可能不影响信息在文档中呈现信息的方式。其他属性(诸如标题或相关联的图像文件)可以被用于呈现。例如,无论用户在文档中何处插入了块,应用都可以将文本呈现为纯文本或者可以在文档内呈现图像。如果原始应用(例如,电话笔记记录应用)被重新启动,则原始应用可以直接使用(一个或多个)块,并且块周围没有任何文档内容。应用还可以将块呈现为具有元数据的文本。在一些实施例中,可以提供用于在各版本之间改变的机制或接口。

在一些实施例中,用于查看、编辑以及以其他方式访问块的可视化机制可以被合并到应用中。替代地或另外地,所述可视化机制可以被实现为独立的应用或过程。在一些实施例中,所述块可以包括或者被链接到使得应用能够呈现块信息的逻辑,而不需要在应用中或者在用户设备上本地预先存在的功能。在一些实施例中,所述逻辑可以被配置为允许对块内容的可视化。在一个实施例中,所述逻辑能够为未被配置为以其他方式可视化所述块的内容的应用提供基本可视化。

相关联的块可视化逻辑可以被实现为能够在需要可视化时在用户设备或存储服务处运行的代码。例如,如果所述块中的数据是表,并且本地设备正在尝试使用记事本对表进行可视化,则可以使用为块提供的逻辑来呈现所述表。所述逻辑可以在存储服务处与块共同定位,或者能用于下载到用户设备。否则,记事本应用可以使用其有限的呈现功能来呈现所述表。例如,可以将所述表的内容呈现为具有定界符的列表。

为了促进在各种应用中的块的实现,所述应用可以符合用于实现在本文中所描述的各种技术的标准接口。所述标准接口可以包括每个应用必须遵守的一组规则和接口,以便能够使用块而不管其原始应用和上下文如何。在一些实施例中,可以实现合并了可视化和块管理功能的插件,并且使得所述插件能用于使得应用能够使用其文档内的块。

在一些实施例中,应用可以覆盖由针对块的相关联的逻辑提供的基本表示。例如,所述应用可以调用另一应用来呈现块数据,诸如浏览器。然后,可以根据浏览器的功能使用浏览器来呈现所述块信息。因此,正在使用所述块的应用可以依赖浏览器或其他应用来呈现块以供由用户可视化。

所述逻辑可以提供各种功能,诸如版本控制和对编辑块的支持。此外,所述逻辑可以向用户提供可视化的能力并且提供关于块的使用的输入。例如,当块的发起者改变块中的数据时,可以向当前用户提供所述改变的通知,并且还可以提供是否合并所述改变的选择。另外地,可以向当前用户提供在可视化逻辑中的改变的通知,并且还可以提供是否更新所述可视化逻辑的选项。

在一些实施例中,所述逻辑可以与块所属于的类别相关联。例如,可以定义各种类别的块,诸如针对具有表格形式的信息并且旨在用于包括表的文档中的块的“table_chunk”类别。所述类别以及其关联的逻辑可以定义针对所述类别的核心表示。在一些实施例中,所述逻辑可以与块一起存储在存储服务处。当由应用请求时,所述逻辑可以与块一起发送。在其他实施例中,针对各种类别的逻辑可以被存储在另一位置处,例如被存储在针对块可视化逻辑的主存储位置处。在一些实施例中,可以经由URL获得针对各种块类别的逻辑。在一个实施例中,用户可以通过例如在线商店或其他集中式存储库来定义和提交其自己的块类型。

当针对各种块类别的逻辑被预先定义并且可供下载和使用时,当生成块时,无需生成所述逻辑。起源应用仅需要生成针对实例的元数据,诸如标题、块中信息的类型、谁能够访问所述块、作者、时间/日期戳、类别以及如何呈现所述类别(例如,从何处获取所述逻辑)。在一些实施例中,除了特定于类别的逻辑之外,特定于块的逻辑可以是可用的。例如,针对表的特定于类别的逻辑可以针对特定的表而覆盖。在一个实施例中,这能够通过应用基本显示逻辑并且在定制逻辑上分层来实现,或者仅通过应用定制逻辑来实现。可能存在一些应用不支持所述定制逻辑,在这种情况下,所述逻辑能够退回到针对该块类型或类别的默认逻辑。所述定制逻辑还可以提供其他可视化选项,诸如在本文中所描述的那些。在一些实施例中,多组逻辑可以与指定不同可视化或编辑所述块的不同方式的块相关联。

在一些实施例中,可以向用户呈现多种可用的可视化选项。每个可视化选项都可以具有其自己的逻辑,并且能够处理针对块的数据并且生成呈现。呈现的类型能够是纯文本、纯图形以及任何其他类型或呈现的组合。在一些实施例中,面向纯图形的应用可能能够呈现各种块类型。例如,即使可能没有提供编辑功能,绘画应用可能也能够以图形方式呈现表格。在一些实施例中,所述可视化逻辑可以定义在文档中还存在其他块的情况下如何呈现块。

在一些实施例中,可以提供可视化的排名的列表,例如,最流行的可视化选项的列表。所述列表可以被提供为文本呈现。在另一示例中,可以生成图形输出,所述图形输出示出了描绘具有最流行的可视化的旋转木马的动画。在一个实施例中,所述列表中的每个可视化可以具有将与该可视化一起提供的呈现类型的预览,用户可以选择所述预览。

在实施例中,可以基于一个或多个因素来选择或优先化所述列表,这些因素包括:

哪个可视化最后被用于呈现所述块

什么是所述块的强类型

哪些可视化与该类型相关(全部地或部分地)

用户许可了哪些可视化

在一些实施例中,可以向用户提供基于能力(例如,编辑与只读,黑白与彩色主题)来过滤可视化的能力。

在一些场景中,在应用(例如记事本)中仅有可用的可视化能够促进信息的呈现,但不能促进信息的编辑。例如,能够示出星级,但是由于其数据包括所有先前提交的等级的列表,并且将其总数进行了平均,因此用户可能无法在记事本中编辑该数据而不丢失基础等级数据。在这样的场景中,应用可以通知用户给定的数据块无法被用户编辑,或者该编辑将导致数据丢失。替代地,所述应用可以在没有显式通知的情况下不允许对块进行编辑(例如,可以禁用编辑功能)。图6图示了用于识别块、存储块并且将块提供给应用的框图600。在一些实施例中,块源601可以包括文档、电子邮件、电子表格、演示文稿、图形文件等。这些文档可以由块识别引擎602经由网络来访问。块识别引擎602可以接收包括与块相关联的元数据的块,以将块与元数据和相关的呈现逻辑相关联。在一些实施例中,可以将块存储在块存储库604中,块存储库604可以由如在本文中所讨论的存储服务来实现。

在一些实施例中,被存储在块存储库604中的块可以由软件应用(诸如演示软件606或文字处理软件608)来取回。这些应用可以被配置为包括创作窗格610和614,在其中显示主文档内容。应用606和608还可以包括块插件612和616。在一些实施例中,所述块插件可以接收块并且将块信息的部分插入在由应用606和608编辑并且在创作窗格610和614中显示的文档中。在其他实施例中,由插件提供的功能可以被包含在应用的功能中。

图7图示了结合团队或组织706用于生成、存储和重用块的框图700。在一些实施例中,块标识引擎602从协作服务器716、电子邮件服务器714、云文档服务器716等接收待处理的块。在一些实施例中,被存储在这些服务器上的块与组织706相关联。这使得能够识别组织706特有的块。

例如,协作服务器716可以存储幻灯片演示、电子表格、文字处理文档、电子邮件、日历约会等。在一些实施例中,块标识引擎602可以访问以取回被存储在协作服务器716中的文档。另外地或替代地,协作服务器716可以将所存储的文档提供给块标识引擎602。块标识引擎602也可以被实现为在协作服务器716内执行的插件。

块标识引擎602可以类似地从电子邮件服务器714接收制品。这些制品可以包括电子邮件、附件或者任何其他类型的文档。

在一些实施例中,尽管云文档服务器716物理上存在于组织706的外部,但是包含在其上的文档仍然可以被认为是组织的一部分。

图8图示了示出各个用户如何更新块以及将更新提供给用户的框图800。在一些实施例中,块识别引擎602被配置为跟踪被插入到文档801、文档802、文档804和文档807中的块850。这些文档具有关联的用户808、810、812和816。

在一些实施例中,在文档802、文档804和文档806被更新时,当其各自插入的块850被更新时,更新可以由块识别引擎602来接收,并且文档802、文档804和文档806可以均被通知对块和/或其相关联的可视化逻辑的任何更新。在该示例中,与用户810相关联的文档804可能当前未被使用。然而,块识别引擎602可以跟踪对块850的更新,并且当稍后打开文档804时,块识别引擎602可以将累积的更新发送给文档804。

图9示出了基于文档的应用900,其包括针对被插入在文档中的块的块可视化窗格940。在一个实施例中,应用900在计算设备902上执行,并且包括基于文档的应用,所述应用包括菜单910、文档创作窗格990和块可视化窗格940。

块可视化窗格940列出了在文档中找到的三个块:块1 942、块2 949和块3 952,其中,箭头将块与在文档中正在使用的块的一个或多个实例相关联。

图10图示了用于实现如下文所示和所描述的在本文中所公开的技术的各方面的例程1000的各方面。应当理解,在本文中所公开的方法的操作未以任何特定次序给出,并且以(一个或多个)替代的次序执行一些或全部操作是可能的并且是可设想到的。为了便于描述和说明,已经按演示次序给出了操作。在不背离所附的权利要求的范围的情况下,可以添加、省略和/或同时执行操作。

还应当理解,所图示的方法能够在任何时间结束,并且不需要整体执行。能够通过执行被包括在计算机存储介质上的计算机可读指令来执行方法的一些或全部操作和/或基本等效的操作,如下文所定义的。如在说明书和权利要求书中所使用的术语“计算机可读指令”以及其变体在本文中被广泛地使用以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。能够在各种系统配置上实现计算机可读指令,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费者电子产品、其组合等。

因此,应当理解,在本文中所描述的逻辑操作被实现为:(1)作为在计算系统上运行的一系列计算机实现的动作或程序模块,和/或(2)作为在计算系统内的互连的机器逻辑电路或电路模块。该实现方式是取决于计算系统的性能和其他要求的选择问题。因此,在本文中所描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以以软件、固件、专用数字逻辑以及其任意组合来实现。

例如,例程1000的操作在本文中被描述为至少部分地由运行在本文中所公开的特征的模块来实现,并且能够是动态链接库(DLL)、静态链接库、由应用编程接口(API)产生的功能、编译的程序、解释的程序、脚本或者任何其他可执行指令的集合。数据能够被存储在一个或多个存储器组件中的数据结构中。能够通过寻址对数据结构的链接或引用从所述数据结构中取回数据。

尽管以下图示涉及附图的组件,但是能够意识到,例程1000的操作也可以以许多其他方式来实现。例如,例程1000可以至少部分地由另一远程计算机或本地电路的处理器来实现。另外,例程1000的操作中的一个或多个操作可以替代地或另外地至少部分地由单独工作或者与其他软件模块结合工作的芯片组来实现。在下文所描述的示例中,计算系统的一个或多个模块能够接收和/或处理在本文中所公开的数据。适用于提供在本文中所公开的技术的任何服务、电路或应用都能够被用于在本文中所描述的操作。

例如,在图10中的操作能够由图13的计算设备1300来执行,如上文参考图1-9中的任何一个所描述的。

在操作1001处,在数据存储库处接收由源应用所生成的数据。

在操作1003处,将数据存储为持久性数据对象,所述持久性数据对象被配置为与多种应用和文档类型相兼容。在实施例中,所述持久性数据对象与独有的标识符相关联。

在操作1005处,响应于针对所述持久性数据对象的请求,基于所述持久性数据对象的独有的标识符来访问所述持久性数据对象。

在操作1007处,所述持久性数据对象被发送给执行目的地应用的计算设备。在实施例中,所述持久性数据对象被目的地应用所编辑的目的地文档合并并且与之相兼容。

在操作1009处,从用户计算设备接收对所述持久性数据对象的更新。在实施例中,通过在所述用户计算设备上编辑用户文档的用户应用来生成所述更新。

在操作1011处,响应于接收到由所述目的地计算设备已经将所述持久性数据对象插入在所述目的地文档中的指示,数据存储库将表示对所述持久性数据对象的所述更新的数据发送给所述目的地计算设备。在实施例中,所述数据能用于更新如被合并在所述目的地文档中的所述持久性数据对象。在一些实施例中,可以将至少经更新的持久性数据对象的数据发送给在更新之前已经合并或使用了所述持久性数据对象的多个设备、应用或文档。

在一些实施例中,所述持久性数据对象与类别相关联。所述类别可以与可操作用于使得所述目的地计算设备能够独立于目的地应用的呈现能力来呈现数据的逻辑相关联。

在一些实施例中,所述持久性数据对象的子集可操作用于插入在所述目的地文档中。

在一些实施例中,将指示经更新的持久性数据对象的数据发送给在所述更新之前已经合并或使用了所述持久性数据对象的多个设备、应用或文档。

在一些实施例中,所述持久性数据对象与使得能够访问所述持久性数据对象的许可相关联。

在一些实施例中,所述数据存储库可以被配置为存储来自多个源的持久性数据对象。

在一些实施例中,所述持久性数据对象还可以与指示作者、数据/时间戳、版本和标题中的一项或多项的元数据相关联。所述持久性数据对象还可以与指示被授权查看或编辑所述持久性数据对象的用户的元数据相关联。在实施例中,持久性数据对象可以被存储为表,所述表的每一行对应于所述持久性数据对象中的一个持久性数据对象。

在一些实施例中,至少部分地基于与所述持久性数据对象相关联的属性,将对所述持久性数据对象的更新选择性地发送给所述目的地计算设备。

在一些实施例中,当所述持久性数据对象被更新时,所述目的地文档可以被自动地更新。可以基于用户选项来自动地更新所述目的地文档。在一些实施例中,可以在所述持久性数据对象被更新时提供通知。

在一些实施例中,所述持久性数据对象可以与分组机制相关联。另外地,所述持久性数据对象可以与指示所述持久性数据对象属于哪个组的共享属性值相关联。

在一些实施例中,以展平格式为应用提供所述持久性数据对象。例如,所述应用可能不支持复杂的数据格式。

在一些实施例中,当所述持久性数据对象被更新时,防止基于用户选择来更新所述目的地文档。

在一些实施例中,所述持久性数据对象还与指示被授权查看或编辑所述持久性数据对象的用户的元数据相关联。

图11图示了用于实现如在下文所示和所描述的在本文中所公开的技术的各方面的例程1100的各方面。例如,能够由图13的计算设备1300来执行图11的操作,如上文关于图1-9的任何一个所描述的。

在操作1101处,可以通过在计算设备上执行的目的地应用将持久性数据对象插入在由所述目的地应用编辑的目的地文档中。在实施例中,所述持久性数据对象可以被配置为与多个应用和文档类型相兼容。

在操作1103处,接收对所述持久性数据对象的更新。在实施例中,可以通过用户应用在用户计算设备上编辑用户文档来生成所述更新。

在操作1105处,响应于接收到对所述持久性数据对象的所述更新,可以由所述目的地应用来更新被插入在所述目的地文档中的所述持久性数据对象。

在一些实施例中,可以从被配置为存储来自多个源的持久性数据对象的数据存储库接收所述持久性数据对象。所述持久性数据对象最初可以由在源计算设备上运行的源应用来生成。另外地,可以将所生成的持久性数据对象发送给被配置为存储多个持久性数据对象的远程数据存储库。

在一些实施例中,所述目的地应用可以被配置为处理所述持久性数据对象以呈现所述持久性数据对象的表示。所述表示可以包括作者、数据/时间戳、版本和标题中的一项或多项。另外地,版本可以包括所述持久性数据对象的多个版本,并且其中,提供了选项以选择版本之一用于合并到所述目的地文档中。

在一些实施例中,允许所述目的地应用锁定所述持久性数据对象中的信息的实例的特定时间帧。另外地,所述目的地文档可能不接收到对所述持久性数据对象的外部更新。

图12图示了用于实现如下文所示和所描述的在本文中所公开的技术的各方面的例程1200的各方面。例如,可以由图13的计算设备1300来执行图12中的操作,如上文关于图1-9的任何一个所描述的。

在操作1201处,由源应用编辑的持久性数据对象由执行源应用的源计算设备发送给数据存储库。在实施例中,所述持久性数据对象可以被配置为与多种应用和文档类型相兼容。

在操作1203处,生成对所述持久性数据对象的更新。

在操作1205处,可以将对所述持久性数据对象的所述更新发送给所述数据存储库。在实施例中,所述持久性数据对象可以与已经合并所述持久性数据对象的文档相兼容。

在实施例中,可以将所述更新维持为所述持久性数据对象的版本,并且可以应用对所述持久性数据对象的版本的访问权限。

图13示出了针对计算机的示例性计算机架构1300的额外细节,诸如能够执行在本文中所描述的程序组件的执行块管理功能1380和块可视化逻辑1390(图13)的计算设备。因此,在图13中所图示的计算机架构1300图示了针对服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机和/或膝上型计算机的架构。可以利用计算机架构1300来执行在本文中所提出的软件组件的任何方面。

在图13中所图示的计算机架构1300包括中央处理单元1302(“CPU”)、系统存储器1304(包括随机存取存储器13013(“RAM”)和只读存储器(“ROM”)13013)、以及将存储器1304耦合到CPU 1302的系统总线1310。基本输入/输出系统被存储在ROM 1306中,所述基本输入/输出系统包含诸如在启动期间帮助在计算机架构1300内的元件之间传递信息的基本例程。计算机架构1300还包括用于存储操作系统1307的大容量存储设备1312。大容量存储设备1312还可以包括块可视化逻辑1390和块管理功能1380,其包括如在本文中所公开的块可视化功能的一些或全部方面和如在本文中所公开的块管理功能。

大容量存储设备1312通过被连接到总线1310的大容量存储控制器(未示出)连接到CPU 1302。大容量存储设备1312以及其相关联的计算机可读介质为计算机架构1300提供了非易失性存储装置。尽管在本文中所包含的计算机可读介质的描述指代大容量存储设备,诸如固态驱动器、硬盘或CD-ROM驱动器,但是本领域技术人员应当理解,计算机可读介质能够是计算机架构1300能够访问的任何可用的计算机存储介质或通信介质。

通信介质包括计算机可读指令、数据结构、程序模块、或者诸如载波或其他传输机制之类的经调制的数据信号中的其他数据,并且包括任何传递介质。术语“经调制的数据信号”意指以对信号中的信息进行编码的方式改变或设置其一个或多个特性的信号。通过示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、RF、红外和其他无线介质之类的无线介质。以上任何内容的组合也应当被包括在计算机可读介质的范围之内。

通过示例而非限制,计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机介质包括但不限于:RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、数字多功能磁盘(“DVD”)、HD-DVD、蓝光、或其他光学存储装置、盒式磁带、磁带、磁盘存储或其他磁性存储设备,或者能够用于存储所需信息并且能够由计算机架构1300访问的任何其他介质。为了权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”以及其变体自身不包括波、信号和/或其他瞬时和/或无形通信介质。

根据各种配置,计算机架构1300可以使用通过网络1310和/或另一网络(未示出)到远程计算机的逻辑连接在联网环境中操作。计算机架构1300可以通过被连接到总线1310的网络接口单元1314连接到网络1310。应当意识到,网络接口单元1314还可以被用于连接到其他类型的网络和远程计算机系统。计算机架构1300还可以包括输入/输出控制器1313,其用于接收和处理来自许多其他设备的输入,包括键盘、鼠标或电子触笔(在图13中未示出)。类似地,输入/输出控制器1313可以将输出提供给显示屏、打印机或其他类型的输出设备(在图13中也未示出)。

应当意识到,在本文中所描述的软件组件可以在被加载到CPU 1302中并且被执行时,将CPU 1302和整个计算机架构1300从通用计算系统转换成被定制以促进在本文中所给出的功能的专用计算系统。CPU 1302可以由任意数量的晶体管或者其他分立电路元件构成,其可以个体地或共同地呈现任意数量的状态。更具体而言,响应于在本文中所公开的软件模块内包含的可执行指令,CPU 1302可以作为有限状态机来操作。这些计算机可执行指令可以通过指定CPU 1302如何在状态之间转换来变换CPU 1302,从而变换构成CPU 1302的晶体管或其他分立的硬件元件。

对在本文中所提出的软件模块进行编码也可以变换在本文中所提出的计算机可读介质的物理结构。在本说明书的不同实现方式中,物理结构的特定变换可以取决于各种因素。这样的因素的示例可以包括但不限于用于实现计算机可读介质的技术、计算机可读介质被表征为主要存储还是辅助存储等等。例如,如果计算机可读介质被实现为基于半导体的存储器,则可以通过变换半导体存储器的物理状态来将在本文中所公开的软件编码在计算机可读介质上。例如,所述软件可以变换构成半导体存储器的晶体管、电容器和/或其他分立电路元件的状态。所述软件还可以变换这样的组件的物理状态,以便在其上存储数据。

作为另一示例,可以使用磁性或光学技术来实现在本文中所公开的计算机可读介质。在这样的实现方式中,当软件被编码在其中时,在本文中所提出的软件可以变换磁性或光学介质的物理状态。这些变换可以包括改变在给定磁性介质内的特定位置的磁性特性。这些变换还可以包括改变在给定光学介质内特定位置的物理特征或特性,以改变那些位置的光学特性。在不背离本说明书的范围和主旨的情况下,物理介质的其他变换是可能的,提供前述示例仅是为了促进该讨论。

鉴于以上所述,应当意识到,在计算机架构1300中发生了许多类型的物理变换,以便存储和执行在本文中所提出的软件组件。还应当意识到,计算机架构1300可以包括其他类型的计算设备,包括手持计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员已知的其他类型的计算设备。还设想到了,计算机架构1300可以不包括在图13所示的所有组件、可以包括在图13中未明确示出的其他组件、或者可以利用与图13所示的架构完全不同的架构。

可以鉴于以下示例性条款来考虑在本文中所提出的公开内容。

示例性条款A,一种用于管理共享数据的方法,所述方法包括:

在数据存储库处接收由源应用生成的数据;

将所述数据存储为持久性数据对象,所述持久性数据对象被配置为与多个应用和文档类型相兼容,其中,所述持久性数据对象与独有的标识符相关联;

响应于针对所述持久性数据对象的请求,基于所述持久性数据对象的独有的标识符来访问所述持久性数据对象;

向执行目的地应用的计算设备发送所述持久性数据对象,其中,所述持久性数据对象被由所述目的地应用编辑的目的地文档合并并且与所述目的地文档相兼容;

从用户计算设备接收对所述持久性数据对象的更新,所述更新是由在所述用户计算设备上编辑用户文档的用户应用生成的;以及

响应于接收到所述持久性数据对象已经由所述目的地计算设备插入在所述目的地文档中的指示,由所述数据存储库向所述目的地计算设备发送指示对所述持久性数据对象的所述更新的数据,所述数据能用于更新被合并在所述目的地文档中的所述持久性数据对象。

示例性条款B,示例性条款A的方法,其中,所述持久性数据对象与类别相关联,所述类别与能操作用于使得所述目的地计算设备能够独立于所述目的地应用的呈现能力来呈现所述数据的逻辑相关联。

示例性条款C,示例性条款B的方法,其中,所述持久性数据对象的子集能操作用于插入在所述目的地文档中。

示例性条款D,示例性条款A至C中的任一项的方法,还包括:将指示经更新的持久性数据对象的数据发送到在所述更新之前已经合并或使用所述持久性数据对象的多个设备、应用或文档。

示例性条款E,示例性条款A至D中的任一项的方法,其中,所述持久性数据对象与使得能够访问所述持久性数据对象的许可相关联。

示例性条款F,示例性条款A至D中的任一项的方法,其中,对所述持久性数据对象的更新至少部分地基于与所述持久性数据对象相关联的属性被选择性地发送给所述目的地计算设备。

示例性条款G,示例性条款A至F中的任一项的方法,其中,所述持久性数据对象还与指示被授权查看或编辑所述持久性数据对象的用户的元数据相关联。

示例性条款H,示例性条款A至G中的任一项的方法,还包括以展平的格式提供所述持久性数据对象。

示例性条款I,示例性条款A至G中的任一项的方法,其中,所述目的地文档在所述持久性数据对象被更新时基于用户选项被自动地更新。

示例性条款J,示例性条款A至I中的任一项的方法,其中,所述目的地文档在所述持久性数据对象被更新时防止基于用户选项来更新。

示例性条款K,示例性条款A至J中的任一项的方法,其中,所述持久性数据对象与分组机制相关联,并且其中,所述持久性数据对象与指示所述持久性数据对象属于哪个组的共享属性值相关联。

尽管上文相对于方法描述了示例性条款A至K,但是应当理解,在本公开的上下文中,示例性条款A至L的主题能够额外地或替代地实现为设备、系统,或者经由计算机可读存储介质来实现。

示例性条款L,一种计算设备,包括:

一个或多个处理器;

与所述一个或多个处理器通信的存储器,所述存储器具有存储在其上的计算机可读指令,所述计算机可读指令当由所述一个或多个处理器执行时使所述计算设备用于:

由在所述计算设备上执行的目的地应用,将持久性数据对象插入在由所述目的地应用编辑的目的地文档中,其中,所述持久性数据对象被配置为与多个应用和文档类型相兼容;

接收对所述持久性数据对象的更新,所述更新是由在用户计算设备上编辑用户文档的用户应用生成的;以及

响应于接收到对所述持久性数据对象的所述更新,由所述目的地应用更新被插入在所述目的地文档中的所述持久性数据对象。

示例性条款M,示例性条款L的计算设备,其中,所述持久性数据对象最初是由在源计算设备上运行的源应用生成的。

示例性条款N,示例性条款L或示例性条款M的计算设备,其中,所述持久性数据对象最初是由所述目的地应用生成的,并且所生成的持久性数据对象被发送给被配置为存储多个持久性数据对象的远程数据存储库。

示例性条款O,示例性条款L至示例性条款N的计算设备,其中,所述目的地应用被配置为处理所述持久性数据对象以呈现所述持久性数据对象的表示。

示例性条款P,示例性条款L至示例性条款O的计算设备,其中,所述表示包括作者、数据/时间戳、版本和标题中的一项或多项。

示例性条款Q,示例性条款L至示例性条款P的计算设备,其中,所述版本包括所述持久性数据对象的多个版本,并且其中,提供了选项以选择所述版本中的一个版本以用于合并到所述目的地文档中。

示例性条款R,示例性条款L至示例性条款Q的计算设备,其中,所述版本包括所述持久性数据对象的多个版本,并且其中,提供了选项以选择所述版本中的一个版本以用于合并到所述目的地文档中。

尽管上文针对计算设备描述了示例性条款L至R,但是应当理解,在本公开的上下文中,示例性条款L至R的主题能够额外地或替代地通过方法或者经由计算机可读存储介质来实现。

示例性条款S,一种计算机实现的方法,包括:

由执行源应用的源计算设备向数据存储库发送由所述源应用编辑的持久性数据对象,其中,所述持久性数据对象被配置为与多个应用和文档类型相兼容;

生成对所述持久性数据对象的更新;以及

向所述数据存储库发送对所述持久性数据对象的所述更新,其中,所述持久性数据对象与已经合并了所述持久性数据对象的文档相兼容。

示例性条款T,示例性条款S的设备,其中,所述更新被维护为所述持久性数据对象的版本,并且对所述持久性数据对象的版本的访问权限被应用。

尽管上文相对于方法描述了示例性条款S至T,但是应当理解,在本公开的上下文中,示例性条款S至T的主题能够额外地或替代地被实现为设备或者经由计算机可读存储介质来实现。

尽管已经以特定于结构特征和/或方法动作的语言描述了所述技术,但是应当理解,所附权利要求书不一定限于所描述的特征或动作。相反,特征和动作被描述为这样的技术的示例性实现方式。

示例性过程的操作在各个框中被示出,并且参考那些框进行概述。所述过程被图示为框的逻辑流,其每个框能够表示能够以硬件、软件或者其组合实现的一个或多个操作。在软件的上下文中,所述操作表示被存储在一个或多个计算机可读介质上的计算机可执行指令,所述计算机可执行指令当由一个或多个处理器执行时使得所述一个或多个处理器能够执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。描述操作的次序并不旨在理解为限制,并且任何数量的所描述操作能够以任意次序来执行、以任意次序组合、被细分为多个子操作、和/或并行地执行,以实现所描述的过程。能够由与一个或多个设备(诸如一个或多个内部或外部CPU或GPU)和/或一个或多个硬件逻辑(诸如FPGA、DSP或其他类型的加速器)相关联的资源来执行所描述的过程。

以上描述的所有方法和过程可以经由由一个或多个通用计算机或处理器执行的软件代码模块来体现并且完全自动化。代码模块可以被存储在任何类型的计算机可读存储介质或其他计算机存储设备中。所述方法中的一些或全部方法可以替代地体现在专用计算机硬件中。

除非上下文另外明确指出,否则诸如“能够”、“可以”、“可能”或“可”之类的条件语言在上下文中应当被理解为表示某些示例包括而其他示例不包括某些特征、元素和/或步骤。因此,这样的条件性语言通常并不旨在暗示针对一个或多个示例以任何方式需要某些特征、元素和/或步骤,或者一个或多个示例必须包括用于在有或没有用户输入或提示的情况下决定在任何特定示例中是否包括或将要执行某些特征、元素和/或步骤的逻辑。除非另有明确说明,否则诸如短语“X、Y或Z中的至少一个”的单元应当被理解为表示项目、术语等可以是X、Y或Z或者其组合。

在本文中所描述的和/或在附图中描绘的流程图中的任何例程描述、元素或框应当被理解为潜在地表示包括用于实现例程中的特定逻辑功能或元件的一个或多个可执行指令的代码的模块、片段或部分。替代实现方式包含在在本文中所描述的示例的范围内,其中,取决于本领域技术人员理解的所涉及的功能,元件或功能可以从所示出或所讨论的元件或功能中删除或者以不按次序执行,包括基本上同步或以相反的次序执行。应当强调的是,可以对上述示例进行许多变型和修改,其中的元素应当被理解为是其他可接受的示例。所有这些修改和变型旨在包含在本公开的范围内,并且由所附权利要求保护。

相关技术
  • 跨文档的数据重用
  • 基于跨模态注意力卷积神经网络的课程领域多模态文档分类方法
技术分类

06120112525449