CN114144762A - 用户辅助的插件应用程序配方执行 - Google Patents

用户辅助的插件应用程序配方执行 Download PDF

Info

Publication number
CN114144762A
CN114144762A CN202080047783.2A CN202080047783A CN114144762A CN 114144762 A CN114144762 A CN 114144762A CN 202080047783 A CN202080047783 A CN 202080047783A CN 114144762 A CN114144762 A CN 114144762A
Authority
CN
China
Prior art keywords
piar
application
data
plug
user
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
CN202080047783.2A
Other languages
English (en)
Other versions
CN114144762B (zh
Inventor
E·L·索顿
T·常
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN114144762A publication Critical patent/CN114144762A/zh
Application granted granted Critical
Publication of CN114144762B publication Critical patent/CN114144762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)

Abstract

公开了用于用户辅助的插件应用程序配方(PIAR)执行的技术。在PIAR的执行期间,PIAR管理应用程序将插件应用程序字段的一个或多个数据值应用于机器学习模型,以获得:(a)在(一个或多个)数据值内发现的一个或多个子值与另一插件应用程序的动作所接受的另一字段之间的候选映射,该(一个或多个)数据值的数据类型与另一字段的报告的数据类型不同,以及(b)与候选映射相关联的置信度度量,该置信度度量至少部分地基于(一个或多个)子值是否适配映射到另一数据类型的一个或多个存储的格式。基于置信度度量不满足阈值置信度标准的确定,PIAR管理应用程序获得用于确认或拒绝候选映射的用户输入,并将用户输入应用于PIAR的执行。

Description

