文档协作发现的制作方法

文档序号:16367354发布日期:2018-12-22 08:30阅读:295来源:国知局
文档协作发现的制作方法

目前存在各种技术,用于允许计算机用户创建电子文档,搜索电子文档,以及与其他用户就电子文档进行通信。然而,这些活动通常是手动执行的并且彼此完全分离。举例来说,用户正在写一篇关于恐龙(dinosaurs)的论文的场景。在这种场景下,用户可以利用基于网络的搜索引擎来定位具有关于恐龙的有趣内容的文档。用户还可以分离地尝试定位一个或多个所识别文档的一个或多个作者,并尝试联系他们以讨论他们在恐龙方面的工作。完全分离地,用户可以利用文字处理应用程序开始写他们的论文。由于搜索、通信和内容创建是完全分离的活动,因此对于文档创建者来说,这可能是一个耗时且令人沮丧的过程。此外,搜索引擎定位的内容通常是陈旧的,这对用户来说也是令人沮丧的。

除了对用户造成的低效率和沮丧之外,完全分离的搜索、通信和内容创建也可能导致其他类型的低效率。例如但不限于,在非常大的公司或其他类型的实体中,通常有两组或更多组人在同一主题上创建文档,很多时候彼此不得而知。这种重复努力可能导致人力资源的分配效率非常低,特别是在大规模的情况下。

分离的搜索、通信和内容创建也可能导致计算资源的低效分配。例如但不限于,在完全分离的搜索、通信和内容创建导致重复工作和人力资源的低效分配的场景下,可能无法高效地利用大容量存储设备、存储器和网络带宽。例如,相同或相似的内容可能在多个大容量存储设备或存储器中重复。类似地,可能会进行低效搜索以尝试定位文档作者或协作者。这些搜索可能不必要地消耗网络带宽和其他处理资源。

关于这些和其他考虑因素,提出了本文所公开的内容。



技术实现要素:

本文描述了用于文档协作发现的技术。通过本文公开的技术的实现方式,文档搜索、内容创建和协作的各方面以减少或甚至消除由先前系统引起的人力资源低效的方式集成,其中这些任务完全分离地执行。此外,本文公开的技术的实现方式还可以减少由先前系统引起的例如大容量存储设备、存储器和网络带宽的计算资源的低效使用,其中文档搜索、内容创建和协作是分离的。除了本文具体标识的技术益处之外的技术益处也可以通过实施所公开的技术来实现。

根据本文公开的一种配置,提供了协作文档创作环境,其允许用户发现正被其他用户活动编辑的内容、贡献于正被其他用户活动编辑的内容以及关于正被其他用户活动编辑的内容进行通信。特别地,协作创作环境包括协作系统,该协作系统提供用于使两个或更多个用户能够在文档上协作的功能。例如但不限于,可以允许这样的用户(这里可以称为文档的“活动编辑者”)同时创建、修改、删除和/或以其他方式编辑同一文档。协作系统还可以提供使得活动编辑者能够参与关于正在协作编辑的文档的实时消息传递的功能。协作系统还可以提供其他类型的功能,以使多个活动编辑者能够协作地创作文档。

为了利用协作系统提供的功能,每个活动编辑者可以利用被配置为执行应用程序的计算设备,该应用程序在本文中将被称为“协作创作应用程序”,用于与由协作系统提供的功能交互。例如,协作创作应用程序可以提供用于协作编辑文档的功能,用于与其他活动编辑者关于正在编辑的文档进行通信的功能,和/或其他类型的功能。

为了实现本文呈现的用于文档协作发现的功能,协作创作应用程序还可以被配置为实时或接近实时地向协作系统发送对协作编辑的文档的编辑。例如但不限于,随着协作创作应用程序可以在文档的单词、句子、段落或其他单元被创建或修改,将协作编辑的文档的单词、句子、段落或其他单元发送到协作系统。反过来,协作系统可以实时或接近实时地接收对文档的编辑,并也可以实时或接近实时地索引编辑以更新搜索索引。以这种方式,协作系统可以随着编辑由文档的活动编辑者实时或接近实时地进行而将对文档的编辑进行索引。

在一些配置中,协作系统还可以实时或接近实时地从协作创作应用程序或另一源获得关于正在协作编辑的文档的元数据,并在搜索索引中索引元数据。元数据可以包括但不限于标识文档的活动编辑者的数据、标识用搜索索引定位文档的查询中的搜索项的数据、标识文档的先前改变的数据、标识文档的一个或多个先前活动编辑者的数据,以及标识与文档相关联的一个或多个实时消息传递会话的数据。协作系统还可以实时或接近实时地获得和索引与在其他配置中正在或已经协作编辑的文档相关联的其他类型的元数据。

协作系统还提供用于发现其他用户当前正在协作的文档的功能(这里可称为“文档协作发现”的过程)。例如但不限于,协作系统可以接收包括来自另一用户的一个或多个搜索项的搜索查询。响应于接收搜索查询,协作系统可以使得针对与所提供的搜索项匹配的文档或元数据用搜索索引进行搜索。然后,协作系统可以使用户界面(“ui”)呈现给用户,其包括搜索结果。例如,ui可以包括当前(即,在接收搜索查询时)协作编辑的任何文档的标识。ui还可以标识文档的活动编辑者。

ui还可以包括ui控件,当被选择时,该ui控件将使得请求被发送到与文档的活动编辑者相关联的计算设备,以准许提交搜索查询的用户作为文档的活动编辑者。该请求可以标识提交搜索查询的用户以及导致文档在搜索结果中呈现的搜索查询中的搜索项。此信息可以与ui控件一起呈现给活动编辑者,当被选择时,该ui控件将准许进行搜索查询的用户作为文档的附加活动编辑者。类似地,可以呈现ui控件,其在被选择时将拒绝加入文档作为活动编辑者的请求。如果活动编辑者中的一个准许进行搜索查询的用户作为活动编辑者,则可以允许用户以与其他活动编辑者相同的方式在文档上进行协作。

在一些配置中,ui还可以包括ui控件,该ui控件在被选择时将使得请求被发送到与活动编辑者相关联的计算设备,以准许提交搜索查询的用户进入与文档的活动编辑者中的一个或多个的实时消息传递会话。该请求还可以标识提交搜索查询的用户以及导致正在协作编辑的文档在搜索结果中呈现的搜索查询中的搜索项。该信息可以与ui控件一起呈现给活动编辑者,ui控件在被选择时将准许进行搜索查询的用户进入与文档的一个或多个活动编辑者的实时消息传递会话。类似地,可以呈现ui控件,其将拒绝加入关于文档的实时消息传递会话的请求。

如果活动编辑者中的一个或多个指示进行搜索查询的用户将被准许进入实时消息传递会话,则可以在与进行搜索查询的用户相关联的计算设备与活动编辑者中的一个或多个操作的计算设备之间建立实时消息传递会话。可替代地,可以准许进行搜索请求的用户进入文档的两个或更多个活动编辑者之间的现有实时消息传递会话。

应当意识到,上述主题可以实现为计算机控制的装置、计算机进程、计算系统或者诸如计算机可读介质之类的制品。通过阅读以下详细描述和对相关附图的回顾,这些和各种其他特征将是显而易见的。

提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在将本发明内容用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中提到的任何或所有缺点的实现方式。

附图说明

图1是示出协作文档创作环境的配置的网络和软件体系结构图,其中可以根据一个说明性配置来实现这里公开的技术;

图2是示出说明性数据结构的各方面的数据结构图,该数据结构可用于存储在本文公开的一个特定配置中用于文档协作发现的元数据;

图3是示出根据一种配置的用于对文档协作发现中使用的文档编辑和关联元数据进行实时索引的例程的各方面的流程图;

图4a-4b是示出配置为提供文档协作发现的功能的图1中所示的协作文档编辑环境的附加方面的网络和软件体系结构图;

图5a-5c是根据本文公开的各种配置示出了可以提供用于文档协作发现的各种说明性用户界面的用户界面图;

图6是示出根据一种配置的用于执行文档协作发现的例程的各方面的流程图;

图7是示出用于能够实现本文提出的技术的各方面的计算系统的说明性计算机硬件和软件体系结构的计算机体系结构图;

图8是示出能够实现本文呈现的技术的各方面的分布式计算环境的计算机系统体系结构和网络图;以及

