(57)【特許請求の範囲】
【請求項１】
プロセッサと前記プロセッサに接続されるメモリとを含むコンピュータによって、データ照会および処理環境において多言語サポートをあたえるための方法であって、
前記メモリに含まれるベーステーブルに格納されるデータのセットにアクセスするよう、クエリを、前記プロセッサによって受け取るステップを含み、前記クエリは少なくとも１人のユーザに対して確立されたセッション中に受け取られ、前記方法はさらに、
前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と前記プロセッサによって判断するステップと、
前記プロセッサによって前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行するステップとを含み、前記結合動作は、前記ベーステーブルの少なくとも１つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものであり、
前記プロセッサによってビジネスインテリジェンスサーバにおいてルックアップ関数を実行するステップをさらに含み、前記ルックアップ関数は、前記結合動作を実行する構造化照会言語（ＳＱＬ）ステートメントに翻訳される、方法。
【請求項２】
プロセッサと前記プロセッサに接続されるメモリとを含むコンピュータによって、データ照会および処理環境において多言語サポートをあたえるための方法であって、
前記メモリに含まれるベーステーブルに格納されるデータのセットにアクセスするよう、クエリを、前記プロセッサによって受け取るステップを含み、前記クエリは少なくとも１人のユーザに対して確立されたセッション中に受け取られ、前記方法はさらに、
前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と前記プロセッサによって判断するステップと、
前記プロセッサによって前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行するステップとを含み、前記結合動作は、前記ベーステーブルの少なくとも１つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものであり、
前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行するステップは、
前記ルックアップテーブルは前記ベーステーブルにおけるすべてのレコードに対する翻訳を含む密なルックアップテーブルである、と前記プロセッサによって判断するステップと、
前記プロセッサによって前記ベーステーブルと前記ルックアップテーブルとの内部結合を実行するステップとをさらに含む、方法。
【請求項３】
プロセッサと前記プロセッサに接続されるメモリとを含むコンピュータによって、データ照会および処理環境において多言語サポートをあたえるための方法であって、
前記メモリに含まれるベーステーブルに格納されるデータのセットにアクセスするよう、クエリを、前記プロセッサによって受け取るステップを含み、前記クエリは少なくとも１人のユーザに対して確立されたセッション中に受け取られ、前記方法はさらに、
前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と前記プロセッサによって判断するステップと、
前記プロセッサによって前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行するステップとを含み、前記結合動作は、前記ベーステーブルの少なくとも１つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものであり、
前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行するステップは、
前記ルックアップテーブルは、前記ベーステーブルにおけるレコードのサブセットのみに対する翻訳を含む、疎であるルックアップテーブルである、と前記プロセッサによって判断するステップと、
前記プロセッサによって前記ベーステーブルと前記ルックアップテーブルとの外部結合を実行するステップとをさらに含み、前記ベーステーブルからの行は維持される、方法。
【請求項４】
プロセッサと前記プロセッサに接続されるメモリとを含むコンピュータによって、データ照会および処理環境において多言語サポートをあたえるための方法であって、
前記メモリに含まれるベーステーブルに格納されるデータのセットにアクセスするよう、クエリを、前記プロセッサによって受け取るステップを含み、前記クエリは少なくとも１人のユーザに対して確立されたセッション中に受け取られ、前記方法はさらに、
前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と前記プロセッサによって判断するステップと、
前記プロセッサによって前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行するステップとを含み、前記結合動作は、前記ベーステーブルの少なくとも１つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものであり、
前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行するステップは、
前記ルックアップテーブルは、前記ベーステーブルの少なくとも１つの特定のフィールドについては完全な翻訳を含むが、前記ベーステーブルのフィールドの少なくとも１つの他のフィールドについては部分的な翻訳のみを含む、密および疎の両方であるルックアップテーブルである、と前記プロセッサによって判断するステップと、
前記プロセッサによって、疎または密の１つを指定するようルックアップ動作の属性を選定するステップとをさらに含み、疎であるルックアップは外部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続し、密なルックアップは内部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続する、方法。
【請求項５】
前記プロセッサによって、前記ユーザの現在の言語によって前記ベーステーブルからの前記データを要求する前記クエリをフィルタ処理し、前記ユーザの現在の言語を適用して前記ルックアップテーブルから翻訳された値を検索するステップをさらに含む、請求項１〜４のいずれかに記載の方法。
【請求項６】
別のルックアップテーブルが各ベーステーブルにつき実現され、前記ルックアップテーブルは、前記ベーステーブルにおけるレコードへの外国キー参照を含む、請求項１〜５のいずれかに記載の方法。
【請求項７】
別のルックアップテーブルが前記ベーステーブルの各フィールドにつき実現される、請求項１〜６のいずれかに記載の方法。
【請求項８】
ビジネスインテリジェンス（ＢＩ）サーバが、複数の言語に翻訳されたデータを含むスキーマを実現し、どの言語がログインでユーザに関連付けられるかによって、クエリは、前記言語に従って、前記ルックアップテーブルを用いることにより、フィルタ処理される、請求項１〜７のいずれかに記載の方法。
【請求項９】
データ照会および処理環境において多言語サポートをあたえるためのシステムであって、
データのセットを格納するためのデータソース、および
ベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取るビジネスインテリジェンス（ＢＩ）サーバを含み、前記クエリは前記ＢＩサーバと少なくとも１人のユーザとの間において確立されたセッション中に受け取られ、
前記ＢＩサーバは、前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と判断して、前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行し、前記結合動作は、前記ベーステーブルの少なくとも１つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものであり、
前記ビジネスインテリジェンスサーバは、ルックアップ関数を実行し、前記ルックアップ関数は、前記結合動作を実行する構造化照会言語（ＳＱＬ）ステートメントに翻訳される、システム。
【請求項１０】
データ照会および処理環境において多言語サポートをあたえるためのシステムであって、
データのセットを格納するためのデータソース、および
ベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取るビジネスインテリジェンス（ＢＩ）サーバを含み、前記クエリは前記ＢＩサーバと少なくとも１人のユーザとの間において確立されたセッション中に受け取られ、
前記ＢＩサーバは、前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と判断して、前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行し、前記結合動作は、前記ベーステーブルの少なくとも１つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものであり、
前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行することは、
前記ルックアップテーブルは前記ベーステーブルにおけるすべてのレコードに対する翻訳を含む密なルックアップテーブルである、判断することと、
前記ベーステーブルと前記ルックアップテーブルとの内部結合を実行することとをさらに含む、システム。
【請求項１１】
データ照会および処理環境において多言語サポートをあたえるためのシステムであって、
データのセットを格納するためのデータソース、および
ベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取るビジネスインテリジェンス（ＢＩ）サーバを含み、前記クエリは前記ＢＩサーバと少なくとも１人のユーザとの間において確立されたセッション中に受け取られ、
前記ＢＩサーバは、前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と判断して、前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行し、前記結合動作は、前記ベーステーブルの少なくとも１つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものであり、
前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行することは、
前記ルックアップテーブルは、前記ベーステーブルにおけるレコードのサブセットのみに対する翻訳を含む、疎であるルックアップテーブルである、と判断することと、
前記ベーステーブルと前記ルックアップテーブルとの外部結合を実行することとをさらに含み、前記ベーステーブルからの行は維持される、システム。
【請求項１２】
データ照会および処理環境において多言語サポートをあたえるためのシステムであって、
データのセットを格納するためのデータソース、および
ベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取るビジネスインテリジェンス（ＢＩ）サーバを含み、前記クエリは前記ＢＩサーバと少なくとも１人のユーザとの間において確立されたセッション中に受け取られ、
前記ＢＩサーバは、前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と判断して、前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行し、前記結合動作は、前記ベーステーブルの少なくとも１つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものであり、
前記ベーステーブルと少なくとも１つのルックアップテーブルとの結合動作を実行することは、
前記ルックアップテーブルは、前記ベーステーブルの少なくとも１つの特定のフィールドについては完全な翻訳を含むが、前記ベーステーブルのフィールドの少なくとも１つの他のフィールドについては部分的な翻訳のみを含む、密および疎の両方であるルックアップテーブルである、と判断することと、
疎または密の１つを指定するようルックアップ動作の属性を選定することとをさらに含み、疎であるルックアップは外部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続し、密なルックアップは内部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続する、システム。
【請求項１３】
請求項１〜８のいずれかに記載される方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部は、著作権保護の対象である内容を含む。著作権者は、何人によるこの特許文書または特許開示の複写も、それが特許商標庁の特許のファイルまたは記録に現われるように行うことには反対しないが、そうでない場合には、いかなる著作権であってもすべてを所有する。
【０００２】
発明の分野
この発明は、一般に、ビジネスインテリジェンスに関し、特にビジネスインテリジェンスサーバにおいてデータに対する多言語サポートを提供することに関する。
【背景技術】
【０００３】
背景
近年、ビジネスインテリジェンスソフトウェアは、大企業および他の組織によってますます利用されるようになってきている。ビジネスインテリジェンスは、組織の内部の構造化データおよびビジネス過程を分析することによって、ビジネス活動の現在および歴史的な見解を提供する。それは、よりよいビジネス的意思決定をサポートするために、将来のモデルおよび予測を形成するためにしばしば利用される。したがって、ビジネスインテリジェンスツールは、多くの企業に対するコストの低減、ならびに効率性、生産性および利ざやの増大に至ることができる。
【０００４】
ビジネスインテリジェンスは、通常はソフトウェアおよび／またはハードウェアツールとして実現され、それらを用いて、データを収集および分析し、生データを、有意味かつ有用な情報に変換し、その情報を用いて、効果的な、戦略上、戦術上、ならびに運営上の洞察および意思決定を可能にする。したがって、典型的なビジネスインテリジェンスサーバは、リレーショナルデータベース、オンライン分析型処理(ＯＬＡＰ)ツール、リポジトリおよびコンテンツ管理システム、アプリケーションサーバ、ならびに多くの他のソースを含むが、これらに限定されない様々な場所にあり得るデータに依存する。
【０００５】
典型的なビジネスインテリジェンス(ＢＩ)サーバでは、データはこれらのデータソースのすべて(またはいくつか)から収集され、(仮想または物理)データウェアハウスまたはデータマートに入れられ、次いで、そこでモデル化および分析された後、ユーザに呈示することができる。たとえば、１つの方策はビジネスインテリジェンスサーバ内に物理層を実現することであり、そこで、データは、データソース層においてオブジェクトを映す、統合されたテーブルとしてモデル化される。アプリケーション開発者は、これらの複合オブジェクトを、ドメインに関連するエンティティのサブセットを用いて、手動でアセンブルすることができ、合成されたオブジェクトは、続いて、ビジネスインテリジェンスサーバのメタデータ内にインポートされ、次元と事実とに分解されることができる。
【０００６】
しかしながら、多くの制限および潜在的な改善の領域が、ビジネスインテリジェンスサーバ内おけるデータのモデル化の分野において依然として存在する。たとえば、異なる言語にわたってクエリを用いて作業することは、ユーザにとって役立つことが多い。日本語でＢＩサーバにログインしているユーザは、データ列が英語で格納されている場合、クエリに対するフィルタを指定するのに苦労するかもしれない。加えて、ある大きなオブジェクトタイプを格納する列は多くの場合、データベースによって、"group by（単位でグループ化）"クエリ節においてサポートされないことがしばしばである。したがって、ＢＩサーバが、多言語データを含むスキーマをサポートでき、管理を単純化し多言語ルックアップテーブルのクエリパフォーマンスを改善できることが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
発明の概要
さまざまな実施例に従って、多言語二重コラムサポートがＢＩサーバのために提供される。多言語サポートは、ＢＩサーバが、ベーステーブルに格納された値の翻訳を格納するためにルックアップテーブルを用いることを可能にする。次いで、多言語データを必要とするクエリが、ベーステーブルとルックアップテーブルとを結合して、これらの翻訳を得ることができる。
【課題を解決するための手段】
【０００８】
ある実施例に従うと、ＢＩサーバは、ルックアップテーブルを、ユーザが異なる言語を用いるクエリで作業することを可能にする関連するルックアップ関数とともに実現することによって、多言語サポートを可能にする。ユーザがＢＩサーバにログインすると、セッションオブジェクトがユーザのために生成される。それは、ユーザのセッションに対する状態情報を維持する。そのようなセッションの変数の１つは、ユーザによって現在用いられている言語を指定する。ある実施例に従うと、ＢＩサーバは、このセッション変数を検査して、ユーザの言語を判断し、必要に応じてルックアップ翻訳を実行することができる。たとえば、セッションによって用いられる言語が、必要な情報を格納するベーステーブルの言語とは異なる場合、ＢＩサーバは、ルックアップ関数を呼び出すことによって翻訳を実行することができる。ルックアップの実行は、クエリによって要求された、翻訳された値をもたらすために、ベーステーブルとルックアップテーブルとの結合動作を実行することを含み得る。
【図面の簡単な説明】
【０００９】
【図１】この発明のさまざまな実施例に従うＢＩサーバの図である。
【図２】この発明のさまざまな実施例に従うＢＩリポジトリの層を横断するクエリの図である。
【図３Ａ】この発明のさまざまな実施例に従う、１つのルックアップテーブル実現例の図である。
【図３Ｂ】この発明のさまざまな実施例に従う、別のルックアップテーブル実現例の図である。
【図４】この発明のさまざまな実施例に従う、クエリの翻訳を実行するためにルックアップテーブルを用いるビジネスインテリジェンスサーバの図である。
【図５】この発明のさまざまな実施例に従う、ビジネスインテリジェンスサーバにおいて用いられる多言語サポートのフローチャート図である。
【図６】ここに記載されるこの発明のさまざまな実施例を実行するよう利用され得る電算処理装置の図である。
【発明を実施するための形態】
【００１０】
詳細な説明
この発明は、同様の参照符号が同様の要素を示す添付の図面において、限定としてではなく、例として示される。この開示における実施例への参照は、必ずしも同じ実施例に対してではなく、そのような参照は少なくとも１つを意味する。具体的な実現例が論じられるが、それは例示の目的のためにのみなされることが理解される。関連する技術分野の当業者は、他の構成要素および構成が、この発明の範囲および精神から逸脱せずに用いられてもよいことを認識するだろう。
【００１１】
以下の説明では、多数の具体的な詳細が、この発明の十分な記載を提供するために述べられる。しかしながら、この発明がこれらの具体的な詳細なしで実施されてもよいことは、当業者には明らかであろう。他の例では、この発明を不明瞭にしないよう、周知の特徴は詳細には記載されない。
【００１２】
この開示の全体にわたって記載されるさまざまな実施例に従うと、ビジネスインテリジェンス（ＢＩ）サーバが、データクエリ用に多言語サポートで拡張される。ビジネスインテリジェンスクエリは、典型的には複数のテーブルを結合することを伴う。これは、さまざまな、技術的／パフォーマンス／機能上の挑戦を呈する。たとえば、１）ユーザは、異なる言語にわたってユーザのために働く態様でフィルタ（Product = 'coke'（製品＝「コーク」））を形成することができることを望む。フィルタが'Product = coke'として表現される場合、これは日本人ユーザのためには働かないかもしれない；２）さらに他の、関係のあるデータが、データベースＣＬＯＢ／ＢＬＯＢ列（パワーポイントファイル、エクセルファイル、ＰＤＦファイル、患者Ｘ線など）に格納されることが一般的である。データベースは、通常、これらの列が'group by'に参加することを可能にしない；および３）ラベルローカリゼーションニーズは、典型的には、あるテーブルが複数のテーブルと結合（join）されることを必要とする。しかし、任意の所与のクエリに対して、これらの１つだけがアクティブかもしれない。加えて、結合（join）は最適になされる後集計（post-aggregation）で有り得る。多言語サポート特徴は、ＢＩサーバがこれらのニーズに対処することを可能にする。
【００１３】
ある実施例に従うと、ＢＩサーバは、ルックアップテーブルを、ユーザが異なる言語を用いるクエリで作業することを可能にする関連するルックアップ関数とともに実現することによって、多言語サポートを可能にする。ユーザがＢＩサーバにログインすると、セッションオブジェクトがユーザのために生成される。それは、ユーザのセッションに対する状態情報を維持する。そのようなセッションの変数の１つは、ユーザによって現在用いられている言語を指定する。ある実施例に従うと、ＢＩサーバは、このセッション変数を検査して、ユーザの言語を判断し、必要に応じてルックアップ翻訳を実行することができる。たとえば、セッションによって用いられる言語が、必要な情報を格納するベーステーブルの言語とは異なる場合、ＢＩサーバはルックアップ関数を呼び出すことによって翻訳を実行することができる。他方、セッションの言語がベーステーブルの言語と同じである場合には、翻訳は必要ではなく、クエリは、いかなるルックアップもなしで直接答えられ得る。
【００１４】
ある実施例に従うと、ルックアップテーブルは少なくとも１つの値列を含む。それは、データを格納するために用いられるベーステーブルにおける列の実際の翻訳値を含む列である。加えて、ルックアップテーブルは、ルックアップを実行するために用いられるルックアップキー（たとえば主キー）を有する。
【００１５】
ある実施例に従うと、ルックアップ関数は、特定のデータ片の翻訳を得るために用いられるパラメータのセットを含む。たとえば、ルックアップ関数は、翻訳を含むルックアップテーブルの値列を指定するパラメータを含む。加えて、ルックアップ関数は、データ項目の識別子を指定するパラメータ、および翻訳に対して必要とされる特定の言語を識別するパラメータ（これはセッション変数から得ることができる）を含む。いくつかの場合では、以下にさらに詳述されるように、ルックアップ関数は、さらに、必要とされるデータ片に関して基本言語で値を格納するベーステーブルの列を指定するためのパラメータを含んでもよい。
【００１６】
ある実施例に従うと、ＢＩサーバは、ルックアップテーブルとベーステーブルとの結合動作を実行するよう用いられる適切な構造化照会言語（ＳＱＬ）ステートメントに、ルックアップ関数を書き換える。結合動作は、クエリによって要求されたベーステーブルの行に対して翻訳された値を（ユーザのセッション言語で）もたらす。
【００１７】
図１は、この発明のさまざまな実施例に従うＢＩサーバの図である。この図は構成要素を論理上別々のものとして示すが、そのような図示は単に例示のためである。この図において示された構成要素を組み合わせることができるか、または別のソフトウェア、ファームウェアおよび／もしくはハードウェアに分割することができることは、当業者に明らかであろう。さらに、そのような構成要素が、それらがどのように組み合わせられるかまたは分割されるかにかかわらず、同じ電算処理装置で実行することができるか、または１つ以上のネットワークもしくは他の好適な通信手段によって接続される異なる電算処理装置間に分散することができることも当業者には明らかであろう。
【００１８】
例示されるように、ＢＩサーバ１０４およびＢＩリポジトリ１０８は、ユーザ１００に複雑な共用データソース１０６に対して単純な論理的な構造化照会言語（ＳＱＬ）クエリを送らせる抽象化の層を提供する。ある実施例に従うと、ＢＩサーバ１０４はユーザ要求を処理し、基礎となるデータソースに問い合わせる。ＢＩサーバは論理データモデルを維持し、オープンデータベースコネクティビティ（ＯＤＢＣ）を介してこのモデルに対してクライアントアクセスをあたえることができる。
【００１９】
ある実施例に従うと、ＢＩサーバは、リポジトリ１０８においてメタデータを用いて、２つのタスクを実行して、（１）論理ＳＱＬクエリを解釈し、対応する物理クエリを適切なデータソース１０６に対して書込み；（２）物理的な結果の組を変換し組み合わせて、最終計算を実行する。ＢＩサーバは、ＯＤＢＣを介して、または基礎となるデータソースのネイティブアプリケーションプログラミングインタフェース（ＡＰＩ）を通じて、該データソースに対して接続することができる。
【００２０】
ある実施例に従うと、管理ツール１０２はＢＩリポジトリ１０８を形成および編集するよう用いることができるアプリケーションである。管理ツールはオフラインモードでリポジトリに接続することができる。または、それはＢＩサーバを介してリポジトリに接続することができる（オンラインモード）。さまざまな実施例に従って、ＢＩサーバによって提供されるさらなる機能性はオンラインモードで利用可能にできる。
【００２１】
図２は、この発明のさまざまな実施例に従うＢＩリポジトリの層を横断するクエリの図である。この図は構成要素を論理上別々のものとして示すが、そのような図示は単に例示のためである。この図において示された構成要素を組み合わせることができるか、または別のソフトウェア、ファームウェアおよび／もしくはハードウェアに分割することができることは、当業者には明らかであろう。さらに、そのような構成要素が、それらがどのように組み合わせられるかまたは分割されるかにかかわらず、同じ電算処理装置で実行することができるか、または１つ以上のネットワークもしくは他の好適な通信手段によって接続される異なる電算処理装置間に分散することができることも当業者には明らかであろう。
【００２２】
上に述べられるように、ＢＩサーバは複雑な共用データソースに対して送信される、入来するクライアント要求２００を処理することができる。ある実施例に従うと、ＢＩリポジトリは３層、つまり物理層２０６、論理マッピング層２０４およびプレゼンテーション層２０２で構成される。
【００２３】
ある実施例に従うと、物理層２０６は、ＢＩサーバが各物理データソース２０８に対してネイティブクエリを書き込むのに必要とするオブジェクトおよび関係を定義する。ある実施例に従うと、ユーザまたは管理者は、データソースから、テーブル、キューブおよびフラットファイルをインポートすることによって、この層を形成する。たとえば、この図において示されるように、物理層において用いられるフォーマットおよびスキーマのいくつかは、スターおよびスノーフレーク２１４、正規化２１６および非正規化２１８データ、拡張マークアップ言語（ＸＭＬ）およびファイル記憶データ２２０、多次元データ２２２、アプリケーション開発フレームワーク（ＡＤＦ）データ２２４、ならびに他のフォーマットを含むことができる。物理モデルからアプリケーションの論理的な挙動を分離することは、複数の物理データソースを同じ論理オブジェクトに統合する能力をあたえ、集計ナビゲーションおよび区分化、ならびに物理ソースにおける変化からの次元適合および分離を可能にする。この分離は、さらに、ポータブルＢＩアプリケーションの生成も可能にする。
【００２４】
ある実施例に従うと、論理ビジネスモデルおよびマッピング層２０４は、データのビジネスまたは論理モデルを定義し、ビジネスモデルと物理スキーマとの間のマッピングを指定する。この層は、さらに、ユーザによって見られる分析的な挙動を判断し、ユーザに利用可能なオブジェクトおよび関係のスーパーセットを定義する。それは、さらに、ソースデータモデルの複雑さを隠す。
【００２５】
ある実施例に従うと、プレゼンテーション層２０２は、ユーザに対して、ビジネスモデルの、カスタマイズされた、安全な、役割に基づいたビュー２１０を呈示する態様を提供する。それは、あるレベルの抽象化をビジネスモデルおよびマッピング層２０４上に追加し、プレゼンテーションサービスおよび他のクライアント２００で要求を構築するユーザによって見られるデータのビューを提供する。
【００２６】
ある実施例に従うと、エンタープライズにとってＢＩリポジトリを構築する典型的なオーダは、まず物理層オブジェクト、次に論理モデルおよびマッピング層オブジェクト、最後にプレゼンテーション層オブジェクトを生成することである。しかしながら、代替的実施例においては、ユーザは任意の段階で各層に取り組むことができる。
【００２７】
大抵の場合、ビジネスモデルを計画することは、意思決定サポートに対して使用可能なデータモデルを開発することにおける第１のステップである。あるビジネスモデルでは、次元は、論理列（属性）の階層的組織を表す。１つ以上の論理次元テーブルを、多くて１つの次元と関連付けることができる。一般的な次元の例は、期間、製品、市場、顧客、供給者、促進条件、原料、製造プラント、輸送方法、媒体の種類、および時刻である。ある実施例に従うと、次元は、論理モデルおよびマッピング層２０４ならびにプレゼンテーション層２０２に存在する。
【００２８】
各次元では、属性を階層的レベルに組織化することができる。これらの論理レベルは、ＢＩサーバを展開する組織のビジネスによって要求される組織的規則および報告ニーズを表わす。それらは、データのより詳細なビューを得るために、次元内および次元にわたってたたき込むようＢＩサーバが用いる構造（メタデータ）を提供する。
【００２９】
図３Ａはこの発明のさまざまな実施例に従う、１つのルックアップテーブル実現例の図である。ここに記載される実施例はこの特定の実現例に必ずしも限定されず、他の実現例がこの発明の範囲内で可能であることが注記されるべきである。特に、この図は、１つのルックアップテーブルが各ベーステーブル毎に維持される、ルックアップテーブルの設計を示す。図３Ｂにおいて示される代替的設計では、以下にさらに詳述されるように、１つのルックアップテーブルが、ベーステーブルの各フィールドにつき、維持され得る。
【００３０】
図３Ａに示されるように、各ベーステーブル３００につき、別のルックアップテーブル３０２がある。ある実施例に従うと、ルックアップテーブルは、ベーステーブルにおけるレコードへの外国キー参照を含み、別の列に各翻訳されたフィールド毎の値を含む。完全に密なルックアップテーブルを仮定した場合、ある特定の言語に対するルックアップテーブルにおける行の数は、ベーステーブルにおける行の数と等しい。図３Ａに示される例では、ルックアップテーブル３０２における各レコードはベーステーブル３００においてたった１つの行と一致する。
【００３１】
図３Ｂはこの発明のさまざまな実施例に従う、別のルックアップテーブル実現例の図である。ここに記載される実施例はこの特定の実現例に必ずしも限定されず、ルックアップテーブルの他の実現例も可能であることを、もう一度注記する。
【００３２】
例示されるように、代替的設計は、ベーステーブル３０２の各翻訳されたフィールドにつき、別のルックアップテーブル３０６を実現することである。ある実施例に従うと、各フィールドの翻訳された値を得ることは、次いで、ルックアップテーブルに対する別の結合を必要とするだろう。実際には、複数のフィールドに対する翻訳を含むわずか１つの物理テーブルがあることが多い。単一のテーブルが複数のフィールドに対する翻訳を含むとき、ルックアップテーブルにフィルタを置いて、ベーステーブルにおける特定の列に関係する値のみにデータを限定することが必要になり得る。
【００３３】
この発明のさまざまな実施例に従って、ＢＩサーバは、図３Ａおよび図３Ｂに例示された両方のルックアップテーブル設計をサポートすることができる。
【００３４】
さまざまな実施例に従って、疎および密なルックアップテーブルの両方がＢＩサーバによってサポートされ得る。いくつかのスキーマでは、ルックアップテーブルは、ベーステーブルにおけるレコードのいくつかのみに対する翻訳を含み、疎である。疎であるルックアップテーブルは、ベーステーブルからの行が維持されるように、ベーステーブルとの外部結合を必要とする。通常、翻訳が特定のレコードに対して見当たらないとき、ベース翻訳はＮＵＬＬ値の代わりに置換されるべきである。密なルックアップテーブルは、ベーステーブルにおけるすべてのレコードに対して、すべての言語で翻訳を含む。密なルックアップテーブルはすべてのベースレコードに対して一致するレコードを含むので、ルックアップテーブルはベーステーブルと内部結合することができ、それによって、外部結合および基本言語置換のオーバヘッドを回避する。いくつかの場合では、あるルックアップテーブルは密および疎の両方であり得る。たとえば、図３Ｂのルックアップテーブルは、「Description（記述）」フィールドに対しては完全な翻訳を含むが、「Category（カテゴリ）」フィールドに対しては部分的な翻訳を含んでもよい。したがって、ある実施例に従うと、ＢＩサーバは、テーブルの属性である代わりに、ルックアップ動作の属性として、「密」および「疎」を扱う。疎であるルックアップはベーステーブルを翻訳テーブルと外部結合で接続することになり、一方、密なルックアップは結果としてベーステーブルと翻訳テーブルとの間の内部結合になることになる。
【００３５】
ある実施例に従うと、記述子列はＢＩサーバによってサポートすることができる。記述子列は、１対１の関係が記述子列となんらかのキー列との間にある場合にそのキー列に対してテキスト記述を提供する列である。実際には、１対１の関係はしばしば実施されないかもしれないが、クエリ目的に対しては、列は、あたかもそのような１対１の関係があるかのように扱われ得る。
【００３６】
記述子列の一例はProduct_Name（製品＿名称）であってもよく、それは、Product_Key（製品＿キー）列に対してテキスト記述をあたえる。多くの場合において２つの製品が同じ名称を有することが考えられ得るが、それは起こりそうにもなく、たとえ同じ名称を有する製品があっても、それらの製品は、集計およびフィルタにおいて依然として別個のエンティティとして扱うことができる。
【００３７】
ある実施例に従うと、記述子列を生成する１つの理由は、言語非依存フィルタを定義することにおける補助にある。ユーザが記述子列に基づいたフィルタを生成するとき、クエリツールは、記述子列から選択される値のリストをユーザに対して表示する。内部では、ＢＩサーバは、さらに、キー列を、ＬＯＶにおいて隠されたフィールドとして格納することができる。ユーザがＬＯＶから値を選択するとき、ツールは、フィルタにおいて選択された記述子値を、隠されたキー値と置換し、キー列に関してフィルタを書き換える。フィルタは、翻訳されないキー列しか参照しない形式に変換されるので、フィルタは、言語に依存せず、他の言語のユーザと共有することができる。
【００３８】
記述子列はしばしば複数の言語に翻訳されるが、これは必ずしも必要ではない。記述子列は単に１つの言語で記述をあたえてもよい。上に記載されたキー値への同じフィルタ変換は、翻訳されない記述子列に等しく当てはまる。これは、集計およびフィルタ処理の際に、異なるキー値を有するが同じテキスト記述を共有する行が別々に扱われることを保証することができる。
【００３９】
ある実施例に従うと、この記述子列技術は、キャラクタ・ラージ・オブジェクト（ＣＬＯＢ）、バイナリ・ラージ・オブジェクト（ＢＬＯＢ）のような大きなオブジェクト（ＬＯＢ）データ型、およびＣＯＵＮＴ（）またはＳＵＭ（）のような集計関数を伴っているクエリに対処するときも、有用である。あるデータソースは、ＬＯＢ列がＧＲＯＵＰ  ＢＹ節において用いられることを可能にしない。したがって、ＬＯＢ列をＧＲＯＵＰ  ＢＹに追加する代わりに、ＬＯＢ列と１対１の関係を有する他のなんらかの列によってグループ化し、次いで、集計が電算処理された後、ＬＯＢ列を結合することが必要となり得る。
【００４０】
図４は、この発明のさまざまな実施例に従う、クエリの翻訳を実行するためにルックアップテーブルを用いるビジネスインテリジェンスサーバの図である。この図は、構成要素を論理上別々のものとして示すが、そのような図示は単に例示のためである。この図において示された構成要素を組み合わせることができるか、または別のソフトウェア、ファームウェアおよび／もしくはハードウェアに分割することができることは、当業者に明らかであろう。さらに、そのような構成要素が、それらがどのように組み合わせられるかまたは分割されるかにかかわらず、同じ電算処理装置で実行することができるか、または１つ以上のネットワークもしくは他の好適な通信手段によって接続される異なる電算処理装置間に分散することができることも当業者には明らかであろう。
【００４１】
示されるように、一旦セッション４２４がユーザに対して確立されると、ユーザ４００はＢＩサーバ４０４に対して論理ＳＱＬクエリ４０２を出すことができる。クエリ４０２を受け取ると、ＢＩサーバは、セッション４２４を検査して、ユーザのセッションの言語を判断することができる。言語が、ベーステーブル４１６においてデータを格納するために用いられる言語とは異なる場合、ルックアップ関数４１４を呼び出して、ベーステーブル４１６における値を、セッションの対応する言語に翻訳することができる。
【００４２】
ある実施例に従うと、ルックアップ関数４１４を実行するために、ＢＩサーバは、ベーステーブルにおいて格納されたデータの翻訳された値を得るよう実行される物理ＳＱＬステートメント４１２を生成することができる。ある実施例に従うと、この物理ＳＱＬステートメント４１２は、翻訳を得るためにベーステーブルとルックアップテーブルとの結合動作を実行することができる。特に、示された例示ステートメントにおいては、ＢＩサーバによって生成されたＳＱＬは、和（QtySold）４０８の計算をまず実行し（ステップ１）、次いでステップ２で、ルックアップテーブルをステップ１の結果と結合する。
【００４３】
さまざまな実施例に従って、ＢＩサーバは翻訳されたルックアップテーブルをサポートすることができる。たとえば、ＢＩサーバの解析論管理者は、複数の言語に翻訳されたデータを含むスキーマの上にビジネスモデルを生成することができる。ユーザがログインの際にどの言語を指定するかに依って、ユーザはクエリ結果を自身の言語において見出すはずである。ユーザが、異なる言語を用いてログし、再び同じクエリを実行する場合、ユーザは翻訳されたデータを現在の言語について見るはずである。
【００４４】
ある実施例に従うと、スキーマは、英語における記述を含むProduct（製品）テーブルを含んでもよい。Productテーブルは、さらに、各言語依存列毎に言語非依存コードを含むことができる。たとえば、Category（カテゴリ）列は、対応するCategory_Code（カテゴリ＿コード）列を有する。以下は、Productテーブルの内容の例である：
【００４５】
【表１】
0005873078.tif 000002
【００４６】
ある実施例に従うと、他の言語に対する記述は別の翻訳テーブル（ルックアップテーブル）に格納することができる。以下は、Product_Translations（製品＿翻訳）テーブルおよびCategory_Translations（カテゴリ＿翻訳）テーブルの内容の例である：
【００４７】
【表２】
0005873078.tif 000003
【００４８】
ある実施例に従うと、ユーザがログインの際に英語を指定する場合、Productテーブルが関与するクエリは、翻訳テーブルと結合すべきでなく、なぜならば、基本言語翻訳が、Product.Description（製品．記述）列およびProduct.Category（製品．カテゴリ）列に既にあるからである。しかしながらユーザがログインの際にドイツ語を指定する場合、Descriptionの論理列を参照するクエリは、ProductテーブルをProduct_Translationsテーブルと結合して、ドイツ語に対する翻訳された製品記述を得るべきである。Product_Translationsテーブルは、さらに、フィルタ処理されて、Language_Key = 'DE'を伴う行のみを選択しなければならない。同様に、Categoryの論理列が要求される場合、ProductテーブルはCategory_Translationsテーブルと結合されるべきである。DescriptionもCategoryも参照されない場合、物理ＳＱＬステートメントはどの翻訳テーブルも結合すべきではない。
【００４９】
ある実施例に従うと、ＢＩサーバは言語セッション変数をサポートすることができる。たとえば、ある場合においては、オプションの２桁の国コードをともなう２桁のＩＳＯ言語コード（たとえばｚｈ−ｔｗ．）を含む、ＷＥＢＬＡＮＧＵＡＧＥと呼ばれる、システム定義されたセッション変数をあたえることができる。このセッション変数は、ユーザがログオンするときに選択される言語に基づいて設定され得る。
【００５０】
いくつかの場合では、言語ルックアップテーブルにおいて用いられる言語コードは、ＷＥＢＬＡＮＧＵＡＧＥセッション変数において格納された値とは異なり得る。その場合、管理者は、新しいセッション変数を生成して、ＷＥＢＬＡＮＧＵＡＧＥ変数におけるＩＳＯ言語コードを、スキーマで用いられるすべての言語コードにマッピングすることができる。次いで、管理者は、翻訳ルックアップテーブルをフィルタ処理するとき、この新しいセッション変数を参照するだろう。
【００５１】
ある実施例に従うと、基本言語は所与のスキーマのデフォルト言語である。頻繁には、基本言語における翻訳は、残りの翻訳とは異なるテーブルに格納される。ある実施例に従うと、ＢＩサーバは、基本言語が要求されるかどうかに依存して、クエリを最適化する。たとえば、ユーザの現在の言語が基本言語で、基本言語翻訳がベーステーブルに格納される場合、サーバはルックアップテーブルへの不必要な結合を生成すべきではない。他方、ユーザの現在の言語が基本言語でない場合、サーバは、ユーザの言語で翻訳を得るためにルックアップテーブルと結合する以外に、選択の余地はない。
【００５２】
ある実施例に従うと、ＢＩサーバは、ユーザが翻訳された列でフィルタを生成することを可能にする。好ましくは、翻訳された列上の任意のフィルタが集計の前に評価されることになる。これは、翻訳ルックアップ結合が集計の前に実行されるだろうということを意味する。しかしながら、代替的実施例においては、フィルタは、集計前に、翻訳された列において評価されなくてもよい。代わりに、サーバは、フィルタをサブクエリに変換することを試みることができる。
【００５３】
ある実施例に従うと、あるルックアップテーブルオブジェクトは、管理者によって、ＢＩサーバのビジネスモデルにおいて定義することができ、それは、翻訳ルックアップテーブルに対して必要なメタデータを定義することになる。１つの特定の実施例に従うと、ルックアップテーブルは以下の特別な属性をともなう論理テーブルである：
１）各ルックアップテーブルの主キーは、ルックアップを実行する'Lookup Key'（「ルックアップキー」）と見なされることになる。この特定の実施例に従うと、ルックアップは、すべてのルックアップキー列に対する値があたえられるときしか実行できない。
２）ルックアップキーは、通常の論理テーブルキーに匹敵する特別な属性を有する。ルックアップキーの列はオーダに敏感である。つまり、(Product_Code, Language_Key)および(Language_Key, Product_Code)は、２つの異なるルックアップキーと見なされることになる。ルックアップキー列のオーダは管理ツールＵＩにおいて指定することができる。ルックアップキーの列はすべてルックアップ関数において結合されるよう要求され得る。
３）ルックアップテーブルはルックアップキーを１つだけ有する。
４）ルックアップテーブルは少なくとも１つの値列を有する。たとえば、先に記載されたProduct_Translations_Tableにおいては、’Description’は値列であり、それは製品記述に対する実際の翻訳値を含む列である。
５）ルックアップキーから各値列への関数依存性がなければならない。言いかえれば、ルックアップキーを用いて値列を識別することができる。それは、さらに、ルックアップキーおよび値列は両方とも同じ物理テーブルに属すべきであることを示唆する。
６）ルックアップテーブルは、任意の他の論理テーブルに結合せずに、スタンドアロンであり得る。
【００５４】
ある実施例に従うと、ルックアップ関数は、ビジネスマッピング層において、翻訳された論理テーブル列の式の一部として用いることができる。１つの特定の実施例に従うと、ルックアップ関数の構文は、以下のとおりであり得る：
【００５５】
【数１】
0005873078.tif 000004
【００５６】
上記の実施例の構文に従って、ルックアップ関数を呼び出すいくつかの例が以下に示される：
【００５７】
【数２】
0005873078.tif 000005
【００５８】
１つの特定の実施例に従うと、ルックアップ関数は以下の属性を有する：
１）ルックアップ動作はDense（密）かまたはSparse（疎）のいずれかであり、それはキーワードDenseまたはSparseによって指定され得る。DenseまたはSparseのどれもあたえられない場合、デフォルト挙動は密なルックアップである。Denseルックアップについては、翻訳テーブルは内部結合を介してベーステーブルに結合されることになり、一方、SPARSE（疎）ルックアップについては、残された外部結合が実行されることになる。
２）第１のパラメータ（Dense/Sparseのキーワードの後のパラメータ）は、論理層において定義される有効なルックアップテーブルからの有効な値列でなければならない。
３）Sparseのキーワードがあたえられる場合、第２のパラメータはvalue_column（値＿列）のベース値をあたえる列でなければならない。密なルックアップについては、このベース列は必要ではない。
４）expression_list（式＿リスト）の式の数は、value_columnによって定義されるルックアップテーブルにおいて定義されるルックアップキー列の数と等しくあるべきである。式リストにおいて指定された式は、さらに、オーダに従って１つずつルックアップキー列と一致すべきである。たとえば、ルックアップテーブルProductName_TRANS（製品名＿TRANS）に対するルックアップキーは(Product_code, Language_Key)であり、expression_listにおける式は(SnowflakeSales.Product.ProductID, VALUEOF(NQ_SESSION."LANGUAGE"))であり、ルックアップの意味は次のとおりである：Product_code = SnowflakeSales.Product.ProductID およびLanguage_Key = VALUEOF(NQ_SESSION."LANGUAGE")の条件で翻訳テーブルからProductNameの翻訳された値を返す。
【００５９】
ある実施例に従うと、ＢＩサーバは、論理要求生成の後の方の段階においてルックアップ関数の呼出しを書き換えることができる。以下のテーブルは、１つの考えられ得る、非限定的なＳＱＬ生成方策を示す：
【００６０】
【数３】
0005873078.tif 000006
【００６１】
ＳＱＬ生成方策上のさらなる詳細、および関連する資料は、米国仮特許出願第６１／３４９，７５４号において見出すことができ、その全体を、それとともに提出された付録のすべてを含み、ここに引用により援用する。
【００６２】
図５は、この発明のさまざまな実施例に従うビジネスインテリジェンスサーバにおいて用いられる多言語サポートのフローチャート図である。この図は例示のために特定のシーケンスで機能上のステップを示すが、プロセスは必ずしもこの特定のオーダまたはステップに限定されない。当業者は、この図において示されたさまざまなステップは、並列して変更、再構成、実行され得るか、またはさまざまな態様で適合され得ることを十分に理解するだろう。さらに、あるステップまたはステップのシーケンスは、この発明の精神および範囲から逸脱することなく、このプロセスに追加するか、またはこのプロセスから省略することができることが理解される。
【００６３】
ステップ５００において示されるように、ＢＩサーバは、ベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取る。クエリはユーザに対して確立されたセッション中に受け取られる。ステップ５０２において、ＢＩサーバはセッション変数を検査し、セッションの言語は、ベーステーブルにデータを格納するよう用いられる言語とは異なる、と判断する。言語がベーステーブルにおいて用いられる言語と同じである場合には、翻訳またはルックアップは必要ではない。しかしながら、言語が異なる場合は、ルックアップ関数がステップ５０４において呼び出される。ルックアップ関数は、パラメータとして、ベーステーブルの列、ルックアップテーブルにおける値、およびデータを選択する式をとる。ステップ５０６において、ＢＩサーバは、ルックアップ関数をＳＱＬに書き換え、ベーステーブルとルックアップテーブルとの結合動作を実行する。結合動作は、セッションに対する言語において、ベーステーブルの行に対する翻訳された値をもたらす。
【００６４】
この開示に記載されるさまざまな前後関係の全体にわたって、この発明の実施例は、前述のシステムおよび方法を実施するよう構成された、コンピュータ装置、電算処理システムおよび機械読取可能媒体もさらに包含する。具体的に設計された集積回路または他の電子機器からなる実施例に加えて、この発明は、コンピュータ技術の熟練者には明らかであろうように、従来の汎用もしくはこの開示の教示に従ってプログラミングされた特殊化されたデジタルコンピュータまたはマイクロプロセッサを用いて、簡便に実施されてもよい。
【００６５】
適切なソフトウェアコーディングが、ソフトウェア技術の熟練者には明らかであろうように、この開示の教示に基づいて、熟練したプログラマによって容易に準備することができる。この発明は、さらに、当業者には容易に明らかであろうように、特定用途向け集積回路の準備によって、または従来の構成要素回路の適切なネットワークを相互接続することによって、実現されてもよい。
【００６６】
さまざまな実施例は、ここに呈示された特徴のいずれかを実行するように汎用または特殊化された電算処理プロセッサ／装置をプログラミングするよう用いることができる命令を格納した記憶媒体であるコンピュータプログラムプロダクトを含む。記憶媒体は：フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、光磁気ディスク、ホログラフィストレージ、ＲＯＭ、ＲＡＭ、ＰＲＡＭＳ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリ装置、磁気または光カード、ナノシステム（分子メモリＩＣを含む）を含む任意の種類の物理的媒体；ならびに命令および／もしくは情報を記憶するのに好適な任意の種類の媒体または装置の１つ以上含むことができるが、それらに限定はされない。コンピュータプログラムプロダクトは、全体または一部を、１つ以上の公共および／または私設ネットワークを介して送信することができ、その送信は、ここに呈示された特徴のいずれかを実行するために１つ以上のプロセッサによって用いることができる命令を含む。さまざまな実施例においては、送信は、複数個の別々の送信を含んでもよい。一実施例においては、コンピュータ読取可能記憶媒体は短期的ではない。
【００６７】
図６はここに記載されたこの発明のさまざまな実施例を実行するよう利用することができる電算処理装置の図である。ある実施例に従うと、コンピュータ６００は、１つ以上のハードウェアプロセッサ６１０、ならびにリードオンリメモリ（ＲＯＭ）６２０、ランダムアクセスメモリ（ＲＡＭ）６２２、ハードディスクドライブ６２４、光ディスクドライブ６２６、６３２、および外部記憶へのユニバーサルシリアルバス（ＵＳＢ）インタフェース６２８を含むがそれらに限定はされない物理メモリを含むことができる。ある実施例に従うと、コンピュータ６００は、さらに、キーボード６１２およびマウス６１４の組合せのような入力手段、ならびにモニタ６１６のような表示装置を利用することができる。さらに、コンピュータ６１０は、モデム、イーサネット（登録商標）カードまたは他の通信装置のような通信用インタフェース６１８により、他のコンピュータおよび同様の装置と通信することができる。図６に示された電算処理装置は、考えられ得るコンピュータのほんの一例であり、他の多くのそのような例がこれら実施例の範囲内で可能であることが注記される。
【００６８】
この発明の好ましい実施例の前述の記載は、例示および記載の目的に対してあたえられた。それは、網羅的であったり、またはこの発明を開示されたまさにその形態に限定することは、意図しない。多くの修正および変形が当業者には明らかになり得る。実施例はこの発明およびその実用化の原理について最もよく説明するために選択および記載され、それによって、関連する技術分野の他の当業者がこの発明を理解することを可能にする。
【図１】
0005873078.tif 000007
【図２】
0005873078.tif 000008
【図３Ａ】
0005873078.tif 000009
【図３Ｂ】
0005873078.tif 000010
【図４】
0005873078.tif 000011
【図５】
0005873078.tif 000012
【図６】
0005873078.tif 000013