用户辅助的插件应用程序配方执行
技术领域
本公开涉及插件(plug-in)应用程序(application)配方(recipe)。具体地,本公开涉及生成和执行插件应用程序配方。
背景技术
插件应用程序配方(“PIAR”)是一种集合,其包括触发事件(在本文中被称为“触发器”或“触发条件”)以及动作,该触发事件和动作在逻辑上被布置为if-then(如果-则)公式。公式中的“if(如果)”部分对应于PIAR触发条件。公式的“then(则)”部分以“if”部分被满足为条件,并且对应于可触发的动作。插件应用程序可以提供该动作。提供动作的插件应用程序可以与提供触发器的插件应用程序相同或不同。
PIAR管理应用程序呈现允许用户定义PIAR的界面。PIAR定义(PIAR definition)指示要由PIAR管理应用程序执行的一个或多个动作。PIAR定义还指示插件应用程序的触发器。当PIAR管理应用程序检测到触发条件被满足时,PIAR执行对应于检测到的触发器的(一个或多个)动作。
PIAR管理应用程序可以被用于许多目的。例如,PIAR管理应用程序可以被用于自动化重复的任务。PIAR的示例包括但不限于:(a)响应于检测到用户的汽车在用户的车道中(触发器),打开用户的车库门(动作);(b)响应于确定到下午5点用户的行走步数尚未达到特定目标(触发器),向用户发送通知(动作);(c)响应于在地址簿或电子邮件中检测到新的销售联系人(触发器),创建新文件夹来存储关于该销售联系人的信息(动作)。
术语“插件应用程序”是指应用程序的(一个或多个)触发器和/或(一个或多个)动作在逻辑上被“插入”到PIAR管理应用程序中并且因此成为PIAR的逻辑的一部分这一事实。例如,可以根据微服务(micro-service)架构来组织PIAR管理应用程序,使得将若干个独立的服务插入到PIAR管理应用程序中。插入的服务可以提供特定于特定应用程序的(一个或多个)监控服务,以支持用于该特定应用程序的(一个或多个)触发器。替代地或附加地,插入的服务可以提供特定于特定应用程序的(一个或多个)动作服务,以支持执行用于该特定应用程序的(一个或多个)动作。
本部分中描述的方法是可以施行的方法,但不一定是先前已经设想或施行的方法。因此,除非另有说明,否则不应假定本部分中描述的任何方法仅因其包括在本部分中而作为现有技术。
附图说明
在附图的图中通过示例而非限制的方式示出了实施例。应当注意,本公开中对“一”或“一个”实施例的引用不一定指相同实施例,它们意味着至少一个。图中:
图1图示了根据一个或多个实施例的插件应用程序配方管理系统;
图2图示了根据一个或多个实施例的用于生成插件应用程序配方扩展(extension)的操作集合;
图3图示了根据一个或多个实施例的生成插件应用程序配方扩展的示例;
图4图示了根据一个或多个实施例的用于基于语义分析生成插件应用程序配方的操作集合;
图5图示了根据一个或多个实施例的基于语义分析生成插件应用程序配方的示例;
图6图示了根据一个或多个实施例的用于用户辅助的执行插件应用程序配方的操作集合;
图7A-7D图示了根据一个或多个实施例的用户辅助的执行插件应用程序配方的示例;以及
图8示出了图示根据一个或多个实施例的计算机系统的框图。
具体实施方式
在以下描述中,出于解释的目的,阐述了许多具体细节以提供透彻的理解。可以在没有这些具体细节的情况下实践一个或多个实施例。在一个实施例中描述的特征可以与在不同实施例中描述的特征组合。在一些示例中,为了避免不必要地模糊本发明,众所周知的结构和设备被参考框图形式描述。
1总体概述
2架构概况
2.1插件应用程序配方管理系统
2.2机器学习引擎
2.3语义分析引擎
3生成插件应用程序配方扩展
3.1操作
3.2说明性示例
4.基于语义分析的插件应用程序配方生成
4.1操作
4.2说明性示例
5用户辅助的插件应用程序配方执行
5.1操作
5.2说明性示例
6杂项;扩展
7硬件概述
8计算机网络和云网络
1总体概述
一个或多个实施例包括插件应用程序配方(PIAR)管理系统,该系统被配置为使用机器学习、语义分析和/或消除或最小化用户输入的其他技术来生成和/或执行PIAR。
在实施例中,系统被配置为生成插件应用程序配方(PIAR)扩展。PIAR管理应用程序在插件应用程序的特定字段的一个或多个数据值内发现特定数据类型,其中该特定数据类型(a)不同于插件应用程序报告的特定字段的数据类型并且(b)在符合特定字段的数据类型的同时比该特定字段的数据类型更窄。PIAR管理应用程序标识(a)该特定数据类型和(b)插件应用程序的动作所接受的字段的一个或多个数据类型之间的一个或多个映射。PIAR管理应用程序呈现包括基于该(一个或多个)映射的一个或多个候选PIAR扩展的用户界面。基于用户对候选PIAR扩展的选择,PIAR管理应用程序执行包括所选择的PIAR扩展的PIAR。
在实施例中,系统被配置为基于语义分析生成PIAR。响应于接收到指定(a)期望的动作类属(genus of action)和/或(b)期望的触发器类属(genus of trigger)的数据项,PIAR管理应用程序对该数据项执行语义分析以标识一个或多个候选PIAR。至少部分地基于动作和/或触发器到期望的动作类属和/或期望的触发器类属的映射来标识候选(一个或多个)PIAR。该映射至少部分地基于元数据,元数据与插件应用程序的简档相关联,对应于动作和/或触发器。PIAR管理应用程序为每个插件应用程序存储用于定义该插件应用程序的对应简档,以供一个或多个未来的PIAR使用。基于用户输入批准一个或多个候选PIAR中的特定PIAR,PIAR管理应用程序执行该特定PIAR。
在实施例中,系统被配置为执行对插件应用程序配方(PIAR)的用户辅助的执行。在PIAR的执行期间,PIAR管理应用程序将插件应用程序字段的一个或多个数据值应用于机器学习模型,以获得:
(a)在该(一个或多个)数据值内发现的一个或多个子值与另一插件应用程序的动作所接受的另一字段之间的候选映射,该(一个或多个)数据值的数据类型与该另一字段的所报告的数据类型不同,以及(b)与该候选映射相关联的置信度度量,其至少部分地基于该(一个或多个)子值是否与映射到该另一数据类型的一个或多个存储的格式适配。基于确定置信度度量不满足阈值置信度标准,PIAR管理应用程序获得用于确认或拒绝该候选映射的用户输入,并将该用户输入应用于PIAR的执行。
本说明书中描述的和/或权利要求中叙述的一个或多个实施例可以不包括在本总体概述部分中。
2架构概述
2.1插件应用程序配方管理系统
图1图示了根据一个或多个实施例的插件应用程序配方(PIAR)管理系统100。如图所示,PIAR管理系统100包括用户界面102、PIAR管理应用程序104、数据存储库112、一个或多个监控服务118、一个或多个执行服务120、一个或多个插件应用程序122、及其各种部件。在一个或多个实施例中,系统100可以包括比图1所示的部件更多或更少的部件。图1所示的部件可以是本地的,也可以是彼此远离的。图1所示的部件可以在软件和/或硬件中实现。每个部件可以分布在多个应用程序和/或机器上。多个部件可以组合到一个应用程序和/或机器中。关于一个部件描述的操作可以替代地由另一个部件执行。下面描述了与计算机网络有关的附加实施例和/或示例。
在实施例中,PIAR管理应用程序104指被配置为执行本文所述的用于生成PIAR扩展的操作的硬件和/或软件。替代地或附加地,PIAR管理应用程序104可以被配置为执行本文所述的用于基于语义分析生成PIAR的操作。替代地或附加地,PIAR管理应用程序104可以被配置为执行本文所述的用于用户辅助的执行PIAR的操作。下面描述了用于生成PIAR扩展、基于语义分析的PIAR生成、和用户辅助的PIAR执行的操作示例。
在实施例中,PIAR管理系统100包括一个或多个插件应用程序122。插件应用程序122是链接或“插入”到PIAR管理应用程序104的应用程序。通过引用一个或多个插件应用程序122来定义每个PIAR。具体地,插件应用程序122包括一个或多个触发器应用程序124和一个或多个动作应用程序126。触发器应用程序124和动作应用程序126可以是相同的应用程序或不同的应用程序。特定插件应用程序122可以暴露一个或多个触发器,同时还暴露用于执行动作的API。同一插件应用程序122可在相同的PIAR或不同的PIAR中用作触发器应用程序124和动作应用程序126两者。PIAR管理应用程序104本身可以是触发器应用程序124和/或动作应用程序126。
在实施例中,一个或多个插件应用程序122是以下应用程序:(a)独立于PIAR管理应用程序104的触发器检测过程而执行(下面进一步详细描述);(b)不由PIAR管理应用程序104的触发器检测过程控制;和/或(c)远离PIAR管理应用程序104。因此,独立于PIAR管理应用程序104的触发器检测过程而执行的插件应用程序122在本文可以被称为独立执行的应用程序。
在实施例中,特定插件应用程序122是相对于PIAR管理应用程序104的“分立(stand-alone)”应用程序。也就是说,插件应用程序122可以提供其自己的用户界面(例如,图形用户界面),用户通过该用户界面来访问插件应用程序122的全部功能。插件应用程序122可以提供完全独立于PIAR管理应用程序104的功能,并且不取决于PIAR管理应用程序104来起作用。分立插件应用程序122不是PIAR管理应用程序104的模块或部件。一个或多个插件应用程序122和PIAR管理应用程序104可以由彼此完全不同的业务实体来开发和支持。作为示例,插件应用程序122可以包括搜索应用程序、电子邮件应用程序和音频播放器应用程序,其中每一个都是独立执行的分立应用程序。可以使用许多不同种类的插件应用程序122,并且不应将这些示例解释为限制一个或多个实施例。
在实施例中,触发器应用程序124提供被PIAR管理应用程序104用于确定触发条件是否被满足的数据。触发器应用程序124可以将该数据作为数据流和/或离散数据项提供给PIAR管理应用程序104。触发器应用程序124可以使用“推送”模型向PIAR管理应用程序104提供数据,在该模型中触发器应用程序124将数据提交给PIAR管理应用程序104的API。替代地或附加地,触发器应用程序124可以使用“拉取”模型向PIAR管理应用程序104提供数据,在该模型中PIAR管理应用程序104查询触发器应用程序124的API以获取数据。替代地或附加地,PIAR管理应用程序104可以维持到触发器应用程序124的持久连接,并持续地经由该连接从触发器应用程序124接收数据。触发器应用程序124可以以许多不同的方式和/或其组合向PIAR管理应用程序104提供数据。在实施例中,触发器应用程序124提供多个数据流和/或数据项,对应于触发器应用程序124的不同数据字段。作为示例,电子邮件应用程序可以提供对应于发件人、收件人、主题和电子邮件正文字段的数据。触发条件可以基于与一个或多个触发器应用程序124所提供的一个或多个字段相对应的(一或多个)数据值。PIAR管理应用程序104可以变换、组合和/或以其他方式修改由一个或多个触发器应用程序124提供的数据,以确定触发条件是否被满足。
在实施例中,PIAR管理应用程序104监控触发器应用程序124以检测关于触发器应用程序124而定义的一个或多个触发器。PIAR管理应用程序104可以使用监控服务118来监控触发器应用程序124,监控服务118在触发器被满足时向PIAR管理应用程序104报告。监控服务118可以与触发器应用程序124分开实现,或者作为触发器应用程序124的部件(例如,可安装模块或插件)实现。监控服务118可以被配置为监控单个触发器应用程序124。替代地或附加地,监控服务118可以被配置为监控多个触发器应用程序。如果特定动作应用程序126(下面进一步详细描述)也暴露一个或多个触发器,则监控服务118可以被配置为监控动作应用程序126以检测关于动作应用程序126而定义的触发器。
在实施例中,触发器应用程序124包括特定于应用程序的监控系统,该监控系统暴露(例如,经由实现为REST API的发现机制而暴露)具有预定义字段的一个或多个预定义触发条件。与一个或多个预定义触发条件相关联的一个或多个预定义字段可以是可自定义的。特定于应用程序的监控系统可以允许对特定于应用程序的触发器的有限量的自定义,即,允许以一些方式的自定义而不允许以其他方式的自定义。在一个示例中,触发器应用程序124是电子邮件应用程序。通过引用电子邮件应用程序而定义的触发器在该电子邮件应用程序执行特定关键字搜索时被满足。在此示例中,特定于应用程序的触发器关于触发关键字是可自定义的,但关于该关键字是否在另一关键字的指定字数内或具有该关键字的较早电子邮件的信息是否已被检测到并被存储在表中不是可自定义的。
在一个示例中,触发器应用程序124是搜索应用程序,并且触发器被定义为该搜索应用程序执行对收件人的搜索。在此示例中,监控服务118监控搜索应用程序,并在搜索应用程序执行对收件人的搜索的情况下和时候通知PIAR管理应用程序104。在另一示例中,触发器应用程序124是汽车销售应用程序。潜在客户可以从广告汽车数据库中搜索汽车,并请求与销售代表会面以购买汽车。触发条件可以被定义为从用户接收提及广告汽车的销售会面请求。
在实施例中,用户界面102被配置为接收指定与触发器应用程序124原生地(natively)暴露的函数或数据不对应的一个或多个触发器的用户输入。例如,触发器应用程序124可以暴露随时间改变的数据值,而不原生地暴露随着这些数据值的改变对数据值进行监控或比较的任何函数。尽管如此,触发器仍可以被定义以用于监控触发器应用程序124以获取数据值随时间的改变。作为另一示例,触发器可包括基于聚合数据值(例如,随时间而进行求和或平均、或在一些连续数据保留或改变上进行求和或平均)或掩蔽的(masked)数据值(例如,指示数据或数据中的改变的存在或不存在的数据值,即使数据本身对PIAR管理应用程序104或最终用户是掩蔽的或者对最终用户整体不可用)的条件。可以从触发器应用程序124推断、导出或以其他方式确定许多不同种类的触发条件,而无需被触发器应用程序124原生地支持。
在实施例中,触发器应用程序124不以任何方式受PIAR管理应用程序104的执行的影响。PIAR管理应用程序104可以在由独立执行的触发器应用程序124管理的(一个或多个)字段中的改变满足一个或多个阈值标准(诸如,某个值或聚合值)时确定触发器被满足。PIAR管理应用程序104不会改变或请求改变由触发器应用程序124管理的该(一个或多个)字段,而是检测由触发器应用程序124的独立操作而导致的改变。指定给PIAR管理应用程序104的一个或多个阈值标准可以不同于触发器应用程序124的(一个或多个)内置监控过程(如果有的话)所支持的任何阈值标准,但是这些阈值标准可以基于可从触发器应用程序124访问的变量,并且这样的变量可以随时间而改变。
在一个示例中,触发器应用程序124是搜索应用程序。搜索应用程序管理指定位置的字段。响应于查询,搜索应用程序显示与该位置相关联的搜索结果。从一个城市到另一个城市的位置改变可以满足触发器的阈值标准。
在实施例中,持续地进行对触发器应用程序124(例如,使用监控服务118和/或触发器应用程序124的特定于应用程序的监控系统)的监控以标识触发事件。也就是说,监控过程被启动并继续运行,直到终止条件被满足。响应于由相关联的监控过程标识的许多触发事件,特定PIAR可以多次地被评估和执行。一般而言,在所选择的触发事件的第一个实例发生后,PIAR不停止运行。例如,响应于检测到车道上的车辆而打开车库门的PIAR可以永久运行并导致车库门打开任何次数。与特定PIAR相关联的监控过程可以永久运行,直到它被用户手动终止(例如,经由用户界面102终止)。替代地或附加地,PIAR定义可包括终止条件,诸如运行的某个时间长度和/或响应于触发器执行动作的最大次数。通常,PIAR被创建的意图在于它运行于独立于用户的执行模式,即,作为在无需进一步手动干预的情况下继续永久运行的自动后台服务。
在实施例中,PIAR管理应用程序104响应于检测到触发条件被满足而执行(直接执行和/或通过引起另一过程的执行)一个或多个动作。动作应用程序126是当触发条件被满足时被PIAR管理应用程序104指示以执行动作的插件应用程序122。尽管动作应用程序126执行该动作,但是在PIAR管理应用104发起动作的执行的意义上,PIAR管理应用程序104也可以被说成是“执行”动作。与触发器应用程序124类似,动作应用程序126被链接或插入PIAR管理应用程序104。动作应用程序126可以经由执行服务120被链接到PIAR管理应用程序110。执行服务120可以与动作应用程序126分开实现或作为动作应用程序126的部件来实现。根据PIAR,执行服务120可以访问对应于动作应用程序126的API以使用动作应用程序126执行动作。
在实施例中,动作应用程序126暴露(例如,经由REST API和/或另一种界面或其组合而暴露)所支持的一个或多个动作的集合。所支持的(一个或多个)动作的集合可以被PIAR管理应用程序104发现。PIAR管理应用程序104可以向动作应用程序126发送发现请求,并响应于该发现请求而接收描述所支持的(一个或多个)动作的集合的信息。
在实施例中,PIAR可涉及响应于检测到触发器而执行的多个动作。两个或更多个动作可以并发执行或以固定顺序执行。可以使用并发和/或顺序动作的组合。一个动作的输出可以用作另一个动作的输入。在一个示例中,当电子邮件应用程序接收到来自预期客户的电子邮件(例如,在通常给予预期客户的电子邮件地址处接收到电子邮件)时,触发条件被满足。在此示例中,响应于接收到电子邮件而执行的一系列动作包括(1)确定该预期客户(prospect)是否已在客户关系管理(CRM)应用程序中列出,以及(2)如果该预期客户尚未在CRM应用程序中列出,将该预期客户添加到CRM应用程序并向销售经理发送通知电子邮件。将该预期客户添加到CRM应用程序并向销售经理发送通知电子邮件可以并发或以特定次序执行。例如,通知电子邮件可以仅在从CRM应用程序收到该预期客户被成功添加的确认后才被发送。PIAR可以包括并发和/或顺序动作的许多不同组合。
在实施例中,基于对进行发起的触发器的评估(或者,如果动作是一系列动作的一部分,则基于对来自先前动作的输出的评估),PIAR中的一个或多个动作可以有条件地执行。例如,PIAR可包括条件逻辑(例如,if、then、else等),其响应于检测到触发器而确定要执行的动作(如果有)的特定顺序。包括条件逻辑的PIAR可以被称为“条件PIAR”或“分支PIAR”。对于评估条件逻辑的不同结果或排列,分支PIAR的不同分支可作为单独的PIAR或子PIAR来运行。PIAR管理应用程序104可以被配置为响应于检测到条件被满足而生成子PIAR以处理现有PIAR的特定条件/分支。评估触发器和/或前一动作的输出可能涉及循环通过多个变量值。例如,触发器或动作可以提供值的数组,并且评估触发器或动作可能涉及迭代地评估(或“循环通过”)这些值中的每一个。循环通过这样的值本身可能受条件逻辑的约束。条件逻辑和/或循环通过变量的许多不同组合可以被用于确定当检测到触发器时所执行的(一个或多个)特定操作(如果有的话)。用户界面102可以包括用于定义特定PIAR的循环和/或条件逻辑的控件。
在实施例中,PIAR管理应用程序104本身是动作应用程序126。PIAR管理应用程序104可以执行生成新PIAR的动作和/或执行另一动作或其组合。例如,PIAR可以将触发器定义为客户的首次购买,以及定义用于生成用于管理该客户购买的新PIAR的对应动作。新PIAR可以定义动作,诸如创建一个或多个数据库条目以用于存储客户购买记录或基于客户完成的购买创建产品推荐列表。
在实施例中,PIAR管理应用程序104支持涉及一系列动作的PIAR定义。例如,响应于特定触发器,PIAR可执行特定动作“动作A”。动作A的输出(即,由动作A生成的数据,对应于执行动作A的插件应用程序的一个或多个字段)可随后被用作到另一动作“动作B”的输入。动作B的输出(即,由动作B生成的数据,对应于执行动作B的插件应用程序的一个或多个字段)随后可以被用作到另一动作“动作C”的输入等。PIAR管理应用程序104可以变换动作的输出(例如,通过将数据转换为另一数据类型,和/或另一种变换),然后将经变换的数据用作到另一个动作的输入。动作A暴露的函数和/或数据可以可用作到动作B的输入和/或后续动作(诸如动作C)的输入。稍后的动作(诸如动作C)暴露的函数和/或数据可能不可用作到较早的动作(如动作B或动作A)的输入。例如,如果动作B在动作C完成之前完成,则动作B不可能接收来自动作C的输入。
在实施例中,PIAR管理应用程序104可访问的插件应用程序122(即,触发器应用程序124和/或动作应用程序126)的功能集合是插件应用程序122的全部功能的子集。插件应用程序122可以暴露应用程序编程接口(API),其提供对插件应用程序122的某些函数和/或数据的访问,而不提供对插件应用程序122的其他函数和/或数据的访问。插件应用程序122可以使用表征状态转移(REST)API和/或任何其他种类的API或其组合向PIAR管理应用程序104暴露功能。插件应用程序122向PIAR管理应用程序104暴露的功能可以是插件应用程序122的全部功能的适当子集(又名严格子集)。
作为示例,电子邮件应用程序可以向PIAR管理应用程序104暴露关于已被接收的电子邮件的信息(例如,电子邮件日期、时间、发件人、收件人、主题行、内容等),而不向PIAR管理应用程序104暴露电子邮件发送功能,即使电子邮件应用程序本身包括电子邮件发送功能。作为另一示例,日历应用程序可以向PIAR管理应用程序104暴露关于已经被安排的事件的信息(例如,日期、时间、位置、参与者等)和/或安排新事件的功能,而不向PIAR管理应用程序104公开取消事件的功能,即使日历应用程序本身包括取消事件的功能。
在实施例中,插件应用程序122向PIAR管理应用程序104暴露的功能集合取决于一个或多个授权策略。PIAR管理应用程序104可以存储并使用授权令牌来认证对插件应用程序122的API的访问。例如,PIAR管理应用程序104可以经由用户界面102提示用户输入用户名和密码以访问插件应用程序122的API。PIAR管理应用程序104可以将用户名和密码存储在加密令牌中,该令牌被它用于请求访问插件应用程序122的已暴露的函数和/或数据。在实施例中,用于访问插件应用程序122的认证使用授权代理服务。例如,认证可以使用通过引用并入本文的题为“Authorization Proxy Platform”的第62/748,105号美国临时专利申请中描述的一个或多个技术。
在实施例中,PIAR管理应用程序104被配置为基于用户对用户界面102的输入而生成PIAR定义。具体地,用户可以选择一个或多个触发器以及当该(一个或多个)触发器被满足时要被执行的一个或多个对应动作。如本文所用,触发器和动作被统称为PIAR的“操作”。替代地或附加地,用户可以指定:PIAR定义的名称;在PIAR中使用的触发器应用程序124;和/或在PIAR中使用的动作应用程序126。这些操作中的一个或多个可以涉及生成新的PIAR定义。PIAR定义还可以包括除(一个或多个)触发器和(一个或多个)动作以外的信息。
在实施例中,PIAR管理应用程序104将PIAR定义作为PIAR定义对象114存储在数据存储库112中。替代地或附加地,PIAR管理应用程序104可以将与PIAR定义相关联的元数据116存储在数据存储库112或其他存储装置中。例如,元数据116可以标识创建了PIAR定义的用户、创建时间和日期、PIAR定义的授权级别(例如,是否允许(一个或多个)动作接收个人可标识的信息)、与(一个或多个)触发器和/或(一个或多个)动作相关联的(一个或多个)插件应用程序,和/或描述PIAR或与其相关联的任何其他类型的元数据、或其组合。如果PIAR定义是在执行另一个PIAR的过程中递归地生成的,则递归地生成的PIAR可以被称为“子”PIAR,并且生成它的PIAR可以被称为“父”PIAR。与子PIAR相关联的元数据可以直接在子PIAR的元数据中和/或通过引用父PIAR的元数据来包括关于父PIAR的信息。PIAR管理应用程序108可以将元数据116存储在PIAR定义对象114内(即,作为其一个或多个逻辑部件)或者与PIAR定义对象114分离。在实施例中,PIAR管理应用程序104以JavaScript对象表示法(JSON)格式存储PIAR定义对象114,其中JSON结构中的元素对应于一个或多个触发器、一个或多个动作和/或元数据116。
在实施例中,数据存储库112是用于存储数据的任何种类的存储单元和/或设备(例如,文件系统、数据库、表集合或任何其他存储机制)。此外,数据存储库112可以包括多个不同的存储单元和/或设备。多个不同的存储单元和/或设备可能属于或可能不属于相同种类或位于相同物理站点。此外,数据存储库112可以在与PIAR管理系统100的一个或多个其他部件相同的计算系统上实现或执行。替代地或附加地,数据存储库112可以在与PIAR管理系统100的一个或多个其他部件分离的计算系统上实现或执行。数据存储库112可以经由直接连接或经由网络通信地耦合到PIAR管理系统100的一个或多个其他部件。描述PIAR定义对象114和/或元数据116的信息可以跨PIAR管理系统100内的任何部件实现。然而,为了清楚和解释起见,此信息在数据存储库112内示出。
在实施例中,用户界面102包括用于修改PIAR(即,如下文所述,现有PIAR和/或由PIAR管理应用程序104生成的候选PIAR)的一个或多个控件。用户界面102可以包括用于在特定PIAR中用一个或多个用户定义的值来覆盖触发器应用程序124的(一个或多个)已暴露字段的值的一个或多个控件。替代地或附加地,用户界面102可以包括用于在特定PIAR中用一个或多个用户定义的值来覆盖动作应用程序126的(一个或多个)预期字段的值的一个或多个控件。替代地或附加地,用户界面102可以包括用于将字段指定为必需(使得如果所需字段的值缺失则执行PIAR的特定实例将不会完成)的一个或多个控件。替代地或附加地,用户界面102可以包括用于将字段指定为被忽略(使得执行PIAR的特定实例将不会把被忽略的字段的值并入,即使该字段的值存在)的一个或多个控件。替代地或附加地,用户界面102可以包括用于将字段指定为可选字段(使得执行PIAR的特定实例将把可选字段的值并入(如果它存在),并且忽略可选字段(如果它缺失))的一个或多个控件。
在实施例中,用户界面102包括用于指定字段的值的一个或多个控件,如果在执行PIAR的特定实例中检测到该字段,则该字段被解释为指导用户辅助的PIAR执行的操作的指令(下面进一步详细描述)。例如,用户界面102可以包括用于定义特定标签(其可以是特定于用户的标签或由PIAR管理应用程序104的多个用户共享)的控件,如果在由触发器应用程序124提供的字段的特定数据值中(例如,在电子邮件消息中)检测到该标签,则该标签指示PIAR管理应用程序104:(a)抑制提示用户进行输入来确认由PIAR触发的动作,即使在此实例中独立于用户的执行与低置信度指示符相关联;(b)提示用户进行输入以确认由PIAR触发的动作,即使在此实例中独立于用户的执行与高置信度指示符相关联;或者(c)在此实例中定义阈值置信度指示符,其可能偏离继续进行独立于用户的执行所需的默认置信度指示符,超过该阈值置信度指示符,PIAR管理应用程序104必须提示用户进行输入以确认由PIAR触发的动作。
在实施例中,PIAR管理系统100的一个或多个部件在一个或多个数字设备上实现。术语“数字设备”通常指包括处理器的任何硬件设备。数字设备可指执行应用程序或虚拟机的物理设备。数字设备的示例包括计算机、平板电脑、笔记本电脑、台式机、上网本、服务器、web服务器、网络策略服务器、代理服务器、通用机器、功能特定的硬件设备、硬件路由器、硬件交换机、硬件防火墙、硬件防火墙、硬件网络地址转换器(NAT),硬件负载均衡器、大型机、电视机、内容接收器、机顶盒、打印机、移动手机、智能手机、个人数字助理(“PDA”)、无线接收器和/或发射器、基站、通信管理设备、路由器、交换机、控制器、接入点和/或客户端设备。
2.2机器学习引擎
在实施例中,PIAR管理应用程序104包括机器学习引擎108。机器学习包括人工智能领域中的各种技术,这些技术处理用于解决具有可变输入的问题的、计算机实现的独立于用户的过程。PIAR管理应用程序104可以被配置为使用机器学习引擎108以独立于用户的执行模式来执行本文所述的一个或多个操作。
在实施例中,机器学习引擎108训练机器学习模型(未示出)以执行一个或多个操作。训练机器学习模型使用训练数据生成函数,给定到机器学习模型的一个或多个输入,该函数计算出对应输出。该输出可以对应于基于先前机器学习的预测。在实施例中,该输出包括被分配给所提供的(一个或多个)输入的标签、分类和/或归类。机器学习模型对应于用于执行所期望的(一个或多个)操作(例如,对输入进行标记、分类和/或归类)的学习到的模型。
在实施例中,机器学习引擎108可以使用监督学习、半监督学习、无监督学习、强化学习和/或另一种训练方法或其组合。在监督学习中,标记的训练数据包括输入/输出对,其中每个输入用期望的输出(例如,标签、分类和/或归类)标记,该输出也被称为监督信号。在半监督学习中,一些输入与监督信号相关联,而其他输入与监督信号无关联。在无监督学习中,训练数据不包括监督信号。强化学习使用反馈系统,其中机器学习引擎108在尝试解决特定问题的过程中接收正和/或负强化(例如,根据一个或多个预定义的性能标准来优化特定场景中的性能)。在实施例中,机器学习引擎108初始地使用监督学习来训练机器学习模型,然后使用无监督学习来在持续的基础上更新机器学习模型。
在实施例中,机器学习引擎108可以使用许多不同的技术来对输入进行标记、分类和/或归类。机器学习引擎108可以将输入变换为描述输入的一个或多个属性(“特征”)的特征向量。机器学习引擎108可以基于这些特征向量对输入进行标记、分类和/或归类。替代地或附加地,机器学习引擎108可以使用聚类(也被称为聚类分析)来标识输入中的共性。机器学习引擎108可以基于这些共性对输入分组(即,聚类)。机器学习引擎108可以使用分层聚类、k-均值聚类和/或另一聚类方法或其组合。在实施例中,机器学习引擎108包括人工神经网络。人工神经网络包括多个节点(也被称为人工神经元)和节点之间的边。边可以与表示节点之间的连接强度的对应权重相关联,机器学习引擎108随着机器学习的进行对该权重进行调整。替代地或附加地,机器学习引擎108可以包括支持向量机。支持向量机将输入表示为向量。机器学习引擎108可以基于向量对输入进行标记、分类和/或归类。替代地或附加地,机器学习引擎108可以使用朴素贝叶斯分类器来对输入进行标记、分类和/或归类。替代地或附加地,给定特定输入,机器学习模型可以应用决策树来预测针对该给定输入的输出。替代地或附加地,在在固定的互斥选项集合中对输入进行标记、分类和/或归类是不可能或不切实际地的情况下,机器学习引擎108可应用模糊逻辑。上述机器学习模型和技术仅出于示例性目的进行讨论,并不应被解释为限制一个或多个实施例。
在实施例中,当机器学习引擎108向机器学习模型应用不同的输入时,对应的输出不总是准确的。作为示例,机器学习引擎108可以使用监督学习来训练机器学习模型。在训练机器学习模型后,如果后续输入与标记的训练数据中所包括的输入等同,且输出与训练数据中的监督信号等同,则输出肯定是准确的。如果输入与标记的训练数据中所包括的输入不同,则机器学习引擎108可能生成不准确或准确性不确定的对应输出。除了针对给定输入产生特定输出之外,机器学习引擎108可以被配置为产生表示输出的准确性的置信度的指示符(或表示置信度的缺乏的指示符)。置信度指示符可以包括数字分数、布尔值和/或与输出的准确性的置信度(或置信度的缺乏)相对应的任何其他类型的指标。
2.3语义分析引擎
在实施例中,PIAR管理应用程序104包括语义分析引擎108。PIAR管理应用程序104可以被配置为使用语义分析引擎110对一个或多个数据项执行语义分析,如下所述。通常,如本文所用,语义分析是指用于确定与人类语言中的词语(即,独立的词语、句子、段落等)相关联的含义的编程技术。作为一个示例,插件应用程序122产生包括人类语言中的词语的输出(例如,电子邮件、网页、文档、视频、音频文件和/或包括词语的任何其他种类的输出)。语义分析可确定与插件应用程序122的输出相关联的含义。作为另一示例,用户提供包括自然语言指令形式的词语的输入(例如,经由用户界面102输入的文本和/或音频)。语义分析可以使用自然语言处理来确定自然语言指令的含义。该含义可对应于用户意图,即,用户表达的对于PIAR管理应用程序104执行特定任务的期望。通过语义分析确定的含义可对应于基于对先前输入的分析的预测含义。存在许多不同的语义分析技术。在实施例中,语义分析引擎110使用机器学习引擎108通过将(一个或多个)输入词语应用到机器学习模型来确定含义。替代地或附加地,语义分析引擎100使用不涉及机器学习的语义分析技术。例如,语义分析引擎100可以使用决策树分析和/或另一种形式的语义分析或其组合,根据固定语法和词汇表处理输入。
3.生成插件应用程序配方扩展
3.1操作
图2图示了根据一个或多个实施例的用于生成插件应用程序配方扩展的示例操作集合。图2中所示的一个或多个操作可以被一起修改、重新布置或省略。因此,图2中所示的特定顺序的操作不应被解释为限制一个或多个实施例的范围。
在实施例中,除非另有指定,否则以下描述的操作可以以独立于用户的执行模式执行,即,作为在没有用户输入的情况下执行的一个或多个过程。通过减少或消除在各种操作阶段获取用户输入的需要,以独立于用户的执行模式执行操作可以提高系统的速度和/或效率。
在实施例中,系统(例如,图1的PIAR管理系统100)训练机器学习模型(操作202)。系统可以训练机器学习模型,以标识提供给系统的数据项中的一个或多个规范(canonical)数据类型。如本文所用的,规范数据类型是系统所支持的具体数据类型。系统可以以特定规范格式表示规范数据类型。例如,系统可能支持“日期”数据类型,并以特定规范格式(例如,“yyyy-mm-dd”)来存储日期。在此示例中,系统可训练机器学习模型以标识提供给系统的数据项中的尚不是特定规范格式的日期(例如,非结构化数据中的日期,诸如自然语言输入)。
替代地或附加地,系统可训练机器学习模型以标识提供给系统的数据项中的一个或多个数据模式。如本文所用,数据模式是组合可能在逻辑上彼此相关的两个或多个其他数据类型的复合数据类型。例如,“约会”数据模式可以组合以特定可识别模式布置的日期、时间、位置和/或名称数据类型。数据模式中包括的数据类型本身可以是数据模式。替代地或附加地,数据模式可以基于数据项的语义内容。例如,在日历应用程序生成的数据中,一个数据模式可能与体育赛事关联,而另一个数据模式可能与商务午餐关联。数据模式也可以是系统的规范数据类型。在实施例中,系统基于标识非结构化数据中的已知数据类型(可包括一个或多个数据模式)的训练数据集合(例如,现有PIAR定义或其部分),使用监督学习来训练机器学习模型。
在实施例中,系统被配置为标识包括以下中的一个或多个的数据类型:日期;电子邮件地址;货币数额;物理地址;用户定义的数据类型(例如,与用户定义的字母数字字符模式匹配的正则表达式);标准化数据类型(例如,电气和电子工程师协会(IEEE)标准化的数据类型、符合JavaScript对象表示法(JSON)模式的数据类型和/或任何其他种类的标准化数据类型或其组合);和/或另一数据类型或其组合。系统可以使用如上所述的机器学习和/或使用非机器学习技术来标识数据类型。例如,系统可以存储与已知数据类型匹配的正则表达式,并将数据项应用于正则表达式,而不使用机器学习模型,从而确定数据项是否对应于该数据类型。
在实施例中,为了标识特定数据项的数据类型,系统被配置为检查与该数据项相关联的先前的处理序列。先前的处理序列可以提供对数据项的数据类型的洞察(insight)。PIAR可以包括一个或多个动作的序列,其中数据项的数据类型从一个动作变换到下一个动作,并且系统可以知晓该序列中数据项的先前(即,“上游”)(一个或多个)数据类型。作为一个示例,PIAR接收以系统日期格式表示日期的数据项。PIAR将数据项传递给电子邮件应用程序,该应用程序生成主题行中具有文本格式的日期的电子邮件。系统识别出主题行包含日期,因为它访问了PIAR的“上游”处理序列。
在实施例中,系统在插件应用程序的一个或多个字段内发现一个或多个数据类型(操作204)。系统可以接收(一个或多个)数据值,作为触发器应用程序的输出(例如,在评估触发器之前和/或之后)和/或动作应用程序的输出(例如,作为执行动作的结果而生成的数据)。在(一个或多个)数据值中发现的数据类型可以是规范数据类型、数据模式和/或任何其他种类的数据类型。例如,当执行从电子邮件应用程序接收数据的PIAR时,系统可以在电子邮件消息正文中发现与约会对应的数据模式。电子邮件应用程序可以将电子邮件内容暴露为电子邮件应用程序报告为具有“字符串”数据类型的字段。特定电子邮件的内容(即,对应于该字段的特定实例的数据值)可以包括自然语言形式的会面邀请。基于电子邮件的内容,系统可发现“会面邀请”数据模式。如果系统使用语义分析来发现数据类型,则系统可以使用语义上下文(即,靠近数据的一个或多个部分并与之关联的词语)来推断(一个或多个)数据类型。作为另一示例,在执行生成日历约会的PIAR时,系统可发现一个或多个约会实例对应于与体育赛事相关联的数据模式。在实施例中,系统使用机器学习在执行PIAR时遇到的一个或多个数据值中发现一个或多个数据类型。例如,系统可以从触发器应用程序和/或动作应用程序接收非结构化数据,并使用机器学习来标识非结构化数据中的一个或多个数据类型。通常,在实施例中,所发现的数据类型不同于提供该(一个或多个)数据值的字段的数据类型(即触发器应用程序或动作应用程序关于该字段报告的数据类型)。插件应用程序可以显式地报告字段的数据类型。作为一个示例,插件应用程序可以暴露可发现的API,该API提供关于可经由该API访问的(一个或多个)字段的(一个或多个)数据类型的信息。作为另一示例,插件应用程序可以以数据格式提供(一个或多个)数据值,该数据格式包括关于(一个或多个)字段的(一个或多个)数据类型的信息(例如,XML或JSON数据中具有标识该数据中所包括的(一个或多个)字段的(一个或多个)数据类型的一个或多个标签)。替代地或附加地,插件应用程序可以隐式地报告字段的数据类型,即,通过提供特定数据类型的(一个或多个)数据值,而不包括明确标识该数据类型的附加数据和/或元数据。插件应用程序可以以许多不同的方式显式或隐式报告字段的数据类型。
在实施例中,所发现的数据类型比所报告的在其中发现该数据类型的(一个或多个)数据值的(一个或多个)数据类型更窄(即,更具体)。例如,数据值可能是字符串类型,而在字符串中发现的数据类型是“电子邮件地址”类型。电子邮件地址的数据类型符合(comply with)字符串数据类型。在计算机编程术语中,电子邮件地址可以强制转换为(cast as)字符串数据类型。然而,电子邮件地址是较窄的数据类型,与较宽的字符串数据类型相比具有更具体的含义。通常,在(一个或多个)数据值中发现的数据类型,即使比该(一个或多个)数据值更窄,也符合为该(一个或多个)数据值报告的数据类型。继续上面的示例,没有不符合字符串数据类型的电子邮件地址。
在实施例中,所发现的数据类型是基于多个数据值的。这些数据值可以被用于相同字段和/或不同字段的多个实例。系统可以跨不同插件应用程序获取多个字段的数据值,并基于用于该多个字段的数据值的组合而发现复合或“巨型(jumbo)”数据类型。例如,一个字段可以提供电子邮件地址,另一个字段可以提供电话号码,并且另一个字段可以提供名称。系统可发现“联系人”数据类型,作为用于不同字段的这些单独数据值的复合。
在实施例中,如果系统不确定如上所述发现的数据类型,则系统可提示用户进行输入以帮助标识所发现的(一个或多个)数据类型。例如,系统可以标识非结构化数据中的多个数据类型,并将所标识的数据类型作为候选呈现给用户。系统可以接收选择一个或多个候选的用户输入。
在实施例中,系统发现当前执行的PIAR没有为其定义任何具体的对应动作的一个或多个数据类型。例如,PIAR可以被配置为基于从客户关系管理(CRM)应用程序接收的新客户数据而生成电子邮件消息。在一个或多个实例中,来自CRM应用程序的数据可能包括与新客户的引导约会(onboarding appointment)相对应的日期信息,但PIAR不包括用于生成日历约会的任何具体对应动作。
在实施例中,系统存储元数据(操作206),该元数据描述由支持的动作(即,由一个或多个动作应用程序支持的一个或多个动作)所接受的字段。在此上下文中,字段是动作的、由动作应用程序支持的特定数据类型的预期输入。字段也可以称为变量。数据类型可以是规范数据类型、数据模式和/或任何其他种类的数据类型。例如,电子邮件应用程序可能支持“发送电子邮件”动作,对于给定的电子邮件,该操作期望:发件人;一名或多名收件人;主题行;和电子邮件内容。在实施例中,系统使用机器学习来发现所支持的动作的一个或多个字段。替代地或附加地,动作应用程序经由API来接受用于执行一个或多个动作的字段。API可以是可发现的,使得系统可以向API发送发现请求,并响应于发现请求而接收对象,该对象描述动作应用程序所支持的(一个或多个)动作和/或所支持的(一个或多个)动作所接受的(一个或多个)字段。使用发现请求来发现动作应用程序支持的(一个或多个)动作和/或(一个或多个)动作接受的(一个或多个)字段可以需要认证。
在实施例中,系统标识一个或多个发现的数据类型与一个或多个动作接受的一个或多个字段的一个或多个数据类型之间的一个或多个映射(操作208)。通常,发现的数据类型与动作接受的字段的数据类型之间的映射表示该动作接受与所发现的数据类型相同的数据类型的数据,来作为字段的输入。在一些实施例中,映射可以受将一个或多个数据类型从非结构化格式变换为规范数据类型和/或数据模式,和/或经由一个或多个预定义的变换函数的集合从一个数据类型变换为另一个数据类型(例如,将字符串变换为日期和/或数据类型之间的任何其他种类的变换)的约束。发现的数据类型“映射”到动作应用程序字段的数据类型。在实施例中,系统使用机器学习来标识发现的数据类型和动作接受的字段的数据类型之间的一个或多个映射。替代地或附加地,系统可以标识分支映射,即以下各项之间的映射:(a)在PIAR的执行期间系统遇到的两个或多个数据值实例之间变化的数据类型和(b)各自分别接受一个或多个可变数据类型的输入的两个或多个动作的字段。
在实施例中,系统基于所标识的(一个或多个)映射来生成一个或多个PIAR扩展。PIAR扩展定义了在执行当前执行的PIAR时可关于系统接收的数据(即,当接收的数据包括发现的(一个或多个)数据类型时)而采取的一个或多个动作,但当前执行的PIAR尚未关于该数据定义特定动作。该PIAR扩展在被并入PIAR中并由系统执行的情况下,通过提供当前执行的PIAR尚未提供的PIAR功能,来“扩展”当前执行的PIAR。PIAR扩展可以对应于单独的PIAR,即,能够独立于当前执行的PIAR而执行的PIAR。替代地,PIAR扩展可以对应于要被包括在当前执行的PIAR中的附加动作和/或逻辑分支。例如,用于基于从CRM应用程序接收的非结构化数据而生成约会的PIAR扩展可以对应于单独的PIAR和/或对应于已经基于来自CRM应用程序的数据生成电子邮件的当前执行的PIAR中的附加动作。
为了基于映射而生成PIAR扩展,系统可以确定特定映射是否是分支映射(操作210)。如果映射是分支映射,则系统基于该映射生成分支PIAR扩展(操作212)。如果映射不是分支映射,则系统可基于该映射生成线性PIAR扩展(操作214)。线性PIAR扩展是如下的PIAR扩展,即,不包括基于接收到的数据类型在不同动作之间进行分支的条件逻辑。
在实施例中,PIAR扩展对应于单独的PIAR,即,能够独立于当前执行的PIAR执行的PIAR。系统可以生成与基于所标识的(一个或多个)映射而生成的(一个或多个)PIAR扩展相对应的一个或多个PIAR定义。如果PIAR扩展修改了当前执行的PIAR,则系统可能生成对应的经修改的PIAR定义。替代地或附加地,系统可以为所生成的每个PIAR扩展生成PIAR扩展的描述(其不作为PIAR定义)。在实施例中,系统确定系统尚未关于其生成PIAR扩展的另一个映射是否被标识(操作216)。如果该另一映射被标识,则系统还可以基于该映射生成分支或线性PIAR扩展(操作212或操作214)。
在实施例中,系统在用户界面中将生成的(一个或多个)PIAR扩展呈现为一个或多个候选PIAR扩展(操作218)。用户界面包括用于选择候选PIAR扩展的一个或多个控件,基于用户选择,系统将把该候选PIAR扩展并入PIAR并开始执行。用户界面可以呈现关于生成的(一个或多个)PIAR扩展的任何种类的信息,诸如PIAR扩展的(一个或多个)触发器应用程序、(一个或多个)动作应用程序、用作PIAR扩展中的(一个或多个)输入和/或输出字段的(一个或多个)数据类型、来自用于发现一个或多个数据类型的内容项的数据,和/或关于生成的PIAR扩展的任何其他种类的信息、或其组合。
在实施例中,系统检测用户对候选PIAR扩展的选择(操作220)。如上所述,系统还可以检测修改所选的PIAR扩展的用户输入。响应于对经修改的或未修改的候选PIAR扩展的选择,系统执行包括PIAR扩展的PIAR(操作222),其可以是新的PIAR或对当前执行的PIAR的修改。如果系统尚未生成并入了所选PIAR扩展的PIAR定义,则系统可在执行将PIAR扩展并入的PIAR之前生成该PIAR定义。在实施例中,如上所述,系统以独立于用户的执行模式执行该PIAR。
3.2说明性示例
为了清楚起见,下面描述详细示例。下面描述的部件和/或操作应被理解为可能不适用于某些实施例的一个具体示例。因此,下面描述的部件和/或操作不应被解释为限制任何权利要求的范围。
图3图示了链接到三个插件应用程序的PIAR管理应用程序340:电子邮件应用程序302、日历应用程序316和任务管理应用程序328。在PIAR的操作期间,PIAR管理应用程序340处理来自电子邮件应用程序302的电子邮件消息304。电子邮件消息304包括日期310、物理地址312和名称314。电子邮件应用程序302不直接暴露与日期310、物理地址312或名称314相对应的字段,而是在电子邮件消息304的内容中间接暴露这些字段。PIAR管理应用程序340通过将电子邮件消息应用于机器学习模型来对电子邮件消息304执行语义分析,该机器学习模型被训练以发现非结构化数据中的数据类型。PIAR管理应用程序340在电子邮件消息304内发现日期310、物理地址312和名称314。此外,部分地基于电子邮件消息304中的语义上下文306,PIAR管理应用程序340预测日期310、物理地址312和名称314可能在逻辑上彼此相关,并且因此是数据模式308的组成部分。
此外,在此示例中,PIAR管理应用程序340向日历应用程序316发送发现请求。响应于该发现请求,PIAR管理应用程序340从日历应用程序316接收发现对象318,该发现对象318描述日历应用程序316的一个或多个动作所接受的字段的数据类型。具体地,日历应用程序316支持“创建约会”动作(未示出),该动作接受约会对象320。约会对象320是包括日期322、物理地址324和一个或多个参加者326的数据模式。
此外,在此示例中,PIAR管理应用程序340向任务管理应用程序328发送发现请求。响应于该发现请求,PIAR管理应用程序340从任务管理应用程序328接收发现对象330,该发现对象330描述任务管理应用程序328的一个或多个动作所接受的字段的数据类型。具体地,任务管理应用程序328支持接受任务对象332的“创建任务”动作(未示出)。任务对象332是包括日期334、物理地址336和受让人338的数据模式。
基于所发现的数据类型,PIAR管理应用程序340标识数据模式308与所支持的动作所接受的字段的数据类型之间的映射。具体地,在此示例中,PIAR管理应用程序340标识两个可能的映射。对于一个映射,PIAR管理应用程序340预测电子邮件应用程序302所暴露的未知数据模式308可以映射到日历应用程序316接受的约会对象320。对于另一映射,PIAR管理应用程序340预测电子邮件应用程序302所暴露的未知数据模式308可以映射到任务管理应用程序328接受的任务对象332。基于这两个映射,PIAR管理应用程序生成两个候选PIAR扩展342。在一个候选PIAR扩展334中,在电子邮件消息中检测到数据模式308的实例会触发日历应用程序316中创建约会。在另一候选PIAR扩展346中,在电子邮件消息中检测到数据模式308的实例会触发任务管理应用程序328中创建任务。PIAR管理应用程序340在用户界面(未示出)中呈现候选PIAR扩展342。如果用户选择候选PIAR扩展342中的一个,则PIAR管理应用程序340将该PIAR扩展并入到当前执行的PIAR中,PIAR管理应用程序340以独立于用户的执行模式执行该PIAR。
4基于语义分析的插件应用程序配方生成
4.1操作
图4示出了根据一个或多个实施例的用于基于语义分析的插件应用程序配方生成的示例操作集合。图4中所示的一个或多个操作可以被一起修改、重新布置或省略。因此,图4中所示的特定顺序的操作不应被解释为限制一个或多个实施例的范围。
在实施例中,除非另有指定,否则以下描述的操作可以以独立于用户的执行模式执行,即,作为在没有用户输入的情况下执行的一个或多个过程。通过减少或消除在各种操作阶段获取用户输入的需要,以独立于用户的执行模式执行操作可以提高系统的速度和/或效率。
在实施例中,系统(例如,图1的PIAR管理系统100)训练机器学习模型(操作402)。系统可以训练机器学习模型以对结构化和/或非结构化(例如,自然语言)输入执行语义分析。在实施例中,系统基于练数据集合(其标识人类语言中的词语(或其组合)与用于执行PIAR的指令之间的映射),使用监督学习来训练机器学习模型。
在实施例中,系统接收包括人类语言中的词语的数据项(操作404)。数据项可以采用多种不同的形式。数据项可以包括来自用户的自然语言输入(例如文本和/或音频输入)。替代地或附加地,数据项可以包括插件应用程序(例如,电子邮件消息、文本消息、音频文件、视频文件、文档、日历数据和/或包括人类语言中的词语的任何其他种类的数据或其组合)的输出。
在实施例中,系统对数据项执行语义分析(操作406)。为了执行语义分析,系统可以将数据项应用于机器学习模型。替代地或附加地,系统可以使用其他语义分析技术。语义分析确定与数据项中的(一个或多个)词语相关联的含义(或其预测)。
在实施例中,语义分析确定该数据项指定要被执行的期望的动作类属。例如,数据项可以指定动作类属“发送电子邮件”。系统可以确定短语“发送电子邮件”指定动作类属,因为它映射到能够发送电子邮件的插件应用程序所支持的任何数量的动作。这些支持的动作类属于相同的动作类属。作为另一个示例,数据项可以指定动作类属“提醒我”。系统可以确定短语“提醒我”是动作类属,因为它映射到能够生成警报(例如,电子邮件警报、文本警报、弹出式警报等)的插件应用程序的任意数量的动作。这些支持的动作属于相同的动作类属。语义分析可以将系统支持的动作映射到期望动作类属。该映射可以基于系统存储的关于插件应用程序的元数据,该元数据定义每个插件应用程序支持的(一个或多个)动作和/或(一个或多个)触发器。关于每个插件应用程序的元数据对应于插件应用程序的简档,以用于当前和/或未来的PIAR。
在实施例中,语义分析确定该数据项指定要被检测的期望的触发器类属。例如,数据项可以指定触发器类属“当我收到电子邮件时”。系统可以确定短语“当我收到电子邮件时”指定触发器类属,因为它映射到与任何数量的检测电子邮件何时已被接收的插件应用程序相关联的任意数量的触发条件。这些不同的触发条件属于相同的触发器类属。语义分析可以将系统支持的触发器映射到期望的触发器类属。该映射可以基于系统存储的关于插件应用程序的元数据,该元数据定义每个插件应用程序支持的(一个或多个)动作和/或(一个或多个)触发器。关于每个插件应用程序的元数据对应于插件应用程序的简档,以用于当前和/或未来的PIAR。
在实施例中,至少部分地基于语义分析的(一个或多个)结果(即,操作406),系统确定数据项是否包括用于执行PIAR的指令(操作408)。例如,数据项可以包括词语“每当我接收到来自Mary的电子邮件时,向我发送文本消息”,系统将其识别为执行PIAR的指令,其中检测到触发器(“每当我接收到来自Mary的电子邮件时”)导致动作(“向我发送文本消息”)。作为另一个示例,数据项可以包括词语“关闭我的早晨闹钟”,其包括指令,但不包括用于执行PIAR的指令。在实施例中,如果数据项不包括执行PIAR的指令,则系统继续处理该数据项,而不基于该数据项执行PIAR(操作410)。
在实施例中,如果数据项包括执行PIAR的指令,则系统确定现有PIAR是否满足该指令(操作412)。在上面的示例中,系统可能已经包括描述“接收到来自[电子邮件地址]的电子邮件”的触发器和“向[电话号码]发送文本消息”的对应动作的PIAR定义。如果现有PIAR满足该指令,则系统可以基于该指令配置现有PIAR(操作415)。继续上面的示例,系统可以将触发条件中的[电子邮件地址]替换为来自用户地址簿中Mary的电子邮件地址,并将动作中的[电话号码]替换为用户自己的电话号码。如果系统在配置现有PIAR时检测到歧义(例如,如果用户的地址簿中有两个名为Mary的联系人),则系统可能提示用户澄清歧义。
在实施例中,如果没有现有的PIAR满足该指令,则系统可以生成一个或多个新的PIAR(操作414)。系统可以生成多个PIAR作为满足该指令的候选。替代地或附加地,系统可以如上所述地基于系统标识的映射而生成一个或多个PIAR。系统可生成分支PIAR、线性PIAR或其组合。作为示例,数据项可以包括词语“当我收到来自Mary的电子邮件时提醒我”。系统可确定(例如,使用如上所述的机器学习)短语“提醒我”是有歧义的,并且可能意味着“给我发短信”、“生成应用程序通知”或“给我发电子邮件”。系统可生成对应于每个可能选项的PIAR。如果现有PIAR满足选项中的一个,则系统可配置用于该选项的现有PIAR,并针对为任何现有PIAR满足/不满足的任意(一个或多个)选项生成新的PIAR。
在实施例中,系统在用户界面中呈现一个或多个候选PIAR(即,系统标识为满足指令的现有和/或新生成的候选PIAR)(操作416)。用户界面包括用于选择候选PIAR的一个或多个控件,基于用户选择,系统将开始执行该候选PIAR。用户界面可以呈现关于(一个或多个)候选PIAR的任何种类的信息,诸如PIAR的(一个或多个)触发器应用程序、(一个或多个)动作应用程序、用于生成PIAR的数据项,和/或关于候选PIAR的任何其它种类的信息,或其组合。
在实施例中,系统检测用户对候选PIAR的选择(操作418)。如上所述,系统还可以检测修改所选PIAR的用户输入。响应于对经修改或未修改的候选PIAR的选择,系统执行所选择的PIAR(操作420)。如果系统尚未生成与所选PIAR相对应的PIAR定义,则系统可在执行PIAR之前生成PIAR定义。在实施例中,如上所述,系统以独立于用户的执行模式执行该PIAR。
4.2说明性示例
为了清楚起见,下面描述详细示例。下面描述的部件和/或操作应被理解为可能不适用于某些实施例的一个具体示例。因此,下面描述的部件和/或操作不应被解释为限制任何权利要求的范围。
图5图示了在PIAR管理应用程序(未示出)中运行的语义分析引擎504。语义分析引擎接收来自用户的自然语言输入502,其具有“每当我收到来自新潜在客户的电子邮件时,创建紧急任务以在30分钟内跟进,并有5分钟的提醒”的指令。语义分析引擎504对自然语言输入502执行语义分析。基于语义分析,系统标识满足自然语言输入502中的该指令的两个候选PIAR的506、512。两个候选PIAR506、516具有不同的触发条件508、514和不同的动作510、516,每个动作和条件具有两个部件。虽然图5仅图示了两个候选PIAR 506、512,但在实施例中,系统生成与触发器条件和动作的部件(一个或多个)的每个附加排列相对应的附加候选PIAR,以向用户提供全范围的选项。
继续上面的示例,PIAR管理应用程序在用户界面(未示出)中呈现候选PIAR的506、512。当用户选择候选PIAR的506、512中的一个用于执行时,PIAR管理应用程序继续以独立于用户的执行模式执行所选择的PIAR。
5用户辅助的插件应用程序配方执行
5.1操作
图6图示了根据一个或多个实施例的用于用户辅助的插件应用程序配方执行的示例操作集合。图6中所示的一个或多个操作可以被一起修改、重新布置或省略。因此,图6中所示的特定顺序的操作不应被解释为限制一个或多个实施例的范围。
在实施例中,除非另有指定,否则以下描述的操作可以以独立于用户的执行模式执行,即,作为在没有用户输入的情况下执行的一个或多个过程。通过减少或消除在各种操作阶段获取用户输入的需要,以独立于用户的执行模式执行操作可以提高系统的速度和/或效率。
在实施例中,系统(例如,图1的PIAR管理系统100)训练机器学习模型(操作602)。系统可训练机器学习模型以标识数据类型(例如,规范数据类型、数据模式和/或另一数据类型或其组合)。机器学习模型可以被训练来标识源自一个或多个插件应用程序的结构化和/或非结构化数据中的数据类型。在实施例中,系统基于训练数据集合(其标识结构化和/或非结构化数据与对应数据类型之间的映射),使用监督学习来训练机器学习模型。上面进一步详细地描述了用于使用机器学习和/或非机器学习技术标识数据类型的技术。
在实施例中,系统以独立于用户的执行模式执行PIAR(操作604)。具体地,系统将PIAR作为自动后台服务执行,在终止或中断PIAR的执行的条件缺失的情况下,该自动后台服务将继续永久运行而无需进一步的手动干预。
在实施例中,当以独立于用户的执行模式执行PIAR时,系统接收一个或多个插件应用程序的一个或多个字段的一个或多个数据值(即,数据流和/或离散数据项)(操作605)。系统可从触发器应用程序接收该(一个或多个)数据值。作为示例,PIAR可以被配置为从电子邮件应用程序接收数据值,并评估数据值以确定触发条件是否被满足。替代地或附加地,系统可以从动作应用程序接收该(一个或多个)数据值。在执行作为PIAR的一部分的动作时,执行该动作的插件应用程序可以生成一个或多个数据值。作为示例,作为动作,PIAR可以使用日历应用程序生成约会。系统可接收到表示该新约会的一个或多个数据值。
在实施例中,系统将为(一个或多个)插件应用程序字段所接收的(一个或多个)数据值应用于机器学习模型(操作606)。将该(一个或多个)数据值应用于机器学习模型可确定在该(一个或多个)数据值中发现的(一个或多个)一个或多个子值(例如,使用如本文所述的用于发现数据类型的技术)与插件应用程序的动作所接受的字段之间的候选映射。在一些实施例中,候选映射可受将一个或多个数据值或其子值从非结构化格式变换为规范数据类型和/或数据模式,和/或经由一个或多个预定义的转换函数集合从一种数据类型变换为另一种数据类型(例如,将字符串变换为日期和/或数据类型之间的任何其他种类的变换)的约束。通常,子值和动作接受的字段之间的映射指示该动作接受所接收到的数据的至少一部分中存在(直接或经由本文所述的数据发现过程)的数据类型的数据,作为该字段的输入。该数据类型“映射”到动作应用程序字段的数据类型。作为示例,系统可以检测电子邮件正文何时包括新约会请求,即使电子邮件正文仅包括文本数据并且不包括类型为“约会”的任何(一个或多个)数据值。系统可通过将电子邮件消息应用于被配置为执行语义分析的机器学习模型,来对电子邮件消息正文执行语义分析,以确定电子邮件消息正文包括新约会请求。在一个实施例中,发现的数据类型(
如本文所用,术语“候选映射”指示该映射是使用机器学习确定的,并且可能不正确。在实施例中,将数据应用于机器学习模型生成表示该映射正确的置信度(或表示该置信度的缺乏)的置信度度量。置信度度量可以是数字、字母、布尔值或任何其他种类的度量,对于该度量,两个或多个不同的值指示映射正确的不同置信度级别。置信度度量也可以被称为置信度分数。
在实施例中,置信度度量基于所发现的子值(一个或多个)是否与映射到插件应用程序的一个或多个字段所接受的(一个或多个)数据类型的一个或多个存储的格式(即,数据布置/配置)适配。如上所述,系统可将该(一个或多个)格式存储在插件应用程序简档中。置信度度量还可以基于数据值的多个子值是否与存储的格式适配。如果多个候选映射(即,子值和支持的动作字段格式之间的适配)被标识出,则特定映射的置信度分数可能较低。替代地或附加地,特定映射的置信度分数可以基于不同的发现的子值的位置。与位于数据值较后的子值相比,位于数据值较前的子值可能接收到更高的置信度度量,反之亦然。替代地或附加地,不同的子值可以映射到不同的字段格式,并且系统可以将不同的权重应用到不同的格式。与每种格式相关联的权重可随时间而改变,例如基于不同格式的绝对或相对频率而改变,和/或随着系统(经由如本文所述的系统用户反馈回路)学习到用户输入所指示的哪些格式最为成功和/或最为重要而改变。替代地或附加地,置信度度量可以基于围绕(一个或多个)子值的上下文数据。系统可以使用语义分析来确定子值的语义上下文,并将对应的权重应用到该子值的置信度度量。与每个上下文相关联的权重可以随时间而改变,例如基于不同上下文的绝对或相对频率而改变,和/或随着系统(经由如本文所述的系统用户反馈回路)学习到由用户输入所指示的哪些上下文最为成功和/或最为重要而改变。
在实施例中,系统确定置信度度量是否满足阈值置信度标准(操作608)。阈值置信度标准指示置信度度量的值或值范围,在该值或值范围之外,系统对映射是正确的缺乏足够的置信度。例如,当系统遇到机器学习模型尚未关于其被训练的不熟悉的数据结构时,或者如果系统确定接收到的数据包括多个候选(即,子值)以用于映射到动作应用程序接受的同一字段(例如,多个日期、电子邮件地址等),置信度度量可能无法满足阈值置信度标准。阈值置信度标准可以是适用于所有置信度度量的固定值。替代地,阈值置信度标准可以是用户可配置的,例如在用户、组或组织级别是可配置的。
在实施例中,如果置信度度量满足阈值置信度标准,则系统以独立于用户的执行模式继续执行PIAR(例如,通过使用所标识的映射执行PIAR中的下一动作)。如果置信度度量不满足阈值置信度标准,则系统可生成对用户输入的请求,以确认或拒绝候选映射。(操作610)。作为示例,PIAR被配置为在电子邮件紧急时发送文本消息。系统接收到包括句子“请立即处理”的电子邮件。系统不识别具体的词语“立即”,但以65%的置信度预测词语“处理”后面的词语指示紧急。系统在电子邮件消息和文本消息应用程序支持的动作之间生成候选映射。在此示例中,置信度度量是置信度分数并且阈值置信度条件是以独立于用户的执行模式继续执行PIAR所需的90%置信度的最小置信度分数。由于阈值条件未满足,系统生成对用户输入的请求,以确认或拒绝候选映射。
在实施例中,系统向用户发送对用户输入的请求(操作612)。接收请求的用户可以是创建了PIAR的同一用户或另一用户。系统可以将该请求发送给多个用户。请求可以采取许多不同的形式。例如,请求可以是电子邮件、文本消息、应用程序通知和/或另一形式的请求或其组合。在实施例中,该请求向用户通知该候选映射,并请求用于确认或拒绝候选映射的用户输入。该请求可以包括以下中的一个或多个:作为到动作的映射的候选的接收数据;与候选映射相关联的置信度度量(例如,置信度分数);附加映射(如果系统标识多个候选映射的话);和/或与候选映射相关联的其他信息。
在实施例中,系统确定其是否已接收到响应于该请求的用户输入(操作614)。取决于请求的形式和内容,用户输入可对应于以下中的一个或多个:确认候选映射;拒绝候选映射;突出显示和/或以其他方式选择两个或多个候选映射之中的特定映射;建议的映射,而不是被系统识别为候选映射的任何映射;和/或其他形式的输入,或其组合。
在实施例中,除了确认或拒绝候选映射的用户输入之外,系统还接收指示系统在类似情况下是否应该更频繁或更不频繁地生成请求的用户输入。系统可以被配置为基于用户输入调整其阈值置信度标准。如果用户输入指示系统在类似情况下应更频繁地生成请求,则系统可在以独立于用户的执行模式继续执行PIAR之前调整阈值置信度标准以要求甚至更高的置信度。如果用户输入指示系统应在类似情况下更频繁地生成请求,则系统可以调整阈值置信度标准以即使在置信度较低的情况下仍然以独立于用户的执行模式继续执行PIAR。
在实施例中,系统将用户输入应用于PIAR的执行(操作616),并以独立于用户的执行模式继续执行PIAR(操作604)。具体地,系统继续以用户输入中指示的方式来继续执行PIAR。基于用户输入,系统可执行由映射所指示的动作、执行由用户指定的不同动作、对于接收到的数据不采取动作,和/或执行由用户输入指示的另一动作,或其组合。
在实施例中,系统基于用户输入更新机器学习模型(操作618)。更新机器学习模型可以提高系统在未来在类似情况下生成更高置信度结果的能力,从而使系统不太可能请求用户输入。在执行PIAR的未来实例中,系统可接收类似数据并生成具有满足阈值置信度标准的对应度量的候选映射。随着时间的推移,基于用户输入,系统可逐步训练机器学习模型,并越来越不频繁地请求附加的用户输入。系统可以基于特定用户的输入,仅为该用户更新机器学习模型。替代地,系统可以为使用同一PIAR的多个用户更新机器学习模型,使得该PIAR针对这些用户中的每个用户都能执行得更好。
5.2说明性示例
为了清楚起见,下面描述详细示例。下面描述的部件和/或操作应被理解为可能不适用于某些实施例的一个具体示例。因此,下面描述的部件和/或操作不应被解释为限制任何权利要求的范围。
图7A图示了以独立于用户的执行模式执行PIAR 706的PIAR管理应用程序704。PIAR 706是分支PIAR,其中电子邮件应用程序702是触发器应用程序,并且存在两个动作应用程序:日历应用程序708和任务管理应用程序710。如果PIAR管理应用程序704标识出与来自电子邮件应用程序702的电子邮件消息中的事件相对应的数据,则它指示日历应用程序708生成新事件。如果PIAR管理应用程序704标识出电子邮件消息中的任务,则它指示任务管理应用程序710生成新任务。
在图7B中,PIAR管理应用程序704接收到具有文本“明天上午10:00处理此问题”的电子邮件消息712。PIAR管理应用程序704将电子邮件消息712应用于被配置为对电子邮件消息中的非结构化文本执行语义分析的机器学习模型714。基于电子邮件消息712,机器学习模型714生成候选映射718和对应的置信度度量716。具体地,机器学习模型714确定电子邮件消息的文本的一部分可对应于日历事件或任务。任一候选映射718都不具有足够高的置信度度量716以让PIAR管理应用程序704选择分支PIAR 706的该分支。
在图7C中,PIAR管理应用程序704向用户界面720发送请求,呈现候选映射718并请求用户输入来确认或拒绝候选映射718中的一个或多个候选映射。PIAR管理应用程序704从用户界面720接收用户响应,选择(即,确认)候选映射718中的一个。基于该用户响应,PIAR管理应用程序704更新机器学习模型714,使得用户选择的PIAR 706的分支在未来类似情况下以更高的置信度被选择。
在实施例中,在以独立于用户的执行模式恢复执行PIAR 706之后,PIAR管理应用程序704接收另一个电子邮件消息722,其具有类似文本:“在周二2:00处理此问题”。这一次,当PIAR管理应用程序704将电子邮件消息722应用于机器学习模型714时,机器学习模型724选择用户先前为较早电子邮件消息712选择过的相同动作。置信度度量724足够高以致于允许PIAR管理应用程序704遵循分支PIAR 706的该分支作为独立于用户的动作726,而不请求进一步的用户输入。
6.杂项;扩展
实施例针对一种具有一个或多个设备的系统,该一个或多个设备包括硬件处理器并且被配置为执行本文描述的和/或在以下任何权利要求中叙述的任何操作。
在实施例中,一种非暂时性计算机可读存储介质包括指令,当该指令由一个或多个硬件处理器执行时,导致执行本文描述的和/或在任何权利要求中叙述的任何操作。
可以根据一个或多个实施例使用本文描述的特征和功能的任何组合。在前述说明书中,已经参考可能随实现而改变的许多具体细节描述了实施例。因此,说明书和附图被认为是说明性的而不是限制性的。本发明范围的唯一和排他性指标,以及申请人旨在成为本发明范围的内容,是本申请所发布的权利要求集合的字面和等效范围,以这样的权利要求发布的具体形式,包括任何后续更正。
7.硬件概述
根据实施例,本文描述的技术由一个或多个专用计算设备(专门被配置为执行某功能的计算设备)实现。专用计算设备可以是硬连线以执行技术,或者可以包括被永久编程以执行技术的数字电子设备,诸如一个或多个专用集成电路(ASIC)、现场可编程门阵列(FPGA)或网络处理单元(NPU),或者可以包括被编程为根据固件、存储器、其他存储或组合中的程序指令来执行技术的一个或多个通用硬件处理器。这样的专用计算设备还可以将定制的硬连线逻辑、ASIC、FPGA或NPU与自定义的编程相结合来完成技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、网络设备或并入了硬连线和/或程序逻辑以实现技术的任何其他设备。
例如,图8是图示了可以在其上实现本发明的实施例的计算机系统800的框图。计算机系统800包括总线802或用于传送信息的其他通信机制,以及与总线802耦合以用于处理信息的硬件处理器804。硬件处理器804可以是例如通用微处理器。
计算机系统800还包括耦合到总线802的主存储器806,诸如随机存取存储器(RAM)或其他动态存储设备,以用于存储要由处理器804执行的信息和指令。主存储器806还可以被用于在要由处理器804执行的指令的执行期间存储临时变量或其他中间信息。当这样的指令被存储在处理器804可访问的非暂时性存储介质中时,将计算机系统800呈现为被自定义以执行指令中指定的操作的专用机器。
计算机系统800还包括耦合到总线802的只读存储器(ROM)808或其他静态存储设备,以用于为处理器804存储静态信息和指令。诸如磁盘或光盘的存储设备810被提供并耦合到总线802,以用于存储信息和指令。
计算机系统800可以经由总线802被耦合到显示器812,诸如液晶显示器(LCD)、等离子显示器、电子墨水显示器、阴极射线管(CRT)监控器或用于向计算机用户显示信息的任何其他种类的设备。包括字母数字键和其他键的输入设备814被耦合到总线802,用于将信息和命令选择传送到处理器804。替代地或附加地,计算机系统800可以经由光标控件816(诸如鼠标、轨迹球、轨迹板、触摸屏或用于将方向信息和命令选择传送到处理器804并用于控制显示器812上的光标移动的光标方向键)接收用户输入。此输入设备通常在两个轴(第一轴(例如,x)和第二轴(例如,y))中具有两个自由度,这允许设备指定平面中的位置。显示器812可配置为经由一个或多个压敏传感器、多点触控传感器和/或手势传感器接收用户输入。替代地或附加地,计算机系统800可以经由麦克风、摄像机和/或一些其他种类的用户输入设备(未示出)接收用户输入。
计算机系统800可以使用自定义的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑(它们与计算机系统结合使计算机系统800成为专用机器或将其编程为专用机器)来实现本文描述的技术。根据一个实施例,本文的技术由计算机系统800响应于处理器804执行包含在主存储器806中的一个或多个指令的一个或多个序列而执行。这样的指令可以从另一存储介质(诸如存储设备810)被读入主存储器806。包含在主存储器806中的指令序列的执行使处理器804执行本文描述的处理步骤。在替代实施例中,可以代替或结合软件指令使用硬连线电路。
本文使用的术语“存储介质”是指存储使机器以具体方式运行的数据和/或指令的任何非暂时性介质。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备810。易失性介质包括动态存储器,诸如主存储器806。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、可编程只读存储器(PROM)和可擦除PROM(EPROM)、FLASH-EPROM、非易失性随机存取存储器(NVRAM)、任何其他存储器芯片或盒式磁盘、内容可寻址存储器(CAM)和三态内容可寻址存储器(TCAM)。
存储介质不同于传输介质但可以与传输介质结合使用。传输介质参与在存储介质之间转移信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包括总线802的电线。传输介质还可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些。
在将一个或多个指令的一个或多个序列携带到处理器804以用于执行时可能涉及各种形式的介质。例如,指令最初可以被携带在远程计算机的磁盘或固态驱动上。远程计算机可以将指令加载到其动态内存中,并经由网络接口控制器(NIC)(诸如以太网控制器或Wi-Fi控制器)通过网络发送指令。计算机系统800本地的NIC可以从网络接收数据并将数据放置在总线802上。总线802将数据携带到主存储器806,处理器804从主存储器806检索并执行指令。主存储器806接收的指令在由处理器804执行之前或之后可以可选地被存储在存储设备810上。
计算机系统800还包括耦合到总线802的通信接口818。通信接口818提供到被连接到本地网络822的网络链路820的双向数据通信耦合。例如,通信接口818可以是集成服务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器,或提供到对应类型电话线的数据通信连接的调制解调器。作为另一个示例,通信接口818可以是提供到兼容LAN的数据通信连接的局域网(LAN)卡。也可以实现无线链路。在任何这样的实现中,通信接口818发送和接收携带表示各种类型的信息的数字数据流的电、电磁或光信号。
网络链路820通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路820可以提供通过本地网络822到主机824或到由互联网服务提供商(ISP)826操作的数据设备的连接。ISP 826继而通过现在通常被称为“互联网”828的全球分组数据通信网络提供数据通信服务。本地网络822和互联网828两者都使用携带数字数据流的电、电磁或光信号。通过各种网络的信号和网络链路820上的以及通过通信接口818的信号(这些信号将数字数据携带到计算机系统800以及从计算机系统800携带数字数据)是传输介质的示例形式。
计算机系统800可以通过网络(一个或多个)、网络链路820和通信接口818发送消息和接收数据,包括程序代码。在互联网示例中,服务器830可以通过互联网828、ISP 826、本地网络822和通信接口818发送应用程序的请求代码。
接收到的代码可以在其被接收到时由处理器804执行,和/或被存储在存储设备810或其他非易失性存储器中以用于稍后执行。
8.计算机网络和云网络
在一个或多个实施例中,计算机网络提供运行利用如本文所述的技术的软件的一组节点之间的连接。节点可以在彼此本地和/或彼此远离。节点由一组链路连接。链路的示例包括同轴电缆、非屏蔽双绞线、铜缆、光纤和虚拟链路。
节点的子集实现了计算机网络。这样的节点的示例包括交换机、路由器、防火墙和网络地址转换器(NAT)。节点的另一个子集使用计算机网络。这样的节点(也被称为“主机”)可以执行客户端进程(process)和/或服务器进程。客户端进程请求计算服务(诸如,特定应用程序的执行和/或特定数据量的存储)。服务器进程通过执行请求的服务和/或返回对应数据来响应。
计算机网络可以是物理网络,包括通过物理链路连接的物理节点。物理节点是任何数字设备。物理节点可以是特定功能的硬件设备,诸如硬件交换机、硬件路由器、硬件防火墙和硬件NAT等。附加地或替代地,物理节点可以是提供计算能力以执行任务的任何物理资源,诸如被配置为执行各种虚拟机和/或执行相应功能的应用程序的物理资源。物理链路是连接两个或多个物理节点的物理介质。链路的示例包括同轴电缆、非屏蔽双绞电缆、铜缆和光纤。
计算机网络可以是覆盖网络。覆盖网络是在另一个网络(诸如,物理网络)之上实现的逻辑网络。覆盖网络中的每个节点对应于底层网络中的相应节点。因此,覆盖网络中的每个节点都与覆盖地址(用于寻址覆盖节点)和底层地址(用于寻址实现覆盖节点的底层节点)相关联。覆盖节点可以是数字设备和/或软件进程(诸如,虚拟机、应用程序实例或线程)。连接覆盖节点的链路被实现为通过底层网络的隧道。隧道任一端的覆盖节点将它们之间的底层多跳路径视为单个逻辑链路。隧道是通过封装和解封装来执行的。
在实施例中,客户端可以在计算机网络本地和/或远离计算机网络。客户端可以通过其他计算机网络(诸如专用网络或互联网)访问计算机网络。客户端可以使用诸如超文本传输协议(HTTP)的通信协议将请求传送到计算机网络。请求通过接口(诸如客户端接口(诸如Web浏览器)、程序接口或应用程序编程接口(API))进行通信。
在实施例中,计算机网络提供客户端和网络资源之间的连通性。网络资源包括被配置为执行服务器进程的硬件和/或软件。网络资源的示例包括处理器、数据存储、虚拟机、容器和/或软件应用程序。网络资源在多个客户端之间共享。客户端彼此独立地从计算机网络请求计算服务。网络资源在按需的基础上被动态指配给请求和/或客户端。可以基于例如(a)特定客户端请求的计算服务,(b)特定租户请求的聚合计算服务,和/或(c)计算机网络请求的聚合计算服务来按比例放大或缩小被指配给每个请求和/或客户端的网络资源。这样的计算机网络可以被称为“云网络”。
在实施例中,服务提供商向一个或多个最终用户提供云网络。云网络可以实现各种服务模型,包括但不限于软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)。在SaaS中,服务提供商为最终用户提供使用在网络资源上执行的服务提供商的应用程序的能力。在PaaS中,服务提供商为最终用户提供将自定义应用程序部署到网络资源上的能力。可以使用服务提供商支持的编程语言、库、服务和工具来创建自定义应用程序。在IaaS中,服务提供商为最终用户提供由网络资源提供的供应处理(provisionprocessing)、存储、网络和其他基础计算资源的能力。任何应用程序,包括操作系统,都可以被部署在网络资源上。
在实施例中,可以通过计算机网络实现各种部署模型,包括但不限于私有云、公共云和混合云。在私有云中,网络资源被提供用于由一个或多个实体的特定组独占使用(本文使用的术语“实体”是指公司、组织、个人或其他实体)。网络资源可以位于特定实体组的场所本地和/或远离特定实体组的场所。在公共云中,云资源被提供用于彼此独立的多个实体(也被称为“租户”或“客户”)。计算机网络及其网络资源由对应于不同租户的客户端访问。这样的计算机网络可以被称为“多租户计算机网络”。若干租户可以在不同时间和/或同时使用相同的特定网络资源。网络资源可以位于租户的场所本地和/或远离租户的场所。在混合云中,计算机网络包括私有云和公共云。私有云和公共云之间的接口允许数据和应用程序的可移植性。存储在私有云上的数据和存储在公共云上的数据可以通过接口进行交换。在私有云上实现的应用程序和在公共云上实现的应用程序可能彼此具有依赖关系。可以通过接口执行从私有云处的应用程序到公共云处的应用程序的调用(反之亦然)。
在实施例中,多租户计算机网络的租户彼此独立。例如,一个租户(通过运营、租户特定的实践、员工和/或对外部世界的标识)可能与另一个租户分开。不同的租户对计算机网络可能要求不同的网络需求。网络需求的示例包括处理速度、数据存储量、安全需求、性能需求、吞吐量需求、延迟需求、弹性需求、服务质量(QoS)需求、租户隔离和/或一致性。相同计算机网络可能需要实现不同租户要求的不同网络需求。
在一个或多个实施例中,在多租户计算机网络中,实现租户隔离,以确保不同租户的应用程序和/或数据不彼此共享。可以使用各种租户隔离方法。
在实施例中,每个租户都与租户ID相关联。多租户计算机网络的每个网络资源都被标记有租户ID。仅当租户和特定网络资源与相同租户ID相关联时,租户才被允许访问特定网络资源。
在实施例中,每个租户都与租户ID相关联。由计算机网络实现的每个应用程序都被标记有租户ID。附加地或替代地,由计算机网络存储的每个数据结构和/或数据集都被标记有租户ID。仅当租户和特定应用程序、数据结构和/或数据集与相同租户ID相关联时,租户才被允许访问特定应用程序、数据结构和/或数据集。
例如,由多租户计算机网络实现的每个数据库都可以被标记有租户ID。只有与对应租户ID相关联的租户可以访问特定数据库的数据。作为另一个示例,由多租户计算机网络实现的数据库中的每个条目可以被标记有租户ID。只有与对应租户ID相关联的租户可以访问特定条目的数据。但是,数据库可由多个租户共享。
在实施例中,订阅列表指示哪些租户有权访问哪些应用程序。对于每个应用程序,存储授权访问该应用程序的租户的租户ID列表。仅当租户的租户ID被包括在对应于特定应用程序的订阅列表中时,租户才被允许访问特定应用程序。
在实施例中,对应于不同租户的网络资源(诸如数字设备、虚拟机、应用程序实例和线程)与由多租户计算机网络维护的租户特定覆盖网络隔离。作为示例,来自租户覆盖网络中任何源设备的分组可能仅被发送到相同租户覆盖网络内的其他设备。封装隧道被用于禁止从租户覆盖网络上的源设备到其他租户覆盖网络中的设备的任何传输。具体地,从源设备接收的分组被封装在外部分组内。外部分组从第一封装隧道端点(与租户覆盖网络中的源设备通信)被发送到第二封装隧道端点(与租户覆盖网络中的目的地设备通信)。第二封装隧道端点对外层分组进行解封装以获得由源设备发送的原始分组。原始分组从第二封装隧道端点被发送到相同特定覆盖网络中的目的地设备。
在前述说明书中,已经参考可能随实现而改变的许多具体细节描述了本发明的实施例。因此,说明书和附图被认为是说明性的而不是限制性的。本发明范围的唯一和排他性指标,以及申请人旨在成为本发明范围的内容,是本申请所发布的权利要求集的字面和等效范围,以这样的权利要求发布的具体形式,包括任何后续更正。