图9是示出用于能够实现本文所呈现的技术的各方面的另一计算设备的计算设备体系结构的计算机体系结构图。

具体实施方式

以下详细描述涉及用于文档协作发现的技术。如上所述,通过本文公开的技术的实现方式,文档搜索、内容创建和协作的各方面以设计为减少或甚至消除由其中这些任务完全分离执行的先前系统引起的人力资源效率低下和计算资源的低效使用的方式集成。除了本文具体标识的技术益处之外的技术益处也可以通过实施所公开的技术来实现。

虽然在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中呈现了本文描述的主题,但是本领域技术人员将认识到可以与其他类型的程序模块结合执行其他实现方式。通常,程序模块包括例程、程序、组件、数据结构和执行特定任务或实现特定抽象数据类型的其他类型的结构。此外,本领域技术人员将意识到,本文描述的主题可以用其他计算机系统配置来实践,包括手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机等。

在以下详细描述中,参考形成其一部分的附图,并且这些附图通过图示的方式示出为特定配置或示例。现在参考附图,其中相同的附图标记在若干附图中表示相同的元件,将描述用于扩展具有第三方数据和元数据的联合图的各种技术的各方面。

图1是示出根据一个说明性配置的可以实现本文公开的技术的协作文档创作环境100的配置的网络和软件体系结构图。如图1所示并且如上文所简要描述的,协作文档编辑环境100包括协作系统102,协作系统102提供用于使两个或更多个用户能够在文档104上协作的功能。例如但不限于此类用户(这里可能会称为文档104的“活动编辑者”106a和106b)可以被允许同时创建、修改、删除和/或以其他方式编辑同一文档104。文档104的活动编辑者106是使文档104打开以便在合适的程序中编辑的用户。

协作系统102还可以提供用于使活动编辑者106能够参与关于正被协作编辑的文档104的实时消息传递的功能。例如,在图1中,用户106a和106b正在参与实时消息传递会话118。协作系统102还可以提供其他类型的功能,以使多个活动编辑者106能够协作地创作文档104。

为了利用协作系统102提供的功能,每个活动编辑者106可以利用计算设备108,该计算设备108被配置为执行协作创作应用程序110,用于与协作系统102提供的功能交互。计算设备108可以是但不限于台式或膝上型计算机、智能移动电话、平板设备、板式设备、视频游戏设备、机顶盒或能够通过网络(图1中未示出)连接到协作系统102的其他类型的计算设备。

协作创作应用程序110可以提供用于与其他活动编辑者106协作地编辑文档104的功能,用于与其他活动编辑者106就正在编辑的文档进行通信,例如通过实时消息传递会话118,和/或其他功能类型。文档104可以是文字处理文档、电子表格文档、演示文档、绘图文档、实时通信会话的文本,用户的搜索历史,程序源代码或任何其他类型的文本内容。

为了实现所公开的功能以及可能的其他类型的功能,协作创作应用程序110还可以被配置为将对协作编辑的文档104的编辑112实时或接近实时地发送到协作系统102。例如但不限于,协作创作应用程序110可以随着协作编辑的文档104的单词、句子、段落或其他单元被活动编辑者106创建或修改将协作编辑的文档104的单词、句子、段落或其他单元发送到协作系统102。通过这种方式,可以将对协作编辑的文档104的编辑112发送到协作系统102,而很少或没有人类可感知的滞后。

反过来,协作系统102可以实时或接近实时地接收对文档104的编辑112,并将编辑112存储在适当的内容存储库116中。在一种配置中,内容存储库116被实现为图表,其维护文档104、其关联的元数据114、对文档的编辑112和可能的其他类型的数据之间的关系。其他实现方式也可以用在其他配置中。

在协作系统102内或与协作系统102结合操作的搜索引擎120还可以索引编辑112以更新搜索索引122,也可以是实时或接近实时。例如,搜索引擎120可以在某些配置中从接收到编辑112的时间起的两秒内索引编辑112。搜索索引122还可以存储在适当的数据存储库124中。以这种方式,协作系统102可以随着文档104的活动编辑者106实时或接近实时地进行编辑112而接收对文档104的编辑112并对其进行索引。

在一些配置中,协作系统102还可以实时或接近实时地从协作创作应用程序110或另一来源获得关于正在协作编辑的文档104的元数据114。协作系统102可以将元数据114存储在内容存储库116中或另一个合适的位置。协作系统102还可以实时或接近实时地将元数据114索引到搜索索引122中。暂时参考图2,将描述可由协作系统102接收和索引的元数据114的若干说明性示例。

图2是示出说明性数据结构的各方面的数据结构图,该数据结构可用于存储元数据114以用于本文公开的一个特定配置中的文档协作发现。如图2所示,元数据114可以包括但不限于标识文档104的当前活动编辑者106的元数据114a。元数据114还可以包括标识文档104的先前活动编辑者106的元数据114b。元数据图114还可以包括元数据114c,其包括与文档104相关联的一个或多个实时消息传递会话118的内容。

元数据114还可以包括元数据114d,其标识用搜索索引122定位文档104的查询中的搜索项。元数据114还可以包括元数据114e,其指定用户加入文档104以进行协作编辑和/或加入关于文档104的实时消息传递会话118的历史。元数据114还可以包括标识对文档104的先前编辑112的元数据114f。协作系统102还可以实时或接近实时地获得和索引与在其他配置中正在或已经协作编辑的文档104相关联的其他元数据114g。例如,其他元数据114g可以提供关于搜索和定位文档104的用户的信息,例如但不限于搜索用户正在其上工作的其他文档104、搜索用户最近阅读的其他文档104、指示搜索用户的组织层级中的位置的信息、关于搜索用户的其他信息和/或搜索用户提供的其他搜索项。

回到图1,将描述关于协作系统102提供的功能的附加细节。特别地,并且如上面简要讨论的,搜索引擎120还提供用于搜索搜索索引122以识别正在活动地在其上协作的文档104的功能。例如但不限于,用户(图1中未示出)可以向搜索引擎120提供包括一个或多个搜索项的搜索查询。搜索引擎120可以使用搜索索引122来执行对相关文档104的搜索。如果定位到与搜索查询相关的一个或多个文档104,则可以在适当的ui(也未在图1中示出)中向提交搜索查询的用户标识文档104。还可以在ui中标识每个相关文档104的活动编辑者106。另外,还可以呈现用于请求成为每个文档104的活动编辑者106(或评论者、批准者或观察者)和/或用于加入与每个文档104的活动编辑者106中的一个或多个的实时消息传递会话118的ui控件。关于这些方面的其他细节将在下面关于图4a-6提供。

图3是示出根据一种配置的用于执行文档编辑112和关联元数据114的实时索引以供在文档协作发现中使用的例程300的各方面的流程图。应该意识到的是,这里关于图3和其他图所描述的逻辑操作可以实现为(1)作为在计算系统上运行的计算机实现的动作或程序模块的序列,和/或(2)作为计算系统内的互连机器逻辑电路或电路模块。

这里公开的技术的特定实现是取决于计算系统的性能和其他要求的选择问题。因此,这里描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些状态、操作、结构设备,动作和模块可以用软件、固件、专用数字逻辑及其任何组合来实现。还应该意识到,可以执行比图中所示并且在此描述的更多或更少的操作。这些操作也可以以与这里描述的顺序不同的顺序执行。

例程300开始于操作302,其中协作系统102使得能够由两个或更多个活动编辑者(例如,活动编辑者106a和106b)进行协作文档创作。如上所述,该功能包括每个活动编辑者106同时编辑文档104的能力和/或其他配置中的其他类型的功能。还如上所述,在一些配置中,协作系统102或与其结合操作的另一系统还可以提供用于使得能够在活动编辑者106之间实时消息传递的功能。这发生在操作304。

从操作304,例程300进行到操作306,其中协作系统102确定对文档104的编辑112是否是待处理。如上所述,编辑112可以在由活动编辑者106做出时实时或接近实时地被发送。如果在操作306,协作系统102确定编辑112正在等待处理(pending),则例程300进行到操作308,在操作308接收编辑112。例程300然后从操作308进行到操作310,在操作310编辑112以上述方式存储在内容存储库116中,或存储在另一个合适的位置。

