CN112703502A - 使用非结构化输入更新异构数据存储 - Google Patents
使用非结构化输入更新异构数据存储 Download PDFInfo
- Publication number
- CN112703502A CN112703502A CN201980060334.9A CN201980060334A CN112703502A CN 112703502 A CN112703502 A CN 112703502A CN 201980060334 A CN201980060334 A CN 201980060334A CN 112703502 A CN112703502 A CN 112703502A
- Authority
- CN
- China
- Prior art keywords
- entities
- entity
- identified
- template
- parent
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 150
- 230000009471 action Effects 0.000 claims abstract description 78
- 230000015654 memory Effects 0.000 claims description 24
- 230000008520 organization Effects 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 2
- 238000003058 natural language processing Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 96
- 230000000875 corresponding effect Effects 0.000 description 38
- 238000012545 processing Methods 0.000 description 31
- 239000008186 active pharmaceutical agent Substances 0.000 description 18
- 238000003860 storage Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- 230000003334 potential effect Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000003825 pressing Methods 0.000 description 5
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 4
- 238000013479 data entry Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000026676 system process Effects 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1815—Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
Abstract
使用非结构化输入来更新异构数据存储的方法包括:接收非结构化文本输入,接收用于解释非结构化文本输入的模板,使用实体分类器识别非结构化文本输入中的实体,基于模板从识别的实体中识别一个或多个潜在的父实体,接收从一个或多个潜在的父实体中对父实体的选择,基于模板和选择的父实体从识别的实体中识别一个或多个潜在的子实体,接收从一个或多个潜在的子实体中对子实体的选择,基于识别的实体和模板在非结构化文本输入中识别动作项,使用意图分类器确定动作项的意图,并基于所确定的意图、识别的实体和选择的子实体来更新数据存储。
Description
发明人:M·麦克哈德,J·鲍尔,T·A·小库克,S·哈利纳斯,R·拉拉尼,Z·拉瑞科,Q·刘,M·罗森鲍姆,K·R·斯库查,J-M·苏梅特,M·维贾亚库马
相关申请
本申请要求2018年9月18日提交的标题为“Using Unstructured Input toUpdate Heterogeneous Data Stores”的美国专利申请号16/134,956的优先权和权益,其全部内容通过引用并入。
版权声明
本专利文件的公开内容的一部分包含受版权保护的材料。版权所有者不反对任何人如专利和商标局专利文件或记录中呈现的一样复制专利文件或专利公开内容,但是保留其它所有版权。
技术领域
本公开内容总体上涉及数据库系统,并且更具体地涉及使用非结构化输入(unstructured input)更新异构数据存储(heterogeneous data store)的系统和方法。
背景技术
不应当仅由于在背景技术部分中提及某些主题而认为在背景技术部分中讨论的这些主题是现有技术。类似地,在背景技术部分中提及或与背景技术部分的主题相关联的问题不应当被认为先前在现有技术中已经认识的。
计算机和软件开发正在从客户端-服务器模型向基于网络的处理系统发展,该基于网络的处理系统提供了经由互联网或其它网络访问数据和服务。与在专用服务器硬件上托管(host)网络应用程序的传统系统相比,“云”计算模型允许应用程序被提供在网络上,作为由基础设施提供商供应的“服务”。基础设施提供商通常使用于递送用户开发的应用程序的基础硬件和其它资源抽象化,以使得用户(例如,基于云的服务的消费者)不再需要操作和支持专用服务器硬件。云计算模型通常可以在应用程序的生命周期内为用户节省大量成本,因为用户不再需要提供专用的网络基础设施、电气和温度控制、物理安全和支持专用服务器硬件的其它后勤服务。
许多用户可以采用云平台(即,用于云计算的计算平台)以使用远程服务器的共享网络存储、管理和处理数据。用户可以在云平台上开发应用程序以处理数据的存储、管理和处理。在一些情况下,云平台可以利用多租户数据库系统。用户可以使用各种用户设备(例如,台式计算机、膝上型计算机、智能电话、平板计算机或其它计算系统等)访问云平台。在一个示例中,云平台可以支持客户关系管理(CRM)解决方案。这可以包括对销售、服务、营销、社区、分析、应用程序和物联网(IoT)的支持。
多租户数据库系统根据租户特异模式和/或数据布置存储不同租户的数据的并不少见。这创建了数据库,该数据库包含多个异构的数据存储,因为该数据存储中的每个根据不同的模式和/或数据布置存储不同的信息。这给用户和开发者二者均带来了挑战,因为用户通常被约束使用围绕用户界面构建的结构化方法输入新数据和/或指定数据更改,该用户界面通常受基础数据存储的模式约束。
因此,将是有利的是:具有用户可以用以指定对数据的添加和/或改变的改进的方法和系统,并且更具体地,具有允许用户使用非结构化输入指定添加和/或改变的方法和系统。
附图说明
图1是根据一些实施方案的计算系统的简化图。
图2是根据一些实施方案的另一个计算系统的简化图。
图3是根据一些实施方案的用于支持非结构化输入的计算系统的简化图。
图4是根据一些实施方案的处理非结构化输入的方法的简化图。
图5是根据一些实施方案的处理动作项的方法的简化图。
图6是根据一些实施方案的用于解释非结构化输入的示例模板的简化图。
图7是根据一些实施方案的非结构化自然语言输入的示例的简化图。
在附图中,具有相同附图标记的元件具有相同或相似的功能。
具体实施方式
示出方面、实施方案、实现方式或应用的描述和附图不应被视为是限制性的——权利要求书限定了受保护的发明。在不脱离本说明书和权利要求书的精神和范围的情况下,可以进行各种机械、组成、结构、电气和操作改变。在一些情况下,未详细示出或描述公知的电路、结构或技术,因为它们是本领域技术人员已知的。两个或更多附图中相似的数字表示相同或相似的元件。
在本说明书中,阐述了描述与本公开内容一致的一些实施方案的具体细节。阐述了许多具体细节以便提供对实施方案的透彻理解。然而,对本领域技术人员显而易见的是,可以在没有一些或所有这些具体细节的情况下实践一些实施方案。本文公开的具体实施方式意在说明而非限制。尽管这里没有具体描述,但是本领域技术人员可以认识到其它元件在本公开内容的范围和精神内。另外,为了避免不必要的重复,除非另外特别描述或如果一个或多个特征将使得实施方案不起作用,否则与一个实施方案相关联示出和描述的一个或多个特征可以结合入其它实施方案。
已经开发了多租户的基于云的架构,以在不牺牲数据安全的情况下改善客户租户之间的协作、集成和基于社区的协作。一般而言,多租户指的是如下系统,其中单个硬件和软件平台同时支持来自公共数据存储元件(common data storage element)(也称为“多租户数据库”)的多个用户组(也称为“组织”或“租户”)。多租户设计提供了优于传统的服务器虚拟化系统的许多优势。首先,多租户平台运营商通常可以基于来自整个租户社区的集体信息对平台进行改进。此外,由于多租户环境中的所有用户均在公共处理空间内执行应用程序,因此相对容易为多租户平台内的任何用户授予或拒绝对特定数据集的访问,从而改善应用程序与由各种应用程序管理的数据之间的协作和集成。因此,多租户架构允许在多组用户之间方便且经济高效地共享相似的应用程序特征。
图1是根据一些实施方案的计算系统110的简化图。如图1所示,计算系统110包括用户系统112、网络114、数据库系统116、处理器系统117、应用平台118、网络接口120、租户数据存储器122、系统数据存储器124、程序代码126和用于执行数据库系统过程和租户特定的过程(比如运行应用程序作为应用程序托管服务的一部分)的处理空间128。在一些实施方案中,计算系统110可以不具有列出的所有组件和/或可以具有代替以上列出的那些元件或除上面列出的那些元件之外的其它元件。
在一些实施方案中,计算系统110为多个用户和/或租户提供了按需(on-demand)数据库服务。用户系统112可以是被用户用于访问数据库用户系统的任何机器或系统。在一些示例中,任何用户系统112可以是手持式计算设备、移动电话、膝上型计算机、记事本计算机、工作站、计算设备的网络等。如图1中(以及图2中更详细)所示,用户系统112可能经由网络114与按需数据库服务(即数据库系统116)进行交互。
按需数据库服务(比如可以使用数据库系统116实现的按需数据库服务)是如下服务:该服务可供拥有、维护或提供对数据库系统116访问的企业(一个或多个)外部的用户使用。如上所述,此类用户不必关心构建和/或维护数据库系统116。相反,当用户需要由数据库系统116提供的服务(例如,根据用户的需求)时,由数据库系统116提供的资源可以供用户使用。一些按需数据库服务可能将来自一个或多个租户的信息存储入公共数据库图像的表,以形成多租户数据库系统(MTS)。因此,“按需数据库服务116”和“数据库系统116”将在本文中互换地使用。术语“多租户数据库系统”可以指的是其中数据库系统的硬件和/或软件的各种元件(element)可以被一个或多个客户或租户共享的那些系统。例如,给定的应用服务器可以同时处理大量客户的请求,并且给定的数据库表可以存储数据行,比如潜在更多的客户的提要项(feed item)。数据库图像可以包括一个或多个数据库对象。关系数据库管理系统(RDBMS)和/或等效物可以执行针对数据库对象(一个或多个)的信息的存储和获取。
应用平台118可以是允许数据库系统116的应用程序运行的框架,比如硬件和/或软件基础设施,比如操作系统。在一些实施方案中,按需数据库服务116可以包括应用平台118,其使得能够创建、管理和/或执行由按需数据库服务的提供商、经由用户系统112访问按需数据库的用户和/或经由用户系统112访问按需数据库服务的第三方应用程序开发者开发的一个或多个应用。
用户系统112的用户在其相应的权限(capacity)上可能不同,并且特定用户系统112的权限可能完全由当前用户的许可(许可级别)确定。例如,在推销员正在使用特定的用户系统112与数据库系统116交互的情况下,用户系统112具有分配给该推销员的权限。然而,当管理员正在使用该用户系统112与数据库系统116交互时,该用户系统112具有分配给该管理员的权限。在具有分层角色模型的系统中,处于一个许可级别的用户可以访问较低许可级别的用户可以访问的应用程序、数据和数据库信息,但可能无法以较高许可级别的用户可访问某些应用程序、数据库信息和数据。因此,取决于用户的安全性或许可级别,不同的用户在访问和修改应用程序和数据库信息方面将具有不同的权限。
网络114是任何网络或彼此通信的设备的网络的组合。例如,网络114可以是一个或多个局域网(LAN)、一个或多个广域网(WAN)、一个或多个电话网络、一个或多个无线网络、一个或多个点对点网络、一个或多个星形网络、一个或多个令牌环(token ring)网络、一个或多个集线器网络和/或其它适当的配置中的任何一种或任意组合。当前使用的最常见的计算机网络类型是传输控制协议与互联网协议(TCP/IP)网络,比如通常称为“互联网”(Internet的首字母“I”大写)的网络中的全球互联网络,其将在本文的许多示例中使用。然而,应当理解网络114不限于此,并且也可以支持其它网络协议。
用户系统112可以使用TCP/IP与数据库系统116进行通信,并且在更高的网络级别上,可以使用其它通用的互联网协议进行通信。比如超文本传输协议(HTTP)、文件传输协议(FTP)、安德鲁文件系统(AFS)、无线应用协议(WAP)等中的一种或多种。在使用HTTP的一些示例中,用户系统112可以包括通常称为“浏览器”的HTTP客户端,用于向数据库系统116处的HTTP服务器发送HTTP消息和从其接收HTTP消息。此类HTTP服务器可能被实现为数据库系统116与网络114之间的唯一网络接口,但是也可能使用和/或替代使用其它技术。在一些实现方式中,数据库系统116与网络114之间的接口包括负载共享功能,比如循环(round-robin)HTTP请求分配器,以平衡负载并且在多个服务器上平均分配输入的HTTP请求。至少对于正在访问该服务器的用户,多个服务器中的每个可以访问MTS数据;然而,可以替代地使用其它替代配置。
在一些实施方案中,如图1中所示的数据库系统116实现了基于web的客户关系管理(CRM)系统。在一些实施方案中,数据库系统116包括应用服务器,其配置为实现和执行CRM软件应用,以及向用户系统112提供相关数据、代码、表格、网页和其它信息和从用户系统112获取相关数据、代码、表格、网页和其它信息,并且存储和获取与数据库系统相关的数据、对象和网页内容。对于多租户系统,可以将多个租户的数据存储在相同的物理数据库对象中。然而,通常布置租户数据,使得一个租户的数据在逻辑上与其他租户的数据保持分开,使得一个租户无法访问另一个租户的数据,除非此类数据被明确地共享。在一些实施方案中,数据库系统116实现不同于CRM应用程序或除CRM应用程序之外的应用程序。在一些示例中,数据库系统116可以向租户提供对包括CRM应用程序的多个托管(标准和自定义)应用程序的访问。应用平台118可以支持用户和/或第三方开发者应用程序(可以包括或不包括CRM),应用平台118管理将应用程序创建、存储入一个或多个数据库对象和/或管理在数据库系统116的处理空间中的虚拟机中执行应用程序。
图1中示出了数据库系统116的一种布置,包括网络接口120、应用平台118、租户数据123的租户数据存储器122、数据库系统116和可能的多个租户可访问的系统数据125的系统数据存储器124、用于实现数据库系统116的各种功能的程序代码126,以及用于执行MTS系统过程和租户特定过程(比如,将应用程序作为应用程序托管服务的一部分运行)的处理空间128。可以在数据库系统116上执行的附加过程包括数据库索引过程。
如图1中所示,计算系统110中的几个元件包括传统的众所周知的元件,这里仅作简要说明。例如,用户系统112中的每个用户系统112可以包括台式个人计算机、工作站、膝上型计算机、记事本计算机、PDA、蜂窝电话,或任何启用无线访问协议(WAP)的设备或能够直接或间接与互联网或其它网络连接进行接口的任何其它计算设备。用户系统112中的每个用户系统112通常运行HTTP客户端(例如,浏览程序,比如微软的互联网Explorer浏览器、Netscape的Navigator浏览器、Opera的浏览器、在手机、记事本计算机、PDA或其它无线设备等情况下启用WAP的浏览器),该HTTP客户端允许用户系统112的用户(例如,多租户数据库系统的订户)通过网络114访问、处理和/或查看数据库系统116对其可用的信息、页面和/或应用程序。用户系统112中的每个用户系统112通常还包括一个或多个用户界面设备(例如,键盘、鼠标、轨迹球、触摸板、触摸屏、笔等),以结合由数据库系统116和/或其它系统和/或服务器提供的页面、表格、应用程序和/或其它信息与浏览器在显示器(例如,监视器屏幕、液晶显示器(LCD)监视器、发光二极管(LED)监视器、有机发光二极管(OLED)监视器等)上提供的图形用户界面(GUI)进行交互。在一些示例中,用户界面设备可以用于访问数据和/或由数据库系统116托管的应用程序,以对存储的数据执行搜索,和/或允许用户与可以呈现给用户的各种GUI页面进行交互。如上所述,实施方案适合与互联网一起使用,该互联网是指网络的特定全球互联网络。然而,应该理解,可以使用其它网络代替互联网,比如内联网、外联网、虚拟专用网(VPN)、基于非TCP/IP的网络、任何LAN或WAN等。
根据一些实施方案,用户系统112中的每个用户系统112及其组件可使用比如浏览器的应用程序进行操作者配置,包括使用中央处理单元(比如Intel处理器等)运行的计算机代码。类似地,数据库系统116(以及其中存在多于一个的MTS的附加实例)及其组件可能使用包括计算机代码的应用程序进行操作者配置,以使用比如处理器系统117的中央处理单元(其可包括Intel处理器等)和/或多个处理器单元运行。计算机程序产品实施方案包括其上/中存储有指令的机器可读存储介质(媒体),该指令可用于对计算机进行编程以执行本文所述实施方案的任何过程。如本文所述,用于操作和配置数据库系统116以相互通信和/或处理网页、应用程序和/或其它数据和媒体内容的计算机代码优选地下载并存储在硬盘上,但是整个程序代码或其部分也可以存储在众所周知的任何其它易失性或非易失性存储介质或设备中,比如只读存储器(ROM)或随机存取存储器(RAM),或提供在能够存储程序代码的任何介质上,比如任何类型的旋转介质,包括软盘、光盘、数字通用磁盘(DVD)、光盘(CD)、微驱动器和磁光盘以及磁卡或光卡、纳米系统(包括分子存储集成电路(IC)),或适合存储指令和/或数据的任何类型的媒体或设备。另外,整个程序代码或其一部分可以通过传输介质(例如,通过互联网和/或众所周知的另一服务器)从软件源传输和下载,和/或使用众所周知的任何通信介质和/或协议(例如TCP/IP、HTTP、HTTPS、以太网等)通过众所周知的任何其它传统网络连接(例如外联网、虚拟专用网(VPN)、LAN等)传输。还应理解,可以以在客户端系统和/或服务器或服务器系统上可执行的任何编程语言(比如例如,C、C++、HTML、任何其它语言、JavaTM、JavaScript、ActiveX、任何其它脚本语言(例如VBScript))来实现用于实现本发明的实施方案的计算机代码,和/或可以使用众所周知的许多其它编程语言(JavaTM是Sun Microsystems,Inc.的商标)。
根据一些实施方案,数据库系统116被配置为向用户(客户端)系统112提供网页、表格、应用程序、数据和/或媒体内容,以支持作为数据库系统116的租户的用户系统112的访问。除非共享数据,否则数据库系统116提供安全机制以使每个租户的数据保持分离。如果使用多于一个的MTS,则它们可能彼此紧邻(例如,位于单个建筑物和/或校园中的服务器场中),和/或它们可能分布在彼此远离的位置(例如,位于城市A中的一个或多个服务器和/或位于城市B中的一个或多个服务器)。在一些实施方案中,每个MTS可包括本地和/或跨一个或多个地理位置分布的一个或多个逻辑和/或物理连接的服务器。另外,术语“服务器”旨在包括计算机系统,该计算机系统包括处理硬件和处理空间,以及相关联的存储系统和本领域中众所周知的数据库应用程序(例如,面向对象的数据库管理系统(OODBMS)或关系数据库管理系统(RDBMS))。还应当理解,“服务器系统”和“服务器”在本文中经常可互换使用。类似地,本文描述的数据库对象可以被实现为单个数据库、分布式数据库、分布式数据库的集合,以及具有冗余在线和/或离线备份、其它冗余等的数据库。在一些示例中,可以使用分布式数据库和/或存储网络以及相关联的处理智能来实现数据库对象。
图2是根据附加实施方案的计算系统110的简化图。如图2中所示,用户系统112中的每个用户系统112可以包括处理器系统112A、存储器系统112B、输入系统112C和输出系统112D。图2另外示出了网络114和数据库系统116。图2还示出了数据库系统116可以包括租户数据存储器122、租户数据123、系统数据存储器124、系统数据125、用户接口(UI)230、应用程序接口(API)232、PL/Salesforce.com对象查询语言(PL/SOQL)234、保存例程236、应用程序设置机制238、应用程序服务器2001-200N、系统处理空间202、租户处理空间204、租户管理处理空间210、租户存储区域212、用户存储器214和应用程序元数据216。在一些实施方案中,计算系统110可能不具有与上面列出的元件相同的元件和/或可能具有其他元件来代替上面列出的那些或除上面列出的那些以外的元件。
上面关于图1更详细地描述了用户系统112、网络114、数据库系统116、租户数据存储器122和系统数据存储器124。关于用户系统112,处理器系统112A可以是一个或多个处理器、微处理器、多核处理器、图形处理单元(GPU)、张量处理单元(TPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等的任何组合。存储系统112B可以包括一个或多个存储设备、短期和/或长期存储器的任意组合。在一些示例中,一个或多个存储器设备中的每个可以包括机器可读介质,比如软盘、柔性盘、硬盘、磁带、任何其它磁介质、CD-ROM、任何其它光学介质、打孔卡、纸带、带孔图案的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储器芯片或盒式磁带和/或处理器或计算机适合从中读取的任何其它介质。
输入系统112C可以是输入设备(比如一个或多个键盘、鼠标、轨迹球、扫描仪、相机、网络接口等)的任何组合。输出系统112D可以是输出设备(比如一个或多个监视器、打印机、到网络的接口等)的任何组合。
如图2中所示,数据库系统116可以包括被实现为一组HTTP应用服务器200、应用平台118、租户数据存储器122和/或系统数据存储器124的图1的网络接口120。还示出了系统处理空间202,包括单独的租户处理空间204和租户管理处理空间210。每个应用程序服务器200可以被配置为访问租户数据存储器122和其中的租户数据123,以及系统数据存储器124和其中的系统数据125,以服务于用户系统112的请求。在一些示例中,租户数据123可以被划分成单独的租户存储区域212,其可以是数据的物理布置和/或逻辑布置。在一些示例中,在每个租户存储区域212内,可以为每个用户分配用户存储器214和应用元数据216。在一些示例中,可以将用户最近使用的(MRU)项目的副本存储在用户存储器214中。在一些示例中,可以将整个组织(例如,租户)的MRU项目的副本存储到租户存储区域212。
UI 230提供用户接口,并且API 232提供应用程序接口给数据库系统116驻留的过程以及用户系统112处的用户和/或开发者。租户数据123和系统数据125可以存储在各种数据库中,比如一个或多个OracleTM数据库。
应用程序平台118包括应用程序设置机制238,其支持应用程序开发者对应用程序的创建和/或管理。在一些示例中,应用程序设置机制238可以通过保存例程236将元数据保存到租户数据存储器122中,以供订户作为由租户管理过程210管理的一个或多个租户处理空间204来执行。在一些示例中,可以使用PL/SOQL 234编码对此类应用程序的调用,该PL/SOQL 234提供了对API 232的编程语言样式的接口扩展。在2007年9月21日提交的题为“Method and System for Allowing Access to Developed Applications via a Multi-Tenant On-Demand Database Service”的美国专利号7,730,478中进一步详细讨论了PL/SOQL语言的一些实施方案,其通过引用合并于此。在一些示例中,可以通过一个或多个系统过程来检测对应用程序的调用,该系统过程管理订户的获取应用程序元数据216,进行调用并将该元数据作为虚拟机中的应用程序执行。
每个应用服务器200可以经由不同的网络连接可通信地耦合到数据库系统(例如,可以访问系统数据125和租户数据123)。在一些示例中,一个应用服务器2001可以经由网络114耦合,另一个应用服务器200N-1可以经由直接网络链路耦合,并且另一个应用服务器200N可以通过不同的网络连接耦合。TCP/IP包括用于在应用服务器200与数据库系统之间进行通信的典型协议。然而,对于本领域技术人员将显而易见的是,取决于所使用的网络连接,可以使用其它传输协议来优化系统。
在某些实施方案中,每个应用服务器200被配置为处理对与作为租户的任何组织相关联的任何用户的请求。由于希望能够出于任何原因随时在服务器池中添加和删除应用程序服务器,因此最好不存在与用户和/或组织对特定应用程序服务器200的服务器亲缘关系。因此,在一个实施方案中,在应用服务器200和用户系统112之间通信地耦合实现负载平衡功能的接口系统(例如,F5 Big-IP负载平衡器)以将请求分发到应用服务器200。在一些实施方案中,负载平衡器使用最小连接算法,以将用户请求路由到应用服务器200。还可以使用负载平衡算法的其它示例,比如循环轮询、观察到的响应时间等。在一些实施方案中,来自同一用户的三个连续请求可以由三个不同的应用服务器200处理,并且来自不同用户的三个请求可以由相同的应用服务器200处理。以该方式,数据库系统116是多租户,其中数据库系统116处理跨不同用户和/或组织的不同对象、数据和/或应用程序的存储和/或访问。
作为存储的示例,一个租户可以是雇用销售人员的公司,其中每个销售人员使用数据库系统116来管理他或她的销售过程。因此,用户可以维护适用于该用户的个人销售过程(例如在租户数据存储器122中)的联系人数据、潜在客户数据、客户跟进数据、绩效数据、目标进度数据等。在MTS布置的一些示例中,用户可以从许多不同的用户系统中的任何一个来管理他或她的销售工作和周期,因为可以由没有网络访问许可的用户系统112维护和/或访问用于访问、查看、修改、报告、传输、计算等的数据和/或应用程序。在一些示例中,如果销售员正在拜访客户并且该客户在其大厅中可以访问互联网,则销售员可以在等待客户到达大厅的同时获取有关该客户的重要更新。
尽管每个用户的数据可能与其他用户的数据分离,而与每个用户的雇主无关,但是一些数据可能是由作为租户的给定组织的多个用户或所有用户共享或访问的组织范围内的数据。因此,可能存在由数据库系统116管理的在租户级别分配的一些数据结构,而其它数据结构可以在用户级别管理。因为MTS可能支持包括可能的竞争对手的多个租户,所以MTS应该另外具有使数据、应用程序和/或应用程序使用分开的安全协议。另外,由于许多租户可能选择访问MTS而不是维护自己的系统,因此冗余、正常运行时间和/或备份是可以在MTS中实现的附加功能。除了用户特定数据和租户特定数据之外,数据库系统116还可以维护可由多个租户使用的系统级数据和/或其它数据。此类系统级数据可以包括在租户之间共享的行业报告、新闻、发布等。
在某些实施方案中,用户系统112(可以是客户端系统)与应用服务器200通信以从数据库系统116请求和/或更新系统级和/或租户级数据,这可涉及向租户数据存储器122和/或系统数据存储器124发送一个或多个查询。数据库系统116(例如,数据库系统116中的应用服务器200)自动生成被设计为访问和/或修改所需的信息的一个或多个结构化查询语言(SQL)语句(例如,一个或多个SQL查询)。系统数据存储器124可以生成查询计划以访问来自数据库的请求数据。
每个数据库通常可以被视为对象的集合,比如一组逻辑表,包含符合如通过模式表征的预定义类别的数据。“表”是数据对象的一种表示,并且可以在此用于简化对象和自定义对象的概念描述。应当理解,“表”和“对象”在本文中可以互换使用。每个表通常包含一个或多个数据类别,该数据类别在逻辑上排列为可见模式中的列或字段。表的每一行或记录都包含由字段定义的每个类别的数据实例。例如,CRM数据库可包括如下的表,该表用基本联系人信息(比如姓名、地址、电话号码、传真号码等)的字段描述客户。另一个表可以描述购买订单,包括用于比如客户、产品、销售价格、日期等的信息的字段。在一些多租户数据库系统中,可能提供标准实体表供所有租户使用。对于CRM数据库应用程序,此类标准实体可能包括账户、联系人、潜在客户和/或机会数据的表,每个表都包含预定义的字段。应当理解,单词“实体”在本文中也可以与“对象”和“表”互换使用。
在一些多租户数据库系统中,可以允许租户创建和存储自定义对象,和/或可以允许他们自定义标准实体或对象,例如通过为标准对象创建自定义字段,包括自定义索引字段。在2004年4月2日提交的题为“Custom Entities and Fields in a Multi-TenantDatabase System”的美国专利号7,779,039中更详细地描述了用于在多租户数据库系统中创建自定义对象以及自定义标准对象的系统和方法,其通过引用合并于此。在一些实施方案中,通过自定义模式表征的自定义实体数据行可以存储在单个多租户物理表中,该表可以每个组织包含多个逻辑表。对客户来说透明的是,他们的多个“表”实际上存储在一个大表中,或者其数据可以与其他客户的数据存储在同一表中。
在一些实施方案中,组织中的一个或多个组织可能希望访问由独立于并且不同于操作数据库系统的一方的各种供应商和/或服务提供商提供的服务或信息。此类服务提供商提供的信息和/或服务可以补充和/或补偿由数据库系统提供的服务。在数据库系统116向组织提供顾客关系管理(CRM)服务的一些示例中,其他供应商和/或服务提供商(例如,Dun&Bradstreet或Inside View)可以提供竞争情报信息。
与信息系统和/或比如数据库系统116的数据库系统一起工作时的挑战之一是典型用户不知道如何将数据分解为基础数据存储中的对象或记录并存储为对象或记录(例如,在租户数据存储器122、系统数据存储器124等内)。在一些示例中,在不同的用户、组织和/或租户使用不同的(例如,异构的)模式来存储其相应的数据的多租户系统中,这个挑战可能进一步复杂。
根据一些实施方案,解决该问题的一种解决方案是应用开发者(他们理解基础数据存储模式)开发自定义用户界面(例如,作为用户界面230的一部分),该用户界面以填补空白的方式向用户请求新的和/或更改的数据。在一些示例中,这是昂贵且低效的,因为每个自定义用户界面可能需要大量资源来开发、测试和/或部署。在一些示例中,这也可能是不灵活的,因为基础模式中的更改可导致自定义用户界面的大量重新开发成本。在一些示例中,用户受约束为以如由开发者通过自定义用户界面指定的顺序、排列和/或格式来表达新数据。
因此,具有解决这些问题中的一个或多个问题的改进的数据输入方法将是有利的。一种此类方法是数据输入系统,其允许用户以口头或书面自然语言的形式提供非结构化输入,其中用户可以自由地使用自由形式的叙述来表达所需的新数据和/或对数据的改变。为了帮助处理非结构化输入,开发者提供了如下模板,该模板可帮助数据输入系统解释如下进一步详述的非结构化输入。此外,因为模板比自定义用户界面更容易开发,所以与相应的自定义用户界面相比,针对不同的用户、组织和/或租户的不同模板的开发成本显著降低。
图3是根据一些实施方案的用于支持非结构化输入的计算系统300的简化图。如图3中所示,用户经由用户设备310与计算系统300交互。在一些示例中,用户设备310可以与智能电话和/或其它便携式计算设备一致。在一些示例中,用户设备310可以与用户系统112之一一致。在一些示例中,用户设备310可以包括用于访问由计算系统300提供的服务的一个或多个应用程序(例如,web浏览器和/或一个或多个自定义应用程序)。
如图所示,用户设备310经由网络320耦合到服务器330。在一些示例中,网络320可以包括一个或多个子网络,比如蜂窝网络、网状网络、无线网络、局域网、广域网等。在一些示例中,网络320可以与网络114一致。
服务器330包括耦合到存储器334的处理器332。服务器330的操作由处理器332控制。尽管服务器330仅示出有一个处理器332,但是应当理解,处理器332可以代表服务器330中的一个或多个中央处理单元、多核处理器、微处理器、微控制器、数字信号处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、图形处理单元(GPU)、张量处理单元(TPU)等。服务器330可以被实现为独立子系统,被添加到计算设备的板和/或被实现为虚拟机。
存储器334可以用于存储由服务器330执行的软件和/或在服务器330的操作期间使用的一种或多种数据结构。存储器334可以包括一种或多种类型的机器可读介质。机器可读介质的一些常见形式可包括软盘、柔性盘、硬盘、磁带、任何其它磁介质、CD-ROM、任何其它光学介质、打孔卡、纸带、带孔图案的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储器芯片或盒式磁带和/或处理器或计算机适于从中读取的任何其它介质。
处理器332和/或存储器334可以以任何适当的物理布置来布置。在一些实施方案中,处理器332和/或存储器334可以在相同的板上,在相同的封装(例如,系统级封装),在相同的芯片(例如,系统级芯片)等上实现。在一些实施方案中,处理器332和/或存储器334可以包括分布式、虚拟化和/或容器化的计算资源。与此类实施方案一致,处理器332和/或存储器334可以位于一个或多个数据中心和/或云计算设施中。
如图所示,存储器334包括非结构化输入服务342和认证服务344。非结构化输入服务342负责从用户设备310的用户接收非结构化输入,使用模板分析非结构化输入,并如下面进一步详细描述的,基于对非结构化输入的分析,对数据库或数据存储进行一个或多个更新。认证服务344为认证用户和/或用户设备(例如,用户设备310)提供认证支持,以防止对非结构化输入服务342和/或基础数据库或数据存储的授权访问。在一些示例中,认证服务344从用户和/或用户设备接收一个或多个证书(例如,用户名、密码、认证令牌等)以认证用户和/或用户设备。在一些示例中,认证服务344可以比如通过生成一个或多个数据库连接字符串等来促进用户和/或非结构化输入服务342对基础数据库和/或数据存储的访问。
在一些示例中,存储器334可以包括非暂态有形机器可读介质,其包含可执行代码,该可执行代码在由一个或多个处理器(例如,处理器332)运行时可使一个或多个处理器执行与非结构化输入服务342和/或认证服务344相关联的一个或多个过程,如下面进一步详细描述的。在一些示例中,可以使用硬件、软件和/或硬件和软件的组合来实现非结构化输入服务342和/或认证服务344。在一些示例中,非结构化输入服务342和/或认证服务344可以包括一个或多个API、Web服务等(例如,HTTP服务),用于向用户应用程序提供对非结构化输入服务342和/或认证服务344的服务的访问。
服务器330和由服务器330托管的服务(例如,非结构化输入服务342、认证服务344等)经由网络350耦合到多租户系统360和支持服务器370。在一些示例中,网络350可以包括一个或多个子网络,比如蜂窝网络、网状网络、无线网络、局域网、广域网等。在一些示例中,网络350可以与网络114一致。
多租户系统360包括用于向服务器330和非结构化输入服务342提供对一个或多租户数据库和/或数据存储的访问的计算设备和基础设施(例如,一个或多个处理器、一个或多个存储设备、一个或多个平台、一个或多个过程等)。在一些示例中,多租户系统360可以与如先前关于图1和/或2所描述的数据库系统116一致。
支持服务器370包括耦合到存储器374的处理器372。支持服务器370的操作由处理器372控制。尽管支持服务器370仅示出有一个处理器372,但是应该理解,处理器372可以代表支持服务器370中的一个或多个中央处理单元、多核处理器、微处理器、微控制器、数字信号处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、图形处理单元(GPU)、张量处理单元(TPU)等。支持服务器370可以被实现为独立子系统、被添加到计算设备的板和/或虚拟机。
存储器374可以被用于存储由支持服务器370执行的软件和/或在支持服务器370的操作期间使用的一种或多种数据结构。存储器374可包括一种或多种类型的机器可读介质。机器可读介质的一些常见形式可包括软盘、柔性盘、硬盘、磁带、任何其它磁介质、CD-ROM、任何其它光学介质、打孔卡、纸带、带孔图案的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储器芯片或盒式磁带和/或处理器或计算机从中读取的任何其它介质。
处理器372和/或存储器374可以以任何合适的物理布置来布置。在一些实施方案中,处理器372和/或存储器374可以在相同的板上,在相同的封装(例如,系统级封装),在相同的芯片(例如,系统级芯片)等上实现。在一些实施方案中,处理器372和/或存储器374可以包括分布式、虚拟化和/或容器化的计算资源。与此类实施方案一致,处理器372和/或存储器374可以位于一个或多个数据中心和/或云计算设施中。
如图所示,存储器374包括语音到文本服务382、实体服务384和意图服务386。语音到文本服务382接收音频文件(例如,MP3文件等),并且将一种或多种语音识别算法应用于音频文件,以生成与在音频文件中识别出的口语单词相对应的自然语言文本字符串。在一些示例中,语音到文本服务382可以利用被训练以识别音频数据中的语音的一个或多个神经网络。在一些示例中,语音到文本服务382可以利用一个或多个通常可用的语音识别库和/或API。
实体服务384接收自然语言文本字符串(例如,作为语音到文本服务382的输出),并解析自然语言文本字符串中的单词和/或短语以识别一个或多个实体,确定每个实体在自然语言文本字符串中的位置,确定每个实体的类型,每个实体的值,和/或确定与实体服务384认为其已经认识到对应实体的程度和/或对应实体的类型相对应的置信度。在一些示例中,实体服务384能够识别与组织(例如,公司)、人员、货币金额、百分比、日期、时间、位置和/或选择列表类型相对应的实体。在一些示例中,选择列表类型可以对应于枚举、对象和/或实体的一组状态等。在一些示例中,实体服务384可以利用一个或多个神经网络分类器(例如,层次神经网络分类器)来确定每个识别的实体的类型、值和/或置信度。在一些示例中,实体服务384可以基于正则表达式和/或其它文本解析模式利用一个或多个实体识别模型来识别实体、它们的类型、它们的值以及它们的置信度。在一些示例中,实体服务384利用包括神经网络结构和实体识别模型的混合结构。实体服务384的实现方式的示例可以在标题为“Systems and Methods for Named Entity Recognition”的律师案卷号A4125US2/70689.41US01的同时提交的美国专利申请中找到,其通过引用合并于此。
意图服务386接收自然语言文本字符串(例如,作为语音到文本服务382的输出),并解析自然语言文本字符串中的单词和/或短语,以确定自然语言文本字符串的所需意图和/或对此确定的置信度。在一些示例中,意图可以从与数据库和/或数据存储的所需数据改变相关联的意图类别中选择。在一些示例中,意图类别可以包括以下一项或多项:在数据库表中插入条目(例如,记录),更新数据库表中的条目(例如,记录)的一个或多个字段等。在一些示例中,意图服务386可以利用一个或多个神经网络分类器来确定意图和/或所确定的意图的置信度。意图服务386的实现方式的示例可以在题为“Determining Intent fromUnstructured Input to Update Heterogeneous Data Stores”的律师案卷号A4125US3/70689.40US01的同时提交的美国专利申请中找到,其通过引用合并于此。
在一些示例中,存储器374可以包括非暂态有形机器可读介质,其包括可执行代码,该可执行代码在由一个或多个处理器(例如,处理器372)运行时,可以使一个或多个处理器执行与语音到文本服务382、实体服务384和/或意图服务386相关联的一个或多个过程,如下面进一步详细描述的。在一些示例中,可以使用硬件、软件和/或硬件和软件的组合来实现语音到文本服务382、实体服务384和/或意图服务386。在一些示例中,语音到文本服务382、实体服务384和/或意图服务386可以包括用于向用户应用程序和/或其它服务(例如,非结构化输入服务342)提供对语音服务到文本服务382、实体服务384和/或意图服务386的访问的一个或多个API、Web服务等(例如HTTP服务)。
如上所述,并且在此进一步强调,图3仅是示例,其不应不适当地限制权利要求的范围。本领域普通技术人员将认识到许多变化、替代和修改。根据一些实施方案,计算系统300的其它配置和布置是可能的。在一些示例中,服务器330和/或支持服务器370可以是多租户系统360的一部分。在一些示例中,服务器330和/或支持服务器370中托管的服务中的一个或多个可以托管在单独的服务器中。在一些示例中,网络320和网络350可以是相同的网络。在一些示例中,网络350可以包括两个或更多单独的网络。
图4是根据一些实施方案的处理非结构化输入的方法400的简化图,并且图5是根据一些实施方案的处理动作项的方法500的简化图。方法400的过程405-455和/或方法500的过程500-580中的一个或多个可以至少部分地以存储在非暂态有形机器可读介质上的可执行代码的形式来实现,该可执行代码在由一个或多个处理器运行时,可使一个或多个处理器执行过程405-455和/或505-580中的一个或多个。在一些实施方案中,方法400和/或500可以用作如下的服务和/或服务的组合:用于接收包括自然语言的非结构化音频输入,根据模板分析非结构化音频输入中的自然语言,并指导用户识别作为自然语言主题的数据库记录,并准备并执行对识别的数据库记录的一项或多项更改。在一些示例中,方法400和/或500的过程中的至少一些过程可由一个或多个服务来执行,比如非结构化输入服务342、语音到文本服务382、实体服务384和/或意图服务386。
根据一些实施方案,结合图6和图7的示例来描述方法400和500。图6是根据一些实施方案的用于解释非结构化输入的示例模板600的简化图,并且图7是根据一些实施方案的非结构化自然语言输入700的示例的简化图。并且尽管相对于图6和图7的示例描述了方法400和500,但是应当理解,模板600的其它布置和/或语法是可能的,并且其它非结构化自然语言输入可以是方法400和500的主题。
在过程405处,接收模板。在一些示例中,模板可以由理解数据库或数据存储(例如,由多租户系统360管理的数据库)的基础组织和模式以及数据条目和/或用户的修改需求的开发者预先准备。在一些示例中,可以基于来自用户(例如,用户设备310的用户)的可使用模板列表中的选择来接收模板。在一些示例中,用户可以通过按下按钮,选择链接等来从如在用户设备310上的用户界面中显示的列表中选择模板。在一些示例中,可以将选择的模板作为API调用、远程过程调用、HTTP发布等的一部分来接收。
在一些示例中,接收到的模板可以与图6的模板600一致。如图6中所示,模板600示出模板中识别的信息类型,比如与父实体和子实体相关联的数据库表,可以在数据库表上执行的动作的类型和详细信息等。更详细地,模板600的条目610将模板600的名称识别为“汇报”。在一些示例中,汇报模板600对应于用于分析销售电话之后的非结构化自然语言输入的模板。模板的其它示例可以包括用于分析用于输入新联系人的非结构化自然语言输入,描述新潜在客户等的模板。在一些示例中,条目610中的名称是在显示给用户的可用模板列表中显示的名称。
条目620识别将被搜索以识别与根据模板600分析的非结构化自然语言输入相关联的父记录(parent record)的一个或多个表。在图6的示例中,条目620识别父记录可在“账户”表中找到,该表可用于存储组织和/或人员。可以与父记录相关联的表的其它示例可以对应于联系人、公司等。
条目630识别将被搜索以识别与父记录相关并且与根据模板600分析的非结构化自然语言输入相关联的子记录(child record)的一个或多个表。在图6的示例中,条目630识别在“机会”表中找到子记录,该表可以对应于非结构化自然语言输入中提到的联系人和/或人员。可以与子记录相关联的表的其它示例可以对应于联系人、公司、事件等。
条目640识别与可基于非结构化自然语言的信息执行的数据库更改的类型(例如,新记录插入、记录更新等)相对应的一个或多个动作或动作项输入。在图6的示例中,条目640识别可以执行与“事件创建”、“机会更新”和“任务创建”相关联的动作。关键字“创建”和“更新”分别指示数据库操作的类型是记录插入和记录更新。“事件”、“机会”和“任务”识别将作为插入或更新操作主题的相应表的名称。因此,条目640识别可以将记录插入事件和任务表,并且可以在机会表中执行更新。
条目650识别一个或多个过滤和/或排序指令,其可用于限制和/或组织子记录的匹配过程,如下面进一步详细描述的。在一些示例中,条目650可以包括SQL代码。在图6的示例中,条目650指示“StageName”为“Closed”的子记录应当省略,并且搜索结果应按“Name”字段按字母顺序排序。
条目662-668提供了关于在条目640中识别的可以采取的动作的更多细节。条目662-668中的每个条目识别特定的动作以及与该动作相关联的参数和/或数据。在一些示例中,每个条目662-668对应于签名,该签名识别记录的类型/表以及一种或多种数据类型以及它们是数据库更改的主题的对应字段。在一些示例中,当签名中的每个签名唯一时,可以使用模板来唯一地识别数据库更改,如下面进一步详细描述的。在一些示例中,当两个或更多签名不是唯一时,可能需要附加的用户输入来处理动作,如下面进一步详细描述的。更详细地,条目662将机会表中的子记录的更新识别为动作,在该机会表中,货币信息用于更新金额字段。类似地,条目664和666识别进一步的操作,以更新机会表中的子记录,在该机会表中,相应地,日期信息用于更新CloseDate字段,而选择列表信息用于更新StageName字段。在一些示例中,选择列表信息可以对应于对于StageName字段可能的枚举值的已知列表,比如在机会表的模式中识别的。条目668将使用指定联系人字段的值的人员信息和指定FollowupDate字段的值的日期信息的任务表中的记录的创建识别为动作。
条目670-690识别与可以与模板600相关联的可选动作相对应的特性和/或特征的示例。在图6的示例中,模板600的条目670和680允许分别在任务和事件表上进行插入操作,并且条目690指示可以将数据库更改发布(例如,发送通知)给订阅了此类数据库更改的其他用户、组织和/或模板。
再次参考图4,在过程410处,接收非结构化音频输入。在一些示例中,非结构化音频输入可以由比如用户设备310的用户设备的麦克风捕获。在一些示例中,非结构化音频输入可以根据标准音频编码(比如MP3文件等)被编码为音频文件。在一些示例中,非结构化音频输入可以另外包括时间索引的列表,该时间索引的列表与用户可以用来注释非结构化音频输入的用户界面的附加用户交互相对应。在一些示例中,附加用户交互可以包括按钮按下等。在一些示例中,注释可以对应于指示动作项等的开始的标记,以帮助解析非结构化音频输入。在一些示例中,可以接收非结构化音频输入作为API调用、远程过程调用、HTTP发布等的一部分。
在过程415处,将在过程410期间捕获的非结构化音频输入转换为自然语言文本。在一些示例中,可以借助语音到文本服务(比如语音到文本服务382)来执行过程415。在一些示例中,该转换可包括使用一个或多个神经网络和/或API对非结构化音频输入执行语音识别,以识别音频中捕获的自然语言。在一些示例中,转换可以进一步包括识别特殊关键单词或短语,并将其转换为文本中的注释和/或分隔符。在一些示例中,短语“动作项”可以用特殊的分隔符代替,该特殊的分隔符指示要处理的动作项的开始,如下面进一步详细描述的。在一些示例中,在过程410期间接收的时间索引列表也可以用于将对应的注释和/或分隔符插入自然语言文本中。在一些示例中,可以进一步解析自然语言文本以添加适当的空白(例如回车、换行等)以分隔句子、音频中指示的停顿和/或静音期等。在一些示例中,过程415可以在过程410期间接收到非结构化音频输入之后自动开始和/或与捕获非结构化音频输入同时发生,使得可以在用户讲话时向用户显示自然语言文本。
在一些示例中,自然语言文本可以对应于图7的自然语言文本700。如图7中所示,自然语言文本700示出可以对应于与汇报模板600有关的非结构化输入的自然语言文本的种类的示例。为了便于讨论,关于自然语言文本700中的每个句子描述了自然语言文本700,其在每个句子之后用空白行显示。然而,应当理解,不同的格式和/或分组是可能的。此外,在不失一般性的情况下,关于每个句子描述自然语言文本700的处理;然而,也可以使用比如短语、段落、话语等的其它分组。
句子710、720、730和760对应于描述性文本,该描述性文本被分析以帮助识别与经由对非结构化输入的进一步分析而识别出的数据库更改相关联的父记录和子记录,如在下面进一步详细描述。
句子740、750和770对应于在每个动作项句子开始由“*”分隔符指出的非结构化输入中识别的动作项。在一些示例中,“*”分隔符可以基于识别的关键字或短语和/或时间索引注释的列表,对应于在过程415期间添加的分隔符。动作项句子740是带有日期信息“7月1日”的动作项,动作项句子750包括带有货币信息“$250k”的动作项,并且动作项句子770包括带有人员信息“Chris”和日期信息“两周”二者的动作项。在一些示例中,指示句子740、750和770中的每一个句子的开始和结束的索引(例如,字符和/或单词索引)也可以被指出以供将来处理。
再次参考图4,在过程420处,识别在过程415期间创建的自然语言文本中的实体。在一些示例中,可以借助于一个或多个实体分类器和/或比如实体服务384的实体识别服务来执行过程420。在一些示例中,实体识别包括分析单词和短语以识别在自然语言文本中讨论的实体、每个实体的对应类型、每个实体的对应值、每个实体和/或实体类型的识别中的对应置信度,以及识别自然语言文本中与每个实体相关联的文本的位置的对应索引和/或索引范围。在一些示例中,实体的类型可以对应于组织(例如,公司)、人员、货币金额、百分比、日期、时间、位置和/或选择列表类型。在一些示例中,选择列表类型可以对应于枚举、对象和/或实体的一组状态等。在一些示例中,实体识别可以使用上下文信息(例如,周围的文本)来确定识别中的置信度。在自然语言文本700的句子710的示例中,可以向Acme提供比Chez Cuisine更高的组织置信度,因为Acme是用“of”引入的,而Chez Cuisine是用“at”引入的。在一些示例中,可以响应于用户按下用户界面中的分析按钮、链接等来触发过程420。在一些示例中,可以将分析请求接收为API调用、远程过程调用、HTTP发布等的一部分。在一些示例中,实体识别的结果可以被保存以用于方法400和/或500的其它过程中。
在一些示例中,货币金额、百分比、日期和/或时间的识别可以识别一个或多个特殊字符(例如,美元符号、欧元符号、冒号、百分比符号、斜线等)、特殊字母(例如,“k”代表1000)等。在一些示例中,日期的识别可以使用一个或多个规则来解释比如“今天”、“两周”、“一个小时”、“中午”等的相对信息和/或不完整的信息(比如“7月1日”指的是当年),除非当前日期在当年7月1日之后。在一些示例中,实体识别可以进一步包括以标准格式确定实体的值,比如基于Unix时期转换日期,基于UTC时间的时间等。在一些示例中,可以基于识别的实体的置信度、其索引、其类型和/或这些特性的任何组合来对识别的实体进行排序。
在自然语言文本700的示例中,实体识别可以识别与句子710和720中的“Acme”、句子730中的“Acme Corp”、句子710中的“Chez Cuisine”以及句子760中的“ABC”相对应的组织;与句子710中的“Chris Quintana”和句子770中的“Chris”相对应的人员;句子750中的“$250k”的货币金额;与句子710中的“今天”、句子740中的“7月1日”以及句子770中的“两周”对应的日期;与句子710中的“Chez Cuisine”和句子720中的“global”对应的位置。
在过程425处,基于模板识别自然语言文本中的一个或多个潜在的父实体。使用包括在模板中的父信息,比如条目620中识别的一个或多个表,对与用户、用户的组织和/或用户的租户相关联的一个或多个数据库和/或数据存储执行一个或多个搜索。在一些示例中,可以仅对置信度值高于可配置阈值的实体执行搜索。在一些示例中,可以用比如多租户系统360提供的搜索API的搜索API来执行搜索。在一些示例中,该搜索可以考虑变体拼写、单词变体和/或本领域中已知的其它模糊因子。在一些示例中,当在模板中指定的一个或多个表中找不到正确类型的实体的匹配记录时,可以从潜在的父实体列表中省略该实体。
在模板600和自然语言文本700的示例中,过程425可以将句子710和720中的Acme、句子730中的Acme Corp、句子710中的Chez Cuisine和句子760中的ABC中的一个或多个识别为潜在的父实体,因为它们中的每一个在过程420期间被识别为组织类型实体,并且条目620的账户表与组织类型实体相关联。在一些示例中,对账户表的搜索将识别与潜在的父实体匹配和/或部分匹配的记录,比如“Acme Corp”、“Acme,Inc.”、“Acme Products,Ltd.”等。
在过程430处,向用户显示在过程425期间识别的潜在的父实体。在一些示例中,响应于用户分析过程410期间接收到的非结构化音频输入的初始请求,潜在的父实体可以被传递回用户设备(例如,用户设备310)。在一些示例中,潜在的父实体可以采用对应的按钮、链接等在应用程序、浏览器等中显示,以允许用户选择与非结构化输入相关联的正确的父实体(以及因此正确的父记录)。在一些示例中,可以基于在过程420期间确定的它们的对应置信度、从过程425的搜索得到的相关因子、在过程420期间确定的在自然语言文本内的其对应索引,和/或这些值的组合来对潜在的父实体进行排序,以便以有组织的方式呈现潜在的父实体。
在过程435处,接收对父实体的选择。在一些示例中,可以响应于用户按下按钮,激活与选择的父实体相关联的链接等来接收对父实体的选择(以及因此对应的父记录)。在一些示例中,可以作为API调用、远程过程调用、HTTP发布等的一部分来接收对父实体的选择。
在过程440处,基于模板和在过程435期间选择的父实体,识别自然语言文本中的一个或多个潜在的子实体。使用模板中包括的子信息,比如条目630中识别的一个或多个表,对与用户、用户的组织和/或用户的租户相关联的一个或多个数据库和/或数据存储执行一个或多个搜索。在一些示例中,可以仅对置信度值高于可配置阈值的实体执行搜索。搜索限于与在过程435期间选择的父实体/记录相关联的一个或多个表中的记录,使得与其它父记录相关联的子实体也不包括在潜在的子实体中。在一些示例中,可以用比如由多租户系统360提供的搜索API的搜索API来执行搜索。在一些示例中,该搜索可以考虑变体拼写、单词变体和/或本领域中已知的其它模糊因子。在一些示例中,当在模板中指定的一个或多个表中找不到正确类型的实体的匹配记录时,可以从潜在的子实体列表中省略该实体。在一些示例中,可以使用一个或多个过滤器和/或排序标准来进一步限制在潜在的子实体中包括的子实体。
在模板600和自然语言文本700的示例中,过程440可以将句子710中的ChrisQuintana和句子770中的Chris中的一个或多个识别为潜在的子实体,因为它们中的每一个在过程420期间被识别为人员类型实体,并且条目630的机会表与人员类型实体相关联。在一些示例中,机会表的搜索将识别匹配和/或部分匹配比如“Chris Quintana”、“ChrisJones”、“David Christian”等的潜在的子实体的记录。另外,条目650可用于限制识别的潜在的子实体的数量,并控制潜在的子实体的排序方式。例如,根据条目650,将从结果中忽略其StageName字段的值为“Closed”的子记录,并且将按名称字段的字母顺序对结果进行排序,比如“David Christian”、“Chris Jones”和“Chris Quintana”的顺序。
在过程445期间,将在过程440期间识别的潜在的子实体显示给用户。在一些示例中,响应于用户分析过程410期间接收到的非结构化音频输入的初始请求,可以将潜在的父实体传递回用户设备(例如,用户设备310)。在一些示例中,潜在的子实体可以用对应的按钮、链接等在应用程序、浏览器等中显示,以允许用户选择与非结构化输入相关联的正确子实体(以及因此正确的子记录)。在一些示例中,可以根据包括在模板中的排序信息(例如,条目650)和/或可替代地基于在过程420期间确定的它们的对应置信度、从过程425搜索的相关因子、在过程420期间确定的自然语言文本内的它们的对应索引和/或当排序信息未包括在模板中时这些值的组合进行排序。
在过程450处,接收对子实体的选择。在一些示例中,可以响应于用户按下按钮,激活与选择的子实体相关联的链接等来接收对子实体的选择(以及因此对应的子记录)。在一些示例中,可以将子实体的选择作为API调用、远程过程调用、HTTP发布等的一部分来接收。
在过程455处,处理来自过程415的自然语言文本中的每个动作项。在一些示例中,可以通过迭代自然语言文本中的动作项并依次使用方法500来处理每个动作项来处理动作项中的每个动作项,如下面进一步详细描述的。在一些示例中,动作项中的每个动作项可以由其对应的动作项分隔符在过程415期间插入自然语言文本中来识别。在自然语言文本700的示例中,三个动作项分别对应于句子740、750和760在处理455期间被处理。
现在参考图5,在过程505处,提取与动作项相对应的自然语言文本。在一些示例中,指示动作项的开始和结束的索引(例如,如在过程415期间确定的)用于从形成完整非结构化输入的其余自然语言文本中提取与动作项相对应的自然语言。在一些示例中,提取可以包括子串操作、从非结构化输入中的单词序列中提取单词等中的一个或多个。
在过程510处,确定动作项的意图。在一些示例中,可以借助意图分类器和/或意图服务(比如意图服务386)来执行过程510。在一些示例中,意图识别包括分析单词和短语以识别用户在动作项的自然语言文本中预期的数据库和/或数据存储更改的类型,以及可选地意图分类的置信度。在一些示例中,意图可以从与数据库和/或数据存储的所需数据更改相关联的意图类别中选择。在一些示例中,意图类别可以包括以下一项或多项:在数据库表中插入条目(例如,记录),更新数据库表中的条目(例如,记录)的一个或多个字段等。
在过程515处,识别动作项的自然语言文本中的实体。在一些示例中,先前保存的过程420的实体识别结果被用于识别每个实体、实体的类型、实体的值以及索引中位于与动作项的自然语言文本相对应的每个实体的标识中的置信度。在一些示例中,可以使用比如实体服务384的一个或多个实体识别服务来识别每个实体、实体的类型以及识别中的置信度。
在过程520处,基于模板来匹配动作项的实体和意图。将在过程510期间确定的动作项的意图与模板所允许的动作项(例如,数据库更改)进行比较。例如,其意图被确定为记录更新的动作项可以仅与包括记录更新的动作项匹配,而其意图被确定为记录创建的动作项可以仅与包括记录创建的动作项匹配。另外,在过程515期间在动作项中识别的实体的类型与模板中指定的动作项的签名所包括的类型匹配。因此,每个动作项通过实体的意图和类型与模板中的一个或多个动作项签名进行匹配。在一些示例中,其中动作项内的实体比对应签名中指定的实体多(例如,签名包括日期和时间,并且动作项的自然语言文本包括日期、时间和人员实体),动作项可以与该签名相匹配。在一些示例中,当实体的意图和类型匹配多个签名时,可以选择具有最大强度的匹配和/或可以指出每个匹配以供用户进一步输入。在一些示例中,最大强度可以通过使用比如最大值、乘法和/或其它三角范数函数的聚合函数,将意图的置信度和实体识别的置信度水平相结合来确定。
在模板600和自然语言文本700的示例中,句子740可与条目664的签名匹配,因为意图是更新机会记录(例如,子记录),并且自然语言文本包括类型为日期的实体“7月1日”;句子750可以与条目662的签名匹配,因为意图是更新机会记录,并且自然语言文本包括类型为货币金额的实体“$250k”;并且句子770可以与条目668的签名匹配,因为意图是创建任务记录,并且自然语言文本包括类型为人员的实体“Chris”以及类型为日期的实体“两周”。
在过程525处,将要执行的潜在动作显示给用户。在一些示例中,潜在动作可以被传递回到用户设备(例如,用户设备310)。在一些示例中,潜在动作可以用对应的按钮、链接等在应用程序、浏览器等中显示,以允许用户确认和/或拒绝该潜在动作是正确的动作。在一些示例中,潜在动作可以可选地用对应的自然语言文本显示,以帮助用户进行确认过程。
在过程530处,接收到对潜在动作的确认。在一些示例中,可以响应于用户按下按钮,激活链接等来接收对潜在动作的确认,以指示确认。在一些示例中,潜在动作的确认可以作为API调用、远程过程调用、HTTP发布等的一部分来接收。在一些示例中,当用户不确认潜在动作时,方法500可以返回到过程520以进行更多匹配,或者可以在不执行动作项并且没有发生任何数据库更改的情况下中止。
在过程535处,基于确认的动作生成数据库查询。在一些示例中,数据库查询可以是SQL查询。在一些示例中,与记录的创建相关联的动作项可以生成“INSERT”查询,而与记录的更新相关联的动作项可以生成“UPDATE”查询。在一些示例中,当动作项是记录的更新时,在过程515期间,用与从自然语言文本识别的实体相关联的新数据值来更新对应的子记录。在一些示例中,当动作项是记录创建时,将该记录添加到该动作项的匹配签名中识别的表中,并分别与由过程435和450选择的父记录和子记录相关联。
在模板600和自然语言文本700的示例中,句子740将导致数据库查询以更新子机会记录,以将CloseDate字段设定为7月1日;句子750将导致数据库查询以更新子机会记录,以将金额字段设定为$250,000;并且句子760将导致数据库查询将记录插入到任务表中,其中联系人字段设定为Chris,FollowupDate字段设定为未来两周的日期,并且新记录与分别在过程435和450期间选择的父记录和子记录相关联。
在过程540处,使用在过程535期间确定的数据库查询来更改数据库。在一些示例中,可以使用一个或多个API、远程过程调用等将数据库查询提供给数据库系统(例如,多租户系统360)。在一些示例中,可以通过包括比如可以由认证服务344提供的先前确定的连接字符串和/或认证证书来确保适当的数据访问。
再次参考图4,在过程455完成之后,可以取决于附加的非结构化输入的性质和内容,使用相同的模板或不同的模板,重复方法400以处理附加的非结构化音频输入。
如上所述,并且在此进一步强调,图4和图5仅是示例,其不应过度地限制权利要求的范围。本领域普通技术人员将认识到许多变化、替代和修改。根据一些实施方案,方法400和/或500可以包括附加和/或变体过程。在一些示例中,过程410和415可以被替代过程替换,其中用户键入和/或以其它方式在用户设备310上输入文本,比如使用文本编辑器等。
在一些示例中,当在过程520期间发生与多个签名的匹配时,过程525和530可被修改以显示(潜在地或迭代地)对应的潜在动作的列表,并且潜在动作的确认包括正确的潜在动作的选择。在一些示例中,可以根据聚合函数的结果对潜在动作进行排序,并且可以可选地显示聚合函数的结果。
在一些示例中,方法400可以包括过程415之后的附加过程,其中向用户显示自然语言文本(带有或不带有分隔符),使得用户可以编辑文本以纠正拼写错误和/或语音识别过程引入的其它错误。
在一些示例中,方法400可以包括附加过程,其中非结构化音频输入和/或文本存储在子记录中,比如文件对象、二进制大对象(BLOB)等。
在一些示例中,方法400和/或500可以包括附加过程,以发布对已经订阅了此类更改并且由模板允许的用户进行的数据库更改(例如,使用条目690)。在一些示例中,发布可以包括发送一个或多个电子邮件消息、社交媒体消息等。
计算设备的一些示例,比如用户系统112、数据库系统116、用户设备310、服务器330、多租户系统360和/或支持服务器370,可以包括非暂态的有形机器可读介质,该介质包括可执行代码,该可执行代码在由一个或多个处理器(例如,处理器系统112A、处理器系统117、处理器332和/或处理器372)运行时,可以使一个或多个处理器执行方法400和/或500的过程。可以包括方法400和/或500的过程的机器可读介质的一些常见形式是例如软盘、柔性盘、硬盘、磁带、任何其它磁性介质、CD-ROM、任何其它光学介质、打孔卡、纸带、带孔图案的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其它存储器芯片或盒式磁带,和/或处理器或计算机适于从中读取的任何其它介质。
尽管已经示出和描述了说明性实施方案,但是在前述公开中可以想到各种各样的修改、改变和替换,并且在一些情况下,可以采用实施方案的一些特征而无需对应地使用其它特征。本领域普通技术人员将认识到许多变化、替代和修改。因此,本申请的范围应仅由所附权利要求书来限制,并且以与本文所公开的实施方案的范围相一致的方式广泛地解释权利要求书是适当的。
Claims (20)
1.一种用于自然语言处理的方法,所述方法包括:
由服务器的一个或多个处理器接收非结构化文本输入;
由所述一个或多个处理器接收用于解释所述非结构化文本输入的模板;
使用实体分类器,识别所述非结构化文本输入中的实体;
由所述一个或多个处理器,基于所述模板,从识别的实体中识别一个或多个潜在的父实体;
由所述一个或多个处理器接收来自所述一个或多个潜在的父实体的对父实体的选择;
由所述一个或多个处理器,基于所述模板和选择的父实体,从所述识别的实体中识别一个或多个潜在的子实体;
由所述一个或多个处理器接收来自所述一个或多个潜在的子实体的对子实体的选择;
由所述一个或多个处理器,基于所述识别的实体和所述模板,识别所述非结构化文本输入中的动作项;
使用意图分类器,确定所述动作项的意图;和
基于确定的意图、所述识别的实体和所述选择的子实体,更新数据存储。
2.根据权利要求1所述的方法,其中更新所述数据存储进一步基于所述选择的父实体。
3.根据权利要求1或2所述的方法,其中识别所述实体包括识别所述实体中的每个实体的类型、所述实体中的每个实体的值和所述识别中的置信度。
4.根据权利要求3所述的方法,其中所述实体中的每个实体的类型选自由组织、人员、日期、时间、百分比、货币值和选择列表类型组成的组。
5.根据权利要求1-4中任一项所述的方法,其中基于所述确定的意图、所述识别的实体和所述选择的子实体而更新所述数据存储包括:
将在所述动作项中识别的一个或多个实体的确定的意图和类型与所述模板中的动作项签名进行匹配;和
基于在所述动作项中识别的所述一个或多个实体的签名和值生成数据库查询。
6.根据权利要求5所述的方法,其中通过在所述动作项中识别的对应实体的类型,在所述模板中识别字段,所述字段来自所述数据存储中的记录以包括在所述数据库查询中。
7.根据权利要求1-6中任一项所述的方法,其中:
识别所述一个或多个潜在的父实体包括:在所述数据存储中的一个或多个父表的记录中搜索与所述识别的实体中的一个或多个匹配的值,所述识别的实体中的一个或多个的类型与所述一个或多个父表的类型匹配;和
在所述模板中识别所述一个或多个父表。
8.根据权利要求1-7中任一项所述的方法,其中:
识别所述一个或多个潜在的子实体包括:在所述数据存储中的一个或多个子表的记录中搜索与所述识别的实体中的一个或多个匹配的值,所述识别的实体中的一个或多个的类型与所述一个或多个子表的类型匹配;
在所述模板中识别所述一个或多个子表;和
所述记录与对应于所述选择的父实体的记录相关联。
9.根据权利要求8所述的方法,其中识别所述一个或多个潜在的子实体进一步包括如下一项或多项:
基于所述模板中的过滤器,过滤所述记录;或
基于由所述模板指定的排序,对所述一个或多个潜在的子实体排序。
10.根据权利要求1-9中任一项所述的方法,进一步包括基于所述更新,将发布对所述数据存储的更改。
11.根据权利要求1-10中任一项所述的方法,其中:
所述非结构化文本输入被接收为音频输入;和
所述方法进一步包括对所述音频输入执行语音识别。
12.一种非暂态机器可读介质,其包括可执行代码,所述可执行代码当由与计算设备相关联的一个或多个处理器执行时适于引起所述一个或多个处理器执行包括如下内容的方法:
接收非结构化文本输入;
接收用于解释所述非结构化文本输入的模板;
使用实体分类器,识别所述非结构化文本输入中的实体;
基于所述模板,从识别的实体中识别一个或多个潜在的父实体;
接收来自所述一个或多个潜在的父实体的对父实体的选择;
基于所述模板和所述选择的父实体,从所述识别的实体中识别一个或多个潜在的子实体;
接收来自所述一个或多个潜在的子实体的对子实体的选择;
基于所述识别的实体和所述模板,在所述非结构化文本输入中识别动作项;
使用意图分类器,确定所述动作项的意图;和
基于确定的意图、所述识别的实体和所述选择的子实体,更新数据存储。
13.根据权利要求12所述的非暂态机器可读介质,其中所述实体中的每个实体的类型选自由组织、人员、日期、时间、百分比、货币值和选择列表类型组成的组。
14.根据权利要求12或13所述的非暂态机器可读介质,其中基于所述确定的意图、所述识别的实体和所述选择的子实体而更新所述数据存储包括:
将在所述动作项中识别的一个或多个实体的确定的意图和类型与所述模板中的动作项签名进行匹配;和
基于在所述动作项中识别的所述一个或多个实体的签名和值生成数据库查询。
15.根据权利要求14所述的非暂态机器可读介质,其中通过在所述动作项中识别的对应实体的类型,在所述模板中识别字段,所述字段来自所述数据存储中的记录以包括在所述数据库查询中。
16.根据权利要求12-15中任一项所述的非暂态机器可读介质,其中:
识别所述一个或多个潜在的父实体包括:在所述数据存储中的一个或多个父表的记录中搜索与所述识别的实体中的一个或多个匹配的值,所述识别的实体中的一个或多个的类型与所述一个或多个父表的类型匹配;和
在所述模板中识别所述一个或多个父表。
17.根据权利要求12-16中任一项所述的非暂态机器可读介质,其中:
识别所述一个或多个潜在的子实体包括:在所述数据存储中的一个或多个子表的记录中搜索与所述识别的实体中的一个或多个匹配的值,所述识别的实体中的一个或多个的类型与所述一个或多个子表的类型匹配;
在所述模板中识别所述一个或多个子表;和
所述记录与对应于所述选择的父实体的记录相关联。
18.一种计算设备,包括:
存储器;和
一个或多个处理器,其耦合到所述存储器;
其中所述一个或多个处理器被配置为:
接收非结构化文本输入;
接收用于解释所述非结构化文本输入的模板;
使用实体分类器,识别所述非结构化文本输入中的实体;
基于所述模板,从识别的实体中识别一个或多个潜在的父实体;
接收来自所述一个或多个潜在的父实体的对父实体的选择;
基于所述模板和选择的父实体,从所述识别的实体中识别一个或多个潜在的子实体;
接收来自所述一个或多个潜在的子实体的对子实体的选择;
基于所述识别的实体和所述模板,在所述非结构化文本输入中识别动作项;
使用意图分类器,确定所述动作项的意图;和
基于确定的意图、所述识别的实体和所述选择的子实体,更新数据存储。
19.根据权利要求18所述的计算设备,其中为了基于所述确定的意图、所述识别的实体和所述选择的子实体而更新所述数据存储,所述一个或多个处理器被配置为:
将在所述动作项中识别的一个或多个实体的确定的意图和类型与所述模板中的动作项签名进行匹配;和
基于在所述动作项中识别的所述一个或多个实体的签名和值,生成数据库查询。
20.根据权利要求18或19所述的计算设备,其中:
为了识别所述一个或多个潜在的父实体,所述一个或多个处理器被配置为:在所述数据存储中的一个或多个父表的记录中搜索与所述识别的实体中的一个或多个匹配的值,所述识别的实体中的一个或多个的类型与所述一个或多个父表的类型匹配;并且
在所述模板中识别所述一个或多个父表;
为了识别所述一个或多个潜在的子实体,所述一个或多个处理器被配置为:在所述数据存储中的一个或多个子表的记录中搜索与所述识别的实体中的一个或多个匹配的值,所述识别的实体中的一个或多个的类型与所述一个或多个子表的类型匹配;
在所述模板中识别所述一个或多个子表;并且
所述记录与对应于所述选择的父实体的记录相关联。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/134,956 US10970486B2 (en) | 2018-09-18 | 2018-09-18 | Using unstructured input to update heterogeneous data stores |
US16/134,956 | 2018-09-18 | ||
PCT/US2019/049812 WO2020060770A1 (en) | 2018-09-18 | 2019-09-05 | Using unstructured input to update heterogeneous data stores |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112703502A true CN112703502A (zh) | 2021-04-23 |
Family
ID=68051903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980060334.9A Pending CN112703502A (zh) | 2018-09-18 | 2019-09-05 | 使用非结构化输入更新异构数据存储 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10970486B2 (zh) |
EP (1) | EP3814977A1 (zh) |
JP (1) | JP7069401B2 (zh) |
CN (1) | CN112703502A (zh) |
WO (1) | WO2020060770A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114897478A (zh) * | 2022-06-06 | 2022-08-12 | 壹沓科技(上海)有限公司 | 一种数据处理方法、装置、设备和存储介质 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817650B2 (en) | 2017-05-19 | 2020-10-27 | Salesforce.Com, Inc. | Natural language processing using context specific word vectors |
US11048684B2 (en) | 2018-01-16 | 2021-06-29 | Salesforce.Com, Inc. | Lazy tracking of user system web cache |
US10970486B2 (en) * | 2018-09-18 | 2021-04-06 | Salesforce.Com, Inc. | Using unstructured input to update heterogeneous data stores |
US10963652B2 (en) | 2018-12-11 | 2021-03-30 | Salesforce.Com, Inc. | Structured text translation |
US11822897B2 (en) | 2018-12-11 | 2023-11-21 | Salesforce.Com, Inc. | Systems and methods for structured text translation with tag alignment |
US11003867B2 (en) | 2019-03-04 | 2021-05-11 | Salesforce.Com, Inc. | Cross-lingual regularization for multilingual generalization |
US11544463B2 (en) * | 2019-05-09 | 2023-01-03 | Intel Corporation | Time asynchronous spoken intent detection |
US11275906B2 (en) * | 2019-07-17 | 2022-03-15 | Avigilon Corporation | Natural language text conversion and method therefor |
US11481636B2 (en) | 2019-11-18 | 2022-10-25 | Salesforce.Com, Inc. | Systems and methods for out-of-distribution classification |
US11922303B2 (en) | 2019-11-18 | 2024-03-05 | Salesforce, Inc. | Systems and methods for distilled BERT-based training model for text classification |
US11487999B2 (en) | 2019-12-09 | 2022-11-01 | Salesforce.Com, Inc. | Spatial-temporal reasoning through pretrained language models for video-grounded dialogues |
US11640505B2 (en) | 2019-12-09 | 2023-05-02 | Salesforce.Com, Inc. | Systems and methods for explicit memory tracker with coarse-to-fine reasoning in conversational machine reading |
US11256754B2 (en) | 2019-12-09 | 2022-02-22 | Salesforce.Com, Inc. | Systems and methods for generating natural language processing training samples with inflectional perturbations |
US11416688B2 (en) | 2019-12-09 | 2022-08-16 | Salesforce.Com, Inc. | Learning dialogue state tracking with limited labeled data |
US11573957B2 (en) | 2019-12-09 | 2023-02-07 | Salesforce.Com, Inc. | Natural language processing engine for translating questions into executable database queries |
US11669745B2 (en) | 2020-01-13 | 2023-06-06 | Salesforce.Com, Inc. | Proposal learning for semi-supervised object detection |
US11562147B2 (en) | 2020-01-23 | 2023-01-24 | Salesforce.Com, Inc. | Unified vision and dialogue transformer with BERT |
US20210249105A1 (en) | 2020-02-06 | 2021-08-12 | Salesforce.Com, Inc. | Systems and methods for language modeling of protein engineering |
US11263476B2 (en) | 2020-03-19 | 2022-03-01 | Salesforce.Com, Inc. | Unsupervised representation learning with contrastive prototypes |
US11328731B2 (en) | 2020-04-08 | 2022-05-10 | Salesforce.Com, Inc. | Phone-based sub-word units for end-to-end speech recognition |
US11669699B2 (en) | 2020-05-31 | 2023-06-06 | Saleforce.com, inc. | Systems and methods for composed variational natural language generation |
US11720559B2 (en) | 2020-06-02 | 2023-08-08 | Salesforce.Com, Inc. | Bridging textual and tabular data for cross domain text-to-query language semantic parsing with a pre-trained transformer language encoder and anchor text |
US11625436B2 (en) | 2020-08-14 | 2023-04-11 | Salesforce.Com, Inc. | Systems and methods for query autocompletion |
US11934952B2 (en) | 2020-08-21 | 2024-03-19 | Salesforce, Inc. | Systems and methods for natural language processing using joint energy-based models |
US11934781B2 (en) | 2020-08-28 | 2024-03-19 | Salesforce, Inc. | Systems and methods for controllable text summarization |
US11829442B2 (en) | 2020-11-16 | 2023-11-28 | Salesforce.Com, Inc. | Methods and systems for efficient batch active learning of a deep neural network |
CN113220824B (zh) * | 2020-11-25 | 2023-01-17 | 科大讯飞股份有限公司 | 数据检索方法、装置、设备及存储介质 |
US11880659B2 (en) | 2021-01-29 | 2024-01-23 | Salesforce, Inc. | Hierarchical natural language understanding systems |
US11516307B1 (en) * | 2021-08-09 | 2022-11-29 | Servicenow, Inc. | Support for multi-type users in a single-type computing system |
US11734027B2 (en) * | 2021-09-29 | 2023-08-22 | Atlassian Pty Ltd. | Data storage and retrieval system for subdividing unstructured platform-agnostic user input into platform-specific data objects and data entities |
US11354505B1 (en) * | 2021-11-11 | 2022-06-07 | Vivun Inc. | Natural language text processing for automated product gap clustering and display |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301120A1 (en) * | 2007-06-04 | 2008-12-04 | Precipia Systems Inc. | Method, apparatus and computer program for managing the processing of extracted data |
US20110119314A1 (en) * | 2009-11-18 | 2011-05-19 | Oracle International Corporation | Template based entity transformation |
US20150006501A1 (en) * | 2013-06-26 | 2015-01-01 | Google Inc. | Discovering entity actions for an entity graph |
US20170235796A1 (en) * | 2016-02-16 | 2017-08-17 | Taleris Global Llp | Interrelation of Multiple Data Streams |
CN107408156A (zh) * | 2015-03-09 | 2017-11-28 | 皇家飞利浦有限公司 | 用于从临床文档进行语义搜索和提取相关概念的系统和方法 |
US20180060302A1 (en) * | 2016-08-24 | 2018-03-01 | Microsoft Technology Licensing, Llc | Characteristic-pattern analysis of text |
Family Cites Families (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2225060A1 (en) | 1997-04-09 | 1998-10-09 | Peter Suilun Fong | Interactive talking dolls |
JP2002108915A (ja) | 2000-09-28 | 2002-04-12 | Toshiba Corp | 自然言語対話システム及び自然言語処理方法 |
US7068940B1 (en) | 2002-01-24 | 2006-06-27 | At&T Corp. | System and method for monitoring and controlling light propagation in an optical transmission system |
US7779039B2 (en) | 2004-04-02 | 2010-08-17 | Salesforce.Com, Inc. | Custom entities and fields in a multi-tenant database system |
US7730478B2 (en) | 2006-10-04 | 2010-06-01 | Salesforce.Com, Inc. | Method and system for allowing access to developed applications via a multi-tenant on-demand database service |
US20080235199A1 (en) * | 2007-03-19 | 2008-09-25 | Yunyao Li | Natural language query interface, systems, and methods for a database |
WO2011160090A1 (en) * | 2010-06-17 | 2011-12-22 | Coral Networks, Inc. | System and method for a computer based forms languace |
US9461876B2 (en) * | 2012-08-29 | 2016-10-04 | Loci | System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction |
US9442778B2 (en) | 2012-10-01 | 2016-09-13 | Salesforce.Com, Inc. | Method and system for secured inter-application communication in mobile devices |
US9881076B2 (en) | 2013-07-22 | 2018-01-30 | Salesforce.Com, Inc. | Facilitating management of user queries and dynamic filtration of responses based on group filters in an on-demand services environment |
US10146597B2 (en) | 2013-11-14 | 2018-12-04 | Salesforce.Com, Inc. | Delegating handling of computing events of a mobile device application |
US10354264B2 (en) * | 2014-03-24 | 2019-07-16 | Salesforce.Com, Inc. | Contact recommendations based on purchase history |
US9984067B2 (en) * | 2014-04-18 | 2018-05-29 | Thomas A. Visel | Automated comprehension of natural language via constraint-based processing |
US10341279B2 (en) | 2014-10-09 | 2019-07-02 | Salesforce.Com, Inc. | Action links |
US20160140355A1 (en) | 2014-11-19 | 2016-05-19 | Salesforce.Com, Inc. | User trust scores based on registration features |
US10353905B2 (en) * | 2015-04-24 | 2019-07-16 | Salesforce.Com, Inc. | Identifying entities in semi-structured content |
US10324926B2 (en) | 2015-05-15 | 2019-06-18 | Microsoft Technology Licensing, Llc | System and method for extracting and sharing application-related user data |
US11113598B2 (en) * | 2015-06-01 | 2021-09-07 | Salesforce.Com, Inc. | Dynamic memory network |
US20160350653A1 (en) * | 2015-06-01 | 2016-12-01 | Salesforce.Com, Inc. | Dynamic Memory Network |
US20170032280A1 (en) | 2015-07-27 | 2017-02-02 | Salesforce.Com, Inc. | Engagement estimator |
US20170140240A1 (en) | 2015-07-27 | 2017-05-18 | Salesforce.Com, Inc. | Neural network combined image and text evaluator and classifier |
EP3582151A1 (en) * | 2015-08-15 | 2019-12-18 | Salesforce.com, Inc. | Three-dimensional (3d) convolution with 3d batch normalization |
USD784397S1 (en) | 2015-08-24 | 2017-04-18 | Salesforce.Com, Inc. | Display screen or portion thereof with animated graphical user interface |
US20170060919A1 (en) * | 2015-08-31 | 2017-03-02 | Salesforce.Com, Inc. | Transforming columns from source files to target files |
US10437440B2 (en) | 2015-09-04 | 2019-10-08 | Salesforce.Com, Inc. | Analytic data export tool |
USD776682S1 (en) | 2015-09-04 | 2017-01-17 | Salesforce.Com, Inc. | Display screen or portion thereof with animated graphical user interface |
USD809556S1 (en) | 2015-09-04 | 2018-02-06 | Salesforce.Com, Inc. | Display screen or portion thereof with animated graphical user interface |
US20170097742A1 (en) | 2015-10-01 | 2017-04-06 | Salesforce.Com, Inc. | Generating dashboards using a mobile computing device |
US10304444B2 (en) * | 2016-03-23 | 2019-05-28 | Amazon Technologies, Inc. | Fine-grained natural language understanding |
US10614393B2 (en) | 2016-04-29 | 2020-04-07 | Salesforce.Com, Inc. | Associating job responsibilities with job titles |
RU2635257C1 (ru) * | 2016-07-28 | 2017-11-09 | Общество с ограниченной ответственностью "Аби Продакшн" | Сентиментный анализ на уровне аспектов и создание отчетов с использованием методов машинного обучения |
US10565493B2 (en) | 2016-09-22 | 2020-02-18 | Salesforce.Com, Inc. | Pointer sentinel mixture architecture |
EP3516566A1 (en) * | 2016-09-22 | 2019-07-31 | nference, inc. | Systems, methods, and computer readable media for visualization of semantic information and inference of temporal signals indicating salient associations between life science entities |
US10469584B2 (en) * | 2016-09-30 | 2019-11-05 | Salesforce.Com, Inc. | Techniques and architectures for managing disparate heterogeneous cloud-based resources |
US11042796B2 (en) | 2016-11-03 | 2021-06-22 | Salesforce.Com, Inc. | Training a joint many-task neural network model using successive regularization |
US11080595B2 (en) | 2016-11-04 | 2021-08-03 | Salesforce.Com, Inc. | Quasi-recurrent neural network based encoder-decoder model |
US10963782B2 (en) | 2016-11-04 | 2021-03-30 | Salesforce.Com, Inc. | Dynamic coattention network for question answering |
US10558750B2 (en) | 2016-11-18 | 2020-02-11 | Salesforce.Com, Inc. | Spatial attention model for image captioning |
US10146581B2 (en) | 2017-01-13 | 2018-12-04 | Salesforce.Com, Inc. | Dynamically configuring a process based on environmental characteristics monitored by a mobile device |
US10719555B2 (en) | 2017-02-07 | 2020-07-21 | Salesforce.Com, Inc. | System and method in a database system for sharing a data item with an entity in another tenant domain |
US11250311B2 (en) * | 2017-03-15 | 2022-02-15 | Salesforce.Com, Inc. | Deep neural network-based decision network |
US10474709B2 (en) | 2017-04-14 | 2019-11-12 | Salesforce.Com, Inc. | Deep reinforced model for abstractive summarization |
US10565318B2 (en) | 2017-04-14 | 2020-02-18 | Salesforce.Com, Inc. | Neural machine translation with latent tree attention |
US10754831B2 (en) | 2017-04-25 | 2020-08-25 | Salesforce.Com, Inc. | Generating a hierarchical data structure |
US10831783B2 (en) | 2017-04-25 | 2020-11-10 | Salesforce.Com, Inc. | Updating a hierarchical data structure |
US10747761B2 (en) | 2017-05-18 | 2020-08-18 | Salesforce.Com, Inc. | Neural network based translation of natural language queries to database queries |
US11386327B2 (en) | 2017-05-18 | 2022-07-12 | Salesforce.Com, Inc. | Block-diagonal hessian-free optimization for recurrent and convolutional neural networks |
US20180336453A1 (en) | 2017-05-19 | 2018-11-22 | Salesforce.Com, Inc. | Domain specific language for generation of recurrent neural network architectures |
US10817650B2 (en) | 2017-05-19 | 2020-10-27 | Salesforce.Com, Inc. | Natural language processing using context specific word vectors |
US11475064B2 (en) | 2017-06-08 | 2022-10-18 | Salesforce.Com, Inc. | System and method in a database system for creating a field service work order |
US10839161B2 (en) * | 2017-06-15 | 2020-11-17 | Oracle International Corporation | Tree kernel learning for text classification into classes of intent |
US20190130896A1 (en) | 2017-10-26 | 2019-05-02 | Salesforce.Com, Inc. | Regularization Techniques for End-To-End Speech Recognition |
US10573295B2 (en) | 2017-10-27 | 2020-02-25 | Salesforce.Com, Inc. | End-to-end speech recognition with policy learning |
US10592767B2 (en) | 2017-10-27 | 2020-03-17 | Salesforce.Com, Inc. | Interpretable counting in visual question answering |
US11604956B2 (en) | 2017-10-27 | 2023-03-14 | Salesforce.Com, Inc. | Sequence-to-sequence prediction using a neural network model |
US11928600B2 (en) | 2017-10-27 | 2024-03-12 | Salesforce, Inc. | Sequence-to-sequence prediction using a neural network model |
US11170287B2 (en) | 2017-10-27 | 2021-11-09 | Salesforce.Com, Inc. | Generating dual sequence inferences using a neural network model |
US11562287B2 (en) | 2017-10-27 | 2023-01-24 | Salesforce.Com, Inc. | Hierarchical and interpretable skill acquisition in multi-task reinforcement learning |
US10346721B2 (en) | 2017-11-01 | 2019-07-09 | Salesforce.Com, Inc. | Training a neural network using augmented training datasets |
US11663517B2 (en) * | 2017-11-03 | 2023-05-30 | Salesforce, Inc. | Automatic machine learning model generation |
US10824608B2 (en) | 2017-11-10 | 2020-11-03 | Salesforce.Com, Inc. | Feature generation and storage in a multi-tenant environment |
US10542270B2 (en) | 2017-11-15 | 2020-01-21 | Salesforce.Com, Inc. | Dense video captioning |
US11276002B2 (en) | 2017-12-20 | 2022-03-15 | Salesforce.Com, Inc. | Hybrid training of deep networks |
US11048684B2 (en) | 2018-01-16 | 2021-06-29 | Salesforce.Com, Inc. | Lazy tracking of user system web cache |
US20190228363A1 (en) | 2018-01-22 | 2019-07-25 | Salesforce.Com, Inc. | Systems and methods for monitoring and mitigating job-related stress for agents using a computer system in a customer service computer network |
US10650337B2 (en) | 2018-01-29 | 2020-05-12 | Salesforce.Com, Inc. | Technical field service inventory management |
US10776581B2 (en) | 2018-02-09 | 2020-09-15 | Salesforce.Com, Inc. | Multitask learning as question answering |
US11227218B2 (en) | 2018-02-22 | 2022-01-18 | Salesforce.Com, Inc. | Question answering from minimal context over documents |
US10929607B2 (en) | 2018-02-22 | 2021-02-23 | Salesforce.Com, Inc. | Dialogue state tracking using a global-local encoder |
US11301419B2 (en) | 2018-03-02 | 2022-04-12 | Salesforce.Com, Inc. | Data retention handling for data object stores |
US10970486B2 (en) * | 2018-09-18 | 2021-04-06 | Salesforce.Com, Inc. | Using unstructured input to update heterogeneous data stores |
-
2018
- 2018-09-18 US US16/134,956 patent/US10970486B2/en active Active
-
2019
- 2019-09-05 CN CN201980060334.9A patent/CN112703502A/zh active Pending
- 2019-09-05 JP JP2021505380A patent/JP7069401B2/ja active Active
- 2019-09-05 EP EP19773594.7A patent/EP3814977A1/en active Pending
- 2019-09-05 WO PCT/US2019/049812 patent/WO2020060770A1/en unknown
-
2021
- 2021-03-24 US US17/211,162 patent/US11544465B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301120A1 (en) * | 2007-06-04 | 2008-12-04 | Precipia Systems Inc. | Method, apparatus and computer program for managing the processing of extracted data |
US20110119314A1 (en) * | 2009-11-18 | 2011-05-19 | Oracle International Corporation | Template based entity transformation |
US20150006501A1 (en) * | 2013-06-26 | 2015-01-01 | Google Inc. | Discovering entity actions for an entity graph |
CN107408156A (zh) * | 2015-03-09 | 2017-11-28 | 皇家飞利浦有限公司 | 用于从临床文档进行语义搜索和提取相关概念的系统和方法 |
US20170235796A1 (en) * | 2016-02-16 | 2017-08-17 | Taleris Global Llp | Interrelation of Multiple Data Streams |
US20180060302A1 (en) * | 2016-08-24 | 2018-03-01 | Microsoft Technology Licensing, Llc | Characteristic-pattern analysis of text |
Non-Patent Citations (1)
Title |
---|
祝恩国 等: "用电信息采集系统非结构化数据管理设计", 电力系统及其自动化学报, vol. 28, no. 10, pages 123 - 128 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114897478A (zh) * | 2022-06-06 | 2022-08-12 | 壹沓科技(上海)有限公司 | 一种数据处理方法、装置、设备和存储介质 |
CN114897478B (zh) * | 2022-06-06 | 2023-12-22 | 壹沓科技(上海)有限公司 | 一种数据处理方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2021533461A (ja) | 2021-12-02 |
US10970486B2 (en) | 2021-04-06 |
WO2020060770A1 (en) | 2020-03-26 |
US20200089757A1 (en) | 2020-03-19 |
JP7069401B2 (ja) | 2022-05-17 |
EP3814977A1 (en) | 2021-05-05 |
US11544465B2 (en) | 2023-01-03 |
US20210209305A1 (en) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11544465B2 (en) | Using unstructured input to update heterogeneous data stores | |
US11436481B2 (en) | Systems and methods for named entity recognition | |
US11200248B2 (en) | Techniques for facilitating the joining of datasets | |
US11704321B2 (en) | Techniques for relationship discovery between datasets | |
US11403457B2 (en) | Processing referral objects to add to annotated corpora of a machine learning engine | |
US10997260B2 (en) | Extensible moderation framework | |
US9614933B2 (en) | Method and system of cloud-computing based content management and collaboration platform with content blocks | |
US11720589B2 (en) | System and method for transformation of unstructured document tables into structured relational data tables | |
US10331441B2 (en) | Source code mapping through context specific key word indexes and fingerprinting | |
US11347733B2 (en) | System and method for transforming unstructured numerical information into a structured format | |
US10417210B2 (en) | Multi-token matching scheme | |
US9268822B2 (en) | System and method for determining organizational hierarchy from business card data | |
US11656889B2 (en) | Method and system for automatically invoking functionality while using a primary application without user action | |
US10909103B2 (en) | Techniques and architectures for data field lifecycle management | |
US20220019941A1 (en) | Using a client-side machine learning model dynamically in a mobile enterprise application on a mobile device | |
US10852926B2 (en) | Filter of data presentations via user-generated links | |
US9619458B2 (en) | System and method for phrase matching with arbitrary text | |
US9659059B2 (en) | Matching large sets of words | |
Veenhof | Improving Acquia search and the Apache Solr module |
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 | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Shuo Power Co. Address before: California, USA Applicant before: SALESFORCE.COM, Inc. |
|
CB02 | Change of applicant information |