Claims (20)

1.一个或多个非暂时性计算机可读介质,其存储指令,所述指令当由一个或多个处理器执行时,引起:
通过以独立于用户的执行模式运行的插件应用程序配方PIAR管理应用程序,根据由所述PIAR管理应用程序管理的多个PIAR定义的特定PIAR定义来执行特定PIAR,其中,所述多个PIAR定义中的每个PIAR定义分别标识:
(a)触发器,所述触发器与所述PIAR管理应用程序至少部分地基于一个或多个插件应用程序提供给所述PIAR管理应用程序的数据而在持续基础上评估的条件相对应,以及
(b)在所述条件被满足时要执行的动作;
在所述特定PIAR以所述独立于用户的执行模式的执行期间,将第一插件应用程序的第一字段的第一一个或多个数据值应用于机器学习模型,以获得:
(a)在第一一个或多个数据值内发现的第一一个或多个子值与第二插件应用程序的动作所接受的第二字段之间的第一候选映射,其中第一字段的第一一个或多个数据值是与第二插件应用程序报告的第二字段的第二数据类型不同的第一数据类型,以及
(b)与第一候选映射相关联的第一置信度度量,第一置信度度量至少部分地基于第一一个或多个子值是否适配映射到第二数据类型的一个或多个存储的格式;
基于第一置信度度量不满足阈值置信度标准的第一确定:
获得确认或拒绝第一候选映射的用户输入;
将所述用户输入应用于所述特定PIAR以所述独立于用户的执行模式的执行。
2.如权利要求1所述的一个或多个介质,其中,第一置信度度量还基于在第一一个或多个数据值内发现的第二一个或多个子值是否适配映射到第二数据类型的所述一个或多个存储的格式。
3.如权利要求2所述的一个或多个介质,其中,第一置信度度量还至少部分地基于第一一个或多个子值和第二一个或多个子值在第一一个或多个数据值中的位置。
4.如权利要求2所述的一个或多个介质,其中,第一一个或多个子值和第二一个或多个子值映射到不同的格式,并且第一置信度度量还至少部分地基于与所述不同的格式相关联的存储的权重。
5.如权利要求2所述的一个或多个介质,其中,第一置信度度量还至少部分地基于围绕第一一个或多个子值和第二一个或多个子值的不同上下文,其中所述不同上下文中的一个的权重高于所述不同上下文中的另一个。
6.如权利要求1所述的一个或多个介质,其中,第一一个或多个数据值包括以下各项中的一个或多个:(a)所述PIAR管理应用程序用来评估以确定与所述特定PIAR相关联的特定触发条件是否被满足的数据,以及(b)由在检测到与所述特定PIAR相关联的所述特定触发条件之后执行的特定动作生成的数据。
7.如权利要求1所述的一个或多个介质,其还存储指令,所述指令当由一个或多个处理器执行时,引起:
基于所述用户输入,更新所述机器学习模型。
8.如权利要求7所述的一个或多个介质,其还存储指令,所述指令当由一个或多个处理器执行时,引起:
在更新所述机器学习模型之后并且在所述特定PIAR以所述独立于用户的执行模式的执行期间,将第一插件应用程序的第一字段的第二一个或多个数据值应用于所述机器学习模型,以获得:
(a)在第二一个或多个数据值内发现的第二一个或多个子值与第二插件应用程序的动作所接受的第二字段之间的第二候选映射,其中第一字段的第二一个或多个数据值是与第二插件应用程序报告的第二数据类型不同的第一数据类型,以及
(b)与第二候选映射相关联的第二置信度度量,第二置信度度量至少部分地基于第二一个或多个子值是否适配映射到第二数据类型的所述一个或多个存储的格式;
基于第二置信度度量满足所述阈值置信度标准的第二确定:
继续所述特定PIAR以所述独立于用户的执行模式的执行,而不请求用户输入来确认或拒绝第二候选映射。
9.如权利要求1所述的一个或多个介质,其中,所述机器学习模型被配置为标识非结构化数据中的一个或多个规范数据类型。
10.如权利要求9所述的一个或多个介质,其中,所述一个或多个规范数据类型包括以下各项中的一个或多个:日期;名称;电子邮件地址;货币数额;或物理地址。
11.如权利要求1所述的一个或多个介质,其中,所述机器学习模型对所述数据执行语义分析。
12.如权利要求1所述的一个或多个介质,其中,所述用户输入确认或拒绝第一候选映射。
13.如权利要求1所述的一个或多个介质,其中,所述用户输入还包括用于在与第一数据相关联的情况下更频繁或更不频繁地中断所述独立于用户的执行模式的请求。
14.如权利要求1所述的一个或多个介质,其中,获得所述用户输入包括:
生成让用户提供确认或拒绝第一候选映射的输入的请求;
向所述用户发送所述请求;
接收响应于所述请求的所述用户输入。
15.如权利要求14所述的一个或多个介质,其中,让所述用户提供确认或拒绝第一候选映射的输入的所述请求包括第一一个或多个数据值的不同子值与第二插件应用程序的动作所接受的第二字段之间的多个候选映射。
16.如权利要求15所述的一个或多个介质,其中,所述用户输入包括从所述多个候选映射中选择第一候选映射。
17.如权利要求1所述的一个或多个介质:
其中,所述特定PIAR是被配置为取决于第一一个或多个子值的类型而执行第一动作或第二动作的分支PIAR;
其中,所述用户输入在第一动作和第二动作之间进行选择。
18.如权利要求1所述的一个或多个介质,其中,第一候选映射和第一置信分数还基于将第三插件应用程序的第三字段的第二一个或多个数据值应用于所述机器学习模型。
19.一种系统,包括:
包括硬件处理器的至少一个设备;
所述系统被配置为执行包括以下各项的操作:
通过以独立于用户的执行模式运行的插件应用程序配方PIAR管理应用程序,根据由所述PIAR管理应用程序管理的多个PIAR定义的特定PIAR定义来执行特定PIAR,其中,所述多个PIAR定义中的每个PIAR定义分别标识:
(a)触发器,所述触发器与所述PIAR管理应用程序至少部分地基于一个或多个插件应用程序提供给所述PIAR管理应用程序的数据而在持续基础上评估的条件相对应,以及
(b)在所述条件被满足时要执行的动作;
在所述特定PIAR以所述独立于用户的执行模式的执行期间,将第一插件应用程序的第一字段的第一一个或多个数据值应用于机器学习模型,以获得:
(a)在第一一个或多个数据值内发现的第一一个或多个子值与第二插件应用程序的动作所接受的第二字段之间的第一候选映射,其中第一字段的第一一个或多个数据值是与第二插件应用程序报告的第二字段的第二数据类型不同的第一数据类型,以及
(b)与第一候选映射相关联的第一置信度度量,第一置信度度量至少部分地基于第一一个或多个子值是否适配映射到第二数据类型的一个或多个存储的格式;
基于第一置信度度量不满足阈值置信度标准的第一确定:
获得确认或拒绝第一候选映射的用户输入;
将所述用户输入应用于所述特定PIAR以所述独立于用户的执行模式的执行。
20.一种方法,包括:
通过以独立于用户的执行模式运行的插件应用程序配方PIAR管理应用程序,根据由所述PIAR管理应用程序管理的多个PIAR定义的特定PIAR定义来执行特定PIAR,其中,所述多个PIAR定义中的每个PIAR定义分别标识:
(a)触发器,所述触发器与所述PIAR管理应用程序至少部分地基于一个或多个插件应用程序提供给所述PIAR管理应用程序的数据而在持续基础上评估的条件相对应,以及
(b)在所述条件被满足时要执行的动作;
在所述特定PIAR以所述独立于用户的执行模式的执行期间,将第一插件应用程序的第一字段的第一一个或多个数据值应用于机器学习模型,以获得:
(a)在第一一个或多个数据值内发现的第一一个或多个子值与第二插件应用程序的动作所接受的第二字段之间的第一候选映射,其中第一字段的第一一个或多个数据值是与第二插件应用程序报告的第二字段的第二数据类型不同的第一数据类型,以及
(b)与第一候选映射相关联的第一置信度度量,第一置信度度量至少部分地基于第一一个或多个子值是否适配映射到第二数据类型的一个或多个存储的格式;
基于第一置信度度量不满足阈值置信度标准的第一确定:
获得确认或拒绝第一候选映射的用户输入;
将所述用户输入应用于所述特定PIAR以所述独立于用户的执行模式的执行。
CN202080047783.2A 2019-05-28 2020-03-27 用户辅助的插件应用程序配方执行 Active CN114144762B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/423,611 2019-05-28
US16/423,611 US11169826B2 (en) 2019-05-28 2019-05-28 User-assisted plug-in application recipe execution
PCT/US2020/025477 WO2020242576A1 (en) 2019-05-28 2020-03-27 User-assisted plug-in application recipe execution