一旦已经存储了所接收的编辑112,例程300就前进到操作312,在操作312更新搜索索引122以反映所接收的编辑112。因为编辑112通常很小(例如,单词、句子或者段落),可以快速执行更新搜索索引122。在这方面,应当意识到,在一些配置中,操作308、310和312作为单个事务一起执行。以这种方式,随着活动编辑者106进行编辑112,可以实时或接近实时地接收、存储和索引编辑112。从操作312,例程300进行到操作314,操作314在下文进行描述。

如果在操作306,协作系统102确定编辑112未待处理,则例程300进行到操作314。在操作314,协作系统102确定元数据114更新是否是待处理。如上所述,随着对元数据114进行改变,也可以实时或接近实时地发送与文档104相关联的元数据114的更新。如果在操作314,协作系统102确定元数据114正在等待处理,则例程300进行到操作316,在操作316接收元数据114。例程300然后从操作316进行到操作318,在操作318元数据114以上述方式存储在内容存储库116中,或存储在另一个合适的位置。

一旦元数据114已经存储在内容存储库116中,例程300就前进到操作320,在操作320更新搜索索引122以反映所接收的元数据114。因为对元数据114的更改通常也小,更新搜索索引122以反映对文档104的元数据114的改变也可以快速执行。与编辑112的处理一样,操作316、318和320可以作为单个事务一起执行。以这种方式,随着元数据114的改变,可以实时或接近实时地接收、存储和索引对元数据114的更新。从操作320,例程300返回到操作302,在操作302中可以以类似的方式处理附加编辑112和元数据114。

图4a-4b是示出图1中所示并且如上所述的协作文档创作环境100的附加方面的网络和软件体系结构图,其被配置为提供用于文档协作发现的功能。如图4a所示并且如上文简要所述,协作系统102还提供用于发现其他用户(即活动编辑者106)正在其上活动协作的文档104的功能(这里可称为“文档协作发现”的过程)。

例如但不限于,结合协作系统102操作的搜索引擎120可以接收包括一个或多个搜索项的搜索查询402。在图4a所示的示例中,例如,用户400利用执行协作创作应用程序110的计算设备108c向搜索引擎120提交搜索查询402。

响应于接收搜索查询402,搜索引擎120执行搜索索引122的搜索,以搜索与所提供的搜索项匹配的文档104或元数据114。然后,协作系统102可以使包括搜索结果404的ui被呈现给用户400。该ui可以包括例如当前(即,在搜索查询402被接收时)协作编辑的任何文档104的标识。ui还可以标识所标识的文档104的文档的活动编辑者106。在一种配置中,ui由协作创作应用程序110呈现。在其他配置中ui可以由其他组件呈现。在这方面,应当意识到,可以不向未被授权查看搜索结果404的用户400呈现搜索结果404,或者可以向未被授权查看搜索结果404的用户400截断搜索结果404。

由协作创作应用程序110呈现的ui还可以包括ui控件(图4a或4b中未示出),当ui控件被选择时,将导致请求406被发送到与文档104的活动编辑者106相关联的计算设备108,用于准许提交搜索查询402的用户400作为文档104的活动编辑者。请求406可以标识提交搜索查询402的用户400和导致在搜索结果404中呈现文档104的搜索查询402中的搜索项。

该信息可以与ui控件一起呈现给活动编辑者106,当ui控件被选择时,将准许进行搜索查询402的用户400作为文档104的附加活动编辑者106。类似地,可以向活动编辑者106呈现ui控件,该ui控件当被选择时,将拒绝加入文档104作为活动编辑者106的请求406。如果活动编辑者106之一准许进行搜索查询402的用户400作为活动编辑者106,则可以允许该用户400以与其他活动编辑者106相同的方式在文档104上进行协作。

在一些配置中,呈现给提交搜索查询402的用户400的ui还可以包括ui控件(图4a或4b中未示出),该ui控件在被选择时将引起请求408(在图4b中示出)被发送到与活动编辑者106相关联的计算设备108,以准许提交搜索查询402的用户400与文档的活动编辑者106中的一个或多个进行实时消息传递会话118。请求408还可以标识提交搜索查询402的用户400和导致被协作编辑的文档104被呈现在搜索结果404中的搜索查询402中的搜索项。该信息可以与ui控件一起呈现给活动编辑者106,当被选择时,该ui控件将准许进行搜索查询402的用户400与文档104的一个或多个活动编辑者106进行实时消息传递会话118。类似地,可以呈现将拒绝来自用户400的加入关于文档104的实时消息传递会话的请求408的ui控件。

如果活动编辑者106中的一个或多个准许进行搜索查询402的用户400进入实时消息传递会话118,则可以在进行搜索查询402的用户400和活动编辑者106中的一个或多个之间建立实时消息传递会话118。可替代地,可以准许进行搜索请求402的用户400进入文档104的两个或更多个活动编辑者106之间的现有实时消息传递会话118。关于用于呈现搜索结果404的若干说明ui的附加细节将在下面关于图5a和5c提供。关于用于呈现加入协作创作会话406的请求406的一个说明性ui的附加细节将在下面参考图5b进行描述。

图5a-5c是分别示出了根据本文公开的各种配置的几个说明性ui500、525和575的用户界面图,这些ui可以被提供用于文档协作发现。特别地,图5a示出了ui500,其可以由协作创作应用程序110呈现给用户400,用户400期望发现文档104,文档104正在被活动地在其上协作。在该示例中,ui500包括搜索字段502,在搜索字段502中用户400可以指定一个或多个搜索项402。在该示例中,用户400已经将单词“恐龙”指定为搜索项402。

ui500还包括搜索结果列表404。搜索结果列表404中的项目504中的每个对应于在搜索项402被接收时由两个或更多个活动编辑者106活动编辑的文档104。ui500还包括由搜索返回的文档104中的每个的标识符506。例如,项504a的标识符506a列出名为“dinosaur_research.docx”的文档,而项目504b的标识符506b列出名为“dinosaur_presentation.pptx”的文档。

ui500还包括搜索结果404中引用的每个文档的活动编辑者106的标识符508。例如,在图5a所示的示例中,指示符508a指示两个活动编辑者106(即,josephkearney和adamwebb)正在协作编辑题为“dinosaur_research.docx”的文档104。类似地,指示符508b指示三个活动编辑者106(即billnelson,stevenwong和suzannechoi)正在协作编辑题为“dinosaur_presentation.pptx”的文档104。

如上面简要描述的,由协作创作应用程序110呈现的ui500还可以包括ui控件510,ui控件510当被选择时,将导致请求406被发送到与文档104的活动编辑者106相关联的计算设备108以准许提交搜索查询402的用户400作为文档104的活动编辑者。在图5a所示的示例中,例如,可以使用鼠标光标514来选择ui控件510a,例如,使得请求406被发送给用户“josephkearney”和“adamwebb”以加入题为“dinosaur_research.docx”的文档104的协作编辑。类似地,可以选择ui控件510b以使请求406被发送给用户billnelson、stevenwong和suzannechoi,以加入题为“dinosaur_presentation.pptx”的文档104的协作编辑。

在一些配置中,呈现给提交搜索查询402的用户400的ui500还可以包括ui控件512,ui控件512当被选择时,将使得请求408(图4b中示出)被发送到与活动编辑者106相关联的计算设备108,以准许提交搜索查询402的用户400进入与文档的活动编辑者106中的一个或多个的实时消息传递会话118。在图5a所示的示例中,例如,可以选择ui控件512a以使得请求408被发送到用户“josephkearney”和“adamwebb”以加入关于题为“dinosaur_research.docx”的文档104的实时消息传递会话118。类似地,可以选择ui控件512b以使请求408被发送给用户billnelson、stevenwong和suzannechoi,以便加入关于题为“dinosaur_presentation.pptx”的文档104的实时消息传递会话118。

图5b示出了ui525,ui525可以在选择用于请求加入文档104作为活动编辑者106的ui控件510之一之后由协作创作应用程序110呈现给活动编辑者106。如图5b所示,可以向活动编辑者106呈现对话框516或其他类型的ui控件,指示用户400(在该示例中,名为“stevesmith”的用户400)已经请求加入文档104作为活动编辑者104。对话框516或其他类型的ui控件还可以标识将用户400引导到文档104的搜索项。在该示例中,用户400搜索“恐龙”,其定位题为“dinosaur_research.docx”的文档。通过该信息的呈现,活动编辑者106可以学习请求成为活动编辑者106的用户400的身份以及将用户400引导到文档104的搜索项。

