JP7069401B2 - 非構造化入力を用いた異種データストアの更新 - Google Patents

非構造化入力を用いた異種データストアの更新 Download PDF

Info

Publication number
JP7069401B2
JP7069401B2 JP2021505380A JP2021505380A JP7069401B2 JP 7069401 B2 JP7069401 B2 JP 7069401B2 JP 2021505380 A JP2021505380 A JP 2021505380A JP 2021505380 A JP2021505380 A JP 2021505380A JP 7069401 B2 JP7069401 B2 JP 7069401B2
Authority
JP
Japan
Prior art keywords
entity
entities
template
child
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.)
Active
Application number
JP2021505380A
Other languages
English (en)
Other versions
JP2021533461A (ja
Inventor
マカド,マイケル
ボール,ジョン
アーチー クック,ジェイアール.,トーマス
ハリナス,シャーシャンク
ララニ,ルージュタ
ララキ,ジネブ
リウ,キンキン
ローズンバウム,マイク
リシャルト スクチャ,カール
スーメ,ジーン-マーク
ビジャヤクマール,マンジュ
Original Assignee
セールスフォース ドット コム インコーポレイティッド
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 セールスフォース ドット コム インコーポレイティッド filed Critical セールスフォース ドット コム インコーポレイティッド
Publication of JP2021533461A publication Critical patent/JP2021533461A/ja
Application granted granted Critical
Publication of JP7069401B2 publication Critical patent/JP7069401B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications

Description

この出願は、“Using Unstructured Input to Update Heterogeneous Data Stores”と題されて2018年9月18日に出願された米国特許出願第16/134,956号に対する優先権及びその利益を主張するものであり、その全体をここに援用する。
この特許文献の開示の一部は、著作権保護の対象となる素材を含んでいる。著作権者は、それは特許商標庁の特許ファイル又は記録において行われることであるので、本文書又は特許開示の何者かによるファクシミリ複製について異論はないが、他の点については全ての著作権を保持する。
本開示は、概してデータベースシステムに関し、より具体的には、非構造化入力を用いて異種(ヘテロジニアス)データストアを更新するためのシステム及び方法に関する。
この背景セクションで論じられる事項は、単に背景セクションでの言及の結果として、従来技術であるとして仮定されるべきでない。同様に、背景セクションにて言及される又は背景セクションの事項に関連付けられる問題は、従来技術において以前から認識されていたと仮定されるべきでない。
コンピュータ及びソフトウェアの開発は、クライアント-サーバモデルから、インターネット又は他のネットワークを介してデータ及びサービスへのアクセスを提供するネットワークベースの処理システムへと進化しつつある。ネットワーク化されたアプリケーションを専用のサーバハードウェア上でホストする伝統的なシステムとは対照的に、“クラウド”コンピューティングモデルは、アプリケーションが、インフラストラクチャプロバイダによって提供される“サービスとして(as a service)”、ネットワーク上で提供されることを可能にする。インフラストラクチャプロバイダは典型的に、ユーザ(例えば、クラウドベースのサービスの消費者)がもはや専用サーバハードウェアを稼働及びサポートする必要がないように、ユーザが開発したアプリケーションを配信するのに使用される基礎となるハードウェア及び他のリソースを抽象化する。専用のサーバハードウェアをサポートして、専用のネットワークインフラストラクチャ、電気的制御及び温度制御、物理的セキュリティ、並びに他のロジスティクスをもはやユーザが提供する必要がないので、クラウドコンピューティングモデルは、アプリケーションの寿命を通してユーザに実質的なコスト削減を提供できることが多い。
クラウドプラットフォーム(すなわち、クラウドコンピューティングのためのコンピューティングプラットフォーム)は、リモートサーバの共有ネットワークを用いてデータを保存、管理、及び処理するために、多数のユーザによって使用され得る。ユーザは、データの保存、管理、及び処理を扱うために、クラウドプラットフォーム上でアプリケーションを開発し得る。一部のケースで、クラウドプラットフォームはマルチテナントデータベースシステムを利用し得る。ユーザは、様々なユーザ装置(例えば、デスクトップコンピュータ、ラップトップ、スマートフォン、タブレット、又は他のコンピューティングシステムなど)を使用してクラウドプラットフォームにアクセスし得る。一例において、クラウドプラットフォームは、カスタマーリレーションシップマネジメント(CRM)ソリューションをサポートし得る。これは、セールス、サービス、マーケティング、コミュニティ、分析、アプリケーション、モノのインターネット(IoT)に対するサポートを含み得る。
マルチテナントデータベースシステムでは、異なるテナントのデータをテナント固有のスキーマ及び/又はデータ構成に従って格納することは珍しいことではない。これは、異種の複数のデータストアを含んだデータベースを生み出す。データストアの各々が異なるスキーマ及び/又はデータ構成に従って異なる情報を格納するからである。これは、ユーザ及び開発者の双方に難題を提示する。何故なら、ユーザが、新しいデータを入力する及び/又はデータ変更を指定するのに、基礎となるデータストアのスキーマによって典型的に制約されるユーザインタフェースを中心に構築される構造化アプローチを使用することに制約されるからである。
従って、ユーザがデータへの追加及び/又は変更を指定するために使用し得る改良された方法及びシステム、より具体的には、ユーザが非構造化入力を用いて追加及び/又は変更を指定することを可能にする方法及びシステムを有することが有利となる。
一部の実施形態に従ったコンピューティングシステムの簡略図である。 一部の実施形態に従った他のコンピューティングシステムの簡略図である。 一部の実施形態に従った非構造化入力をサポートするコンピューティングシステムの簡略図である。 一部の実施形態に従った非構造化入力を処理する方法の簡略図である。 一部の実施形態に従ったアクションアイテムを処理する方法の簡略図である。 一部の実施形態に従った非構造化入力を解釈するためのテンプレートの一例の簡略図である。 一部の実施形態に従った非構造化自然言語入力の一例の簡略図である。
図面において、同じ参照符号を持つ要素は、同じ又は同様の機能を持つ。
態様、実施形態、実装、又は用途を例示するこの明細書及び添付の図面は、限定的なものと解釈されるべきでなく、請求項が、保護される発明を規定する。この説明及び請求項の精神及び範囲から逸脱することなく、種々の機械的、組成的、構造的、電気的、及び動作的な変更が為され得る。一部の例において、周知の回路、構造、又は技術は、それらは当業者に知られているので、詳細に図示したり説明したりしていない。2つ以上の図における似通った参照符号は、同じ又は同様の要素を表している。
この説明においては、本開示と一貫した一部の実施形態を記述する具体的詳細事項が記載されている。それらの実施形態の完全な理解を提供するために、数多くの具体的詳細事項が記載される。しかしながら、当業者に明らかになることには、一部の実施形態は、それらの具体的詳細事項の一部又は全てなしで実施され得る。ここに開示される特定の実施形態は、例示的なものであり、限定的なものではない。当業者は、ここに具体的に記載されていないが本開示の範囲及び精神の中にある他の要素に気付き得る。また、不要な繰り返しを避けるため、1つの実施形態に関連して図示して説明された1つ以上の機構が、別のことが具体的に記載されていない限り、あるいは、該1つ以上の機構が実施形態を機能しないものにしない限り、他の実施形態に組み込まれてもよい。
マルチテナントクラウドベースのアーキテクチャは、データセキュリティを犠牲にすることなく、顧客テナント間でのコラボレーション、統合、及びコミュニティベースの協力を向上させるように開発されてきた。一般的に言えば、マルチテナントとは、単一のハードウェア及びソフトウェアプラットフォームが、共通のデータストレージ要素(“マルチテナントデータベース”とも称される)から複数のユーザグループ(“組織”又は“テナント”とも称される)を同時にサポートするシステムを指す。マルチテナント設計は、従来のサーバ仮想化システムに対して、多数の利点を提供する。第一に、マルチテナントプラットフォームオペレータは、テナントコミュニティ全体からの集合体の情報に基づいてプラットフォームに改良を行えることが多い。さらに、マルチテナント環境内の全てのユーザが共通の処理空間内でアプリケーションを実行するので、マルチテナントプラットフォーム内のユーザに対して特定のセットのデータへのアクセスを許可又は拒否することが比較的容易であり、それによって、アプリケーションと種々のアプリケーションによって管理されるデータとの間の協調及び統合が改善される。従って、マルチテナントアーキテクチャは、複数組のユーザ間での同様のアプリケーション機能の簡便でコスト効率的な共有を可能にする。
図1は、一部の実施形態に従ったコンピューティングシステム110の簡略図である。図1に示すように、コンピューティングシステム110は、ユーザシステム112、ネットワーク114、データベースシステム116、プロセッサシステム117、アプリケーションプラットフォーム118、ネットワークインタフェース120、テナントデータストレージ122、システムデータストレージ124、プログラムコード126、及び、データベースシステムプロセス及び例えばアプリケーションホスティングサービスの一部としてアプリケーションを走らせることなどのテナント固有プロセスを実行するためのプロセス空間128を含んでいる。一部の実施形態において、コンピューティングシステム110は、列挙されたコンポーネントの全てを有していなくてもよく、及び/又は、上に列挙されたコンポーネントに代えて又は加えて他のコンポーネントを有していてもよい。
一部の実施形態において、コンピューティングシステム110は、複数のユーザ及び/又はテナントにオンデマンドデータベースサービスを提供する。ユーザシステム112は、データベースユーザシステムにアクセスするためにユーザによって使用される任意の機械又はシステムとし得る。一部の例において、ユーザシステム112のいずれかは、ハンドヘルドコンピューティング装置、携帯電話、ラップトップコンピュータ、ノートパッドコンピュータ、ワークステーション、コンピューティング装置のネットワーク、及び/又はこれらに類するものとし得る。図1に例示するように(及び図2に更に詳細に例示するように)、ユーザシステム112は、データベースシステム116であるオンデマンドデータベースサービスと、ネットワーク114を介してインタラクトし得る。
例えばデータベースシステム116を使用して実装され得るものなどのオンデマンドデータベースサービスは、データベースシステム116を所有し、維持し、又はそれへのアクセスを提供する(1つ以上の)企業の外部のユーザに利用可能にされるサービスである。上述のように、そのようなユーザは、データベースシステム116を構築及び/又は維持することに関心を持つ必要はない。代わりに、データベースシステム116によって提供されるサービスをユーザが必要とするときに(例えば、ユーザの要求に応じて)、データベースシステム116によって提供されるリソースがユーザによる使用に利用可能にされ得る。一部のオンデマンドデータベースサービスは、格納される1つ以上のテナントからの情報を共通データベースイメージのテーブルに格納して、マルチテナントデータベースシステム(MTS)を形成し得る。従って、“オンデマンドデータベースサービス116”及び“データベースシステム116”は、ここでは交換可能に使用される。用語“マルチテナントデータベースシステム”は、データベースシステムのハードウェア及び/又はソフトウェアの様々な要素が、1つ以上の顧客又はテナントによって共有され得るシステムを指すことができる。例えば、所与のアプリケーションサーバは、多数の顧客のために複数の要求を同時に処理することができ、所与のデータベーステーブルは、潜在的に遥か多数の顧客のためのフィードアイテムなどの一連のデータを格納することができる。データベースイメージは、1つ以上のデータベースオブジェクトを含み得る。リレーショナルデータベース管理システム(RDBMS)及び/又は等価物は、(1つ以上の)データベースオブジェクトに対する情報の記憶及び検索を実行し得る。
アプリケーションプラットフォーム118は、例えばハードウェアインフラストラクチャ及び/又はオペレーティングシステムなどのソフトウェアインフラストラクチャなど、データベースシステム116のアプリケーションが走ることを可能にするフレームワークとし得る。一部の実施形態において、オンデマンドデータベースサービス116は、オンデマンドデータベースサービスのプロバイダ、ユーザシステム112を介してオンデマンドデータベースサービスにアクセスするユーザ、及び/又はユーザシステム112を介してオンデマンドデータベースサービスにアクセスするサードパーティアプリケーション開発者、によって開発される1つ以上のアプリケーションの作成、管理、及び/又は実行を可能にするアプリケーションプラットフォーム118を含み得る。
ユーザシステム112のユーザは、それぞれの容量において異なることができ、特定のユーザシステム112の容量は、現在のユーザに対する許可(許可レベル)によって完全に決定されてもよい。例えば、営業担当者が特定のユーザシステム112を使用してデータベースシステム116とインタラクトしている場合、そのユーザシステム112は、その営業担当者に割り当てられた容量を持つ。しかしながら、管理者がそのユーザシステム112を使用してデータベースシステム116とインタラクトしている間は、そのユーザシステム112はその管理者に割り当てられた容量を持つ。階層的な役割モデルを有するシステムでは、1つの許可レベルのユーザは、下位の許可レベルのユーザによってアクセス可能なアプリケーション、データ、及びデータベース情報へのアクセスを有し得るが、上位の許可レベルのユーザによってアクセス可能な特定のアプリケーション、データベース情報、及びデータへのアクセスを有しないとし得る。従って、異なるユーザは、ユーザのセキュリティ又は許可レベルに依存して、アプリケーション及びデータベース情報にアクセスすること及びそれらを変更することに関して異なる能力を持つことになる。
ネットワーク114は、互いに通信する装置の任意のネットワーク又は複数のネットワークの組み合わせである。例えば、ネットワーク114は、1つ以上のローカルエリアネットワーク(LAN)、1つ以上のワイドエリアネットワーク(WAN)、1つ以上の電話ネットワーク、1つ以上の無線ネットワーク、1つ以上のポイントツーポイントネットワーク、1つ以上のスターネットワーク、1つ以上のトークンリングネットワーク、1つ以上のハブネットワーク、及び/又は他の適切な構成のうちの任意の1つ又は任意の組み合わせとし得る。現在使用されている最も一般的なタイプのコンピュータネットワークは、例えば、しばしば大文字の“I”を用いて“Internet”として参照される1つ以上のグローバルなインターネットワークなどの、転送制御プロトコル/インターネットプロトコル(TCP/IP)ネットワークであり、そのネットワークが、ここでの例の多くで使用される。しかしながら、理解されるべきことには、ネットワーク114はそのように限定されず、他のネットワークプロトコルがサポートされてもよい。
ユーザシステム112は、TCP/IPを用いてデータベースシステム116と通信し得るとともに、より高いネットワークレベルで、共通のインターネットプロトコルを用いて通信し得る。例えば、ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、Andrewファイルシステム(AFS)、無線アプリケーションプロトコル(WAP)、及び/又はこれらに類するもののうちの1つ以上である。HTTPが使用される一部の例において、ユーザシステム112は、データベースシステム116におけるHTTPサーバに及びからHTTPメッセージを送受信するために、一般に“ブラウザ”と称されるHTTPクライアントを含み得る。そのようなHTTPサーバは、データベースシステム116とネットワーク114との間の唯一のネットワークインタフェースとして実装されてもよいが、同様に及び/又は代わりに他の技術も使用され得る。一部の実装において、データベースシステム116とネットワーク114との間のインタフェースは、例えば複数のサーバにわたって負荷をバランスさせ着信HTTP要求を均等に分配するためのラウンドロビンHTTP要求分配器などの、負荷共有機能を含む。少なくとも、そのサーバにアクセスしているユーザのために、複数のサーバの各々がMTSデータへのアクセスを有するが、代わりに他の代替構成が使用されてもよい。
一部の実施形態において、図1に示すデータベースシステム116は、ウェブベースのカスタマーリレーションシップマネジメント(CRM)システムを実装する。一部の実施形態において、データベースシステム116は、アプリケーションサーバを含み、該アプリケーションサーバは、CRMソフトウェアアプリケーションを実装及び実行するように構成されるとともに、ユーザシステム112に及びから関連するデータ、コード、フォーム、ウェブページ、及び他の情報を提供し、関連するデータ、オブジェクト、及びウェブページコンテンツをデータベースシステムに格納し及びそれらをデータベースシステムから検索するように構成される。マルチテナントシステムでは、複数のテナントに関するデータが同じ物理データベースオブジェクトに格納され得る。しかしながら、テナントデータは典型的に、データが明示的に共有されない限り1つのテナントが別のテナントのデータへのアクセスを有しないように、1つのテナントのデータが別のテナントのデータから論理的に分離されたままにされるように配置される。一部の実施形態において、データベースシステム116は、CRMアプリケーション以外のアプリケーションを実装し、又はCRMアプリケーションに加えて別のアプリケーションを実装する。一部の例において、データベースシステム116は、CRMアプリケーションを含め、複数のホストした(標準及びカスタム)アプリケーションへのテナントアクセスを提供し得る。CRMを含んでも含まなくてもよいユーザアプリケーション及び/又はサードパーティ開発者アプリケーションは、アプリケーションプラットフォーム118によってサポートされてもよく、アプリケーションプラットフォーム118は、データベースシステム116のプロセス空間内での仮想マシンにおけるアプリケーションの作成、1つ以上のデータベースオブジェクトへのアプリケーションの保管、及び/又はアプリケーションの実行を管理する。
図1には、データベースシステム116の要素に関する1つの構成が、ネットワークインタフェース120、アプリケーションプラットフォーム118、テナントデータ123のためのテナントデータストレージ122、データベースシステム116及び可能性として複数のテナントにアクセス可能なシステムデータ125のためのシステムデータストレージ124、データベースシステム116の様々な機能を実装するためのプログラムコード126、並びに、MTSシステムプロセス及び例えばアプリケーションホスティングサービスの一部としてアプリケーションを走らせるなどのテナント固有プロセスを実行するためのプロセス空間128を含めて示されている。データベースシステム116上で実行し得る更なるプロセスは、データベース索引付けプロセスを含む。
図1に示すようなコンピューティングシステム110における幾つかの要素は、ここでは簡単に説明されるのみの従来からの周知の要素を含む。例えば、ユーザシステム112の各々は、デスクトップパーソナルコンピュータ、ワークステーション、ラップトップ、ノートパッドコンピュータ、PDA、携帯電話、又は任意の無線アクセスプロトコル(WAP)対応装置、又はインターネット若しくは他のネットワーク接続に対して直接的若しくは間接的にインタフェースをとることが可能な任意の他のコンピューティング装置を含み得る。ユーザシステム112の各々は典型的に、HTTPクライアント(例えば、マイクロソフトのインターネットエクスプローラブラウザ、ネットスケープのナビゲータブラウザ、オペラのブラウザ、携帯電話、ノートパッドコンピュータ、PDA、若しくは他の無線装置の場合のWAP対応ブラウザ、及び/又はこれらに類するもの)を走らせて、ユーザシステム112のユーザ(例えば、マルチテナントデータベースシステムの加入者)が、ネットワーク114上で、データベースシステム116からのそれに利用可能な情報、ページ、及び/又はアプリケーションにアクセスし、処理し、及び/又は閲覧することを可能にする。ユーザシステム112の各々はまた、典型的に、データベースシステム116及び/又は他のシステム及び/又はサーバによって提供されるページ、フォーム、アプリケーション、及び/又は他の情報とともにディスプレイ(例えば、モニタスクリーン、液晶ディスプレイ(LCD)モニタ、発光ダイオード(LED)モニタ、有機発光ダイオード(OLED)モニタ、及び/又はこれらに類するもの)上でブラウザによって提供されるグラフィカルユーザインタフェース(GUI)とインタラクトするための1つ以上のユーザインタフェース装置(例えば、キーボード、マウス、トラックボール、タッチパッド、タッチスクリーン、ペン、及び/又はこれらに類するもの)を含む。一部の例において、ユーザインタフェース装置は、データベースシステム116によってホストされるデータ及び/又はアプリケーションにアクセスするため、格納されたデータ上で検索を実行するため、及び/又はユーザに提示され得る様々なGUIページとユーザがインタラクトすることを可能にするために使用され得る。上述のように、実施形態は、特定のグローバルインターネットワークのネットワークを参照するものであるインターネットとの使用に適している。しかしながら、理解されるべきことには、インターネットの代わりに、例えばイントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、非TCP/IPベースのネットワーク、任意のLAN若しくはWAN、及び/又はこれらに類するものなどの、他のネットワークが使用されてもよい。
一部の実施形態によれば、ユーザシステム112の各々及びそのコンポーネントは、例えばインテルPentium(登録商標)プロセッサ又はそれに類するものなどの中央演算処理ユニットを使用して走らされるコンピュータコードを含む例えばブラウザなどのアプリケーションを使用してオペレータ設定可能である。同様に、データベースシステム116(及び2つ以上存在する場合のMTSの更なるインスタンス)及びそれらのコンポーネントは、コンピュータコードを含むアプリケーションを使用して、例えばインテルPentium(登録商標)プロセッサ若しくはこれに類するものを含み得るものであるプロセッサシステム117などの中央演算処理ユニット及び/又は複数のプロセッサユニットを使用して走るコンピュータコードを含む(1つ以上の)アプリケーションを使用してオペレータ設定可能とし得る。コンピュータプログラムプロダクトの実施形態は、ここに記載される実施形態のプロセスのいずれかを実行するようにコンピュータをプログラムするために使用されることが可能な命令を格納した(1つ以上の)機械読み取り可能記憶媒体を含む。相互通信し及び/又はここに記載されるようなウェブページ、アプリケーション、及び/又は他のデータ及びメディアコンテンツを処理するようにデータベースシステム116を動作させ及び構成するためのコンピュータコードは、好ましくは、ダウンロードされてハードディスクに格納されるが、プログラムコード全体又はその一部はまた、例えば読み出し専用メモリ(ROM)若しくはランダムアクセスメモリ(RAM)などの周知の他の揮発性若しくは不揮発性のメモリ媒体若しくはデバイスに格納されてもよく、あるいは、例えば、フロッピーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、マイクロドライブ、及び光磁気ディスクを含む、何らかのタイプの回転媒体、並びに、磁気カード若しくは光カード、ナノシステム(分子メモリ集積回路(IC)を含む)、又は命令及び/又はデータを格納するのに適した任意のタイプの媒体若しくはデバイスなどの、プログラムコードを格納することが可能な任意の媒体上で提供されてもよい。さらに、プログラムコード全体又はその一部は、ソフトウェアソースから伝送媒体上で(例えば、よく知られているようにインターネット上で及び/又は他のサーバから)伝送及びダウンロードされてもよいし、及び/又はよく知られているような通信媒体及び/又はプロトコル(例えば、TCP/IP、HTTP、HTTPS、イーサネット(登録商標)、及び/又はこれらに類するもの)を使用してよく知られているような他の従来からのネットワーク接続(例えば、エクストラネット、仮想プライベートネットワーク(VPN)、LAN、及び/又はこれらに類するもの)上で伝送されてもよい。これまた理解されることには、本発明の実施形態を実装するためのコンピュータコードは、例えば、C、C++、HTML、任意の他のマークアップ言語、Java(登録商標)、JavaScript、ActiveX、任意の他のスクリプト言語(例えば、VBScript)などの、クライアントシステム及び/又はサーバ若しくはサーバシステム上で実行可能な任意のプログラミング言語で実装されることができ、及び/又はよく知られているような数多くの他のプログラミング言語が使用されてもよい(Java(登録商標)はサンマイクロシステム社の商標である)。
一部の実施形態によれば、データベースシステム116は、ユーザ(クライアント)システム112にウェブページ、フォーム、アプリケーション、データ、及び/又はメディアコンテンツを提供し、データベースシステム116のテナントとしてのユーザシステム112によるアクセスをサポートするように構成される。従って、データベースシステム116は、データが共有されない限り、各テナントのデータを分離したままにするセキュリティ機構を提供する。2つ以上のMTSが使用される場合、それらは互いに近接して配置されてもよいし(例えば、単一の建物及び/又はキャンパス内に配置されるサーバファーム内)、及び/又は互いに離れた場所に分散されてもよい(例えば、1つ以上のサーバが都市Aに配置され、及び/又は1つ以上のサーバが都市Bに配置される)。一部の実施形態において、各MTSは、ローカルに及び/又は1つ以上の地理的位置にまたがって分布された、論理的及び/又は物理的に接続された1つ以上のサーバを含み得る。さらに、用語“サーバ”は、処理用のハードウェア及び(1つ以上の)プロセス空間を含むコンピュータシステムと、技術的によく知られているような関連するストレージシステム及びデータベースアプリケーション(例えば、オブジェクト指向データベース管理システム(OODBMS)又はリレーショナルデータベース管理システム(RDBMS))と、を含む意味である。これまた理解されるべきことには、“サーバシステム”及び“サーバ”は、ここではしばしば交換可能に使用される。同様に、ここに記載されるデータベースオブジェクトは、単一のデータベース、分散データベース、分散データベースの集合、及び冗長なオンラインバックアップ及び/又はオフラインバックアップ、他の冗長性、及び/又はこれらに類するものを備えたデータベースとして実装され得る。一部の例において、データベースオブジェクトは、分散データベース及び/又はストレージネットワーク及び関連する処理インテリジェンスを使用して実装され得る。
図2は、更なる実施形態に従ったコンピューティングシステム110の簡略図である。図2に示すように、ユーザシステム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、アプリケーションサーバ200-200、システムプロセス空間202、テナントプロセス空間204、テナント管理プロセス空間210、テナントストレージ領域212、ユーザストレージ214、及びアプリケーションメタデータ216を含み得ることを示している。一部の実施形態において、コンピューティングシステム110は、上に列挙されたのと同じ要素を有していなくてもよく、及び/又は、上に列挙された要素に代えて又は加えて他の要素を有していてもよい。
ユーザシステム112、ネットワーク114、データベースシステム116、テナントデータストレージ122、及びシステムデータストレージ124は、図1に関して更に詳細に上述されている。ユーザシステム112に関して、プロセッサシステム112Aは、1つ以上のプロセッサ、マイクロプロセッサ、マルチコアプロセッサ、グラフィックス処理ユニット(GPU)、テンソル処理ユニット(TPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、及び/又はこれらに類するものの任意の組み合わせとし得る。メモリシステム112Bは、1つ以上のメモリデバイス、短期メモリ、及び/又は長期メモリの任意の組み合わせを含み得る。一部の例において、1つ以上のメモリデバイスの各々は、例えばフロッピーディスク(登録商標)、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、CD-ROM、他の光学媒体、パンチカード、紙テープ、孔パターンを有する他の物理媒体、RAM、PROM、EPROM、FLASH(登録商標)-EPROMの、他のメモリチップ若しくはカートリッジ、及び/又はプロセッサ若しくはコンピュータがそれから読み出すように適応される他の媒体などの、機械読み取り可能媒体を含み得る。
入力システム112Cは、例えば1つ以上のキーボード、マウス、トラックボール、スキャナ、カメラ、ネットワークへのインタフェース、及び/又はこれらに類するものなど、入力装置の任意の組み合わせとし得る。出力システム112Dは、例えば1つ以上のモニタ、プリンタ、ネットワークへのインタフェース、及び/又はこれらに類するものなど、出力装置の任意の組み合わせとし得る。
図2に示すように、データベースシステム116は、一組のHTTPアプリケーションサーバ200、アプリケーションプラットフォーム118、テナントデータストレージ122、及び/又はシステムデータストレージ124として実装された図1のネットワークインタフェース120を含み得る。また、個々のテナントプロセス空間204及びテナント管理プロセス空間210を含むシステムプロセス空間202も示されている。各アプリケーションサーバ200は、ユーザシステム112の要求に応えるために、テナントデータストレージ122及びその中のテナントデータ123、並びにシステムデータストレージ124及びその中のシステムデータ125にアクセスするように構成され得る。一部の例において、テナントデータ123は、データの物理的配置及び/又は論理的配置のいずれともし得るものである個々のテナントストレージ領域212に分割され得る。一部の例において、各テナントストレージ領域212内で、各ユーザに対してユーザストレージ214及びアプリケーションメタデータ216が割り当てられ得る。一部の例において、ユーザの最も直近に使用した(most recently used;MRU)アイテムのコピーがユーザストレージ214に格納され得る。一部の例において、組織(例えば、テナント)全体に関するMRUアイテムのコピーが、テナントストレージ領域212に格納され得る。
UI230は、ユーザインタフェースを提供し、API232は、データベースシステム116の常駐プロセスへの及びユーザシステム112のユーザ及び/又は開発者へのアプリケーションプログラマインタフェースを提供する。テナントデータ123及びシステムデータ125は、例えば1つ以上のオラクル(登録商標)データベースなどの様々なデータベースに格納され得る。
アプリケーションプラットフォーム118は、アプリケーション開発者によるアプリケーションの作成及び/又は管理をサポートするアプリケーションセットアップ機構238を含む。一部の例において、アプリケーションセットアップ機構238は、テナント管理プロセス210によって管理される1つ以上のテナントプロセス空間204として加入者によって実行される保存ルーチン236によって、メタデータをテナントデータストレージ122に保存し得る。一部の例において、そのようなアプリケーションへの呼び出しは、API232に対してプログラミング言語スタイルインタフェース拡張を提供するPL/SOQL234を使用してコーディングされ得る。PL/SOQL言語の一部の実施形態は、“Method and System for Allowing Access to Developed Applications via a Multi-Tenant On-Demand Database Service”と題されて2007年9月21日に出願された米国特許第7,730,478号において更に詳細に論じられており、それをここに援用する。一部の例において、アプリケーションへの呼び出しは、加入者のためにアプリケーションメタデータ216を検索すること、呼び出しを作成すること、及び仮想マシンにおけるアプリケーションとしてメタデータを実行することを管理するものである1つ以上のシステムプロセスによって検出され得る。
各アプリケーションサーバ200は、異なるネットワーク接続を介してデータベースシステムに通信可能に結合され得る(例えば、システムデータ125及びテナントデータ123へのアクセスを有する)。一部の例において、1つのアプリケーションサーバ2001はネットワーク114を介して結合され、別のアプリケーションサーバ200N-1は直接的なネットワークリンクを介して結合され、別のアプリケーションサーバ200Nは更に異なるネットワーク接続によって結合され得る。TCP/IPは、アプリケーションサーバ200とデータベースシステムとの間で通信するための典型的なプロトコルを含む。しかしながら、当業者に明らかになることには、使用されるネットワーク接続に応じてシステムを最適化するために、他の輸送プロトコルが使用されてもよい。
特定の実施形態において、各アプリケーションサーバ200は、テナントであるいずれかの組織に関連するユーザに関する要求を処理するように構成される。何らかの理由のためにいつでもアプリケーションサーバをサーバプールから追加及び除去できることが望ましいので、特定のアプリケーションサーバ200へのユーザ及び/又は組織のサーバアフィニティが存在しないことが好ましい。一実施形態では、従って、アプリケーションサーバ200に対する要求を分散させるために、負荷分散機能(例えば、F5 Big-IPロードバランサ)を実装するインタフェースシステムが、アプリケーションサーバ200とユーザシステム112との間に通信可能に結合される。一部の実施形態において、ロードバランサは、最小接続アルゴリズムを使用して、ユーザ要求をアプリケーションサーバ200にルーティングする。例えばラウンドロビン、観測応答時間、及び/又はこれらに類するものなどの、負荷分散アルゴリズムの他の例も使用され得る。一部の実施形態において、同一ユーザからの3つの連続した要求が3つの異なるアプリケーションサーバ200によって取り扱われてもよいし、異なるユーザからの3つの要求が同一アプリケーションサーバ200によって取り扱われてもよい。斯くして、データベースシステム116はマルチテナントであり、データベースシステム116は、異なるユーザ及び/又は組織にまたがって異なるオブジェクト、データ及び/又はアプリケーションの記憶及び/又はそれへのアクセスを取り扱う。
ストレージの一例として、1つのテナントは、セールスフォースを採用する会社であって、各販売員がデータベースシステム116を使用して自身の販売プロセスを管理するものとし得る。従って、ユーザは、そのユーザの個人的な販売プロセス(例えば、テナントデータストレージ122内)に適用可能な、連絡先データ、リードデータ、顧客フォローアップデータ、パフォーマンスデータ、目標進捗データ、及び/又はこれらに類するものを維持管理し得る。MTS構成の一部の例において、ユーザは、アクセス、表示、修正、報告、送信、計算、及び/又はこれらに類することのためのデータ及び/又はアプリケーションが、ネットワークアクセスを持たないユーザシステム112によって維持及び/又はアクセスされることがあるので、自身の販売努力及びサイクルを、多数の異なるユーザシステムのいずれから管理してもよい。一部の例において、販売員が顧客を訪問しており、顧客がそのロビー内でインターネットアクセスを有する場合、販売員は、顧客がロビーに到着するのを待つ間に、その顧客に関する重要な更新を得ることができる。
各ユーザのデータは、各ユーザの使用者に関係なく、他のユーザのデータから分離され得るが、一部のデータは、テナントである所与の組織についての複数のユーザ又は全ユーザによって共有される又はアクセス可能な組織全体のデータであってもよい。従って、データベースシステム116によって管理される一部のデータ構造はテナントレベルで割り当てられるのに対し、他のデータ構造はユーザレベルで管理され得る。MTSは、競合他社を含み得る複数のテナントをサポートし得るので、MTSは更に、データ、アプリケーション、及び/又はアプリケーション使用を別々に保つセキュリティプロトコルを持つべきである。また、多数のテナントが、自身のシステムを維持することよりむしろ、MTSへのアクセスを選び得るので、冗長性、アップタイム、及び/又はバックアップは、MTSに実装され得る更なる機能である。ユーザ固有データ及びテナント固有データに加えて、データベースシステム116はまた、複数のテナントによって使用可能なシステムレベルのデータ及び/又は他のデータも維持し得る。そのようなシステムレベルのデータは、テナント間で共有可能な産業レポート、ニュース、投稿、及び/又はこれらに類するものを含み得る。
特定の実施形態において、ユーザシステム112(クライアントシステムとし得る)は、データベースシステム116からのシステムレベル及び/又はテナントレベルのデータを要求及び/又は更新するためにアプリケーションサーバ200と通信し、これは、テナントデータストレージ122及び/又はシステムデータストレージ124に1つ以上のクエリを送信することを伴い得る。データベースシステム116(例えば、データベースシステム116内のアプリケーションサーバ200)は、所望の情報にアクセスし及び/又はそれを変更するように設計される1つ以上の構造化クエリ言語(SQL)ステートメント(例えば、1つ以上のSQLクエリ)を自動生成する。システムデータストレージ124は、データベースからの要求されたデータにアクセスするためのクエリ計画を生成し得る。
各データベースは、一般に、スキーマによって特徴付けられる複数の所定のカテゴリに収められるデータを含んだ、例えば一組の論理テーブルなどの、オブジェクトの集合として見ることができる。“テーブル”は、データオブジェクトの1つの表現であり、ここでは、オブジェクト及びカスタムオブジェクトの概念的な説明を単純化するために使用されることがある。理解されるべきことには、“テーブル”及び“オブジェクト”は、ここでは交換可能に使用され得る。各テーブルは、一般に、見ることが可能なスキーマにおいて列又はフィールドとして論理的に配列される1つ以上のデータカテゴリを収容する。テーブルの各行又はレコードは、フィールドによって規定される各カテゴリについてのデータのインスタンスを収容する。例えば、CRMデータベースは、例えば名前、アドレス、電話番号、ファックス番号などの基本的な連絡先情報のためのフィールドで顧客を記述するテーブルを含み得る。別のテーブルが、例えば顧客、製品、販売価格、日付などの情報に関するフィールドを含め、購入注文を記述し得る。一部のマルチテナントデータベースシステムでは、全てのテナントによる使用のために標準エンティティテーブルが提供され得る。CRMデータベースアプリケーションの場合、そのような標準エンティティは、アカウント、連絡先、リード、及び/又は機会データのテーブルを含むことができ、各々が予め規定されたフィールドを含み得る。理解されるべきことには、用語“エンティティ”は、ここでは“オブジェクト”及び“テーブル”と交換可能に使用されることがある。
一部のマルチテナントデータベースシステムにおいて、テナントは、カスタムオブジェクトを作成及び格納することを許されることがあり、及び/又は、例えば、カスタムインデックスフィールドを含め、標準オブジェクトにカスタムフィールドを作成することによって、標準エンティティ又はオブジェクトをカスタマイズすることを許されることがある。マルチテナントデータベースシステムにおいてカスタムオブジェクトを作成するため及び標準オブジェクトをカスタマイズするためのシステム及び方法は、“Custom Entities and Fields in a Multi-Tenant Database System”と題されて2004年4月2日に出願された米国特許第7,779,039号に更に詳細に記載されており、それをここに援用する。一部の実施形態において、カスタムスキーマによって特徴付けられるカスタムエンティティデータ行が、組織ごとに複数の論理テーブルを含み得るものである単一のマルチテナント物理テーブルに格納され得る。顧客にトランスペアレントであることには、顧客の複数の“テーブル”が実際には1つの大きなテーブルに格納され、又は顧客のデータが他の顧客のデータと同じテーブルに格納されることがある。
一部の実施形態において、複数の組織うちの1つ以上が、データベースシステムを運用するパーティとは別個の異なる様々なベンダ及び/又はサービスプロバイダによって提供されるサービス又は情報にアクセスすることを望むことがある。そのようなサービスプロバイダによって提供される情報及び/又はサービスは、データベースシステムによって提供されるサービスを補足及び/又は補完し得る。データベースシステム116がカスタマーリレーションシップマネジメント(CRM)サービスを組織に提供する一部の例において、他のベンダ及び/又はサービスプロバイダ(例えば、Dun&Bradstreet又はInsideView)が、競合するインテリジェンス情報を提供してもよい。
情報システム及び/又は例えばデータベースシステム116などのデータベースシステムと連動する際の難題の1つは、典型的なユーザは、基礎となるデータストア内(例えば、テナントデータストレージ122、システムデータストレージ124、及び/又はこれらに類するものの中)でデータがどのようにオブジェクト又はレコードとして分割されて格納されるかを知らないことである。一部の例において、この難題は、異なるユーザ、組織、及び/又はテナントが、それらそれぞれのデータを保管するために異なる(例えば、異種の)スキーマを使用するマルチテナントシステムにおいて、更に複雑になり得る。
一部の実施形態によれば、この問題に対処するための1つのソリューションは、(基礎となるデータストレージスキーマを理解している)アプリケーション開発者が、ユーザから新たなデータ及び/又は変更データを穴埋め式で要請するカスタムユーザインタフェース(例えば、ユーザインタフェース230の一部として)を開発することである。一部の例において、これは、各カスタムユーザインタフェースが開発し、テストし、及び/又は展開するのにかなりのリソースを要し得るので、コストが掛かるとともに非効率的である。一部の例において、これはまた、基礎となるスキーマにおける変更がカスタムユーザインタフェースに関するかなりの再開発コストをもたらし得るので柔軟性に欠け得る。一部の例において、ユーザはまた、カスタムユーザインタフェースを介して開発者によって指示された順序、配置、及び/又はフォーマットで新たなデータを表現するように制約されるので、このアプローチを苛立たしいものと感じ得る。
従って、これらの問題のうちの1つ以上に対処する改良されたデータ入力アプローチを有することが有利となる。1つのそのようなアプローチは、ユーザが自由な形式の語り口を用いて望ましい新たなデータ及び/又はデータへの変更を自由に表現できるよう、話された又は書かれた自然言語の形式でユーザが非構造化入力を提供することを可能にするデータ入力システムである。非構造化入力の処理を支援するために、更に詳細に後述するように、開発者は、データ入力システムが非構造化入力を解釈するのを助けるテンプレートを提供する。さらに、テンプレートはカスタムユーザインタフェースよりも開発するのが遥かに簡単であるため、異なるユーザ、組織、及び/又はテナントに対する異なるテンプレートの開発コストが、対応するカスタムユーザインタフェースとの比較において大幅に低減される。
図3は、一部の実施形態に従った非構造化入力をサポートするコンピューティングシステム300の簡略図である。図3に示すように、ユーザが、ユーザ装置310を介してコンピューティングシステム300とインタラクトする。一部の例において、ユーザ装置310は、スマートフォン及び/又は他のポータブルコンピューティング装置と一致し得る。一部の例において、ユーザ装置310は、ユーザシステム112のうちの1つと一致し得る。一部の例において、ユーザ装置310は、コンピューティングシステム300によって提供されるサービスにアクセスするための1つ以上のアプリケーション(例えば、ウェブブラウザ及び/又は1つ以上のカスタムアプリケーション)を含み得る。
図示のように、ユーザ装置310は、ネットワーク320を介してサーバ330に結合される。一部の例において、ネットワーク320は、例えばセルラネットワーク、メッシュネットワーク、無線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はこれらに類するものなどの1つ以上のサブネットワークを含み得る。一部の例において、ネットワーク320は、ネットワーク114と一致し得る。
サーバ330は、メモリ334に結合されたプロセッサ332を含んでいる。サーバ330の動作はプロセッサ332によって制御される。サーバ330は1つのプロセッサ332のみを有して示されているが、理解されることには、プロセッサ332は、サーバ330内の1つ以上の中央演算処理ユニット、マルチコアプロセッサ、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックス処理ユニット(GPU)、テンソル処理ユニット(TPU)、及び/又はこれらに類するものを表し得る。サーバ330は、スタンドアロンのサブシステムとして、コンピューティング装置に付加されたボードとして、及び/又は仮想マシンとして実装され得る。
メモリ334は、サーバ330によって実行されるソフトウェア及び/又はサーバ330の動作中に使用される1つ以上のデータ構造を格納するために使用され得る。メモリ334は、1つ以上のタイプの機械読み取り可能媒体を含み得る。機械読み取り可能媒体の一部の一般的形態は、フロッピーディスク(登録商標)、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、CD-ROM、他の任意の光媒体、パンチカード、紙テープ、穴のパターンを有する他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、他のメモリチップ又はカートリッジ、及び/又はプロセッサ若しくはコンピュータがそれから読み出すように適応される他の媒体を含み得る。
プロセッサ332及び/又はメモリ334は、如何なる好適な物理的構成で構成されてもよい。一部の実施形態において、プロセッサ332及び/又はメモリ334は、同一ボード上に、同一パッケージ(例えば、システム・イン・パッケージ)内に、同一チップ(例えば、システム・オン・チップ)上に、及び/又はこれらに類するものにて実装され得る。一部の実施形態において、プロセッサ332及び/又はメモリ334は、分散された、仮想化された、及び/又はコンテナ化された計算リソースを含み得る。そのような実施形態に一致して、プロセッサ332及び/又はメモリ334は、1つ以上のデータセンター及び/又はクラウドコンピューティング施設に置かれ得る。
図示のように、メモリ334は、非構造化入力サービス342及び認証サービス344を含んでいる。非構造化入力サービス342は、更に詳細に後述するように、ユーザ装置310のユーザから非構造化入力を受け取ること、テンプレートを用いて非構造化入力を分析すること、及び非構造化入力の分析に基づいてデータベース又はデータストアに対して1つ以上の更新を行うことを担う。認証サービス344は、非構造化入力サービス342及び/又は基礎となるデータベース若しくはデータストアへの権限のないアクセスを防止するために、ユーザ及び/又はユーザ装置(例えば、ユーザ装置310)を認証するための認証サポートを提供する。一部の例において、認証サービス344は、ユーザ及び/又はユーザ装置を認証するために、ユーザ及び/又はユーザ装置から1つ以上の認証情報(例えば、ユーザ名、パスワード、認証トークン、及び/又はこれらに類するもの)を受信する。一部の例において、認証サービス344は、例えば1つ以上のデータベース接続ストリングを生成すること及び/又はこれに類することによって、ユーザ及び/又は非構造化入力サービス342による基礎となるデータベース及び/又はデータストアへのアクセスを支援し得る。
一部の例において、メモリ334は、1つ以上のプロセッサ(例えば、プロセッサ332)によって実行されるときに、該1つ以上のプロセッサに、更に詳細に後述するような非構造化入力サービス342及び/又は認証サービス344に関連する1つ以上のプロセスを実行させ得る実行可能コードを含んだ、非一時的な、有形の、機械読み取り可能媒体を含み得る。一部の例において、非構造化入力サービス342及び/又は認証サービス344は、ハードウェア、ソフトウェア、及び/又はハードウェアとソフトウェアとの組み合わせを用いて実装され得る。一部の例において、非構造化入力サービス342及び/又は認証サービス344は、非構造化入力サービス342及び/又は認証サービス344のサービスへのアクセスをユーザアプリケーションに提供するための1つ以上のAPI、ウェブサービス、及び/又はこれらに類するもの(例えば、HTTPサービス)を含み得る。
サーバ330及びサーバ330によってホストされるサービス(例えば、非構造化入力サービス342、認証サービス344、及び/又はこれらに類するもの)は、ネットワーク350を介してマルチテナントシステム360及びサポートサーバ370に結合される。一部の例において、ネットワーク350は、例えばセルラネットワーク、メッシュネットワーク、無線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はこれらに類するものなどの1つ以上のサブネットワークを含み得る。一部の例において、ネットワーク350は、ネットワーク114と一致し得る。
マルチテナントシステム360は、サーバ330及び非構造化入力サービス342に、1つ以上のマルチテナントデータベース及び/又はデータストアへのアクセスを提供するためのコンピューティング装置及びインフラストラクチャ(例えば、1つ以上のプロセッサ、1つ以上のストレージ装置、1つ以上のプラットフォーム、1つ以上のプロセス、及び/又はこれらに類するもの)を含む。一部の例において、マルチテナントシステム360は、図1及び/又は図2に関して前述したようなデータベースシステム116と一致し得る。
サポートサーバ370は、メモリ374に結合されたプロセッサ372を含んでいる。サポートサーバ370の動作はプロセッサ372によって制御される。サポートサーバ370は1つのプロセッサ372のみを有して示されているが、理解されることには、プロセッサ372は、サポートサーバ370内の1つ以上の中央演算処理ユニット、マルチコアプロセッサ、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックス処理ユニット(GPU)、テンソル処理ユニット(TPU)、及び/又はこれらに類するものを表し得る。サポートサーバ370は、スタンドアロンのサブシステムとして、コンピューティング装置に付加されたボードとして、及び/又は仮想マシンとして実装され得る。
メモリ374は、サポートサーバ370によって実行されるソフトウェア及び/又はサポートサーバ370の動作中に使用される1つ以上のデータ構造を格納するために使用され得る。メモリ374は、1つ以上のタイプの機械読み取り可能媒体を含み得る。機械読み取り可能媒体の一部の一般的形態は、フロッピーディスク(登録商標)、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、CD-ROM、他の任意の光媒体、パンチカード、紙テープ、穴のパターンを有する他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、他のメモリチップ又はカートリッジ、及び/又はプロセッサ若しくはコンピュータがそれから読み出すように適応される他の媒体を含み得る。
プロセッサ372及び/又はメモリ374は、如何なる好適な物理的構成で構成されてもよい。一部の実施形態において、プロセッサ372及び/又はメモリ374は、同一ボード上に、同一パッケージ(例えば、システム・イン・パッケージ)内に、同一チップ(例えば、システム・オン・チップ)上に、及び/又はこれらに類するものにて実装され得る。一部の実施形態において、プロセッサ372及び/又はメモリ374は、分散された、仮想化された、及び/又はコンテナ化された計算リソースを含み得る。そのような実施形態に一致して、プロセッサ372及び/又はメモリ374は、1つ以上のデータセンター及び/又はクラウドコンピューティング施設に置かれ得る。
図示のように、メモリ374は、ボイス・ツー・テキストサービス382、エンティティサービス384、及び意図サービス386を含んでいる。ボイス・ツー・テキストサービス382は、オーディオファイル(例えば、MP3ファイル、及び/又はこれに類するもの)を受け取り、該オーディオファイルに1つ以上の音声認識アルゴリズムを適用して、オーディオファイル内で認識された話し言葉に対応する自然言語テキストストリングを生成する。一部の例において、ボイス・ツー・テキストサービス382は、オーディオデータ内の音声を認識するように訓練された1つ以上のニューラルネットワークを利用し得る。一部の例において、ボイス・ツー・テキストサービス382は、1つ以上の一般的に利用可能な音声認識ライブラリ及び/又はAPIを利用し得る。
エンティティサービス384は、(例えば、ボイス・ツー・テキストサービス382によって出力されるような)自然言語テキストストリングを受け取り、自然言語テキストストリング内の単語及び/又はフレーズを解析して、1つ以上のエンティティを特定し、自然言語テキストストリング内のエンティティの各々の位置を決定し、エンティティの各々のタイプ、エンティティの各々の値を決定し、及び/又は、エンティティサービス384が、対応するエンティティ及び/又は該対応するエンティティのタイプを認識したとどれだけ信じるかに対応する信頼度を決定する。一部の例において、エンティティサービス384は、組織(例えば、会社)、人物、金額、パーセンテージ、日付、時間、場所、及び/又はピックリストタイプに対応するエンティティを認識することができる。一部の例において、ピックリストタイプは、羅列、オブジェクト及び/又はエンティティに関する一組の状態、及び/又はこれらに類するものに対応し得る。一部の例において、エンティティサービス384は、認識したエンティティの各々についてタイプ、値、及び/又は信頼度を決定するために、1つ以上のニューラルネットワーク分類器(例えば、階層的ニューラルネットワーク分類器)を利用し得る。一部の例において、エンティティサービス384は、正規表現及び/又は他のテキスト解析スキームに基づいて、エンティティ、それらのタイプ、それらの値、及びそれらの信頼度を認識するために、1つ以上のエンティティ認識モデルを利用し得る。一部の例において、エンティティサービス384は、ニューラルネットワーク構造及びエンティティ認識モデルの双方を含むハイブリッド構造を利用する。エンティティサービス384の実装の例は、“Systems and Methods for Named Entity Recognition”と題して代理人整理番号A4125US2/70689.41US01で同時出願した米国特許出願に見出すことができ、それをここに援用する。
意図サービス386は、(例えば、ボイス・ツー・テキストサービス382によって出力されるような)自然言語テキストストリングを受け取り、自然言語テキストストリング内の単語及び/又はフレーズを解析して、自然言語テキストストリングの望んだ意図を決定し、及び/又はその決定の信頼性を決定する。一部の例において、意図は、データベース及び/又はデータストアへの所望のデータ変更に関連付けられる意図のクラスから選択され得る。一部の例において、意図のクラスは、データベーステーブルにエントリ(例えば、レコード)を挿入すること、データベーステーブル内のエントリ(例えば、レコード)の1つ以上のフィールドを更新すること、及び/又はこれらに類するもの、のうちの1つ以上を含み得る。一部の例において、意図サービス386は、意図を決定するため及び/又は決定した意図についての信頼度を決定するために、1つ以上のニューラルネットワーク分類器を利用し得る。意図サービス386の実装の例は、“Determining Intent from Unstructured Input to Update Heterogeneous Data Stores”と題して代理人整理番号A4125US3/70689.40US01で同時出願した米国特許出願に見出すことができ、それをここに援用する。
一部の例において、メモリ374は、1つ以上のプロセッサ(例えば、プロセッサ372)によって実行されるときに、該1つ以上のプロセッサに、更に詳細に後述するようなボイス・ツー・テキストサービス382、エンティティサービス384、及び/又は意図サービス386に関連する1つ以上のプロセスを実行させ得る実行可能コードを含んだ、非一時的な、有形の、機械読み取り可能媒体を含み得る。一部の例において、ボイス・ツー・テキストサービス382、エンティティサービス384、及び/又は意図サービス386は、ハードウェア、ソフトウェア、及び/又はハードウェアとソフトウェアとの組み合わせを用いて実装され得る。一部の例において、ボイス・ツー・テキストサービス382、エンティティサービス384、及び/又は意図サービス386は、ボイス・ツー・テキストサービス382、エンティティサービス384、及び/又は意図サービス386のサービスへのアクセスをユーザアプリケーション及び/又は他のサービス(例えば、非構造化入力サービス342)に提供するための1つ以上のAPI、ウェブサービス、及び/又はこれらに類するもの(例えば、HTTPサービス)を含み得る。
上述のように、また、ここで更に強調するように、図3は単に、請求項の範囲を不当に限定するはずのない例に過ぎない。当業者は、数多くの変形、代替、及び変更を認識することになる。一部の実施形態によれば、コンピューティングシステム300の他の構成及び配置が可能である。一部の例において、サーバ330及び/又はサポートサーバ370は、マルチテナントシステム360の一部であってもよい。一部の例において、サーバ330及び/又はサポートサーバ370においてホストされるサービスのうちの1つ以上が、別個のサーバにおいてホストされてもよい。一部の例において、ネットワーク320及びネットワーク350は、同一のネットワークであってもよい。一部の例において、ネットワーク350は、2つ以上の別個のネットワークを含んでいてもよい。
図4は、一部の実施形態に従った非構造化入力を処理する方法400の簡略図であり、図5は、一部の実施形態に従ったアクションアイテムを処理する方法500の簡略図である。方法400のプロセス405-455及び/又は方法500のプロセス505-540のうちの1つ以上は、少なくとも部分的に、1つ以上のプロセッサによって実行されるときに該1つ以上のプロセッサにプロセス405-455及び/又は505-540のうちの1つ以上を実行させ得る非一時的な有形の機械読み取り可能媒体に格納された実行可能コードの形態で実装され得る。一部の実施形態において、方法400及び/又は500は、以下のようなサービス及び/又は複数サービスの組み合わせとして、すなわち、自然言語を含む非構造化オーディオ入力を受信し、非構造化オーディオ入力内の自然言語をテンプレートに従って分析し、自然言語の主題であるデータベースレコードをユーザが特定することをガイドし、特定されたデータベースレコードに対する1つ以上の変更を準備するためのサービス及び/又は複数サービスの組み合わせとして使用され得る。一部の例において、方法400及び/又は500のプロセスのうち少なくとも一部は、例えば非構造化入力サービス342、ボイス・ツー・テキストサービス382、エンティティサービス384、及び/又は意図サービス386などの、1つ以上のサービスによって実行され得る。
一部の実施形態に従って、方法400及び500を、図6及び7の例と共に説明する。図6は、一部の実施形態に従った非構造化入力を解釈するためのテンプレート600の一例の簡略図であり、図7は、一部の実施形態に従った非構造化自然言語入力700の一例の簡略図である。方法400及び500を図6及び7の例に関して説明するが、理解されることには、テンプレート600について他の構成及び/又は構文も可能であり、また、他の非構造化自然言語入力が方法400及び500の主題であってもよい。
プロセス405にて、テンプレートが受信される。一部の例において、テンプレートは、データベース又はデータストア(例えば、マルチテナントシステム360によって管理されるデータベース)の基礎となる編成及びスキーマ、並びにユーザのデータ入力及び/又は変更のニーズを理解している開発者によって、前もって準備され得る。一部の例において、テンプレートは、使用に利用可能なテンプレートのリストの中からのユーザ(例えば、ユーザ装置310のユーザ)による選択に基づいて受信され得る。一部の例において、ユーザは、ユーザ装置310上のユーザインタフェースに表示されたリストから、ボタンを押すこと、リンクを選択すること、及び/又はこれらに類することによって、テンプレートを選択し得る。一部の例において、選択されたテンプレートは、APIコール、リモートプロシージャコール、HTTPポスト、及び/又はこれらに類するもの、の一部として受信され得る。
一部の例において、受信されたテンプレートは、図6のテンプレート600と一致し得る。図6に示すように、テンプレート600は、例えば、親エンティティ及び子エンティティに関連付けられたデータベーステーブル、データベーステーブル上で実行され得るアクションのタイプ及び詳細、及び/又はこれらに類するものなど、テンプレート内で特定される情報のタイプを示す。より詳細には、テンプレート600のエントリ610は、テンプレート600の名前(Name)を“結果報告(Debrief)”として特定している。一部の例において、結果報告テンプレート600は、営業電話を追った非構造化自然言語入力を分析するために使用されるテンプレートに対応する。テンプレートの他の例は、新しい連絡先に入力するため、新しいリードを記述するため、及び/又はこれらに類するもののための非構造化自然言語入力を分析するためのテンプレート含み得る。一部の例において、エントリ610内の名前は、ユーザに表示される利用可能なテンプレートのリストに表示される名前である。
エントリ620は、テンプレート600に従って分析される非構造化自然言語入力に関連する親(Parent)レコードを特定するために検索されるべき1つ以上のテーブルを特定する。図6の例において、エントリ620は、親レコードが、組織及び/又は人物を格納するために使用され得るものである“アカウント(Account)”テーブル内で見出されることを特定している。親レコードに関連付けられ得るテーブルの他の例は、連絡先、会社、及び/又はこれらに類するものに対応し得る。
エントリ630は、テンプレート600に従って分析される非構造化自然言語入力に関連するとともに親レコードに関係する子(Child)レコードを特定するために検索されるべき1つ以上のテーブルを特定する。図6の例において、エントリ630は、子レコードが、非構造化自然言語入力内で言及されている連絡先及び/又は人物に対応し得るものである“機会(Opportunity)”テーブル内で見出されることを識別する。子レコードに関連付けられ得るテーブルの他の例は、連絡先、会社、イベント、及び/又はこれらに類するものに対応し得る。
エントリ640は、非構造化自然言語入力内の情報に基づいて実行され得るデータベース変更のタイプ(例えば、新規レコード挿入、レコード更新、及び/又はこれらに類するもの)に対応する1つ以上のアクション又はアクションアイテム(Action Item(s))を特定する。図6の例において、エントリ640は、“イベント作成(Event Creation)”、“機会更新(Opportunity Update)”、“タスク作成(Task Creation)”に関連付けられたアクションが実行され得ることを特定している。キーワード“作成”及び“更新”は、データベース操作のタイプがそれぞれレコード挿入及びレコード更新であることを指し示す。“イベント”、“機会”、及び“タスク”は、挿入操作又は更新操作の対象となるそれぞれのテーブルの名前を特定している。従って、エントリ640は、レコードがイベントテーブル及びタスクテーブルに挿入され得ること、及び更新が機会テーブルで実行され得ることを特定している。
エントリ650は、更に詳細に後述するような子レコードのマッチングプロセスを制限及び/又は編成するために使用され得る1つ以上のフィルタリング及び/又は順序付け指示を特定する。一部の例において、エントリ650はSQLコードを含み得る。図6の例において、エントリ650は、その“ステージネーム(StageName)”が“Closed”である子レコードが省かれるべきであること、及び検索結果が“名前(Name)”フィールドによってアルファベット順にソートされるべきであることを示している。
エントリ662-668は、エントリ640で特定されるように取られ得るアクションについての更なる詳細を提供する。エントリ662-668の各々が、特定のアクションと、そのアクションに関連するパラメータ及び/又はデータとを特定する。一部の例において、各エントリ662-668は、レコードのタイプ/テーブルを特定する署名、データの1つ以上のタイプ、及びデータベース変更の対象である対応するフィールドに対応する。一部の例において、署名の各々が唯一無二である場合、テンプレートは、更に詳細に後述するように、データベース変更を一意に特定するために使用され得る。一部の例において、署名のうち2つ以上の唯一無二でない場合、更に詳細に後述するように、アクションを処理するために追加のユーザ入力が必要とされ得る。より詳細には、エントリ662は、金銭(Monetary)情報を用いて金額(Amount)フィールドを更新するものである機会テーブル内での子レコードの更新を、アクションとして特定している。同様に、エントリ664及び666は、それぞれ、日付情報を用いて締切日(CloseDate)フィールドを更新する、及びピックリスト(PickList)情報を用いてステージネームフィールドを更新するものである機会テーブル内で子レコードを更新するための更なるアクションを特定している。一部の例において、ピックリスト情報は、機会テーブルのスキーマにて特定されるような、ステージネームフィールドで可能な列挙された値の既知のリストに対応し得る。エントリ668は、個人情報を用いて連絡先(Contact)フィールドの値を指定し、日付情報を使用してフォローアップ日(FollowupDate)フィールドの値を指定するものであるタスク(Task)テーブルにおけるレコードの作成を、アクションとして特定している。
エントリ670-690は、テンプレート600に関連付けられ得るオプションのアクションに対応する特性及び/又は特徴の例を特定する。図6の例のテンプレート600において、エントリ670及び680は、それぞれ、タスクテーブル及びイベントテーブルに対する挿入操作を可能にしており、エントリ690は、データベース変更が、そのようなデータベース変更に同意した他のユーザ、組織、及び/又はテンプレートに公表され得ることを指し示している。
戻って図4を参照するに、プロセス410にて、非構造化オーディオ入力が受信される。一部の例において、非構造化オーディオ入力は、例えばユーザ装置310などのユーザ装置のマイクロホンによってキャプチャされ得る。一部の例において、非構造化オーディオ入力は、例えばMP3ファイル及び/又はこれに類するものなどの標準オーディオ符号化に従ってオーディオファイルへと符号化され得る。一部の例において、非構造化オーディオ入力は更に、ユーザが非構造化オーディオ入力に注釈を付けるために使用し得るユーザインタフェースとの追加のユーザインタラクションに対応する時間インデックスのリストを含んでもよい。一部の例において、それら追加のユーザインタラクションは、ボタンの押し下げ及び/又はこれに類するものを含み得る。一部の例において、注釈は、非構造化オーディオ入力の構文解析を支援するために、アクションアイテムの開始及び/又はこれに類するものを指し示すマーカーに対応し得る。一部の例において、非構造化オーディオ入力は、APIコール、リモートプロシージャコール、HTTPポスト、及び/又はこれらに類するものの一部として受信され得る。
プロセス415にて、プロセス410においてキャプチャされた非構造化オーディオ入力が、自然言語テキストに変換される。一部の例において、プロセス415は、例えばボイス・ツー・テキストサービス382などのボイス・ツー・テキストサービスの助けを借りて実行され得る。一部の例において、この変換は、オーディオにてキャプチャされた自然言語を認識するために、非構造化オーディオ入力上で音声認識を実行するよう、1つ以上のニューラルネットワーク及び/又はAPIを使用することを含み得る。一部の例において、この変換は更に、特別なキーワード又はフレーズを認識し、それらをテキスト中の注釈及び/又はセパレータへと変換することを含み得る。一部の例において、フレーズ“アクションアイテム”は、更に詳細に後述するように、処理されるアクションアイテムの開始を指し示す特別なセパレータで置き換えられてもよい。一部の例において、プロセス410において受信された時間インデックスのリストも使用して、対応する注釈及び/又はセパレータを自然言語テキストに挿入し得る。一部の例において、自然言語テキストは更に、文章を区切るための適切な空白(例えば、キャリッジリターン、改行、及び/又はこれらに類するもの)、オーディオ内で指し示された一時停止及び/又は沈黙期間、及び/又はこれらに類するものを付加するために構文解析され得る。一部の例において、プロセス415は、ユーザが話すときに自然言語テキストがユーザに表示され得るように、プロセス410における非構造化オーディオ入力の受信を受けて自動的に開始してもよく、且つ/或いは非構造化オーディオ入力のキャプチャと同時に行われてもよい。
一部の例において、自然言語テキストは、図7の自然言語テキスト700に対応し得る。図7に示されるように、自然言語テキスト700は、結果報告テンプレート600に関係する非構造化入力に対応し得る種類の自然言語テキストの一例を示している。説明を容易にするため、各文の後の空白の行で示される自然言語テキスト700内の各文に関して、自然言語テキスト700を説明する。しかしながら、理解されることには、異なるフォーマット及び/又はグループ分けも可能である。さらに、一般性を失うことなく、各文に関して自然言語テキスト700の処理を説明するが、例えばフレーズ、段落、発言、及び/又はこれらに類するものなどの他のグループ分けも使用され得る。
文710(“今日、Chez CuisineでランチのためにAcmeのChris Quintanaと会った。”)、文720(“Acmeは、グローバルなプレゼンスを広げているB2Bロジスティックス組織である。”)、文730(“マーケティングソフトウェアを購入するAcme Corpのタイムラインが来ている。”)、及び文760(“我々は、我々の製品とABCの製品との比較を示して、我々を選択すべき明確な理由を提示した。”)は、更に詳細に後述するように、非構造化入力の更なる分析を介して特定されるデータベース変更に関連付けられる親レコード及び子レコードを特定する助けとするために分析される説明文に対応する。
文740(“*購入のタイムラインは7月1日である。”)、文750(“*最高で$250kの製品を購入するかもしれない”)、及び文770(“*2週間以内にChrisとフォローアップコール。”)は、各アクションアイテム文の最初の“*”セパレータによって記されるように、非構造化入力内で特定されるアクションアイテムに対応する。一部の例において、“*”セパレータは、認識されたキーワード若しくはフレーズ及び/又は時間インデックス付きの注釈のリストに基づいてプロセス415において追加されたセパレータに対応し得る。アクションアイテム文740は、日付情報“7月1日”を有するアクションアイテムであり、アクションアイテム文750は、金銭情報“$250k”を有するアクションアイテムを含んでおり、アクションアイテム文770は、人物情報“Chris”及び日付情報“2週間”の双方を有するアクションアイテムを含んでいる。一部の例において、文740、750、及び770の各々の始まり及び終わりを指し示すインデックス(例えば、文字及び/又は用語インデックス)も、将来の処理における使用のために記され得る。
戻って図4を参照するに、プロセス420にて、プロセス415において生成された自然言語テキスト内のエンティティが特定される。一部の例において、プロセス420は、例えばエンティティサービス384など、1つ以上のエンティティ分類器及び/又はエンティティ認識サービスの助けを借りて実行され得る。一部の例において、エンティティ認識は、単語及びフレーズを分析して、自然言語テキスト内で論じられているエンティティ、それらエンティティの各々の対応するタイプ、それらエンティティの各々の対応する値、それらエンティティの各々及び/又はそれらエンティティのタイプの認識における対応する信頼度、並びに、それらエンティティの各々に関連するテキストが自然言語テキスト内で見出された場所を特定する対応するインデックス及び/又はインデックス範囲を特定することを含む。一部の例において、エンティティのタイプは、組織(例えば、会社)、人物、金額、パーセンテージ、日付、時間、場所、及び/又はピックリストタイプに対応し得る。一部の例において、ピックリストタイプは、列挙、オブジェクト及び/又はエンティティに関する一組の状態、及び/又はこれらに類するものに対応し得る。一部の例において、エンティティ認識は、コンテキスト情報(例えば、周囲のテキスト)を使用して、認識における信頼度を決定し得る。自然言語テキスト700の文710の例では、Acmeは“of”で導入され、Chez Cuisineは“at”で導入されているので、Acmeは、Chez Cuisineよりも、組織として、より高い信頼度を与えられ得る。一部の例において、プロセス420は、ユーザインタフェース内の分析ボタン、リンク、及び/又これらに類するものをユーザが押すことに応答してトリガーされ得る。一部の例において、分析要求は、APIコール、リモートプロシージャコール、HTTPポスト、及び/又はこれらに類するものの一部として受信され得る。一部の例において、エンティティ認識の結果は、方法400及び/又は500の他のプロセスにおける使用のために保存され得る。
一部の例において、金額、パーセンテージ、日付、及び/又は時間の認識は、1つ以上の特殊文字(例えば、ドル記号、ユーロ記号、コロン、パーセンテージ記号、スラッシュなど)、特別な文字(例えば、1000についての“k”)、及び/又はこれらに類するものを認識し得る。一部の例において、日付の認識は、例えば“今日”、“2週間”、“1時間”、“正午”、及び/又はこれらに類するものなどの相対的な情報及び/又は例えば現在の日付が今年の7月1日より後でない限りは今年を指す“7月1日”などの不完全な情報、を解釈するための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内の“2週間”に対応する日付と、文710内の“Chez Cuisine”及び文720内の“グローバル”に対応する場所と、を認識し得る。
プロセス425にて、テンプレートに基づいて、自然言語テキスト内の1つ以上の可能性ある親エンティティが特定される。例えばエントリ620にて特定される1つ以上のテーブルなどの、テンプレートに含まれる親情報を用いて、ユーザ、ユーザの組織、及び/又はユーザのテナントに関連付けられた1つ以上のデータベース及び/又はデータストア上で、1つ以上の検索が実行される。一部の例において、この検索は、その信頼値が設定可能な閾値を上回るエンティティに対してのみ実行され得る。一部の例において、この検索は、例えばマルチテナントシステム360によって提供される検索APIなどの検索APIを用いて実行され得る。一部の例において、この検索は、異なるスペル、単語のバリエーション、及び/又は当該技術分野で知られている他のファジィ要因を考慮し得る。一部の例において、テンプレートで指定された1つ以上のテーブル内の正しいタイプのエンティティについて一致するレコードが見つからない場合、そのエンティティは可能性ある親エンティティのリストから省かれ得る。
テンプレート600及び自然言語テキスト700の例において、プロセス425は、可能性ある親エンティティとして、文710及び720からのAcme、文730からのAcme Corp、文710からのChez Cuisine、及び文760からのABC、のうちの1つ以上を認識し得る。何故なら、これらは各々、プロセス420において組織タイプのエンティティとして認識されており、そして、エントリ620のアカウントテーブルが組織タイプのエンティティと関連付けられているからである。一部の例において、アカウントテーブルの検索は、例えば“Acme Corp”、“Acme,Inc.”、“Acme Products,Ltd.”、及び/又はこれらに類するものなど、可能性ある親エンティティと一致する及び/又は部分的に一致するレコードを特定することになる。
プロセス430にて、プロセス425において特定された可能性ある親エンティティがユーザに表示される。一部の例において、可能性ある親エンティティは、プロセス410において受信された非構造化オーディオ入力を分析するためのユーザによる初期要求に応答して、ユーザ装置(例えば、ユーザ装置310)に戻され得る。一部の例において、非構造化入力に関連付けられるべき正しい親エンティティ(ひいては、正しい親レコード)をユーザが選択することを可能にするために、可能性ある親エンティティは、対応するボタン、リンク、及び/又はこれらに類するものを有するアプリケーション、ブラウザ、及び/又はこれらに類するものにて表示され得る。一部の例において、可能性ある親エンティティを整理したやり方で提示するために、可能性ある親エンティティは、プロセス420において決定されたそれらの対応する信頼度、プロセス425の検索からの関連性因子、プロセス420において決定された自然言語テキスト内のそれらの対応するインデックス、及び/又はこれらの値の組み合わせに基づいてソートされ得る。
プロセス435にて、親エンティティの選択が受信される。一部の例において、親エンティティ(ひいては、対応する親レコード)の選択は、ユーザが、選択された親エンティティに関連付けられたボタンを押すこと、リンクをアクティブにすること、及び/又はこれらに類することに応答して受信され得る。一部の例において、親エンティティの選択は、APIコール、リモートプロシージャコール、HTTPポスト、及び/又はこれらに類するもの、の一部として受信され得る。
プロセス440にて、プロセス435において選択された親エンティティとテンプレートとに基づいて、自然言語テキスト内の1つ以上の可能性ある子エンティティが特定される。例えばエントリ630にて特定された1つ以上のテーブルなど、テンプレートに含まれる子情報を用いて、ユーザ、ユーザの組織、及び/又はユーザのテナントに関連付けられた1つ以上のデータベース及び/又はデータストア上で、1つ以上の検索が実行される。一部の例において、この検索は、その信頼値が設定可能な閾値を上回るエンティティに対してのみ実行され得る。この検索は、プロセス435において選択された親エンティティ/レコードに関連付けられた1つ以上のテーブル内のレコードに制限され、それ故に、他の親レコードに関連する子エンティティも可能性ある子エンティティに含まれない。一部の例において、この検索は、例えばマルチテナントシステム360によって提供される検索APIなどの検索APIを用いて実行され得る。一部の例において、この検索は、異なるスペル、単語のバリエーション、及び/又は当該技術分野で知られている他のファジィ要因を考慮し得る。一部の例において、テンプレートで指定された1つ以上のテーブル内の正しいタイプのエンティティについて一致するレコードが見つからない場合、そのエンティティは可能性ある子エンティティのリストから省かれ得る。一部の例において、可能性ある子エンティティに含まれる子エンティティを更に制限するために、1つ以上のフィルタ及び/又は順序付け基準が使用され得る。
テンプレート600及び自然言語テキスト700の例において、プロセス440は、可能性ある子エンティティとして、文710からのChris Quintana及び文770からのChrisのうちの一方以上を認識し得る。何故なら、これらは各々、プロセス420において人物タイプのエンティティとして認識されており、そして、エントリ630の機会テーブルが人物タイプのエンティティと関連付けられているからである。一部の例において、“機会”テーブルの検索は、例えば“Chris Quintana”、“Chris Jones”、“David Christian”、及び/又はこれらに類するものなどの可能性ある子エンティティと一致する及び/又は部分的に一致するレコードを特定することになる。加えて、特定される可能性ある子エンティティの数を制限するため、及び可能性ある子エンティティがどのように順序付けられるかの順序付けを制御するために、エントリ650を使用してもよい。例えば、エントリ650によれば、その“ステージネーム”フィールドが“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に対応する3つのアクションアイテムが、プロセス455において処理される。
次に図5を参照するに、プロセス505にて、アクションアイテムに対応する自然言語テキストが抽出される。一部の例において、アクションアイテムに対応する自然言語を、完全な非構造化入力を形成する自然言語テキストの残りの部分から抽出するために、アクションアイテムの開始及び終了を指し示すインデックス(例えば、プロセス415において決定される)が使用される。一部の例において、この抽出は、部分文字列演算、非構造化入力内の単語シーケンスからの単語の抽出、及び/又はこれらに類するもの、のうちの1つ以上を含み得る。
プロセス510にて、アクションアイテムの意図が決定される。一部の例において、プロセス510は、例えば意図サービス386などの意図分類器及び/又は意図サービスの助けを借りて実行され得る。一部の例において、意図認識は、単語及びフレーズを分析して、アクションアイテムの自然言語テキスト内でユーザによって意図されるデータベース及び/又はデータストアの変更のタイプ、並びにオプションで意図の分類における信頼度を特定することを含む。一部の例において、意図は、データベース及び/又はデータストアへの所望のデータ変更に関連付けられる意図のクラスから選択され得る。一部の例において、意図のクラスは、データベーステーブルにエントリ(例えば、レコード)を挿入すること、データベーステーブル内のエントリ(例えば、レコード)の1つ以上のフィールドを更新すること、及び/又はこれらに類するもの、のうちの1つ以上を含み得る。
プロセス515にて、アクションアイテムの自然言語テキスト内のエンティティが特定される。一部の例において、以前に保存されたものであるプロセス420のエンティティ認識の結果を用いて、エンティティの各々、エンティティのタイプ、エンティティの値、及びアクションアイテムの自然言語テキストに対応するインデックス内に位置するエンティティの各々の特定における信頼度が特定される。一部の例において、エンティティの各々、エンティティのタイプ、及び特定における信頼度を特定するために、例えばエンティティサービス384などの1つ以上のエンティティ認識サービスが使用され得る。
プロセス520にて、エンティティとアクションアイテムの意図とがテンプレートに基づいてマッチングされる。プロセス510において決定されたアクションアイテムの意図は、テンプレートによって許されるアクションアイテム(例えば、データベース変更)と比較される。例えば、その意図がレコード更新であると決定されたアクションアイテムは、レコード更新を含むアクションアイテムに対してのみマッチングされ、その意図がレコード作成であると決定されたアクションアイテムは、レコード作成を含むアクションアイテムに対してのみマッチングされ得る。さらに、プロセス515においてアクションアイテム内で特定されたエンティティのタイプが、テンプレートにて規定されたアクションアイテムの署名とともに含まれるタイプとマッチングされる。従って、各アクションアイテムが、エンティティの意図及びタイプによって、テンプレート内のアクションアイテム署名のうちの1つ以上にマッチングされる。一部の例において、対応する署名内で規定されるよりも多くのエンティティがアクションアイテム内に存在する(例えば、署名が日付及び時間を含み、アクションアイテムに関する自然言語テキストが日付、時間、及び人物エンティティを含む)場合、アクションアイテムが署名とマッチングされ得る。一部の例において、エンティティの意図及びタイプが複数の署名と一致する場合、最大の強さを有する一致が選択されてもよく、及び/又は、一致の各々が、ユーザによる更なる入力のために記されてもよい。一部の例において、最大の強さは、例えば最大、乗算、及び/又は他の三角ノルム関数などの集計関数を使用して、意図及びエンティティの特定の信頼度を組み合わせることによって決定され得る。
テンプレート600及び自然言語テキスト700の例において、文740は、意図が機会レコード(例えば、子レコード)を更新することであり、且つ自然言語テキストが、日付タイプのものであるエンティティ“7月1日”を含むので、エントリ664の署名とマッチングされ;文750は、意図が機会レコードを更新することであり、且つ自然言語テキストが、金額タイプのものであるエンティティ“$250k”を含むので、エントリ662の署名とマッチングされ;そして、文770は、意図がタスクレコードを作成することであり、且つ自然言語テキストが、人物タイプのものであるエンティティ“Chris”と、日付タイプのものであるエンティティ“2週間”とを含むので、エントリ668の署名とマッチングされ得る。
プロセス525にて、実行する可能性あるアクションがユーザに表示される。一部の例において、可能性あるアクションは、ユーザ装置(例えば、ユーザ装置310)に戻され得る。一部の例において、可能性あるアクションが正しいアクションであることをユーザが確認及び/又は棄却することを可能にするために、可能性あるアクションは、対応するボタン、リンク、及び/又はこれらに類するものを有するアプリケーション、ブラウザ、及び/又はこれらに類するものにて表示され得る。一部の例において、可能性あるアクションは、オプションで、確認プロセスにおいてユーザを支援するために、対応する自然言語テキストとともに表示され得る。
プロセス530にて、可能性あるアクションの確認が受信される。一部の例において、可能性あるアクションの確認は、ユーザが確認を示すためにボタンを押すこと、リンクをアクティブにすること、及び/又はこれらに類することに応答して受信され得る。一部の例において、可能性あるアクションの確認は、APIコール、リモートプロシージャコール、HTTPポスト、及び/又はこれらに類するもの、の一部として受信され得る。一部の例において、可能性あるアクションをユーザが確認しない場合、方法500は、プロセス520に戻って更なるマッチングを行ってもよいし、あるいは、アクションアイテムを実行することなく、また、データベース変更が行われることなく終わってもよい。
プロセス535にて、確認されたアクションに基づくデータベースクエリが生成される。一部の例において、データベースクエリはSQLクエリとし得る。一部の例において、レコードの作成に関連付けられたアクションアイテムは“INSERT(挿入)”クエリを生成することができ、レコードの更新に関連付けられたアクションアイテムは“UPDATE(更新)”クエリを生成することができる。一部の例において、アクションアイテムがレコードの更新である場合、対応する子レコードが、プロセス515において自然言語テキストから特定されたエンティティに関連付けられた新たなデータ値で更新される。一部の例において、アクションアイテムがレコードの作成である場合、レコードが、そのアクションアイテムに一致する署名にて特定されたテーブルに追加され、プロセス435及び450によってそれぞれ選択された親レコード及び子レコードに関連付けられる。
テンプレート600及び自然言語テキスト700の例において、文740は、子の機会レコードを、“締切日”フィールドを7月1日に設定するように更新するためのデータベースクエリを生じさせ;文750は、子の機会レコードを、“金額”フィールドを$250,000に設定するように更新するためのデータベースクエリを生じさせ;そして、文760は、タスクテーブルにレコードを挿入するためのデータベースクエリを生じさせて、連絡先フィールドがChrisに設定され、フォローアップ日フィールドが2週間先の日付に設定され、新しいレコードが、プロセス435及び450においてそれぞれ選択された親レコード及び子レコードと関連付けられるようにし得る。
プロセス540にて、プロセス535において決定されたデータベースクエリを用いてデータベースが変更される。一部の例において、データベースクエリは、1つ以上のAPI、リモートプロシージャコール、及び/又はこれらに類するものを用いてデータベースシステム(例えば、マルチテナントシステム360)に提供され得る。一部の例において、例えば認証サービス344によって提供され得るような事前決定された接続ストリング及び/又は認証情報を含めることによって、適正なデータアクセスが保証され得る。
戻って図4を参照するに、プロセス455の完了を受けて、方法400は、更なる非構造化音声入力を、当該更なる非構造化入力の性質及びコンテンツに応じて同じテンプレート又は異なるテンプレートを使用して処理するために繰り返され得る。
上述のように、また、ここで更に強調するように、図4及び図5は単に、請求項の範囲を不当に限定するはずのない例に過ぎない。当業者は、数多くの変形、代替、及び変更を認識することになる。一部の実施形態によれば、方法400及び/又は500は、追加のプロセス及び/又は変形プロセスを含んでもよい。一部の例において、プロセス410及び415は、例えばテキストエディタ及び/又はそれに類するものを用いるなど、ユーザがユーザ装置310上でテキストをタイプする及び/又は他の方法で入力する代替プロセスで置き換えられてもよい。
一部の例において、プロセス520において複数の署名とのマッチングが行われる場合、プロセス525及び530は、対応する可能性あるアクションのリストを表示するように変更されてもよく、可能性あるアクションの確認は、正しい可能性あるアクションの選択を含む。一部の例において、可能性あるアクションは、集計関数の結果に従ってソートされてもよく、オプションで集計関数の結果が表示されてもよい。
一部の例において、方法400は、プロセス415の後に追加のプロセスを含んでもよく、そこで自然言語テキスト(セパレータを有する又は有しない)がユーザに表示されることで、ユーザが、音声認識プロセスによって導入されたスペルミス及び/又は他の誤りを訂正するためにテキストを編集し得るようにされる。
一部の例において、方法400は、非構造化オーディオ入力及び/又はテキストが、例えばファイルオブジェクト、バイナリラージオブジェクト(BLOB)、及び/又はこれらに類するものの中などで、子レコードに格納される追加プロセスを含んでもよい。
一部の例において、方法400及び/又は500は、(例えば、エントリ690を用いて)テンプレートによって許可されるように、為されたデータベース変更を、そのような変更に同意した及びユーザに公表するための追加プロセスを含んでもよい。一部の例において、この公表は、1つ以上の電子メールメッセージ、ソーシャルメディアメッセージ、及び/又はこれらに類するものを送ることを含み得る。
例えばユーザシステム112、データベースシステム116、ユーザ装置310、サーバ330、マルチテナントシステム360、及び/又はサポートサーバ370などのコンピューティング装置の一部の例は、1つ以上のプロセッサ(例えば、プロセッサシステム112A、プロセッサシステム117、プロセッサ332、及び/又はプロセッサ372)によって実行されるときに該1つ以上のプロセッサに方法400及び/又は500の処理を実行させる実行可能コードを含んだ、非一時的な有形の機械読み取り可能媒体を含み得る。方法400及び/又は500の処理を含み得る機械読み取り可能媒体の一部の一般的な形態は、例えば、フロッピーディスク(登録商標)、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、CD-ROM、他の光媒体、パンチカード、紙テープ、穴のパターンを有する他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、他のメモリチップ若しくはカートリッジ、及び/又はプロセッサ若しくはコンピュータがそれから読み出すように適応される他の媒体である。
例示的な実施形態が図示されて説明されたが、以上の開示では、広範な変更、変形及び代替が企図され、また、一部の例において、実施形態の一部の機構が、他の機構の対応する使用なしに使用されてもよい。当業者は、数多くの変形、代替、及び変更を認識するであろう。従って、本出願の範囲は、以下の請求項によってのみ限定されるべきであり、請求項は、ここに開示された実施形態の範囲と一致するように広く解釈されるのが妥当である。

Claims (15)

  1. 自然言語処理のための方法であって、
    サーバの1つ以上のプロセッサにより、非構造化テキスト入力を受信し、
    前記1つ以上のプロセッサにより、前記非構造化テキスト入力を解釈するためのテンプレートを受信し、
    エンティティ分類器を使用して、前記非構造化テキスト入力内のエンティティを特定し、
    前記1つ以上のプロセッサにより、前記テンプレートに基づいて、前記特定されたエンティティから1つ以上の可能性ある親エンティティを特定し、
    前記1つ以上のプロセッサにより、前記1つ以上の可能性ある親エンティティからの親エンティティの選択を受信し、
    前記1つ以上のプロセッサにより、前記テンプレート及び前記選択された親エンティティに基づいて、前記特定されたエンティティから1つ以上の可能性ある子エンティティを特定し、
    前記1つ以上のプロセッサにより、前記1つ以上の可能性ある子エンティティからの子エンティティの選択を受信し、
    前記1つ以上のプロセッサにより、前記特定されたエンティティ及び前記テンプレートに基づいて、前記非構造化テキスト入力内のアクションアイテムを特定し、
    意図分類器を使用して、前記アクションアイテムの意図を決定し、
    前記決定された意図、前記特定されたエンティティ、及び前記選択された子エンティティに基づいて、データストアを更新する、
    ことを有する方法。
  2. 前記データストアを更新することは更に、前記選択された親エンティティに基づく、請求項1に記載の方法。
  3. 前記エンティティを特定することは、前記エンティティの各々のタイプ、前記エンティティの各々の値、及び前記特定することにおける信頼度を特定することを有する、請求項1又は2に記載の方法。
  4. 前記エンティティの各々のタイプは、組織、人物、日付、時間、パーセンテージ、金銭的価値、及びピックリストタイプから成る群から選択される、請求項3に記載の方法。
  5. 前記決定された意図、前記特定されたエンティティ、及び前記選択された子エンティティに基づいて前記データストアを更新することは、
    前記アクションアイテム内で特定された1つ以上のエンティティの前記決定された意図及びタイプを、前記テンプレート内のアクションアイテム署名とマッチングすることと、
    前記アクションアイテム内で特定された前記1つ以上のエンティティの署名及び値に基づいてデータベースクエリを生成することと、
    を有する、請求項1乃至4のいずれかに記載の方法。
  6. 前記データベースクエリに含めるべき前記データストア内のレコードからのフィールドが、前記アクションアイテム内で特定された対応するエンティティのタイプによって、前記テンプレート内で特定される、請求項5に記載の方法。
  7. 前記1つ以上の可能性ある親エンティティを特定することは、前記データストア内の1つ以上の親テーブルのレコード内で、前記1つ以上の親テーブルのタイプに一致するタイプを持つ前記特定されたエンティティのうちの1つ以上に一致する値を検索することを有し、
    前記1つ以上の親テーブルは前記テンプレート内で特定される、
    請求項1乃至6のいずれかに記載の方法。
  8. 前記1つ以上の可能性ある子エンティティを特定することは、前記データストア内の1つ以上の子テーブルのレコード内で、前記1つ以上の子テーブルのタイプに一致するタイプを持つ前記特定されたエンティティのうちの1つ以上に一致する値を検索することを有し、
    前記1つ以上の子テーブルは前記テンプレート内で特定され、
    前記レコードは、前記選択された親エンティティに対応するレコードに関連する、
    請求項1乃至7のいずれかに記載の方法。
  9. 前記1つ以上の可能性ある子エンティティを特定することは更に、
    前記テンプレート内のフィルタに基づいて前記レコードをフィルタリングすること、又は
    前記テンプレートによって指定される順序に基づいて前記1つ以上の可能性ある子エンティティを順序付けること、
    のうちの1つ以上を有する、請求項8に記載の方法。
  10. 前記更新することに基づいて前記データストアへの変更を公表する、ことを更に有する請求項1乃至9のいずれかに記載の方法。
  11. 非構造化テキスト入力は、オーディオ入力として受信され、
    当該方法は更に、前記オーディオ入力に対して音声認識を実行することを有する、
    請求項1乃至9のいずれかに記載の方法。
  12. 実行可能コードを有した非一時的な機械読み取り可能媒体であって、前記実行可能コードは、コンピューティング装置に関連する1つ以上のプロセッサによって実行されるときに、該1つ以上のプロセッサに方法を実行させるように適応されており、当該方法は、
    非構造化テキスト入力を受信し、
    前記非構造化テキスト入力を解釈するためのテンプレートを受信し、
    エンティティ分類器を使用して、前記非構造化テキスト入力内のエンティティを特定し、
    前記テンプレートに基づいて、前記特定されたエンティティから1つ以上の可能性ある親エンティティを特定し、
    前記1つ以上の可能性ある親エンティティからの親エンティティの選択を受信し、
    前記テンプレート及び前記選択された親エンティティに基づいて、前記特定されたエンティティから1つ以上の可能性ある子エンティティを特定し、
    前記1つ以上の可能性ある子エンティティからの子エンティティの選択を受信し、
    前記特定されたエンティティ及び前記テンプレートに基づいて、前記非構造化テキスト入力内のアクションアイテムを特定し、
    意図分類器を使用して、前記アクションアイテムの意図を決定し、そして、
    前記決定された意図、前記特定されたエンティティ、及び前記選択された子エンティティに基づいて、データストアを更新する、
    ことを有する、
    非一時的な機械読み取り可能媒体。
  13. メモリと、
    前記メモリに結合された1つ以上のプロセッサと、
    を有し、
    前記1つ以上のプロセッサは、
    非構造化テキスト入力を受信し、
    前記非構造化テキスト入力を解釈するためのテンプレートを受信し、
    エンティティ分類器を使用して、前記非構造化テキスト入力内のエンティティを特定し、
    前記テンプレートに基づいて、前記特定されたエンティティから1つ以上の可能性ある親エンティティを特定し、
    前記1つ以上の可能性ある親エンティティからの親エンティティの選択を受信し、
    前記テンプレート及び前記選択された親エンティティに基づいて、前記特定されたエンティティから1つ以上の可能性ある子エンティティを特定し、
    前記1つ以上の可能性ある子エンティティからの子エンティティの選択を受信し、
    前記特定されたエンティティ及び前記テンプレートに基づいて、前記非構造化テキスト入力内のアクションアイテムを特定し、
    意図分類器を使用して、前記アクションアイテムの意図を決定し、そして、
    前記決定された意図、前記特定されたエンティティ、及び前記選択された子エンティティに基づいて、データストアを更新する、
    ように構成される、
    コンピューティング装置。
  14. 前記決定された意図、前記特定されたエンティティ、及び前記選択された子エンティティに基づいて前記データストアを更新するために、前記1つ以上のプロセッサは、
    前記アクションアイテム内で特定された1つ以上のエンティティの前記決定された意図及びタイプを、前記テンプレート内のアクションアイテム署名とマッチングし、
    前記アクションアイテム内で特定された前記1つ以上のエンティティの署名及び値に基づいてデータベースクエリを生成する、
    ように構成される、請求項13に記載のコンピューティング装置。
  15. 前記1つ以上の可能性ある親エンティティを特定するために、前記1つ以上のプロセッサは、前記データストア内の1つ以上の親テーブルのレコード内で、前記1つ以上の親テーブルのタイプに一致するタイプを持つ前記特定されたエンティティのうちの1つ以上に一致する値を検索するように構成され、
    前記1つ以上の親テーブルは前記テンプレート内で特定され、
    前記1つ以上の可能性ある子エンティティを特定するために、前記1つ以上のプロセッサは、前記データストア内の1つ以上の子テーブルのレコード内で、前記1つ以上の子テーブルのタイプに一致するタイプを持つ前記特定されたエンティティのうちの1つ以上に一致する値を検索するように構成され、
    前記1つ以上の子テーブルは前記テンプレート内で特定され、
    前記レコードは、前記選択された親エンティティに対応するレコードに関連する、
    請求項13又は14に記載のコンピューティング装置。
JP2021505380A 2018-09-18 2019-09-05 非構造化入力を用いた異種データストアの更新 Active JP7069401B2 (ja)

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 (2)

Publication Number Publication Date
JP2021533461A JP2021533461A (ja) 2021-12-02
JP7069401B2 true JP7069401B2 (ja) 2022-05-17

Family

ID=68051903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021505380A Active JP7069401B2 (ja) 2018-09-18 2019-09-05 非構造化入力を用いた異種データストアの更新

Country Status (5)

Country Link
US (2) US10970486B2 (ja)
EP (1) EP3814977A1 (ja)
JP (1) JP7069401B2 (ja)
CN (1) CN112703502A (ja)
WO (1) WO2020060770A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
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
CN114897478B (zh) * 2022-06-06 2023-12-22 壹沓科技(上海)有限公司 一种数据处理方法、装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108915A (ja) 2000-09-28 2002-04-12 Toshiba Corp 自然言語対話システム及び自然言語処理方法
US20160335316A1 (en) 2015-05-15 2016-11-17 Microsoft Technology Licensing, Llc System and method for extracting and sharing application-related user data

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2225060A1 (en) 1997-04-09 1998-10-09 Peter Suilun Fong Interactive talking dolls
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
US20080301120A1 (en) * 2007-06-04 2008-12-04 Precipia Systems Inc. Method, apparatus and computer program for managing the processing of extracted data
US8224822B2 (en) * 2009-11-18 2012-07-17 Oracle International Corporation Template based entity transformation
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
US9235653B2 (en) * 2013-06-26 2016-01-12 Google Inc. Discovering entity actions for an entity graph
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
US11275905B2 (en) * 2015-03-09 2022-03-15 Koninklijke Philips N.V. Systems and methods for semantic search and extraction of related concepts from clinical documents
US10353905B2 (en) * 2015-04-24 2019-07-16 Salesforce.Com, Inc. Identifying entities in semi-structured content
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
US20170235796A1 (en) * 2016-02-16 2017-08-17 Taleris Global Llp Interrelation of Multiple Data Streams
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 Общество с ограниченной ответственностью "Аби Продакшн" Сентиментный анализ на уровне аспектов и создание отчетов с использованием методов машинного обучения
US10354009B2 (en) * 2016-08-24 2019-07-16 Microsoft Technology Licensing, Llc Characteristic-pattern analysis of text
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108915A (ja) 2000-09-28 2002-04-12 Toshiba Corp 自然言語対話システム及び自然言語処理方法
US20160335316A1 (en) 2015-05-15 2016-11-17 Microsoft Technology Licensing, Llc System and method for extracting and sharing application-related user data

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
EP3814977A1 (en) 2021-05-05
CN112703502A (zh) 2021-04-23
US11544465B2 (en) 2023-01-03
US20210209305A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
JP7069401B2 (ja) 非構造化入力を用いた異種データストアの更新
US11436481B2 (en) Systems and methods for named entity recognition
US10353905B2 (en) Identifying entities in semi-structured content
US11403457B2 (en) Processing referral objects to add to annotated corpora of a machine learning engine
US9613093B2 (en) Using question answering (QA) systems to identify answers and evidence of different medium types
US20150286943A1 (en) Decision Making and Planning/Prediction System for Human Intention Resolution
US11720589B2 (en) System and method for transformation of unstructured document tables into structured relational data tables
US20160170743A1 (en) Template based software container
US11568322B2 (en) Using a client-side machine learning model dynamically in a mobile enterprise application on a mobile device
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
US11599586B2 (en) Method and system for providing alternative result for an online search previously with no result
US10417210B2 (en) Multi-token matching scheme
US10943073B2 (en) Dynamic candidate expectation prediction
US20220308987A1 (en) Debugging applications for delivery via an application delivery server
US10110533B2 (en) Identifying entities in email signature blocks
EP3729259B1 (en) Assessing applications for delivery via an application delivery server
US20210319067A1 (en) Search query generation based on audio processing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220502

R150 Certificate of patent or registration of utility model

Ref document number: 7069401

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150