【誤訳訂正書】
【提出日】平成15年10月27日(2003.10.27)
【誤訳訂正１】
【訂正対象書類名】明細書
【訂正対象項目名】特許請求の範囲
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
処理ユニット、オペレーティング・システムと少なくとも１つのプログラム・モジュールとを記憶するコンピュータ可読媒体、前記処理ユニットと前記コンピュータ可読媒体とを接続するシステムバスから成り、複合データ・オブジェクトの永続的表現を生成するためのシステムにおいて、前記少なくとも１つのプログラム・モジュールが、
複合データ・オブジェクトを創るための１セットのデータ型及びメソッドを有するライブラリであって、該メソッドに関係する可読情報を含むように増補されたライブラリと、
前記ライブラリから一続きのメソッドを呼び出すことにより、前記データ・オブジェクトを作成するオーサリング・ツールであって、前記呼び出されたメソッドについての前記可読情報から得られた一続きのコード・フラグメントを記録するためのオーサリング・ツールと、
前記コード・フラグメントをアセンブルして、前記データ・オブジェクトの前記永続的表現を構成するプログラムに変えるためのプログラム・ジェネレータと、を有することを特徴とするシステム。
【請求項２】
各メソッドについての前記追加情報が前記メソッドの名称とその引数の数とを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
コード・フラグメントの参照辞書をさらに含むシステムであって、前記メソッドのいくつかが明示的結果を生成し、各参照が、呼び出されたメソッドが返す前記明示的結果の中の１つに対応することを特徴とする請求項１に記載のシステム。
【請求項４】
各コード・フラグメントが、呼び出されたメソッド名と、前記呼び出されたメソッド用の引数リストとを含むことを特徴とする請求項１に記載のシステム。
【請求項５】
各コード・フラグメントが、前記フラグメントを特定するキーを含むことを特徴とする請求項４に記載のシステム。
【請求項６】
別のコード・フラグメントである１つのコード・フラグメントの引数が、前記別のフラグメントの引数リストの中に該別のフラグメントのキーを有することを特徴とする請求項５に記載のシステム。
【請求項７】
各コード・フラグメントが、該フラグメントをリオーダすることが可能かどうかを示すフラグをさらに含むことを特徴とする請求項４に記載のシステム。
【請求項８】
処理ユニット、オペレーティング・システムと少なくとも１つのプログラム・モジュールとを記憶するコンピュータ可読媒体、前記処理ユニットと前記コンピュータ可読媒体とを接続するシステムバスから成るデジタル・コンピュータにおいて実行される方法であって、適切にプログラムされたデジタル・コンピュータにおいて命令を実行することにより、オーサリング・ツールを用いてデザイナが作成したマルチ・コンポーネント・データ構造の永続的表現を生成するための方法において、
前記データ構造のための前記オーサリング・ツールによって行われる一続きのメソッド呼び出しを記録するステップと、
コード・フラグメントのリストを前記メソッド呼び出しから生成するステップと、
前記コード・フラグメントを一続きの命令に翻訳して、予め定められたインタプリタによって実行可能な命令セットでプログラムを形成するステップと、
前記データ構造の表現として前記プログラムを保存するステップと、を有することを特徴とする方法。
【請求項９】
前記一続きのコード・フラグメントを生成するステップが、各メソッド呼び出し毎に別個のコード・フラグメントを生成するステップを有することを特徴とする請求項８に記載の方法。
【請求項１０】
請求項９に記載の方法において、各々別個のコード・フラグメントを生成するステップが、
前記呼び出しと関連する関数名を記録するステップと、
前記呼び出しと関連する関数の引数を記録するステップと、
前記コード・フラグメントを特定するキーを生成するステップと、を有することを特徴とする方法。
【請求項１１】
請求項１０に記載の方法において、前記別個のコード・フラグメントを生成するステップが、
前記関数が明示的結果を生成することを判定するステップと、
現在のフラグメントに対する参照を辞書に記録するステップと、をさらに有することを特徴とする方法。
【請求項１２】
請求項１０に記載の方法において、前記別個のコード・フラグメントを生成するステップが、
前記引数の中の１つが、前記コード・フラグメントのなかの別のコード・フラグメントによって生成された結果を表していることを判定するステップと、
前記別個のコード・フラグメントに前記別のコード・フラグメントのキーを記録するステップと、をさらに有することを特徴とする方法。
【請求項１３】
前記別個のコード・フラグメントを生成するステップが、前記別のコード・フラグメントに対する参照用辞書を探索するステップをさらに有することを特徴とする請求項１２に記載の方法。
【請求項１４】
前記コード・フラグメントの一続きをリオーダするステップをさらに有することを特徴とする請求項８に記載の方法。
【請求項１５】
副作用を生成するコード・フラグメントがリオーダされないことを特徴とする請求項１４に記載の方法。
【請求項１６】
請求項８に記載の方法において、前記コード・フラグメントが、関数名と、該関数の引数とを含み、前記コード・フラグメントを前記一続きの命令に翻訳するステップが、
前記関数の中の１つの関数名を表す命令コードを生成するステップと、
もし引数が存在する場合には、前記関数の各引数について、
前記引数が定数の場合、前記コード・フラグメントの中に該引数の表現を入れるステップと、
前記引数が別のコード・フラグメントに対する参照である場合、前記別のコード・フラグメントのすべてを反復するステップと、を有することを特徴とする方法。
【請求項１７】
処理ユニット、オペレーティング・システムと少なくとも１つのプログラム・モジュールとを記憶するコンピュータ可読媒体、前記処理ユニットと前記コンピュータ可読媒体とを接続するシステムバスから成り且つ適切にプログラムされたデジタル・コンピュータで命令を実行することにより、複合データ・オブジェクトの前記構造の永続的表現を生成するための、デジタル・コンピュータで実行される方法において、
前記データ・オブジェクトの構造を構成するために、ライブラリ内の予め定められた１セットのメソッドの中から複数のメソッドを呼び出すステップと、
コード・フラグメントのリストとして前記一続きのメソッド呼び出しを記録するステップと、
前記コード・フラグメントを一続きの命令に翻訳して、予め定められた仮想計算機によって実行可能な命令セットにプログラムを形成するステップと、
前記データ構造の表現として前記プログラムを格納するステップと、を有することを特徴とする方法。
【請求項１８】
請求項１７に記載の方法において、前記メソッド呼び出しの中の少なくともいくつかが、他のフラグメントによって呼び出されるメソッドを有する引数を持ち、前記コード・フラグメントを翻訳するステップが、
１回目のパスにおいて、２つ以上の他のフラグメントに対する引数として働くあるフラグメントに対する参照を記録するステップと、
前記あるフラグメントのための一時変数を生成するステップと、
２回目のパスにおいて、前記あるコード・フラグメントのための一時変数から命令を生成するステップと、を有することを特徴とする方法。
【請求項１９】
前記仮想計算機がスタックベースのマシーンであり、前記プログラムが、前記仮想計算機によって直接実行可能な１セットの命令を表すことを特徴とする請求項１７に記載の方法。
【請求項２０】
前記命令が前記メソッドと関連する識別子と、定数表現とを含むことを特徴とする請求項１７に記載の方法。
【請求項２１】
マルチ・コンポーネント・データ構造の永続的表現を生成する方法を実行するための、適切にプログラムされたコンピュータによって実行可能な命令とデータを含む記憶媒体において、前記コンピュータが、処理ユニット、及び前記処理ユニットと前記記憶媒体とを接続するシステムバスを含み、前記方法が、
前記データ構造を再現するためのオーサリング・ツールによって行われる一続きのメソッド呼び出しを記録するステップと、
コード・フラグメントのリストを前記メソッド呼び出しから生成するステップと、 前記コード・フラグメントを一続きの命令に翻訳して、予め定めた仮想計算機によって実行可能な命令セットでプログラムを形成するステップと、
前記データ構造の表現として前記プログラムを保存するステップと、を有するように成す記憶媒体。
【請求項２２】
各コード・フラグメントが、呼び出されたメソッド名と、前記呼び出されたメソッドのための引数リストとを含むことを特徴とする請求項２１に記載の記憶媒体。
【請求項２３】
請求項２１に記載の記憶媒体において、前記メソッド呼び出しのなかの少なくともいくつかが、他のフラグメントによって呼び出されるメソッドを有する引数を持ち、前記コード・フラグメントを翻訳するステップが、
１回目のパスにおいて、２つ以上の他のフラグメントに対する引数として働くあるフラグメントへの参照を記録するステップと、
前記あるフラグメント用の一時変数を生成するステップと、
２回目のパスにおいて、前記あるコード・フラグメント用の一時変数から命令を生成するステップと、を有することを特徴とする記憶媒体。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】００１９
【訂正方法】変更
【訂正の内容】
【００１９】
オーサーは、画像、音、テキストおよびその他のコンテンツを操作することにより、従来のオーサリング・ツール２１０を用いてマルチメディア・プレゼンテーションのようなデータ・オブジェクトを作成する。例えば、画像を動画化し、音の流れをそのアニメーションと同期させ、テキストの挿入を行うことが可能となる。デザイナが画面上での制御を行ってこれらのフィーチャを実行するとき、オーサリング・ツールによって、アプリケーション・プログラム・インターフェース(ＡＰＩ)に対する関数またはメソッドの呼び出しが行われる。ＡＰＩは、関数の定義済セットを実行するプログラム・コードを含むライブラリであり、この定義済セットの関数は非常に頻繁に使用されるので、これらの関数を含む単一のモジュールを書き込むことにより、他の任意のプログラムが単純なメカニズムを用いて呼び出し使用できるようになっているものである。ＡＰＩは、１セットのデータ型およびこれらのデータ型に対して機能する１セットのメソッドまたは関数を定義するダイナミック・リンク・ライブラリ(.dll)ファイルの形を一般にとる。しかし、本発明では、上記のデータ型やメソッドまたは関数を何らかの特定のメソッドで保存したり、概念的にグループ化することを除いてこれらを一緒にグループ化することさえ必要としない。すなわち、ライブラリ'という用語は上記メソッドが定義済セットまたはグループを形成することを単に意味するにすぎない。データ型には整数型、文字列型、２値データのような基本的データ型が含まれる。またこれらのデータ型にはJavaとＣ＋＋でクラス、また、Ｃ言語で構造体(struct)と呼ばれる基本的データ型を集めるオブジェクトが含まれる。関数はこのセットのデータ型から任意の数の引数(ゼロを含む)をとり、ゼロまたは１の結果を返す。例えば、Javaでは、Void function1 (type1 a, type2 b)はタイプ１とタイプ２の２つの引数ａとｂをそれぞれとり、結果を返さない。Type1 function2 ()は引数をとらないがタイプ１を持つ結果データを返す。この文脈では、プレゼンテーションＡＰＩ(ＰＡＰＩ)には、引数で指定される量だけ画像オブジェクトのスケーリングと回転のような演算を行ったり、一連の画像を動画化し、音響オブジェクトの音量を所定の量だけ変化させるためのいくつかの個々の関数とデータが含まれる。例えば、ファイルから画像を読み出し、その画像を回転するように設定するためには、以下のセットのＡＰＩ呼び出しを行うことができる：ImageBvr image=importImage  ("image.gif").transform(rotateRate (0.1))音を読み込み、その音量を調節し、時間の経過と共に左から右へその音をパンさせるための１セットのＡＰＩの一例は：SoundBvr  sound=importSound("sound.wav").gain(0.75).pan(sin(localTime))となる。