如图5a所示,ui525还可以包括ui控件518a和518b,当被选择时,将分别允许请求406或拒绝请求406。在该示例中,活动编辑者106已经用鼠标光标514选择了ui控件518a,以便允许用户400成为题为“dinosaur_research.docx”的文档的活动编辑者104。应当意识到,当用户400发出加入与文档104的活动编辑者106的实时消息传递会话118的请求408时,也可以呈现类似的ui。

应当进一步理解,用户界面525还可以包括可能有助于活动编辑者106确定是否准许请求用户400进入协作编辑或实时消息传递会话118的其他信息。例如并且不限于,ui525可以包括指示组织内的请求用户400和活动编辑者106之间的关系的信息。例如,组织图表的一部分可以在ui525中呈现。在另一种配置中,ui525可以指示用户400是否是活动编辑者的联系人列表或社交网络的成员。ui525还可以指示用户400已经创作的其他文档、关于用户400的生物信息、用户400的照片或视频、和/或用户400的联系信息,例如他们的电子邮件地址、电话号码、办公地点。在其他配置中可以呈现其他类型的信息。

图5c示出了可以呈现给协作编辑应用程序110的用户400的另一示例ui575。在该示例中,用户400正在编辑文档的文本580。协作编辑应用程序110检查正在编辑的文本580并使用位于文本580中的项582自动执行搜索。如果搜索返回相关搜索结果404,则可以在搜索窗格584中呈现搜索结果404。

例如,在图5c所示的示例中,术语“恐龙”位于文本582中并用于生成到搜索引擎120的搜索查询402。因为搜索返回了相关搜索结果404,所以项582可以加下划线或以其他方式强调以指示正在活动地对与项582有关的文档104进行协作。另外,搜索结果404显示在搜索窗格584中,对于每个相关文档104,包括文档的名称、活动作者以及用于请求加入文档104作为活动编辑者106以及加入关于文档104的实时消息传递会话118的ui控件510和512。

应当意识到,其他ui控件和信息也可以以其他配置呈现。例如但不限于,在一种配置中,用户400可以指定“常设查询(standingquery)”。由于常设查询是定期自动执行的查询。搜索结果可以连续地呈现给用户,或者当识别出与常设查询中指定的项匹配的新文档104时呈现给用户。可以在其他配置中执行其他类型的搜索。

图6是示出根据一种配置的用于执行文档协作发现的例程600的各方面的流程图。例程600开始于操作602,其中搜索引擎120接收包括一个或多个搜索项的搜索查询402。在一些配置中,提供搜索查询402的用户400可以指示搜索查询402将仅返回在先前时间帧(例如,最后15分钟)中活动编辑的文档104。用户400还可以定义在其他配置中执行搜索查询402的方式的其他方面。

然后,例程600从操作602进行到操作604,其中搜索引擎120利用搜索项执行搜索索引122的搜索。如果搜索返回相关搜索结果404,则例程600从操作606进行到操作608。

在操作608,在适当的ui中呈现搜索结果列表404,诸如图5a和5c中分别所示的说明性ui500和575。在这方面,应当意识到,在各种配置中可以基于搜索结果404的相关性对搜索结果404进行排序。可以至少部分地基于与搜索结果相关联的元数据114来确定特定搜索结果的相关性。例如但不限于,用户的最近文档加入和后续编辑可以使得特定搜索结果的相关性上升。基于文档104出现在搜索结果404中的频率,用户400请求对在搜索结果404中的文档104进行协作的频率、当前正在编辑搜索结果404中的文档104的活动编辑者106以及它们与搜索者的关系、搜索结果404中的文档104的先前活动编辑者106和/或其他因素或元数据114,可以进一步影响搜索结果404中的特定文档104的相关性。

然后,例程600从操作608进行到操作610,在操作610协作系统102确定是否已经从用户400接收到加入搜索结果404中标识的文档104作为活动编辑者106的请求406。如果已经接收到这样的请求,查询文档104的当前活动编辑者106以准许用户400作为活动编辑者106。如上所述,ui525,如上面关于图5b所讨论的那样,可以呈现给当前活动编辑者106以获得他们关于将用户400添加为活动编辑者106的同意。

如果活动编辑者106中的一个或多个批准请求406,则例程600从操作614进行到操作616,在操作616用户400被准许作为活动编辑者106进入文档104。如果请求406被拒绝,则例程600从操作614进行到操作618。在这方面,应当意识到,在一些配置中,活动编辑者106在用户400被准许作为文档104的活动编辑者106之前不需要提供批准。在这些配置中,用户400被自动准许作为活动编辑者106进入文档104。

在操作618,协作系统102确定是否已经从用户400接收到加入关于在搜索结果40中标识的文档104的实时消息传递会话118的请求408。如果已经接收到这样的请求,查询文档104的当前活动编辑者106以准许用户400进入实时消息传递会话118。

如果活动编辑者106中的一个或多个批准请求408,则例程600从操作618进行到操作620,在操作620用户400被准许进入实时消息传递会话118。如果请求408被拒绝,则例程600从操作618返回到操作602,在操作602可以以上述方式处理附加搜索查询402。在这方面,应当意识到,在一些配置中,活动编辑者106在用户400被准许进入与文档104的活动编辑者106中的一个或多个的实时消息传递会话118之前不需要提供批准。在这些配置中,用户400被自动地准许进入实时消息传递会话118。

应当意识到,在计算设备108上和协作系统102内执行的上述各种软件组件可以使用二进制可执行文件、动态链接库(“dll”)、应用程序编程接口(“api”)、网络服务、脚本文件、解释的程序代码、软件容器、目标文件、适合于即时(“jit”)编译的字节码、和/或可由处理器执行以执行本文关于图1-6所描述的操作的其他类型的程序代码来实现或结合以上这些来实现。也可以使用此处未具体提及的其他类型的软件组件。

图7是示出了能够执行本文描述的软件组件的计算机700的体系结构的计算机体系结构图。图7中所示的体系结构是用于服务器计算机、移动电话、电子阅读器、智能电话、台式计算机、上网本计算机、平板计算机、膝上型计算机或适于执行本文呈现的软件组件的其他类型的计算设备的体系结构。

在这方面,应该意识到的是,图7中所示的计算机700可以可用于实现能够执行本文所呈现的任何软件组件的计算设备。例如但不限于,参考计算机700描述的计算体系结构可用于实现协作创作应用程序110、搜索引擎120、协作系统102内的或在计算设备108上执行的其他组件、和/或实现用于执行上述任何其他软件组件的其他类型的计算系统。

图7中示出的计算机700包括中央处理单元702(“cpu”),系统存储器704,包括随机存取存储器706(“ram”)和只读存储器(“rom”)708,以及将存储器704耦合到cpu702的系统总线710。包含有助于例如在启动期间在计算机700内的元件之间传送信息的基本例程的基本输入/输出系统存储在rom708中。计算机700还包括大容量存储设备712用于存储操作系统714和一个或多个程序,包括但不限于协作创作应用程序110、搜索引擎120和/或搜索索引122,这取决于计算机700的使用。大容量存储设备712还可以配置为存储本文描述但是未在图7中具体示出的其他类型的程序和数据。

大容量存储设备712通过连接到总线710的大容量存储控制器(未示出)连接到cpu702。大容量存储设备712及其相关联的计算机可读介质为计算机700提供非易失性存储。尽管这里包含的计算机可读介质的描述是指大容量存储设备,例如硬盘、cd-rom驱动器、dvd-rom驱动器或usb存储密钥,本领域技术人员应该意识到,计算机可读介质可以是可由计算机700访问的任何可用计算机存储介质或通信介质。

通信介质包括计算机可读指令、数据结构、程序模块、或诸如载波或其他传输机制的调制数据信号中的其它数据,并且包括任何递送介质。术语“调制数据信号”是指其特性中的一个或多个以将信息编码到信号中的方式进行设定或改变的信号。通过示例而不是限制的方式,通信介质包括诸如有线网或直接连线连接的有线介质以及诸如声波、射频、红外和其他无线介质的无线介质。上述任意的组合也应当包含在计算机可读介质的范围内。

