1.本技术一般涉及上下文菜单功能性。更具体地,本技术涉及将本地上下文菜单提供方和远程上下文菜单提供方组合成单个上下文菜单的上下文菜单。
背景技术:2.上下文菜单是一种为用户提供集中项以从中进行选择的方式。通过选择对象(文本、绘图对象等等)并且通过诸如右击、长按或其它上下文菜单调用动作之类的动作调用上下文菜单来调用典型上下文菜单。
3.在该上下文中出现了本发明的实施例。
附图说明
4.图1图示了根据本公开的一些方面的将本地功能性与远程功能性组合的上下文菜单的示例。
5.图2图示了根据本公开的一些方面的将本地功能性与远程功能性组合的上下文菜单的示例。
6.图3图示了根据本公开的一些方面的架构图。
7.图4图示了根据本公开的一些方面的流程图。
8.图5图示了根据本公开的一些方面的示例上下文菜单提供方。
9.图6图示了根据本公开的一些方面的架构图。
10.图7图示了根据本公开的一些方面的流程图。
11.图8示出了用于实现本文所公开的系统和其他方面或用于执行本文所公开的方法的代表性架构。
具体实施方式
12.以下描述包括示例性说明实施例的说明性系统、方法、用户界面、技术、指令序列和计算机程序产品。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本发明主题的实施例。一般来说,没有详细示出公知的指令实例、协议、结构和技术。
13.概述
14.提供以下概述以便以简化的形式介绍将在以下实施方式中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用来限制所要求保护的主题的范围。其唯一目的是以简化的形式呈现一些概念,作为稍后呈现的更详细描述的序言。
15.作为初步问题,一些附图在一个或多个结构组件的上下文中描述了各概念,这些结构组件被不同地称为功能性、模块、特征、元件等等。图中所示的各种组件可以以任何方
式来实现,诸如软件、硬件、固件或其组合。在一些情况下,图中所示的各种组件可以反映对应组件在实际实现中的使用。在其它情况下,图中所示的任何单个组件可以由多个实际组件来实现。图中任何两个或更多分开的组件的描述可以反映由单个实际组件执行的不同功能。
16.其它附图以流程图的形式描述了概念。以这种形式,某些操作被描述为构成以特定顺序执行的不同块。这样的实现是示例性的而非限制性的。本文所描述的某些块可以被归组在一起并且在单个操作中执行,某些块可以被拆分成多个组件块,并且某些块可以以不同于本文中所图示的顺序来执行,包括并行执行这些块的方式。流程图中所示的块可以通过软件、硬件、固件、手动处理等等来实现。如本文中所使用的,硬件可以包括微处理器、数字信号处理器(dsp)、微控制器、计算机系统、离散逻辑组件和/或定制逻辑组件诸如现场可编程门阵列(fpga)、专用集成电路(asic)、可编程逻辑阵列(pla)等等。
17.至于术语,短语“配置为”涵盖可以构造任何种类的功能性以执行所标识的操作的任何方式。功能性可以被配置为使用(例如)软件、硬件、固件等等来执行操作。例如,短语“配置为”可以指的是被布置为实现相关联的功能性的硬件元件的逻辑电路结构。短语“配置为”还可以指的是被布置为实现固件或软件的相关联的功能性的编码设计的硬件元件的逻辑电路结构。术语“模块”是指可以使用任何合适的硬件(例如,处理器等)、软件(例如,应用等)、固件和/或硬件、软件和固件的任何组合来实现的结构元件。术语“逻辑”涵盖用于执行任务的任何功能性。例如,流程图中所图示的每个操作对应于用于执行该操作的逻辑。可以使用软件、硬件、固件等等来执行操作。术语“组件”、“系统”等等可以指的是执行中的计算机相关实体、硬件和软件、固件或其组合。组件可以是在处理器上运行的进程、对象、可执行程序、程序、函数、子例程、计算机、或者软件和硬件的组合。术语“处理器”可以指的是硬件组件,诸如计算机系统的处理单元。
18.此外,所要求保护的主题可以被实现为使用标准编程和工程技术来产生软件、固件、硬件或其任何组合以控制计算设备来实现所公开主题的方法、装置或制品。本文中所使用的术语“制品”旨在涵盖可从任何非暂时性计算机可读存储设备或介质访问的计算机程序。计算机可读存储介质可以包括但不限于磁存储设备,例如硬盘、软盘、磁条、光盘、压缩盘(cd)、数字多功能盘(dvd)、智能卡、闪存设备等。对照而言,计算机可读介质(即,不是存储介质)可以另外包括通信介质,诸如用于无线信号等等的传输介质。
19.上下文菜单自从在用户界面中最早使用它们以来没有改变很多。上下文菜单呈现允许用户选择与特定选择的项和上下文特别相关的操作的聚焦项集合。例如,如果用户选择文档中的单词并且调用上下文菜单,则所呈现的常见功能可以包括直接对该单词进行操作的功能,诸如剪切、粘贴、复制和格式化。在一些实例中,选择一个上下文菜单项将揭示附加的上下文菜单项。因此,从上下文菜单中选择格式可以揭示特定格式化命令,诸如改变字体、改变字体大小、以粗体格式化单词的项以及其它这样的特定格式化项。
20.上下文菜单项通常通过选择文档中的一个或多个对象然后执行上下文菜单调用动作来调用,上下文菜单调用动作诸如在鼠标上的右击、悬停在单词上、触摸屏上的长按等等。在接收到调用动作后,系统将绘制(render)上下文菜单。
21.与现有的上下文菜单不同,本公开的实施例呈现了在若干方式之一中是唯一的上下文菜单。例如,在一些实施例中,上下文菜单可以包括本地上下文菜单项和远程上下文菜
单项的组合。使用完全或主要在本地实现的功能性来实现本地上下文菜单项。因此,如果上下文菜单包括“剪切”项,则实现剪切项的功能性驻留在本地,并且调用应用和/或操作系统的功能以实现剪切操作,这通常包括从文档中移除所选择的项,并将该项放置在剪贴板或其它位置上,随后可通过诸如粘贴项来从中访问该项。
22.远程上下文菜单项被全部或部分地远程实现。例如,搜索引擎提供各种各样的功能,这些功能扩展超出了响应于查询的搜索结果列表的简单提供。例如,搜索引擎通常可以将文本从一种语言翻译成另一种语言,提供对诸如“乔治华盛顿有多高?”之类的问题的直接答案以及许多其它这样的功能。因此,这些功能可以被用来通过利用远程功能性来扩展上下文菜单中可用的项。
23.虽然本地上下文菜单项和远程上下文菜单项之间的线有时可能模糊,但是在本公开的上下文中,本地上下文菜单项或本地上下文菜单项提供方是主要或完全使用本地功能性(诸如使用由应用和/或操作系统所提供的功能性)来实现的那些菜单项或提供方。另一方面,远程上下文菜单项或远程上下文菜单项提供方是主要或完全由一个或多个远程服务(诸如使用由服务所提供的功能性来事实核查(fact check)短语,提供对直接问题的回答等)来实现的那些菜单项或提供方。
24.远程上下文菜单项可以具有远程提供但本地缓存的功能性。例如,假设远程上下文项提供方执行从一种语言到另一种语言的翻译。远程上下文项提供方和/或数据可以被本地缓存,以使得在被调用时,远程上下文项提供方不需要访问网络连接以提供期望的功能性。在缓存的上下文菜单项提供方的情况下,它们不会突然改变特性并且仅仅因为功能性和/或数据被本地缓存而变成本地上下文菜单项提供方。在缓存的功能性和/或数据的情况下,远程上下文菜单项提供方保留其指定作为远程上下文菜单项提供方。
25.本公开的实施例搜集与上下文和/或所选择的项相关的本地上下文菜单提供方和远程上下文菜单提供方,并对本地和远程上下文提供方进行排名。在一些实施例中,该排名被用来选择呈现给用户的上下文菜单项。
26.在一些实施例中,上下文菜单提供方返回用于对呈现给用户的上下文菜单项进行选择和/或排序的排名。该排名指示由该上下文菜单提供方所提供的功能性与该上下文和/或所选择的项所具有的相关性。
27.在一些实施例中,上下文菜单提供方返回html或者可以在紧凑视图(在本文中被称为网页视图(webview))中绘制的其它绘制代码。在本公开的上下文中,绘制代码是指可以被绘制为视觉和/或功能方面的任何代码或格式。在本公开中,html将被用作示例,但是也可以使用任何其他绘制代码。由于html允许丰富内容的丰富格式化和呈现,因此上下文菜单可以以独特的方式呈现丰富内容。在本公开的上下文中,丰富格式化意味着除文本的简单呈现之外的格式化,并且丰富内容是除文本之外的内容,诸如图形内容、视频内容、动态内容等。
28.可以组合来自所选择的上下文菜单项提供方的html或其它绘制代码,并且所得到的组合的html/绘制代码被用来向用户绘制上下文菜单。组合的html还可以包括当用户选择对应的上下文菜单项时启动对适当的上下文菜单项提供方的调取的功能性。
29.在下面更全面地解释这些和其它方面。
30.描述
31.图1图示了根据本公开的一些方面的将本地功能性与远程功能性组合的上下文菜单(总体上被示为100)的示例。应用102通常具有若干区域,其中呈现内容以及菜单项和/或访问应用功能性的控件。例如,应用102可以包括标题区104,其中诸如当前显示的文档的名称之类的信息可以连同操纵该应用102的控件一起被呈现。区域106可以包括菜单、包含控件的条带等。条带中的菜单和控件中的菜单项可以允许用户访问所呈现的功能性。
32.最终区域108可以呈现当前显示的文档,诸如文本文档、绘图文档和/或其它类型的文档。所显示的文档通常包括一个或多个项。因此,办公生产力(office productivity)文档可以包括文本、表格、图形和其它项。应用102包括显示上下文菜单的能力。上下文菜单向用户呈现在上下文菜单被调用的上下文中最可能被用户使用的一些项。
33.通常使用特定的动作、手势、键击组合等来调用上下文菜单112。例如,常见动作包括对利用鼠标的系统的右击、悬停在单词上或对具有触摸屏的系统的长按。有时,上下文菜单112具有相关联的文本110,其在动作被执行时被选择。
34.当执行上下文菜单动作时,系统捕获一组数据,在本文中被称为上下文数据或更简单地被称为上下文。上下文数据可以包括定义在其中执行动作的上下文的任何数据。例如,如果文档中的文本和/或其它实体已被选择,则上下文可以包括所选择的实体。附加地或备选地,文档中的位置、在执行上下文动作之前执行的动作、和/或任何其它数据都可以作为上下文数据的一部分而被捕获。
35.上下文菜单112包括一个或多个上下文菜单项。例如,上下文菜单112被图示为包括剪切、复制、粘贴、格式化的项和项118。每个上下文菜单项可以由上下文菜单项提供方(下面讨论)来实现。因此,当用户选择用于执行的上下文菜单项时,上下文数据可以被传递到实现对应功能的上下文菜单项提供方。
36.上下文菜单项和对应的菜单项提供方可以是本地上下文菜单项/提供方或远程上下文菜单项/提供方。使用完全或主要在本地实现的功能性来实现本地上下文菜单项。因此,如果上下文菜单包括“剪切”项,则实现剪切项的功能性驻留在本地,并且调取应用和/或操作系统的功能以实现剪切操作,这通常包括从文档中移除所选择的项,并将该项放置在剪贴板或其它位置上,随后可通过诸如粘贴项来从中访问该项。
37.远程上下文菜单项被全部或部分地远程实现。例如,搜索引擎提供各种各样的功能,这些功能扩展超出了响应于查询的搜索结果列表的简单提供。例如,搜索引擎通常可以将文本从一种语言翻译成另一种语言,提供对诸如“乔治华盛顿有多高?”之类的问题的直接答案以及许多其它这样的功能。因此,这些功能可以被用来通过利用远程功能性来扩展上下文菜单中可用的项。
38.虽然本地上下文菜单项和远程上下文菜单项之间的线有时可能模糊,但是在本公开的上下文中,本地上下文菜单项或本地上下文菜单项提供方是主要或完全使用本地功能性(诸如使用由应用和/或操作系统所提供的功能性)来实现的那些菜单项或提供方。另一方面,远程上下文菜单项或远程上下文菜单项提供方是主要或完全由一个或多个远程服务(诸如使用由服务所提供的功能性来事实核查短语,提供对直接问题的回答等)来实现的那些菜单项或提供方。
39.远程上下文菜单项可以具有远程提供但本地缓存的功能性。例如,假设远程上下文项提供方执行从一种语言到另一种语言的翻译。远程上下文项提供方和/或数据可以被
本地缓存,以使得当被调用时,远程上下文项提供方不需要访问网络连接以提供期望的功能性。在缓存的上下文菜单项提供方的情况下,它们不会突然改变特性并且仅仅因为功能性和/或数据被本地缓存而变成本地上下文菜单项提供方。在缓存的功能性和/或数据的情况下,远程上下文菜单项提供方保留其指定作为远程上下文菜单项提供方。
40.在示例上下文菜单112中,剪切、复制、粘贴和格式化的项(和对应的功能)是本地上下文菜单项,而上下文菜单项118是远程上下文菜单项。
41.一些上下文菜单项,无论它们是本地的还是远程的,当被选择时可以产生附加的上下文菜单项。例如,与上下文菜单112中的格式菜单项相关联的箭头指示:当被激活时,该上下文菜单项可以打开另一菜单,诸如示出字体、段落、颜色等项的上下文菜单116。此外,当选择另一个上下文菜单(诸如上下文菜单116)上的项时,可以打开另一菜单、侧面板等。
42.当用户选择本地上下文菜单项时,调取相关联的本地上下文菜单项提供方来实现对应的(多个)功能。如所指出,在本地上下文菜单项的情况下,上下文菜单项提供方和所得到的功能将主要是本地的。因此,选择如图1中所示的剪切导致对应的本地上下文菜单项提供方120从所显示的文档中移除所选择的实体110并将所选择的实体110放置在剪贴板上以供稍后访问。这些动作被简单地图示为上下文菜单结果122。
43.图2图示了根据本公开的一些方面的将本地功能性与远程功能性组合的上下文菜单(总体上被示为200)的示例。该图的关注点是远程上下文菜单项。与图1中相同编号的其余元件如结合图1所述。
44.上下文菜单112不仅可以包含本地上下文菜单项,诸如结合图1所描述的那些,而且还可以包含远程上下文项,诸如图1中所图示的远程上下文菜单项118。当用户选择远程上下文菜单项214时,调取相关联的远程上下文菜单项提供方以实现对应的(多个)功能。因此,在相关联的远程上下文菜单项提供方驻留在上下文菜单服务216上的情况下,对上下文菜单服务216进行远程调取以调用对应的远程上下文菜单项提供方。这些远程调取可以是允许客户端应用102访问远程上下文菜单项提供方的任何类型的远程调取。当远程上下文菜单服务216接收到远程调取时,它调用执行对应功能的对应远程上下文菜单项提供方。
45.远程上下文菜单项/提供方的示例包括但不限于:适用于将文本从一种语言翻译为另一种语言的上下文菜单项提供方,适用于提供文本的定义的上下文菜单项,适用于将照片效果应用于图像的上下文菜单项,适用于标识相关实体的上下文菜单项,适用于提供直接答案的上下文菜单项,和/或适用于事实核查文本的上下文菜单项。这些不同的上下文菜单项/提供方应该是自明的并且不需要进一步讨论。用于这些能力中的每一个的方法是已知的,并且可以使用这些方法中的任何一种来实现对应的功能性。在一些实例中,使用根据各种机器学习技术所训练的机器学习模型。在其它实例中,可以使用更确定性的逻辑。在其它实例中,可以使用其组合。基本上,可以经由远程上下文菜单项来调用可以经由适当的上下文菜单项提供方而被添加到上下文菜单服务216的任何功能性。在一个示例中,上下文菜单服务是诸如或之类的搜索服务。
46.调用远程上下文菜单项214的结果在图2中被图示为结果218。
47.图3图示了根据本公开的一些方面的总体上被示为300的架构图。该架构图图示了构建诸如上下文菜单112和/或上下文菜单116之类的上下文菜单的示例架构。
48.当诸如由执行上下文菜单动作的用户调用上下文菜单时,系统捕获一组数据,在
本文中被称为上下文数据302或更简单地被称为上下文。上下文数据302可以包括定义在其中执行动作的上下文的任何数据。例如,如果文档中的文本和/或其它实体已被选择,则上下文可以包括所选择的实体。附加地或备选地,如果用户悬停在单词或对象上方,则系统可以将其解释为单词或对象被选择并调用上下文菜单。附加地或备选地,文档中的位置、在执行上下文动作之前执行的动作、和/或任何其它数据可以作为上下文数据的一部分而被捕获。
49.上下文数据302被提供给上下文菜单管理器304。上下文菜单管理器304处理本地排名器306和上下文菜单绘制器314之间的通信。作为其一部分,上下文菜单管理器304向本地排名器306提供上下文数据302,或者本地排名器306可以在一个位置处和/或以上下文菜单管理器304向本地排名器306所指定的方式访问上下文数据302。
50.本地排名器306诸如通过在以下描述的发现过程中标识的信息来知晓可用的本地和远程上下文菜单项提供方,并确定本地上下文菜单项提供方和/或远程上下文菜单项提供方的子集(例如,全部或少于全部)。在一些实施例中,选择所有已知的上下文菜单项提供方作为子集。在其它实施例中,基于与上下文菜单项提供方相关联的类别和/或其它信息来选择子集。例如,上下文菜单项提供方可以标识它们被设计为作为发现过程的一部分来处理哪种类型的对象。本地排名器306可以选择处理由上下文数据302指定的对象类型的所有上下文菜单项提供方作为子集。所得到的子集可以包括任意组合的本地上下文菜单项提供方和/或远程上下文菜单项提供方。
51.本地排名器306向子集中的每个本地上下文菜单项提供方308和/或每个远程上下文菜单项提供方312发送请求。在一些实施例中,请求可以包含上下文数据302中的一些或全部。请求由图3中的信封来图示。
52.作为响应,上下文菜单项提供方评估请求中的信息,并发送回将由本地排名器306使用的排名,以与由其它上下文菜单项提供方提供的排名进行比较,以便确定由该上下文菜单项提供方提供的功能性与上下文数据302所具有的相关性。因此,在本公开的上下文中,由上下文菜单项提供方返回的排名可以是指定由上下文菜单项提供方提供的菜单项与上下文数据302所具有的相关性程度的任何度量或分数。相关性程度可以基于任何标度并且可以被量化到任何期望的水平。因此,排名可以是位于x到y标度上的值,或者可以是诸如相关或不相关的二进制值,或者任何其它标度上的任何值。
53.在一些实施例中,上下文菜单项提供方还返回允许绘制上下文菜单项并提供访问实现上下文菜单项的功能性的机制的html或其它绘制代码。例如,html可以提供可视地绘制控件的方式,因此用户可以标识和/或可视化由菜单项提供的功能性,并且可以提供响应于用户对菜单项的选择并访问与菜单项的功能性相对应的机制。排名和/或代码在图3中由文档图标来图示。
54.如本文所描述的,在一些实例中,远程上下文菜单项提供方可以被本地缓存,以使得无需连接回到上下文菜单服务就可以访问其功能性。因此,远程和缓存的提供方310图示了本地排名器306与远程上下文菜单项提供方通信,无论它们是远程的还是本地缓存的。在一些实施例中,如果到上下文菜单服务的连接不可用,诸如在正在执行应用的设备离线或网络连接不可用的情况下,本地排名器306可以跳过尝试联系未在本地缓存的远程上下文菜单项提供方,或者在该时刻不可到达的远程上下文菜单项提供方。在这种情形中,只有本
地缓存的远程上下文菜单项提供方将被考虑包括在正被创建的上下文菜单中。
55.在其他实施例中,本地排名器306可以依赖于先前接收到的信息来对不可用的远程上下文菜单项进行排名。例如,如果发现过程(下面描述)导致允许本地排名器标识对象的类型(例如,文本、图像、照片、图形元素、表格等)的信息,则可以根据上下文数据302基于对该数据的评估来向远程上下文菜单提供方指派排名。这种方法也可以被应用于缓存的远程上下文菜单项提供方和本地上下文菜单项提供方。换言之,在一些实施例中,本地排名器306可以基于来自上下文菜单项提供方的信息来确定上下文菜单项提供方的排名,该信息诸如可以由发现过程供应或由上下文菜单项提供方在由执行上下文菜单项动作的用户调用上下文菜单之前供应。
56.本地排名器考虑由远程上下文菜单项提供方和/或本地上下文菜单项提供方返回的排名,并且基于该排名,选择要被包括在上下文菜单中的多个上下文菜单项。由于每个上下文菜单项提供方返回指示对应的上下文菜单项提供方与上下文数据302的相关性的排名,因此排名的比较可以允许上下文菜单项列表按相关性排序。
57.有多种方式可以基于排名来选择上下文菜单项。一些示例包括但不限于:
58.●
以排名顺序来放置排名并选择前n个提供方,其中n基于固定数目(例如,小于或等于固定数目)来选择,n基于可用于显示上下文菜单的区域来选择,和/或其任何组合。
59.●
按排名顺序来放置本地上下文菜单项提供方,按排名顺序来放置远程上下文菜单项提供方。然后从本地列表中选择i个本地菜单项提供方,并且从远程列表中选择j个远程菜单项提供方。i和j可以基于固定数来选择,其中i和j是i和j不能超过的单独的固定数,i和j可以基于总数来选择(例如,i+j≤m,其中
60.在选择n的策略上选择总数),i和j可以基于可用于显示上下文菜单的区域来选择,和/或其任何组合。
61.●
从子集中选择数个上下文菜单项提供方的任何其它期望策略。
62.一旦本地排名器306选择了要在上下文菜单中显示的数个上下文菜单项,对应的绘制代码就被发送到上下文菜单绘制器314。上下文菜单绘制器314可以接受组合的绘制代码(例如,绘制代码在被发送到上下文菜单绘制器314之前被组合),或者接受将出现在上下文菜单中的每个上下文菜单项的各个绘制代码。在后一种情况下,绘制代码组合的功能由上下文菜单绘制器314执行。
63.然后,上下文菜单绘制器314绘制具有上下文菜单项的上下文菜单,以便产生所绘制的上下文菜单316。因为上下文菜单是所绘制的绘制代码,所以上下文菜单可以被称为所绘制的网页视图。
64.在一些实施例中,所绘制的上下文菜单中的上下文菜单项的顺序基于对应的上下文菜单项的排名。在这样的实施例中,远程上下文菜单项可以被放置在上下文菜单的顶部,而本地上下文菜单项可以被放置在上下文菜单的底部。因此,排序是动态的,并且在每次调用上下文菜单时可以是不同的。
65.所绘制的上下文菜单316不仅包含视觉方面,而且还包含允许访问与上下文菜单316中的每个上下文菜单项相对应的功能性的方面。
66.在一些实施例中,可以采取代替或除了呈现上下文菜单之外的动作。例如,当用户悬停或选择单词、短语或其它对象时,执行可以如上所述进行,其中上下文数据302被捕获,
上下文菜单管理器304如所述那样工作,本地排名器306标识本地上下文菜单项提供方和远程上下文菜单项提供方,并且如上所述对上下文菜单项提供方进行排名。
67.此时,本地排名器306和/或上下文菜单管理器304可以自动调用排名最高(或一些最高)的上下文菜单项提供方来执行其提供的功能。例如,如果用户选择了文档内的拉丁短语,并且本地排名器确定最高排名的上下文菜单项提供方将拉丁短语翻译为文档的当前语言,则本地排名器306和/或上下文菜单管理器304可以调用上下文菜单项提供方并作为结果接收绘制代码以显示所翻译的拉丁短语。
68.上下文菜单管理器304然后可以将结果的绘制代码提供给上下文菜单绘制器314,上下文菜单绘制器314然后可以与上下文菜单一起或代替上下文菜单来绘制结果。以这种方式,系统可以在用户实际选择要被执行的动作之前预测用户可能做什么并执行该动作。
69.作为上述内容的变型,系统可以基于与通过观察用户与文档的交互而学习的用户偏好相组合的排名来调用上下文菜单项提供方。例如,排名也高的被频繁访问的命令可以被自动调用,而排名也高的不太被频繁访问的命令将不被调用。在组合逻辑中可以使用排名和一个或多个其它特性的其它组合来确定是否在用户选择对应的上下文菜单项之前调用特定的上下文菜单项提供方。例如,排名、从上下文菜单项提供方接收结果的预期时间以及过去的用户行为可以被用来调用一个或多个上下文菜单项提供方。在这种场景中,可以使用较高排名、较长预期周转时间和用户调用可能性的某种组合来决定调用上下文菜单项提供方。
70.作为另一变型,系统可以调用上下文菜单项提供方,但是停止显示结果。结果可以基于用户选择适当的上下文菜单命令而被显示。这样,结果可以被“预取”,并且可以消除任何远程调取时间。
71.尽管已将特定功能性说明及描述为由某些组件执行,但是功能性可以被不同地进行划分,其中某些方面从一个组件转移到另一组件或者其中一些组件可以被组合。
72.图4图示了根据本公开的一些方面的总体上被示为400的流程图。该流程图图示了一种响应于用户调用如本文所述的上下文菜单来创建上下文菜单的方法。并非所有的操作都需要被执行,或者以所图示的顺序来执行,除非逻辑需要特定的操作顺序(例如,数据在被接收之前不能被评估)。
73.该方法开始于操作402并进行到操作404。操作404接收上下文数据,诸如先前描述的上下文数据302。
74.在一些实施例中执行操作406,其中作为过程的一部分评估上下文数据以选择将被考虑用于选择的上下文菜单项提供方(本地或远程)的子集(全部或少于全部)。在一些实例中,这可能意味着选择所有已知的上下文菜单项提供方来考虑。在其它实例中,这可能意味着选择上下文菜单项提供方的一个或多个类别来考虑。例如,如果上下文菜单项提供方被分成各个类别,则可以基于上下文数据选择一个或多个类别来考虑。在更具体的示例中,当上下文数据指示用户已选择了特定对象类型或类别时,操作406可以选择在相同对象类型或类别上操作的上下文菜单提供方。最后,对于远程上下文菜单项提供方,如果特定的提供方集合由于缺少通信链路或其它原因而不可访问,则在一些实施例中可以不考虑这些上下文菜单项。
75.操作408标识与操作406所确定的子集中的每个本地提供方相关联的排名。这可以
例如通过基于如上面所讨论的先前提供的信息计算本地上下文菜单项提供方的排名,或者通过向包括上下文数据的本地上下文菜单项提供方发送请求并反过来接收排名来实现。
76.操作410标识与操作406所确定的子集中的每个远程提供方相关联的排名。这可以例如通过基于如上面所讨论的先前提供的信息计算远程上下文菜单项提供方的排名,或者通过向包括上下文数据的远程上下文菜单项提供方发送请求并反过来接收排名来实现。远程上下文菜单项提供方可以被本地缓存、被远程访问、或是其任何组合。
77.操作412考虑子集中的所有上下文菜单项提供方的排名,并选择将被用于上下文菜单的数量。由于每个上下文菜单项提供方具有指示对应的上下文菜单项提供方与上下文数据的相关性的关联排名,因此排名的比较可以允许上下文菜单项列表按相关性进行排序。有多种方式可以基于排名来选择上下文菜单项。一些示例包括但不限于:
78.●
以排名顺序来放置排名并选择前n个提供方,其中n基于固定数目(例如,小于或等于固定数目)来选择,n基于可用于显示上下文菜单的区域来选择,和/或其任何组合。
79.●
按排名顺序来放置本地上下文菜单项提供方,按排名顺序来放置远程上下文菜单项提供方。然后从本地列表中选择i个本地菜单项提供方,并且从远程列表中选择j个远程菜单项提供方。i和j可以基于固定数来选择,其中i和j是i和j不能超过的单独的固定数,i和j可以基于总数来选择(例如,i+j≤m,其中在选择n的策略上选择总数),i和j可以基于可用于显示上下文菜单的区域来选择,和/或其任何组合。
80.●
从子集中选择数个上下文菜单项提供方的任何其它期望策略。
81.操作412可以附加地或备选地调用一个或多个上下文菜单项提供方,而无需用户选择上下文菜单项。这在上面结合图3进行了讨论。
82.操作414绘制与由操作412选择的上下文菜单项提供方的子集和/或来自一个或多个调用的上下文菜单项提供方的结果相对应的上下文菜单项的子集。如上面所指出的,每个上下文菜单项提供方可以提供html或其他绘制代码,其可以被绘制以产生对应的上下文菜单项并访问实现该上下文菜单项的功能性。附加地或备选地,被调用的上下文菜单项提供方可以提供html或用于由调用所产生的结果的绘制代码。绘制代码因此可以由适当的绘制器进行组合和绘制,以产生上下文菜单和/或调用的结果。在一些实施例中,上下文菜单项的排序至少部分地由与上下文菜单项相关联的排名来确定。
83.该方法在操作416结束。
84.图5图示了根据本公开的一些方面的总体上被示为500的示例上下文菜单提供方。上下文菜单项提供方是提供与上下文菜单项相关联的功能的对象。该结构对于本地上下文菜单项提供方、已经被本地缓存的远程上下文菜单项和/或远程访问的远程上下文菜单项提供方可以是相同的(例如,作为上下文菜单服务的一部分)。附加地或备选地,远程访问的远程上下文菜单项提供方可以被不同地实现。
85.上下文菜单项提供方502包括控制器和模型504以及视图506。控制器和模型504的一个功能接收包括上下文数据的请求,并返回指示由提供方提供的上下文菜单项与上下文数据的相关性的排名。
86.上下文菜单项与上下文数据的相关性可以以若干方式来实现。在一个示例实现中,控制器/模型504评估上下文数据并确定上下文菜单提供方是否匹配由上下文菜单指示的对象的类型(文本、数据、表格、图形、照片、图像等)。如果存在匹配,则控制器/模型504返
回指示高相关性的排名。如果不存在匹配,则控制器/模型504返回指示低相关性或无相关性的排名。
87.另一种备选方案是使用经训练的机器学习模型。在一些示例实施例中,可以使用不同的机器学习工具。例如,逻辑回归(lr)、朴素贝叶斯(naive-bayes)、随机森林(rf)、神经网络(nn)、矩阵因式分解和支持向量机(svm)工具可以被用于对所推断的简档更新进行分类或评分。
88.在一些实施例中,示例机器学习算法提供排名(例如,从1到100的分数,相关/不相关等)以指定对应上下文菜单项与上下文数据的相关性。机器学习算法利用训练数据来找到上下文数据的特征之间的相关,其指示上下文菜单项与上下文数据的相关性。
89.可以对训练数据进行注释以指示训练数据示例与上下文菜单项的相关性。在其他实施例中,可以使用未注释的数据来训练机器学习模型。当上下文菜单项与训练数据相关时,机器学习训练过程评估上下文菜单项的相关性。训练的结果是可以在控制器/模型504中使用的经训练的机器学习模型。机器学习模型和训练方法是已知的并且不需要进一步讨论。通过以上描述,本领域技术人员将理解如何训练能够响应于上下文数据产生排名的适当模型。
90.在一些实施例中,控制器和/或模型504还提供对实现上下文菜单项的功能性的访问。例如,如果上下文菜单项是副本,则对应的本地上下文菜单项提供方的控制器/模型可以调取本地功能性,该本地功能性导致将所选择的(多个)对象复制到剪贴板,在剪贴板处可以在稍后的时间访问它们。作为另一示例,如果上下文菜单项是评估图像并产生描述图像内容的字幕的“自动字幕”项,则对应的远程上下文菜单项提供方的控制器/模型可以调取分析图像并返回适当字幕的远程功能性。
91.视图506包括html或其他绘制代码,其在被绘制时产生对应的上下文菜单项并在上下文菜单项被选择时访问提供方。如本文所指出的,上下文菜单提供方502可以响应于请求而返回视图506。
92.图6图示了根据本公开的一些方面的总体上被示为600的架构图。该图图示了如何将多个上下文菜单视图组装成上下文菜单的示例。因此,图6是在一些实施例中如何实现上下文菜单绘制器314的示例。
93.如本文所指出的,在请求时,上下文菜单项提供方可以提供包括html和/或其他绘制代码的视图,其可以被绘制以便创建所绘制的上下文菜单项作为上下文菜单的一部分。因此,上下文菜单视图602表示来自上下文菜单项提供方的视图,其已被选择作为上下文菜单的一部分,如本文所述。因为视图是html和/或其它绘制代码,所以当被绘制时它可以产生丰富内容菜单项。因此,菜单项不限于文本。另外,菜单项可以基于上下文数据或其它信息在视觉上被改变,并且因此不需要是静态的。此外,可以通过修改由上下文菜单项提供方返回的视图来可视地修改菜单项。这对于例如测试用户如何响应上下文菜单项的不同呈现而言是有用的。这对于远程上下文菜单项提供方特别有用。上下文菜单服务可以针对相同的上下文菜单项而向不同的用户组返回不同的视图,并且比较用户如何响应不同的视图。以这种方式,上下文菜单可以变得更有用而无需改变客户端应用(例如,办公生产力应用,或者并入本文所揭示的原理的其它应用)中的任何东西。
94.在操作604中,视图602被组装成包括来自视图602的html和/或其它绘制代码的单
个视图。单个视图定义了所得到的上下文菜单在被绘制时将看起来如何。同样,因为单个视图包括html和/或其它绘制代码,所以上下文菜单不限于文本,而是可以包括可以由html和/或其它绘制代码产生的任何类型的信息和任何格式化。因此,可以产生丰富的上下文菜单,其在标识可以通过上下文菜单访问的功能性时在视觉上有助于用户。在这个上下文中,视觉上有帮助意味着以用户能够理解和/或可视化在选择特定上下文菜单项时将发生什么的方式来呈现内容。
95.操作606使用可以绘制单个视图的html和/或其它绘制代码的技术来绘制单个视图。绘制html和/或其它绘制代码是已知的操作,不需要进一步讨论。若干绘制引擎是已知的,并且可以使用任何这样的引擎。此外,绘制引擎可以被定制为在视图/单个视图中使用的html和/或其它绘制代码的特定集合。如果期望,将永远不会出现在视图/单个视图中的html和/或其它绘制代码不需要是操作606中使用的绘制引擎的一部分。
96.结果是所绘制的上下文菜单608。上下文菜单可以被绘制在应用窗口中的任何适当位置,诸如在所选对象附近,在指针/光标附近,在侧面板中等等。
97.图7图示了根据本公开的一些方面的总体上被示为700的流程图。该图图示了可以与上下文菜单服务一起使用以发现通过上下文菜单服务可用的远程上下文菜单项提供方和/或请求远程上下文菜单项提供方进行本地缓存的发现过程。
98.操作706,客户机向上下文菜单服务704发送发现请求。在一些实施例中,发现请求由上下文菜单缓存管理器702或另一组件发送。为了讨论的目的,将利用上下文菜单缓存管理器702的示例,但是任何其他机制或组件可以执行所概述的操作。
99.在操作708中,上下文菜单服务704接收发现请求并标识远程上下文菜单项提供方。在操作708中标识的远程上下文菜单项提供方是对应用可用的那些上下文菜单提供方。
100.在操作712中,上下文菜单服务704将标识来自操作708的远程上下文菜单项提供方列表的信息发送给客户端机器上的上下文菜单缓存管理器702。
101.除了上下文菜单缓存管理器702向上下文菜单服务704发送发现请求,当远程上下文菜单项提供方被添加到上下文菜单服务并变得可用时,上下文菜单服务704可以向上下文菜单缓存管理器702或对应用可用的其它注册表注册它们。
102.上下文菜单缓存管理器702接收远程上下文菜单项提供方的列表。在一些实例中,上下文菜单缓存管理器可以决定对列表中的一个或多个远程上下文菜单项提供方进行缓存。例如,可以对远程上下文菜单项提供方的预期使用做出这样的决定。例如,缓存管理器702可以评估哪些远程上下文菜单项提供方被最频繁地使用,并且可以决定那些远程上下文菜单项提供方应当被本地缓存以使它们在到上下文菜单服务704的连接不可用时可用。附加地或备选地,缓存管理器702可以评估文档或其它信息以标识哪些远程上下文菜单项提供方(如果有的话)应当被缓存。例如,如果文档没有图像,或者如果应用没有能力将图像添加到文档,则缓存处理图像的远程上下文菜单项提供方将不是富有成效的决定。相反,缓存处理最常见的对象类型(例如,用于文字处理文档的文本)的远程上下文菜单项可能是非常富有成效的决定。
103.一旦在操作710中选择了要被缓存的远程上下文菜单项提供方,操作714就向上下文菜单服务704发送对所选远程上下文菜单项提供方的请求。
104.上下文菜单服务704接收请求,组装所请求的远程上下文菜单项提供方和/或相关
联的数据(操作716),并将远程上下文菜单项提供方和/或相关联的数据返回给应用(操作720)。
105.缓存管理器702接收所请求的远程上下文菜单项提供方和/或相关联的数据,并将它们置于适当的缓存中(操作718)。
106.因为诸如上下文菜单服务216之类的上下文菜单服务可以实现上下文菜单项提供方形式的各种不同功能,所以应用(例如,应用102)的操作和功能以及由上下文菜单提供的能力可以在无需对应用本身的功能进行任何改变的情况下被修改。例如,如果允许用户创建和编辑演示的办公生产力应用包括将图形合并到供应中的能力,则可以在不改变应用的情况下从应用中添加(或移除)操纵此类图形的功能性。
107.为了说明这种能力,考虑两个单独的场景。在缺少远程上下文菜单项提供方的情况下,如果开发者希望将新的图像处理技术实现到用户可以访问的应用中,则需要修改该应用以合并新的图像处理技术,添加新的上下文菜单项以访问图像处理技术,并将该应用的新版本运送给用户。
108.然而,利用远程上下文菜单项提供方的应用可以在不修改应用的操作的情况下添加新的图像处理技术。在这种场景中,开发者将新的远程上下文菜单项提供方部署到上下文菜单服务。该应用使用诸如本文所公开的过程来发现新部署的提供方。然后,当为新部署的提供方所相关的上下文构建上下文菜单时,新图像处理技术的上下文菜单项将出现在上下文菜单中,并且用户仅需要选择它来访问新添加的技术。
109.尽管本文的描述按照上下文菜单描述了功能性,但是类似的功能性可以被用来实现非上下文菜单和菜单项、条带或其它此类“快速访问”控制栏等。
110.图8图示了用于实现本文所公开的系统和其他方面或用于执行本文所公开的方法的代表性架构。
111.示例机器架构和机器可读介质
112.图8图示了适于实现系统等或适于执行本文所公开的方法的代表性机器架构。图8的机器被示为独立的设备,其适于实现上述概念。对于上述服务器方面,可以使用在数据中心、云架构的一部分等中操作的多个这种机器。在服务器方面,不是所有图示出的功能和设备都被利用。例如,虽然用户用来与服务器和/或云架构进行交互的系统、设备等可以具有屏幕、触摸屏输入等,但是服务器常常不具有屏幕、触摸屏、相机等,并且通常通过具有适当输入和输出方面的已连接系统来与用户交互。因此,下面的架构应当被视为包括多种类型的设备和机器,并且取决于其形状因素和目的,各个方面可以存在或可以不存在于任何特定设备或机器中(例如,服务器很少具有相机,而可穿戴物很少包括磁盘)。然而,图8的示例解释适于允许本领域的技术人员确定利用对所使用的特定设备、机器等的所示实施例的适当修改,可以如何用硬件和软件的适当组合来实现先前描述的实施例。
113.虽然仅图示了单个机器,但是术语“机器”还应当被认为包括任何机器集合,其单独地或联合地执行一组(或多组)指令以执行本文所讨论的任何一个或多个方法。
114.机器800的示例包括经由链路808彼此通信的至少一个处理器802(例如,中央处理单元(cpu)、图形处理单元(gpu)、高级处理单元(apu)或其组合)、一个或多个存储器(诸如主存储器804、静态存储器806或其它类型的存储器)。链路808可以是总线或其它类型的连接通道。机器800可以包括其它可选方面,诸如包括任何类型显示器的图形显示单元810。机
器800还可以包括其它可选方面,诸如字母数字输入设备812(例如,键盘、触摸屏等)、用户接口(ui)导航设备814(例如,鼠标、跟踪球、触摸设备等)、存储单元816(例如,(多个)盘驱动器或其它存储设备)、信号生成设备818(例如,扬声器)、传感器821(例如,全球定位传感器、(多个)加速计、(多个)麦克风、(多个)相机等)、输出控制器828(例如,有线或无线连接以连接到一个或多个其它设备诸如通用串行总线(usb)、近场通信(nfc)、红外(ir)、串行/并行总线等和/或与之通信)、以及连接到一个或多个网络826和/或通过一个或多个网络826通信的网络接口设备820(例如,有线和/或无线)。
115.可执行指令和机器存储介质
116.各种存储器(即,804、806和/或(多个)处理器802的存储器)和/或存储单元816可以存储体现本文所述的任何一个或多个方法或功能或由其利用的一组或多组指令和数据结构(例如,软件)824。这些指令在由(多个)处理器802执行时使各种操作来实现所公开的实施例。
117.如本文中所使用的,术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物,并且在本公开中可以互换使用。该术语是指存储可执行指令和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器)。因此,该术语应当被认为包括诸如固态存储器之类的存储设备,以及包括处理器内部或外部的存储器在内的光和磁介质。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括非易失性存储器,例如包括半导体存储器设备、例如可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、fpga和闪存设备;磁盘诸如内部硬盘和可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。术语机器存储介质、计算机存储介质和设备存储介质具体地和明确地排除了载波、调制数据信号和其它此类暂时性介质,其中至少一些被包含在下面讨论的术语“信号介质”中。
118.信号介质
119.术语“信号介质”应被认为包括任何形式的调制数据信号、载波等。术语“已调制数据信号”意指具有一个或多个特性的信号,该一个或多个特性在某种情况下被设置或改变以便对信号中的信息进行编码。
120.计算机可读介质
121.术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物,并且在本公开中可以互换使用。这些术语被定义为包括机器存储介质和信号介质。因此,该术语包括存储设备/介质和载波/调制数据信号。
122.示例实施例
123.示例1.一种用于应用内搜索的方法,包括:
124.接收上下文菜单调用的指示连同相关联的上下文;
125.确定本地上下文菜单项提供方的集合,每个本地上下文菜单项提供方具有相关联的排名;
126.确定远程上下文菜单项提供方的集合,每个远程上下文菜单项提供方具有相关联的排名;
127.基于排名从本地上下文菜单项提供方和远程上下文菜单项提供方的组合集合中选择上下文菜单项提供方的子集;以及
128.向用户呈现上下文菜单,上下文菜单包括来自上下文菜单项提供方的子集的项。
129.示例2.示例1的方法,还包括:
130.根据与每个项相关联的排名对来自上下文菜单项提供方的子集的项进行排序。
131.示例3.示例1或2的方法,其中上下文菜单项提供方的子集包括本地上下文菜单项提供方和远程上下文菜单项提供方。
132.示例4.示例3的方法,其还包括:
133.在本地缓存远程上下文菜单项提供方。
134.示例5.示例1、2、3或4的方法,还包括:
135.向远程上下文菜单服务发送请求,以请求关于在远程上下文菜单服务处的上下文菜单项提供方的信息;
136.接收标识在远程上下文菜单服务处的多个远程上下文菜单项提供方的信息;以及
137.其中远程上下文菜单项提供方集合包括在远程上下文菜单服务处的远程上下文菜单项提供方。
138.示例6.示例1、2、3、4或5的方法,其中:
139.确定本地上下文菜单项提供方的集合包括:
140.向每个本地上下文菜单项提供方请求排名和绘制代码;以及
141.从每个本地上下文菜单项提供方接收排名和绘制代码;以及
142.确定远程上下文菜单项提供方的集合包括:
143.向每个远程上下文菜单项提供方请求排名和绘制代码;以及
144.从每个远程上下文菜单项提供方接收排名和绘制代码。
145.示例7.示例6的方法,其还包括:
146.组合从上下文菜单项提供方的子集接收的绘制代码;以及
147.绘制经组合的绘制代码以产生上下文菜单。
148.示例8.示例6的方法,其中绘制代码是html代码,并且其中所绘制的html代码包括视觉元素和功能元素两者。
149.示例9.示例1、2、3、4、5、6、7或8的方法,其中每个上下文菜单项提供方包括:
150.适用于基于接收到的上下文返回排名的模型;以及
151.用于绘制上下文菜单项的绘制代码。
152.示例10.示例9的方法,其中模型包括经训练的机器学习模型。
153.示例11.示例9的方法,其中模型不包括经训练的机器学习模型。
154.示例12.示例1、2、3、4、5、6、7、8、9、10或11的方法,其中远程上下文菜单项提供方包括以下一项或多项:
155.适用于将文本从一种语言翻译为另一种语言的上下文菜单项提供方;
156.适用于提供文本的定义的上下文菜单项;
157.适用于将照片效果应用于图像的上下文菜单项;
158.适用于标识相关实体的上下文菜单项;
159.适用于提供直接答案的上下文菜单项;以及
160.适用于事实核查文本的上下文菜单项。
161.示例13.示例1、2、3、4、6、7、8、9、10、11或12的方法,还包括:
162.从上下文菜单服务接收注册请求,注册请求包括远程上下文菜单项提供方。
163.示例14.一种装置,包括用于执行如任一前述示例中的方法的部件。
164.示例15.包括机器可读指令的机器可读存储器,当机器可读指令被执行时,实现如任一前述示例中的方法或实现如任一前述示例中的装置。
165.示例16.一种用于应用内搜索的方法,包括:
166.接收上下文菜单调用的指示连同相关联的上下文;
167.确定本地上下文菜单项提供方的集合,每个本地上下文菜单项提供方具有相关联的排名;
168.确定远程上下文菜单项提供方的集合,每个远程上下文菜单项提供方具有相关联的排名;
169.基于排名从本地上下文菜单项提供方和远程上下文菜单项提供方的组合集合中选择上下文菜单项提供方的子集;以及
170.向用户呈现上下文菜单,上下文菜单包括来自上下文菜单项提供方的子集的项。
171.示例17.示例16的方法,还包括:
172.根据与每个项相关联的排名对来自上下文菜单项提供方的子集的项进行排序。
173.示例18.示例16的方法,其中上下文菜单项提供方的子集包括本地上下文菜单项提供方和远程上下文菜单项提供方。
174.示例19.示例18的方法,其还包括:
175.在本地缓存远程上下文菜单项提供方。
176.示例20.示例16的方法,其还包括:
177.向远程上下文菜单服务发送请求,以请求关于在远程上下文菜单服务处的上下文菜单项提供方的信息;
178.接收标识在远程上下文菜单服务处的多个远程上下文菜单项提供方的信息;以及
179.其中远程上下文菜单项提供方集合包括在远程上下文菜单服务处的远程上下文菜单项提供方。
180.示例21.示例16的方法其中:
181.确定本地上下文菜单项提供方的集合包括:
182.向每个本地上下文菜单项提供方请求排名和绘制代码;以及
183.从每个本地上下文菜单项提供方接收排名和绘制代码;以及
184.确定远程上下文菜单项提供方的集合包括:
185.向每个远程上下文菜单项提供方请求排名和绘制代码;以及
186.从每个远程上下文菜单项提供方接收排名和绘制代码。
187.示例22.示例21的方法,其还包括:
188.组合从上下文菜单项提供方的子集接收的绘制代码;以及
189.绘制经组合的绘制代码以产生上下文菜单。
190.示例23.示例21的方法,其中绘制代码是html代码,并且其中所绘制的html代码包括视觉元素和功能元素两者。
191.示例24.示例16的方法,其中每个上下文菜单项提供方包括:
192.适用于基于接收到的上下文返回排名的模型;以及
193.用于绘制上下文菜单项的绘制代码。
194.示例25.示例16的方法,其中远程上下文菜单项提供方包括以下一项或多项:
195.适用于将文本从一种语言翻译为另一种语言的上下文菜单项提供方;
196.适用于提供文本的定义的上下文菜单项;
197.适用于将照片效果应用于图像的上下文菜单项;
198.适用于标识相关实体的上下文菜单项;
199.适用于提供直接答案的上下文菜单项;以及
200.适用于事实核查文本的上下文菜单项。
201.示例26.一种包括硬件处理器和计算机可执行指令的系统,计算机可执行指令在由硬件处理器执行时使系统执行操作,操作包括:
202.接收上下文菜单调用的指示连同相关联的上下文;
203.确定本地上下文菜单项提供方的集合,每个本地上下文菜单项提供方具有相关联的排名;
204.确定远程上下文菜单项提供方的集合,每个远程上下文菜单项提供方具有相关联的排名;
205.基于排名从本地上下文菜单项提供方和远程上下文菜单项提供方的组合集合中选择上下文菜单项提供方的子集;以及
206.向用户呈现上下文菜单,上下文菜单包括来自上下文菜单项提供方的子集的项。
207.示例27.示例26的系统,其还包括:
208.根据与每个项相关联的排名对来自上下文菜单项提供方的子集的项进行排序。
209.示例28.示例26的系统,其中上下文菜单项提供方的子集包括本地上下文菜单项提供方和远程上下文菜单项提供方。
210.示例29.示例28的系统,其还包括:
211.在本地缓存远程上下文菜单项提供方。
212.示例30.示例26的系统,还包括:
213.向远程上下文菜单服务发送请求,以请求关于在远程上下文菜单服务处的上下文菜单项提供方的信息;
214.接收标识在远程上下文菜单服务处的多个远程上下文菜单项提供方的信息;以及
215.其中远程上下文菜单项提供方的集合包括在远程上下文菜单服务处的远程上下文菜单项提供方。
216.结论
217.考虑到可以应用本发明和前述示例的原理的许多可能的实施例,应当认识到,本文所描述的示例仅是说明性的,而不应被视为限制本发明的范围。因此,如本文所描述的本发明涵盖可以在以下权利要求书及其任何等效物的范围内的所有此类实施例。