【手続補正書】
【提出日】令和2年3月18日(2020.3.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
少なくとも１つのマッチャー・ステートマシンを指定できるようにする、データフロープログラミング言語のための開発環境を提供することを含み、前記マッチャー・ステートマシンは、受信した入力ストリームにおけるパターンマッチングを実行して出力データを生成することができ、前記開発環境は複数のツールを含み、前記複数のツールは、
複数の潜在的なデータストリームを識別すること、
前記データストリームにおけるデータのパターンに対応するリアクティブ関数とパラメータとのセットを識別すること、
宣言されたパターンにマッチするデータを変換するための処理関数とパラメータとのセットを識別すること、
データフローのパターンの比較対象である時限イベントのセットを識別すること、
前記識別したデータストリーム、リアクション、関数、および時限イベントを記述するデータフロープログラムを、表明された意図に基づいて作成すること、
プログラムステートメントを、対応するマッチャー、データフロートポロジ、関数、および関連するシンボリックコンポーネントに変換するためのマッチャージェネレータが組込まれた第１フェーズ変換ツールと、ハードウェアプラットフォーム上で実行される、前記変換されたステートメントに対応する最適化されたプラットフォーム固有ハードウェア命令を生成するための第２フェーズ変換ツールとを含む２フェーズ変換ツールに、前記データフロープログラムを入力として与えること、および、
前記２フェーズ変換ツールの各フェーズの出力を受信すること、
のうちの少なくとも１つを実行する、方法。
【請求項２】
前記開発環境は、ユーザが１つ以上の計算ブロックを追加できるようにするグラフィカルユーザインターフェイスを有し、各計算ブロックはステートマシンを含む、請求項１に記載の方法。
【請求項３】
前記グラフィカルユーザインターフェイスは、ユーザが、追加した１つ以上の計算ブロックに接続する入力ブロックを選択できるようにする、請求項２に記載の方法。
【請求項４】
前記グラフィカルユーザインターフェイスは、ユーザが、出力ブロックに接続する追加した１つ以上の計算ブロックからの出力を選択できるようにする、請求項３に記載の方法。
【請求項５】
前記開発環境は、前記第１フェーズ変換ツールの出力を使用するインタープリタコンポーネントを含み、前記インタープリタコンポーネントは、
プラットフォーム固有ハードウェア命令の実行において前記ハードウェアプラットフォームをエミュレートする命令インタープリタと、
ストリーミングデータ環境をエミュレートし、ステートマシンストリームに入力を与え前記ステートマシンストリームからの出力を収集する、データフローシミュレータと、
計算およびデータをインフライトで検査し計算を前後に駆動するプログラム実行フローコントローラとを含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記開発環境はライブ検査コンポーネントを含み、前記ライブ検査コンポーネントは、
特定のハードウェアプログラム上のライブ実行中プログラムをインストルメント化しそれにアタッチし、データグラフの形状に関する見識を提供する、検査方法と、
アタッチ後に実行されて、実行中プログラムのデータフロー計算の状態を抽出し、計算に関する高精度の直接的な見識を、考慮するデータとともに提供する、検査方法とを含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記開発環境は、ビジュアライゼーションおよびデータフローシミュレーショングラフィカルベースコンポーネントを含み、前記ビジュアライゼーションおよびデータフローシミュレーショングラフィカルベースコンポーネントは、
プログラムをグラフィカルに書くまたは表示するまたは修正することができるようにすることによって、ユーザがストリーミングデータ解析のためのより直感的なメンタルモデルを得て前記プログラムのアクションを十分に理解することを支援する、グラフィカルベースインターフェイスと、
データフロー計算において流動性が前後することを可能にする時間の概念を注入することによる外部制御を伴う、実際のデータの流れをアニメーションおよびリンクを介して視覚的にシミュレートすることにより書かれたグラフィカルプログラムをテスト駆動するデータフローシミュレーションとを含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記第１フェーズ変換ツールは、デバッグ環境における複数のパブリッシャから複数のサブスクライバへのシミュレートされたメッセージのやり取りを容易にする、一般的にメッセージブローカーと呼ばれる、シミュレートされたパブリッシャ−サブスクライバ型マルチプレクサを含む、請求項７に記載の方法。
【請求項９】
前記第１フェーズ変換ツールの出力は、前記第２フェーズ変換ツールへの入力として使用することができ、前記２フェーズ変換ツールは、
命令を、中間表現から、ターゲットハードウェアプラットフォームによる実行に適した形式に変換するハードウェア命令ジェネレータと、
データフロー環境内のリアクティブプログラムにおける使用に適した形式で出力が生成されるよう指示するプログラム編成モジュールと、
前記ターゲットハードウェアプラットフォーム上で実行できるようにするランタイムサポートコンポーネントのライブラリとを含む、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記第２フェーズ変換ツールの出力は、前記ターゲットハードウェアプラットフォーム上での使用に適した実行可能なプログラムである、請求項９に記載の方法。
【請求項１１】
前記時限イベントは、データが収集もしくは破棄される時間間隔、またはデータが収集もしくは破棄される前もしくは後の特定時点、のうちの少なくとも一方を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
前記時限イベントは、データが収集される時間間隔を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１３】
前記時限イベントは、データが破棄される時間間隔を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１４】
前記時限イベントは、データが収集された後の特定時点を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１５】
前記時限イベントは、データが収集される前の特定時点を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１６】
前記時限イベントは、データが破棄された後の特定時点を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１７】
前記時限イベントは、データが破棄される前の特定時点を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１８】
前記時限イベントは、データが収集もしくは破棄される複数の時間間隔、またはデータが収集もしくは破棄される前もしくは後の複数の特定時点、のうちの少なくとも一方を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項１９】
前記時限イベントは、データが収集される複数の時間間隔を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項２０】
前記時限イベントは、データが破棄される複数の時間間隔を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項２１】
前記時限イベントは、データが収集された後の複数の特定時点を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項２２】
前記時限イベントは、データが収集される前の複数の特定時点を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項２３】
前記時限イベントは、データが破棄された後の複数の特定時点を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項２４】
前記時限イベントは、データが破棄される前の複数の特定時点を含む、請求項１〜１０のいずれか１項に記載の方法。
【請求項２５】
データフロープログラミング開発プラットフォームのためのシステムであって、
コンピュータの画面に表示されるグラフィカルユーザインターフェイスと、
前記データフロープログラミング開発プラットフォームの前記グラフィカルユーザインターフェイスの宣言画面とを備え、前記宣言画面において、ユーザは、ストリームと定数と関数とパターンとを含む宣言データタイプを指定することができ、ストリーム内で識別すべきパターンを指定するためにパターン定義が使用され、前記宣言データタイプを表すブロックが前記画面に表示されて、ユーザが前記ブロックを前記画面上の所望の位置にドラッグ・アンド・ドロップできるようにし、
前記データフロープログラミング開発プラットフォームの前記グラフィカルユーザインターフェイスのリアクション画面を備え、前記リアクション画面において、ユーザは、前記宣言データタイプのブロックを、データフロープログラムのグラフィカル表現に相互接続することができ、前記リアクション画面において、ユーザは異なるブロック間の相互接続を指定して変更することができ、
前記データフロープログラミング開発プラットフォームの前記グラフィカルユーザインターフェイスの計算ブロック画面を備え、前記計算ブロック画面において、ユーザは、計算ブロックによって実行される演算を見て指定することができ、前記ユーザは、前記計算ブロックへの入力および前記入力に対する計算、ならびに前記計算ブロックの出力を指定することができ、
前記データフロープログラミング開発プラットフォームの前記グラフィカルユーザインターフェイスのコード閲覧画面を備え、前記コード閲覧画面において、ユーザは、前記計算ブロック画面においてグラフィカルに表された演算のコンピュータコード表現を見て編集することができ、前記コンピュータコード表現は前記データフロープログラミング開発プラットフォームによって自動的に生成される、システム。
【請求項２６】
前記データフロープログラミング開発プラットフォームのインターフェイスに対するコンパイルコマンドを備え、ユーザは、コンパイルコマンドを用いて、ユーザが前記データフロープログラミング開発プラットフォームのインターフェイスを用いて指定した前記データフロープログラムのデータフロープログラムパッケージ表現をコンパイルするよう、前記データフロープログラミング開発プラットフォームのインターフェイスに指示する、請求項２５に記載のシステム。
【請求項２７】
ストリームタイプブロックを、入力データを取込んでデータを出力する、データの作成部兼変換部として使用することができる、請求項２５または２６に記載のシステム。
【請求項２８】
プラットフォーム固有ハードウェア命令の実行においてハードウェアプラットフォームをエミュレートする命令インタープリタと、
ストリーミングデータ環境をエミュレートし、ステートマシンストリームに入力を与え前記ステートマシンストリームからの出力を収集するデータフローシミュレータと、
計算およびデータをインフライトで検査し計算を前後に駆動するプログラム実行フローコントローラと、
デバッグ環境における複数のパブリッシャから複数のサブスクライバへのシミュレートされたメッセージのやり取りを容易にする、シミュレートされたパブリッシャ−サブスクライバ型マルチプレクサとを備える、請求項２５〜２７のいずれか１項に記載のシステム。
【請求項２９】
データフロープログラムを開発する方法であって、
グラフィカルユーザインターフェイスを用いて、データフロープログラムのグラフィカル表現を指定することを含み、前記データフロープログラムは、作成タイプと、変換タイプと、抽出タイプとを含み、前記グラフィカルユーザインターフェイスを通して、ユーザは、ブロックを用いて表された前記作成タイプ、前記変換タイプ、および前記抽出タイプを選択してコンピュータ画面上のさまざまな位置に移動させることができ、
前記グラフィカルユーザインターフェイスを用いて、前記作成タイプ、前記変換タイプ、および前記抽出タイプを表すブロックをユーザが相互接続リンクを介して相互接続できるようにすることと、
前記グラフィカルユーザインターフェイスを通して前記ブロック各々の詳細を前記ユーザが指定できるようにすることとを含み、ユーザは変換タイプブロックに対して動作を指定することができ、
ユーザが前記グラフィカルユーザインターフェイスを用いて指定した前記データフロープログラムに対応するコンピュータソースコードを自動的に生成することと、
テキストインターフェイスにおいて自動的に生成された前記コンピュータソースコードをユーザが見て編集できるようにすることと、
ユーザが前記グラフィカルユーザインターフェイスを用いて指定した前記データフロープログラムを実現したものであるターゲットハードウェアプラットフォーム上で実行可能なコードのコンピュータパッケージの生成を、ユーザが指定できるようにすることとを含む、方法。
【請求項３０】
変換ブロックにおける前記動作はパターンマッチング動作であり、前記コンピュータソースコードを自動的に生成することは、前記動作をステートマシンを用いて実現し、前記ステートマシンは、バックトラッキングすることなく、作成部の入力ストリームのデータを処理する技術を反映する、請求項２９に記載の方法。
【請求項３１】
変換ブロックにおける前記動作はパターンマッチング動作であり、前記コンピュータソースコードを自動的に生成することは、前記動作をステートマシンを用いて実現し、前記ステートマシンが反映する技術は、作成部の入力からのストリームデータを一度だけ処理し、前に読み出したデータを後で再び読み出すためにバッファに保持しない、請求項２９に記載の方法。
【請求項３２】
パフォーマンスセマンティックレベルのデバック機能をユーザに提供することを含む、請求項２９〜３１のいずれか１項に記載の方法。
【請求項３３】
方法であって、
少なくとも１つのマッチャー・ステートマシンを指定できるようにする、データフロープログラミング言語のための開発環境を提供することを含み、前記マッチャー・ステートマシンは、受信した入力ストリームにおけるパターンマッチングを実行して出力データを生成することができ、前記開発環境は複数のツールを含み、前記複数のツールは、
複数の潜在的なデータストリームを識別すること、
前記データストリームにおけるデータのパターンに対応するリアクティブ関数とパラメータとのセットを識別すること、
宣言されたパターンにマッチするデータを変換するための処理関数とパラメータとのセットを識別すること、
データフローのパターンの比較対象である、データが収集もしくは破棄される時間間隔またはデータが収集もしくは破棄される前もしくは後の特定時点のうちの少なくとも一方を含む時限イベントのセットを識別すること、
前記識別したデータストリーム、リアクション、関数、および時限イベントを記述するデータフロープログラムを、表明された意図に基づいて作成すること、
プログラムステートメントを、対応するマッチャー、データフロートポロジ、関数、および関連するシンボリックコンポーネントに変換するためのマッチャージェネレータが組込まれた第１フェーズ変換ツールと、ハードウェア上で実行される、前記変換されたステートメントに対応する最適化されたプラットフォーム固有ハードウェア命令を生成するための第２フェーズ変換ツールとを含む２フェーズ変換ツールに、前記データフロープログラムを入力として与えること、および、
前記２フェーズ変換ツールの各フェーズの出力を受信すること、
のうちの少なくとも１つを実行し、
前記開発環境は、ユーザが１つ以上の計算ブロックを追加できるようにするグラフィカルユーザインターフェイスを含み、各計算ブロックはステートマシンを含む、方法。
【請求項３４】
方法であって、
少なくとも１つのマッチャー・ステートマシンを指定できるようにする、データフロープログラミング言語のための開発環境を提供することを含み、前記マッチャー・ステートマシンは、受信した入力ストリームにおけるパターンマッチングを実行して出力データを生成することができ、前記開発環境は複数のツールを含み、前記複数のツールは、
複数の潜在的なデータストリームを識別すること、
前記データストリームにおけるデータのパターンに対応するリアクティブ関数とパラメータとのセットを識別すること、
宣言されたパターンにマッチするデータを変換するための処理関数とパラメータとのセットを識別すること、
データフローのパターンの比較対象である、データが収集もしくは破棄される時間間隔またはデータが収集もしくは破棄される前もしくは後の特定時点のうちの少なくとも一方を含む時限イベントのセットを識別すること、
前記識別したデータストリーム、リアクション、関数、および時限イベントを記述するデータフロープログラムを、表明された意図に基づいて作成すること、
プログラムステートメントを、対応するマッチャー、データフロートポロジ、関数、および関連するシンボリックコンポーネントに変換するためのマッチャージェネレータが組込まれた第１フェーズ変換ツールと、ハードウェア上で実行される、前記変換されたステートメントに対応する最適化されたプラットフォーム固有ハードウェア命令を生成するための第２フェーズ変換ツールとを含む２フェーズ変換ツールに、前記データフロープログラムを入力として与えること、および、
前記２フェーズ変換ツールの各フェーズの出力を受信すること、
のうちの少なくとも１つを実行し、
前記開発環境は、前記第１フェーズ変換ツールの出力を使用するインタープリタコンポーネントを含み、前記インタープリタコンポーネントは、
プラットフォーム固有ハードウェア命令の実行においてハードウェアプラットフォームをエミュレートする命令インタープリタと、
ストリーミングデータ環境をエミュレートし、ステートマシンストリームに入力を与え前記ステートマシンストリームからの出力を収集する、データフローシミュレータと、
計算およびデータをインフライトで検査し計算を前後に駆動するプログラム実行フローコントローラとを含む、方法。
【請求項３５】
方法であって、
少なくとも１つのマッチャー・ステートマシンを指定できるようにする、データフロープログラミング言語のための開発環境を提供することを含み、前記マッチャー・ステートマシンは、受信した入力ストリームにおけるパターンマッチングを実行して出力データを生成することができ、前記開発環境は複数のツールを含み、前記複数のツールは、
複数の潜在的なデータストリームを識別すること、
前記データストリームにおけるデータのパターンに対応するリアクティブ関数とパラメータとのセットを識別すること、
宣言されたパターンにマッチするデータを変換するための処理関数とパラメータとのセットを識別すること、
データフローのパターンの比較対象である、データが収集もしくは破棄される時間間隔またはデータが収集もしくは破棄される前もしくは後の特定時点のうちの少なくとも一方を含む時限イベントのセットを識別すること、
前記識別したデータストリーム、リアクション、関数、および時限イベントを記述するデータフロープログラムを、表明された意図に基づいて作成すること、
プログラムステートメントを、対応するマッチャー、データフロートポロジ、関数、および関連するシンボリックコンポーネントに変換するためのマッチャージェネレータが組込まれた第１フェーズ変換ツールと、ハードウェア上で実行される、前記変換されたステートメントに対応する最適化されたプラットフォーム固有ハードウェア命令を生成するための第２フェーズ変換ツールとを含む２フェーズ変換ツールに、前記データフロープログラムを入力として与えること、および、
前記２フェーズ変換ツールの各フェーズの出力を受信すること、
のうちの少なくとも１つを実行し、
前記開発環境はライブ検査コンポーネントを含み、前記ライブ検査コンポーネントは、
特定のハードウェアプログラム上のライブ実行中プログラムをインストルメント化しそれにアタッチし、データグラフの形状に関する見識を提供する、検査方法と、
アタッチ後に実行されて、実行中プログラムのデータフロー計算の状態を抽出し、計算に関する高精度の直接的な見識を、考慮するデータとともに提供する、検査方法とを含む、方法。
【請求項３６】
方法であって、
少なくとも１つのマッチャー・ステートマシンを指定できるようにする、データフロープログラミング言語のための開発環境を提供することを含み、前記マッチャー・ステートマシンは、受信した入力ストリームにおけるパターンマッチングを実行して出力データを生成することができ、前記開発環境は複数のツールを含み、前記複数のツールは、
複数の潜在的なデータストリームを識別すること、
前記データストリームにおけるデータのパターンに対応するリアクティブ関数とパラメータとのセットを識別すること、
宣言されたパターンにマッチするデータを変換するための処理関数とパラメータとのセットを識別すること、
データフローのパターンの比較対象である、データが収集もしくは破棄される時間間隔またはデータが収集もしくは破棄される前もしくは後の特定時点のうちの少なくとも一方を含む時限イベントのセットを識別すること、
前記識別したデータストリーム、リアクション、関数、および時限イベントを記述するデータフロープログラムを、表明された意図に基づいて作成すること、
プログラムステートメントを、対応するマッチャー、データフロートポロジ、関数、および関連するシンボリックコンポーネントに変換するためのマッチャージェネレータが組込まれた第１フェーズ変換ツールと、ハードウェア上で実行される、前記変換されたステートメントに対応する最適化されたプラットフォーム固有ハードウェア命令を生成するための第２フェーズ変換ツールとを含む２フェーズ変換ツールに、前記データフロープログラムを入力として与えること、および、
前記２フェーズ変換ツールの各フェーズの出力を受信すること、
のうちの少なくとも１つを実行し、
前記開発環境は、ビジュアライゼーションおよびデータフローシミュレーショングラフィカルベースコンポーネントを含み、前記ビジュアライゼーションおよびデータフローシミュレーショングラフィカルベースコンポーネントは、
プログラムをグラフィカルに書くまたは表示するまたは修正することができるようにすることによって、ユーザがストリーミングデータ解析のためのより直感的なメンタルモデルを得て前記プログラムのアクションを十分に理解することを支援する、グラフィカルベースインターフェイスと、
データフロー計算において流動性が前後することを可能にする時間の概念を注入することによる外部制御を伴う、実際のデータの流れをアニメーションおよびリンクを介して視覚的にシミュレートすることにより書かれたグラフィカルプログラムをテスト駆動するデータフローシミュレーションとを含む、方法。
【請求項３７】
方法であって、
少なくとも１つのマッチャー・ステートマシンを指定できるようにする、データフロープログラミング言語のための開発環境を提供することを含み、前記マッチャー・ステートマシンは、受信した入力ストリームにおけるパターンマッチングを実行して出力データを生成することができ、前記開発環境は複数のツールを含み、前記複数のツールは、
複数の潜在的なデータストリームを識別すること、
前記データストリームにおけるデータのパターンに対応するリアクティブ関数とパラメータとのセットを識別すること、
宣言されたパターンにマッチするデータを変換するための処理関数とパラメータとのセットを識別すること、
データフローのパターンの比較対象である、データが収集もしくは破棄される時間間隔またはデータが収集もしくは破棄される前もしくは後の特定時点のうちの少なくとも一方を含む時限イベントのセットを識別すること、
前記識別したデータストリーム、リアクション、関数、および時限イベントを記述するデータフロープログラムを、表明された意図に基づいて作成すること、
プログラムステートメントを、対応するマッチャー、データフロートポロジ、関数、および関連するシンボリックコンポーネントに変換するためのマッチャージェネレータが組込まれた第１フェーズ変換ツールと、ハードウェア上で実行される、前記変換されたステートメントに対応する最適化されたプラットフォーム固有ハードウェア命令を生成するための第２フェーズ変換ツールとを含む２フェーズ変換ツールに、前記データフロープログラムを入力として与えること、および、
前記２フェーズ変換ツールの各フェーズの出力を受信すること、
のうちの少なくとも１つを実行し、
前記第１フェーズ変換ツールの出力は、前記第２フェーズ変換ツールへの入力として使用することができ、前記２フェーズ変換ツールは、
命令を、中間表現から、ターゲットハードウェアプラットフォームによる実行に適した形式に変換するハードウェア命令ジェネレータと、
データフロー環境内のリアクティブプログラムにおける使用に適した形式で出力が生成されるよう指示するプログラム編成モジュールと、
前記ターゲットハードウェアプラットフォーム上で実行できるようにするランタイムサポートコンポーネントのライブラリとを含む、方法。
【請求項３８】
データフロープログラムを開発する方法であって、
グラフィカルユーザインターフェイスを用いて、前記データフロープログラムのグラフィカル表現を指定することを含み、前記データフロープログラムは、作成タイプと、変換タイプと、抽出タイプとを含み、前記グラフィカルユーザインターフェイスを通して、ユーザは、ブロックを用いて表された前記作成タイプ、前記変換タイプ、および前記抽出タイプを選択してコンピュータ画面上のさまざまな位置に移動させることができ、
前記グラフィカルユーザインターフェイスを用いて、前記作成タイプ、前記変換タイプ、および前記抽出タイプを表すブロックをユーザが相互接続リンクを介して相互接続できるようにすることと、
前記グラフィカルユーザインターフェイスを通して前記ブロック各々の仕様を前記ユーザが指定できるようにすることとを含み、ユーザは変換タイプブロックに対して動作を指定することができ、
ユーザが前記グラフィカルユーザインターフェイスを用いて指定した前記データフロープログラムに対応するコンピュータソースコードを自動的に生成することと、
テキストインターフェイスにおいて自動的に生成された前記コンピュータソースコードをユーザが見て編集できるようにすることと、
ユーザが前記グラフィカルユーザインターフェイスを用いて指定した前記データフロープログラムを実現したものであるターゲットハードウェアプラットフォーム上で実行可能なコードのコンピュータパッケージの生成を、ユーザが指定できるようにすることとを含む、方法。
【請求項３９】
データフロープログラムを開発する方法であって、
グラフィカルユーザインターフェイスを用いて、前記データフロープログラムのグラフィカル表現を指定することを含み、前記データフロープログラムは、作成タイプと、変換タイプと、抽出タイプとを含み、前記グラフィカルユーザインターフェイスを通して、ユーザは、ブロックを用いて表された前記作成タイプ、前記変換タイプ、および前記抽出タイプを選択してコンピュータ画面上のさまざまな位置に移動させることができ、
前記グラフィカルユーザインターフェイスを用いて、前記作成タイプ、前記変換タイプ、および前記抽出タイプを表すブロックを前記ユーザが相互接続リンクを介して相互接続できるようにすることと、
前記グラフィカルユーザインターフェイスを通して前記ブロック各々の内部を前記ユーザが指定できるようにすることとを含み、ユーザは変換タイプブロックに対して動作を指定することができ、
ユーザが前記グラフィカルユーザインターフェイスを用いて指定した前記データフロープログラムに対応するコンピュータソースコードを自動的に生成することと、
テキストインターフェイスにおいて自動的に生成された前記コンピュータソースコードをユーザが見て編集できるようにすることと、
ユーザが前記グラフィカルユーザインターフェイスを用いて指定した前記データフロープログラムを実現したものであるターゲットハードウェアプラットフォーム上で実行可能なコードのコンピュータパッケージの生成を、ユーザが指定できるようにすることとを含む、方法。
【請求項４０】
データフロープログラムを開発する方法であって、
グラフィカルユーザインターフェイスを用いて、前記データフロープログラムのグラフィカル表現を指定することを含み、前記データフロープログラムは、作成タイプと、変換タイプと、抽出タイプとを含み、前記グラフィカルユーザインターフェイスを通して、ユーザは、ブロックを用いて表された前記作成タイプ、前記変換タイプ、および前記抽出タイプを選択してコンピュータ画面上のさまざまな位置に移動させることができ、
前記グラフィカルユーザインターフェイスを用いて、前記作成タイプ、前記変換タイプ、および前記抽出タイプを表すブロックを前記ユーザが相互接続リンクを介して相互接続できるようにすることと、
前記グラフィカルユーザインターフェイスを通して前記ブロック各々のコンテンツを前記ユーザが指定できるようにすることとを含み、ユーザは変換タイプブロックに対して動作を指定することができ、
ユーザが前記グラフィカルユーザインターフェイスを用いて指定した前記データフロープログラムに対応するコンピュータソースコードを自動的に生成することと、
テキストインターフェイスにおいて自動的に生成された前記コンピュータソースコードをユーザが見て編集できるようにすることと、
ユーザが前記グラフィカルユーザインターフェイスを用いて指定した前記データフロープログラムを実現したものであるターゲットハードウェアプラットフォーム上で実行可能なコードのコンピュータパッケージの生成を、ユーザが指定できるようにすることとを含む、方法。
【請求項４１】
データフロープログラムを開発する方法であって、
グラフィカルユーザインターフェイスを用いて、前記データフロープログラムのグラフィカル表現を指定することを含み、前記データフロープログラムは、作成タイプと、変換タイプと、抽出タイプとを含み、前記グラフィカルユーザインターフェイスを通して、ユーザは、ブロックを用いて表された前記作成タイプ、前記変換タイプ、および前記抽出タイプを選択してコンピュータ画面上のさまざまな位置に移動させることができ、
前記グラフィカルユーザインターフェイスを用いて、前記作成タイプ、前記変換タイプ、および前記抽出タイプを表すブロックを前記ユーザが相互接続リンクを介して相互接続できるようにすることと、
前記グラフィカルユーザインターフェイスを通して前記ブロック各々が表す動作を前記ユーザが指定できるようにすることとを含み、ユーザは変換タイプブロックに対して動作を指定することができ、
ユーザが前記グラフィカルユーザインターフェイスを用いて指定した前記データフロープログラムに対応するコンピュータソースコードを自動的に生成することと、
テキストインターフェイスにおいて自動的に生成された前記コンピュータソースコードをユーザが見て編集できるようにすることと、
ユーザが前記グラフィカルユーザインターフェイスを用いて指定した前記データフロープログラムを実現したものであるターゲットハードウェアプラットフォーム上で実行可能なコードのコンピュータパッケージの生成を、ユーザが指定できるようにすることとを含む、方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２０３
【補正方法】変更
【補正の内容】
【０２０３】
フェーズ１変換ツールの出力は、以下を含むフェーズ２変換ツールへの入力として使用することができる：（１）命令を、中間表現から、ターゲットハードウェアプラットフォームによる実行に適した形式に変換するハードウェア命令ジェネレータ。（２）データフロー環境内のリアクティブプログラムにおける使用に適した形式で出力が生成されるよう指示するプログラム編成モジュール。（３）実行に必要なランタイムサポートコンポーネントのライブラリ。フェーズ２変換ツールの出力は、対象とされるハードウェアプラットフォーム上での使用に適した実行可能なプログラムである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０２８２
【補正方法】変更
【補正の内容】
【０２８２】
フェーズ１変換ツールの出力は、以下を含むフェーズ２変換ツールへの入力として使用することができる：（１）命令を、中間表現から、ターゲットハードウェアプラットフォームによる実行に適した形式に変換するハードウェア命令ジェネレータ。（２）データフロー環境内のリアクティブプログラムにおける使用に適した形式で出力が生成されるよう指示するプログラム編成モジュール。（３）実行に必要なランタイムサポートコンポーネントのライブラリ。ある実装例において、フェーズ２変換ツールの出力は、対象とされるハードウェアプラットフォーム上での使用に適した実行可能なプログラムである。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０２８８
【補正方法】変更
【補正の内容】
【０２８８】
上記開発環境は、ビジュアライゼーションおよびデータフローシミュレーショングラフィカルベースコンポーネントを含む。プログラムをグラフィカルに書くまたは表示するまたは修正することができるようにするグラフィカルベースインターフェイス（またはウェブベースインターフェイス、または組合せ）がある。これは、ユーザがストリーミングデータ解析のためのより直感的なメンタルモデルを得て上記プログラムのアクションを十分に理解することを支援する。実際のデータの流れをアニメーションおよびリンクを介して視覚的にシミュレートすることにより、書かれたグラフィカルプログラムをテスト駆動する、データフローシミュレーションがある。シミュレーションコンポーネントは、データフロー計算において流動性が前後することを可能にする時間の概念を注入することによる外部制御を有する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０２９２
【補正方法】変更
【補正の内容】
【０２９２】
上記第１フェーズ変換ツールの出力は、上記第２フェーズ変換ツールへの入力として使用することができる。上記変換ツールは、命令を、中間表現から、ターゲットハードウェアプラットフォームによる実行に適した形式に変換するハードウェア命令ジェネレータと、データフロー環境内のリアクティブプログラムにおける使用に適した形式で出力が生成されるよう指示するプログラム編成モジュールと、上記ターゲットハードウェアプラットフォーム上で実行できるようにするランタイムサポートコンポーネントのライブラリとを含み得る。ある実装例において、第２フェーズ変化ツールの出力は、対象とされるハードウェアプラットフォーム上での使用に適した実行可能なプログラムである。
【手続補正６】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2019516167.tif 000001
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2019516167.tif 000002
【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2019516167.tif 000003
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図１７
【補正方法】変更
【補正の内容】
【図１７】
2019516167.tif 000004
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図１８
【補正方法】変更
【補正の内容】
【図１８】
2019516167.tif 000005
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図１９
【補正方法】変更
【補正の内容】
【図１９】
2019516167.tif 000006
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図２０
【補正方法】変更
【補正の内容】
【図２０】
2019516167.tif 000007
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】図２１
【補正方法】変更
【補正の内容】
【図２１】
2019516167.tif 000008
【手続補正１４】
【補正対象書類名】図面
【補正対象項目名】図２２Ａ
【補正方法】変更
【補正の内容】
【図２２Ａ】
2019516167.tif 000009
【手続補正１５】
【補正対象書類名】図面
【補正対象項目名】図２２Ｂ
【補正方法】変更
【補正の内容】
【図２２Ｂ】
2019516167.tif 000010
【手続補正１６】
【補正対象書類名】図面
【補正対象項目名】図２４
【補正方法】変更
【補正の内容】
【図２４】
2019516167.tif 000011
【手続補正１７】
【補正対象書類名】図面
【補正対象項目名】図２５
【補正方法】変更
【補正の内容】
【図２５】
2019516167.tif 000012
【手続補正１８】
【補正対象書類名】図面
【補正対象項目名】図２６
【補正方法】変更
【補正の内容】
【図２６】
2019516167.tif 000013
【手続補正１９】
【補正対象書類名】図面
【補正対象項目名】図２７
【補正方法】変更
【補正の内容】
【図２７】
2019516167.tif 000014
【手続補正２０】
【補正対象書類名】図面
【補正対象項目名】図２８
【補正方法】変更
【補正の内容】
【図２８】
2019516167.tif 000015
【手続補正２１】
【補正対象書類名】図面
【補正対象項目名】図２９
【補正方法】変更
【補正の内容】
【図２９】
2019516167.tif 000016
【手続補正２２】
【補正対象書類名】図面
【補正対象項目名】図３０
【補正方法】変更
【補正の内容】
【図３０】
2019516167.tif 000017