通过举例而不是限制的方式,计算机存储介质可以包括以用于诸如计算机可读指令、数据结构、程序模块或其它数据的信息的存储的任何方法或技术实现的易失性和非易失性的、可移除和非可移除的介质。例如,计算机存储介质包括但不限于ram、rom、eprom、eeprom、闪速存储器或其它固态存储器设备、cd-rom、数字多功能盘(“dvd”)、hd-dvd、blu-ray或其它光存储盘、磁盒、磁带、磁盘存储或其它磁存储设备、或者能够用于存储所需的信息且能够由计算机700访问的任何其它介质。为了权利要求的目的,短语“计算机存储介质”及其变化形式本身不包含波或信号本身或通信介质。

根据各种配置,计算机700可以使用通过诸如网络718的网络到远程计算机的逻辑连接在联网环境中操作。计算机700可以通过连接到总线710的网络接口单元720连接到网络718。应当意识到,网络接口单元720还可以用于连接到其他类型的网络和远程计算机系统。计算机700还可以包括输入/输出控制器716,用于接收和处理来自多个其他设备的输入,包括键盘、鼠标、触摸输入或电子触控笔(图7中未示出)。类似地,输入/输出控制器716可以向显示屏、打印机或其他类型的输出设备(也未在图7中示出)提供输出。

应当意识到,本文描述的软件组件(例如但不限于协作创作应用程序110)在被加载到cpu702中并且被执行时,可以将cpu702和整个计算机700从通用计算系统变换成经定制而促进本文呈现的功能的专用计算系统。cpu702可以由任何数量的晶体管或其他分立电路元件构成,其可以单独地或共同地呈现任何数量的状态。更具体地,响应于包含在本文公开的软件模块内的可执行指令,例如但不限于协作创作应用程序110,cpu702可以作为有限状态机进行操作。这些计算机可执行指令可以通过规定cpu702如何在状态之间转变而变换cpu702,从而变换构成cpu702的晶体管或其它离散硬件元件。

对诸如协作创作应用程序110之类的在此呈现的软件模块进行编码也可以变换在此呈现的计算机可读介质的物理结构。在本说明书的不同实施方式中,物理结构的特定变换取决于各种因素。这些因素的示例包括但不限于用来实现计算机可读介质的技术,无论计算机可读介质是表征为主存储还是辅存储,等等。例如,如果计算机可读介质实现为基于半导体的存储器,则本文公开的软件可以通过变换半导体存储器的物理状态而编码到计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器、或其它离散电路元件的状态。软件还可以变换这些组件的物理状态从而在其中存储数据。

作为另一示例,本文所公开的计算机可读介质可以利用磁或光技术来实现。在这些实现方式中,当软件编码到其中时,本文所呈现的软件组件可以变换磁或光介质的物理状态。这些变换可以包括改变在既定磁介质内的特定位置的磁特性。这些变换还可以包括改变在给定的光介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。物理介质的其它变换是可能的,而不偏离本说明书的范围和精神,提供了上述示例仅为了促进该论述。

鉴于以上所述,应当意识到,在计算机700中发生许多类型的物理变换,以便存储和执行本文给出的软件组件。还应该意识到,可以使用图7中所示的计算机700的体系结构或类似的体系结构来实现其他类型的计算设备,包括手持式计算机,嵌入式计算机系统,诸如智能手机和平板电脑的移动设备,以及本领域技术人员已知的其他类型的计算设备。还预期计算机700可能不包括图7中所示的所有组件,可以包括未在图7中明确示出的其他组件,或者可以使用与图7中所示的体系结构完全不同的体系结构。

图8示出了说明性分布式计算环境802的各方面,其中可以执行本文描述的软件组件。因此,图8中所示的分布式计算环境802可用于执行程序代码,例如搜索引擎120和/或在协作系统102内操作的其他组件,能够提供本文关于图1-6所描述的功能,和/或本文描述的任何其他软件组件。例如但不限于,分布式计算环境802可用于实现由协作系统102提供的本文描述的功能。

根据各种实现方式,分布式计算环境802在网络803上,与网络803通信或作为网络803的一部分进行操作。一个或多个客户端设备806a-806n(以下统称和/或通称为“客户端806”)可以经由网络803和/或其他连接(图8中未示出)与分布式计算环境802进行通信。

在所示的配置中,客户端806包括:计算设备806a,诸如膝上型计算机、台式计算机或其他计算设备;“板式”或平板计算设备(“平板计算设备”)806b;移动计算设备806c,例如移动电话、智能电话或其他移动计算设备;服务器计算机806d;和/或其他设备806n。应当意识到,任何数量的客户端806可以与分布式计算环境802进行通信。这里参考图7和9示出和描述了用于客户端806的两个示例计算体系结构。图7和9中所示的体系结构也可用于实现上述计算设备108。在这方面,应该理解到的是,这里示出和描述的所示客户端806和计算体系结构是说明性的,并且不应该被解释为以任何方式受到限制。

在所示配置中,分布式计算环境802包括应用服务器804、数据存储设备810和一个或多个网络接口812。根据各种实现方式,应用服务器804的功能可以由作为网络803的一部分执行或与网络803通信的一个或多个服务器计算机提供。应用服务器804可以托管各种服务,例如上述搜索引擎120、虚拟机、门户和/或其他资源。在所示配置中,应用服务器804托管一个或多个虚拟机814,用于托管应用或网络服务,例如在协作系统102内操作的组件,或其他类型的应用和/或服务。应该理解到,该配置是说明性的,不应被解释为以任何方式进行限制。应用服务器804还可以托管或提供对一个或多个web门户、链接页面、网站和/或其他信息(“web门户”)816的访问。

根据各个实现方式,应用服务器804还包括一个或多个邮箱服务818和一个或多个消息传递服务820。邮箱服务818可以包括电子邮件(“email”)服务。邮箱服务818还可以包括各种个人信息管理(“pim”)服务,包括但不限于日历服务、通讯录管理服务、协作服务和/或其它服务。消息传递服务820可以包括但不限于即时消息传递(“im”)服务、聊天服务、论坛服务和/或其它通信服务

应用服务器804还可以包括一个或多个社交联网服务822。社交联网服务822可以提供各种类型的社交联网服务,包含但不限于用于共享或张贴状态更新、即时消息、链接、照片、视频和/或其它信息的服务;用于评论或显示对文章、产品、博客或其它资源的兴趣的服务;和/或其它服务。在一些配置中,社交联网服务822由如下提供或包含如下:facebook社交联网服务,linkedin专业联网服务,myspace社交联网服务,foursquare地理联网服务,yammer办公同事联网服务,等等。在其它配置中,社交联网服务822由其它服务、站点和/或可称为“社交联网提供商”的提供商来提供。例如,一些web站点允许用户在各种活动和/或上下文中经由电子邮件、聊天服务和/或其它手段彼此交互,例如,阅读出版的文章,评论商品或服务,发布,协作,玩游戏等。其他服务是可能的并且是预期的。

社交网络服务822还可以包括评论、发博客和/或发微博服务。这些服务的示例包括但不限于,yelp评论服务、kudzu审阅服务、officetalk企业微博服务、twitter消息传递服务、googlebuzz服务和/或其它服务。应当意识到,上述服务列表不是穷尽的,而且为了简要起见在此没有提到过多的附加的和/或可替代的社交联网服务822。因此,上述配置是示例性的,而不应解释为以任何方式进行限制。

还如图8所示,应用服务器804还可以托管其他服务、应用、门户和/或其他资源(“其他服务”)824。其他服务824可以包括但不限于本文描述的任何其他软件组件。因此可以意识到,分布式计算环境802可以提供本文公开的技术与各种邮箱、消息传递、博客、社交网络、生产力和/或其他类型的服务或资源的集成。

如上所述,分布式计算环境802可以包括数据存储设备810。根据各种实现方式,数据存储设备810的功能由在网络803上操作或与网络803通信的一个或多个数据库提供。数据存储设备810的功能还可以由被配置为托管分布式计算环境802的数据的一个或多个服务器计算机提供。数据存储设备810可以包括,托管或提供一个或多个真实或虚拟数据存储库826a-826n(下文中统称和/或一般地称为“数据存储库826”)。数据存储库826被配置为托管由应用服务器804使用或创建的数据和/或其他数据,例如上述搜索索引122、元数据114和文档104。

分布式计算环境802可以与网络接口812通信或者由网络接口812访问。网络接口812可以包括用于支持两个或更多个计算设备之间的通信的各种类型的网络硬件和软件,包括但不限于客户端806和应用服务器804。应当意识到,网络接口812也可以用于连接到其他类型的网络和/或计算机系统。