【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００３９
【訂正方法】変更
【訂正の内容】
【００３９】
ブロック４２０がすべてのフラグメント処理を終了したとき、仮想計算機プログラム  ２２１(図２)の中には、元のプレゼンテーションを再現するための、インタプリタ２４０の仮想計算機によって直接実行可能なプログラムを構成する一続きの命令が含まれる。すなわち、このプログラムは元のプレゼンテーションの構造の永続的表現であり、静的にではなく動的に構造を記述するものである。メソッド４００は、スタックベースのマシーン用プログラムを出力するものではあるが、コード・フラグメント２１２を他のタイプのインタプリタ２４０(バーチャルなものであれ現実のものであれ)用のプログラム２２１に変換するメソッドを以上の記述から簡単なメソッドで設計することも可能である。


【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】００４０
【訂正方法】変更
【訂正の内容】
【００４０】
出力プログラム内の個々の命令は、ＡＰＩ２１１または２５１内のメソッドの定義済セットに対する呼び出しに対応する。同様に、出力プログラム内のデータ項目の型は同じＡＰＩによってサポートされるデータ型からすべて引き出される。命令でフルネームを用いる代わりに、関数名とデータ型をさらに簡潔に表すことが可能となる。


【誤訳訂正５】
【訂正対象書類名】明細書
【訂正対象項目名】００４１
【訂正方法】変更
【訂正の内容】
【００４１】
これらのメソッドは、１乃至２バイトの数字ＩＤを含む命令コードに割り当てられる。呼び出される頻度が多いと予想されるメソッドは１バイトのＩＤを持つ。さらに具体的には、このセットの命令コードは各々２５５個のコードからなるｎ個のブロックに分割される。ｎはこのセット全体を含むことができるほどの十分な大きさとなるように選択される。２５６−ｎ＋１個の最も広く使用される関数に０から２５６−ｎ個の番号が振られた１バイト・コードが割り当てられる。残りの関数には２バイトコードが割り当てられる。これらのコードの第１のグループは２５５に等しい第１バイトと０〜２５５の範囲の第２バイトを持つ。２５５個のコードの第２のグループは２５４の第１バイトを持ち、０から２５５の範囲の第２バイトを持つ、などである。


