CN109891406B - 多级数据分页 - Google Patents

多级数据分页 Download PDF

Info

Publication number
CN109891406B
CN109891406B CN201780067321.5A CN201780067321A CN109891406B CN 109891406 B CN109891406 B CN 109891406B CN 201780067321 A CN201780067321 A CN 201780067321A CN 109891406 B CN109891406 B CN 109891406B
Authority
CN
China
Prior art keywords
resources
resource
relationship
query
subset
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.)
Active
Application number
CN201780067321.5A
Other languages
English (en)
Other versions
CN109891406A (zh
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109891406A publication Critical patent/CN109891406A/zh
Application granted granted Critical
Publication of CN109891406B publication Critical patent/CN109891406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/114Pagination

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开的示例描述了用于响应于查询而从隔离集合返回资源的系统和方法。在一些情况下,查询的结果可能返回大量的资源。这样,可以对返回的结果进行分页,从而返回选定数量的结果。当对隔离集合执行后续查询时,使用一个或多个光标或跳过令牌来确保可以返回结果的后续分页。

Description

多级数据分页
背景技术
在一些实例中,数据可以被组织成图形结构或树形结构或者由图形结构或树形结构以其它方式表示。在这种情况下,图形结构中的每个节点可以与该图形结构中的附加节点相关联。这些节点中的每一个转而可以与附加节点相关联。当在图形结构上执行查询时,查询可能返回大量结果,并且同时返回所有结果可能是不切实际的。但是,如果所有结果未被同时返回,则无法知道返回了哪些数据以及未返回哪些数据。因而,当在图形结构或树形结构上执行后续查询时,会返回重复的结果。
关于这些和其它一般性考虑,已经做出了本文公开的各方面。而且,虽然可以讨论相对具体的问题,但是应该理解,这些示例不应限于解决在背景技术中或本公开中其它地方所识别的具体问题。
发明内容
本公开的示例描述了用于对从在隔离集合上执行的查询返回的资源进行分页的系统和方法。例如,本文公开的分页的系统和方法可以与图形结构或树形结构一起使用。在一些情况下,图形结构可以是多维的。例如,第一节点与第二节点、第三节点和第四节点具有第一关系。第二节点、第三节点和第四节点中的每一个可以与各种附加节点具有与第一关系不同的第二关系。另外,第二节点、第三节点和第四节点中的每一个可以彼此具有关系。
当在这样的图形结构上执行查询时,结果可能非常大。例如,查询的结果不仅可以包括第二节点、第三节点和/或第四节点,而且还可以包括与第二节点、第三节点和第四节点分别具有不同关系(例如,第二关系)的附加节点。在查询的结果太大而不能一次全部返回的情况下,可以对结果进行分页或以其它方式进行划分,以使得响应于查询而返回各种数据块。然而,由于图形结构的多维性质,难于跟踪作为查询结果返回了哪些节点。此外,如果执行后续查询,则后续查询应该返回在第一查询中未返回的结果。
因此,本文公开了一种光标或跳过令牌,其在图形结构中使用以对数据进行分页并且充当在多维图形上执行的后续查询的起点。
更具体地,本文公开了一种系统,包括:至少一个处理器;以及存储器,其耦合到所述至少一个处理器,所述存储器包括计算机可执行指令,所述计算机可执行指令在由所述至少一个处理器执行时执行用于在隔离集合中设置第一跳过令牌和第二跳过令牌(以及后续更多跳过令牌)的方法。除了其它特征外,该方法还包括接收查询以从所述隔离集合访问资源。所述查询包括与所述资源相关联的第一关系和与所述资源相关联的第二关系。然后针对作为查询的结果要返回的大量资源做出确定。随后将第一跳过令牌与关联于所述第一关系的第一资源相关联;并且将第二跳过令牌与关联于所述第二关系的第二资源相关联。
还公开了一种从隔离集合中返回资源的方法。除了其它特征外,该方法还包括:接收识别与所确定的资源具有第一关系的第一资源集和与所确定的资源具有第二关系的第二资源集的查询。在一些实例中,所述第二资源集通过所述第二关系与所述第一资源集相关联。该方法通过以下步骤继续:从所述第一资源集中识别要返回的第一资源子集;并且使第一光标与所述第一资源集中的至少一个资源相关联。接着从所述第二资源集中识别要返回的第二资源子集;并且第二光标与所述第二资源集中的至少一个资源相关联。接着返回所述第一资源子集和所述第二资源子集。
本公开的实施例还描述了一种资源的隔离集合。该资源的隔离集合包括:资源;通过第一关系与所述资源相关联的第一资源集合;以及与所述第一资源集合中的至少一个资源相关联的第二资源集合。所述第二资源集合通过第二关系与所述至少一个资源相关联。资源的隔离集合还包括与所述第一资源集合中的至少一个资源相关联的第一跳过令牌;以及与所述第二资源集合中的至少一个资源相关联的第二跳过令牌。
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。示例的附加方面、特征和/或优点将部分地在下面的描述中阐述,并且将部分地从描述中变得显而易见,或者可以通过本公开的实践来学习。
附图说明
参考以下附图描述非限制性和非穷举性示例。
图1示出了用于对从隔离集合上的查询返回的结果进行分页的示例性系统。
图2示出了用于管理资源标识符的隔离集合和相对应的关系的示例性系统的概览。
图3A-3E示出了示例性隔离集合。
图4示出了可以在其上执行查询的示例性隔离集合。
图5示出了当在图4的隔离集合上执行查询时可以返回的示例性查询和分页结果。
图6示出了当在图4的隔离集合上执行查询时可以返回的另一示例性查询和分页结果。
图7示出了当在图4的隔离集合上执行图6所示的查询之后的查询时可以返回的另一示例性查询和分页结果。
图8是用于设置用于对从隔离集合上的查询返回的结果进行分页的一个或多个光标或跳过令牌的方法。
图9是示出可以利用其实践本公开的各方面的计算设备的示例性物理部件的框图。
图10A和图10B是利用其可以实践本公开的各方面的移动计算设备的简化框图。
图11是其中可以实践本公开的各方面的分布式计算系统的简化框图。
图12示出了用于执行本公开的一个或多个方面的平板计算设备。
图13示出了其中多个节点被用作查询的起始点的另一示例性查询和相对应的结果。
具体实施方式
下面参考附图更全面地描述本公开的各个方面,附图形成本发明的一部分,并且示出了具体的示例性方面。然而,本公开的不同方面可以以许多不同的形式实现,并且不应该被解释为限于本文阐述的各方面;相反,提供这些方面是为了使本公开彻底和完整,并且将向本领域技术人员充分传达这些方面的范围。各方面可以被实践为方法、系统或设备。因此,各方面可以采用硬件实现方式、完全软件实现方式或组合软件和硬件方面的实现方式。因此,以下详细描述不应被视为具有限制意义。
如上所述,本公开涉及对在资源的隔离集合上执行的查询返回的资源或其它数据进行分页。在一些情况下,资源的隔离集合可以是多维的。结果,查询的结果也可以是多维的。例如,查询可以包括对与起始节点或资源具有多级关系的数据的请求。虽然本文提供的示例公开了单个起始节点或资源,但是查询可以包括多个起始节点或资源。
如下面将更详细解释的,起始节点或资源可以与节点或资源的第一集具有第一关系。第一集中的每个节点或资源可以与第二资源集中的一个或多个节点或资源具有第二不同关系。因而,可以使用查询来获得与第一关系相关联的节点或资源以及与第二关系相关联的节点或资源。
因为查询的结果可能包括具有多级关系的资源,所以结果可能太大而无法有效地提供给最终用户或请求设备。这样,可以对返回的结果进行分页。因此,可以提供各种光标或跳过令牌,该光标或跳过令牌指示在每个关系级别中返回哪些资源。因而,如果执行后续查询,则后续查询将返回从最后访问的或最后返回的资源开始的下一资源集(例如,那些将被返回但用于分页的结果)。
因此,本公开提供了生成和查询资源的隔离集合或资源标识符以及在那些资源或资源标识符之间的关系的系统和方法。本公开还描述了如何对在资源的隔离集合上的查询结果进行分页以及跟踪哪些资源或资源标识符被返回。
资源和/或关系可以由开发者或其它外部源提供。还可以通过针对隔离集合执行规则集来推断资源和关系。此外,可以通过各种技术来控制对隔离集合的访问,以便为每个隔离集合中的内容提供额外的安全措施。如本文所使用的,隔离集合可以被称为“集(set)”。
图1示出了用于对从隔离集合上的查询返回的结果进行分页的示例性系统。示例性系统100可以是相互依赖的部件的组合,所述部件交互以形成用于执行委托认证的集成整体。在各方面,系统100可以包括硬件部件(例如,用于执行/运行操作系统(OS))和/或在硬件上运行的软件部件(例如,应用、应用编程接口(API)、模块、虚拟机、运行时库等)。在特定方面,系统100可以为软件部件提供执行、评估操作约束集以及利用系统100的资源或设施的环境。在这些方面,环境可以包括或被安装在一个或多个处理设备上。例如,软件(例如,应用、操作指令、模块等)可以在诸如计算机、移动设备(例如,智能手机/电话、平板计算机、膝上型计算机、个人数字助理(PDA)等)和/或任何其它电子设备的处理设备上运行。作为处理设备操作环境的示例,参考图9-12中描绘的示例性操作环境。在其它情况下,本文公开的系统的部件可以分布在多个设备上并且可以由多个设备执行。例如,可以在客户端设备上输入输入,并且可以从网络中的其它设备(例如,服务器设备、网络设备、其它客户端设备等)处理或访问信息。
如图所示,系统100包括客户端设备102A-C、分布式网络104以及包括一个或多个服务器(例如服务器设备106A-C)的分布式服务器环境。本领域技术人员将理解,诸如系统100的系统的规模可以变化,并且可以包括比图1中描述的部件更多或更少的部件。在一些方面,在系统100的部件之间的接口可以远程发生,例如,其中系统100的部件可以分布在分布式网络的一个或多个设备上。
在各方面中,客户端设备102A-C可以被配置为经由用户接口部件或其它输入单元接收输入。输入的示例可以包括语音、视觉、触摸和文本输入。接口部件可以实现各种数据集和图形表示的创建、修改和导航。在示例中,各种数据集可以包括(或以其它方式关联于)例如资源标识符、资源元数据、关系信息、断言关系、图形映射信息、查询数据、规则集(例如以推理规则为例)、授权信息、认证信息等,如下面进一步详细讨论的。
通常,数据集被存储在一个或多个服务器设备106A-C上,并且可以由客户端设备102A-C访问。然而,在一些示例中,数据集可以至少部分地被存储在客户端设备102A-C中的一个或多个上。在各种数据集中表示的底层资源可以被本地存储或被存储在客户端设备102A-C可访问的数据存储库中,例如云存储应用。在至少一个示例中,在各种数据集(或其部分)中表示的底层资源可以分布在客户端设备102A-C上。例如,客户端设备102A(例如,移动电话)可以本地存储数据集中表示的资源的第一部分,客户端设备102B(例如,平板计算机)可以本地存储资源的第二部分,并且客户端设备102C(例如,膝上型计算机)可以本地存储数据集中表示的资源的剩余部分。在示例中,客户端设备102A-C可以访问数据集中包括的所有资源,可以访问数据集中包括的资源的子集,或者替代地不能访问数据集中包括的任何资源。
客户端设备102A-C还可以被配置为询问包括与各种数据集中的资源标识符相对应的资源的数据存储库。在示例中,客户端设备102A-C可以经由分布式网络104询问内容提供商,例如服务器设备102A-C。询问可以包括识别资源所位于的远程设备,和/或确定远程设备(或者服务/单独的远程设备)是否具有对资源的认证的访问。如果对资源的访问得到认证,则客户端设备102A-C可以从远程设备取回认证指示。客户端设备102A-C可以使用认证指示来提供对包括相对应的资源标识符的各种数据集中的一个或多个的访问。
服务器设备106A-C可以被配置为存储和/或提供对一个或多个资源的访问。例如,服务器设备102A可以是网络服务器,服务器设备102B可以是包括协作消息传递工具和日历应用的设备,并且服务器设备102C可以是电子邮件服务器。这些设备中的每一个可以包括可以经由一个或多个认证机制访问的资源的储存库。
在示例中,服务器设备106A-C可以在接收到对资源的请求时执行或监视认证过程。如果认证成功,则认证设备可以在指定时间段内存储或维持认证指示。当该时间段期满时,服务器设备106A-C可以移除或尝试更新认证指示。在示例中,服务器设备106A-C可以向询问客户端设备提供认证指示。在一些方面,服务器设备106A-C还可以被配置为存储各种数据集和图形表示的至少一部分,如上所述。
图2示出了用于管理资源标识符和相对应的关系的隔离集合的示例性系统200的概览。在系统200中实现的隔离集合技术可以包括图1中描述的委托认证技术中的一个或多个或者与之相关联。在替代示例中,单个设备(包括诸如处理器和/或存储器的一个或多个部件)可以分别执行在系统100和200中描述的处理。
关于图2,系统200可以包括集创建应用202和204、集环境206、集208和210、实体212和214、资源标识符216、218、220、222、224和226以及资源228、230、232、234、236和238。在各方面,集创建应用202和204可以是被配置为创建、推断、操纵、导航和可视化各种资源、关系和图形表示的应用或服务。集创建应用202和204可以定义在资源(例如,人、项目、动作、文件、任务、邮件、文档、日历事件等)之间的关系集合并且在这些集合上执行查询。集创建应用202和204还可以提供定义和存储用于推断集合中的一个或多个关系的规则集,并且显示集合数据的图形表示。定义的规则集可以被存储在集本身中,并且在一些示例中被存储为集内的元数据。
在示例中,集创建应用202和204可以在客户端设备上或在分布式环境中的一个或多个设备上安装和执行。例如,集创建应用202可以被安装在客户端设备102A上,集创建应用204可以被安装在客户端设备102B上,并且与服务器设备106A相关联的集创建服务可以对于客户端设备102C可访问。
在各方面中,集创建应用202和204可以访问文件目录或执行环境,例如环境206。环境206可以与集创建应用共同定位,或者环境206可以位于远离集创建应用。环境206可以提供对一个或多个数据集合的访问,例如集208和210。在示例中,可以使用由集创建应用202和204生成和/或维护的许可的一个或多个集来确定对数据集合的访问。这些许可集在一个或多个数据集合中可以不同。结果,可能无法从集创建应用202和204中的一个或多个访问一个或多个数据集合(或与其相关联的功能)。
集208和210可以分别包括断言的资源标识符和相对应的关系的隔离集合。隔离集合中的关系可以被手动定义,或者可以使用一个或多个规则集而被自动导出。该隔离集合可以使用图形结构来表示,该图形结构可以直接涉及数据集合中的资源并且提供利用单个操作取回关系数据。每个隔离集合可以包括对该隔离集合唯一的资源标识符。
替代地,隔离集合可以包括包含于一个或多个替代的隔离集合中的资源标识符。例如,如图2所示,集208可以包括资源标识符216、218、220和222,并且集210可以包括资源标识符220、222、224和226。资源标识符216、218、220、222、224和226可以对应于和/或标识一个或多个资源的位置。如本文所使用的,资源标识符引用现有资源,但是其本身不是资源。示例性类型的资源标识符包括但不限于统一资源标识符(例如,统一资源定位符(URL)、统一资源名称(URN)等)、IP地址、存储器或存储装置地址,等等。
本领域技术人员将理解,在不背离本公开的范围的情况下,本文公开的各个方面可以采用任何类型的标识符。识别资源的位置可以包括使用例如正则表达式来解析资源标识符,向搜索实用程序提供资源标识符的一个或多个部分,执行资源标识符等。在各方面,访问数据集合不保证访问由包含于每个数据集合中的资源标识符所标识的资源。例如,虽然用户能够访问和操纵集208,但是用户可能未被授权访问与集208中的资源标识符相对应的一个或多个底层资源。
资源提供方212和214可以被配置为存储和/或提供对一个或多个资源的访问。这样,如本文使用的资源提供方可以是数据存储库、云服务提供者、客户端计算设备、服务器计算设备、分布式设备系统(例如以企业网为例)、应用、软件平台(例如,操作系统、数据库等)等。在各方面中,资源提供方212和214可以是(或可以访问)各种不同的数据源,例如内容提供方、数据存储库、各种应用数据集等。数据存储可以包括与一个或多个资源标识符相对应的一个或多个资源。
例如,如图2所示,资源提供方212可以是包括各种不同类型的资源的数据存储库,例如资源228(例如,文档1(D1))和资源230(例如,表示2(P1)),并且资源提供方214可以是联系人管理应用,其包括联系人资源232(例如,联系人1(C1))、234(例如,联系人2(C2))、236(例如,联系人3(C3))和238(例如,联系人4(C4))。在该示例中,资源标识符216可以对应于资源228;资源标识符218可以对应于资源230;资源标识符220可以对应于资源232;资源标识符222可以对应于资源234;资源标识符224可以对应于资源236;并且资源标识符226可以对应于资源238。
在一些方面,资源提供方212和214可以由集创建应用202和204访问。集创建应用202和204可以访问资源提供方212和214以确定资源的存在和/或取回与该资源相关联的信息(例如,资源元数据、资源位置、资源标识符、许可集、认证数据等)。从资源提供方212和214取回的信息可以用于确定与一个或多个可用资源相对应的资源标识符集。资源标识符集可以用于创建断言的资源标识符和相对应的关系的一个或多个隔离集合。如上所述,资源标识符可以是或包括其相对应的资源的持久URI。例如,资源标识符216可以包括实际文档(D1)228的URI。因此,在这样的示例中,用户能够从该集中确定文档(D1)228的位置,并且取决于认证和访问约束,取回文档(D1)228。作为另一示例,如图2所示,资源提供方212可以由集创建应用202访问。
集创建应用202可以确定资源提供方212至少包括资源228和230,并且可以确定每个资源的资源标识信息。基于确定出的资源标识信息,资源标识符216和218可以分别应用于/涉及资源228和230,并且提供给环境206。然后,环境206可以使资源标识符216和218有资格将分析包含到一个或多个隔离集合。
图3A示出了断言的资源标识符和相对应的关系的示例性隔离集合300。示例性隔离集合300包括资源标识符302、304、306、308、310、312和314,以及关系316、318、320、322、324和326。在各方面中,可以使用如上所述被包括作为集创建应用的一部分的集合创建实用程序来生成和/或操纵隔离集合300。当以图3A中描绘的图形形式呈现时,每个资源标识符可以被称为“节点”,并且每个关系可以被称为“边”。
集合创建实用程序还可以使用一个或多个规则集来识别资源和/或确定集合的资源类型,所述规则集可以包括根据语义网络技术定义的规则,例如资源描述框架(RDF)、RDF模式(RDFS)、SPARQL协议和RDF查询语言(SPARQL)、网络本体语言(OWL)等。例如,集合300包括表示底层资源的资源标识符312,在所描绘的示例中为“email789”。类似地,资源标识符304表示资源文档“Doc123”,并且资源标识符302表示资源任务“Taskl23”。在隔离集合300中包括的每个资源和关系可以由开发者通过集创建应用进行断言。
例如,开发者可以手动添加每个资源标识符和资源标识符之间的关系。作为示例,开发者可以手动指示“taskl23”是“Docl23”上的任务,如在集合300中通过“taskOn”关系316表示的。资源标识符和关系也可以由开发者创建的外部bot或应用进行断言。例如,可以对插件进行编程以监视浏览器或其它应用中的活动来跟踪应用的使用。基于应用的使用,插件发送要包含于集合300中的附加资源和关系。
与断言的资源标识符和关系相反,集合创建实用程序可以执行规则集以确定附加关系和资源类型,这里被称为“推断关系”和“推断资源标识符”或“推断资源类型”。例如,在执行规则集时,集合创建实用程序可以确定资源标识符312表示电子邮件消息,并且资源标识符304表示文档。下面进一步详细讨论推断的关系和资源的生成。
隔离集合300进一步描绘资源标识符302与资源标识符304、306和308以及资源标识符310相关联。集合创建实用程序可以确定资源标识符302表示要对标识符304、306和308执行的任务。基于该确定,集合创建实用程序可以指派关系316、318和320(例如,“taskOn”)以定义资源标识符302与资源标识符304、306和308之间的关联性。
在其它示例中,可以断言关系316、318和320,如上所述。诸如“hasDiscussion”关系322的附加关系可以由开发者手动断言,或者从分析电子邮件101的内容的电子邮件应用的插件断言。虽然在图3A中描述了特定类型的资源和关系,但本领域技术人员将理解,在不背离本公开的精神的情况下,可以在隔离集合中包括其它类型的资源和/或关系。
图3B-3E示出了可以用于遍历集合300的示例性查询模型。在各方面中,可以经由集合创建实用程序提供的接口来执行查询。可以针对包括信息(例如,资源标识符、资源类型、资源元数据、许可数据等)的一个或多个文件和/或目录执行查询。查询结果可以以图形形式可视化为一个或多个集合,例如集合300。
例如,整个集合300数据集可以仅包括集合300中示出的那些元素(例如,资源标识符302、304、306、308、310、312和314以及关系316、318、320、322、324和326)。在该特定示例中,资源标识符312可以表示包括主题“API Design”的电子邮件,并且资源标识符314可以表示包括主题“Sets”的电子邮件。可以针对集合300执行查询“http://.../set1/task123”。查询结果可以包括资源标识符302,并且可以被可视化,如图3B所示。在图3C中,查询已被修改为“http://../setl/taskl23?$expand=taskOn”,并针对集合300被执行。查询结果可包括资源标识符302、304、306和308以及关系316、318和320,并且如图3C所示被可视化。
在图3D中,查询已经被修改为“http://../setl/taskl23?$expand=taskOn($expand=attachmentOn)”,并且被针对集合300执行。查询结果可以包括资源标识符302、304、306、308、312和314以及关系316、318、320、324和326,并且如图3D所示被可视化。在图3E中,查询已被修改为“http://…/setl/taskl23?$expand=taskOn($expand=attachmentOn($filter=Subjecteq'Sets'))”,并针对集合300被执行。因为仅资源标识符包括314主题“Sets”,所以查询结果可以包括资源标识符302、306和314以及关系318和326,并且如图3E所示被可视化。
图4示出了可以在其上执行查询的示例性隔离集合400。与上面参考图3描述的隔离集合300类似,隔离集合400包括各种资源标识符402、404、410、414、418、422、426、430、434、438、442、446、450、454和458。资源标识符402、404、410、414、418、422、426、430、434、438、442、446、450、454和458中的每一个具有相对应的关系408、412、416、420、424、428、432、436、444、448、452、456和460。例如,资源标识符402(“Person1”)与资源标识符404(“Person2”)具有关系460(“hasFriend”)。还如图所示,隔离集合400可以具有多个级别或维度,并且每个级别可以具有多个关系。例如,资源标识符404(“Person2”)与资源标识符410(“Item1”)具有关系408(“purchased”)。另外,Person2可以与资源标识符462(“Task1”)具有另一关系(例如,关系460(“hasTask”))。
每个资源标识符表示底层资源。因此,资源标识符402表示对应于“Personl”的数据或信息。类似地,资源标识符410表示关于产品的信息(例如,“Item1”)。隔离集合400中包括的每个资源和关系可以由开发者通过诸如先前描述的集创建应用来断言。
每个资源标识符可以以某种方式与其它资源标识符相关联。在该示例中,集合创建实用程序可以确定资源标识符402(“Person1”)与资源标识符404(“Person2”)、414(“Person3”)、434(“Person4”)、438(“Person5”)和442(“Person6”)具有关系。基于该确定,集合创建实用程序可以指派关系412、432、436、440和460(例如,“hasFriend”)来定义这一关联性。
此外,各种资源标识符可以具有关系的第二级别或维度。例如并且如上所述,资源标识符404与资源标识符410(“Item1”)具有关系408(“purchased”)。此外,资源标识符414(“Person3”)与资源标识符418(“Item2”)、422(“Item3”)、426(“Item4”)和430(“Item5”)(经由关系416、420、424和428(“purchased”))相关联。每个其它资源标识符可以与如图所示的各种其它资源标识符具有关系。在其它实现方式中,资源标识符可以具有多个关系。例如,除了“purchased”关系408之外,与Person2相关联的资源标识符404可以与资源标识符462(“Task1”)具有关系460“hasTask”。
虽然出于清楚的目的而未示出,但是可以预期两个或更多个资源标识符可以与相同的资源标识符具有关系,或者可以在不同的子集中提供资源标识符。例如,资源标识符404(“Person2”)可以经由关系(例如,“hasFriend”)与资源标识符414(“Person3”)相关联。同样,资源标识符410(“Item1”)可以经由关系(例如,“purchased”)与资源标识符404(“Person2”)和资源标识符414(“Person3”)相关联。
一旦创建了隔离集合400,就可以在隔离集合400上执行一个或多个查询。然而,由于隔离集合400的总体大小,不是所有资源标识符或其底层资源都响应于查询而被返回。这样,可以对结果进行分页,以使得仅返回对资源标识符和/或其相关联的资源的各种选择。
为了确保未包含于第一分页中的资源标识符和/或其相关联的资源可以在后续查询中得到返回,可以生成一个或多个光标或跳过令牌并将其与隔离集合400的各种关系级别中的特定资源标识符相关联。这样,当后续查询被执行时,跳过令牌或光标指示隔离集合400中的最后访问节点,并且查询可以从该点恢复。
例如并转到图5,可以在隔离集合400上执行查询500。在该示例中,查询500指示Person1(例如,图4中所示的资源标识符402)是查询500的入口(entry)标识符。查询500还指示与Person1具有指定关系(例如,“hasFriend”)的每个资源标识符应该被返回。因此,查询500的结果510示出了Person2(图4的资源标识符404)、Person3(图4的资源标识符414)和Person4(图4的资源标识符434)被返回。
如上所述,在给定级别中可以存在多个关系。在隔离集合上执行以返回多个关系的查询可以看起来非常类似于图5中所示的查询500。然而,为了获得多个关系中的每一个,可以改变查询500以使得查询的“($expand=purchased)”部分包括第二关系(例如,“($expand=purchased,hasTask)”。作为添加附加关系的结果,可以基于它与Person2的关系460而返回资源标识符462(“Task1”)。
虽然Person1(资源标识符402)还与Person5(图4的资源标识符438)和Person6(图4的资源标识符442)相关联,但是在该示例中未返回这些资源标识符和/或其相关联的资源。这可能是由于各种因素造成的。例如,在一些实例中,诸如查询500的查询的结果可能太大而不能发送到请求客户端设备。在其它示例中,可能存在要返回的最大指定数量的结果。在这种情况下,可以做出对返回的结果进行分页的确定。在这种情况下,分页在Person4之后开始。
然而,请求客户端设备可能想要接收附加数据(例如,与Person5和/或Person6相关联的资源标识符)。这样,生成光标或跳过令牌并将其与最后已知的访问节点或资源标识符相关联。在一些实现方式中,跳过令牌可以携带或以其它方式与关于给定维度的特定查询选项的附加信息相关联。因此,当执行后续查询时,查询可以在最后的已知节点或资源标识符处恢复并继续返回结果。
例如并且返回参考图5,命令520生成跳过令牌或以其它方式使光标与Person4(资源标识符434)相关联。因此,如果查询要继续,则第二分页数据(未示出)将返回与Person5和Person6相关联的资源标识符和/或资源。
在其上执行查询的隔离集合400可以是多维的。例如,单个资源标识符可以与各种其它资源标识符具有多个级别的关系。因此,可以执行返回多个级别的资源标识符的查询。
例如并转到图6,可以在隔离集合(例如以隔离集合400为例)上执行查询600。如图6所示,查询610指示Person1(图4中的资源标识符402)是入口标识符。查询600还指示应该返回与Person1具有指定关系(例如,“hasFriend”和“purchased”)的多个级别的每个资源标识符。
查询600的结果610也在图6中示出。例如,查询600的结果610返回Person2(资源标识符404)以及Item1(资源标识符410)。如上所述,Person2被返回作为关系“hasFriend”的结果,并且Item1被返回作为关系“purchased”的结果。
结果610还包括Person3(资源标识符414)以及Item2(资源标识符418)、Item3(资源标识符422)和Item4(资源标识符426)。结果还包括Person4(资源标识符434)。
然而,如图4所示,Person3还与Item5(资源标识符430)相关联,但在该示例中未返回该资源标识符。如上所述,由于与结果相关联的分页约束,可能已经省略了Item5(例如,可能仅返回特定数量的资源标识符和/或对返回的数据的各种大小约束)。类似地,Person4(资源标识符434)是返回的最后资源标识符,即使Person1还与Person5(资源标识符438)和Person6(资源标识符442)相关联。
当以这种方式对来自查询的结果进行分页时,生成一个或多个光标或跳过令牌并将其与最后访问的资源相关联。然而,与图5中生成的光标或跳过令牌相比,在该实例中生成了两个不同的光标或跳过令牌—每个用于隔离集合中的每个关系级别。在一些实现方式中,可以为每个关系实例生成光标。例如,特定级别可以具有两种关系(例如,“purchased”关系和“hasTask”关系)。在这种情况下,可以为每个关系生成光标。
例如,第一光标或跳过令牌与级别中的一个关系中的最后已知的访问资源标识符相关联,并且第二光标或跳过令牌与同一级别或不同级别中的另一关系中的最后已知的访问资源标识符相关联。更具体地,命令620生成第一光标或跳过令牌,其识别在级别中的特定关系中由查询600访问的最后资源标识符(例如,包含于返回结果中的最后资源标识符)。在该示例中的跳过令牌与“purchased”关系中的Item4相关联,因为Item4是查询600访问和/或返回的最后一个节点。
同样,命令630用于生成第二光标或跳过令牌。与命令620类似,命令630识别在另一关系级别中由查询600访问的最后资源标识符。也就是说,由命令630生成的跳过令牌或光标与“hasFriend”关系中的Person4相关联,因为Person4是查询600访问和/或返回的最后一个节点。如上所述,每个光标或跳过令牌指示返回结果的结尾是什么(例如,指示分页中断)以及后续查询的结果应该从何处开始。
例如,并且转到图7,可以接收后续查询700。后续查询700可以使搜索结果在与“purchased”关系相关联的跳过令牌处开始并返回附加结果710。如图7所示,后续查询700的结果710返回Item5(资源标识符430)。
同样,可以接收后续查询720并且使搜索结果在与“hasFriend”关系相关联的跳过令牌处开始。后续查询720还可以从第二关系级别返回信息。例如,当在隔离集合400上执行后续查询720时,返回结果730。如图7所示,结果730包括Person5(资源标识符438)和Person6(资源标识符442)。另外,还返回Item6(资源标识符446)、Item7(资源标识符450)和Item8(资源标识符454)。
如图7所示,由于Item8是作为后续查询720的结果而返回的最后资源标识符,因此Item8与新的跳过令牌相关联(例如,使用命令“purchase@nextLink”:“http://.../setl/data?$skiptoken=opaque_string_4”。同样,命令“@nextLink”:“http://.../setl/data?$skiptoken=opaque_string_3”导致光标或跳过令牌与Person6相关联,该Person6是“hasFriend”关系级别的最后的已知访问节点。如果接收到另一查询,则一个跳过令牌可以用作新的起始点。如上所述,如果特定级别具有多个关系,则可以在该级别中设置多个跳过令牌。
在一些情况下,两个跳过令牌都可以用作起始点。例如,如果使用另一查询来从与Item8相关联的光标请求附加结果,则剩下要返回的唯一资源标识符是与Item9相关联的资源标识符458(参见图4)。作为响应,新的分页数据将返回Item9。此外,还将返回在第一关系级别中存在于隔离集合中的资源标识符(例如,Person7(未示出)),以及在第二关系级别(例如,“purchased”)中与Person7相关联的任何资源标识符。
图8示出了用于设置用于对从隔离集合上的查询返回的结果进行分页的一个或多个光标或跳过令牌的方法800。在一些实施例中,方法800可以用在关于图4示出和描述的隔离集合400上。此外,方法800可以用于返回图5、图6和图7中所示的结果。
方法800在操作810处开始,其中接收查询。在一些实施例中,查询可以是对单个关系级别或多个关系级别中的资源标识符的请求。
一旦接收到查询,就可以对可以返回的资源或资源标识符的数量做出确定。在一些实施例中,该数量可以由大小阈值确定。例如,只要资源的组合大小不超过大小阈值(例如,50MB),就可以返回n个资源标识符和/或资源。在其它实现方式中,该确定可以基于返回的资源标识符和/或资源的实际数量(例如,100)。在又一实现方式中,大小阈值可以由每页的节点目标数量确定。例如并返回图4,Person6(资源标识符442)具有四个相关联的节点(例如,Item6、Item7、Item8和Item9)。如果大小阈值(或页面大小)被设置为3,则Person6的第一页包括Item6、Item7和Item8。第二页包括Item9。
然后,流程进行到操作830,其中生成第一跳过令牌并且其与第一资源标识符相关联。在一些实施例中,第一跳过令牌与第一级别中的第一关系中的第一资源标识符相关联。
在操作840中,生成第二跳过令牌并且其与第二资源标识符相关联。第二资源标识符还可以与第一级别中的第二关系相关联,该第二关系与相同级别中的第一关系不同。这样,在隔离集合中的每个关系级别可以具有相关联的跳过令牌。虽然已经给出了具体示例,但是每个级别可以具有许多跳过令牌。替代地,级别可能不具有任何跳过令牌。
流程进行到操作850,并且返回直到第一跳过令牌和/或第二跳过令牌(和/或可能存在的任何附加跳过令牌)的结果。如上所述,如果接收到后续查询,则将第一跳过令牌和第二跳过令牌用作定界符以指示后续查询的新起始点。
图9-12和相关联的描述提供了其中可以实践本公开的各方面的各种操作环境的讨论。然而,结合图9-12示出和讨论的设备和系统是出于示例和说明的目的,而不是限制可以用于实践本文所述的本公开的各方面的大量计算设备配置。
图9是示出可以利用其实践本公开的各方面的计算设备900的示例性物理部件(例如,硬件)的框图。下面描述的计算设备部件可以适用于上述计算设备,包括客户端计算设备102A-C和服务器计算设备106A-C。在基本配置中,计算设备900可以包括至少一个处理单元902和系统存储器904。取决于计算设备的配置和类型,系统存储器904可以包括但不限于易失性存储装置(例如,随机存取存储器),非易失性存储装置(例如,只读存储器),闪存或这些存储器的任何组合。
系统存储器904可以包括操作系统905以及适合于运行软件应用920的一个或多个程序模块906,例如由本文描述的系统支持的一个或多个部件。作为示例,系统存储器904可以存储隔离集合数据922(例如,资源标识符、资源元数据、关系信息、断言/推断的关系、图形映射信息、查询数据、规则集(例如推理规则)、授权信息、认证信息、光标、跳过令牌等)以及对隔离集合执行查询的指令。例如,操作系统905可以适合于控制计算设备900的操作。
此外,本公开的实施例可以结合图形库、其它操作系统或任何其它应用程序来实践,并且不限于任何特定的应用或系统。该基本配置在图9中由虚线908内的那些部件示出。计算设备900可以具有附加特征或功能。例如,计算设备900还可以包括附加数据存储设备(可移除和/或不可移除),例如以磁盘、光盘或磁带为例。这种附加存储装置在图9中由可移除存储设备909和不可移除存储设备910示出。
如上所述,多个程序模块和数据文件可以存储在系统存储器904中。当在处理单元902上执行时,程序模块906(例如,应用920)可以执行包括但不限于本文描述的各方面的过程。可以根据本公开的各方面使用的其它程序模块可以包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
此外,本公开的实施例可以在包括分立电子元件的电子电路,包含逻辑门的封装或集成电子芯片,利用微处理器的电路中,或者在包含电子元件或微处理器的单个芯片上实践。例如,可以经由片上系统(SOC)来实践本公开的实施例,其中图9中示出的每个或许多部件可以被集成到单个集成电路上。这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都作为单个集成电路被集成(或“烧制”)到芯片衬底上。当经由SOC操作时,本文描述的关于客户端切换协议的能力的功能可以经由与计算设备900的其它部件集成在单个集成电路(芯片)上的专用逻辑来操作。还可以使用能够执行逻辑运算的其它技术来实践本公开的实施例,逻辑运算例如是AND、OR和NOT,包括但不限于机械、光学、流体和量子技术。此外,本公开的实施例可以在通用计算机或任何其它电路或系统中实施。
计算设备900还可以具有一个或多个输入设备912,例如,小键盘、鼠标、笔、声音或语音输入设备、触摸或滑动(swipe)输入设备等。还可以包括输出设备914,例如显示器、扬声器、打印机等。上述设备是示例,并且可以使用其它设备。计算设备900可以包括允许与其它计算设备950进行通信的一个或多个通信连接916。合适的通信连接916的示例包括但不限于射频(RF)发射器、接收器和/或收发器电路;通用串行总线(USB),并行和/或串行端口。
本文使用的术语“计算机可读介质”可以包括计算机存储介质。计算机存储介质可以包括以用于存储信息(例如计算机可读指令、数据结构或程序模块)的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。系统存储器904、可移除存储设备909和不可移除存储设备910都是计算机存储介质示例(例如,存储器存储装置)。计算机存储介质可以包括RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或者其它磁存储设备,或者可以用于存储信息并且可以由计算设备900存取的任何其它制品。任何这样的计算机存储介质可以是计算设备900的一部分。计算机存储介质不包括载波或其它传播或调制的数据信号。
通信介质可以由计算机可读指令、数据结构、程序模块或调制数据信号(例如载波或其它传输机制)中的其它数据来体现,并且包括任何信息传送介质。术语“已调制数据信号”可以描述具有按照对信号中的信息进行编码的方式设置或改变的一个或多个特性的信号。通过示例而非限制,通信介质可以包括有线介质(例如有线网络或直接有线连接)以及无线介质(例如声学、射频(RF)、红外和其它无线介质)。
图10A和图10B示出了移动计算设备1000,例如可以在其中实践本公开的实施例的移动电话、智能电话、可穿戴计算机(例如智能手表)、平板计算机、膝上型计算机等。在一些方面,客户端可以是移动计算设备。参考图10A,示出了用于实现这些方面的移动计算设备1000的一个方面。在基本配置中,移动计算设备1000是具有输入元件和输出元件二者的手持式计算机。移动计算设备1000通常包括显示器1005以及一个或多个输入按钮1010,其允许用户将信息输入到移动计算设备1000中。移动计算设备1000的显示器1005还可以用作输入设备(例如,触摸屏显示器)。
如果包括可选的侧输入元件1015,则该可选的侧输入元件1015允许进一步的用户输入。侧输入元件1015可以是旋转开关、按钮或任何其它类型的手动输入元件。在替代方面,移动计算设备1000可以并入更多或更少的输入元件。例如,在一些实施例中,显示器1005可以不是触摸屏。
在又一替换实施例中,移动计算设备1000是便携式电话系统,例如蜂窝电话。移动计算设备1000还可以包括可选的小键盘1035。可选的小键盘1035可以是物理小键盘或在触摸屏显示器上生成的“软”小键盘。
在各种实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器1005、视觉指示器1020(例如,发光二极管)和/或音频换能器1025(例如,扬声器)。在一些方面,移动计算设备1000包括振动换能器,用于向用户提供触觉反馈。在又一方面,移动计算设备1000包括输入和/或输出端口,例如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口),用于向外部设备发送信号或从外部设备接收信号。
图10B是示出移动计算设备的一个方面的架构的框图。也就是说,移动计算设备1000可以并入系统(例如,架构)1002以实现一些方面。在一个实施例中,系统1002被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传送客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些方面,系统1002被集成为计算设备,例如集成的个人数字助理(PDA)和无线电话。
可以将一个或多个应用程序1066加载到存储器1062中,并在操作系统1064上运行或与其相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息传送程序,等等。系统1002还包括存储器1062内的非易失性存储区域1068。非易失性存储区域1068可以用于存储在系统1002断电时不应该丢失的持久信息。应用程序1066可以在非易失性存储区域1068中使用和存储信息,例如电子邮件或由电子邮件应用使用的其它消息等。同步应用(未示出)也驻留在系统1002上,并被编程为与驻留在主机计算机上的相对应的同步应用交互,以使存储在非易失性存储区域1068中的信息与存储在主机计算机处的相对应的信息保持同步。应当理解,可以将其它应用加载到存储器1062中并在本文描述的移动计算设备1000上运行(例如,搜索引擎、提取器模块、相关性排名模块、答案评分模块等)。
系统1002具有电源1070,其可以被实现为一个或多个电池。电源1070还可以包括外部电源,例如AC适配器或电源对接支架,其补充电池或对电池进行重新充电。
系统1002还可以包括执行发送和接收射频通信的功能的无线电接口层1072。无线电接口层1072经由通信运营商或服务提供商促进在系统1002与“外部世界”之间的无线连接。在操作系统1064的控制下进行去往和来自无线电接口层1072的传输。换句话说,由无线电接口层1072接收的通信可以经由操作系统1064被传播到应用程序1066,并且反之亦然。
视觉指示器1020可以用于提供视觉通知,和/或音频接口1074可以用于经由音频换能器1025产生可听通知。在所示实施例中,视觉指示器1020是发光二极管(LED),并且音频换能器1025是扬声器。这些设备可以直接耦合到电源1070,以使得当被激活时,即使处理器1060和其它部件可能关闭以节省电池电量,这些设备仍然保持开启达由通知机制指示的持续时间。LED可以被编程以无限期地保持开启,直到用户采取动作来指示设备的通电状态。音频接口1074用于向用户提供可听信号并从用户接收可听信号。例如,除了耦合到音频换能器1025之外,音频接口1074还可以耦合到麦克风以接收可听输入,例如以便于电话交谈。根据本公开的实施例,麦克风还可以用作音频传感器以便于控制通知,如下所述。系统1002还可以包括视频接口1076,其使得车载相机1030的操作能够记录静止图像、视频流等。
实现系统1002的移动计算设备1000可以具有附加特征或功能。例如,移动计算设备1000还可以包括附加数据存储设备(可移除和/或不可移除),例如磁盘、光盘或磁带。这种附加存储装置在图10B中由非易失性存储区域1068示出。
如上所述,由移动计算设备1000生成或捕获并经由系统1002存储的数据/信息可以被本地存储在移动计算设备1000上,或者数据可以被存储在任何数量的存储介质上,该存储介质可以由设备经由无线电接口层1072或经由移动计算设备1000与关联于移动计算设备1000的单独计算设备(例如,在诸如互联网的分布式计算网络中的服务器计算机)之间的有线连接进行访问。应当理解,可以经由无线电接口层1072或经由分布式计算网络并且经由移动计算设备1000来访问这样的数据/信息。类似地,根据公知的数据/信息传送和存储单元(包括电子邮件和协作数据/信息共享系统),可以在计算设备之间容易地传送这样的数据/信息用于存储和使用。
图11示出了用于处理在计算系统处从远程源(例如如上所述的个人计算机1104、平板计算设备1106或移动计算设备1108)接收到的数据的系统的架构的一个方面。在服务器设备1102处显示的内容可以被存储在不同的通信信道或其它存储类型中。例如,可以使用目录服务1122、网络门户1124、邮箱服务1126、即时消息传送存储库1128或社交网站1130来存储各种文档。
隔离集合应用1121可以由与服务器设备1102通信的客户端使用,和/或隔离集合应用1121可以由服务器设备1102使用。服务器设备1102可以通过网络1115向客户端计算设备提供数据并且从客户端计算设备提供数据,所述客户端计算设备例如是个人计算机1104、平板计算设备1106和/或移动计算设备1108(例如,智能电话)。举例来说,上述计算机系统可以被体现在个人计算机1104、平板计算设备1106和/或移动计算设备1108(例如,智能电话)中。除了接收可以用于在图形起源系统处进行预处理或在接收计算系统处进行后处理的图形数据之外,计算设备的这些实施例中的任何一个可以从存储库1116获得内容。
图12示出了可以执行本文公开的一个或多个方面的示例性平板计算设备1200。此外,本文描述的各方面和功能可以在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和取回以及各种处理功能可以通过分布式计算网络(例如互联网或内联网)彼此远程操作。用户界面和各种类型的信息可以经由车载计算设备显示器或者经由与一个或多个计算设备相关联的远程显示单元进行显示。例如,可以在墙面上显示和交互用户界面和各种类型的信息,在该墙面上投影用户界面和各种类型的信息。与可以实践本发明的实施例的多个计算系统的交互包括键击输入、触摸屏输入、语音或其它音频输入、手势输入,其中相关联的计算设备配备有用于捕获并解释用于控制计算设备的功能的用户手势的检测(例如,相机)功能等。
如上所述,查询可以具有单个起始节点或资源,或者可以具有多个不同的起始节点或资源。图13示出了查询1300的示例,其包括多个起始节点或资源以及由查询1300返回的结果1310。在该示例中,可以在图4的示例性隔离集合400上执行查询1300。如图13所示,查询1300包括起始节点Person2和Person3。查询1300的结果1310包括关于Person2和“purchased”及“hasTask”关系的信息以及Person3及其相对应的“purchased”关系。
除上述之外,本公开的各方面涉及一种系统,包括:至少一个处理器;以及存储器,其耦合到所述至少一个处理器,所述存储器包括计算机可执行指令,所述计算机可执行指令在由所述至少一个处理器执行时执行用于在隔离集合中设置第一跳过令牌和第二跳过令牌的方法,该方法包括:接收查询以从隔离集合访问资源,其中所述查询包括与所述资源相关联的第一关系和与所述资源相关联的第二关系;确定要返回的大量资源;使所述第一跳过令牌与关联于所述第一关系的第一资源相关联;并且使所述第二跳过令牌与关联于所述第二关系的第二资源相关联。在进一步示例中,所述指令还包括用于返回确定的大量资源的指令。在进一步示例中,所述第一资源没有被包含在确定出的大量资源中。在进一步示例中,所述第二资源没有被包含在确定出的大量资源中。在进一步示例中,所述指令还包括用于以下的指令:接收第二查询以从所述隔离集合访问资源;以及确定从与所述第一跳过令牌相关联的第一资源或与所述第二跳过令牌相关联的第二资源开始要返回的多个资源。在进一步示例中,每个资源与资源标识符相关联。在进一步示例中,所述指令还包括用于至少部分地基于一个或多个接收到的参数来过滤所述多个资源的指令。
在其它方面,公开了一种从隔离集合返回资源的方法。该方法包括:接收识别与确定的资源具有第一关系的第一资源集和与确定的资源具有第二关系的第二资源集的查询,其中所述第二资源集通过所述第二关系与所述第一资源集相关联;从所述第一资源集识别要返回的第一资源子集;将第一光标与所述第一资源集中的至少一个资源相关联;从所述第二资源集识别要返回的第二资源子集;将第二光标与所述第二资源集中的至少一个资源相关联;以及返回所述第一资源子集和所述第二资源子集。在其它示例中,该方法包括:返回所述第一资源子集包括:返回所述第一资源集中与所述第一光标相关联的至少一个资源。在其它示例中,该方法包括:返回第二资源子集包括:返回所述第二资源集中与所述第二光标相关联的至少一个资源。在其它示例中,该方法还包括过滤第一资源子集和第二资源子集。在其它示例中,该方法还包括接收第二查询;以及确定从第一光标开始的第一资源集和从第二光标开始的第二资源集中的至少一个返回的大量资源。在其它示例中,第一资源集中的每个资源与资源标识符相关联。在其它示例中,第二资源集中的每个资源与资源标识符相关联。在其它示例中,从第一资源集中识别要返回的第一资源子集包括:确定要返回的资源的数量。在其它示例中,要返回的资源的数量至少部分地基于资源的大小。在其它示例中,从第二资源集识别要返回的第二资源子集包括:确定要返回的资源的数量。在其它示例中,要返回的资源的数量至少部分地基于资源的大小。
在另外的方面,本公开描述了一种资源的隔离集合,包括:资源;通过第一关系与资源相关联的第一资源集合;与所述第一资源集合中的至少一个资源相关联的第二资源集合,其中所述第二资源集合通过第二关系与所述至少一个资源相关联;与所述第一资源集合中的至少一个资源相关联的第一跳过令牌;以及与所述第二资源集合中的至少一个资源相关联的第二跳过令牌。在其它示例中,第一跳过令牌和第二跳过令牌中的至少一个用作定界符,以识别响应于接收到的查询而返回的多个资源。
例如,以上参考根据本公开的各方面的方法、系统和计算机程序产品的框图和/或操作说明来描述本公开的各方面。框中记录的功能/动作可以不按任何流程图所示的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的次序执行,这取决于所涉及的功能/动作。
本申请中提供的一个或多个方面的描述和说明不旨在以任何方式限制或约束本公开的范围。本申请中提供的各方面、示例和细节被认为足以传达拥有物并使其他人能够制作和使用所要求保护的公开内容的最佳模式。所要求保护的公开内容不应被解释为限于本申请中提供的任何方面、示例或细节。无论是组合地还是单独地示出和描述,旨在选择性地包括或省略(结构和方法方面的)各种特征以产生具有特定特征集的实施例。已经提供了本申请的描述和说明,本领域技术人员可以设想落入本申请中体现的总体发明构思的更广泛方面的精神内的变型、修改和替换方面,其不背离所要求保护的公开内容的更广泛的范围。

Claims (9)

1.一种系统,包括:
至少一个处理器;以及
存储器,其耦合到所述至少一个处理器,所述存储器包括计算机可执行指令,所述计算机可执行指令在由所述至少一个处理器执行时执行用于响应于单个查询而在隔离集合中设置第一跳过令牌的方法,所述方法包括:
接收针对所述单个查询的第一请求以从所述隔离集合访问多个资源,其中,所述多个资源中的每个资源与所述隔离集合中的节点相关联,并且其中,所述多个资源通过多个关系级别相关联,所述多个关系级别至少包括第一关系级别和第二关系级别;
返回所述多个资源中的第一子集作为针对所述单个查询的所述第一请求的结果,其中,该第一资源子集与所述多个关系级别中的所述第一关系级别相关联;
使所述第一跳过令牌与关联于所述第一关系级别的所述第一资源子集中的第一资源相关联,其中,所述第一资源对应于响应于针对所述单个查询的所述第一请求而访问的、所述隔离集合的所述第一关系级别处的最后的节点;
响应于针对所述单个查询的所述第一请求,至少返回与所述第一关系级别相关联的所述第一资源子集,而不返回与所述第二关系级别关联的所述多个资源的第二资源子集;以及
响应于针对所述单个查询的第二请求,识别所述第一跳过令牌,并且至少返回与所述第二关系级别相关联的所述第二资源子集,而不返回与所述第一关系级别关联的所述多个资源的所述第一资源子集。
2.根据权利要求1所述的系统,还包括用于返回与所述第二关系级别相关联的所述多个资源的所述第二资源子集的指令。
3.根据权利要求1所述的系统,其中,所述第一资源没有被包含在与所述第二关系级别相关联的所述多个资源的所述第二资源子集中。
4.根据权利要求1所述的系统,其中,第二资源没有被包含在与所述第一关系级别关联的所述多个资源的所述第一资源子集中。
5.根据权利要求1所述的系统,还包括用于以下的指令:
响应于针对所述单个查询的所述第二请求,从与所述第一跳过令牌相关联的第一资源开始返回所述第二资源子集;以及
将第二跳过令牌与关联于所述第二关系级别的所述第二资源子集中的第二资源相关联,其中,所述第二资源对应于响应于针对所述单个查询的所述第二请求而访问的、所述隔离集合的所述第二关系级别处的最后的节点。
6.根据权利要求1所述的系统,其中,所述多个资源中的每个资源与资源标识符相关联。
7.根据权利要求1所述的系统,还包括用于至少部分地基于一个或多个接收到的参数来过滤所述多个资源的指令。
8.一种用于从隔离集合中返回资源的方法,包括:
接收针对单个查询的第一请求,所述单个查询识别与确定的资源具有第一关系的第一资源集和与所述确定的资源具有第二关系的第二资源集,其中所述第二资源集通过所述第二关系与所述第一资源集相关联,并且其中,所述第一资源集和所述第二资源集中的每个资源与所述隔离集合中的节点相关联;
从所述第一资源集中识别要返回的第一资源子集;
使第一光标与所述第一资源子集中的至少第一资源相关联,其中,所述第一资源对应于响应于针对所述单个查询的所述第一请求而访问的最后的节点;
从所述第二资源集中识别要返回的第二资源子集;
使第二光标与所述第二资源子集中的至少第二资源相关联,其中,所述第二资源对应于响应于针对所述单个查询的第二请求而访问的最后的节点;
响应于针对所述单个查询的所述第一请求,返回所述第一资源子集和所述第二资源子集;以及
响应于针对所述单个查询的所述第二请求,识别所述第一光标,并且至少返回所述第一资源集中没有与所述第一资源子集一起返回的至少一个资源。
9.根据权利要求8所述的方法,其中,返回所述第一资源子集包括:至少返回所述第一资源子集中与所述第一光标相关联的所述第一资源。
CN201780067321.5A 2016-11-04 2017-11-02 多级数据分页 Active CN109891406B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/343,582 2016-11-04
US15/343,582 US11188551B2 (en) 2016-11-04 2016-11-04 Multi-level data pagination
PCT/US2017/059627 WO2018085475A2 (en) 2016-11-04 2017-11-02 Multi-level data pagination

Publications (2)

Publication Number Publication Date
CN109891406A CN109891406A (zh) 2019-06-14
CN109891406B true CN109891406B (zh) 2023-07-21

Family

ID=60327414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780067321.5A Active CN109891406B (zh) 2016-11-04 2017-11-02 多级数据分页

Country Status (4)

Country Link
US (1) US11188551B2 (zh)
EP (1) EP3535667A2 (zh)
CN (1) CN109891406B (zh)
WO (1) WO2018085475A2 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11977958B2 (en) 2017-11-22 2024-05-07 Amazon Technologies, Inc. Network-accessible machine learning model training and hosting system
US10776163B1 (en) * 2018-03-16 2020-09-15 Amazon Technologies, Inc. Non-hierarchical management system for application programming interface resources
US11481441B2 (en) * 2019-04-26 2022-10-25 At&T Intellectual Property I, L.P. Graph database query pagination
US11711262B2 (en) * 2020-02-25 2023-07-25 Juniper Networks, Inc. Server to support client data models from heterogeneous data sources
CN111782995B (zh) * 2020-05-29 2024-05-17 北京沃东天骏信息技术有限公司 一种图形分页加载方法和装置
CN112613271A (zh) * 2020-12-28 2021-04-06 深圳壹账通创配科技有限公司 数据分页方法、装置、计算机设备及存储介质
US11656972B1 (en) * 2021-03-25 2023-05-23 Amazon Technologies, Inc. Paginating results obtained from separate programmatic interfaces
CN114154458A (zh) * 2021-10-29 2022-03-08 盐城金堤科技有限公司 格式转换的方法、装置、存储介质和电子设备
CN116383449B (zh) * 2023-04-13 2024-05-24 江西数字网联信息安全技术有限公司 基于链表的crud数据顺序的实现方法、系统及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685109B1 (en) * 2005-12-29 2010-03-23 Amazon Technologies, Inc. Method and apparatus for data partitioning and replication in a searchable data service
CN104067273A (zh) * 2012-01-17 2014-09-24 国际商业机器公司 将搜索结果分组为简档页面
CN104205086A (zh) * 2012-03-19 2014-12-10 阿尔卡特朗讯 使用查询语言修改用于web服务的访问控制的方法
CN105229633A (zh) * 2013-03-13 2016-01-06 萨勒斯福斯通讯有限公司 用于实现数据上传、处理和预测查询api公开的系统、方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6556217B1 (en) 2000-06-01 2003-04-29 Nokia Corporation System and method for content adaptation and pagination based on terminal capabilities
WO2002084431A2 (en) * 2001-04-11 2002-10-24 International Business Machines Corporation Simplifying and manipulating k-partite graphs
US7363582B2 (en) 2003-11-14 2008-04-22 Research In Motion Limited System and method of retrieving and presenting partial (skipped) document content
US7636891B2 (en) 2004-08-31 2009-12-22 Research In Motion Limited Method for paginating a document structure of a document for viewing on a mobile communication device
US7412647B2 (en) 2005-03-04 2008-08-12 Microsoft Corporation Method and system for laying out paginated content for viewing
US20070199057A1 (en) * 2005-10-14 2007-08-23 Softwareonline, Llc Control of application access to system resources
US20090144256A1 (en) * 2007-11-29 2009-06-04 Moises Cases Workflow control in a resource hierarchy
US7958105B2 (en) * 2008-03-07 2011-06-07 International Business Machines Corporation System and method for filtering database results using dynamic composite queries
US8819060B2 (en) * 2010-11-19 2014-08-26 Salesforce.Com, Inc. Virtual objects in an on-demand database environment
US9367880B2 (en) 2013-05-03 2016-06-14 Facebook, Inc. Search intent for queries on online social networks
US10055387B2 (en) 2015-01-29 2018-08-21 Accenture Global Services Limited Multi-level customizable pagination
WO2016138566A1 (en) 2015-03-04 2016-09-09 Lumanetix Pty Ltd A system and method for federated enterprise analysis
US10235417B1 (en) * 2015-09-02 2019-03-19 Amazon Technologies, Inc. Partitioned search of log events
US11157517B2 (en) * 2016-04-18 2021-10-26 Amazon Technologies, Inc. Versioned hierarchical data structures in a distributed data store

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685109B1 (en) * 2005-12-29 2010-03-23 Amazon Technologies, Inc. Method and apparatus for data partitioning and replication in a searchable data service
CN104067273A (zh) * 2012-01-17 2014-09-24 国际商业机器公司 将搜索结果分组为简档页面
CN104205086A (zh) * 2012-03-19 2014-12-10 阿尔卡特朗讯 使用查询语言修改用于web服务的访问控制的方法
CN105229633A (zh) * 2013-03-13 2016-01-06 萨勒斯福斯通讯有限公司 用于实现数据上传、处理和预测查询api公开的系统、方法和装置

Also Published As

Publication number Publication date
US20180129716A1 (en) 2018-05-10
CN109891406A (zh) 2019-06-14
US11188551B2 (en) 2021-11-30
EP3535667A2 (en) 2019-09-11
WO2018085475A3 (en) 2018-06-14
WO2018085475A2 (en) 2018-05-11

Similar Documents

Publication Publication Date Title
CN109891406B (zh) 多级数据分页
CN110178151B (zh) 任务主视图
CN109937402B (zh) 使用回调通知进行数据的出口和入口
US20210126911A1 (en) Delegated authorization for isolated collections
US10402408B2 (en) Versioning of inferred data in an enriched isolated collection of resources and relationships
US10452672B2 (en) Enriching data in an isolated collection of resources and relationships
US10614057B2 (en) Shared processing of rulesets for isolated collections of resources and relationships
US12050601B2 (en) Ontology-based graph query optimization
US10514854B2 (en) Conditional authorization for isolated collections
US11475320B2 (en) Contextual analysis of isolated collections based on differential ontologies
US10592557B2 (en) Phantom results in graph queries
US20180260190A1 (en) Split and merge graphs
CN110574017A (zh) 跨多个图的查询执行
CN110431548B (zh) 针对图表的上下文规则
US20180268004A1 (en) Rule hierarchies for graph adaptation

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
GR01 Patent grant
GR01 Patent grant