应当意识到,本文描述的分布式计算环境802可以利用可以被配置为执行本文公开的软件组件的任何方面的任何数量的虚拟计算资源和/或其他分布式计算功能来实现本文描述的软件元素的任何方面。根据本文公开的技术的各种实现方式,分布式计算环境802将本文描述的一些或全部软件功能作为服务提供给客户端806。应当理解到,客户端806还可以包括真实或虚拟机,包括但不限于服务器计算机、web服务器、个人计算机、移动计算设备、智能电话和/或其他设备。这样,本文公开的技术的各种实现方式使得配置为访问分布式计算环境802的任何设备能够利用本文描述的功能。

现在转到图9,将描述用于能够执行本文描述的各种软件组件的计算设备的说明性计算设备体系结构900。计算设备体系结构900适用于部分地由于形状因子、无线连接和/或电池供电操作而促进移动计算的计算设备。在一些配置中,计算设备包括但不限于智能移动电话、平板设备、板式设备、便携式视频游戏设备等。

计算设备体系结构900还适用于图8中所示的任何客户端806。此外,计算设备体系结构900的各方面适用于传统台式计算机、便携式计算机(例如,膝上型计算机、笔记本电脑、超便携式计算机和上网本)、服务器计算机和其他计算机系统,诸如本文中参考图8所述的那些。例如,下文中公开的单触摸和多触摸方面可以应用于利用触摸屏或一些其他触摸使能设备的台式计算机,诸如启用触摸的跟踪板或启用触摸的鼠标。计算设备体系结构900还可以用于实现计算设备108、协作系统102内的计算设备,和/或用于实现或消费本文描述的功能的其他类型的计算设备。

图9中示出的计算设备体系结构900包括处理器902、存储器组件904、网络连接组件906、传感器组件908、输入/输出组件910和电源组件912。在所示配置中,处理器902与存储器组件904、网络连接组件906、传感器组件908、输入/输出(“i/o”)组件910和电源组件912通信。尽管在图9中示出的各个组件之间没有示出连接,但是组件可以电连接以便交互并执行设备功能。在一些配置中,组件被布置为经由一个或多个总线(未示出)进行通信。

处理器902包括一个或多个cpu核,其被配置为处理数据,执行一个或多个应用程序的计算机可执行指令,例如协作创作应用程序110,并且与计算设备体系结构900的其他组件进行通信以执行本文描述的功能的各方面。处理器902可用于执行本文呈现的软件组件的各方面,尤其是至少部分地利用触摸启用输入的那些方面。

在一些配置中,处理器902包括图形处理单元(“gpu”),其被配置成加速cpu所执行的操作,包括但不限于,通过执行通用科学与工程计算应用所实施的操作,以及诸如高分辨率视频(例如,720p,1080p,4k和更大)、视频游戏、3d建模应用等图形密集计算应用所实施的操作。在一些配置中,处理器902被配置成与分立的gpu(未示出)通信。在任何情况下,cpu和gpu可以依照共处理的cpu/gpu计算模型来配置,其中应用的顺序的部分在cpu上执行,计算密集部分由gpu来加速。

在一些配置中,连同下文所描述的其它组件中的一个或多个一起,处理器902是片上系统(“soc”)或者包含在soc中。例如,soc可以包括处理器902、gpu、网络连接组件906中的一个或多个以及传感器组件908中的一个或多个。在一些配置中,处理器902部分地利用封装上封装(“pop”)集成电路封装技术来制造。而且,处理器902可以是单核或多核处理器。

处理器902可以依照来自英国剑桥的armholdings的可供认证的arm体系结构来产生。可替代地,处理器902可依照x86体系结构来产生,例如可从加利福尼亚山景城以及其它的英特尔公司获得。在一些配置中,处理器902是可从加利福尼亚的圣地牙哥的qualcomm得到的snapdragonsoc、可从加利福尼亚的圣塔克拉拉的nvidia得到的tegrasoc、可从韩国首尔samsung得到的hummingbirdsoc、可从德克萨斯州的达拉斯的德州仪器得到的openmultimediaapplicationplatform("omap")soc、上述soc中的任一个的定制版本或专有soc。

存储器组件904包括ram914、rom916、集成存储存储器(“集成存储”)918和可移动存储存储器(“可移动存储”)920。在一些配置中,ram914或其中的一部分、rom916或其一部分和/或ram914和rom916的某种组合集成在处理器902中。在一些配置中,rom916被配置为存储固件、操作系统或其一部分(例如,操作系统内核)和/或引导加载程序,用于从集成存储918或可移动存储920加载操作系统内核。

集成存储918可以包括固态存储器、硬盘或固态存储器和硬盘的组合。集成存储918可以是钎焊到或以其它方式连接到逻辑板上,处理器902以及本文所描述的其它组件也可以连接到该逻辑板上。因此,集成存储918集成到计算设备中。集成存储918可以被配置成存储本文所描述的操作系统或其部分、应用程序、数据和其它软件组件。

可移除存储920可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些配置中,可移除存储920被提供以取代集成存储918。在其它配置中,可移除存储920被提供作为附加的可选存储。在一些配置中,可移除存储920与集成存储918逻辑地组合而使得总可用存储可用且作为集成存储918和可移除存储920的总组合容量显示给用户。

可移除存储920被配置成插入可移除存储存储器槽(未示出)或可移除存储920通过其插入和固定的其它机构,以利于可移除存储920能够借以与诸如处理器902的计算设备的其它组件通信的连接。可移除存储920可以嵌入各种存储器卡格式中,包括但不限于,pc卡、compactflash卡、记忆棒、安全数字(“sd”)、minisd、microsd、通用集成电路板(“uicc”)(例如,订户身份模块(“sim”)或通用sim(“usim”))、专有格式等等。

可以理解的是,存储器组件904中的一个或多个能够存储操作系统。根据各个配置,操作系统包括但不限于来自微软公司的windowsmobileos、windowsphoneos或windowsos、来自加拿大安大略滑铁卢的researchinmotion公司的blackberryos、来自加利福尼亚的库比蒂诺的苹果公司的ios以及来自加利福尼亚的山景城的谷歌公司的androidos。可想到其它操作系统。

网络连接组件906包括无线广域网组件(“wwan组件”)922、无线局域网组件(“wlan组件”)924以及无线个域网组件(“wpan组件”)926。网络连接组件906利于去往和来自网络928的通信,网络可以是wwan、wlan或wpan。虽然示出了单个网络928,但是网络连接组件906可促进与多个网络的同时通信。例如,网络连接组件906可以促进经由wwan、wlan或wpan中的一个或多个与多个网络同时通信。

网络928可以是wwan,诸如使用一个或多个移动远程通信技术来经由wwan组件922提供语音和/或数据服务给使用计算设备体系结构900的计算设备的移动远程通信网络。移动远程通信技术可以包括但不限于全球移动通信系统(“gsm”)、码分多址(“cdma”)one、cdma2000、通用移动远程通信系统(“umts”)、长期演进(“lte”)和世界微波接入互操作(“wimax”)。

而且,网络928可以使用各种信道接入方法(其可以或者可以不由上述标准来使用),包括但不限于,时分多址(“tdma”)、频分多址(“fdma”)、cdma、宽带cdma(“w-cdma”)、正交频分多路复用(“ofdm”)、空间分多址(“sdma”)和类似方法。数据通信可以利用如下来提供:通用分组无线电服务(“gprs”)、全局演进增强数据率(“edge”)、高速分组接入(“hspa”)协议系列,包括高速下行链路分组接入(“hsdpa”)、增强上行链路(“eul”)或另外称为高速上行链路分组接入(“hsupa”)、演进的hspa(“hspa+”)、lte、以及其它各种当前和未来的无线数据访问标准。网络928可被配置成利用上述技术的任意组合来提供语音和/或数据通信。网络928可被配置成或适于依照未来代的技术来提供语音和/或数据通信。

在一些配置中,wwan组件922被配置成提供到网络928的双重多模式连接。例如,wwan组件922可以被配置成提供到网络928的连接,其中网络928经由gsm和umts技术来提供服务,或者经由技术的某种其它组合。可替代地,多个wwan组件922可用来实施该功能,和/或提供附加功能来支持其它非兼容技术(即,不能被单个wwan组件支持)。wwan组件922可促进到多个网络(例如,umts网络和lte网络)的类似的连接。