【誤訳訂正６】
【訂正対象書類名】明細書
【訂正対象項目名】００４２
【訂正方法】変更
【訂正の内容】
【００４２】
永続的表現を持ち得る各データ型に対して、１つの命令コードがその型を示す値をスタックにプッシュさせる。例えば、"整数値をプッシュせよ"、"浮動小数点値をプッシュせよ"および"文字列の値をプッシュせよ"という命令には数字ＩＤが割り当てられる。これらの命令に対して、これと関連するデータ項目(整数、浮動小数点数あるいは文字列)が命令コードの直後のプログラムの２進ストリームの中に入れられる。以下にさらに十分に説明する追加命令は、図２にブロック２４２として図示のようにスタックから一時記憶域へデータをポップし、次いで、一時記憶域からスタックへデータをプッシュする。整数は１バイト〜４バイト方式を用いて符号化される。無符号整数については、第１バイトの２つの最上位ビットはコード内のバイト数より１少ない。残りの６ビットは１〜４バイトの整数の最上位バイトである。以下のバイトは、もし存在する場合には、整数の最上位の値から最下位の値へ配列される。符号付き整数は、定数０ｘ２０、０ｘ２０００、０ｘ２０００００、０ｘ２０００００００が１〜４バイト無符号値から減じられてそれぞれ最終符号付き値が与えられるという点を除いて、同じメソッドで符号化される。


