(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022176922
(43)【公開日】2022-11-30
(54)【発明の名称】チャットボット及びデータベースのために会話サービスをオーサリングする方法、チャットボット及びデータベースのために会話サービスをオーサリングするシステム、チャットボット及びデータベースのために会話サービスをオーサリングする方法を実行させるためのコンピュータプログラム(リレーショナルデータからの会話サービスモジュールのオーサリング)
(51)【国際特許分類】
G06F 16/90 20190101AFI20221122BHJP
【FI】
G06F16/90 100
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2022080442
(22)【出願日】2022-05-16
(31)【優先権主張番号】17/322,796
(32)【優先日】2021-05-17
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ホ ティン カム
(72)【発明者】
【氏名】シェイニン バディム
(72)【発明者】
【氏名】コラサニ エライ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA01
(57)【要約】
【課題】本開示の実施形態は、クライアントがデータ指向の顧客リクエストに対する会話サービスをオーサリングするための直観的な方法に関する。
【解決手段】
チャットボット及びデータベースのために会話サービスをオーサリングする方法は、ユーザから、データベースの選択を受信し、チャットボットのオーサリングサービスをデータベース内のテーブルに接続する段階と;オーサリングサービスからユーザに、テーブルの主題の記述をリクエストする質問を出力する段階と;テーブルの主題の記述を受信する段階と;ユーザに、テーブルの主題を表す値を含む、テーブルのキー列の識別情報をリクエストする質問を出力する段階と;テーブルのキー列の識別情報を受信する段階と;自然言語クエリサービスによって、テーブルの主題の記述及びテーブルのキー列を会話サービスに翻訳する段階であって、会話サービスは、データベーステーブルにクエリするのに適したSQLステートメントを含む、段階とを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
チャットボット及びデータベースのために会話サービスをオーサリングする方法であって、
ユーザから、データベースの選択を受信し、前記チャットボットのオーサリングサービスを前記データベース内のテーブルに接続する段階であって、前記テーブルは、複数の行及び複数の列を含む、段階と、
前記オーサリングサービスから前記ユーザに、前記テーブルの主題の記述をリクエストする質問を出力する段階と、
前記オーサリングサービスによって、前記テーブルの前記主題の前記記述を受信する段階と、
前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題を表す値を含む、前記テーブルのキー列の識別情報をリクエストする質問を出力する段階と、
前記オーサリングサービスによって、前記テーブルの前記キー列の前記識別情報を受信する段階と、
自然言語クエリサービスによって、前記テーブルの前記主題の前記記述及び前記テーブルの前記キー列を前記会話サービスに翻訳する段階であって、前記会話サービスは、前記データベースのテーブルにクエリするのに適したSQLステートメントを含む、段階と
を備える、方法。
【請求項2】
前記オーサリングサービスから前記ユーザに、前記テーブルの別の列の記述をリクエストする質問を出力する段階と、
前記オーサリングサービスによって、前記テーブル内の別の列の自然言語記述を受信する段階であって、前記テーブル内の前記別の列の前記自然言語記述は、自然言語クエリサービスによって、前記会話サービスに翻訳される、段階と
を更に備える、請求項1に記載の方法。
【請求項3】
前記オーサリングサービスから前記ユーザに、前記テーブルの別の列の記述をリクエストする質問を出力する前記段階と、前記オーサリングサービスによって、前記テーブル内の別の列の自然言語記述を受信する前記段階とは、前記テーブル内の各列について繰り返される、請求項2に記載の方法。
【請求項4】
前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題の前記記述、前記テーブルの前記キー列の前記識別情報、及び前記テーブル内の前記別の列の前記自然言語記述を要約するフィードバックを出力する段階を更に備える、請求項2に記載の方法。
【請求項5】
前記会話サービスから前記ユーザに、前記テーブルの前記主題に関する前記ユーザからの質問を求めるプロンプトを出力する段階と、
前記ユーザから、前記テーブルの前記主題に関する質問を受信する段階と、
前記会話サービスから、前記ユーザから受信された前記質問に対する回答を出力する段階と、
前記ユーザから、前記回答が正しいのか、部分的にのみ正しいのか、又は誤っているのかの指示を受信する段階と
を更に備える、請求項1から4のいずれか一項に記載の方法。
【請求項6】
誤っているか又は部分的に正しい回答に応答して、前記テーブルの1つ又は複数の列について、前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題又は前記テーブルの別の列の代替記述をリクエストする質問を出力する段階と、前記オーサリングサービスによって、前記テーブルの前記主題又は前記テーブル内の別の列の自然言語記述を受信する段階とを繰り返す段階と、前記テーブルの前記主題の前記記述及び前記テーブル内の前記1つ又は複数の列の前記自然言語記述を前記会話サービスに翻訳する段階とを更に備える、請求項5に記載の方法。
【請求項7】
チャットボット及びデータベースのために会話サービスをオーサリングするシステムであって、
チャットボットと、
前記チャットボットのための前記会話サービスを構築するプロセスを介してユーザをガイドするオーサリングサービスと、
データベースであって、前記データベースは、前記オーサリングサービスが接続されるテーブルを含む、データベースと、
前記ユーザによって前記オーサリングサービスに提供された回答に対して自然言語処理を実行し、前記データベースのサービスのためのSQLクエリを生成する自然言語クエリサービスと
を備え、
前記オーサリングサービスは、前記ユーザに、前記テーブルの主題の記述をリクエストする質問を出力し、前記ユーザから、前記テーブルの前記主題の前記記述を受信し、前記ユーザに、前記テーブルの前記主題を表す値を含む、前記テーブルのキー列の識別情報をリクエストする質問を出力し、前記ユーザから、前記テーブルの前記キー列の前記識別情報を受信し、
前記自然言語クエリサービスは、前記テーブルの前記主題の前記記述及び前記キー列を前記会話サービスに翻訳し、前記会話サービスは、前記データベースのテーブルにクエリするのに適したSQLステートメントを含む、システム。
【請求項8】
前記オーサリングサービスは、前記ユーザに、前記テーブルの別の列の記述をリクエストする質問を出力し、前記ユーザから、前記テーブル内の別の列の自然言語記述を受信し、
前記自然言語クエリサービスは、前記テーブル内の前記別の列の前記自然言語記述を、前記会話サービスに翻訳する、請求項7に記載のシステム。
【請求項9】
前記ユーザが前記チャットボット及び前記オーサリングサービスと通信する際に介するグラフィカルユーザインターフェースと、クラウドストレージとを更に備える、請求項7に記載のシステム。
【請求項10】
前記オーサリングサービスは、前記テーブル内の各列について、前記ユーザに、前記テーブルの前記主題又は前記テーブルの別の列の代替記述をリクエストする質問を出力することと、前記ユーザから、前記テーブルの前記主題又は前記テーブル内の別の列の自然言語記述を受信することとを繰り返す、請求項8に記載のシステム。
【請求項11】
前記オーサリングサービスは、前記ユーザに、前記テーブルの前記主題の前記記述、前記テーブルの前記キー列の前記識別情報、及び前記テーブル内の前記別の列の前記自然言語記述を要約するフィードバックを出力する、請求項8に記載のシステム。
【請求項12】
前記会話サービスは、前記ユーザに、前記テーブルの前記主題に関する前記ユーザからの質問を求めるプロンプトを出力し、前記ユーザから、前記テーブルの前記主題に関する質問を受信し、前記ユーザに、前記ユーザから受信された前記質問に対する回答を出力し、前記ユーザから、前記回答が正しいのか、部分的にのみ正しいのか、又は誤っているのかの指示を受信する、請求項7に記載のシステム。
【請求項13】
前記オーサリングサービスは、誤っているか又は部分的に正しい回答に応答して、前記テーブルの1つ又は複数の列について、前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題又は前記テーブルの別の列の代替記述をリクエストする質問を出力する段階と、前記オーサリングサービスによって、前記テーブルの前記主題又は前記テーブル内の別の列の自然言語記述を受信する段階とを繰り返し、前記自然言語クエリサービスは、前記テーブルの前記主題の前記記述及び前記テーブル内の前記1つ又は複数の列の前記自然言語記述を前記会話サービスに翻訳する、請求項7から12のいずれか一項に記載のシステム。
【請求項14】
コンピュータに、チャットボット及びデータベースのために会話サービスをオーサリングする方法を実行させるためのコンピュータプログラムであって、前記方法は、
ユーザから、データベースの選択を受信し、前記チャットボットのオーサリングサービスを前記データベース内のテーブルに接続する段階であって、前記テーブルは、複数の行及び複数の列を含む、段階と、
前記オーサリングサービスから前記ユーザに、前記テーブルの主題の記述をリクエストする質問を出力する段階と、
前記オーサリングサービスによって、前記テーブルの前記主題の前記記述を受信する段階と、
前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題を表す値を含む、前記テーブルのキー列の識別情報をリクエストする質問を出力する段階と、
前記オーサリングサービスによって、前記テーブルの前記キー列の前記識別情報を受信する段階と、
自然言語クエリサービスによって、前記テーブルの前記主題の前記記述及び前記テーブルの前記キー列を前記会話サービスに翻訳する段階であって、前記会話サービスは、前記データベースのテーブルにクエリするのに適したSQLステートメントを含む、段階と
を備える、コンピュータプログラム。
【請求項15】
前記方法は、
前記オーサリングサービスから前記ユーザに、前記テーブルの別の列の記述をリクエストする質問を出力する段階と、
前記オーサリングサービスによって、前記テーブル内の別の列の自然言語記述を受信する段階であって、前記テーブル内の前記別の列の前記自然言語記述は、自然言語クエリサービスによって、前記会話サービスに翻訳される、段階と
を更に備える、請求項14に記載のコンピュータプログラム。
【請求項16】
前記オーサリングサービスから前記ユーザに、前記テーブルの別の列の記述をリクエストする質問を出力する段階と、前記オーサリングサービスによって、前記テーブル内の別の列の自然言語記述を受信する段階とは、前記テーブル内の各列について繰り返される、請求項15に記載のコンピュータプログラム。
【請求項17】
前記方法は、前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題の前記記述、前記テーブルの前記キー列の前記識別情報、及び前記テーブル内の前記別の列の前記自然言語記述を要約するフィードバックを出力する段階を更に備える、請求項15に記載のコンピュータプログラム。
【請求項18】
前記方法は、
前記会話サービスから前記ユーザに、前記テーブルの前記主題に関する前記ユーザからの質問を求めるプロンプトを出力する段階と、
前記ユーザから、前記テーブルの前記主題に関する質問を受信する段階と、
前記会話サービスから、前記ユーザから受信された前記質問に対する回答を出力する段階と、
前記ユーザから、前記回答が正しいのか、部分的にのみ正しいのか、又は誤っているのかの指示を受信する段階と
を更に備える、請求項14から17のいずれか一項に記載のコンピュータプログラム。
【請求項19】
前記方法は、誤っているか又は部分的に正しい回答に応答して、前記テーブルの1つ又は複数の列について、前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題又は前記テーブルの別の列の代替記述をリクエストする質問を出力する段階と、前記オーサリングサービスによって、前記テーブルの前記主題又は前記テーブル内の別の列の自然言語記述を受信する段階とを繰り返す段階と、前記テーブルの前記主題の前記記述及び前記テーブル内の前記1つ又は複数の列の前記自然言語記述を前記会話サービスに翻訳する段階とを更に備える、請求項18に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、チャットボット等の自動会話サービスに関する。
【背景技術】
【0002】
チャットボット等の自動会話サービスは、企業顧客サービス(enterprise customer service)において普及しつつある。これはなぜならば、それらは、単純な顧客リクエストの処理における多くの人間の労働に置き換わり得るためである。しかしながら、会話サービスをどのように定義するかは、依然として難題である。これはなぜならば、幾つかのベンダーによって提供されている複雑なプログラミングインターフェースは、しばしばそれらのインターフェースの十分なコンピューティングトレーニングを受けていない領域専門家(domain expert)が使用するのが困難であるとともに、今日利用可能である直観的なグラフィカルユーザインターフェースは、クライアントが対処することができる異なるタイプのターゲットリクエストを定義するそれらの能力の点でしばしば限定的であるためである。顧客リクエストのかなりの部分は、データテーブル又は従来的なリレーショナルデータベース内でリストされているアイテムを用いて回答することができる情報クエリである。例としては、フライトスケジュール、製品特徴、リリース日、サービスチケットステータス等がある。
【0003】
クライアントがチャットボットを定義することを可能にする既存のツールは、典型的には、ダイアログが、意図(intent)、スロット(slot)、及びプロンプト(prompt)を要求することを前提とする。意図は、リクエストの基本的な形式を指定し、スロットは、エンドユーザから要請されるパラメータ値であり、プロンプトは、それらの値がどのように要求されるべきであるかの発話である。幾つかのベンダーは、ボットを定義するための他の特化された方法、例えば、予想される質問及び適した回答又はアクションを用いて埋められる又はカスタマイズされることになる様々なフォーム、を作成している。データベースに対して自然言語クエリ(NLQ:natural language query)インターフェースを設計することについても様々な努力がなされており、これは、自然言語クエリを、SQLのような標準的な言語における構造化されたデータベースクエリにマッピングする翻訳ツールをどのように強化するかについての詳細な技法を包含する。
【0004】
しかしながら、意図、スロット/エンティティ、及びプロンプト、又はチャットボットをオーサリングするためのダイアログツリーモデルは、余りにも低レベルである。それらは、クライアントに、それぞれの予想されるエンドユーザクエリをそのような要素に分解することを要求する。それらは、使用するには煩雑であるとともに、大きなデータベースを用いて回答することができる質問の多くの組み合わせのためにスケールアップすることが困難である。インポートされたドキュメントを分析することによって得られる質問/回答定義は、テキスト指向の質問に限定される。データ指向の質問の場合、これらのドキュメントは、しばしば、正確な回答ではなく包括的なテキストの節のみを生成する。他の特化されたチャットボットオーサリングツールも、電子商取引(e-Commerce)等の狭い領域に適したデータ及びダイアログフローのタイプに限定され、一般領域では機能しない。NLQ技術に対する研究は、翻訳方法の詳細に対しては大きく焦点を当てているが、そのようなサービスを自身でセットアップする必要があるとともに自身の領域知識に従ってデータについての自身の記述を提供する必要があるクライアントとどのようにインタラクトするかに対してはあまり焦点を当てていない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示の実施形態は、クライアントがデータ指向の顧客リクエストに対する会話サービスをオーサリングするための直観的な方法に関する。
【課題を解決するための手段】
【0006】
本開示の一実施形態によれば、チャットボット及びデータベースのために会話サービスをオーサリングする方法が提供され、前記方法は、ユーザから、データベースの選択を受信し、前記チャットボットのオーサリングサービスを前記データベース内のテーブルに接続する段階であって、前記テーブルは、複数の行及び複数の列を含む、段階と、前記オーサリングサービスから前記ユーザに、前記テーブルの主題の記述をリクエストする質問を出力する段階と、前記オーサリングサービスによって、前記テーブルの前記主題の前記記述を受信する段階と、前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題を表す値を含む、前記テーブルのキー列の識別情報をリクエストする質問を出力する段階と、前記オーサリングサービスによって、前記テーブルの前記キー列の前記識別情報を受信する段階と、自然言語クエリサービスによって、前記テーブルの前記主題の前記記述及び前記テーブルの前記キー列を前記会話サービスに翻訳する段階であって、前記会話サービスは、前記データベーステーブルにクエリするのに適したSQLステートメントを含む、段階とを備える。
【0007】
本開示の更なる実施形態によれば、前記方法は、前記オーサリングサービスから前記ユーザに、前記テーブルの別の列の記述をリクエストする質問を出力する段階と、前記オーサリングサービスによって、前記テーブル内の別の列の自然言語記述を受信する段階であって、前記テーブル内の別の列の前記自然言語記述は、自然言語クエリサービスによって、前記会話サービスに翻訳される、段階とを備える。
【0008】
本開示の更なる実施形態によれば、前記オーサリングサービスから前記ユーザに、前記テーブルの別の列の記述をリクエストする質問を出力する段階と、前記オーサリングサービスによって、前記テーブル内の別の列の自然言語記述を受信する段階とは、前記テーブル内の各列について繰り返される。
【0009】
本開示の更なる実施形態によれば、前記方法は、前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題の前記記述、前記テーブルの前記キー列の前記識別情報、及び前記テーブル内の別の列の前記自然言語記述を要約するフィードバックを出力する段階を備える。
【0010】
本開示の更なる実施形態によれば、前記方法は、前記会話サービスから前記ユーザに、前記テーブルの前記主題に関する前記ユーザからの質問を求めるプロンプトを出力する段階と、前記ユーザから、前記テーブルの前記主題に関する質問を受信する段階と、前記会話サービスから、前記ユーザから受信された前記質問に対する回答を出力する段階と、前記ユーザから、前記回答が正しいのか、部分的にのみ正しいのか、又は誤っているのかの指示を受信する段階とを備える。
【0011】
本開示の更なる実施形態によれば、前記方法は、誤っているか又は部分的に正しい回答に応答して、前記テーブルの1つ又は複数の列について、前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題又は前記テーブルの別の列の代替記述をリクエストする質問を出力する段階と、前記オーサリングサービスによって、前記テーブルの前記主題又は前記テーブル内の別の列の自然言語記述を受信する段階とを繰り返す段階と、前記テーブルの前記主題の前記記述及び前記テーブル内の前記1つ又は複数の列の前記自然言語記述を前記会話サービスに翻訳する段階とを備える。
【0012】
本開示の別の実施形態によれば、チャットボット及びデータベースのために会話サービスをオーサリングするシステムが提供され、前記システムは、チャットボットと、前記チャットボットのための前記会話サービスを構築するプロセスを介してユーザをガイドするオーサリングサービスと、データベースであって、前記データベースは、前記オーサリングサービスが接続されるテーブルを含む、データベースと、前記ユーザによって前記オーサリングサービスに提供された回答に対して自然言語処理を実行し、前記データベースサービスのためのSQLクエリを生成する自然言語クエリサービスとを備える。前記オーサリングサービスは、前記ユーザに、前記テーブルの主題の記述をリクエストする質問を出力し、前記ユーザから、前記テーブルの前記主題の前記記述を受信し、前記ユーザに、前記テーブルの前記主題を表す値を含む、前記テーブルのキー列の識別情報をリクエストする質問を出力し、前記ユーザから、前記テーブルの前記キー列の前記識別情報を受信し、前記自然言語クエリサービスは、前記テーブルの前記主題の前記記述及び前記キー列を前記会話サービスに翻訳し、前記会話サービスは、前記データベーステーブルにクエリするのに適したSQLステートメントを含む。
【0013】
本開示の更なる実施形態によれば、前記オーサリングサービスは、前記ユーザに、前記テーブルの別の列の記述をリクエストする質問を出力し、前記ユーザから、前記テーブル内の別の列の自然言語記述を受信し、前記自然言語クエリサービスは、前記テーブル内の別の列の前記自然言語記述を、前記会話サービスに翻訳する。
【0014】
本開示の更なる実施形態によれば、前記システムは、前記ユーザが前記チャットボット及び前記オーサリングサービスと通信する際に介するグラフィカルユーザインターフェースと、クラウドストレージとを備える。
【0015】
本開示の更なる実施形態によれば、前記オーサリングサービスは、前記テーブル内の各列について、前記ユーザに、前記テーブルの前記主題又は前記テーブルの別の列の代替記述をリクエストする質問を出力することと、前記ユーザから、前記テーブルの前記主題又は前記テーブル内の別の列の自然言語記述を受信することとを繰り返す。
【0016】
本開示の更なる実施形態によれば、前記オーサリングサービスは、前記ユーザに、前記テーブルの前記主題の前記記述、前記テーブルの前記キー列の前記識別情報、及び前記テーブル内の別の列の前記自然言語記述を要約するフィードバックを出力する。
【0017】
本開示の更なる実施形態によれば、前記会話サービスは、前記ユーザに、前記テーブルの前記主題に関する前記ユーザからの質問を求めるプロンプトを出力し、前記ユーザから、前記テーブルの前記主題に関する質問を受信し、前記ユーザに、前記ユーザから受信された前記質問に対する回答を出力し、前記ユーザから、前記回答が正しいのか、部分的にのみ正しいのか、又は誤っているのかの指示を受信する。
【0018】
本開示の更なる実施形態によれば、前記オーサリングサービスは、誤っているか又は部分的に正しい回答に応答して、前記テーブルの1つ又は複数の列について、前記オーサリングサービスから前記ユーザに、前記テーブルの前記主題又は前記テーブルの別の列の代替記述をリクエストする質問を出力する段階と、前記オーサリングサービスによって、前記テーブルの前記主題又は前記テーブル内の別の列の自然言語記述を受信する段階とを繰り返し、前記自然言語クエリサービスは、前記テーブルの前記主題の前記記述及び前記テーブル内の前記1つ又は複数の列の前記自然言語記述を前記会話サービスに翻訳する。
【0019】
本開示の別の実施形態によれば、チャットボット及びデータベースのために会話サービスをオーサリングする方法を実行するためにコンピュータによって実行される命令のプログラムを有形に具現化した、前記コンピュータによって可読である非一時的プログラム記憶デバイスが提供される。
【図面の簡単な説明】
【0020】
【
図1】一実施形態に係る例示的なオーサリングツールのブロック図である。
【
図2】一実施形態に係る例示的なオーサリングツールのステージのフローチャートである。
【
図3】一実施形態に係る、例示的なデータベースからのテーブルの一部を示す図である。
【
図4】一実施形態に係る、例示的なオーサリングプロセスを示す図である。
【
図5】一実施形態に係る、例示的なオーサリングプロセスを示す図である。
【
図6】一実施形態に係る、例示的なオーサリングプロセスを示す図である。
【
図7】一実施形態に係る、例示的なオーサリングプロセスを示す図である。
【
図8】一実施形態に係る、例示的なオーサリングプロセスを示す図である。
【
図9】一実施形態に係る、例示的なオーサリングプロセスを示す図である。
【
図10】一実施形態に係る、例示的なオーサリングプロセスを示す図である。
【
図11】一実施形態に係る、例示的なオーサリングプロセスを示す図である。
【
図12】一実施形態に係る、例示的なオーサリングプロセスを示す図である。
【
図13】本開示の一実施形態を実装する例示的なクラウドコンピューティングノードの概略図である。
【
図14】本開示の実施形態に係る例示的なクラウドコンピューティング環境を示す図である。
【発明を実施するための形態】
【0021】
本明細書において説明される本開示の例示的な実施形態は、概して、自動会話サービスのための拡張現実システム及び方法を提供する。実施形態は様々な修正及び代替形態が可能である一方、その特定の実施形態が、図面において例示として示されるとともに、本明細書において詳細に説明されることになる。しかしながら、本開示を開示された特定の形式に限定する意図はなく、反対に、本開示は、本開示の趣旨及び範囲内に入る全ての修正、均等物、及び代替物を包含することが理解されるべきである。
【0022】
本開示の実施形態は、クライアントがリレーショナルデータに基づいて会話サービスを定義することを可能にするインタラクティブオーサリングツールを提供する。一実施形態に係るオーサリングツールは、(1)データベースへの接続を指定するか、又は1つ又は複数のデータテーブルをインポートし、(2)データの記述を提供し、その後(3)反復的な「書き込み、翻訳、確認、拡張」プロセスを介して複数の会話クエリ及びアクションモジュールを定義するようにクライアントをガイドするダイアログを介して行われる。これにより、クライアントによって提供される代表的な自然言語クエリの、SQLのような構造化されたクエリ言語への翻訳、そして加えて、翻訳されたコンポーネントから構成されるクエリの再生成された自然言語形式を提供するためにNLQ技術が活用される。再生成された自然言語クエリにより、クライアントがSQL構文に精通していない場合であっても、ボットの理解をクライアントがチェックすることが可能になる。クライアントは、自身が正しい再生成に満足するまで、同じクエリの幾つかの変形を試すことができる。翻訳されたSQLステートメントは、クエリのこのセットに対する応答アクションにおいて使用することができる。同じアクションにマッピングされた自然言語クエリのセットは、応答アクションとともに、エンドユーザの発話が自然言語クエリと一致したときにトリガされる、チャットボットサービス内のモジュールとして機能することができる。任意選択で、関連する自然言語クエリのこのセットは、エンドユーザ発話の他の潜在的なバリエーションとより良好に一致するためにパラフレーズ又は類義語探索ツールを用いて更に拡張することができる。
【0023】
一実施形態に係るオーサリングツールは、プログラミングの専門知識をほとんど又は全く有しない場合がある領域専門家によるデータ指向の会話サービスの容易な構築を可能にする。これは、テーブルの各行がエンティティを表し、各列がテーブル内のエンティティの属性を表す、エンティティ-インスタンスタイプの幅広いデータベースに対して機能することができる。エンティティ-インスタンステーブルではないテーブルの一例は、単一のオブジェクトのキー-バリューテーブルであり、この場合、各行は、このオブジェクトのプロパティのうちの1つについて(キー,値)ペアを与える。しかしながら、各列が1つのキー及びその値を記述するようにキー-バリューテーブルを時計回りに回転させた場合、テーブルは、単一の例を有するエンティティ-インスタンステーブルになる。初期データ記述の必要性は、クライアントが容易に開始するために最小限に保たれる。一実施形態に係るオーサリングツールは、クライアントが、同じクエリのより多くの可変の形式をサポートするために、自身のデータ記述を漸増的に精緻化するためのプロセスを提供する。
【0024】
一実施形態に係るオーサリングツールは、ユーザインターフェース、接続アプリケーション、及びNLQ技術を含む。
図1は、一実施形態に係る例示的なオーサリングツールのブロック図である。一実施形態に係るオーサリングツール100は、クラウドベースであってよく、チャットボットサービス120と、チャットボットのための会話サービスを構築するプロセスを介してユーザをガイドするオーサリングサービス130と、データベースサービス150と、ユーザがチャットボットサービス及びオーサリングサービスと通信する際に介するグラフィカルユーザインターフェース(GUI)110と、ユーザによってオーサリングサービスに提供された回答に対して自然言語処理を実行し、データベースサービスのためのSQLクエリを生成する自然言語クエリ(NLQ)サービス140と、クラウドストレージ160とを備える。幾つかの実施形態では、オーサリングサービス130は、チャットボットサービス120内に含められるか、又はこれによって提供される。
図1のオーサリングツールによって作成される会話サービスは、チャットボットサービス120によって提供される。
【0025】
ツールは、
図2に示されている3つのステージ:構成210、注釈220、及びクエリ230を通して、クライアントをガイドする。
【0026】
構成段階210において、ユーザは、データベースを選択し、GUI110を介して、ホストURL、アクセスクレデンシャル等のような接続詳細を、データベース150のためにオーサリングサービス130に提供し、データベースからテーブルを選択する。
図3は、一実施形態に係る、例示的なデータベースからのテーブルの一部を示している。
【0027】
注釈段階220において、オーサリングサービス130によって制御されるインタラクティブオーサリングプロセスは、GUI110を介してユーザに質問の形式の注釈プロンプトを提示し、GUI110を介してユーザからデータ記述を収集する。ユーザが以前にテーブルに注釈付けしていた場合、ユーザは、データベースのリスト内でそれを検索することができ、質問を尋ねるために直接「クエリ」ステージに進むことができる。ユーザは、それを選択し、未完成の注釈を完成させるか、又は変更を行うために「注釈」に進むこともできる。
【0028】
以下のGUIを通したダイアログの説明において、「チャットボット」という単語は、「オーサリング」ダイアログを指すために使用され、これは、オーサリングサービスによって作成される会話サービスを提供する最終的なエンドユーザが対面するチャットボットとは異なることに留意されたい。
【0029】
スキーマ注釈の理由は、会話サービスがエンティティ及びそれらのプロパティについての質問を理解することができるように、それらが自然言語においてどのように言及されるかを表す単語が必要とされるためである。それらの単語は、時としてユーザにとっては理解不能であり得る列ヘッダを補うことができる。
【0030】
例えば、果物の2つの例をリストするテーブルを検討する。
【表1】
【0031】
このテーブルは、本質的には、名称(PROD)によってりんご(Apple)として識別され、色(COL)赤色(red)であり、中カロリー(MED_CAL)として95を有する、果物の一例が存在すると、述べている。加えて、名称(PROD)によってバナナ(banana)として識別され、色(COL)黄色(yellow)であり、中カロリー(MED_CAL)として105を有する、果物の別の例が存在する。
【0032】
テーブルは、これらのようなステートメントとして解釈されるべきであり、これは、質問の焦点がステートメントの様々な部分に当てられた場合に回答を生成するのに使用することができる。テーブルは、収集することができる列ラベル及びエントリ値を提供する。それらの(時として理解不能な)ラベルに追加するために、ユーザは、チャットボットサービスに、それらの同意義の自然言語の単語:果物、名称、色、中カロリー等を提供する。これらを用いて、それらの単語を含む質問は、関連する列に関連付けることができる。
【0033】
例えば、或る人物が「どの果物が100の中カロリーよりも高いか?」と尋ねる場合がある。この質問に回答するために、サービスは、「果物」「中カロリー」という単語と、「果物」が列PROD内でリストされている「名称」によって表されるという接続とを必要とする。これらを用いて、条件をMED_CALに対して照合することができ、ターゲットPROD値を回答として索出することができる。「果物」という単語は、テーブルの主題を指し、テーブル内で明示的に現れる必要はないことに留意されたい。この単語は、「どの果物...」のような質問を、ターゲット行を要求するものとして理解することができるように、必要とされる。「PROD」列内の値は、この列が各行内で記述されているアイテムについての識別子として識別されると、質問に回答するのに使用される。
【0034】
それゆえ、一実施形態によれば、会話において使用されるようにデータベースをセットアップするために、テーブルが何の情報を記憶しているのかについての記述が提供される。これは、「スキーマ注釈」プロセスと称される場合がある。テーブルは特定のタイプのアイテムをリストしたものであることが前提とされ、ここで、各列は、アイテムの何らかのプロパティを表す。そのため、まず必要とされるものは、テーブルの主題を記述する単語である。このテーブルは何についてのテーブルであるのか?それは、物/人/場所/事象又は他のものといったタイプであり得る。
【0035】
主題が識別されると、チャットボットは、どの列が各特定のアイテムを最も良好に表す値を有するのかを知る必要がある。通常、これは、各アイテムについての名称又は他の一意の識別子を含む列である。次に、各列について、チャットボットは、列ヘッダと同意義である幾つかの自然言語の単語を必要とする。これにより、チャットボットが、そのような単語が質問内で現れたときにどの列が関与するのかを知ることが可能になる。
【0036】
加えて、また、チャットボットは、各列のセマンティックタイプ、すなわち、値が人についてのものであるのか、ロケーションについてのものであるのか、日付についてのものであるのか等を知ることを望む。これらにより、チャットボットが、特定のタイプの質問、例えば、「誰」、「どこ」、又は「いつ」によって導かれる質問に対する回答候補を、それらの列内で検索することが可能になる。数字を含む列の場合、チャットボットは、当該数字が計算に適しているかどうかを知る必要がある。例えば、頻度数、長さ、重量、...、が適している。しかし、ID番号、電話番号等は適していない。
【0037】
注釈段階220において、一実施形態に係るオーサリングプロセスは、各テーブルについての以下の2つの質問から開始する:
(1)テーブル内の主エンティティ、すなわち、このテーブルは何についてのテーブルであるのか、及び、
(2)テーブルの主キー、すなわち、どの列がテーブル内の行等のアイテムを最も良好に表すことができるのか。
【0038】
これらの質問に対する回答は、必ずしもデータベースから明らかであるわけではない。第1の質問について、ユーザは、テーブルの主題、すなわち、このテーブルは何についてのテーブルであるのか、を記述する1単語を提供する。例えば、テーブルがレストランの名称、住所、メニュー等をリストしている場合、ユーザは、「レストラン」を入力する。製品カタログの場合、ユーザは、「製品」を入力する。或いは、ユーザは、これを製品のタイプに狭め、例えば、テーブルが玩具のみをリストしている場合、「玩具」に狭める。第2の質問について、ユーザは、どの列が行内のアイテムを最も良好に表すのかを入力する。通常、これは、名称又は何らかの一意の識別子を含む列であるべきである。
【0039】
一実施形態では、ユーザがこれらの2つの質問に対する回答を提供すると、ユーザは、各データベース列の特別なプロパティに関する追加の質問を提示される。各列について、ユーザは、列ヘッダと同意義である自然言語の単語を提供してよく、値が、特別なタイプ、例えば、人、ロケーション、金銭、日付、時間、又は計算に適した数字のうちの1つであるかをチェックしてよい。ユーザは、主エンティティ又はそのプロパティを記述する単語に対する類義語を提供し、その主エンティティ又は列についてのラベルとしてそれらの代替単語を追加してよい。
【0040】
クエリ段階230において、ユーザは、チャットボット120を介して会話サービスに質問を尋ねて会話サービスをテストし、データベースから、質問に対する回答を受信する。クエリ段階は省略されてよい。
【0041】
データベース列が注釈付けされると、ユーザは、クエリ段階230に進み、データベースに質問を尋ねることを開始するか、又は、任意選択で、注釈段階220を継続して、テーブル内の各列に自然言語の類義語を提供するか、当該列のセマンティックタイプを指定するか、又は、異なるテーブル内の列をどのようにまとめて言及することができるのかについてのステートメントを書くことができる。クエリ段階230において尋ねられた質問は、バックエンドNLQ技術によってSQLステートメント及び再生成された自然言語クエリに翻訳されることになる。クライアントは、翻訳が良好であることを確認することができ、この時点で、元の質問及び翻訳は、チャットボットのための「質問-アクション」ペアとして使用するために保存される。このペアは、暗黙的な意図及びその関連付けられた応答としてチャットボットの定義に追加することができ、これは、チャットボットにおいて直接、又はチャットボットのツーリングを通した更なる精緻化の後に、使用することができる。精緻化は、質問内の固有名詞をエンティティクラス又はそれらの類義語に一般化すること、データ回答をフォーマット化すること、又はクエリ文の追加のクライアントによって提供されるバリエーションを用いて強化することを含んでよい。クライアントは、クエリ段階230においてNLQ技術による誤った翻訳を発見した場合、この翻訳を検査して、クエリのどの部分がミスされているのかをチェックし、注釈段階220に戻って、列名の追加の類義語、又はエンティティ値についての曖昧なテンプレート等の追加の注釈をデータベースに提供することができる。オーサリングサービスは、テーブルの1つ又は複数の列について、ユーザに、テーブルの主題又はテーブルの別の列の代替記述、及びテーブルの主題又はテーブル内の別の列の自然言語記述をリクエストする質問を出力する。テーブルの主題の代替記述及びテーブル内の1つ又は複数の列の自然言語記述は、翻訳され、会話サービスに組み込まれる。クライアントは、注釈段階220とクエリ段階230との間を反復して、チャットボットが多くの異なるタイプの質問に対処するために豊かな会話サービスを漸増的に強化することができる。
【0042】
図4~
図14は、一実施形態に係る、
図3において提示されたデータベーステーブルについての例示的なオーサリングプロセスダイアログを示すスクリーンショットである。一実施形態では、
図3は、NYC_RESTAURANTSと呼ばれるレストランのテーブルであり、ここで、各行は特定のレストランを参照し、このテーブルは、次の列を含む:レストランの名称についての「DBA」、レストランのロケーションについての「BORO」、レストランの住所についての「STREET」、レストランの郵便番号についての「ZIPCODE」、レストランの電話番号についての「PHONE」、及びレストランが提供する料理のタイプについての「CUISINE」。しかしながら、レストランテーブルの使用は、例示的かつ非限定的であり、任意のデータベーステーブルに以下の注釈プロセス及びクエリプロセスを適用することができることに留意されたい。加えて、
図4~
図9は、注釈プロセスを示しており、
図10~
図14は、クエリプロセスを示している。一実施形態に係るオーサリングプロセスは、ユーザ、図面ではホストと称されているオーサリングサービス、及びチャットボットが関与する三者間の会話である。
図4~
図14において、スクリーンショットの左側は、ユーザ、ホスト、及びチャットボット間のダイアログを示しており、一方、右側は、ユーザがチャットボット及びホストから受信するフィードバックを示している。
【0043】
図4を参照すると、上記で開示されたように、オーサリングプロセスは、チャットボットサービスに、各テーブルについて以下の質問を提示させることによって開始する。
【0044】
このテーブルは何についてのテーブルですか?行内でリストされているアイテムのタイプを記述する1単語を与えて下さい。
【0045】
チャットボットによって提示されている質問の下に、ユーザが、その質問に対して更なる説明を行う必要がある場合に、幾つかの組み込みの回答のためにクリックすることができる幾つかのボタンがある。
図4の例では、ユーザは、左列の右側で「レストラン」を入力する。チャットボットサービスは、以下の言葉で応答する。
【0046】
このテーブルはレストランについてのものであるとみなします。同じ概念を指す他の単語はありますか?あれば、それらをカンマで区切ったリストの形式で提供して下さい。
【0047】
チャットボットサービスは、「今のところなし」のためのボタンも提供しており、
図4の例では、これがユーザによって選択される。
【0048】
図4から
図5に進んで、チャットボットサービスは、以下の言葉で応答し:
【0049】
テーブルの主題は、レストランとして参照されています。変更は必要ですか?
そして、2つのボタンを提示する。この例では、ユーザは、「いいえ、これで良いです」ボタンを選択し、その後、チャットボットは、「このテーブルはレストランについてのものであるとみなします」という言葉で応答し、ホストは、注釈が保存されたことを示す。
【0050】
一実施形態によれば、チャットボットは、ここで、以下の第2の質問を提示する:
【0051】
誰かがレストランの一例を要求する場合、テーブル内のどの列を回答として使用したいですか?以下の対応する列を使用したい場合、番号を入力して下さい:1:DBA;2:BORO;3:STREET;4:ZIPCODE;5:PHONE;6:CUISINE;。
【0052】
この例では、ユーザは、番号「1」で応答する。チャットボットサービスは、「行を表すために列1を使用します」という言葉で応答し、ホストは、DBAを主キーとして保存したことを示す。スクリーンの右側に、チャットボットサービスは、以下のフィードバックを提供する。
【0053】
テーブルの主題は、レストランとして参照される。
【0054】
列DBAが主キーとして使用される。
【0055】
データベーステーブルの主題及び主キーが提供されると、一実施形態に係る注釈プロセスの残りの質問は、各データベース列の特別なプロパティに関するものである。
【0056】
図6に続くと、チャットボットサービスは、「属性注釈を続けて下さい」を出力し、ホストは、ユーザを「次の属性を選択して下さい」という言葉で促す。チャットボットサービスは、次のフィードバックを右側に出力し:「列DBAはDBAとして参照され、これは主キーである」、そして、左側で、以下の言葉で応答し:
【0057】
属性DBAに注釈付けして下さい。その現在の名称を使用する以外で、自然言語でそれをどのような表現で参照しますか?それに1つ又は複数の用語を与え、カンマで区切って下さい。或いは、以下から選択して下さい:そして、3つのボタンを提示する。この例では、ユーザは、「名称」を入力することによって応答する。チャットボットサービスは、「[名称]を使用して」と、それに続く2つのボタン:1つは「現在のラベルに追加する」、及び1つは「現在のラベルから置き換える」とを出力することによって応答する。ユーザは、「現在のラベルに追加する」ボタンを選択する。
【0058】
ここで
図7を参照すると、チャットボットサービスは、右側に次のフィードバックを出力し:「列DBAはdba、名称として参照され、これは主キーである」、そして、左側に、以下を出力し:
【0059】
DBAの自然言語名称として名称を使用します。
【0060】
列のデータタイプをチェック中です。
【0061】
値を人、ロケーション又は金銭についての質問に回答するために使用することはできますか?
そして、4つのボタンが続く。この例では、ユーザは、「上記のどれでもない」ボタンを選択することによって応答する。チャットボットは、次に、「値は日付又は時間についてのものですか?」を出力し、これに更に3つのボタンが続く。ユーザは、再び、「上記のどれでもない」ボタンを選択する。チャットボットは、以下を出力することによって応答する:
【0062】
この列を日付又は時間とはみなしません。
【0063】
DBAのセマンティックタイプをnone(設定なし)として設定します。
【0064】
DBAのセマンティックタイプは、noneとして保存されています。
【0065】
ホストは、「注釈を保存しました」を出力し、チャットボットは、右側に、次のフィードバックを出力する:「列DBAはdba、名称として参照され、これは主キーである。」
【0066】
図8を参照すると、ホストは、「次の属性を選択する」を出力する。チャットボットは、次のフィードバックを右側に出力し:「列BOROはBOROとして参照される」、そして、以下を左側に出力する:
【0067】
属性BOROに注釈付けして下さい。その現在の名称を使用する以外で、自然言語でそれをどのような表現で参照しますか?それに1つ又は複数の用語を与え、カンマで区切って下さい。或いは、以下から選択して下さい:
【0068】
これに、3つのボタンが続く。ユーザは、「市,エリア」を入力する。チャットボットは、「[市,エリア]を使用して:」という言葉で応答し、これに、2つのボタンが続く。ユーザは、「現在のラベルに追加する」ボタンを選択する。ホストは、「注釈を保存しました」という言葉で応答し、チャットボットは、次のフィードバックを、右側に出力する:「列BOROはboro、エリア、市として参照される。」
【0069】
図9を参照すると、チャットボットは、「属性注釈を続けて下さい」を出力し、上記のプロセスが、データベーステーブルの全ての列について繰り返される。このプロセス中、チャットボットは、注釈に関するフィードバックを右側に出力する。全ての列が注釈付けされると、ホストは、「全ての属性に注釈があります」を出力し、チャットボットは、「いずれかの注釈を変更したいですか?」を出力し、これに2つのボタンが続く。
図9に示されている例では、ユーザは、「いいえ、今のところは結構です」を選択する。チャットボットは、「モデルを更新します;トレーニングを開始します;これには、1分~2分かかる場合があります...」を出力し、その後、ホストは、「トレーニングを完了しました」を出力する。トレーニング中、
図1に示されているNQLサービス140は、注釈を処理し、スクリーンの右側に、注釈のその使用についてのフィードバックを生成して、会話サービスをサポートする内部データを作成する。トレーニング後、チャットボットは、右側に、テーブルがどのように注釈付けされているのかについての要約を出力し、ユーザへの以下のプロンプトを左側に出力し:
【0070】
今すぐに、クエリパネルに進んで質問を尋ねるか、又は構成パネルに進んで、異なるデータベースを注釈付けするために選択することができます。データベースを選択した後、開始をクリックして下さい
【0071】
これに、「開始」ボタンが続く。
【0072】
図10を参照すると、ユーザは、上部のメニューバーから「クエリ」を選択しており、チャットボットは、以下を出力し、
NYC_RESTAURANTSが使用準備済みです。
選択されたデータベースを用いてクエリの処理を開始します。
【0073】
そして、ホストは、モデルはクエリのために準備済みであることを出力する。チャットボットサービスは、ユーザに、質問を尋ねるように促す。
図10の例では、ユーザは、「クイーンズ(queens)にはレストランがいくつあるか」を入力し、これは、右側で、見出し「質問:」の後ろでエコーされる。チャットボットは、「クエリをバックエンドに送信しています」という言葉で応答し、ホストは、「あなたは、レストランがboroを有し、ただしboroがQUEENSに等しいdbaの数について尋ねており、回答は次のとおりです:4907」を出力する。ホストによるクエリの言い換え表現が、右側で、見出し「再生成:」の後ろでエコーされ、これに、データベースにクエリするための同意義のSQLが続き、これに、見出し「回答」が続き、そして、回答:「NYC_RESTAURANTS_DBA 4907」が続く。左側では、チャットボットは、「回答はいかがでしたか?」という言葉でユーザを促し、これに、4つのボタンが続く。この例では、ユーザは、「正しい」ボタンを選択する。
【0074】
図11を参照すると、チャットボットサービスは、ユーザに、別の質問を尋ねるように促す。
図11の例では、ユーザは、「マンハッタンではどのようなタイプの食事が提供されるか」と入力し、
図10を参照して説明された段階が繰り返される。ホストは、質問の言い換え表現、データベースへのSQLクエリ、及び回答を出力し、チャットボットは、「回答はいかがでしたか?」という言葉でユーザを促し、これに、4つのボタンが続く。この例では、ユーザは、「正しい」ボタンを選択する。
【0075】
図12は、ユーザが会話サービスにクエリするために質問を尋ねる更なる例を示している。
図12では、質問は、「マンハッタン内のどのストリートに、タイ料理レストランが最も多くあるか」である。他の可能な質問としては、例えば、「マンハッタンのブロードウェイにあるレストランはどれであるか」又は「クイーンズにあるイタリア料理レストランの名称及び電話番号は何であるか」等が含まれる。
【0076】
回答が誤っているか又は部分的に正しい場合、オーサリングサービスは、テーブルの1つ又は複数の列について、ユーザに、テーブルの主題又はテーブルの別の列の代替記述をリクエストする質問を出力する段階と、テーブルの主題又はテーブル内の別の列の自然言語記述を受信する段階とを繰り返す。テーブルの主題の代替記述及びテーブル内の1つ又は複数の列の自然言語記述は、翻訳され、会話サービスに組み込まれる。
【0077】
一実施形態によれば、ユーザは、会話サービスが正しく機能していると当該ユーザが満足するまで、会話サービスにクエリするこのプロセスを継続する。しかしながら、ユーザが、会話サービスがあまり満足のいくものではないと判断した場合、ユーザは、メニューバーから「注釈」ボタンを選択し、会話サービスのためにデータベースに注釈付けすることに戻る。
【0078】
システム実装
本開示の実施形態は、ハードウェア、ソフトウェア、ファームウェア、専用プロセッサ、又はそれらの組み合わせといった様々な形態において実装することができることが理解されるべきである。1つの実施形態では、本開示の実施形態は、コンピュータ可読プログラム記憶デバイス上に有形に具現化されたアプリケーションプログラムとしてソフトウェアにおいて実装することができる。アプリケーションプログラムは、任意の適したアーキテクチャを含む機械にアップロードし、これによって実行することができる。さらに、本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書において記載される教示の実装はクラウドコンピューティング環境に限定されないことが事前に理解される。むしろ、本開示の実施形態は、現在既知の、又は今後開発される他の任意のタイプのコンピューティング環境と組み合わせて実装されることが可能である。本開示の一実施形態に係る自動トラブルシューティングシステムは、クラウド実装にも適している。
【0079】
クラウドコンピューティングは、最小の管理労力又はサービスプロバイダとのインタラクションで迅速にプロビジョニング及びリリースすることができる構成可能コンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの簡便なオンデマンドネットワークアクセスを可能にするためのサービス配信のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
【0080】
特性は、以下のとおりである。
【0081】
オンデマンドセルフサービス:クラウド消費者は、サービスプロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間及びネットワークストレージ等のコンピューティング能力を一方的にプロビジョニングすることができる。
【0082】
幅広いネットワークアクセス:この能力は、ネットワークを介して利用可能であり、異種のシン又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促す標準メカニズムを介してアクセスされる。
【0083】
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者に役立つようプールされ、異なる物理リソース及び仮想リソースが、需要に従って動的に割り当て及び再割り当てされる。消費者は一般に提供されたリソースの正確なロケーションに対して支配権又は知識を有していないが、より高いレベルの抽象化(例えば、国、州、又はデータセンタ)においてロケーションを指定することが可能である場合があるという点で、ロケーションの独立性がある。
【0084】
迅速な弾力性:この能力は、迅速かつ弾力的に、場合によっては自動的にプロビジョニングして、早急にスケールアウトし、かつ迅速にリリースして早急にスケールインすることができる。消費者にとって、多くの場合、プロビジョニングに利用可能な能力は無制限に見え、任意の時間に任意の量で購入することができる。
【0085】
測定されるサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅及びアクティブユーザアカウント)に適切な或るレベルの抽象化における計測能力を活用することによって、自動的にリソース使用を制御及び最適化する。リソース使用量をモニタリング、制御及び報告することができ、それにより、利用されるサービスのプロバイダ及び消費者の両方に透明性が提供される。
【0086】
サービスモデルは、以下のとおりである。
【0087】
サービスとしてのソフトウェア(SaaS:Software as a Service):消費者に提供される能力は、クラウドインフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインターフェースを介して様々なクライアントデバイスからアクセス可能である。消費者は、考えられる例外としての限定されたユーザ固有のアプリケーション構成設定を除き、ネットワーク、サーバ、オペレーティングシステム、ストレージ又は更には個々のアプリケーション能力を含む、基礎をなすクラウドインフラストラクチャを管理又は制御しない。
【0088】
サービスとしてのプラットフォーム(PaaS:Platform as a Service):消費者に提供される能力は、クラウドインフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成される、消費者が作成又は取得したアプリケーションを展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーションホスティング環境構成を制御する。
【0089】
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):消費者に提供される能力は、処理、ストレージ、ネットワーク及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、ここで消費者は、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアを展開及び実行することが可能である。消費者は、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御するとともに、場合によっては選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定的に制御する。
【0090】
展開モデルは、以下のとおりである。
【0091】
プライベートクラウド:このクラウドインフラストラクチャは、或る組織のためにのみ動作する。プライベートクラウドは、その組織又はサードパーティによって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
【0092】
コミュニティクラウド:このクラウドインフラストラクチャは、幾つかの組織によって共有され、共有される関心事項(例えば、ミッション、セキュリティ要件、ポリシ及びコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。コミュニティクラウドは、それらの組織又はサードパーティによって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
【0093】
パブリッククラウド:このクラウドインフラストラクチャは、一般大衆又は大規模な業界団体に利用可能とされ、クラウドサービスを販売する組織によって所有される。
【0094】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)の複合体であり、2つ又はそれより多くのクラウドは、独自のエンティティのままであるが、データ及びアプリケーションのポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準技術又は独自技術によってともに結合される。
【0095】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性及びセマンティック相互運用性に焦点を当てたサービス指向である。クラウドコンピューティングの中核には、相互接続されたノードからなるネットワークを含むインフラストラクチャが存在する。
【0096】
ここで
図13を参照すると、クラウドコンピューティングノードの一例の概略図が示されている。クラウドコンピューティングノード1510は、適したクラウドコンピューティングノードの単なる1つの例であり、本明細書において説明される本開示の実施形態の使用又は機能の範囲に関していずれの限定も示唆することは意図されていない。いずれにしても、クラウドコンピューティングノード1510は、本明細書の上記で記載された機能のうちの任意のものを実装若しくは実行、又はその両方を行うことが可能である。
【0097】
クラウドコンピューティングノード1510において、コンピュータシステム/サーバ1512が存在し、これは、多数の他の汎用又は専用のコンピューティングシステム環境又は構成で動作する。コンピュータシステム/サーバ1512とともに使用するのに適し得る良く知られているコンピューティングシステム、環境、若しくは構成、又はその組み合わせの例としては、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブル消費者向け電子機器、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、及び上記のシステム又はデバイスのうちの任意のものを含む分散クラウドコンピューティング環境等が挙げられるが、これらに限定されない。
【0098】
コンピュータシステム/サーバ1512は、コンピュータシステムによって実行される、プログラムモジュール等のコンピュータシステム実行可能命令の一般的な文脈において説明され得る。概して、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等を含み得る。コンピュータシステム/サーバ1512は、分散クラウドコンピューティング環境において実施され得、その場合、タスクは、通信ネットワークを介してリンクされたリモート処理デバイスによって実行される。分散クラウドコンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含む、ローカル及びリモートの双方のコンピュータシステム記憶媒体に位置し得る。
【0099】
図13に示されているように、クラウドコンピューティングノード1510におけるコンピュータシステム/サーバ1512は、汎用コンピューティングデバイスの形態で示されている。コンピュータシステム/サーバ1512のコンポーネントとしては、1つ又は複数のプロセッサ又は処理ユニット1516、システムメモリ1528、及びシステムメモリ1528を含む様々なシステムコンポーネントをプロセッサ1516に結合するバス1518が挙げられ得るが、これらに限定されない。
【0100】
バス1518は、メモリバス又はメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィックスポート、及び多様なバスアーキテクチャのうちの任意のものを使用するプロセッサ又はローカルバスを含む、バス構造の幾つかのタイプのうちの任意のものの1つ又は複数を表す。例示として、限定されることなく、そのようなアーキテクチャとしては、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、及びペリフェラルコンポーネントインターコネクト(PCI)バスが挙げられる。
【0101】
コンピュータシステム/サーバ1512は、典型的には、多様なコンピュータシステム可読媒体を含む。そのような媒体は、コンピュータシステム/サーバ1512がアクセス可能である任意の利用可能な媒体であってよく、揮発性媒体及び不揮発性媒体、取り外し可能媒体及び取り外し不能媒体のいずれも含む。
【0102】
システムメモリ1528は、ランダムアクセスメモリ(RAM)1530、若しくはキャッシュメモリ1532、又はその両方等の、揮発性メモリの形態のコンピュータシステム可読媒体を含むことができる。コンピュータシステム/サーバ1512は、他の取り外し可能/取り外し不能、揮発性/不揮発性コンピュータシステム記憶媒体を更に含み得る。単に例示として、ストレージシステム1534は、取り外し不能不揮発性磁気媒体(図示されておらず、典型的には「ハードドライブ」と呼ばれる)からの読み出し、及びこれへの書き込みを行うために提供することができる。図示されていないが、取り外し可能不揮発性磁気ディスク(例えば、「フロッピディスク」)からの読み出し、及びこれへの書き込みを行うための磁気ディスクドライブと、CD-ROM、DVD-ROM又は他の光媒体等の取り外し可能不揮発性光ディスクからの読み出し、及びこれへの書き込みを行うための光ディスクドライブとを提供することができる。そのような事例では、各々を、1つ又は複数のデータ媒体インターフェースによってバス1518に接続することができる。以下で更に図示及び説明されるように、メモリ1528は、本開示の実施形態の機能を実行するように構成されているプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
【0103】
プログラムモジュール1542のセット(少なくとも1つ)を有するプログラム/ユーティリティ1540は、例示としてメモリ1528に記憶され得、また、限定されることなく、オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータも同様である。オペレーティングシステム、1つ若しくは複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータ、又はこれらの何らかの組み合わせの各々が、ネットワーキング環境の実装を含み得る。プログラムモジュール1542は、概して、本明細書において説明されるような本開示の実施形態の機能、若しくは方法論、又はその両方を実行する。
【0104】
コンピュータシステム/サーバ1512は、キーボード、ポインティングデバイス、ディスプレイ1524等のような1つ若しくは複数の外部デバイス1514;ユーザがコンピュータシステム/サーバ1512とインタラクトすることを可能にする1つ若しくは複数のデバイス;若しくはコンピュータシステム/サーバ1512が1つ若しくは複数の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワークカード、モデム等)、又はその組み合わせと通信してもよい。そのような通信は、入力/出力(I/O)インターフェース1522を介して行うことができる。さらにまた、コンピュータシステム/サーバ1512は、ネットワークアダプタ1520を介して、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、若しくはパブリックネットワーク(例えば、インターネット)、又はその組み合わせ等の1つ又は複数のネットワークと通信することができる。図示のように、ネットワークアダプタ1520は、バス1518を介して、コンピュータシステム/サーバ1512の他のコンポーネントと通信する。図示されていないが、他のハードウェア若しくはソフトウェア又はその両方のコンポーネントを、コンピュータシステム/サーバ1512と組み合わせて使用することができることが理解されるべきである。例としては、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイブストレージシステム等が挙げられるが、これらに限定されない。
【0105】
ここで
図14を参照すると、例示的なクラウドコンピューティング環境1620が示されている。示されているように、クラウドコンピューティング環境1620は、例えば、携帯情報端末(PDA)若しくは携帯電話1624A、デスクトップコンピュータ1624B、ラップトップコンピュータ1624C、若しくは自動車コンピュータシステム1624N、又はその組み合わせ等の、クラウド消費者によって使用されるローカルコンピューティングデバイスが通信し得る、1つ又は複数のクラウドコンピューティングノード1510を備える。ノード1510は、互いに通信してよい。ノード1510は、本明細書の上記で説明されたようなプライベートクラウド、コミュニティクラウド、パブリッククラウド、若しくはハイブリッドクラウド、又はこれらの組み合わせ等の、1つ又は複数のネットワーク内で物理的に又は仮想的にグループ化されてよい(図示せず)。これにより、クラウドコンピューティング環境1620は、インフラストラクチャ、プラットフォーム、若しくはソフトウェア、又はその組み合わせを、クラウド消費者がそのためにローカルコンピューティングデバイス上にリソースを維持する必要がないサービスとして提供することが可能になる。
図14に示されているコンピューティングデバイス1624A~Nのタイプは、単に例示を意図し、コンピューティングノード1510及びクラウドコンピューティング環境1620は、任意のタイプのネットワーク、若しくはネットワークアドレス指定可能接続、又はその両方を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信することができることが理解される。
【0106】
本開示の実施形態は例示的な実施形態を参照して詳細に説明されたが、当業者であれば、添付の特許請求の範囲において記載されているような本開示の趣旨及び範囲から逸脱することなく、実施形態に様々な修正及び置換を行うことができることを理解するであろう。