网络928可以是根据一个或多个电气和电子工程师协会(“ieee”)104.11标准操作的wlan,例如ieee104.11a,104.11b,104.1lg,104.11n和/或未来104.11标准(此处统称为wi-fi)。还考虑了草案104.11标准。在一些配置中,利用一个或多个无线wi-fi接入点来实现wlan。在一些配置中,无线wi-fi接入点中的一个或多个是充当wi-fi热点的具有到wwan的连接的另一计算设备。wlan组件924被配置为经由wi-fi接入点连接到网络928。可以通过各种加密技术来保护这种连接,包括但不限于wi-fi保护访问(“wpa”)、wpa2、有线等效保密(“wep”)等。

网络928可以是依照红外数据联盟(“irda”)、bluetooth、无线通用串行总线(“usb”)、z-wave、zigbee或某其它短程无线技术来操作的wpan。在一些配置中,wpan组件926被配置成促进与诸如外围设备、计算机或其它计算设备的其它设备经由wpan的通信。

传感器组件908包括磁力计930、环境光传感器932、接近传感器934、加速度计936、陀螺仪938和全球定位系统传感器(“gps传感器”)940。可想到,诸如但不限于温度传感器或震动检测传感器的其它传感器也可以包含在计算设备体系结构900中。

磁力计930可以被配置成测量磁场的强度和方向。在一些配置中,磁力计930提供测量给存储在存储器组件904中的一个内的罗盘应用程序从而为用户提供参考系内的精确的方向,包括主要方向,北、南、东和西。可以对包括罗盘组件的导航应用程序提供类似的测量。可想到通过磁力计930所获得的测量的其它用途。

环境光传感器932被配置成测量环境光。在一些配置中,环境光传感器932提供测量给存储在存储器组件904中的一个内的应用程序从而自动地调节显示器(下面所述)的亮度从而补偿低光照环境和高光照环境。可想到通过环境光传感器932所获得的测量的其它用途。

接近传感器934被配置成在不直接接触的情况下检测靠近计算设备的物体或事物的存在。在一些配置中,接近传感器934检测用户的身体(例如,用户的面部)的存在且提供该信息给存储在存储器组件904中之一内的、使用接近信息来启用或禁用计算设备的某功能的应用程序。例如,电话应用程序可以响应于接收到接近信息而自动禁用触摸屏(下面说明),使得用户的面部不会在通话期间不利地结束通话或启用/禁用电话应用程序内的其它功能。接近传感器934所检测到的接近度的其它用途可被想到。

加速度计936被配置成测量适当的加速度。在一些配置中,来自加速度计936的输出由应用程序用作控制应用程序的某功能的输入机制。在一些配置中,来自加速度计936的输出提供给应用程序以便用于在横向模式与纵向模式之间切换,计算坐标加速度,或者检测落差。可以想到加速度计936的其它用途。

陀螺仪938被配置成测量和维持方位。在一些配置中,来自陀螺仪938的输出由应用程序用作控制应用程序的某功能的输入机制。例如,陀螺仪938能够用于视频游戏应用或某其它应用的3d环境内的移动的精确识别。在一些配置中,应用程序使用来自陀螺仪938和加速度计936的输出来增强某种功能的控制。可想到陀螺仪938的其它用途。

gps传感器940被配置成接收来自gps卫星的信号以用于计算位置。通过gps传感器940计算的位置可由需要或受益于位置信息的任何应用程序使用。例如,通过gps传感器940计算的位置可用于导航应用程序以提供从该位置到目的地的方向或者从目的地到该位置的方向。而且,gps传感器940可以用于将位置信息提供给基于外部位置的服务,诸如e911服务。gps传感器940可以使用网络连接组件906中的一个或多个获得经由wi-fi、wimax和/或蜂窝三角测量技术所生成的位置信息以辅助gps传感器940获得位置锁定。gps传感器940还可用于辅助gps(“a-gps”)系统。

i/o组件910包括显示器942、触摸屏944、数据i/o接口组件(“数据i/o”)946、音频i/o接口组件(“音频i/o”)948、视频i/o接口组件(“视频i/o”)950和照相机952。在一些配置中,显示器942和触摸屏944组合。在一些配置中,数据i/o组件946、音频i/o组件948和视频i/o组件950中的两个或更多个被组合。i/o组件910可以包括被配置为支持下面所描述的各种接口的分立的处理器,或者可以包括内置于处理器902中的处理功能。

显示器942是被配置成以视觉形式呈现信息的输出设备。特别地,显示器942可以呈现图形用户接口(“gui”)元件、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传递数据、因特网内容、设备状况、时间、日期、日历数据、偏好、地图信息、位置信息以及任何其它能够以视觉形式呈现的信息。在一些配置中,显示器942是使用了任何有源或无源矩阵技术以及任何背光技术(如果使用)的液晶显示器(“lcd”)。在一些配置中,显示器942是有机发光二极管(“oled”)显示器。可想到其它显示器类型。

触摸屏944是被配置成检测触摸的存在和位置的输入设备。触摸屏944可以是电阻触摸屏、电容触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、分散信号触摸屏、声脉冲识别触摸屏,或者可以使用任何其它触摸屏技术。在一些配置中,触摸屏944作为透明层包含到显示器942之上以使用户能够使用一个或多个触摸来与呈现在显示器942上的对象或其它信息交互。在其它配置中,触摸屏944是并入未包含显示器942的计算设备的表面上的触摸板。例如,计算设备可以具有并入显示器942上的触摸屏和与显示器942相对的表面上的触摸板。

在一些配置中,触摸屏944是单触摸式触摸屏。在其它配置中,触摸屏944是多触摸式触摸屏。在一些配置中,触摸屏944被配置成检测离散的触摸、单触摸手势和/或多触摸手势。为方便,这些在本文统称为手势。现在将描述多个手势。应当理解的是,这些手势是示例性的,而不旨在限制随附权利要求的范围。而且,所描述的手势、附加手势和/或可替代手势可以软件来实现而与触摸屏944一起使用。因此,开发者可以创建特定于特定的应用程序的手势。

在一些配置中,触摸屏944支持轻击手势,其中用户在显示器942上呈现的项目上轻敲触摸屏944一次。轻击手势可以出于各种原因使用,包括但不限于打开或启动用户轻敲的任何内容,例如表示协作创作应用程序110的图形图标。在一些配置中,触摸屏944支持双轻敲手势,其中用户对呈现在显示器942上的项目轻敲触摸屏944两次。双轻敲手势可由于各种原因而使用,包括但不限于在阶段中缩小或放大。在一些配置中,触摸屏944支持轻敲且保持手势,其中用户轻敲触摸屏944且保持接触至少预定时间。轻敲且保持手势可由于各种原因而使用,包括但不限于,打开上下文特定菜单

在一些配置中,触摸屏944支持平移手势,其中用户将手指放在触摸屏944上且在触摸屏944上移动手指的同时保持与触摸屏944接触。平移手势可由于各种原因而使用,包括但不限于,在受控速率下移过屏幕、图像或菜单。还可以设想多手指平移手势。在一些配置中,触摸屏944支持轻弹手势,其中用户沿用户想要屏幕移动的方向划动手指。轻弹手势可由于各种原因而使用,包括但不限于,水平地或者垂直地滚动通过菜单或页面。在一些配置中,触摸屏944支持捏合与伸展手势,其中用户在触摸屏944上用两个手指(例如,拇指和食指)做出捏合运动或者移动使两个手指分开。捏合与伸展手势可由于各种原因而使用,包括但不限于,逐渐地缩小或放大网站、地图或图片。

虽然已经参考用于执行手势的一个或多个手指的使用呈现了上述手势,诸如足趾或诸如指示笔的对象的其它附件也可用于与触摸屏944交互。因此,上述手势应当理解为示例性的,而不应解释为以任何方式限制。

数据i/o接口组件946被配置成促进向计算设备输入数据以及从计算设备输出数据。在一些配置中,数据i/o接口组件946包括连接器,该连接器被配置成提供计算设备与计算机系统之间的有线连接,例如用于同步操作的目的。连接器可以是专用连接器或标准化的连接器,如usb、微型usb、迷你型usb、usb-c或类似物。在一些配置中,连接器是用于将计算设备与诸如对接站的另一设备、音频设备(例如,数字音乐播放器)或视频设备对接的对接连接器。