【誤訳訂正７】
【訂正対象書類名】明細書
【訂正対象項目名】００４７
【訂正方法】変更
【訂正の内容】
【００４７】
呼び出される可能のある関数のセットは一般に固定されてはいるものの、追加の関数や追加のメソッドを定義することが可能である。以上の記述は、前述したコンポーネント・オブジェクト・モデル(ＣＯＭ)を用いてオブジェクトで記述されるメソッドを実行する。このモデルには、定義済セット内に存在しないオブジェクトで記述されるメソッドの呼出しを可能にする"IDispatch"メカニズムが含まれる。例えば、invokeメソッド呼び出しによって、IDispatchＣＯＭインターフェース上の名前を持つメソッドまたは関数をスタックの値から引数の配列と共に呼び出すことが可能になる。IDispatch呼び出しから返される結果値をスタックにプッシュすることも可能である。


【誤訳訂正８】
【訂正対象書類名】明細書
【訂正対象項目名】００４９
【訂正方法】変更
【訂正の内容】
【００４９】
別の特別の命令によって、インタプリタがメソッドを定義することが可能になる。この場合のメソッドは、ある時期やあるイベントの検出時のようなときに要求によって実行可能な１セットの命令コードである。例えば、表示プログラム２５０は、ユーザーがマウス・ボタンを押したときコールバックメソッドを発して、文字列を表示したり、新しいオブジェクト示すようにすることができる。インタプリタは、この命令に出会うと、その命令コードに従う整数を命令ストリームからフェッチする。この整数はこのメソッドのための命令とデータを構成するバイトからなるカウンタである。インタプリタによって、適切な数のバイトがプログラム・ストリームから読み出され、バッファの中へ入り、インタプリタの新しいインスタンス作成が行われる。この新しいインタプリタによって、元の命令ストリームからではなく、バッファから命令が読み出され処理される。このメソッドの実行前にスタックまたは一時記憶域に引数を入れることにより引数はこのメソッドへ渡される。スタックからまたは一時記憶域から何らかの結果値が返される。


【誤訳訂正９】
【訂正対象書類名】図面
【訂正対象項目名】図４
【訂正方法】変更
【訂正の内容】
【図４】
2002517817.tif 000001
【誤訳訂正１０】
【訂正対象書類名】明細書
【訂正対象項目名】発明の名称
【訂正方法】変更
【訂正の内容】
【発明の名称】複合データ構造の永続的表現を生成するためのシステム、方法及び記憶媒体