(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】
(54)【発明の名称】オペレーティングシステム及びオペレーティングシステムのためのコマンドラインインターフェースの人工知能シミュレーション
(51)【国際特許分類】
【FI】
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】
(86)(22)【出願日】
(85)【翻訳文提出日】
(86)【国際出願番号】
(87)【国際公開番号】
(87)【国際公開日】
(32)【優先日】
(33)【優先権主張国・地域又は機関】
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】スー、ジュン
(72)【発明者】
【氏名】リャン、ヤン
(72)【発明者】
【氏名】リウ、スー
(72)【発明者】
【氏名】スパークス、ジェニファー
【テーマコード(参考)】
【Fターム(参考)】
5B376FA01
(57)【要約】
オペレーティングシステムをシミュレートするためのメカニズムが提供される。メカニズムは、オペレーティングシステムごとに、機械学習トレーニングを介して、オペレーティングシステムへの入力の入力特徴のパターン及びオペレーティングシステムからの対応する応答を学習する対応する人工知能(AI)コンピュータモデルをトレーニングする。リクエストされたオペレーティングシステムをシミュレートするリクエストが、リクエストされたオペレーティングシステムによる処理がシミュレートされることになるシミュレーション入力とともに受信される。リクエストされたオペレーティングシステムに対応するAIコンピュータモデルがシミュレーション入力に対して実行されて、シミュレーション入力の処理をシミュレートし、それにより、シミュレートされた応答を生成する。シミュレートされた応答は、入力に応答してリクエストされたオペレーティングシステムのシミュレートされた出力として返される。
【選択図】図3
【特許請求の範囲】
【請求項】
データ処理システムにおける、オペレーティングシステムをシミュレートするための方法であって、前記方法は:
1つ又は複数のオペレーティングシステムのオペレーティングシステムごとに、機械学習トレーニングを介して、前記オペレーティングシステムへの入力の入力特徴のパターン及び前記オペレーティングシステムからの対応する応答を学習する対応する人工知能(AI)コンピュータモデルをトレーニングする段階;
リクエスタコンピューティングデバイスから、リクエストされたオペレーティングシステムをシミュレートするリクエストを受信する段階;
前記リクエスタコンピューティングデバイスから、前記リクエストされたオペレーティングシステムによる処理がシミュレートされることになるシミュレーション入力を受信する段階;
前記リクエストされたオペレーティングシステムに対応するAIコンピュータモデルを索出する段階;
前記シミュレーション入力に対して前記索出されたAIコンピュータモデルを実行して、前記リクエストされたオペレーティングシステムによって、前記シミュレーション入力の処理をシミュレートし、それにより、シミュレートされた応答を生成する段階;及び
前記入力に応答して前記リクエストされたオペレーティングシステムのシミュレートされた出力として前記シミュレートされた応答を前記リクエスタコンピューティングデバイスに返す段階、
を備える、方法。
【請求項】
前記対応するAIコンピュータモデルは、前記オペレーティングシステムのコマンドラインインターフェース(CLI)に入力されるコマンドの入力特徴のパターンを対応するCLI応答にマッピングするCLIコンピュータモデルである、請求項1に記載の方法。
【請求項】
前記リクエストは、前記リクエストされたオペレーティングシステムのCLIをシミュレートするリクエストであり、前記リクエストされたオペレーティングシステムによる処理がシミュレートされることになる前記入力は、前記CLIに対するコマンドである、請求項1又は2に記載の方法。
【請求項】
前記シミュレーション入力は、前記リクエストされたオペレーティングシステムのコマンドラインインターフェース(CLI)のためのコマンドであり、前記シミュレートされた出力は、前記索出されたAIコンピュータモデルに基づいて前記リクエストされたオペレーティングシステムをシミュレートすることによって生成されたシミュレートされたCLI応答である、先行する請求項のいずれか1項に記載の方法。
【請求項】
前記入力に応答して前記リクエストされたオペレーティングシステムのシミュレートされた出力として前記シミュレートされた応答を前記リクエスタコンピューティングデバイスに返す段階は、シミュレートされたユーザインターフェースにおいて、前記リクエストされたオペレーティングシステムのコマンドラインインターフェースを模倣するシミュレートされたCLI応答を返す段階を有する、請求項4に記載の方法。
【請求項】
前記入力特徴のパターンは、前記オペレーティングシステムのコマンドラインインターフェースに入力されるオペレーティングシステムコマンドのパターン、及びそれらのオペレーティングシステムコマンドについての対応するオプションを含む、先行する請求項のいずれか1項に記載の方法。
【請求項】
前記1つ又は複数のオペレーティングシステムは、複数のオペレーティングシステムを含み、
前記AIコンピュータモデルをトレーニングする段階は、前記複数のオペレーティングシステムにおける異なるオペレーティングシステムごとに別個のAIコンピュータモデルをトレーニングする段階を有し、
前記AIコンピュータモデルの各々は、コマンドラインインターフェースコマンドの同じセットを、ただし前記複数のオペレーティングシステムにおける対応するオペレーティングシステムに関して、シミュレートするようにトレーニングされる、先行する請求項のいずれか1項に記載の方法。
【請求項】
前記AIコンピュータモデルは、オペレーティングシステム設計ドキュメント、サポートハブ、及びmanページを含むソースドキュメントの取り込まれたコーパスに基づいて、コマンドラインインターフェースコマンドのセット、前記コマンドラインインターフェースコマンドについてのオプション、及び前記コマンド及びオプションについての期待されるコマンドラインインターフェース出力を含むトレーニングデータセットの機械学習処理に基づいてトレーニングされる、先行する請求項のいずれか1項に記載の方法。
【請求項】
前記リクエストは、チャットボットインターフェースを介してサブミットされた自然言語リクエストであり、前記リクエストされたオペレーティングシステム及び前記リクエストされたオペレーティングシステムによる処理がシミュレートされることになる前記シミュレーション入力を指定する、先行する請求項のいずれか1項に記載の方法。
【請求項】
シミュレートすべきオペレーティングシステムのサブセットを指定するユーザプロファイルを受信する段階を更に備え、前記対応するAIコンピュータモデルの前記トレーニングは、前記ユーザプロファイルにおいて指定されたオペレーティングシステムの各々について実行される、先行する請求項のいずれか1項に記載の方法。
【請求項】
前記ユーザプロファイルは、前記オペレーティングシステムのサブセットについて、前記対応するAIコンピュータモデルの前記トレーニングによって学習されることになるコマンドの範囲、及び前記オペレーティングシステムのサブセットをシミュレートする際に使用すべき環境変数のデフォルトセットを更に指定する、請求項10に記載の方法。
【請求項】
前記シミュレートされた応答が正しいのか又は誤っているのかを示す前記シミュレートされた応答に応答してユーザフィードバック情報を受信する段階;及び
前記ユーザフィードバック情報に基づいて前記索出されたAIコンピュータモデルのトレーニングを更新する段階
を更に備える、先行する請求項のいずれか1項に記載の方法。
【請求項】
コンピュータ可読プログラムが内部に記憶されたコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であって、前記コンピュータ可読プログラムは、データ処理システムにおいて実行されると、前記データ処理システムに、少なくとも:
1つ又は複数のオペレーティングシステムのオペレーティングシステムごとに、機械学習トレーニングを介して、前記オペレーティングシステムへの入力の入力特徴のパターン及び前記オペレーティングシステムからの対応する応答を学習する対応する人工知能(AI)コンピュータモデルをトレーニングする手順;
リクエスタコンピューティングデバイスから、リクエストされたオペレーティングシステムをシミュレートするリクエストを受信する手順;
前記リクエスタコンピューティングデバイスから、前記リクエストされたオペレーティングシステムによる処理がシミュレートされることになるシミュレーション入力を受信する手順;
前記リクエストされたオペレーティングシステムに対応するAIコンピュータモデルを索出する手順;
前記シミュレーション入力に対して前記索出されたAIコンピュータモデルを実行して、前記リクエストされたオペレーティングシステムによって、前記シミュレーション入力の処理をシミュレートし、それにより、シミュレートされた応答を生成する手順;及び
前記入力に応答して前記リクエストされたオペレーティングシステムのシミュレートされた出力として前記シミュレートされた応答を前記リクエスタコンピューティングデバイスに返す手順
によってオペレーティングシステムをシミュレートさせる、コンピュータプログラム製品。
【請求項】
前記対応するAIコンピュータモデルは、前記オペレーティングシステムのコマンドラインインターフェース(CLI)に入力されるコマンドの入力特徴のパターンを対応するCLI応答にマッピングするCLIコンピュータモデルである、請求項13に記載のコンピュータプログラム製品。
【請求項】
前記リクエストは、前記リクエストされたオペレーティングシステムのCLIをシミュレートするリクエストであり、前記リクエストされたオペレーティングシステムによる処理がシミュレートされることになる前記入力は、前記CLIに対するコマンドである、請求項13又は14に記載のコンピュータプログラム製品。
【請求項】
前記シミュレーション入力は、前記リクエストされたオペレーティングシステムのコマンドラインインターフェース(CLI)のためのコマンドであり、前記シミュレートされた出力は、前記索出されたAIコンピュータモデルに基づいて前記リクエストされたオペレーティングシステムをシミュレートすることによって生成されたシミュレートされたCLI応答である、先行する請求項13~15のいずれか1項に記載のコンピュータプログラム製品。
【請求項】
前記入力に応答して前記リクエストされたオペレーティングシステムのシミュレートされた出力として前記シミュレートされた応答を前記リクエスタコンピューティングデバイスに返す手順は、シミュレートされたユーザインターフェースにおいて、前記リクエストされたオペレーティングシステムのコマンドラインインターフェースを模倣するシミュレートされたCLI応答を返す手順を有する、請求項16に記載のコンピュータプログラム製品。
【請求項】
前記入力特徴のパターンは、前記オペレーティングシステムのコマンドラインインターフェースに入力されるオペレーティングシステムコマンドのパターン、及びそれらのオペレーティングシステムコマンドについての対応するオプションを含む、先行する請求項13~17のいずれか1項に記載のコンピュータプログラム製品。
【請求項】
前記1つ又は複数のオペレーティングシステムは、複数のオペレーティングシステムを含み、
前記AIコンピュータモデルをトレーニングする手順は、前記複数のオペレーティングシステムにおける異なるオペレーティングシステムごとに別個のAIコンピュータモデルをトレーニングする手順を有し、
前記AIコンピュータモデルの各々は、コマンドラインインターフェースコマンドの同じセットを、ただし前記複数のオペレーティングシステムにおける対応するオペレーティングシステムに関して、シミュレートするようにトレーニングされる、先行する請求項13~18のいずれか1項に記載のコンピュータプログラム製品。
【請求項】
少なくとも1つのプロセッサ;及び
前記少なくとも1つのプロセッサに結合された少なくとも1つのメモリ
を備え、前記少なくとも1つのメモリは、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、少なくとも:
1つ又は複数のオペレーティングシステムのオペレーティングシステムごとに、機械学習トレーニングを介して、前記オペレーティングシステムへの入力の入力特徴のパターン及び前記オペレーティングシステムからの対応する応答を学習する対応する人工知能(AI)コンピュータモデルをトレーニングする手順;
リクエスタコンピューティングデバイスから、リクエストされたオペレーティングシステムをシミュレートするリクエストを受信する手順;
前記リクエスタコンピューティングデバイスから、前記リクエストされたオペレーティングシステムによる処理がシミュレートされることになるシミュレーション入力を受信する手順;
前記リクエストされたオペレーティングシステムに対応するAIコンピュータモデルを索出する手順;
前記シミュレーション入力に対して前記索出されたAIコンピュータモデルを実行して、前記リクエストされたオペレーティングシステムによって、前記シミュレーション入力の処理をシミュレートし、それにより、シミュレートされた応答を生成する手順;及び
前記入力に応答して前記リクエストされたオペレーティングシステムのシミュレートされた出力として前記シミュレートされた応答を前記リクエスタコンピューティングデバイスに返す手順
によってオペレーティングシステムをシミュレートさせる命令を有する、装置。
【発明の詳細な説明】
【背景技術】
【】
本願は、概して、改善されたデータ処理装置及び方法に関し、より具体的には、オペレーティングシステム及びオペレーティングシステムのためのコマンドラインインターフェースの人工知能シミュレーションのための改善されたコンピューティングツール及び改善されたコンピューティングツール動作/機能
【】
コマンドラインインターフェース(Command-line interface:CLI)は、プログラムを実行し、コンピュータファイルを管理し、コンピュータとインタラクトするために使用されるテキストベースユーザインターフェースである。CLIに入力されたコマンドは、コンピュータによって実行される。例えば、CLIは、タイプ「c:」のコマンドプロンプトを提供し得、ユーザは、「¥Users¥myuser>cd」等のコマンドを入力して「ディレクトリ変更」(cd)を行い、ストレージシステムに記憶された様々なフォルダをナビゲートし得る。同様に、タイプ「c:¥>npm install mysoftware」のコマンドは、ソフトウェアパッケージマネージャ「npm」を介して、ソフトウェアプログラム「mysoftware」をインストールするために使用され得る。コマンドラインインタープリタ又はコマンドラインプロセッサは、CLIを介して入力されたコマンドを解釈及び実行するために使用される。
【】
CLIは、1960年代から利用可能になっている。Linux(登録商標)(Linus Torvaldsの登録商標)、GNU(登録商標)(Free Software Foundationの登録商標)、Microsoft Windows(登録商標)(Microsoft Corporationの登録商標)、IBM AIX(登録商標)(International Business Machines(IBM)Corporationの登録商標)、Android(登録商標)(Google,LLCの登録商標)、iOS(登録商標)(Ciscoの登録商標)、Solaris、及び同様のもの等の様々なオペレーティングシステムが、CLIを提供しているが、しかしながら、様々なCLIによって認識されるコマンド及び様々なコマンドに関連付けられるオプションは、オペレーティングシステムCLIごとに著しく異なり得る。すなわち、様々なオペレーティングシステムは、異なるコマンド及び/又は異なるコマンドのオプションを認識するそれら自体のコマンドラインインタープリタ又はコマンドラインプロセッサを有する。結果として、コマンド及び/又はコマンドのオプションが1つのCLIで正しく機能し得る場合であっても、それは、他のCLIでは正しく機能しないことがある。
【】
グラフィカルユーザインターフェースの登場に起因してCLIはかつてほど一般的ではないかもしれない一方、CLIは、依然としてソフトウェア開発者、ネットワークアドミニストレータ、システムアドミニストレータ、及び情報技術(information technology:IT)プロフェッショナルにとって重要なツールである。ウェブサーバベースの動作は、CLIに関連付けられ得、多くの自動化ツールは、複数のタスクのためにCLIを呼び出す必要がある。実際、幾つかのプログラミング及び保守タスクは、グラフィカルユーザインターフェースを有しないことがあり、代わりに、CLIを利用しなければならない。その上、様々な技術においてIT認証を受け取るために、ユーザは、対応するCLIに関する習熟を実証しなければならない。
【発明の概要】
【】
1つの例示的な実施形態では、データ処理システムにおける、オペレーティングシステムをシミュレートするための方法が提供される。前記方法は、1つ又は複数のオペレーティングシステムのオペレーティングシステムごとに、機械学習トレーニングを介して、前記オペレーティングシステムへの入力の入力特徴のパターン及び前記オペレーティングシステムからの対応する応答を学習する対応する人工知能(AI)コンピュータモデルをトレーニングする段階を備える。前記方法は、リクエスタコンピューティングデバイスから、リクエストされたオペレーティングシステムをシミュレートするリクエストを受信する段階、及び前記リクエスタコンピューティングデバイスから、前記リクエストされたオペレーティングシステムによる処理がシミュレートされることになるシミュレーション入力を受信する段階を更に備える。前記方法は、前記リクエストされたオペレーティングシステムに対応するAIコンピュータモデルを索出する段階、及び前記シミュレーション入力に対して前記索出されたAIコンピュータモデルを実行して、前記リクエストされたオペレーティングシステムによって、前記シミュレーション入力の処理をシミュレートし、それにより、シミュレートされた応答を生成する段階も備える。加えて、前記方法は、前記入力に応答して前記リクエストされたオペレーティングシステムのシミュレートされた出力として前記シミュレートされた応答を前記リクエスタコンピューティングデバイスに返す段階を備える。
【】
他の例示的な実施形態では、コンピュータ可読プログラムを有するコンピュータ使用可能又は可読媒体を備えるコンピュータプログラム製品が提供される。前記コンピュータ可読プログラムは、コンピューティングデバイス上で実行されると、前記コンピューティングデバイスに、前記方法の例示的な実施形態に関してで略述された動作のうちの様々な動作及びその組み合わせを実行させる。
【】
更に別の例示的な実施形態では、システム/装置が提供される。前記システム/装置は、1つ又は複数のプロセッサ及び前記1つ又は複数のプロセッサに結合されたメモリを備えてよい。前記メモリは、前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、前記方法の例示的な実施形態に関してで略述された動作のうちの様々な動作及びその組み合わせを実行させる命令を有してよい。
【】
本発明の例示の実施形態の以下の詳細な説明において、本発明のこれら及び他の特徴及び利点が説明されることになり、又は当該詳細な説明を考慮すると当業者にとって明らかになるであろう。
【図面の簡単な説明】
【】
本発明、並びにその好ましい使用モード及び更なる目的及び利点は、例示的な実施形態の以下の詳細な説明を、添付図面と併せて読みながら参照することによって、最も良好に理解されるであろう。
【】
【図】CLIの例示のコマンドに関して、オペレーティングシステムによってサポートされるコマンドラインインターフェース(CLI)における差異を示す例示の図である。
【】
【図】例示的な実施形態の態様が実装され得、かつ発明の方法の実行に関与するコンピュータコードの少なくとも一部が実行され得る分散データ処理システム環境の例示の図である。
【】
【図】1つの例示的なインテリジェントコマンドラインインターフェースシミュレーションボット(intelligent command line interface simulation bot:ICSB)フレームワーク及びシステムの例示の図である。
【】
【図】1つの例示的なICSBフレームワーク及びシステムの例示の動作を示す例示のフロー図である。
【】
【図】1つの例示的なシミュレートされたオペレーティングシステムCLIにおけるコマンドのシミュレーションを示す例示の図である。
【】
【図】1つの例示的なICSBフレームワーク及びシステムへの入力コマンドに基づいて生成される例示のシミュレートされたCLI出力又は結果を示す例示の図である。
【】
【図】1つの例示的な、ICSBセッションの期間にわたるICSBデータ構造の例示の図である。
【発明を実施するための形態】
【】
例示的なオペレーティングシステム及びオペレーティングシステムのためのコマンドラインインターフェース(CLI)の人工知能シミュレーションのための改善されたコンピューティングツール及び改善されたコンピューティングツール動作/機能を提供する。以下の説明の目的で、オペレーティングシステムのCLIのシミュレーションが、例示的な実施形態のメカニズムを実証するための一例として使用されることになる。しかしながら、例示的な実施形態のメカニズムは、具体的なコマンドラインインターフェースのシミュレーションに限定されるものではなく、オペレーティングシステムの様々な動作をシミュレートするために実装され得ることが理解されるべきである。すなわち、シミュレーション入力としてのコマンドラインインターフェースのためのコマンドについての入力特徴の具体的なパターンの機械学習を要求するのではなく、例示的な実施形態の人工知能(AI)コンピュータモデルは、同様に、オペレーティングシステムへの他のタイプの入力についての入力特徴のパターンを学習し、そのような入力に対する対応するオペレーティングシステム応答をシミュレートし得る。それゆえ、本発明は、コマンドラインインターフェース、及びシミュレートされたオペレーティングシステムによるコマンドラインインターフェースコマンド及びオプションのシミュレートの処理に限定されるものではない。
【】
上述されたように、多くの異なるオペレーティングシステム、例えば、Linux(登録商標)(Linus Torvaldsの登録商標)、GNU(登録商標)(Free Software Foundationの登録商標)、Microsoft Windows(登録商標)(Microsoft Corporationの登録商標)、IBM AIX(登録商標)(International Business Machines(IBM)Corporationの登録商標)、Android(登録商標)(Google,LLCの登録商標)、iOS(登録商標)(Ciscoの登録商標)、Solaris等が存在し、各々がそれ自体のCLI、及びサポートされるコマンド、及びそれらのコマンドについてのオプションを有する。したがって、ユーザが1つのオペレーティングシステム及びCLIに習熟している場合がある一方、それは、そのユーザが他のオペレーティングシステム及びCLIに習熟していることを意味するものではない。その上、ユーザが異なるオペレーティングシステムCLIを学習することを希望する場合、ユーザは、各オペレーティングシステムのCLIを学習するために、物理ハードウェアをセットアップし、関心対象の各オペレーティングシステムを別個にインストール/構成する必要があることになる。これは、多大なセットアップ時間及び構成の量を要求し、これは、初心者のユーザ及び限られた技術的知識しか持たないユーザにとって困難であり得る。その上、これは、クラウドサーバをレンタルしてオペレーティングシステム環境及び対応するCLIを提供することを試みることになれば、コストの高いプロセスになり得、レンタルサーバは多くの場合、個人ユーザの実世界のオペレーティングシステム環境を正確には反映しない。これは、異なる情報技術の認証を取得することを試みている個人にとって特に問題であり、それらの個人は、CLIを実装するための機器及びソフトウェアへのアクセスを有しない場合があり、かつCLIを実装するためにオペレーティングシステムを実行するクラウドベースサーバをレンタルするリソースを有していない。
【】
図1は、CLIの例示のコマンドに関して、オペレーティングシステムによってサポートされるCLIにおける差異を示す例示の図である。示されている例では、「grep」コマンドは、複数の異なるオペレーティングシステム、例えば、Linux(登録商標)及びAIX(登録商標)において使用され得るが、一方、全てのオペレーティングシステムが「grep」コマンドについて同じオプションをサポートするわけではない。grepコマンドは、文字の特定のパターンを求めてファイルを探索し、そのパターンを含む全てのラインを表示するために使用され、例えば、「grep Apple test.txt」は、文字パターン「Apple」を有するファイル「test.txt」の全てのラインを表示することになる。多くのCLIコマンドは、コマンドに対して更なる基準、フィルタ、又は制御を記載するオプションを利用し得、異なるCLIは、これらのオプションのうちの異なるものを有効化し得る。示されている例では、オプション「-m」が利用されており、これは、Linux(登録商標)オペレーティングシステムにおいて、返される結果の最大数を指定するために使用され、例えば、「-m4」のオプションは、最初の4つの結果が探索から返されることを示す。
【】
図1に示されているように、「-m」オプションは、Linux(登録商標)オペレーティングシステムのコマンドラインインタープリタにおいてのみ定義されており、AIX(登録商標)オペレーティングシステムのコマンドラインインタープリタでは定義されていない。その代わりに、AIX(登録商標)においてLinux(登録商標)コマンド「grep -m4 Peach test.txt」について類似の結果を達成することを望む場合、コマンド「grep Peach test.txt | head -4」を実行しなければならない。例えば教育目的、認証、又は同様のもののためにCLI同士の間のそのような差異を識別することを望む場合、2つの異なるオペレーティングシステム、すなわち、Linux(登録商標)及びAIX(登録商標)を発見及びインストールし、その後、両方のオペレーティングシステムコマンドラインインターフェースにおいてオプション「-m」を伴う「grep -m4 Peach test.txt」コマンドを実行して、AIX(登録商標)オペレーティングシステムがそのようなオプションをサポートしないことを実証し、その後、いずれの他のコマンド及びオプションが手作業の労力を通して類似の結果を達成するのかを決定する必要がある。
【】
例示的な入力特徴のパターンに対するオペレーティングシステム及び/又はコマンドラインインターフェース(CLI)応答を学習する機械学習によってトレーニングされた人工知能コンピュータモデルを実装することによって、オペレーティングシステム、及び幾つかの例示的な実施形態ではオペレーティングシステムのCLIをシミュレートするためのメカニズムを提供する。このようにして、例示的な実施形態のメカニズムは、ユーザがコンピューティングデバイス上でオペレーティングシステム及び/又はCLIを実装するために必要とされる全てのリソースへのアクセスを有することを必要とすることなく、様々なオペレーティングシステム及び/又はCLIをシミュレートし得る。その上、例示的なやはりコンピューティングデバイス上でオペレーティングシステム及びそれらのCLIのインスタンスを実行するために必要とされるであろう実際のソフトウェア及びハードウェアリソースへのアクセスを有することを必要とすることなく、所与の入力に対する自身の動作に関するオペレーティングシステム及び/又はCLIの比較を容易にする。
【】
以下の説明は、本発明の実施形態の例を提供し、他の実施形態では変形及び置換が加えられ得る。ここで、本開示の様々な態様を更に明確化するために、幾つかの例が提供される。
【】
例1:データ処理システムにおける、オペレーティングシステムをシミュレートするための方法が提供される。前記方法は、1つ又は複数のオペレーティングシステムのオペレーティングシステムごとに、機械学習トレーニングを介して、前記オペレーティングシステムへの入力の入力特徴のパターン及び前記オペレーティングシステムからの対応する応答を学習する対応する人工知能(AI)コンピュータモデルをトレーニングする段階を備える。前記方法は、リクエスタコンピューティングデバイスから、リクエストされたオペレーティングシステムをシミュレートするリクエストを受信する段階、及び前記リクエスタコンピューティングデバイスから、前記リクエストされたオペレーティングシステムによる処理がシミュレートされることになるシミュレーション入力を受信する段階を更に備える。前記方法は、前記リクエストされたオペレーティングシステムに対応するAIコンピュータモデルを索出する段階、及び前記シミュレーション入力に対して前記索出されたAIコンピュータモデルを実行して、前記リクエストされたオペレーティングシステムによって、前記シミュレーション入力の処理をシミュレートし、それにより、シミュレートされた応答を生成する段階も備える。加えて、前記方法は、前記入力に応答して前記リクエストされたオペレーティングシステムのシミュレートされた出力として前記シミュレートされた応答を前記リクエスタコンピューティングデバイスに返す段階を備える。
【】
の限定は、有利には、具体的なコンピューティング環境及びオペレーティングシステムリソース、すなわち、ライブラリ、オペレーティングシステムメモリ及びプロセッサリソース等を有することを必要とすることなく、オペレーティングシステムのシミュレーションを可能にする。むしろ、オペレーティングシステムは、AIコンピュータモデルによってシミュレートされる。これは、類似の入力に関するオペレーティングシステム同士の間のオペレーティングシステム性能の差異の認識を向上させ、潜在的に異なる環境構成を有する様々なコンピューティングデバイス上にオペレーティングシステムをインストール及び構成することを必要とするのではなく、オペレーティングシステム応答をシミュレートすることによってオペレーティングシステム性能のより効率的な評価を可能にする。
【】
例2:前記対応するAIコンピュータモデルは、前記オペレーティングシステムのコマンドラインインターフェース(CLI)に入力されるコマンドの入力特徴のパターンを対応するCLI応答にマッピングするCLIコンピュータモデルである、例1及び3~11のいずれかの限定。幾つかの例示的な実施形態では、前記リクエストは、前記リクエストされたオペレーティングシステムのCLIをシミュレートするリクエストであり、前記リクエストされたオペレーティングシステムによる処理がシミュレートされることになる前記入力は、前記CLIに対するコマンドである。それゆえ、これらのの限定は、有利には、やはり、実際のオペレーティングシステム及びコマンドラインインターフェースを実装するための具体的なコンピューティング環境及びオペレーティングシステムリソースを要求することなく、入力コマンドについてオペレーティングシステムのコマンドラインインターフェースの応答出力をAIコンピュータモデルがシミュレートすることを可能にする。むしろ、コマンドラインインターフェースは、AIコンピュータモデルによってシミュレートされる。それゆえ、ユーザは、いずれのオペレーティングシステムについて自身がコマンドラインインターフェースをシミュレートすることを希望するのかを指定し、自身がシミュレートすることを希望するコマンドを指定することができ、AIコンピュータモデルは、オペレーティングシステム及びコマンドラインインターフェースを実際に実行することを必要とすることなく提示されるであろうコマンドラインインターフェースをシミュレートすることになる。これは、AIチャット又は会話ボットを通してオペレーティングシステム及びコマンドラインインターフェースのシミュレーションを容易にする。
【】
例3:前記シミュレーション入力は、前記リクエストされたオペレーティングシステムのコマンドラインインターフェース(CLI)のためのコマンドであり、前記シミュレートされた出力は、前記索出されたAIコンピュータモデルに基づいて前記リクエストされたオペレーティングシステムをシミュレートすることによって生成されたシミュレートされたCLI応答である、例1~2及び4~11のいずれかの限定。これらのの限定は、有利には、AIコンピュータモデルが、入力コマンドについてオペレーティングシステムのコマンドラインインターフェースの応答出力をシミュレートすることを可能にする。コマンドラインインターフェースは、AIコンピュータモデルによってシミュレートされる。それゆえ、ユーザは、いずれのオペレーティングシステムについて自身がコマンドラインインターフェースをシミュレートすることを希望するのかを指定し、自身がシミュレートすることを希望するコマンドを指定することができ、AIコンピュータモデルは、オペレーティングシステム及びコマンドラインインターフェースを実際に実行することを必要とすることなく提示されるであろうコマンドラインインターフェースをシミュレートすることになる。これは、オペレーティングシステム及びコマンドラインインターフェースの間で迅速にスイッチして、各々が所与のコマンドにどのように応答し、それらの応答においてどのように異なるかを把握することができるので、オペレーティングシステム及びコマンドラインインターフェースの改善された学習を容易にする。例えば、特定のコマンド及びオプションをサポートするオペレーティングシステム、及びサポートしないオペレーティングシステムを決定し得る。幾つかのケースでは、そのような学習を容易にする、オペレーティングシステム及びコマンドラインインターフェース応答の対照比較が提供され得る。
【】
例4:前記入力に応答して前記リクエストされたオペレーティングシステムのシミュレートされた出力として前記シミュレートされた応答を前記リクエスタコンピューティングデバイスに返す段階は、シミュレートされたユーザインターフェースにおいて、前記リクエストされたオペレーティングシステムのコマンドラインインターフェースを模倣するシミュレートされたCLI応答を返す段階を有する、例1~3及び5~11のいずれかの限定。それゆえ、リクエスタは、あたかもCLIとインターフェース接続しているかのように動作することができるが、CLIは、AIコンピュータモデルを介してシミュレートされる。それゆえ、リクエスタは、実際のオペレーティングシステム及び対応するCLIを実装するための具体的なハードウェア及びソフトウェアリソースへのアクセスを有する必要がないが、なお依然として、オペレーティングシステム及びCLIの実際の動作をシミュレートする結果を取得することが可能である。
【】
例5:前記入力特徴のパターンは、前記オペレーティングシステムのコマンドラインインターフェースに入力されるオペレーティングシステムコマンドのパターン、及びそれらのオペレーティングシステムコマンドについての対応するオプションを含む、例1~4及び6~11のいずれかの限定。それゆえ、リクエスタは、コマンド及びオプションの様々な組み合わせについて様々なオペレーティングシステム及びコマンドラインインターフェースをシミュレートして、様々なオペレーティングシステムがそれらのコマンド/オプションに対してどのように応答するのかを決定することができる。幾つかのケースでは、オプションは、全てのオペレーティングシステムによってサポートされなくてよく、オペレーティングシステム及びコマンドラインインターフェースによる応答をシミュレートすることによって、様々なオペレーティングシステム及びコマンドラインインターフェースを実行するためにコンピューティングデバイスをインストール及び再構成することを必要とすることなく、これらのオプションに関するオペレーティングシステム及びコマンドラインインターフェース動作における差異を迅速に識別することができる。
【】
例6:前記1つ又は複数のオペレーティングシステムは、複数のオペレーティングシステムを含み、前記AIコンピュータモデルをトレーニングする段階は、前記複数のオペレーティングシステムにおける異なるオペレーティングシステムごとに別個のAIコンピュータモデルをトレーニングする段階を有し、前記AIコンピュータモデルの各々は、コマンドラインインターフェースコマンドの同じセットを、ただし前記複数のオペレーティングシステムにおける対応するオペレーティングシステムに関して、シミュレートするようにトレーニングされる、例1~5及び7~11のいずれかの限定。それゆえ、リクエスタは、教育及び開発目的で、コマンド及びオプションの様々な組み合わせについて様々なオペレーティングシステム及びコマンドラインインターフェースをシミュレートして、様々なオペレーティングシステムがそれらのコマンド/オプションに対してどのように応答するのかを決定することができる。すなわち、いずれのコマンド及びオプションが様々なオペレーティングシステム及びコマンドラインインターフェースによってサポートされるのかを決定することができ、この知識に基づいてソフトウェアを開発することができる。その上、ユーザ認証のために、ユーザが様々なオペレーティングシステム及びそれらのコマンドラインインターフェースに精通していることが要求され得、オペレーティングシステム及びコマンドラインインターフェースのAIコンピュータモデルベースシミュレーションは、全ての自身の構成されるリソースとともにオペレーティングシステムを実行するようにコンピューティングシステムを実際に構成することを必要とすることなく、複数のオペレーティングシステムを迅速でかつ効率的な方法で比較することを容易にする。
【】
例7:前記AIコンピュータモデルは、オペレーティングシステム設計ドキュメント、サポートハブ、及びmanページを含むソースドキュメントの取り込まれたコーパスに基づいて、コマンドラインインターフェースコマンドのセット、前記コマンドラインインターフェースコマンドについてのオプション、及び前記コマンド及びオプションについての期待されるコマンドラインインターフェース出力を含むトレーニングデータセットの機械学習処理に基づいてトレーニングされる、例1~6及び8~11のいずれかの限定。このようにして、AIコンピュータモデルは、コーパスから、様々なオペレーティングシステム及びコマンドラインインターフェースが自然言語及び/又は構造化ドキュメント及び情報ソースからの様々なコマンド及びオプションをどのように処理するとともにこれらに応答するのかを学習する。これらの限定は、有利には、正確なシミュレートされた応答を提供するように、特定のオペレーティングシステムが具体的な入力にどのように応答するのか、及びオペレーティングシステムのコマンドラインインターフェースがそのような入力をどのようにハンドリングするのかを具体的にシミュレートするように例示的な実施形態のAIメカニズムを構成する。これは、やはり、オペレーティングシステム及びコマンドラインインターフェースがシミュレートされる方法を向上させ、オペレーティングシステム及びコマンドラインインターフェース性能の理解をより良好に容易にする。
【】
例8:前記リクエストは、チャットボットインターフェースを介してサブミットされた自然言語リクエストであり、前記リクエストされたオペレーティングシステム及び前記リクエストされたオペレーティングシステムによる処理がシミュレートされることになる前記シミュレーション入力を指定する、例1~7及び9~11のいずれかの限定。それゆえ、ユーザは、チャットボットとの会話を通してオペレーティングシステム及び/又はコマンドラインインターフェースをシミュレートする自然言語リクエストをサブミットすることができ、リクエストは、処理され得、オペレーティングシステム/コマンドラインインターフェースは、ユーザの自然言語リクエストに基づいてシミュレートされ得る。これは、より良好なユーザエクスペリエンスを容易にし、ユーザがオペレーティングシステム及び/又はコマンドラインインターフェースの実際のインスタンスへのアクセスを有することを要求しない。すなわち、ユーザは、特定のオペレーティングシステム及び/又はコマンドラインインターフェースのシミュレーションをリクエストする自然言語入力を単に入力し、自身がシミュレートすることを希望するコマンドを指定することができ、AIコンピュータモデルベースシステムは、あたかもそのコマンドが実際のオペレーティングシステム及び/又はコマンドラインインターフェースによって処理されたかのようなシミュレートされた応答で応答することになる。
【】
例9:シミュレートすべきオペレーティングシステムのサブセットを指定するユーザプロファイルが受信され、前記対応するAIコンピュータモデルの前記トレーニングは、前記ユーザプロファイルにおいて指定されたオペレーティングシステムの各々について実行される、例1~8及び10~11のいずれかの限定。このようにして、ユーザは、いずれのオペレーティングシステムを自身がシミュレートすることを望むのかを指定し得、ユーザがシミュレートすることを希望するオペレーティングシステムの各々について異なるAIコンピュータモデルがトレーニングされ得る。その上、これらの限定は、有利には、ユーザがオペレーティングシステム及び/又はコマンドラインインターフェースのAIコンピュータモデルベースシミュレーションを、自身の具体的なニーズ、すなわち、自身がシミュレートすることを希望するオペレーティングシステム、コマンドラインインターフェース、及びコマンドに対してカスタマイズすることを可能にする。これにより、各ユーザが、AIコンピュータモデル及びシミュレートされたオペレーティングシステム及び/又はコマンドラインインターフェースの自身のカスタマイズされた構成を有することが可能になる。
【】
例10:前記ユーザプロファイルは、前記オペレーティングシステムのサブセットについて、前記対応するAIコンピュータモデルの前記トレーニングによって学習されることになるコマンドの範囲、及び前記オペレーティングシステムのサブセットをシミュレートする際に使用すべき環境変数のデフォルトセットを更に指定する、例1~9及び11のいずれかの限定。このようにして、ユーザは、いずれのタイプのコマンドを自身がシミュレートすることを望むのかを指定することができ、いずれの環境変数をコマンドをシミュレートするために使用すべきかを指定することができる。それゆえ、ユーザは、シミュレーションを、自身が動作することを期待する特定のコンピューティング環境に対してカスタマイズすることができる。これは、有利には、異なるコンピューティング環境へのアクセスを有することを必要とすることなく、かつそれらのコンピューティング環境におけるオペレーティングシステム及びコマンドラインインターフェースの実際のインスタンスへのアクセスを有することを必要とすることなく、それらの異なるコンピューティング環境及び異なるコマンドをシミュレートする能力を提供する。
【】
例11:前記シミュレートされた応答が正しいのか又は誤っているのかを示す前記シミュレートされた応答に応答してユーザフィードバック情報が受信され、前記ユーザフィードバック情報に基づいて前記索出されたAIコンピュータモデルの前記トレーニングが更新される、例1~10のいずれかの限定。それゆえ、ユーザは、ユーザフィードバック情報を介してトレーニングが正しいのか又は修正される必要があるのかをシステムに通知することができ、この情報は、オペレーティングシステム応答及び/又はコマンドラインインターフェース応答からユーザが何を期待するのかに対してAIコンピュータモデルのトレーニングをより正確にするために使用されてよい。これにより、有利には、自身の性能及びAIコンピュータモデルによって生成されるシミュレートされた結果を改善するために、AIコンピュータモデルの連続的なトレーニングが可能になる。
【】
例12:1つ又は複数のプロセッサ、及び前記1つ又は複数のプロセッサによって実行されると、前記1つ又は複数のプロセッサに、例1~11のいずれか1つに記載の方法を実行させるように構成されているプログラム命令を集合的に記憶する1つ又は複数のコンピュータ可読記憶媒体を備えるシステム。の限定は、有利には、1つ又は複数のプロセッサを備えるシステムが、例1~11に関して説明された利点を実行及び実現することを可能にする。
【】
例13:1つ又は複数のコンピュータ可読記憶媒体、及び前記1つ又は複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令を備えるコンピュータプログラム製品であって、前記プログラム命令は、1つ又は複数のプロセッサに、例1~11のいずれか1つに記載の方法を実行させるように構成された命令を有する、コンピュータプログラム製品。の限定は、有利には、1つ又は複数のプロセッサに、例1~11に関して説明された利点を実行及び実現させるように構成されたプログラム命令を有するコンピュータプログラム製品を可能にする。
【】
例14:1つ又は複数のオペレーティングシステムをシミュレートするためのコンピュータ実装方法、システム、又はコンピュータプログラム製品。前記方法、システム又はコンピュータプログラム製品は、1つ又は複数のオペレーティングシステムのオペレーティングシステムごとに、機械学習トレーニングを介して、前記オペレーティングシステムへの入力の入力特徴のパターン及び前記オペレーティングシステムからの対応する応答を学習する対応する人工知能(AI)コンピュータモデルをトレーニングすることを備える。前記方法、システム、又はコンピュータプログラム製品は、リクエスタコンピューティングデバイスから、リクエストされたオペレーティングシステムをシミュレートするリクエストを受信することを更に備える。前記方法、システム、又はコンピュータプログラム製品は、リクエストされたオペレーティングシステムによる処理がシミュレートされることになるシミュレーション入力をリクエスタコンピューティングデバイスから受信することも備える。前記方法、システム、又はコンピュータプログラム製品は、前記リクエストされたオペレーティングシステムに対応するAIコンピュータモデルを索出することを備える。加えて、前記方法、システム、又はコンピュータプログラム製品は、前記シミュレーション入力に対して前記索出されたAIコンピュータモデルを実行して、前記リクエストオペレーティングシステムによって、前記シミュレーション入力の処理をシミュレートし、それにより、シミュレートされた応答を生成することを備える。その上、前記方法、システム、又はコンピュータプログラム製品は、前記入力に応答して前記リクエストされたオペレーティングシステムのシミュレートされた出力として前記シミュレートされた応答を前記リクエスタコンピューティングデバイスに返す。
【】
加えて、前記方法、システム、又はコンピュータプログラム製品は、前記シミュレーション入力が、前記リクエストされたオペレーティングシステムのコマンドラインインターフェース(CLI)のためのコマンドであり、前記シミュレートされた出力が、前記索出されたAIコンピュータモデルに基づいて前記リクエストされたオペレーティングシステムをシミュレートすることによって生成されたシミュレートされたCLI応答であることを備える。さらに、前記方法、システム又はコンピュータプログラム製品は、少なくとも、シミュレートされたユーザインターフェースにおいて、前記リクエストされたオペレーティングシステムのコマンドラインインターフェースを模倣するシミュレートされたCLI応答を返すことによって、前記入力に応答して前記リクエストされたオペレーティングシステムのシミュレートされた出力として前記シミュレートされた応答を前記リクエスタコンピューティングデバイスに返すことを備える。
【】
の例は、有利には、例1、3、及び4に関して説明される利点を実現する。それゆえ、例えば、ユーザは、オペレーティングシステムをインストール及び構成することを必要とすることなく、オペレーティングシステムコマンドラインインターフェースをシミュレートするインターフェースにアクセスすることができる。その代わりに、ユーザは、特定のオペレーティングシステムのシミュレーションをリクエストし、シミュレートされたコマンドラインインターフェースを提示され得る。ユーザは、自身がシミュレートさせることを希望するコマンドを指定することができ、AIコンピュータモデルは、コマンドに対するコマンドラインインターフェース応答をシミュレートし、それをシミュレートされたコマンドラインインターフェースにおいて提示する。これらの全ては、リクエストされたオペレーティングシステムを実際に実装することを必要とすることなく行われ得、なぜならば、それは、異なるオペレーティングシステムがコマンドラインインターフェースコマンド及びオプションに応答する方法を学習したAIコンピュータモデルを使用して実行されるためである。
【】
から見て取ることができるように、例示的な機械学習プロセスを通して、CLIのセットを学習し、学習されたCLIをシミュレートし、それにより、シミュレートされたCLIが、コマンドライン応答の知識ベース及びコマンドライン応答に関連付けられたCLIコマンドのパターンの機械学習に基づいてユーザ入力に動的に応答することができる、改善されたコンピューティングツール及び改善されたコンピューティングツール動作/機能を提供する。それゆえ、ユーザは、物理ハードウェアをセットアップし、実際のオペレーティングシステムをインストール/構成することを必要とすることなく、かつ関心対象のオペレーティングシステム及びCLIを提供するクラウドサーバ又は他のハードウェアをレンタルするリソースを費やすことを必要とすることなく、ユーザが好む仮想化オペレーティングシステムの下でCLIを設計、学習、及び実践することが可能である。例示的な情報技術(IT)認証及び同様のもの等の、ユーザのトレーニング及び教育を支援するCLIのシミュレーションを提供するように機能し得る。その上、例示的なユーザが異なるシミュレートされたCLI同士の間でその場で動的にスイッチするか、又は異なるCLIが同じコマンドをハンドリングする方法における差異を知覚するように複数の異なるシミュレートされたCLIを実質的に同時に提示させることができるように、シミュレートされたCLIを提供する。
【】
例示的な実施形態のメカニズムを用いると、オペレーティングシステムのシミュレーション、特にインテリジェントコマンドラインインターフェース(CLI)シミュレーションボット(ICSB)及び対応する動作/機能をサポートするためのフレームワーク及びシステムが定義される。フレームワーク及びシステムは、シミュレートされたCLIをICSBクライアントに提供するように動作するICSBサーバを含む複数の異なるコンポーネントを含み、ここで、ICSBサーバは、様々なICSBデータ構造、ICSB基準及びユーザプロファイルを管理するICSBマネージャ、CLIへのコマンド及びオプション入力のパターン及びCLIからの対応する応答を学習するICSB学習器、ICSBクライアントによって入力されたコマンドをパースし、コマンド入力に基づいてCLIをシミュレートするように動作するICSBパーサ、及びユーザフィードバックに基づいてCLIの機械学習を更新するように動作するICSB調整器を更に含む。これらのコンポーネントの動作は、以降でより詳細に説明される。
【】
加えて、ICSB動作をハンドリングするためにICSBデータ構造が定義されており、ここで、このICSBデータ構造は、1つ又は複数のオペレーティングシステムの1つ又は複数のCLIのユーザのシミュレーションを表す情報を含めるように経時的に更新される。幾つかの例示的な実施形態によれば、ICSBデータ構造は、ユーザ、オペレーティングシステム(operating system:OS)、及びCLI特徴データを含み、これは、ユーザ識別子(UserID)、オペレーティングシステム名(OSName)、オペレーティングシステム及びユーザ識別子についての構成情報(Configuration[OSName][UserID])、ユーザによって起動されたオペレーティングシステムのCLIリスト(CLIList[OSName])、ユーザIDに対応するユーザによって入力されたコマンドに関してオペレーティングシステムごとにログを維持するオペレーティングシステム及びユーザ識別子についてのCLIログ(CLILog[OSName][UserID])、ユーザによってシミュレートされたCLIに入力された最新のコマンドを指定するユーザコマンド(UserCMD)、ユーザによってシミュレートされたCLIに入力された最新のコマンドオプションを指定するコマンドオプション(CMDOptions)、最新の入力されたコマンドについてシミュレートされたCLIによって生成されたコマンド出力(CMDOutput)、及び入力されたコマンドを処理するときにCLIにおいてエラーが発生したか否か、例えば、CLIが特定のコマンド又はオプションをサポートしないか否かを指定するエラー状態(Error State)を含む。ICSBデータ構造におけるこれらの特徴は、以降でより詳細に説明されるように、ユーザが自身のICSBクライアントを介してICSBサーバとインタラクトするに従い経時的に装入及び更新され、それにより、幾つかの特徴は、最初の時間間隔中には装入されないことがあるが、後続の時間間隔中に経時的に装入及び更新され得る。それゆえ、ICSBデータ構造は、ICSBクライアントを介したユーザ入力、及びICSBサーバとのユーザセッション中に実行されたCLIシミュレーションの結果に基づいて装入及び更新される動的データ構造である。
【】
フレームワーク及びシステムは、ユーザがICSB基準、例えば、サポートされるオペレーティングシステム、CLIの範囲、すなわち、シミュレートされたCLIに含めるべきコマンド及びオプションの数及び内容、デフォルト環境変数(例えば、ロケール(例えば、ユーザの話す言語)、IPアドレス、CPU/GPU/メモリ、ストレージタイプ及びサイズ、利用可能なコンピューティングツール等)、及び同様のものを構成及びカスタマイズすることを可能にするように動作する。で言及されたICSBマネージャは、そのような構成及びカスタマイズがそれを介して実行され得るインターフェースを提供するように動作してよく、ユーザのICSBクライアントコンピューティングデバイス及びICSBサーバの間のクライアントセッションのためのICSBデータ構造を含むICSBプロファイル、並びに所望の場合のそのようなICSBデータ構造の履歴、及びICSB基準を管理及び維持してよい。ユーザプロファイルは、ユーザの各々についてICSBマネージャによって定義及び維持されてよく、ここで、そのようなユーザプロファイルは、ユーザがICSBサーバを介してシミュレートすることを希望する特定のオペレーティングシステムに関する情報、コマンド及びオプションのいずれのサブセットをユーザがシミュレートすることを望んでいるのか、並びに例えば、教育、トレーニング、及び認証の目的で使用及び/又は閲覧され得るCLIシミュレーション履歴情報を指定してよい。
【】
ICSBフレームワーク及びシステムのICSB学習器は、機械学習動作を通して、複数のオペレーティングシステムの各々の下で、CLIコマンド、オプション、及び期待される出力のセットを学習する。機械学習動作は、多様なソース及びドキュメント(例えば、Red Books、サポートハブ、ウェブサイト(例えば、Wikipedia及び同様のもの)、manページ、設計ドキュメント等)を含むコーパスから取得された知識に基づいて実行されてよい。ICSB学習器は、構造化又は非構造化データを含み得るオペレーティングシステムCLI情報の様々なソースを含むコーパスを取り込み、対応するCLI応答又は出力とともにCLIコマンド/オプションのパターンを学習する。例えば、タイプ「grep」のコマンドがLinux(登録商標)ユーザドキュメント、Wikipedia、manページ、設計ドキュメント等から学習されることをICSB基準が指定する場合、ICSB学習器は、「grep」及び対応するCLI出力の間の関連付けを学習し、例えば、grepコマンドが入力された場合、CLIが、当該grepコマンドにおいて指定された文字列に一致するテキストパターンを有するファイルのラインで応答する。したがって、入力のパターンは、出力のパターンと相関している。
【】
ICSBクライアントコンピューティングデバイスは、オペレーティングシステム及び/又はオペレーティングシステムのCLIをシミュレートするユーザリクエストをモニタリングするICSBモニタを実行するように構成されてよい。ICSBモニタは、ユーザインターフェースを介して、指定されたオペレーティングシステム及び/又はCLIをシミュレートするユーザリクエストを受信してよく、ユーザリクエストをICSBサーバに送信してよい。ICSBサーバは、リクエストがそれを介してICSBモニタによってサブミットされ得るインターフェースを提示してよい。例えば、ICSBサーバ及びICSBモニタは、チャットボットタイプインターフェース又は他の自然言語インターフェースを提示してよく、それを介して、ユーザは、「-mオプションを伴うAIX(登録商標)grep命令についてCLIをシミュレートせよ」等の自然言語リクエスト又は同様のものをサブミットしてよい。ICSBサーバのICSBパーサは、リクエストをパースし、ICSB抽出器を介して、User ID、オペレーティングシステム名、コマンド名、相関したオプション、及び同様のものを含むリクエストの様々な重要な要素を抽出してよい。このようにして、ICSB抽出器及びICSBパーサは、リクエストされたオペレーティングシステム及びコマンドについてのICSB識別器を識別することが可能であり、これは、その後、入力コマンドパターン及びICSB学習器からの出力又は応答パターンの学習された関連付けに基づいてシミュレートされるCLIを実装するオペレーティングシステムシミュレーションエージェントに送信される。オペレーティングシステムシミュレーションエージェントは、ICSBプロファイル、ユーザプロファイル、及びICSB基準に従って、動的に又は「その場で(on-the-fly)」ユーザによって指定されたオペレーティングシステムを模倣し、相関したオプションを伴う指定されたコマンドに対するCLI応答をシミュレートするようにCLIシミュレータを実行する。このようにして、CLIシミュレータは、ユーザによって指定されたオペレーティングシステムCLIのためのユーザによって指定されたコマンドに対するマッピングされた期待される出力又は応答を生成する。
【】
ICSBクライアントの一部としてのクライアントコンピューティングデバイス上で実行されるICSBレンダリングエンジンは、シミュレートされたユーザコマンド出力において期待される出力又は応答を提示する。ICSBレンダリングエンジンは、ユーザがシミュレートされたCLIを介してコマンドを入力し得るようにCLIを更にシミュレートしてよく、このコマンドは、ICSBサーバに送信されるリクエストに変換されてよく、これは、で論述されたように、CLIコマンド/オプションのパターン及びCLI出力のパターンの間の学習された相関に基づいてCLIをシミュレートするように処理される。同様に、シミュレーションの結果は、オペレーティングシステムのコマンドラインインターフェースを模倣するシミュレートされたユーザインターフェースとしてリクエスタに提示されてよい。
【】
CLIのこのシミュレーションは、ユーザが当該ユーザのコンピューティング環境における実際の正しいCLI応答を表すとは考えない出力又は結果を返し得ることが理解されるべきである。ICSBレンダリングエンジンは、ユーザインターフェース要素を提供してよく、それを介して、ユーザは、返されたCLI出力又は結果がユーザの理解に従って正しいか否かを指定し、かつ入力されたコマンド及びオプションについてユーザの期待する結果が何であるかに関してフィードバックを提供してよい。このユーザフィードバックは、CLIの機械学習モデルベースシミュレーションが何を生成するのか、及び入力されたコマンド及びオプションに対する正しいCLI応答としてユーザが何を参照することを期待するのかの間の任意の相違を補正するために機械学習モデルを更新するように、ユーザフィードバックを、入力コマンド及びオプションのパターンをCLI出力又は結果にマッピングする機械学習モデルを調整するICSB調整器に送信するICSBサーバに提供されてよい。
【】
それゆえ、例示的なコマンド及びオプション入力に対するコマンドラインインターフェース応答の機械学習を通して、オペレーティングシステムのコマンドラインインターフェースをシミュレートすることを具体的に対象とする、改善されたコンピューティングツール及び改善されたコンピューティングツール動作/機能を提供する。例示的な様々なオペレーティングシステムコマンドラインインターフェースについての入力コマンド及びオプションにおけるパターンの、コマンドラインインターフェース応答又は出力のパターンとの関連付けを自動的に学習する。パターンのこのマッピングは、その場合、オペレーティングシステムコマンドラインインターフェースごとに、CLIモデルリポジトリにおいて維持され得るコマンドラインインターフェース(command line interface:CLI)モードを表す。CLIモデルリポジトリのCLIモデルは、その後、指定されたコマンド及びオプションについて指定されたオペレーティングシステムのCLIをシミュレートし、それによって、シミュレートされたCLI応答又は出力を生成するために、ユーザからのリクエストに動的に適用されてよい。これらの全ては、オペレーティングシステムを実際にインストールし、それを特定のコンピュータ実行環境のために構成することを必要とすることなく行われる。
【】
例示的な実施形態のICSBフレームワーク及びシステムは、教育、トレーニング、及び認証タスク等の、異なるオペレーティングシステムコマンドラインインターフェースが達成することを要求するタスクに対してコスト効果的なソリューションを提供する。すなわち、オペレーティングシステムコマンドラインインターフェースをシミュレート及び仮想化することによって、例示的なこれらのタスクのために必要とされるハードウェア及びソフトウェアのコストを著しく低減することができる。
【】
加えて、例示的な実施形態のICSBフレームワーク及びシステムは、様々なオペレーティングシステムコマンドラインインターフェースのアクセシビリティを促進する。すなわち、仮想化オペレーティングシステムコマンドラインは、1つ又は複数のクラウドコンピューティングシステム、サーバコンピューティングシステム、又は同様のものを介してサービスとしてICSBフレームワーク及びシステムが提供され得るので、データネットワーク接続、例えば、インターネット接続を有する任意の場所からアクセスされ得る。これにより、個人及び組織が、自らの教育、トレーニング、及び認証タスク、並びにCLIアクセスを要求し得る他の任意のタスクを実行するために、CLIのシミュレーションにアクセスすることが著しく容易になる。
【】
例示的な実施形態のICSBフレームワーク及びシステムは、仮想化オペレーティングシステムコマンドラインインターフェースが具体的なニーズ及び要件を満たすために修正され得るので、カスタマイズ可能である。すなわち、ユーザは、所望に応じてオペレーティングシステムコマンドラインインターフェースを動的に選択し、ユーザのニーズに応じてそれらの間で「その場で」スイッチしてよい。これにより、ICSBフレームワーク及びシステムが異なるオペレーティングシステム及びそれらのコマンドラインインターフェースのインストール及び構成のために長い待機期間を要求することなくユーザリクエストに動的に応答するので、より適合された学習エクスペリエンスが可能になる。
【】
例示的な実施形態のICSBフレームワーク及びシステムは、ユーザが物理ハードウェア又は重要なデータを損傷するリスクを伴うことなく実験及び学習するための安全でかつセキュアな環境を提供する。例示的な実施形態のICSBフレームワーク及びシステムは、ICSBフレームワーク及びシステムがリクエストに応じてCLIパターン、及びオペレーティングシステムについてのCLIに対する入力及び出力のパターンの間のマッピングを学習することができるので、複数のユーザ及び異なるオペレーティングシステムに対応するように容易にスケーリングすることができる。これにより、ICSBフレームワーク及びシステムが、大規模組織にとっての重要な教育、トレーニング、認証、及び実験ツールとなることが可能になる。
【】
ICSBフレームワーク及びシステムは、様々なクラウドコンピューティングシステムオファリング、例えばIBMクラウドに統合して、ユーザにオンデマンドで仮想化オペレーティングシステムコマンドラインインターフェースを提供することができ、これは、自らのアプリケーションのために異なるオペレーティングシステムを実行する必要がある組織のためのコスト効果的でかつスケーラブルなソリューションである。ICSBフレームワーク及びシステムは、異なるオペレーティングシステム及び構成を要求する人工知能(AI)モデル、例えばIBM Watson、及びアプリケーションの開発及びテストにおいて使用することができ、これにより、これらのモデルの正確性及び信頼性が改善され得る。ICSBフレームワーク及びシステムは、IBM Securityを介して等で、異なるサイバーセキュリティ脅威及び脆弱性をシミュレート及びテストするために使用することができ、これは、組織が自らのセキュリティ対策を改善し、サイバー攻撃から保護するのに役立ち得る。ICSBフレームワーク及びシステムは、IBM Researchを介して等で、異なるオペレーティングシステム及び構成で実験するために研究者によって使用することができ、これは、新たな技術及びイノベーションの開発をもたらし得る。
【】
例示的な実施形態及び当該例示的な実施形態によって実行される改善されたコンピュータ動作の様々な態様の論述を続ける前に、この説明全体を通して、「メカニズム」という用語は、様々な動作、機能、及び同様のものを実行する本発明の要素を指すのに使用されることが最初に理解されるべきである。「メカニズム」は、この用語が本明細書において使用される場合、装置、手順、又はコンピュータプログラム製品の形態での、例示的な実施形態の機能又は態様の実装であってよい。手順のケースでは、手順は、1つ又は複数のデバイス、装置、コンピュータ、データ処理システム、又は同様のものによって実装される。コンピュータプログラム製品のケースでは、具体的な「メカニズム」に関連付けられた機能を実装するか又は動作を実行するために、コンピュータプログラム製品内又は当該コンピュータプログラム製品上で具現化されたコンピュータコード又は命令によって表されたロジックが、1つ又は複数のハードウェアデバイスによって実行される。それゆえ、本明細書において説明されるメカニズムは、特殊なハードウェア、ハードウェア上で実行され、それによって、ハードウェアが本来であれば実行することが可能ではなかったであろう本発明の特殊な機能を実装するようにハードウェアを構成するソフトウェア、命令がハードウェアによって容易に実行可能になり、それによって、本明細書において記載された機能及び説明された具体的なコンピュータ動作を実行するようにハードウェアを具体的に構成するように、媒体上に記憶されたソフトウェア命令、機能を実行するための手順又は方法、又はのいずれかの組み合わせとして実装されてよい。
【】
本明細書及び特許請求の範囲は、例示的な実施形態の特定の特徴及び要素に関して、「1つの」、「~のうちの少なくとも1つ」、及び「~のうちの1つ又は複数」という用語を利用し得る。これらの用語及び語句は、特定の例示的な実施形態に存在する特定の特徴又は要素のうちの少なくとも1つが存在するが、1つよりも多くも存在し得ることを述べることを意図されていることが理解されるべきである。すなわち、これらの用語/語句は、本明細書又は特許請求の範囲を、存在している単一の特徴/要素に限定することを意図されておらず、又は複数のそのような特徴/要素が存在することを要求することも意図されていない。反対に、これらの用語/語句は、単に少なくとも単一の特徴/要素を要求し、複数のそのような特徴/要素が本明細書及び特許請求の範囲の範囲内に存在する可能性がある。
【】
その上、「エンジン」という用語の使用は、本発明の実施形態及び特徴の説明に関して本明細書において使用される場合、エンジンに起因する及び/又はエンジンが実行するアクション、段階、プロセス等を達成及び/又は実行するためのいずれの特定の技術的な実装も限定することを意図されておらず、「エンジン」は、コンピュータ技術において実装され、エンジンが手動入力と組み合わせて機能し得るか又は手動又は精神的消費のために意図された出力を提供し得る場合であっても、そのアクション、段階、プロセス等が精神上のプロセスとして実行されることも又は手作業の労力を通して実行されることもないという点で、限定されることが理解されるべきである。エンジンは、指定された機能を実行するように具体的に構成された、ハードウェア上で実行されるソフトウェア、専用ハードウェア、及び/又はファームウェア、又はこれらの任意の組み合わせのうちの1つ又は複数として実装される。ハードウェアは、機械可読メモリにロード又は記憶され、プロセッサによって実行され、それによって、プロセッサを本発明の1つ又は複数の実施形態の機能のうちの1つ又は複数を含む特殊な目的のために具体的に構成する適切なソフトウェアと組み合わせたプロセッサの使用を含み得るが、これに限定されるものではない。さらに、具体的なエンジンに関連付けられた任意の名称は、別段指定されない限り、参照の便宜の目的のためであり、特定の実装に限定することを意図されていない。加えて、あるエンジンに起因する任意の機能は、複数のエンジンによって等しく実行されてもよいし、同じタイプ又は異なるタイプの別のエンジンの機能に組み込まれ、及び/又は組み合わされてもよいし、又は様々な構成の1つ又は複数のエンジンにわたって分散されてもよい。
【】
加えて、以下の説明は、例示的な実施形態の様々な要素についての複数の様々な例を使用して、例示的な実施形態の例示の実装を更に示し、例示的な実施形態のメカニズムの理解を支援することを目的としていることが理解されるべきである。これらの例は、非限定的であることを意図され、例示的な実施形態のメカニズムを実装するための様々な可能性を網羅しているわけではない。これらの様々な要素について、本発明の趣旨及び範囲から逸脱することなく、本明細書において提供された例に加えて、又はそれらの代わりに利用され得る多くの他の代替的な実装が存在することが、本明細書を考慮すると当業者には明らかとなるであろう。
【】
本開示の様々な態様は、説明文、フローチャート、コンピュータシステムのブロック図、及び/又はコンピュータプログラム製品(computer program product:CPP)の実施形態に含まれる機械ロジックのブロック図によって説明される。任意のフローチャートに関して、関与する技術に依存して、所与のフローチャートにおいて示されているものとは異なる順序で動作が実行され得る。例えば、やはり関与する技術に依存して、連続するフローチャートブロックに示される2つの動作は、逆の順序で、単一の統合された段階として、同時に、又は少なくとも部分的に時間が重複する方式で実行されてよい。
【】
コンピュータプログラム製品の実施形態(「CPP実施形態」又は「CPP」)は、所与のCPP請求項において指定されたコンピュータ動作を実行するための命令及び/又はデータに対応する機械可読コードを集合的に含む1つ又は複数の記憶デバイスのセットに集合的に含まれる1つ又は複数の記憶媒体(「媒体」とも呼ばれる)の任意のセットについて説明するために、本開示において使用される用語である。「記憶デバイス」は、コンピュータプロセッサによる使用のために命令を保持及び記憶することができる任意の有形デバイスである。コンピュータ可読記憶媒体は、限定されるものではないが、電子記憶媒体、磁気記憶媒体、光学記憶媒体、電磁記憶媒体、半導体記憶媒体、機械記憶媒体、又は前述したものの任意の適した組み合わせであってよい。これらの媒体を含む幾つかの既知のタイプのストレージデバイスとしては:ディスケット、ハードディスク、ランダムアクセスメモリ(random access memory:RAM)、リードオンリメモリ(read-only memory:ROM)、消去可能プログラマブルリードオンリメモリ(erasable programmable read-only memory:EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(static random access memory:SRAM)、コンパクトディスクリードオンリメモリ(compact disc read-only memory:CD-ROM)、デジタル多用途ディスク(digital versatile disk:DVD)、メモリスティック、フロッピディスク、(パンチカード又はディスクの主要面に形成されたピット/ランド等の)機械的に符号化されたデバイス、又は前述したものの任意の適した組み合わせが挙げられる。コンピュータ可読記憶媒体は、当該用語が本開示において使用される場合、無線波又は他の自由に伝播する電磁波、導波路を介して伝播する電磁波、光ファイバケーブルを通過する光パルス、ワイヤを介して通信される電気信号、及び/又は他の送信媒体等の一時的信号それ自体の形態におけるストレージとして解釈されないものとする。当業者であれば理解されるように、データは、典型的には、アクセス、デフラグメンテーション又はガベージコレクション中等の、ストレージデバイスの通常の動作中の幾つかの不定期な時点において移動するが、これによりストレージデバイスが一時的とされることはなく、なぜならば、データはそれが記憶されている間は一時的ではないためである。
【】
明確性のために別個の実施形態の文脈において説明されている本発明の特定の特徴は、単一の実施形態において組み合わせて提供されてもよいことが理解されるべきである。反対に、簡潔性のために単一の実施形態の文脈において説明されている本発明の様々な特徴は、別個に又は任意の適したサブコンビネーションで提供されてもよい。
【】
本発明は、本明細書において説明される特定のメカニズム及び機能を実装するようにそれ自体が具体的に構成されているハードウェア及び/又はソフトウェアで構成される、具体的に構成されたコンピューティングシステム、具体的に構成されたコンピューティングシステムによって実装される方法、及び/又は、本明細書において説明されるメカニズム及び機能を実装するようにコンピューティングシステムを具体的に構成するためにコンピューティングシステムにロードされるソフトウェアロジックを含むコンピュータプログラム製品であってよい。システムとして記載されるのか、方法として記載されるのか、又はコンピュータプログラム製品として記載されるのかを問わず、本明細書において説明される例示的な改善されたコンピューティングツール、及びこの改善されたコンピューティングツールによって実装される方法論を具体的に対象とすることが理解されるべきである。特に、例示的な実施形態の改善されたコンピューティングツールは、インテリジェントコマンドラインインターフェースシミュレーションボットを具体的に提供する。改善されたコンピューティングツールは、CSI出力又は応答を伴うコマンド及びオプションパターンの機械学習、様々なオペレーティングシステムのためのCSIのシミュレーション、及びそのようなシミュレーションを介してユーザからのコマンド入力を処理して、対応するオペレーティングシステムをインストール及び構成することを必要とすることなくシミュレートされた応答又は出力を生成すること等のメカニズム及び機能を実装する。これらの動作は、精神上のプロセス又は同様のもの等の、技術的環境の外部にあるか、又はその支援を受けた人間によって実用的に実行することができないものである。改善されたコンピューティングツールは、少なくとも、改善されたコンピューティングツールが、例えば、教育、トレーニング、及び認証の目的で様々なオペレーティングシステムのコマンドラインインターフェースをユーザに対して動的にシミュレートすることが可能であるという点で、方法論の実用的なアプリケーションを提供する。
【】
図2は、例示的な実施形態の態様が実装され得、かつ発明の方法の実行に関与するコンピュータコードの少なくとも一部が実行され得る分散データ処理システム環境の例示の図である。すなわち、コンピューティング環境200は、インテリジェントコマンドラインインターフェースシミュレーションボット(ICSB)フレームワーク及びシステム300等の、発明の方法の実行に関与するコンピュータコードの少なくとも一部の実行のための環境の一例を含む。ICSBフレームワーク及びシステム300に加えて、コンピューティング環境200は、例えば、コンピュータ201、ワイドエリアネットワーク(wide area network:WAN)202、エンドユーザデバイス(end user device:EUD)203、リモートサーバ204、パブリッククラウド205、及びプライベートクラウド206を含む。この実施形態では、コンピュータ201は、プロセッサセット210(処理回路220及びキャッシュ221を含む)、通信ファブリック211、揮発性メモリ212、永続ストレージ213(オペレーティングシステム222、及びで識別されたようなICSBフレームワーク及びシステム300を含む)、ペリフェラルデバイスセット214(ユーザインターフェース(user interface:UI)デバイスセット223、ストレージ224、及びモノのインターネット(Internet of Things:IoT)センサセット225を含む)、及びネットワークモジュール215を含む。リモートサーバ204は、リモートデータベース230を含む。パブリッククラウド205は、ゲートウェイ240、クラウドオーケストレーションモジュール241、ホスト物理マシンセット242、仮想マシンセット243、及びコンテナセット244を含む。
【】
コンピュータ201は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、スマートウォッチ又は他のウェアラブルコンピュータ、メインフレームコンピュータ、量子コンピュータ、又はプログラムの実行、ネットワークへのアクセス、又はリモートデータベース230等のデータベースへのクエリが可能である、現在既知の又は将来開発される他の任意の形態のコンピュータ又はモバイルデバイスの形態を取ってよい。コンピュータ技術の技術分野においては十分に理解されているように、また技術に依存して、コンピュータ実装方法の実行は、複数のコンピュータの中で、及び/又は複数のロケーション間で分散してよい。他方、コンピューティング環境200に関するこの提示において、提示を可能な限り単純に保つため、詳細な論述は、単一のコンピュータ、具体的にはコンピュータ201に焦点を置いている。コンピュータ201は、図2のクラウドでは示されていないが、それはクラウドに位置してよい。他方、コンピュータ201は、断定的に示され得る任意の範囲を除き、クラウド内に存在することを要求されない。
【】
プロセッサセット210は、現在既知の又は将来開発される任意のタイプの1つ又は複数のコンピュータプロセッサを含む。処理回路220は、複数のパッケージ、例えば、複数の協調された集積回路チップに分散してよい。処理回路220は、複数のプロセッサスレッド及び/又は複数のプロセッサコアを実装してよい。キャッシュ221は、プロセッサチップパッケージ内に位置するメモリであり、典型的には、プロセッサセット210上で実行されているスレッド又はコアによる高速アクセスのために利用可能であるべきデータ又はコードのために使用される。キャッシュメモリは、典型的には、処理回路との相対的近接性に依存して、複数のレベルに編成される。代替的には、プロセッサセットのための幾つか又は全てのキャッシュが、「オフチップ」に位置し得る。幾つかのコンピューティング環境では、プロセッサセット210は、キュビットを用いて機能し、量子コンピューティングを実行するように設計され得る。
【】
コンピュータ可読プログラム命令は、典型的には、コンピュータ201のプロセッサセット210によって一連の動作段階を実行させ、それによって、コンピュータ実装方法を実現するためにコンピュータ201上にロードされ、それにより、そのようにして実行される命令は、本書面に含まれるコンピュータ実装方法(「本発明の方法」と総称される)のフローチャート及び/又は説明文において指定された方法をインスタンス化する。これらのコンピュータ可読プログラム命令は、様々なタイプのコンピュータ可読記憶媒体、例えばキャッシュ221、及び以下で論述される他の記憶媒体に記憶される。プログラム命令及び関連付けられたデータは、本発明の方法の実行を制御及び指示するために、プロセッサセット210によってアクセスされる。コンピューティング環境200では、発明の方法を実行するための命令の少なくとも一部は、の永続ストレージ213におけるICSBフレームワーク及びシステム300に記憶されよい。
【】
通信ファブリック211は、コンピュータ201の様々なコンポーネントが互いに通信することを可能にする信号導通経路である。典型的には、このファブリックは、バス、ブリッジ、物理的入力/出力ポート及び同様のものを構成するスイッチ及び導電性経路等の、スイッチ及び導電性経路から作製される。光ファイバ通信経路及び/又はワイヤレス通信経路等、他のタイプの信号通信経路が使用されてよい。
【】
揮発性メモリ212は、現在既知の又は将来開発される任意のタイプの揮発性メモリである。例としては、ダイナミックタイプランダムアクセスメモリ(RAM)又はスタティックタイプRAMが挙げられる。典型的には、揮発性メモリは、ランダムアクセスによって特徴付けられるが、断定的に示されていない限りこれは要求されない。コンピュータ201において、揮発性メモリ212は、単一のパッケージ内に位置し、コンピュータ201の内部に存在するが、代替的に又は加えて、揮発性メモリは、複数のパッケージにわたって分散し、及び/又はコンピュータ201に対して外部に位置してよい。
【】
永続ストレージ213は、現在既知の又は将来開発される、コンピュータのための任意の形態の不揮発性ストレージである。このストレージの不揮発性は、コンピュータ201に及び/又は永続ストレージ213に直接電力が供給されているか否かを問わず、記憶されたデータが維持されることを意味する。永続ストレージ213は、リードオンリメモリ(ROM)であってよいが、典型的には、永続ストレージの少なくとも一部分は、データの書き込み、データの削除、及びデータの再書き込みを可能にする。永続ストレージの幾つかのよく知られた形態は、磁気ディスク及びソリッドステートストレージデバイスを含む。オペレーティングシステム222は、様々な既知のプロプライエタリオペレーティングシステム、又は、カーネルを採用するオープンソースのポータブルオペレーティングシステムインターフェース(Portable Operating System Interface)タイプのオペレーティングシステム等の幾つかの形態を取ってよい。ICSBフレームワーク及びシステム300に含まれるコードは、典型的には、発明の方法の実行に関与するコンピュータコードのうちの少なくとも一部を含む。
【】
ペリフェラルデバイスセット214は、コンピュータ201のペリフェラルデバイスのセットを含む。コンピュータ201のペリフェラルデバイス及び他のコンポーネントの間のデータ通信接続は、Bluetooth接続、近距離無線通信(Near-Field Communication:NFC)接続、ケーブル(ユニバーサルシリアルバス(universal serial bus:USB)タイプのケーブル等)によって行われる接続、挿入タイプの接続(例えば、セキュアデジタル(secure digital:SD)カード)、ローカルエリア通信ネットワークを介して行われる接続、及びさらにはインターネット等のワイドエリアネットワークを介して行われる接続等の様々な方法で実装されてよい。様々な実施形態において、UIデバイスセット223は、ディスプレイスクリーン、スピーカ、マイクロフォン、ウェアラブルデバイス(ゴーグル及びスマートウォッチ等)、キーボード、マウス、プリンタ、タッチパッド、ゲームコントローラ、及びハプティックデバイス等のコンポーネントを含んでよい。ストレージ224は、外部ハードドライブ等の外部ストレージ、又はSDカード等の挿入可能なストレージである。ストレージ224は、永続的及び/又は揮発性であってよい。幾つかの実施形態では、ストレージ224は、キュビットの形式のデータを記憶するための量子コンピューティング記憶デバイスの形態を取ってよい。コンピュータ201が大量のストレージを有することが要求される(例えば、コンピュータ201が大規模データベースをローカルに記憶及び管理する)実施形態では、このストレージは、複数の地理的に分散したコンピュータによって共有されるストレージエリアネットワーク(storage area network:SAN)等の非常に大量のデータを記憶するように設計されたペリフェラル記憶デバイスによって提供されてよい。IoTセンサセット225は、モノのインターネット応用において使用することができるセンサから構成される。例えば、あるセンサは温度計であってよく、別のセンサは動作検出器であってよい。
【】
ネットワークモジュール215は、コンピュータ201がWAN202を介して他のコンピュータと通信することを可能にする、コンピュータソフトウェア、ハードウェア、及びファームウェアの集合体である。ネットワークモジュール215は、モデム又はWi-Fi信号送受信機等のハードウェア、通信ネットワーク送信用にデータをパケット化及び/又はデパケット化するためのソフトウェア、及び/又はインターネットを介してデータを通信するためのウェブブラウザソフトウェアを含んでよい。幾つかの実施形態では、ネットワークモジュール215のネットワーク制御機能及びネットワーク転送機能は、同じ物理ハードウェアデバイス上で実行される。他の実施形態(例えば、ソフトウェア定義ネットワーキング(software-defined networking:SDN)を利用する実施形態)では、ネットワークモジュール215の制御機能及び転送機能は、制御機能が幾つかの異なるネットワークハードウェアデバイスを管理するように、物理的に別個のデバイス上で実行される。本発明の方法を実行するためのコンピュータ可読プログラム命令は、典型的には、ネットワークモジュール215に含まれるネットワークアダプタカード又はネットワークインターフェースを通して、外部コンピュータ又は外部記憶デバイスからコンピュータ201にダウンロードすることができる。
【】
WAN202は、現在既知の又は将来開発される、コンピュータデータを通信するための任意の技術によって非ローカル距離を介してコンピュータデータを通信することが可能である任意のワイドエリアネットワーク(例えば、インターネット)である。幾つかの実施形態では、WANは、Wi-Fiネットワーク等の、ローカルエリアに位置するデバイス間でデータを通信するように設計されたローカルエリアネットワーク(local area network:LAN)によって置換され及び/又は補足されてよい。WAN及び/又はLANは、典型的には、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及びエッジサーバ等のコンピュータハードウェアを含む。
【】
エンドユーザデバイス(EUD)203は、エンドユーザ(例えば、コンピュータ201を運用する企業の顧客)によって使用及び制御される任意のコンピュータシステムであり、コンピュータ201に関連してで論述された形態のいずれかを取り得る。EUD203は、典型的には、コンピュータ201の動作から有益かつ有用なデータを受信する。例えば、コンピュータ201がエンドユーザに推奨を提供するように設計されている仮定のケースでは、この推奨は、典型的には、コンピュータ201のネットワークモジュール215から、WAN202を介して、EUD203に通信されることになる。このようにして、EUD203は、エンドユーザに対して、推奨を表示、又は別様に提示することができる。幾つかの実施形態では、EUD203は、シンクライアント、ヘビークライアント、メインフレームコンピュータ、デスクトップコンピュータ等のようなクライアントデバイスであってよい。
【】
リモートサーバ204は、コンピュータ201に対して少なくとも幾分かのデータ及び/又は機能を提供する任意のコンピュータシステムである。リモートサーバ204は、コンピュータ201を運用する同じエンティティによって制御及び使用されてよい。リモートサーバ204は、コンピュータ201等の他のコンピュータによる使用のために有益かつ有用なデータを収集及び記憶する機械を表す。例えば、コンピュータ201が履歴データに基づいて推奨を提供するように設計及びプログラミングされている仮定のケースでは、その場合、この履歴データは、リモートサーバ204のリモートデータベース230からコンピュータ201に提供されてよい。
【】
パブリッククラウド205は、ユーザによる直接的なアクティブ管理を伴うことなく、コンピュータシステムリソース及び/又は他のコンピュータ能力、特にデータストレージ(クラウドストレージ)及びコンピューティングパワーのオンデマンドの利用可能性を提供する、複数のエンティティによる使用のために利用可能な任意のコンピュータシステムである。クラウドコンピューティングは、典型的には、リソースの共有を活用して、コヒーレンス及び規模の経済を達成する。パブリッククラウド205のコンピューティングリソースの直接的なアクティブ管理は、クラウドオーケストレーションモジュール241のコンピュータハードウェア及び/又はソフトウェアによって実行される。パブリッククラウド205によって提供されるコンピューティングリソースは、典型的には、パブリッククラウド205における及び/又はパブリッククラウド205にとって利用可能な物理コンピュータのユニバースである、ホスト物理マシンセット242のコンピュータを構成する様々なコンピュータ上で実行される仮想コンピューティング環境によって実装される。仮想コンピューティング環境(virtual computing environment:VCE)は、典型的には、仮想マシンセット243からの仮想マシン及び/又はコンテナセット244からのコンテナの形態を取る。これらのVCEは、イメージとして記憶されてよく、様々な物理マシンホストの中で及びその間で、イメージとして、又はVCEのインスタンス化の後に、のいずれかで転送され得ることが理解される。クラウドオーケストレーションモジュール241は、イメージの転送及び記憶を管理し、VCEの新たなインスタンス化を展開し、VCE展開のアクティブなインスタンス化を管理する。ゲートウェイ240は、パブリッククラウド205がWAN202を介して通信することを可能にする、コンピュータソフトウェア、ハードウェア、及びファームウェアの集合体である。
【】
ここで、仮想化コンピューティング環境(VCE)の幾分かの更なる説明が提供される。VCEは、「イメージ」として記憶することができる。VCEの新たなアクティブインスタンスは、イメージからインスタンス化することができる。VCEの2つのよく知られたタイプは、仮想マシン及びコンテナである。コンテナは、オペレーティングシステムレベル仮想化を使用するVCEである。これは、カーネルが、コンテナと呼ばれる複数の隔離されたユーザ空間インスタンスの存在を可能にする、オペレーティングシステム特徴を指す。これらの隔離されたユーザ空間インスタンスは、典型的には、それらにおいて実行されているプログラムの観点からは実際のコンピュータとして挙動する。通常のオペレーティングシステム上で実行されているコンピュータプログラムは、コネクテッドデバイス、ファイル及びフォルダ、ネットワーク共有、CPUパワー、及び定量化可能なハードウェア能力等、そのコンピュータの全てのリソースを利用することができる。しかしながら、コンテナ内部で実行されているプログラムは、コンテナの、及びコンテナに割り当てられたデバイスのコンテンツのみを使用することができ、この特徴はコンテナ化として知られている。
【】
プライベートクラウド206は、コンピューティングリソースが単一の企業による使用のためにのみ利用可能であることを除き、パブリッククラウド205に類似している。プライベートクラウド206がWAN202と通信するものとして示されている一方、他の実施形態では、プライベートクラウドは、インターネットから完全に切断され、ローカル/プライベートネットワークを介してのみアクセス可能であってよい。ハイブリッドクラウドは、異なるタイプの複数のクラウド(例えば、プライベート、コミュニティ又はパブリッククラウドタイプ)の複合体であり、多くの場合、異なるベンダによってそれぞれ実装される。複数のクラウドの各々は、別個でかつ個別のエンティティのままであるが、より大きなハイブリッドクラウドアーキテクチャは、複数の構成クラウドの間のオーケストレーション、管理、及び/又はデータ/アプリケーションポータビリティを可能にする、標準化された、又はプロプライエタリの技術によってともに結合されている。この実施形態では、パブリッククラウド205及びプライベートクラウド206は両方とも、より大きいハイブリッドクラウドの一部である。
【】
図2に示されているように、コンピューティングデバイス、例えばコンピュータ201又はリモートサーバ204のうちの1つ又は複数は、ICSBフレームワーク及びシステム300を実装するように具体的に構成されてよい。コンピューティングデバイスの構成は、例示的な実施形態に関して本明細書において説明される動作の実行及び出力の生成を容易にするために、特定用途向けハードウェア、ファームウェア、又は同様のものの提供を含んでよい。コンピューティングデバイスの構成はまた、又は代替的には、1つ又は複数の記憶デバイスに記憶され、コンピューティングデバイスの1つ又は複数のハードウェアプロセッサに、例示的な実施形態に関して本明細書において説明される動作を実行するとともに出力を生成するようにプロセッサを構成するソフトウェアアプリケーションを実行させるために、コンピューティングデバイス201又はリモートサーバ204等のコンピューティングデバイスのメモリにロードされるソフトウェアアプリケーションの提供を含んでよい。その上、特定用途向けハードウェア、ファームウェア、ハードウェア上で実行されるソフトウェアアプリケーション、又は同様のものの任意の組み合わせが、例示的な実施形態の趣旨及び範囲から逸脱することなく使用されてよい。
【】
コンピューティングデバイスがこれらの方法のうちの1つで構成されると、コンピューティングデバイスは、例示的な実施形態のメカニズムを実装するように具体的に構成された特殊なコンピューティングデバイスになり、汎用コンピューティングデバイスではないことが理解されるべきである。その上、以降で説明されるように、例示的な実施形態のメカニズムの実装は、コンピューティングデバイスの機能を改善し、コマンド及びオプションの入力パターンについてのコマンドラインインターフェース機能の機械学習を容易にし、ユーザリクエスト及びユーザによって指定されたコマンド及びオプションに基づいて様々なオペレーティングシステムのためのコマンドラインインターフェースを動的にシミュレートする有用でかつ具体的な結果を提供する。
【】
図2は、ICSBフレームワーク及びシステム300が単一のコンピューティングシステムを介して実装される例示の実施形態を示している一方、例示的な実施形態はそのようなものに限定されるものではないことが理解されるべきである。むしろ、他の例示的な実施形態では、ICSBフレームワーク及びシステム300のコンポーネント及びそれらの動作/機能は、本発明の趣旨及び範囲から逸脱することなく、複数のコンピューティングデバイス又はシステム、例えば、複数のサーバコンピューティングデバイスにわたって分散され得る。図2は、単に、例示のコンピューティングシステムを介した1つの可能な実装を実証する一例である。
【】
図3は、1つの例示的なインテリジェントコマンドラインインターフェースシミュレーションボット(ICSB)フレームワーク及びシステムの例示の図である。図2に示された動作コンポーネントは、専用コンピュータハードウェアコンポーネント、その場合にそのコンポーネントに起因する具体的なコンピュータ動作を実行するように構成されているコンピュータハードウェア上で実行されるコンピュータソフトウェア、又は専用コンピュータハードウェア及びコンピュータソフトウェアによって構成されたコンピュータハードウェアの任意の組み合わせとして実装され得る。これらの動作コンポーネントは、人間の介入を伴うことなく起因した動作を自動的に実行するが、入力、例えば、オペレーティングシステムのコマンドラインインターフェースのシミュレーションのためのリクエスト、コマンドラインインターフェースシミュレーションを介してシミュレートされることになるコマンド及びオプション、及び同様のものが人間によって提供されてよく、結果として得られる出力は、例えばユーザによって入力されたコマンド及びオプションに対するコマンドラインインターフェース応答をシミュレートして人間を支援し得ることが理解されるべきである。本発明は、ハードウェアを有し、かつ関心対象のオペレーティングシステムをインストール/構成することを明示的に必要とすることなく、ユーザがオペレーティングシステム及びこれらのオペレーティングシステムのコマンドラインインターフェースを経験し得る方法を改善し、コマンドラインインターフェース及び具体的なコマンド及びコマンドのオプションとの組み合わせに対するそれらの応答の機械学習、及びユーザによって指定されたコマンド及びオプションについてのこれらのコマンドラインインターフェースの後続のシミュレーションを実装する具体的なソリューションを提供することを対象とする自動的に動作するコンピュータコンポーネントを具体的に対象とする。これらの動作は、精神上のプロセスとして人間によって実用的に実行することができず、いかなる人間の活動の編成も対象としていない。
【】
図3に示されているように、インテリジェントコマンドラインインターフェース(CLI)シミュレーションボット(ICSB)フレームワーク及びシステム300は、ICSBサーバ310及びICSBクライアント360を含む。ICSBサーバ310は、ICSBクライアント360を実装するクライアントコンピューティングシステムによって1つ又は複数のデータネットワーク370を介してアクセス可能な1つ又は複数のコンピューティングシステム/デバイス上で実装されたコンポーネントを含んでよい。アプリケーション又はクライアントコンピューティングデバイス380上で実行されるブラウザアプリケーションに対するプラグインであり得るICSBクライアント360は、ICSBモニタ362及びICSBレンダリングエンジン364を含む。ICSBクライアント360は、ICSBサーバ310に、クライアントコンピューティングデバイス380のユーザ390がICSBサーバ310のCLIシミュレーションを起動することを望んでいることを通知するロジックを含む。
【】
ICSBサーバ310は、ICSBマネージャ320、及びICSB学習器330、ICSBパーサ340、及びICSB調整器350を含む。ICSBマネージャ320は、ICSBプロファイルエンジン322及びユーザプロファイルストレージ328を更に含み、ここで、ICSBプロファイルエンジン322は、ICSBデータ構造324及びICSB基準ストレージ326と併せて動作する。ICSBプロファイルエンジン322は、ICSBデータ構造324及びICSB基準326、並びにユーザプロファイルストレージ328におけるユーザプロファイルを作成、維持、更新、及び削除するためのロジックを含む。ICSBマネージャ320は、ICSBクライアント360からのユーザ入力、及びICSBサーバ310によって生成され、かつICSBクライアント360に返されるCLIシミュレーションの結果に応答して、動的にかつ自動的に動作する。ICSBデータ構造324は、様々なオペレーティングシステム、CLI、及びICSBクライアント360及びICSBサーバ310の間のCLIシミュレーションセッション中に動的にかつ自動的に装入されるユーザ特徴を記憶する。
【】
ICSB基準326は、サポートされることになるオペレーティングシステム、CLIシミュレーションの範囲、例えば、シミュレートすべきコマンド及びオプションの数及び内容、デフォルト環境変数(例えば、ローカル、IPアドレス、CPU/GPU/メモリ、ストレージタイプ及びサイズ、ツール等)、及び同様のもの等の、CLIシミュレーションをサポートするための要件を記憶する。ICSB基準326は、ICSBサーバ310によって提供されるCLIシミュレーションに変更を加えることを希望するアドミニストレータ又は他の権限を有する者によって修正されてよく、例えば、新たなオペレーティングシステムコマンドラインインターフェースがサポートされることになる場合、当該新たなオペレーティングシステムコマンドラインインターフェースについてのこの情報が、ICSB基準326に追加されてよい。
【】
ユーザプロファイル328は、特定のユーザに固有であるICSB基準326と類似の情報を記憶してよい。例えば、ユーザプロファイル328は、ユーザがICSBサーバ310を介してシミュレートすることを希望する特定のオペレーティングシステムに関する情報、コマンド及びオプションのいずれのサブセットをユーザがシミュレートすることを望んでいるのか、並びに例えば、教育、トレーニング、及び認証の目的で使用及び/又は閲覧され得るCLIシミュレーション履歴情報を記憶してよい。ユーザプロファイル328は、CLIシミュレーションについての追加の基準、例えば、ICSB基準326とは異なり得る、シミュレートすべき異なるオペレーティングシステムコマンドラインインターフェースを指定してよい。例えば、ユーザがICSB基準326によってサポートされるものとは異なるオペレーティングシステムコマンドラインインターフェースをシミュレートすることを希望する場合、追加のオペレーティングシステムCLI要件が、ユーザプロファイル328において指定されてよく、ICSB学習器330は、そのユーザによってリクエストされたオペレーティングシステムCLIのためのCLIモデルを自動的に学習するように動作してよい。
【】
ICSB学習器330は、CLIモデルリポジトリ334に記憶されている1つ又は複数のCLIモデルを生成するために、入力CLIコマンド及びオプションのパターンの、様々なCLIデータソース及びドキュメント332からのCLI出力のパターンとの関連付けを自動的に学習する機械学習ロジックを含む。ICSB学習器330は、構造化及び非構造化データ、例えば、Wikipedia、オペレーティングシステムユーザドキュメンテーション、manページ(「man」は、後続して指定されるコマンドの定義を返すコマンドであり、例えば、「man grep」は、コマンド「grep」の定義を与える)、設計ドキュメント、red books、サポートハブウェブページ、及び同様のもの等の、様々なソースからの電子ドキュメントを取り込んでよい。例えば、図1に示されたように、ドキュメンテーションの1つのソースは、様々なオペレーティングシステムコマンドラインによってサポートされるオプションの構造化テーブルを含んでよい。図1に示されたテーブルは、オプション、例えば、「-m」、及びオペレーティングシステムであるAIX(登録商標)、Linus(GNU)、又はSolarisがそのオプションをサポートするのか否かを示し、ここで、空白のエントリは、そのオプションがサポートされていることを示し、「N」エントリは、それがサポートされていないことを示す。
【】
ICSB学習器330は、データの様々なソースを取り込み、構造化及び非構造化データの機械学習処理を通して、様々なオペレーティングシステムによってサポートされるコマンド及びオプション、及びそれらのコマンド及びオプションの結果としてコマンドラインインターフェースインタプリタが返すことになる対応する結果を学習する。すなわち、コマンド及びオプションのパターンが取り込まれたデータから抽出されてよく、コマンドラインインターフェースインタプリタ結果のパターンも抽出され、対応するコマンド及びオプションにマッピングされることになる。このようにして、ICSB学習器330は、コマンド及びオプションのパターンをCLI結果のパターンに関連付けるCLIモデルを学習する。ICSB学習器330は、モデル化されることになる個別のオペレーティングシステムCLIごとにそのような動作を実行してよい。ICSB学習器330によるこの機械学習を通して生成される各CLIモデルは、CLIモデルリポジトリ334に記憶されてよい。ICSB学習器330は、CLIシミュレータ348によってCLIシミュレーションを実行する際に使用するために、オンデマンドでCLIモデルリポジトリ334から記憶されたCLIモデルを索出するためのロジックを更に提供する。
【】
ICSBパーサ340は、ICSBクライアント360のICSBモニタ362を介して、例えば、Chat GPT等のAIチャットボット又は他の自然言語テキストベースインターフェース、及びICSBサーバ310を介して受信されたユーザリクエストをパースするためのロジックを含む。ICSBパーサ340は、ICSBクライアント360へのユーザ390入力をパースし、それから特徴を抽出することが可能であり、ここで、これらの抽出された特徴は、前述されたように、ICSBデータ構造324において存在する特徴のうちの1つ又は複数に対応する。例えば、特徴は、ICSBデータ構造324において維持されているものと類似のユーザ、オペレーティングシステム(OS)及びCLI特徴データを含んでよい。で言及されたように、ICSBデータ構造324は、ユーザ識別子(UserID)、オペレーティングシステム名(OSName)、オペレーティングシステム及びユーザ識別子についての構成情報(Configuration[OSName][UserID])、ユーザによって起動されたオペレーティングシステムのCLIリスト(CLIList[OSName])、ユーザIDに対応するユーザによって入力されたコマンドに関してオペレーティングシステムごとにログを維持するオペレーティングシステム及びユーザ識別子についてのCLIログ(CLILog[OSName][UserID])、ユーザによってシミュレートされたCLIに入力された最新のコマンドを指定するユーザコマンド(UserCMD)、ユーザによってシミュレートされたCLIに入力された最新のコマンドオプションを指定するコマンドオプション(CMDOptions)、最新の入力されたコマンドについてシミュレートされたCLIによって生成されたコマンド出力(CMDOutput)、及び入力されたコマンドを処理するときにCLIにおいてエラーが発生したか否か、例えば、CLIが特定のコマンド又はオプションをサポートしないか否かを指定するエラー状態(Error State)等の特徴を含む。これらの特徴のうちの幾つかは、ユーザ入力から直接取得されるのではなく、CLIシミュレーションの結果から取得されてよく、ユーザ入力から特徴を具体的にパース及び抽出するのではなく、ICSBサーバ動作に基づいてICSBサーバによって装入されてよい。
【】
一例として、ICSBサーバ310は、具体的に、コマンドラインインターフェースの出力又は結果とのコマンドラインインターフェースコマンド/オプションのマッピングを学習し、結果として得られるコマンドラインインターフェース(CLI)モデルを使用して、ユーザによって指定されたファイル及びコマンド/オプションに基づいてユーザによってリクエストされたCLIをシミュレートすることが可能であるためにAIチャットボット能力を補強及び拡張する例示的な実施形態のメカニズムで、AIチャットボットを実装してよい。ICSBパーサ340は、ICSBクライアント360を介して受信され、ICSBモニタ362によってOS及びコマンドラインをシミュレートするリクエストとして識別されたユーザ390からのそのようなリクエストをパースし、具体的なオペレーティングシステムコマンドラインインターフェース、コマンドラインコマンド及びオプション、及びICSBデータ構造の他の特徴を識別するICSB識別器344を含むユーザリクエストから特徴を抽出するようにICSB抽出器342を起動する。例えば、ICSB抽出器342は、ユーザ識別子、OS名、OSについての構成情報、ユーザコマンド、コマンドオプション、及び同様のものを含む、ICSBクライアント360から受信されたユーザ入力における特徴を識別してよい。
【】
ICSBパーサ340は、ICSB抽出器342からの抽出された特徴に基づいて、ICSBクライアント360からのユーザリクエストにおいてユーザ390によって指定されたオペレーティングシステム環境のシミュレーションを生成するように動作するオペレーティングシステム(OS)シミュレーションエージェント346を起動するように更に動作する。ICSBクライアント360のユーザ390がシミュレートすべきコマンドを入力することに応答して、OSシミュレーションエージェント346は、シミュレートされるOSに対応するCLIモデルリポジトリ334からのCLIモデルに基づいて、コマンドラインインターフェースインタプリタをシミュレートするようにCLIシミュレータ348を起動する。シミュレーションは、例えば、ICSB基準326及びユーザプロファイル328によって更に構成されてよく、CLIシミュレーションに対応する特徴及びCLIシミュレーションへのユーザ入力は、ICSBマネージャ320及びICSBプロファイルエンジン322を介してICSBデータ構造324を更新するために使用されてよい。
【】
CLIシミュレータ348において実装されたCLIモデルは、コマンド入力の特徴パターンを対応するCLI応答又は出力にマッピングする。それゆえ、CLIシミュレータ348は、コマンド及びオプション(存在する場合)に応答して、CLIインタプリタの応答をシミュレートし、結果を返す。幾つかのケースでは、コマンド及びオプションは、特定のOS及びCLIインタプリタによってサポートされなくてよく、そのケースでは、CLIシミュレータ348は、特定のコマンド及び/又はオプションがサポートされていないことを示し、いずれのコマンド及び/又はオプションがサポートされているかに関しての追加の支援、例えば、サポートされるオプションのリストを提供する結果を返してよい。ICSBパーサ340は、その後、CLIシミュレーションによって生成されたコマンド/オプションの結果を返し、ICSBクライアント360は、ICSBレンダリングエンジン364を介してその結果をクライアントコンピューティングデバイスのユーザに提示する。
【】
例えば、ユーザ390は、自身のICSBクライアント360を介して、タイプ「In Redhat Linux」の自然言語リクエストを入力して、ICSBサービス310にRedhat(登録商標)(Red Hat,Inc.の登録商標) Linux(登録商標)(Linus Torvaldsの登録商標)をシミュレートするようにリクエストしてよく、サンプルファイル、例えば「test.txt」を入力してよい。本明細書において提供される例では、「test.txt」ファイルは、後の参照図において示されるように、最初の6つのラインがタイプ「Apple-1」~「Apple-6」であり、後続する6つのラインが「Peach-1」~「Peach-6」であるテキストファイルである。ユーザ390は、ユーザ390がシミュレートすることを希望するコマンドラインインターフェースコマンド及びオプション、例えば、文字列「Apple」を含むtest.txtファイルの最初のラインを取得する「grep -m1 Apple test.txt」を更に入力してよい。ICSBサーバ310は、CLIをシミュレートし、この例では「Apple-1」のシミュレートされた結果を提供する。しかしながら、このシミュレーションのいかなる時点においても、ユーザがリクエストされたオペレーティングシステムをインストール及び構成する、又はリクエストされたオペレーティングシステムを実行するための機器を提供する、という要件は存在しない。実際、ユーザ390は、ユーザのクライアントコンピューティングデバイス380上には存在しない場合であっても、オペレーティングシステム及びそれらのコマンドラインインターフェースをシミュレートし得る。
【】
ICSBクライアント360のユーザ390は、任意の時点において、シミュレーションのオペレーティングシステム及びコマンドラインインターフェースを動的にスイッチするリクエストをサブミットし、さらにはその場で様々なオペレーティングシステムの間を行き来してスイッチし得ることが理解されるべきである。ICSBサーバ310は、そのようなリクエストを処理し、必要に応じて、CLIモデルリポジトリ334からの対応するCLIモデルに基づいて、OSシミュレーションエージェント346によってシミュレートされるOS及びCLIシミュレータ348によって実行される対応するCLIシミュレーションを自動的にかつ動的に変更する。これは、実際のコンピュータハードウェア上に実際のオペレーティングシステムをインストール及び構成する要件が存在しないので、知覚される遅延を、存在する場合であってもほとんど伴うことなく実行される。
【】
CLIシミュレーションの結果は、ユーザ390がICSBレンダリングエンジン364にコマンドを入力したことに応答してそれらが生成されるに従い、ICSBサーバ310からICSBクライアント360に返される。ICSBレンダリングエンジン364は、ユーザ390が、実際にシミュレーションとインタラクトしているときに、実際のオペレーティングシステムの実際のコマンドラインインターフェースとインタラクトしていると知覚するように、コマンドラインインターフェースをエミュレートする。ICSBレンダリングエンジン364は、ICSBサーバ310からCLIシミュレーション応答を受信し、それらをユーザ390に表示されるシミュレートされたコマンドラインインターフェースにおいてレンダリングする。ユーザ390は、シミュレートされたコマンドラインインターフェースにコマンド及びオプションを入力してよく、それらは、その後、CLIシミュレーションリクエストとしてICSBサーバ310に送信され、それは、その後CLIシミュレーション及び対応するCLIモデルを使用して、ユーザの入力されたコマンドについてのCLIインタプリタの結果をシミュレートし、それらの結果をCLIシミュレーション応答としてICSBクライアント360に戻すように提供する。
【】
幾つかのケースでは、ユーザ390は、CLIシミュレータ348によって生成され、ICSBクライアント360に提供された結果が正確でないと感じ得る。そのようなケースでは、ユーザ390は、例えば、ICSBレンダリングエンジン364によって提供されるユーザインターフェース要素、又は後続の自然言語入力を介してAIチャットボットインターフェースにユーザフィードバックを提供してよい。ユーザフィードバックは、その後、CLIモデルリポジトリ334におけるCLIモデルを調整するためにICSB調整器350によって処理されてよい。すなわち、ICSB調整器350は、ユーザフィードバックを、ユーザによって入力されたコマンドに関してCLIモデルを再トレーニングするためのグラウンドトゥルースとして利用してよい。この再トレーニングにおいて、CLIモデルのノードの重み又は入力特徴パターン及びCLIによってシミュレートされた結果の間のマッピングが、CLIによってシミュレートされた結果におけるエラーを低減するために更新されてよい。
【】
それゆえ、上述されたように、例示的なコマンドラインインターフェースをシミュレートするための改善されたコンピューティングツール及び改善されたコンピューティングツール動作/機能を提供し、それにより、ユーザが、それらのオペレーティングシステムのコマンドラインインターフェースを利用するためにオペレーティングシステムをインストール及び構成するための必要なハードウェア及びソフトウェアへのアクセスを有することを要求されない。これは、多くの異なる教育、トレーニング、認証、研究、及び製品開発産業に対する多大な利益である。例示的な実施形態のメカニズムを用いると、ユーザは、自身が利用することを希望する様々な全てのオペレーティングシステムを実行するための必要なハードウェアを取得するためにリソースを費やすことをもはや要求されず、かつ、自身の教育、トレーニング、認証、研究、及び製品開発の目標を達成するために、自身が利用することを希望する様々なオペレーティングシステムをインストール及び構成するための時間及び労力を費やすことをもはや要求されない。
【】
例えば、例示的な実施形態のメカニズムを用いなければ、ユーザは、最もリソース利用集約的なオペレーティングシステムをハンドリングするために必要なハードウェア容量を有することを確実にする必要があることになり、その後、自身が利用することを希望するオペレーティングシステムの各々についてライセンスを取得しなければならず、その後、オペレーティングシステムのためのソフトウェアを取得しなければならず、その後、ユーザが様々なオペレーティングシステムを利用することを希望するに従い、各オペレーティングシステムを別個に、かつ順次、インストール及び構成しなければならない。これは、1つのオペレーティングシステムをアンインストールし、新たなオペレーティングシステムをインストールし、当該新たなオペレーティングシステムをコンピューティング環境のために構成する必要があることによって、当該新たなオペレーティングシステムを利用することを可能とするためにオペレーティングシステムの間でスイッチするのに数時間を要し得るので、極めてリソース集約的でかつ時間集約的な動作であり、これは、ユーザが異なるオペレーティングシステム及びそのコマンドラインインターフェースを利用することを希望するたびに行われる必要があることになる。
【】
例示的な実施形態のメカニズムは、AI機械学習ツールを通してオペレーティングシステム及びコマンドラインインターフェースを仮想化し、それにより、ユーザは、自身のクライアントデバイス上の既存のウェブブラウザアプリケーションに対するプラグインのインストール以外にいかなる新たな又は追加のハードウェア又はソフトウェアも有する必要がなく、なぜならば、オペレーティングシステム及びコマンドラインインターフェースは、ICSBサーバ310においてシミュレートされ、CLIによってシミュレートされた結果がICSBクライアント360に返されるためである。これにより、その場でオペレーティングシステム同士の間の自動的でかつ動的なスイッチが更に可能になる。
【】
幾つかの例示的な実施形態では、ICSBクライアント360は、異なるオペレーティングシステムコマンドラインインターフェースシミュレーションを表す複数のウィンドウが、実質的に同時に提示されることを容易にしてよく、それにより、同じ又は異なるコマンド及びオプションに関する異なるオペレーティングシステム同士の間のCLIの動作の比較が、ユーザ390にとって可視となるように行われ得る。例えば、1つのウィンドウは、IBM AIX(登録商標)オペレーティングシステムコマンドラインのシミュレーションを実行してよく、一方、別のウィンドウは、同じ又は異なるコマンド及びオプションに関するSolarisオペレーティングシステムコマンドラインのシミュレーションを実行してよい。そのような複数のオペレーティングシステムディスプレイは、ユーザがユーザリクエストを通して新たなオペレーティングシステムにスイッチすることに応答して引き起こされてよく、そのケースでは、当該新たなオペレーティングシステム及びコマンドラインインターフェースシミュレーション結果を示す新たなウィンドウが、クライアントコンピューティングデバイス380上のICSBレンダリングエンジン364によって自動的に生成されてよい。これは、特に教育、トレーニング、及び認証の目的で有用である。
【】
図4は、1つの例示的なICSBフレームワーク及びシステムの例示の動作を示す例示のフロー図である。図4において略述される動作は、例示的な実施形態の改善されたコンピュータツールによって自動的に具体的に実行され、精神上のプロセスとして又は人間の活動を編成することによって人間によって実行されることを意図されておらず、実用的に実行することができないことが理解されるべきである。反対に、人間は、幾つかのケースでは、図4において記載されている動作の実行を開始し得、かつ幾つかのケースでは、図4において記載されている動作の帰結として生成される結果を利用し得るが、図4における動作それら自体は、自動化された方式において改善されたコンピューティングツールによって具体的に実行される。
【】
図4に示されているように、ユーザ390は、自身のクライアントコンピューティングデバイス上にICSBクライアント360をインストールし、その後、ICSBサーバ310にログインしてよく、これは、オペレーティングシステムコマンドラインインターフェースをシミュレートするための例示的な実施形態のツール及び機能を含むように補強されているAIチャットボット又は他の自然言語ベースAIコンピューティングシステムを提供してよい。OS及び当該OSのコマンドラインをシミュレートするリクエストは、ICSBクライアント360のICSBモニタ362によって識別されることになる。ICSBモニタ362は、OS及びコマンドラインシミュレーションのためのユーザリクエストをICSBパーサ340に送信することになる。ICSBパーサ340は、ユーザリクエストをパースし、ICSBデータ構造特徴、例えば、OS名、ユーザ識別子、コマンド名、コマンドオプション等を示すユーザリクエストから特徴を抽出するようにICSB抽出器342を起動する。ICSB識別器344は、抽出特徴においてこれらの特徴を識別し、ICSBマネージャ320を介してICSBデータ構造324を更新する。
【】
抽出及び識別された特徴に基づいて、ユーザがコマンドラインインターフェースシミュレーションのために新たなオペレーティングシステムを使用することをリクエストしているか否かに関して決定が行われる。リクエストしている場合、オペレーティングシステムシミュレーションエージェント346は、オペレーティングシステム環境をシミュレートするように起動される。その後、又はオペレーティングシステムが新たなオペレーティングシステムではない場合、コマンドラインインターフェースシミュレータ348は、ユーザリクエストにおけるユーザ入力コマンドに対してコマンドラインインターフェースをシミュレートするように起動される。これは、動作の「ランタイム」又はシミュレーションフェーズ420として表される。
【】
コマンドラインインターフェースシミュレータ348は、CLIリポジトリ334に記憶されたCLIモデル、並びにCLIシミュレーション、例えば、ユーザプロファイルデータ328及びICSB基準326を構成するために使用される他のパラメータに基づいて動作する。ユーザ入力及びシミュレーション結果は、ユーザがICSBクライアント360を介してICSBサーバ310とインタラクトするに従い、経時的にICSBデータ構造324のフィールドに装入するために使用される。動作の機械学習フェーズ430の中、ICSBサーバ310は、ユーザプロファイル328及びICSB基準326によって指定されたように、様々なオペレーティングシステム及びそれらのオペレーティングシステムのコマンドラインインターフェースのコマンド/オプションについてCLIモデルを学習するように、データソース332から構造化及び非構造化ドキュメント及びデータを取り込むようにICSB学習器330を起動する。ICSBサービスプロファイル322及びユーザプロファイル328は、例えばプレーンテキスト又はXMLフォーマット等の構成ファイルである。ICSBサービスプロファイル322(ICSBマネージャ320を通してアドミニストレータによって制御及び編集される)は、全てのICSBユーザのための高レベル構成パラメータ及び設定を含んでよい。ICSBサービスプロファイル322は、ICSBデータ構造及びICSB基準を含んでよい。アドミニストレータは、ICSBデータ構造の属性及びICSB基準における基準を追加/削除/変更してよい。例えば、シミュレートされたLinux(登録商標)及びAIX(登録商標)オペレーティングシステムの背景のデフォルト色を、それぞれ黒及び白とし、アドミニストレータは、例えば、全てのエラーメッセージのための色をデフォルトで赤に設定してよい。
【】
同様に、ユーザプロファイル328は、個人特性及びカスタマイズ設定を含む。例えば、第1のユーザ、例えば、USER-1は、ユーザプロファイルにおいて、新たなシミュレートされたオペレーティングシステム、例えば、Microsoft Windows11、及びMicrosoft Windows11に関連するCLIドキュメント及びソース332を追加/保存することができる。その上、ユーザは、シミュレートされたオペレーティングシステムであるLinuxの背景色を、可読性のために白色に設定することができる。ユーザに固有の任意の個人特性及びカスタマイズ設定が、ユーザプロファイル328において設定されてよい。
【】
様々なオペレーティングシステム及びコマンドラインインターフェースのためのCLIモデルは、CLIシミュレータ348による索出のためにCLIリポジトリ334に記憶されて、CLIによってシミュレートされた結果を生成し、これらは、その後、リクエストされたオペレーティングシステムのためのシミュレートされたコマンドラインインターフェースのグラフィカル/テキスト表現、及び具体的には、実際のオペレーティングシステムの実際のCLIによって生成されるであろうユーザによって入力されたコマンド及びオプションのシミュレートされた結果のレンダリングのために、ICSBレンダリングエンジン364に戻るように提供される。
【】
例示的な実施形態のメカニズムは、教育、トレーニング、認証、研究、及び製品開発を容易にするために多くの異なる方法で利用されてよい。例示的な実施形態の1つの利点は、様々なオペレーティングシステムのコマンドラインインターフェース同士の間の差異、並びに1つ又は複数のコマンドラインインターフェースにおける異なるコマンド及びオプションについて生成されるCLI結果における差異を迅速に、かつリソース及び時間の消費をほとんど伴うことなく識別する能力である。図5は、1つの例示的なシミュレートされたオペレーティングシステムCLIにおけるコマンドのシミュレーションを示す例示の図である。示された例では、ユーザリクエスト又はユーザ入力は、シミュレートすべき特定のオペレーティングシステムコマンドラインの指定512を含む要素510として示されており、示された例では、これは、Linuxである。ユーザリクエストは、リストファイルコマンド「ls-1」を更に指定し、「ls-1」コマンドを、出力言語(又はロケール)についての様々なオプション、例えば、英語(en_US.UTF-8)、中国語(zh_CN.UTF-8)、及びロシア語(ru_RU.UTF-8)とともに更にリストする。要素520において見て取ることができるように、これらのオプションの各々について、単語「total」が対応するロケール言語において提示される異なる出力が存在する。そのような出力520は、入力されたユーザコマンドに対する異なるCLI応答をシミュレートするCLIシミュレーションを使用して示されるコマンド入力510を有する例示的な実施形態のメカニズムを使用して迅速及び容易に取得されてよい。
【】
それゆえ、例示的な同じOSにおける同じオプションを伴う同じCLIが、異なる言語/ロケール設定の下での実行に起因して異なる出力を与え得ることを実証するように動作し得ることが、図5から見て取ることができる。実際の動作システムにおいて、この例における類似のデモ結果を得るために、ユーザは、要求される言語/ロケールパッケージ(この例では、en_US.UTF-8、zh_CN.UTF-8、及びru_RU.UTF-8)をインストールする必要があり、異なるロケールパッケージのそのようなインストールは、ルート権限を必要とし得、それは、実際のシステムにおいて多言語パッケージをインストール及び構成するのは困難であり、不便であり、かつ時間を要する。しかしながら、例示的な実施形態において、異なるロケール環境を模倣することができ、これは、教育、新たな機能の設計、及び顧客サポートアプリケーションにおいて非常に有用である。
【】
図6は、1つの例示的なICSBフレームワーク及びシステムへの入力コマンドに基づいて生成される例示のシミュレートされたCLI出力又は結果を示す例示の図である。シミュレートされたCLI出力又は結果は、例えば図6に示されているスクリーン640~660をレンダリングし得るICSBレンダリングエンジンを介してユーザに提示されてよい。これらのスクリーンは、オペレーティングシステム及びそのコマンドラインインターフェースのインスタンスをインストール及び構成した場合に見ることになるであろう実際のコマンドラインインターフェースをシミュレートするが、実際にはこれらのスクリーン640~660は、ICSBクライアントからのユーザリクエストに基づいてICSBサーバによって生成されたシミュレートされたCLI応答を提示するシミュレートされたコマンドラインインターフェースである。
【】
図6に示されているように、ユーザリクエスト又は入力610は、Redhat Linux(登録商標)オペレーティングシステムコマンドラインインターフェースをシミュレートするユーザリクエスト612を含み、これに、コマンドが実行されることになる「test.txt」ファイル614の指定が後続し、ここで、例示の「test.txt」ファイルは、最初の6つのラインが「Apple-1」~「Apple-6」であり、次の6つのラインが「Peach-1」~「Peach-6」である。ユーザリクエスト610は、「grep -m1 Apple test.txt」のコマンド616を更に指定し、ここで、「grep」は、コマンドであり、「-m1」は、当該コマンドについてのオプションであり、「Apple」は、探索されることになる文字列であり、「test.txt」は、コマンド616が実行されることになるファイルである。このgrepコマンド616は、内部に文字列「Apple」を有するtest.txtファイルの最初のラインを返すことを意図されている。
【】
ユーザセッションは、後続のユーザリクエスト620及び630を更に含む。これらのユーザコマンドは、オペレーティングシステムをRedhat Linux(登録商標)からAIXに変更するコマンドを含む。加えて、これらのユーザリクエストは、類似のgrepコマンドを指定する。ユーザリクエスト620のケースでは、コマンドの結果は、オプション「-m」が、例示的な実施形態のメカニズムによって学習され、かつCLIモデルに表されたときにAIX(登録商標)によってサポートされていないので、「不正なオプション」というCLIによってシミュレートされた応答を返すことになる。ユーザリクエスト630のケースでは、ユーザは、適切なオプションを伴う異なる形態のgrepコマンドを入力し、その結果、シミュレートされたCLI応答が得られる。例示的な実施形態のメカニズムによって生成されたシミュレートされたCLI応答は、それぞれ、スクリーン640、650、及び660に示されている。示されているように、第1のユーザリクエスト610について、スクリーン640におけるCLIによってシミュレートされた応答は、「Apple-1」であり、これは、スクリーン660に示されている第3のユーザリクエスト630のケースも同様である。スクリーン650上の出力は、不正なオプションを示し、コマンドについてのオプションの代替選択肢を提供する。
【】
それゆえ、図6に示されているように、例示的な同じオプションを伴う同じCLIが異なるオペレーティングシステムにおいて異なる出力を返し得ることを実証するように動作し得る。例示的な実施形態を用いなければ、異なるOSにおける異なる結果を示すために、ユーザは、異なるハードウェアにおいて異なるオペレーティングシステムとともに異なるシステムをインストール及び設定する必要があることになる。したがって、通常のユーザにとって適切なOSを伴う適切なハードウェアを取得することは、容易及び便利でない。しかしながら、例示的な実施形態を用いると、ユーザは、異なるオペレーティングシステム下での異なるオプションを伴うCLIの比較、テスト、検証のために、模倣されたオペレーティングシステムを容易に設定することができる。やはり、これは、教育、新たな機能の設計、及び顧客サポートにおいて非常に有用である。
【】
上述されたように、ICSBサーバは、ICSBデータ構造において経時的にICSBサーバとのユーザセッションに関する情報を維持する。図7は、1つの例示的な、ユーザとのICSBセッション、すなわち、ICSBサーバ及びICSBクライアントの間のセッションの期間にわたって進化するICSBデータ構造の例示の図である。図7の図示では、時間間隔「Time-1」~「Time-7」が左側に示されており、一方、様々なICSB特徴のための様々なICSBデータ構造フィールド710-が、図の上部に別個の列として示されている。ICSBデータ構造のセルは、様々な時間間隔における様々な特徴のためにICSBサーバによって捕捉されたデータを含む。「Null」の値は、この特徴がICSBセッション中に未だ設定されていないことを示す。
【】
図7に示されているように、初期的に、ICSBセッションが確立されたとき、いずれの特徴も装入されていない(Time-1)。その後、Time-2において、ユーザは、例えば「In Linux」(760)等のユーザリクエストをサブミットしてよく、ここで、ユーザリクエストは、ユーザのユーザID(710)、ユーザによって入力されたコマンド「In Linux」(760)を指定し、コマンド(760)に基づいて、対応するCLIによってシミュレートされた出力、例えば、「OS=Linux」が生成され(780)、識別される。後続の時間間隔(Time-3)において、ユーザは、示されているように(760)、test.txtファイルを指定するコマンドを入力する。OS名(720)は、オペレーティングシステムがLinuxであることを反映するように更新され、Configuration情報(730)は、Linux(登録商標)及びユーザ(710)のための構成を反映するように更新され、CLIリストは、Linux(登録商標)のOSに基づいて更新され(740)、CLI Log(750)は、以前の時間間隔からのCLIによってシミュレートされた応答、すなわち、「OS=Linux」を反映するように更新される。CLIによってシミュレートされた応答からのコマンド出力は、test.txtファイルのコンテンツを含むフィールド780に示される。
【】
後続の時間間隔(Time-4)において、CLI Log(750)は、以前の時間間隔からのCLIによってシミュレートされた応答(780)で再び更新され、新たなユーザコマンド、例えば、「grep -m 1 Apple test.txt」が入力され(760)、このコマンドについてのコマンドオプション、例えば、「grep」、「-m」、「1」、「Apple」、「test.txt」が識別され、コマンドオプションフィールド(770)に記憶される。CLIによってシミュレートされた応答、例えば、「Apple-1」は、コマンド出力フィールド(780)に記憶される。
【】
このプロセスは、図7に示されているように、各後続の時間間隔及びユーザによって入力された各ユーザリクエスト/コマンド、例えば、時間間隔Time-5における「in AIX」、時間間隔Time-6における「grep -m1 Apple test.txt」、及び時間間隔Time-7における「grep Apple test.txt| head -1」に続く。それゆえ、ICSBデータ構造は、ICSBサーバ及びICSBクライアントの間のセッションが続くに従い、経時的に動的にかつ自動的に更新される。ICSBデータ構造は、シミュレートされたCLI結果のICSBクライアントへの提示を容易にするだけでなく、ICSBセッションをログ記録するためにも使用される。
【】
上述されたように、ICSBデータ構造及び格納される属性は、経時的にユーザリクエストに基づいて動的に変更される。それゆえ、図7に示されている例を使用して、最初の時点において、全てのパラメータがNULLであると仮定する。その後、後続する動的修正が、時点Time-2~Time-7にわたって経時的になされる。Time-2:ICSBクライアントにおけるUser001は、「in Linux」とタイプした。ユーザリクエストの一部として、「User CMD」の値がパースされ、CMDの値は、ICSBサーバによって識別される。CMD出力は、OS=Linuxである。Time-3:ICSBサーバ側に関与する関連した変数代入動作。「OS NAME」=Linux。シミュレートされたOSは、OS=「Linux」に初期化及び/又は変更される。次のユーザリクエストが、「which includes multiple lines: Apple-1 Apple-2 Apple-3 Apple-4 Apple-5 Apple-6 Peach-1 Peach-2 Peach-3 Peach-4 Peach-5 Peach-6(複数のライン:Apple-1 Apple-2 Apple-3 Apple-4 Apple-5 Apple-6 Peach-1 Peach-2 Peach-3 Peach-4 Peach-5 Peach-6を含むファイル「test.txt」)」として受信される。CMD出力は、「cat test.txt Apple-1 Apple-2 Apple-3 Apple-4 Apple-5 Apple-6 Peach-1 Peach-2 Peach-3 Peach-4 Peach-5 Peach-6」としてシミュレートされる。Time-4:ICSBサーバは、新たなユーザリクエスト「grep -m 1 Apple test.txt」及び代入「CMD Options」=(「grep」,「-m」,「1」,「Apple」,「test.txt」)を受信する。学習された知識に従って、シミュレートされたCMD出力=「Apple」がシミュレートされた出力結果としてICSBクライアントに返される。Time-5:ICSBサーバは、新たなリクエスト「in AIX」を受信し、その後、OSシステムをLinux(登録商標)から「OS NAME」=「AIX」に変更する。Time-6:ICSBサーバは、新たなユーザリクエスト「grep -m 1 Apple test.txt」及びその後代入「CMD Options」=(「grep」,「-m」,「1」,「Apple」,「test.txt」)を受信する。その後、学習された知識に従って、シミュレートされたCMD出力=「grep: illegal option -- m Usage: grep [-E|-F] [-c|-l|-q] [-bhinsvx] -e pattern_list... [-f pattern_file...] [file...]」となり、シミュレートされた出力結果としてICSBクライアントに返される。エラー状態は、その後、Error State=-1(これは、エラーが発見されたことを意味する)に更新される。Time-7:ICSBサーバは、新たなユーザリクエスト「grep Apple test.txt | head -1」及びその後代入:「CMD オプション」=(「grep」,「Apple」,「test.txt」,「|」,「head」,「-1」)を受信する。その後、学習された知識に従って、シミュレートされたCMD出力=「Apple-1」となり、シミュレートされた出力結果としてICSBクライアントに返される。
【】
本発明の説明は、例示及び説明の目的で提示されており、網羅的であることも、又は開示された形態の本発明に限定されることも意図されるものではない。説明された実施形態の範囲及び趣旨から逸脱することなく、当業者には多くの修正及び変形が明らかとなるであろう。本発明の原理、実用的な応用を最も良好に説明するために、及び他の当業者が企図される特定の使用に適合される様々な修正を伴う様々な実施形態について本発明を理解することを可能にするために選択及び説明された。本明細書において使用される専門用語は、実施形態の原理、実用的な応用、又は市場で見られる技術に優る技術的改善を最も良好に説明するために、又は他の当業者が本明細書において開示された実施形態を理解することを可能にするために選択されたものである。
【図】
【図】
【図】
【図】
【図】
【図】
【図】
【国際調査報告】