音频i/o接口组件948被配置成提供音频输入和/或输出能力给计算设备。在一些配置中,音频i/o接口组件946包括被配置成采集音频信号的麦克风。在一些配置中,音频i/o接口组件948包括被配置成提供用于耳机或其它外部扬声器的连接的耳机插口。在一些配置中,音频接口组件948包括用于音频信号的输出的扬声器。在一些配置中,音频i/o接口组件948包括光学音频光缆出口。

视频i/o接口组件950被配置成提供视频输入和/或输出能力给计算设备。在一些配置中,视频i/o接口组件950包括视频连接器,该视频连接器被配置成接收来自另一设备(例如,诸如dvd或bluray播放器的视频媒体播放器)的视频作为输入)或者将视频作为输出发送到另一设备(例如,监控器、电视机或某其它外部显示器)。在一些配置中,视频i/o接口组件950包括高清多媒体接口(“hdmi”)、迷你型hdmi、微型hdmi、displayport或到输入/输出视频内容的专用连接器。在一些配置中,视频i/o接口组件950或其部分与音频i/o接口组件948或其部分组合。

照相机952可以被配置成捕获静态图像和/或视频。照相机952可以使用电荷耦合器件(“ccd”)或互补金属氧化物半导体(“cmos”)图像传感器来捕获图像。在一些配置中,照相机952包括辅助在低光照环境下拍摄图片的闪光灯。用于照相机952的设置可实现为硬件或软件按钮。

虽然没有示出,一个或多个硬件按钮也可以包含在计算设备体系结构900中。硬件按钮可用于控制计算设备的某操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械或基于传感器的。

图示的电力组件912包括一个或多个电池954,电池能够连接到电池计量仪956。电池954可以是可再充电的或一次性的。可再充电电池类型包括但不限于锂聚合物、锂离子、镍镉和镍金属氢化物。各个电池954可以由一个或多个单元制成。

电池计量仪956可以被配置成测量诸如电流、电压和温度的电池参数。在一些配置中,电池计量仪956被配置成测量电池的放电速率、温度、寿命和在一定误差百分比内预测剩余寿命的其它因素的效果。在一些配置中,电池计量仪956提供测量值给应用程序,应用程序被配置成使用测量值来向用户呈现有用的电力管理数据。电力管理数据可以包括所使用的电池百分比、电池剩余百分比、电池状态、剩余时间、剩余容量(例如,以瓦特小时数计)、消耗的电流和电压的中的一项或多项。

电力组件912还可以包括电力连接器(未示出),其可以与上述i/o组件910中的一个或多个组合。电力组件912可以经由电力i/o组件与外部电力系统或充电装备相接。还可以使用其它配置。

鉴于以上内容,应意识到,本文提供的公开内容还涵盖以下条款中阐述的主题:

条款1:一种计算机实现的方法,包括:实时接收对文档的编辑,所述文档由多个活动编辑者在多个计算设备上协作编辑;索引接收的编辑以实时更新搜索索引;从计算设备接收搜索查询,所述搜索查询由用户生成;响应于接收到所述搜索查询,使得用所述搜索索引进行搜索;以及使得用户界面呈现在所述计算设备处用于呈现搜索结果,该用户界面包括:所述文档的标识,所述多个活动编辑者的标识,以及用户界面控件,该用户界面控件当被选择时,将使得请求被发送到所述多个计算设备以准许用户作为所述文档的附加活动编辑者。

条款2:根据条款1所述的计算机实现的方法,其中所述请求包括用户的标识和搜索查询的标识。

条款3:条款1和2的计算机实现的方法,其中所述用户界面还包括用户界面控件,该用户界面控件当被选择时,将使得请求被发送到所述多个计算设备以准许所述用户作为所述多个活动编辑者之间的实时消息传递会话的附加参与者。

条款4:条款1-3的计算机实现的方法,还包括:实时接收与所述文档相关联的元数据;并且索引接收的元数据以实时更新所述搜索索引。

条款5:条款1-4的计算机实现的方法,其中所接收的元数据标识所述文档的所述多个活动编辑者。

条款6:条款1-5的计算机实现的方法,其中所接收的元数据标识所述搜索查询中的一个或多个搜索项。

条款7:条款1-6的计算机实现的方法,其中所接收的元数据标识对文档的先前改变。

条款8:条款1-7的计算机实现的方法,其中所接收的元数据标识文档的一个或多个先前的活动编辑者。

条款9:条款1-8的计算机实现的方法,其中所接收的元数据包括与文档相关联的一个或多个实时消息传递会话。

条款10:一种装置,包括:一个或多个处理器;以及至少一个计算机存储介质,其上存储有计算机可执行指令,当由所述一个或多个处理器执行时,使得该装置:从计算设备接收搜索查询,响应于接收到所述搜索查询,使得用搜索索引进行搜索,所述搜索索引已实时更新以索引由文档的多个活动编辑者做出的对文档的编辑,以及使得用户界面被呈现在计算设备处用于呈现包括所述文档的搜索结果,该用户界面包括:所述文档的标识,所述多个活动编辑者的标识,以及用户界面控件,当被选择时,其将使得请求被发送到与多个活动编辑者相关联的多个计算设备,以准许所述计算设备的用户作为所述文档的附加活动编辑者。

条款11:根据条款10所述的装置,其中所述请求包括所述计算设备的用户和所述搜索查询的标识。

条款12:条款10和11的装置,其中所述用户界面还包括用户界面控件,当被选择时,所述用户界面控件将使得请求被发送到所述多个计算设备以准许所述用户作为多个活动编辑者之间的实时消息传递会话中的附加参与者。

条款13:条款10-12的装置,其中所述搜索索引已进一步实时更新,以索引与所述文档相关联的元数据。

条款14:条款10-13的装置,其中元数据包括标识多个活动编辑者的数据。

条款15:条款10-14的装置,其中元数据还包括以下中的一个或多个:标识搜索查询中的一个或多个搜索项的数据、标识对文档的先前改变的数据、标识文档的一个或多个先前活动编辑者的数据、以及与文档相关联的一个或多个实时消息传递会话。

条款16:一种计算机可读存储介质,其上存储有计算机可执行指令,当由一个或多个处理器执行时,使得处理器:从计算设备接收搜索查询;使得用搜索索引进行搜索,搜索索引已实时更新以便对由文档的多个活动编辑者进行的对文档的编辑进行索引;以及使得用户界面呈现在计算设备处用于呈现搜索结果,该用户界面包括文档的标识,所述多个活动编辑者的标识,以及用户界面控件,当被选择时,其将使得请求被发送到与所述多个活动编辑者相关联的多个计算设备,以准许所述计算设备的用户作为所述文档的附加活动编辑者。

条款17:根据条款16所述的计算机可读存储介质,其中所述请求包括所述计算设备的用户和所述搜索查询的标识。

条款18:条款16和17的计算机可读存储介质,其中所述用户界面还包括用户界面控件,当被选择时,所述用户界面控件将使得请求被发送到所述多个计算设备以准许所述用户作为所述多个活动编辑者之间的实时消息传递会话的附加参与者。

条款19:条款16-18的计算机可读存储介质,其中所述搜索索引已进一步实时更新,以索引与所述文档相关联的元数据。

条款20:条款16-19的计算机可读存储介质,其中所述元数据还包括以下中的一个或多个:标识所述多个活动编辑者的数据、标识所述搜索查询中的一个或多个搜索项的数据、标识对所述文档的先前改变的数据,标识文档的一个或多个先前的活动编辑者的数据、以及与文档相关联的一个或多个实时消息传递会话。

基于前述内容,应当意识到,本文已经公开了用于文档协作发现的各种技术。尽管已经用计算机结构特征、方法和变换动作、特定计算机器和计算机可读介质专用的语言描述了本文呈现的主题,但应理解,所附权利要求中阐述的主题不必限于本文描述的特定特征、动作或介质。而是,公开了特定特征、动作和介质作为实现所要求保护的主题的示例形式。

以上描述的主题仅以说明的方式提供,且不应解释为限制。可以对本文描述的主题进行各种修改和改变,而不遵循所示出和描述的示例配置和应用,并且不脱离在所附权利要求中阐述的本公开的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1