Publications (2)

Publication Number Publication Date
CN114144762A true CN114144762A (zh) 2022-03-04
CN114144762B CN114144762B (zh) 2024-05-31

Family

ID=70416554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080047783.2A Active CN114144762B (zh) 2019-05-28 2020-03-27 用户辅助的插件应用程序配方执行

Country Status (4)

Country Link
US (1) US11169826B2 (zh)
EP (1) EP3977271A1 (zh)
CN (1) CN114144762B (zh)
WO (1) WO2020242576A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042713B1 (en) * 2018-06-28 2021-06-22 Narrative Scienc Inc. Applied artificial intelligence technology for using natural language processing to train a natural language generation system
CN113689173B (zh) * 2021-05-11 2023-11-03 鼎捷软件股份有限公司 业务逻辑表示模型的建模装置及其建模方法
US11695653B2 (en) 2021-09-09 2023-07-04 International Business Machines Corporation Application integration mapping management based upon configurable confidence level threshold

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180359199A1 (en) * 2017-06-12 2018-12-13 Microsoft Technology Licensing, Llc Automatic action responses
US20190005257A1 (en) * 2017-06-30 2019-01-03 Oracle International Corporation Restricting plug-in application recipes
US20190004879A1 (en) * 2017-06-30 2019-01-03 Oracle International Corporation Managing a plug-in application recipe via an interface

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2570974A (en) 1949-01-04 1951-10-09 Phillips Petroleum Co Dehydration of petroleum hydrocarbons
US8589955B2 (en) 2008-02-12 2013-11-19 Nuance Communications, Inc. System and method for building applications, such as customized applications for mobile devices
US8327349B2 (en) * 2008-07-11 2012-12-04 Internationanl Business Machines Corporation Matching plug-ins to users
US8533608B1 (en) 2009-06-29 2013-09-10 Generation E Consulting Run-book automation platform with actionable document
US8352303B2 (en) 2009-11-23 2013-01-08 Sap Ag Computer implemented method for integrating services in a calendar application via meeting request e-mails
US9891971B1 (en) 2010-06-30 2018-02-13 EMC IP Holding Company LLC Automating the production of runbook workflows
US10984387B2 (en) 2011-06-28 2021-04-20 Microsoft Technology Licensing, Llc Automatic task extraction and calendar entry
EP2570974B1 (en) 2011-09-13 2018-11-28 ExB Asset Management GmbH Automatic crowd sourcing for machine learning in information extraction
CN103176789B (zh) 2011-12-26 2017-08-01 腾讯科技(深圳)有限公司 一种实现开放平台功能扩展的方法及系统
FI126271B (en) 2013-02-22 2016-09-15 Upc Konsultointi Oy Techniques for Customizing Mobile Applications
CN104049986B (zh) 2013-03-14 2018-12-18 腾讯科技(深圳)有限公司 插件加载方法及装置
WO2014159943A2 (en) * 2013-03-14 2014-10-02 Bitvore Corp. Dynamically loaded plugin architecture
US20150363403A1 (en) 2014-06-16 2015-12-17 Dmitry Khalatov Contextual suggestions of communication targets
CN107209549B (zh) 2014-12-11 2020-04-17 微软技术许可有限责任公司 能够实现可动作的消息传送的虚拟助理系统
US20170193349A1 (en) 2015-12-30 2017-07-06 Microsoft Technology Licensing, Llc Categorizationing and prioritization of managing tasks
US9930218B2 (en) * 2016-04-04 2018-03-27 Adobe Systems Incorporated Content aware improvement of captured document images
US20170329466A1 (en) 2016-05-13 2017-11-16 Sap Se User interface application and digital assistant
WO2018040068A1 (zh) 2016-09-02 2018-03-08 浙江核新同花顺网络信息股份有限公司 基于知识图谱的语意分析系统及方法
US10771479B2 (en) 2016-09-26 2020-09-08 Splunk Inc. Configuring modular alert actions and reporting action performance information
US10600727B2 (en) 2016-10-16 2020-03-24 Alpha And Omega Semiconductor (Cayman) Ltd. Molded intelligent power module for motors
US10496454B2 (en) 2017-06-30 2019-12-03 Oracle International Corporation Transforming plug-in application recipe variables
US10908926B2 (en) 2017-09-09 2021-02-02 Box, Inc. Plug-in management wrappers
US11050700B2 (en) 2017-11-03 2021-06-29 Salesforce.Com, Inc. Action response selection based on communication message analysis
US11487573B2 (en) * 2018-05-08 2022-11-01 Thomson Reuters Enterprise Centre Gmbh Systems and method for automating security workflows in a distributed system using encrypted task requests
US20190392345A1 (en) * 2018-06-26 2019-12-26 Holland & Hart LLP Automatic action loading based on a data context and a machine-learned model
US11153219B2 (en) * 2018-08-20 2021-10-19 International Business Machines Corporation System for application aware rate-limiting using plug-in
US11243091B2 (en) * 2018-12-05 2022-02-08 International Business Machines Corporation Selectively generating directions based on device location
US10970188B1 (en) * 2020-02-11 2021-04-06 HoxHunt Oy System for improving cybersecurity and a method therefor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180359199A1 (en) * 2017-06-12 2018-12-13 Microsoft Technology Licensing, Llc Automatic action responses
US20190005257A1 (en) * 2017-06-30 2019-01-03 Oracle International Corporation Restricting plug-in application recipes
US20190004879A1 (en) * 2017-06-30 2019-01-03 Oracle International Corporation Managing a plug-in application recipe via an interface

