CN109937402A - 使用回调通知进行数据的出口和入口 - Google Patents

使用回调通知进行数据的出口和入口 Download PDF

Info

Publication number
CN109937402A
CN109937402A CN201780067324.9A CN201780067324A CN109937402A CN 109937402 A CN109937402 A CN 109937402A CN 201780067324 A CN201780067324 A CN 201780067324A CN 109937402 A CN109937402 A CN 109937402A
Authority
CN
China
Prior art keywords
resource
isolation
rule
relationship
resource identifier
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.)
Granted
Application number
CN201780067324.9A
Other languages
English (en)
Other versions
CN109937402B (zh
Inventor
C·L·马林斯
H·F·尼尔森
J·A·泰勒
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 CN109937402A publication Critical patent/CN109937402A/zh
Application granted granted Critical
Publication of CN109937402B publication Critical patent/CN109937402B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开的示例描述了使用回调通知的数据入口和出口的系统和方法。在示例中,可以接收回调通知。通知可以包括可以提取的一个或多个资源。提取的资源可以与资源标识符相关联。来自推断规则集的一个或多个推断规则可以应用于提取的资源以生成任何相关的推断关系。资源标识符和推断的关系可以存储在隔离的集合中。隔离的集合的内容或结构可以满足通知规则集内的通知规则。通知规则可以与接收方相关联。作为确定的结果,接收方可以接收回调通知。在一些示例中,回调通知可以包括改变通知或一个或多个资源标识符、相关联的资源或来自隔离的集合的关系。

Description

使用回调通知进行数据的出口和入口
背景技术
回调通知使软件系统、开发人员和用户能够响应于事件对动作自定义。回调通知在软件开发、与应用编程接口(API)的交互以及Web应用开发中具有广泛的潜在应用和用途。尽管事实上各种各样的软件和服务都使用了回调通知功能,但目前还没有简单、方便和强大的方法来组合和处理聚合的回调通知。
关于这些和其他一般性考虑,已经进行了本文公开的方面。而且,尽管可以讨论相对具体的问题,但是应该理解,这些实施例不应限于解决在背景技术中或本公开中其他地方所识别的具体问题。
发明内容
提供此摘要是为了以简化的形式介绍一些概念,这些概念将在下面的详细描述部分中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本公开的示例描述了使用回调通知的数据入口和出口的系统和方法。在示例中,可以接收回调通知。通知可以包括可以提取的一个或多个资源。提取的资源可以与资源标识符相关联。来自推断规则集的一个或多个推断规则可以应用于提取的资源以生成任何相关的推断关系。资源标识符和推断的关系可以存储在隔离的集合中。
在另一示例中,可以确定隔离的集合的内容或结构满足通知规则集内的通知规则。通知规则可以与接收方相关联。作为确定的结果,接收方可以接收回调通知。在一些示例中,回调通知可以包括改变通知或一个或多个资源标识符、相关联的资源或来自隔离的集合的关系。
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本摘要不是旨在识别所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。示例的其他方面、特征和/或优点将部分地在下面的描述中阐述,并且部分地将从描述中显而易见,或者可以通过本公开的实践来学习。
附图说明
参考以下附图描述非限制性和非穷举性示例。
图1示出了使用回调通知的数据的入口和出口的示例系统的概述。
图2示出了用于管理资源标识符的隔离的集合和对应关系的示例系统的概述。
图3A示出了示例隔离的集合的概述。
图3B到图3E示出了可用于遍历隔离的集合的示例查询模型。
图4示出了用于将传入数据添加到隔离的集合的示例方法。
图5示出了用于基于隔离的集合的状态生成通知的示例方法。
图6示出了用于创建推断规则的示例方法。
图7示出了用于创建通知规则的示例方法。
图8示出了使用回调通知的数据的入口和出口的示例系统的概述。
图9是示出了可以利用其实现本公开的各方面的计算设备的示例物理组件的框图。
图10A和图10B是利用其可以实践本公开的各方面的移动计算设备的简化框图。
图11是在其中可以实践本公开的各方面的分布式计算系统的简化框图。
图12示出了用于执行本公开的一个或多个方面的平板计算设备。
具体实施方式
下面参考附图更全面地描述本发明的各个方面,附图形成本发明的一部分,并且示出具体示例性方面。然而,本公开的不同方面可以以许多不同的形式实现,并且不应该被解释为限于这里阐述的方面;相反,提供这些方面是为了使本公开彻底和完整,并且将向本领域技术人员充分传达这些方面的范围。方面可以作为方法、系统或设备来实施。因此,方面可以采用硬件实现、完全软件实现或组合软件和硬件方面的实现的形式。因此,以下详细描述不应被视为具有限制意义。
本公开提供了生成和查询隔离的资源集合或资源标识符以及那些资源或资源标识符之间的关系的系统和方法。资源和/或关系可以由开发者或其他来源提供。还可以通过针对隔离的集合执行规则集来推断资源和关系。此外,可以通过各种技术来控制对隔离的集合的访问,以便为每个隔离的集合中的内容提供额外的安全措施。如这里所使用的,孤立的集合可以被称为“集合”。
回调通知用于响应于事件提供可定制的动作。回调通知可以在软件开发、开发人员与API的交互以及Web应用开发的上下文中使用。本领域技术人员将意识到,在不脱离本公开的精神的情况下,回调通知可以在其他上下文中使用并且响应于各种各样的事件。在一个示例中,回调通知可以是称为webhook的定制HTTP回调。
webhook提供了用于跨不同软件服务和平台简单传输数据和事件通知的机制。开发人员可以通过允许用户或其他软件服务和平台提供定制的回调URL来提供回调功能。一旦事件发生,可以使用回调URL(例如,经由POST请求)发送请求,从而向外部系统警告该事件。通知可以以各种格式(例如,JSON、XML等)提供,并且可以包含关于事件的附加信息。在接收到回调通知时,接收方系统可以处理事件通知并采取进一步的动作。
由于它们的简单性,各种各样的软件服务和平台提供webhook回调功能。结果,用户或系统可以接收到来自各种软件服务和平台的大量自包含的回调通知。目前还没有简单、方便和强大的方法来组合和处理聚合的webhook。
在一些示例中,可以使用从接收的回调通知(例如,webhook)提取的资源来填充、更新或以其他方式修改隔离的集合(下面进一步详细讨论)。如这里所使用的,提取的资源可以是从回调通知接收的资源或关于资源的信息。在一些示例中,可以从多个接收的回调通知中提取资源。提取的资源可以与提取的资源标识符相关联。在示例中,提取的资源可以存储在数据集合中,并且提取的资源标识符可以是用于访问数据集合中提取的资源的统一资源标识符。可替换地,可以使用关于从回调通知接收的资源的信息而不是实际资源本身来填充隔离的集合。例如,提取的资源可以替代地驻留在远程服务器上,其中资源标识符有助于资源的取回(例如,资源可以存储在远程web服务器上,其中资源标识符包括统一资源定位符)。识别资源的位置可以包括使用例如正则表达式解析资源标识符、将资源标识符的一个或多个部分提供给搜索实用程序、执行资源标识符等。
推断规则集可以与隔离的集合相关联,所述推断规则集包括可以应用于一个或多个提取的资源的规则。在一些示例中,可能存在与隔离的集合相关联的多个推断规则集。推断规则集还可以与所提取的资源的某些属性或特性或所接收的回调通知(例如,通知的来源,包含在通知中的数据的类型等)相关联。在一个示例中,可以通过提供能够关于多个资源之间的关系进行推断的属性来创建规则。可以定义该关系并将其与所提供的属性相关联,从而创建推断规则。然后可以将推断规则存储在推断规则集中。
推断规则集内包含的规则可用于基于一个或多个提取的资源生成推断的关系。推断的关系可以描述提取的资源当中或者在提取的资源与已经存在于隔离的集合中的资源之间的关系。在一个示例中,生成推断的关系还可以导致更新隔离的集合内的预先存在的关系。与提取的资源相关联的资源标识符和推断的关系可以存储在隔离的集合中。
作为更新隔离的集合的内容的结果,可以实现定义的隔离的集合状态,这可以导致一个或多个回调通知。在一些示例中,隔离的集合状态和相关联的回调可以被定义为通知规则集内的通知规则。隔离的集合状态可以指示对多个资源标识符或相关联的资源当中存在一个或多个关系的要求。在示例中,更改通知规则可以描述特定的隔离的集合状态,其中如果修改或更新至少一个资源或关系,则可以向其他资源、用户、应用、过程、实体等中的一个或多个提供回调通知。在一个示例中,可以将更改通知规则指示为多个资源标识符当中的关系,其中资源标识符中的至少一个将是回调通知的接收方。
回调通知可以定义接收方。在示例中,回调通知接收方可以是隔离的集合内的资源,其包括与接收方资源相关联的资源标识符。资源标识符可以与计算设备相关联,所述计算设备包括存储系统、移动设备、远程服务器或计算集群。本领域技术人员将意识到,在不脱离本公开的精神的情况下,其他电子设备可以接收回调通知。在一个示例中,接收方资源可以包括webhook或与webhook相关联,还包括URL、身份令牌和/或认证信息。在另一示例中,资源标识符可以与人相关联。可以使用电子通信手段来通知该人,所述电子通信手段包括电子邮件、即时消息、文本消息或屏幕上通知。本领域技术人员将意识到,在不脱离本公开的精神的情况下,可以使用其他通知方法。
在一个示例中,接收方资源标识符可以包括接收方统一资源标识符、订阅标识符和应用标识符。统一资源标识符可以与由存储系统(例如,数据集群、远程服务器、本地存储设备等)存储的资源相关联。在其他示例中,统一资源标识符可以与web服务器(例如,webhook回调接收方)相关联。订阅标识符可以是在创建回调时生成的标识符。应用标识符可以是与接收方应用相关联的标识符。在示例中,回调通知可以进一步包括“呼叫者状态”,其中呼叫者状态提供与回调创建有关的上下文(例如,向接收方提醒该回调是代表资源或相关联的资源标识符创建的)。
在一些示例中,隔离的集合可以接收回调通知,并且作为所接收的回调通知的结果,将后续的回调通知发送给接收方。隔离的集合可以接收回调通知,从中可以提取一个或多个资源。如上所述,提取的资源可以与资源标识符相关联。另外,可以使用推断规则集中包含的推断规则来推断所提取的资源当中的关系。然后可以将资源标识符和推断的关系存储在隔离的集合中。作为使用所接收的回调通知中包含的信息更新隔离的集合的结果,可以实现定义的隔离的集合状态,这继而可以导致一个或多个回调通知。更具体地,可以满足通知规则集中包含的一个或多个通知规则。通知规则可以与回调相关联,进一步指示回调接收方。这样,与一个或多个满足的通知规则相关联的一个或多个接收方可以接收回调通知,如本文进一步描述的。
图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可以是web服务器,服务器设备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(PI))并且资源提供者214可以是联系人管理应用,包括联系人资源232(例如,联系人1(CI))、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中描绘的图形形式呈现时,每个资源标识符可以被称为“节点”,并且每个关系可以被称为“边缘”。集合创建实用程序还可以使用一个或多个规则集来识别资源和/或确定集合的资源类型,所述规则集可以包括根据语义Web技术定义的规则,例如资源描述框架(RDF)、RDF模式(RDFS)、SPARQL协议以及RDF查询语言(SPARQL)、Web Ontology语言(OWL)等。例如,集合300包括资源标识符312,资源标识符312表示在所描绘的示例中为“email789”的底层资源。类似地,资源标识符304表示资源文档“Doc 123”,并且资源标识符302表示资源任务“Taskl23”。隔离的集合300中包括的每个资源和关系可以由开发者通过集合创建应用断言。例如,开发者可以手动添加每个资源标识符和资源标识符之间的关系。作为示例,开发者可以手动指示“taskl23”是任务“Docl23”,如由“taskOn”(任务On)关系316在集合300中表示的。资源标识符和关系也可以由开发者创建的外部机器人或应用断言。例如,可以对加载项进行编程以监视浏览器或其他应用中的活动以跟踪应用的使用。基于应用的使用,加载项发送要包括在集合300中的附加资源和关系。
与断言的资源标识符和关系不同,集合创建实用程序可以执行规则集以确定附加关系和资源类型,这里称为“推断的关系”和“推断的资源标识符”或“推断的资源类型”。例如,在执行规则集时,集合创建实用程序可以确定资源标识符312表示电子邮件消息,并且资源标识符304表示文档。下面进一步详细讨论推断的关系和资源的生成。
隔离的集合300进一步描绘资源标识符302与资源标识符304、306和308以及资源标识符310相关联。集合创建实用程序可确定资源标识符302表示要对标识符304、306执行的任务。基于该确定,集合创建实用程序可以分配关系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设计”的电子邮件,并且资源标识符314可以表示包括主题“集合”的电子邮件。可以针对集合300执行查询'http://.../collection300/taskl23'。查询结果可以包括资源标识符302并且可视化,如图3B所示。在图3C中,查询已被修改为'http://..Jcollection300/taskl23?$expand=taskOn'并且针对集合300执行。查询结果可以包括资源标识符302、304、306和308以及关系316、318和320,并且可以如图3C所示进行可视化。在图3D中,查询已经被修改为'http://..Jcollection300/taskl23?$expand=taskOn($expand=attachmentOn)'并且针对集合300执行。查询结果可以包括资源标识符302、304、306、308、312和314以及关系316、318、320、324和326,并且可视化,如图3D所示。在图3E中,查询已被修改为'http://..Jcollection300/taskl23?$expand=taskOn($expand=attachmentOn($filter=Subject eq'Setsets'))'并针对集合300执行。当仅资源标识符包括314主题“集合”时,查询结果可以包括资源标识符302、306和314以及关系318和326,并且可视化,如图3E所示。
图4示出了用于将传入数据添加到隔离的集合的示例方法400。在操作402处,可以接收传入数据。作为来自远程系统的事件通知的结果,可以接收数据。在示例中,事件通知可以是回调通知的形式(例如,webhook回调)。可以以各种格式接收传入数据,包括但不限于JSON、XML或HTML。本领域技术人员将意识到,可以使用替代数据格式而不脱离本公开的精神。
在操作404处,可以从传入数据中提取一个或多个资源。在一个示例中,传入数据可以仅包括一个提取的资源,或者传入数据本身可以是资源。在另一示例中,可以基于传入数据的结构、语法或格式来提取资源。例如,提取一个或多个资源可以包括评估传入数据内的标记语言语法,以便将传入数据解析为一个或多个变量或数据结构。在其他示例中,所提取的资源可以涉及关于传入数据的信息,包括但不限于与传入数据相关联的标识符(例如,源URL)、数据或资源类型、时间戳(例如,与修改日期、接收日期或创建日期相关的)等等。
移至操作406,可以做出是否应将所提取的资源添加到隔离的集合中的可选确定。该确定可以基于各种因素,包括一个或多个资源的内容、传入数据的来源或隔离的集合的状态等。如果不应将提取的资源添加到隔离的集合,则流程分支“否”到操作408,其中可以忽略传入数据和提取的资源。可替换地,即使未更新隔离的集合,也可以向用户、软件过程或其他系统提供通知。作为示例,通知可以提供发生错误的通知。在操作408之后,流程终止。
如果确定应该将提取的资源添加到传入数据,则流程分支“是”从可选的决策操作406分支到操作410,其中一个或多个资源可以存储在数据集合中,从而将一个或多个资源存储在存储系统中。在另一示例中,所提取的资源可以替代地驻留在远程服务器上(例如,资源可以存储在远程web服务器上),使得隔离的集合然后可以使用相关联的资源标识符来从远程服务器取回资源。移至操作412,所提取的资源可与资源标识符相关联。在一些示例中,可以响应于接收传入数据而生成相关联的资源标识符。在其他示例中,资源标识符可能已经与传入数据内的提取资源一起被接收。资源标识符可以是用于从数据集合中取回所提取的资源的统一资源标识符。在另一示例中,资源标识符可以包括可以用于访问远程web服务器上的相关联的资源的统一资源定位符。稍后可以使用资源标识符来确定关于相关联的资源的位置或附加信息。这可以包括使用例如正则表达式解析资源标识符、将资源标识符的一个或多个部分提供给搜索实用程序、执行资源标识符等。
然后,流程移动到操作414,其中可以访问与隔离的集合相关联的推断规则集。推断规则集可以包括可以应用于提取的资源的规则。在一些示例中,推断规则集还可以与提取的资源的某些属性或特性或接收的传入数据(例如,数据源、数据类型等)相关联。在一个示例中,可以通过提供使得能够对多个资源之间的关系进行推断的属性来创建推断规则集内的规则。可以定义关系并将其与所提供的属性相关联,从而创建推断规则。然后可以将推断规则存储在推断规则集中。图6进一步描述了推断规则创建。
在操作416,可以基于推断规则集和提取的资源生成推断的关系。在一些示例中,可以在接收到回调通知时生成推断的关系。在其他示例中,可以在稍后的时间生成推断的关系,诸如当下次访问或查询隔离的集合时,或者响应于调度的操作的执行。可以针对一个或多个提取的资源评估推断规则集内的规则,以确定是否应该生成任何推断的关系。在一些示例中,在评估推断规则时,还可以考虑隔离的集合内的预先存在的关系(例如,推断的关系和/或断言的关系)。推断的关系可以描述所提取的资源当中或者所提取的资源与已经存在于隔离的集合中的资源之间的关系。在一些示例中,在隔离的集合内生成推断的关系可以包括创建新关系、更新预先存在的关系或其某种组合。
移至操作418,来自操作412的资源标识符和来自操作416的推断的关系可以存储在隔离的集合中。在一个示例中,推断的关系可以存储在隔离的集合中。在另一示例中,不是将推断的关系存储在隔离的集合内,而是推断规则集可以与隔离的集合相关联,使得推断规则集可以用于响应于查询或其他访问请求而动态地生成推断的关系。可以确定隔离的集合的内容和/或结构以满足定义的隔离的集合状态,这可以导致一个或多个回调通知。这将在下面参考图5更详细地讨论。在操作418之后,流程终止。
图5示出了用于基于隔离的集合的状态生成通知的示例方法500。流程开始于操作502,其中可以访问存储在隔离的集合内的一个或多个资源标识符和关系(例如,推断的关系和断言的关系)。在操作504处,可以访问与隔离的集合相关联的通知规则集。通知规则集可以包括通知规则。在一些示例中,通知规则可以包括隔离的集合状态和相关联的回调。图7进一步说明描述通知规则创建。
移至决策操作508,评估资源标识符和关系的状态以确定是否已满足通知规则集内的任何规则。在一些示例中,规则可以指定隔离的集合状态,其指示多个资源标识符或相关联的资源当中存在一个或多个关系的要求。在另一示例中,规则可以是更改通知规则,其中如果修改或更新至少一个资源,则可以向其他资源中的一个或多个提供回调通知。可替换地,可以向用户、应用、设备或与隔离的集合相关联的任何其他类型的实体提供回调通知。在一个示例中,可以将更改通知规则指示为多个资源标识符当中的关系,其中资源标识符中的至少一个可以是回调通知的接收方。
如果在决策操作508处确定没有满足通知规则集中的规则,则流程将“否”分支到操作510,其中流程暂停直到发生对隔离的集合的更新。一旦发生更新,流程在操作502重新开始,如上所述。
然而,如果确定已经满足通知规则集中的规则的一个或多个,则流程是分支到操作512,其中可以取回与回调相关联的资源标识符。如上所述,通知规则可以包括隔离的集合状态和相关联的回调。在一些示例中,通知规则还可以包括关于回调通知应该包括什么类型的数据的指示。该指示可以指定数据的类型、数据的范围和/或数据的格式等。相关联的回调通知可以定义接收方。在示例中,回调通知接收方可以是隔离的集合内的资源,其包括与接收方资源相关联的资源标识符。资源标识符可以与计算设备相关联,所述计算设备包括存储系统、移动设备、远程服务器或计算集群。本领域技术人员将意识到,其他电子设备可以是回调通知的接收方而不偏离本公开的精神。在一个示例中,接收方资源可以包括webhook,还包括URL、身份令牌和/或认证信息。在另一示例中,资源标识符可以与人相关联。
在操作514处,资源标识符可以用于提供回调通知。可以在回调通知内提供相关联的数据。在一些示例中,通知规则可以指定各种参数,包括数据类型、数据范围和/或数据格式等。可以将回调通知提供给与资源标识符相关联的资源。在一个示例中,可以通过将通知发送到计算设备来提供通知。在一些示例中,可以经由HTTP POST请求使用webhook回调来提供通知。如果资源标识符与人相关联,则可以使用电子通信手段来通知该人,所述电子通信手段包括电子邮件、即时消息、文本消息或屏幕上通知。本领域技术人员将意识到,在不脱离本公开的精神的情况下,可以使用其他通知方法。流程在操作514之后终止。
图6示出了用于创建推断规则的示例方法600。在操作602处,可以接收描述多个资源的属性。这些属性可以使得能够推断出关于多个资源之间的关系。在操作604处,接收关系推断指示。可以经由图形用户界面从用户(例如,最终用户,系统管理员等)或使用API或类似通信方法从另一软件系统接收关系推断指示。在一些示例中,可以从隔离的集合内的另一组件接收关系推断指示,其中另一组件已自动生成推断规则指示。关系推断指示可以提供关于推断关系的描述性信息(例如,关系表示什么、关系应该是什么标题,等等)。
移至操作606,可通过将属性与关系推断相关联来生成推断规则。结果,推断规则可以提供这样的指示:当多个资源呈现特定的一组属性或特性时,可以应用在操作604中接收的关系推断来推断多个资源当中的关系。
在操作608,将推断规则存储在推断规则集中。在一个示例中,推断规则集可以与隔离的集合相关联。在一些示例中,可能存在与隔离的集合相关联的多个推断规则集。推断规则集还可以与某些资源属性或特性或接收的回调通知(例如,通知的来源、通知中包含的数据的类型等)相关联。流程在操作608处终止。
图7示出了用于创建通知规则的示例方法700。在操作702处,可以接收一个或多个资源或隔离的集合的至少一个子部分。移至操作704,可以接收隔离的集合状态指示。在一个示例中,隔离的集合状态可以指示多个资源标识符或相关联的资源当中存在一个或多个关系的要求。多个资源标识符或相关联的资源可以涉及所接收的资源或隔离的集合子部分。在示例中,状态指示可以包括通知改变指示,其中如果修改或更新至少一个指定资源,则可以向其他资源中的一个或多个提供回调通知。在另一示例中,状态指示可能要求文档资源与两个或更多作者具有“贡献者”关系,从而指示当文档已被至少两个人编辑或评论时应提供通知。另一示例状态指示将是如下要求:隔离的集合具有一定数量的资源(例如,在隔离的集合内有90个资源之后提供通知,其中资源包括每日财务报告)。
在操作706处,可以通过将状态指示与接收的资源或隔离的集合子部分相关联来生成通知规则。在一些示例中,可以生成更改通知规则作为多个资源标识符当中的关系,其中资源标识符中的至少一个将是回调通知的接收方。在一个示例中,通知规则可以由用户(例如,最终用户或系统管理员)使用软件应用生成。在另一示例中,通知规则可以从各种源导出,各种源包括但不限于其他通知规则、推断规则、隔离的集合中包含的资源的类型、隔离的集合的内容等。在一些示例中,可以使用API或类似的通信方法从另一软件系统接收通知规则。
移至操作708,回调可与所生成的规则相关联。在一些示例中,回调可以定义接收方。回调还可以指定要包括在回调中的信息的类型、数据的格式、数据的范围等。在示例中,回调接收方可以是隔离的集合内的资源,其包括与接收方资源相关联的资源标识符。资源标识符可以与计算设备相关联,所述计算设备包括存储系统、移动设备、远程服务器或计算集群。本领域技术人员将意识到,在不脱离本公开的精神的情况下,其他电子设备可以接收回调通知。在一个示例中,接收方资源可以包括webhook,还包括URL、身份令牌和/或认证信息。在另一示例中,资源标识符可以与人相关联。可以使用电子通信手段来通知该人,所述电子通信手段包括电子邮件、即时消息、文本消息或屏幕上通知。本领域技术人员将意识到,在不脱离本公开的精神的情况下,可以使用其他通知方法。
流程在操作710处终止,其中通知规则可以存储在通知规则集中。将通知规则存储在通知规则集中可以包括更新与隔离的集合相关联的元数据。在一些示例中,可以远程存储通知规则集,或者可以将通知规则集与隔离的集合在本地存储。在示例中,作为将通知规则存储在通知规则集中的结果,可以创建通知规则集的新版本,其中旧版本的通知规则集在添加新通知规则之前捕获规则集的状态。
图8示出了使用回调通知的数据入口和出口的示例系统800的概述。示例系统800包括隔离的集合802、数据集合804A-804C和远程服务806A-806C。数据入口和出口可以通过回调通知在隔离的集合802、数据集合804A-804C和远程服务806A-806C之间发生。在一些示例中,回调通知可以是webhook。隔离的集合802可以包括一个或多个关系标识符和关系(例如,断言的关系和推断的关系)。关系标识符可以与存储在数据集合804A-804C或远程服务806A-806C上或由数据集合804A-804C或远程服务806A-806C可用的资源相关联。
在一个示例中,隔离的集合802可以从数据集合804B和804C或者从远程服务806A和806B接收回调通知。因此,回调通知可以允许数据从集合804B和804C或从远程服务806A和806B进入隔离的集合802。回调通知可以是webhook。在一些示例中,回调通知可以包含一个或多个资源,所述一个或多个资源可以由隔离的集合802提取。然后,隔离的集合802可以使用提取资源来使用来自一个或多个推断规则集的推断规则来推断所提取的资源当中的关系(参见图4和6)。然后,隔离的集合802可以将资源标识符与提取的资源相关联,并存储资源标识符和推断的关系,从而更新隔离的集合802。
作为更新的结果或独立于更新,数据集合804A和804B可以从隔离的集合802接收回调通知。类似地,远程服务806B和806C可以从隔离的集合802接收回调通知。由隔离的集合802发送的回调通知可以允许从隔离的集合802到数据集合804A和804B以及到远程服务806B和806C的数据出口。回调通知可以包括关于隔离的集合802的内容或结构(例如,一个或多个资源标识符或相关联的资源、一个或多个关系或改变通知)的附加信息。在一些示例中,回调通知可以是webhook。回调通知可以源于确定已经实现定义的隔离的集合状态,如通知规则集中的通知规则所指定的(参见图5和图7)。作为回调通知的结果,数据集合804A和804B或远程服务806B和806C可以执行附加处理。附加处理可以包括向人或其他软件组件提供事件通知,或者更新由远程服务存储的数据以及其他动作。
图9-图12和相关联的描述提供了可以实践本公开的各方面的各种操作环境的讨论。然而,关于图9-图12示出和讨论的设备和系统是出于示例和说明的目的,而不是限制可用于实践本文所述的本公开的各方面的大量计算设备配置。
图9是示出可用其实践本发明的方面的计算装置900的物理组件(例如,硬件)的框图。下面描述的计算设备组件可以适用于上述计算设备,包括客户端计算设备102A-C和服务器计算设备106A-C。在基本配置中,计算设备900可以包括至少一个处理单元902和系统存储器904。取决于计算设备的配置和类型,系统存储器904可以包括但不限于易失性存储装置(例如,随机存取存储器、非易失性存储装置(例如,只读存储器)、闪存或这些存储器的任何组合。系统存储器904可以包括操作系统905和适合于执行本文公开的各个方面的一个或多个程序模块906,例如回调接收组件924和通知传输组件926。操作系统905例如可以适用于控制计算设备900的操作。此外,本公开的实施例可以结合图形库、其他操作系统或任何其他应用来实践,并且不限于任何特定应用或系统。该基本配置在图9中由虚线908内的那些组件示出。计算设备900可以具有附加特征或功能。例如,计算设备900还可以包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储装置在图9中由可移动存储设备909和不可移动存储设备910示出。
如上所述,多个程序模块和数据文件可以存储在系统存储器904中。当在处理单元902上执行时,程序模块906(例如,应用920)可以执行包括但不限于如本文所述的这些方面的处理。可以根据本公开的方面使用的其他程序模块可以包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
此外,本发明的实施例可以实践在电子设备中,所述电子设备包括分立电子元件、包含逻辑门的封装或集成电子芯片、利用微处理器的电路或者在包含电子元件或微处理器的单个芯片上实践。例如,可以经由片上系统(SOC)来实践本公开的实施例,其中图9中示出的每个或许多组件可以集成到单个集成电路上。这样的SOC器件可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都作为单个集成电路集成(或“烧制”)到芯片衬底上。当通过SOC操作时,本文描述的关于客户端切换协议的能力的功能可以通过与单个集成电路(芯片)上的计算设备900的其他组件集成的专用逻辑来操作。还可以使用能够执行逻辑运算的其他技术来实践本公开的实施例,所述逻辑运算例如,AND、OR和NOT,所述其他技术包括但不限于机械、光学、流体和量子技术。此外,本公开的实施例可以在通用计算机或任何其他电路或系统中实施。
计算设备900还可以具有一个或多个输入设备912,例如,键盘、鼠标、笔、声音或语音输入设备、触摸或滑动输入设备等。也可以包括诸如显示器、扬声器、打印机等的输出设备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可以是旋转开关、按钮或任何其他类型的手动输入元件。在替代方面,移动计算设备1000可以包含更多或更少的输入元素。例如,在一些实施例中,显示器1005可以不是触摸屏。在又一替换实施例中,移动计算设备1000是便携式电话系统,例如蜂窝电话。移动计算设备1000还可以包括可选的小键盘1035。可选的小键盘1035可以是物理小键盘或在触摸屏显示器上生成的“软”小键盘。在各种实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器1005、视觉指示器1020(例如,发光二极管)和/或音频换能器1025(例如,扬声器)。在一些方面,移动计算设备1000包括振动换能器,用于向用户提供触觉反馈。在又一方面,移动计算设备1000包括输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,UDMI端口)、用于向外部设备发送信号或从外部设备接收信号。
图10B是示出了移动计算设备的一个方面的架构的框图。也就是说,移动计算设备1000可以合并系统(例如,架构)1002以实现某些方面。在一个实施例中,系统1002被实现为能够运行一个或多个应用(例如,浏览器、电子邮件、日历、联系人管理器、消息传递客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些方面,系统1002被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。
可以将一个或多个应用1066加载到存储器1062中并在操作系统1064上或与其相关联地运行。应用的示例包括电话拨号程序、电子邮件程序、个人信息管理(PEVI)程序、文字处理程序、电子表格程序、互联网浏览器程序,消息传送程序等。系统1002还包括存储器1062内的非易失性存储区域1068。如果系统1002断电,则可以使用非易失性存储区域1068来存储不应丢失的持久信息。应用程序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通信的客户端使用,和/或通知传输组件1120可以由服务器设备1102使用。服务器设备1102可以通过网络1115向诸如个人计算机1104、平板计算设备1106和/或移动计算设备1108(例如,智能电话)之类的客户端计算设备提供数据。举例来说,上述计算机系统可以体现在个人计算机1104、平板计算设备1106和/或移动计算设备1108(例如,智能电话)中。除了接收可用于在图形发起系统处预处理或在接收计算系统处进行后处理的图形数据之外,计算设备的这些实施例中的任何一个可以从存储1116获得内容。
图12示出了可以执行本文公开的一个或多个方面的示例性平板计算设备1200。此外,这里描述的方面和功能可以在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和取回以及各种处理功能可以通过分布式计算网络(例如,互联网或内联网)彼此远程操作。用户界面和各种类型的信息可以通过车载计算设备显示器或通过与一个或多个计算设备相关联的远程显示单元显示。例如,可以在墙面上显示和交互各种类型的用户界面和信息,在该墙面上投影用户界面和各种类型的信息。与可以实践本发明的实施例的多个计算系统的交互包括键击输入、触摸屏输入、语音或其他音频输入、姿势输入,其中相关联的计算设备配备有用于捕获并且解释用于控制计算设备的功能的用户手势等的检测(例如,相机)功能。
从前面的公开内容可以理解,本技术的一个方面涉及一种系统,包括:至少一个处理器;以及存储指令的存储器,所述指令当由所述至少一个处理器执行时,执行一组操作。操作包括访问隔离的集合内的一个或多个资源标识符和关系;访问与隔离的集合相关联的一个或多个通知规则;分析一个或多个资源标识符和关系以确定是否已满足通知规则;并且响应于确定已经满足通知规则,向接收方提供通知。在示例中,通过与通知规则相关联的接收方资源标识符来标识接收方。在另一示例中,接收方资源标识符与包括统一资源标识符和相关联的标识信息的资源相关联,使得可以将通知提供给应用编程接口。在一个示例中,接收方资源标识符包括与一个或多个其他隔离的集合相关联的资源标识符。在另一示例中,接收方资源标识符包括接收方统一资源标识符、订阅标识符和应用标识符。在又一示例中,通知规则包括确定多个资源标识符之间存在变更通知关系以及与多个资源标识符中的一个相关联的资源或关系已经改变。
在另一方面,本技术涉及一种用于基于所接收的数据更新隔离的集合的计算机实现的方法。该方法包括接收数据,其中将数据作为事件通知提供给隔离的集合;从数据中提取一个或多个资源;将资源标识符与提取的资源相关联;访问与隔离的集合相关联的推断规则集;针对推断规则集处理提取的资源以及来自隔离的集合的一个或多个附加资源,以生成资源当中的多个推断的关系;并将资源标识符和推断的关系存储在隔离的集合中。在示例中,处理还包括:访问隔离的集合中的一个或多个预先存在的关系;确定对预先存在的关系中的至少一个的更新是必需的;并且响应于该确定,基于推断规则集的内容和提取的资源更新预先存在的关系中的至少一个。
在另一示例中,处理还包括:访问隔离的集合中的一个或多个预先存在的关系或资源标识符;基于推断规则集的内容确定将生成一个或多个推断的关系;并且响应于该确定,基于推断规则集的内容、提取的资源以及预先存在的关系或资源标识符生成一个或多个推断的关系。在另一示例中,该方法还包括将提取的资源中的至少一个存储在数据集合中。在又一示例中,访问推断规则集还包括:从数据中提取一个或多个属性;并基于与提取的属性的关联选择推断规则集。在一个示例中,该方法还包括分析隔离的集合内的一个或多个资源标识符和关系,以确定是否已满足通知规则;并且响应于确定已经满足通知规则,向接收方提供通知。
在一个示例中,通过与通知规则相关联的接收方资源标识符来标识接收方。在另一示例中,接收方资源标识符与包括用于计算机系统的认证信息的资源相关联。在又一个示例中,接收方资源标识符与包括统一资源标识符和相关联的标识信息的资源相关联,使得可以将通知提供给应用编程接口。在另一示例中,数据包括数据与特定隔离的集合相关联的指示。
在另一方面,该技术涉及一种用于基于隔离的集合的内容提供通知的计算机实现的方法。该方法包括访问隔离的集合内的一个或多个资源标识符和关系;访问与隔离的集合相关联的一个或多个通知规则;分析一个或多个资源标识符和关系以确定是否已满足通知规则;并且响应于确定已经满足通知规则,向接收方资源标识符标识的接收方提供通知。在示例中,接收方资源标识符与包括统一资源标识符和相关联的标识信息的资源相关联,使得可以将通知提供给应用编程接口。在另一示例中,接收方资源标识符包括与一个或多个其他隔离的集合相关联的资源标识符。在另一示例中,接收方资源标识符包括接收方统一资源标识符、订阅标识符和应用标识符。
例如,以上参考根据本公开的方面的方法、系统和计算机程序产品的框图和/或操作图示描述了本公开的各方面。块中记录的功能/动作可以不按任何流程图所示的顺序发生。例如,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行,这取决于所涉及的功能/动作。
本申请中提供的一个或多个方面的描述和说明不旨在以任何方式限制或限制本公开的范围。本申请中提供的方面、示例和细节被认为足以传达占有并使其他人能够制作和使用所要求保护的最佳模式。要求保护的公开内容不应被解释为限于本申请中提供的任何方面、示例或细节。无论是组合地还是单独地示出和描述,旨在选择性地包括或省略各种特征(结构和方法)以产生具有特定特征集的实施例。已经提供了本申请的描述和说明,本领域技术人员可以设想落入本申请中体现的总体发明构思的更广泛方面的精神内的变型、修改和替换方面,其不脱离要求保护的公开的更广泛的范围。

Claims (15)

1.一种系统,包括:
至少一个处理器;以及
存储指令的存储器,所述指令在由所述至少一个处理器执行时执行一组操作,包括:
访问隔离的集合中的一个或多个资源标识符和关系;
访问与所述隔离的集合相关联的一个或多个通知规则;
分析所述一个或多个资源标识符和所述关系以确定是否已满足所述通知规则;以及
响应于确定已满足所述通知规则,向接收方提供通知。
2.如权利要求1所述的系统,其中,所述通知规则包括确定多个资源标识符之间存在通知改变关系,以及确定与所述多个资源标识符中的一个相关联的资源或关系已经改变。
3.一种用于基于接收的数据更新隔离的集合的计算机实现的方法,所述方法包括:
接收数据,其中,将所述数据作为事件通知提供给所述隔离的集合;
从所述数据中提取一个或多个资源;
将资源标识符与提取的资源相关联;
访问与所述隔离的集合相关联的推断规则集;
针对所述推断规则集处理所述提取的资源以及来自所述隔离的集合的一个或多个附加资源,以生成所述资源当中的多个推断的关系;以及
将所述资源标识符和所述推断的关系存储在所述隔离的集合中。
4.如权利要求3所述的计算机实现的方法,其中,处理还包括:
访问所述隔离的集合中的一个或多个预先存在的关系或资源标识符;
基于所述推断规则集的内容确定一个或多个推断的关系将被生成;以及
响应于所述确定,基于所述推断规则集的内容、所述提取的资源以及所述预先存在的关系或所述资源标识符来生成一个或多个推断的关系。
5.如权利要求3所述的计算机实现的方法,其中,访问所述推断规则集还包括:
从所述数据中提取一个或多个属性;以及
基于与提取的属性的关联来选择所述推断规则集。
6.如权利要求3所述的计算机实现的方法,还包括:
分析所述隔离的集合中的一个或多个资源标识符和关系,以确定是否已满足通知规则;以及
响应于确定已满足所述通知规则,向接收方提供通知。
7.如权利要求6所述的计算机实现的方法,其中,所述接收方是由与所述通知规则相关联的接收方资源标识符来标识的。
8.一种用于基于隔离的集合的内容提供通知的计算机实现的方法,所述方法包括:
访问所述隔离的集合中的一个或多个资源标识符和关系;
访问与所述隔离的集合相关联的一个或多个通知规则;
分析所述一个或多个资源标识符和所述关系以确定是否已满足所述通知规则;以及
响应于确定已经满足所述通知规则,向由接收方资源标识符标识的接收方提供通知。
9.根据权利要求8所述的计算机实现的方法,其中,所述接收方资源标识符与包括统一资源标识符和相关联的标识信息的资源相关联,使得所述通知能够被提供给应用编程接口。
10.如权利要求8所述的计算机实现的方法,其中,所述接收方资源标识符包括与一个或多个其他隔离的集合相关联的资源标识符。
11.如权利要求1所述的系统,其中,所述接收方是由与所述通知规则相关联的接收方资源标识符来标识的。
12.如权利要求11所述的系统,其中,所述接收方资源标识符与包括统一资源标识符和相关联的标识信息的资源相关联,使得所述通知能够被提供给应用编程接口。
13.如权利要求3所述的计算机实现的方法,其中,处理还包括:
访问所述隔离的集合中的一个或多个预先存在的关系;
确定对所述预先存在的关系中的至少一个的更新是要求的;以及
响应于所述确定,基于所述推断规则集的内容和所述提取的资源来更新所述预先存在的关系中的所述至少一个。
14.如权利要求6所述的计算机实现的方法,其中,所述接收方资源标识符与包括用于计算机系统的认证信息的资源相关联。
15.如权利要求8所述的计算机实现的方法,其中,所述接收方资源标识符包括接收方统一资源标识符、订阅标识符以及应用标识符。
CN201780067324.9A 2016-11-04 2017-11-02 使用回调通知进行数据的出口和入口 Active CN109937402B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/343,815 US10481960B2 (en) 2016-11-04 2016-11-04 Ingress and egress of data using callback notifications
US15/343,815 2016-11-04
PCT/US2017/059626 WO2018085474A2 (en) 2016-11-04 2017-11-02 Ingress and egress of data using callback notifications

Publications (2)

Publication Number Publication Date
CN109937402A true CN109937402A (zh) 2019-06-25
CN109937402B CN109937402B (zh) 2024-01-09

Family

ID=60327413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780067324.9A Active CN109937402B (zh) 2016-11-04 2017-11-02 使用回调通知进行数据的出口和入口

Country Status (4)

Country Link
US (1) US10481960B2 (zh)
EP (2) EP3535656B1 (zh)
CN (1) CN109937402B (zh)
WO (1) WO2018085474A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10475059B2 (en) 2012-07-05 2019-11-12 Share Magnet, LLC Syndicated sharing of promotional information
US10963903B1 (en) 2012-07-05 2021-03-30 Share Edge, Llc Workflow management system for tracking event objects associated with entities and secondary entities
US11475320B2 (en) 2016-11-04 2022-10-18 Microsoft Technology Licensing, Llc Contextual analysis of isolated collections based on differential ontologies
US10452672B2 (en) 2016-11-04 2019-10-22 Microsoft Technology Licensing, Llc Enriching data in an isolated collection of resources and relationships
US10885114B2 (en) 2016-11-04 2021-01-05 Microsoft Technology Licensing, Llc Dynamic entity model generation from graph data
US10614057B2 (en) 2016-11-04 2020-04-07 Microsoft Technology Licensing, Llc Shared processing of rulesets for isolated collections of resources and relationships
US10402408B2 (en) 2016-11-04 2019-09-03 Microsoft Technology Licensing, Llc Versioning of inferred data in an enriched isolated collection of resources and relationships
US10963238B2 (en) * 2017-11-16 2021-03-30 Citrix Systems, Inc. Deployment routing of clients by analytics
US11743356B2 (en) 2018-01-10 2023-08-29 Vmware, Inc. Email notification system
US10681163B2 (en) 2018-01-10 2020-06-09 Vmware, Inc. Email notification system
US11070506B2 (en) 2018-01-10 2021-07-20 Vmware, Inc. Email notification system
US10614423B2 (en) * 2018-01-10 2020-04-07 Vmware, Inc. Email notification system
US10924512B2 (en) 2018-03-07 2021-02-16 Vmware, Inc. Secure email gateway with device compliance checking for push notifications
US11204760B2 (en) * 2020-02-20 2021-12-21 Share Edge, Llc Online activity monitoring

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069335B1 (en) * 1999-08-10 2006-06-27 Microsoft Corporation Method and system for exchanging messages between entities on a network comprising an actor attribute and a mandatory attribute in the header data structure
US20100030725A1 (en) * 2007-03-19 2010-02-04 Venura Chakri Mendis Data triple user access
CN102201043A (zh) * 2010-03-24 2011-09-28 微软公司 基于资源属性审核对数据的访问
US20130238667A1 (en) * 2012-02-23 2013-09-12 Fujitsu Limited Database, apparatus, and method for storing encoded triples
CN105359106A (zh) * 2013-07-11 2016-02-24 谷歌公司 用于在基于云的文件系统中提供对改变的通知的系统和方法

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721943A (en) 1993-10-14 1998-02-24 International Business Machines Corporation Negotiable locks for concurrent access of control data by multiple programs
US6873734B1 (en) 1994-09-21 2005-03-29 Ricoh Company Ltd Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6560592B1 (en) 1998-03-19 2003-05-06 Micro Data Base Systems, Inc. Multi-model computer database storage system with integrated rule engine
US7016880B1 (en) 1999-09-21 2006-03-21 Smartforce Plc Event based system for use within the creation and implementation of educational simulations
EP1301881A1 (en) 2000-05-16 2003-04-16 Universal Music Group, Inc. Method and system for creating and verifying derivative contract terms using party relationships
US6865574B1 (en) 2000-06-02 2005-03-08 Vignette Corporation Method for client-side personalization
EP1456778A4 (en) 2001-10-26 2006-05-24 Zeosoft Technology Group Inc SYSTEM FOR DEVELOPING, MANAGING AND OPERATING DISTRIBUTED CLIENTS AND SERVERS
US20100023481A1 (en) 2002-04-02 2010-01-28 Mcgoveran Davd O Computer-implemented method for deriving, translating, and using definitional expressions for data in a database
US6996584B2 (en) 2002-05-14 2006-02-07 Pervasive Software, Inc. System and method of maintaining functional client side data cache coherence
US7249118B2 (en) 2002-05-17 2007-07-24 Aleri, Inc. Database system and methods
US20050193361A1 (en) 2004-02-27 2005-09-01 Vitanov Kamen B. System and method for presentation of wireless application data using repetitive UI layouts
US7860838B2 (en) 2004-06-04 2010-12-28 Hewlett-Packard Development Company, L.P. Dynamic hierarchical data structure tree building and state propagation using common information model
US7904512B2 (en) 2004-06-10 2011-03-08 The Board Of Trustees Of The University Of Illinois Methods and systems for computer based collaboration
US7418497B2 (en) 2004-07-15 2008-08-26 International Business Machines Corporation Automatically infering and updating an availability status of a user
US7882149B2 (en) 2004-11-30 2011-02-01 Canon Kabushiki Kaisha System and method for future-proofing devices using metaschema
US8265991B1 (en) 2004-12-16 2012-09-11 Apple Inc. Automated determination of applicability and value of discounts for a purchase order
EP1681645A1 (en) 2005-01-14 2006-07-19 FatLens, Inc. Method and system to compare data objects
GB0512435D0 (en) 2005-06-17 2005-07-27 Queen Mary & Westfield College An ontology-based approach to information management for semantic music analysis systems
US8140362B2 (en) 2005-08-30 2012-03-20 International Business Machines Corporation Automatically processing dynamic business rules in a content management system
WO2007048432A1 (en) 2005-10-28 2007-05-03 Telecom Italia S.P.A. Method of providing selected content items to a user
US7660807B2 (en) 2005-11-28 2010-02-09 Commvault Systems, Inc. Systems and methods for cataloging metadata for a metabase
US8055544B2 (en) 2006-06-02 2011-11-08 Cobalt Group, Inc. Source- and venue-specific inventory data processing and identification system
US7672909B2 (en) 2006-09-28 2010-03-02 Microsoft Corporation Machine learning system and method comprising segregator convergence and recognition components to determine the existence of possible tagging data trends and identify that predetermined convergence criteria have been met or establish criteria for taxonomy purpose then recognize items based on an aggregate of user tagging behavior
US8215193B2 (en) * 2006-10-03 2012-07-10 Alan John Duff Method and apparatus for simplified and hygienic access to a fluid chamber
US7836004B2 (en) 2006-12-11 2010-11-16 International Business Machines Corporation Using data mining algorithms including association rules and tree classifications to discover data rules
US8428981B2 (en) 2006-12-11 2013-04-23 Sap Ag Method and system for automatically maintaining the consistency of an information system
US9311141B2 (en) 2006-12-22 2016-04-12 Callahan Cellular L.L.C. Survival rule usage by software agents
US7702603B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Constructing an agent that utilizes a compiled set of canonical rules
US20080178164A1 (en) 2007-01-22 2008-07-24 International Business Machines Corporation Method, system and apparatus to associate and transform processes
JP4538757B2 (ja) 2007-12-04 2010-09-08 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US10360503B2 (en) 2012-12-01 2019-07-23 Sirius-Beta Corporation System and method for ontology derivation
US8001551B2 (en) 2007-04-24 2011-08-16 Microsoft Corporation Providing localized resources for client-side script execution
US8375312B2 (en) 2007-06-08 2013-02-12 Apple Inc. Classifying digital media based on content
US8478756B2 (en) 2007-07-18 2013-07-02 Sap Ag Contextual document attribute values
US8150886B2 (en) 2007-08-29 2012-04-03 Microsoft Corporation Multiple database entity model generation using entity models
US8655868B2 (en) 2007-09-12 2014-02-18 Ebay Inc. Inference of query relationships based on retrieved attributes
US7849025B2 (en) 2008-01-21 2010-12-07 Microsoft Corporation Modification of relational models
US20090259944A1 (en) 2008-04-10 2009-10-15 Industrial Technology Research Institute Methods and systems for generating a media program
US8112377B2 (en) 2008-05-15 2012-02-07 Sap Ag Client-side rule engine for executing business rules in rich internet applications
US8401991B2 (en) 2008-08-08 2013-03-19 Oracle International Corporation Database-based inference engine for RDFS/OWL constructs
US20100082646A1 (en) 2008-09-26 2010-04-01 Microsoft Corporation Tracking constraints and dependencies across mapping layers
US8290891B2 (en) 2009-06-15 2012-10-16 Nokia Corporation Method and apparatus of dynamic rules insertion by agents
US8429179B1 (en) 2009-12-16 2013-04-23 Board Of Regents, The University Of Texas System Method and system for ontology driven data collection and processing
US9015733B2 (en) 2012-08-31 2015-04-21 Facebook, Inc. API version testing based on query schema
US8185558B1 (en) 2010-04-19 2012-05-22 Facebook, Inc. Automatically generating nodes and edges in an integrated social graph
US8838707B2 (en) 2010-06-25 2014-09-16 Twilio, Inc. System and method for enabling real-time eventing
US9087236B2 (en) 2010-09-13 2015-07-21 International Business Machines Corporation Automated recognition of process modeling semantics in flow diagrams
US9075873B2 (en) 2011-03-11 2015-07-07 Microsoft Technology Licensing, Llc Generation of context-informative co-citation graphs
US9262719B2 (en) 2011-03-22 2016-02-16 Patrick Soon-Shiong Reasoning engines
US8932279B2 (en) * 2011-04-08 2015-01-13 Domain Surgical, Inc. System and method for cooling of a heated surgical instrument and/or surgical site and treating tissue
US8775517B1 (en) 2011-07-12 2014-07-08 Relationship Science LLC Viewing connectivity between user and entity of an information service
US9830596B2 (en) 2011-11-01 2017-11-28 Stripe, Inc. Method for conducting a transaction between a merchant site and a customer's electronic device without exposing payment information to a server-side application of the merchant site
US8620964B2 (en) 2011-11-21 2013-12-31 Motorola Mobility Llc Ontology construction
US20130246435A1 (en) 2012-03-14 2013-09-19 Microsoft Corporation Framework for document knowledge extraction
US9301016B2 (en) 2012-04-05 2016-03-29 Facebook, Inc. Sharing television and video programming through social networking
US9262499B2 (en) 2012-08-08 2016-02-16 International Business Machines Corporation Context-based graphical database
US8825711B2 (en) 2012-08-13 2014-09-02 Magnet Systems, Inc. Managing cross-correlated data
US9646028B2 (en) 2012-08-31 2017-05-09 Facebook, Inc. Graph query logic
US9043703B2 (en) 2012-10-16 2015-05-26 Facebook, Inc. Voice commands for online social networking systems
US9830663B2 (en) 2012-11-08 2017-11-28 Hartford Fire Insurance Company System and method for determination of insurance classification and underwriting determination for entities
US9053210B2 (en) 2012-12-14 2015-06-09 Microsoft Technology Licensing, Llc Graph query processing using plurality of engines
US20140337373A1 (en) 2013-05-07 2014-11-13 Magnet Systems, Inc. System for managing graph queries on relationships among entities using graph index
US9342622B2 (en) 2013-06-27 2016-05-17 Google Inc. Two-phase construction of data graphs from disparate inputs
US9451464B2 (en) 2013-09-11 2016-09-20 Tencent Technology (Shenzhen) Company Limited Method, apparatus and system for network access
US9367809B2 (en) 2013-10-11 2016-06-14 Accenture Global Services Limited Contextual graph matching based anomaly detection
US9317557B2 (en) 2013-10-24 2016-04-19 Microsoft Technology Licensing, Llc Answering relational database queries using graph exploration
US9396046B2 (en) 2013-10-31 2016-07-19 International Business Machines Corporation Graph based data model for API ecosystem insights
WO2015069912A1 (en) 2013-11-06 2015-05-14 Improvement Interactive, LLC Dynamic application version selection
CN103714129B (zh) 2013-12-12 2016-09-14 用友网络科技股份有限公司 基于条件规则的动态数据结构和关系的构建装置和构建方法
US10261960B2 (en) 2014-09-12 2019-04-16 Scality, S.A. Snapshots and forks of storage systems using distributed consistent databases implemented within an object store
US9336306B2 (en) 2014-03-21 2016-05-10 International Business Machines Corporation Automatic evaluation and improvement of ontologies for natural language processing tasks
US9912546B2 (en) 2014-03-28 2018-03-06 Sciencelogic, Inc. Component detection and management using relationships
EP2963563A1 (en) 2014-06-30 2016-01-06 Fujitsu Limited Computing apparatus and method for managing a graph database
US9613185B2 (en) 2014-08-20 2017-04-04 International Business Machines Corporation Influence filtering in graphical models
US9602543B2 (en) 2014-09-09 2017-03-21 Shape Security, Inc. Client/server polymorphism using polymorphic hooks
US20160224674A1 (en) 2015-02-03 2016-08-04 Bank Of America Corporation Dynamic entity rendering framework
RU2591175C1 (ru) * 2015-03-19 2016-07-10 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Способ и система для глобальной идентификации в коллекции документов
US9348880B1 (en) 2015-04-01 2016-05-24 Palantir Technologies, Inc. Federated search of multiple sources with conflict resolution
US10021209B2 (en) 2015-04-10 2018-07-10 Open Text Sa Ulc Systems and methods for caching of managed content in a distributed environment using a multi-tiered architecture
FR3038525B1 (fr) 2015-07-08 2019-06-14 Lab Sa Dispositif d'epuration de fumees, integrant un filtre et un catalyseur
US20170097984A1 (en) 2015-10-05 2017-04-06 Yahoo! Inc. Method and system for generating a knowledge representation
US10885114B2 (en) 2016-11-04 2021-01-05 Microsoft Technology Licensing, Llc Dynamic entity model generation from graph data
US10614057B2 (en) 2016-11-04 2020-04-07 Microsoft Technology Licensing, Llc Shared processing of rulesets for isolated collections of resources and relationships
US10402408B2 (en) 2016-11-04 2019-09-03 Microsoft Technology Licensing, Llc Versioning of inferred data in an enriched isolated collection of resources and relationships
US11475320B2 (en) 2016-11-04 2022-10-18 Microsoft Technology Licensing, Llc Contextual analysis of isolated collections based on differential ontologies
US10452672B2 (en) 2016-11-04 2019-10-22 Microsoft Technology Licensing, Llc Enriching data in an isolated collection of resources and relationships

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7069335B1 (en) * 1999-08-10 2006-06-27 Microsoft Corporation Method and system for exchanging messages between entities on a network comprising an actor attribute and a mandatory attribute in the header data structure
US20100030725A1 (en) * 2007-03-19 2010-02-04 Venura Chakri Mendis Data triple user access
CN102201043A (zh) * 2010-03-24 2011-09-28 微软公司 基于资源属性审核对数据的访问
US20130238667A1 (en) * 2012-02-23 2013-09-12 Fujitsu Limited Database, apparatus, and method for storing encoded triples
CN105359106A (zh) * 2013-07-11 2016-02-24 谷歌公司 用于在基于云的文件系统中提供对改变的通知的系统和方法

Also Published As

Publication number Publication date
EP4152157A1 (en) 2023-03-22
CN109937402B (zh) 2024-01-09
WO2018085474A3 (en) 2018-06-28
WO2018085474A2 (en) 2018-05-11
EP3535656A2 (en) 2019-09-11
US20180129546A1 (en) 2018-05-10
US10481960B2 (en) 2019-11-19
EP3535656B1 (en) 2022-11-23

Similar Documents

Publication Publication Date Title
CN109937402A (zh) 使用回调通知进行数据的出口和入口
US20220353300A1 (en) Method and system for policy management, testing, simulation, decentralization and analysis
US10867209B2 (en) Combining outputs of data processing services in a cloud-based collaboration platform
Al Nuaimi et al. Applications of big data to smart cities
US10593118B2 (en) Learning opportunity based display generation and presentation
EP3623961A1 (en) Predictive modeling with machine learning in data management platforms
CN110178151A (zh) 任务主视图
CN109154935A (zh) 对用于任务完成的信息的智能捕获、存储和取回
US20150215350A1 (en) System and method for distributed virtual assistant platforms
CN110169009A (zh) 隔离的集合中的密码操作
CN106796526A (zh) Json样式表语言变换
CN108885740A (zh) 主动的智能个人助理
CN109074751A (zh) 用双推荐引擎实现内容提供的系统和方法
US20150067503A1 (en) System and method for virtual assistants with agent store
CN109891851A (zh) 用于隔离的集合的委托授权
US11799909B2 (en) Systems and methods for situational localization of AIDA
BR112015031231B1 (pt) Método, dispositivo de armazenamento legível por computador e sistema para utilizar condições ambientais em adição a outras informações de estado do diálogo em um sistema de diálogo de conversação
CN108369806A (zh) 可配置的通用语言理解模型
CN105989523A (zh) 用于分析的基于策略的数据收集处理及协商的方法与系统
US20200167427A1 (en) Training an artificial intelligence to generate an answer to a query based on an answer table pattern
CN109952752A (zh) 针对隔离集合的有条件授权
CN110383774A (zh) 嵌入式会议扩展
CN107111649A (zh) 将用户和系统数据从源位置上传到目的地位置
CN110168554A (zh) 云托管系统中的强资源身份
CN110352416A (zh) 基于本体的图查询优化

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