Also Published As

Publication number Publication date
CN114144762B (zh) 2024-05-31
WO2020242576A1 (en) 2020-12-03
US20200379780A1 (en) 2020-12-03
EP3977271A1 (en) 2022-04-06
US11169826B2 (en) 2021-11-09

Similar Documents

Publication Publication Date Title
US11625648B2 (en) Techniques for adaptive pipelining composition for machine learning (ML)
US20240070494A1 (en) Chatbot for defining a machine learning (ml) solution
US20230267374A1 (en) Machine learning (ml) infrastructure techniques
US20200304441A1 (en) Dynamic communications routing to disparate endpoints
US11288598B2 (en) Third-party analytics service with virtual assistant interface
US11693671B2 (en) Generating plug-in application recipe extensions
US11699105B2 (en) Systems and methods for analyzing a list of items using machine learning models
CN114144762B (zh) 用户辅助的插件应用程序配方执行
EP4028874A1 (en) Techniques for adaptive and context-aware automated service composition for machine learning (ml)
US11861733B2 (en) Expense report submission interface
CN114041155A (zh) 基于语义分析的插件应用程序配方生成
JP2023538923A (ja) テキスト分類についての説明を与えるための技術
US11888792B2 (en) Bot supervision
CN117355841A (zh) 用于注释解析的数据驱动分类法
US20240289817A1 (en) Sales orchestration using iterative machine learning
US20240256761A1 (en) Business intent based communications enhancement

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