"データ照会および処理環境において多言語サポートをあたえる方法であって、ベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取るステップを含み、前記クエリは少なくとも1人のユーザに対して確立されたセッション中に受け取られ、前記方法はさらに、前記セッションと関連付けられる言語が、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と判断するステップと、前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップとを含み、前記結合動作は、前記ベーステーブルの少なくとも1つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものである、方法。ビジネスインテリジェンスサーバにおいてルックアップ関数を実行するステップをさらに含み、前記ルックアップ関数は、前記結合動作を実行する構造化照会言語SQLステートメントに翻訳される、請求項1に記載の方法。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは前記ベーステーブルにおけるすべてのレコードに対する翻訳を含む密なルックアップテーブルである、と判断するステップと、前記ベーステーブルと前記ルックアップテーブルとの内部結合を実行するステップとをさらに含む、請求項1または2に記載の方法。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは、前記ベーステーブルにおけるレコードのサブセットのみに対する翻訳を含む、疎であるルックアップテーブルである、と判断するステップと、前記ベーステーブルと前記ルックアップテーブルとの外部結合を実行するステップとをさらに含み、前記ベーステーブルからの行は維持される、請求項1または2に記載の方法。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは、前記ベーステーブルの少なくとも1つの特定のフィールドについては完全な翻訳を含むが、前記ベーステーブルのフィールドの少なくとも1つの他のフィールドについては部分的な翻訳のみを含む、密および疎の両方であるルックアップテーブルである、と判断するステップと、疎または密の1つを指定するようルックアップ動作の属性を選定するステップとをさらに含み、疎であるルックアップは外部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続し、密なルックアップは内部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続する、請求項1または2に記載の方法。前記ユーザの現在の言語によって前記ベーステーブルからの前記データを要求する前記クエリをフィルタ処理し、前記ユーザの現在の言語を適用して前記ルックアップテーブルから翻訳された値を検索するステップをさらに含む、任意の先行する請求項に記載の方法。別のルックアップテーブルが各ベーステーブルにつき実現され、前記ルックアップテーブルは、前記ベーステーブルにおけるレコードへの外国キー参照を含む、任意の先行する請求項に記載の方法。別のルックアップテーブルが前記ベーステーブルの各フィールドにつき実現される、請求項1~6のいずれかに記載の方法。ビジネスインテリジェンスBIサーバが、複数の言語に翻訳されたデータを含むスキーマを実現し、どの言語がログインでユーザに関連付けられるかによって、クエリは、前記言語に従って、前記ルックアップテーブルを用いることにより、フィルタ処理される、任意の先行する請求項に記載の方法。コンピュータシステムによって実行されると前記コンピュータシステムに任意の先行する請求項の方法を実行させるプログラム命令を含む、コンピュータプログラム。請求項10のコンピュータプログラムが記憶されたコンピュータ記憶媒体。データ照会および処理環境において多言語サポートをあたえるためのシステムであって、データのセットを格納するデータソース、およびベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取るビジネスインテリジェンスBIサーバを含み、前記クエリは前記BIサーバと少なくとも1人のユーザとの間において確立されたセッション中に受け取られ、前記BIサーバは、前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と判断して、前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行し、前記結合動作は、前記ベーステーブルの少なくとも1つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものである、システム。前記ビジネスインテリジェンスサーバはルックアップ関数を実行し、前記ルックアップ関数は、前記結合動作を実行する構造化照会言語SQLステートメントに翻訳される、請求項12に記載のシステム。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは前記ベーステーブルにおけるすべてのレコードに対する翻訳を含む密なルックアップテーブルである、と判断するステップと、前記ベーステーブルと前記ルックアップテーブルとの内部結合を実行するステップとをさらに含む、請求項12または13に記載のシステム。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは、前記ベーステーブルにおけるレコードのサブセットのみに対する翻訳を含む、疎であるルックアップテーブルである、と判断するステップと、前記ベーステーブルと前記ルックアップテーブルとの外部結合を実行するステップとをさらに含み、前記ベーステーブルからの行は維持される、請求項12または13に記載のシステム。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは、前記ベーステーブルの少なくとも1つの特定のフィールドについては完全な翻訳を含むが、前記ベーステーブルのフィールドの少なくとも1つの他のフィールドについては部分的な翻訳のみを含む、密および疎の両方であるルックアップテーブルである、と判断するステップと、疎または密の1つを指定するようルックアップ動作の属性を選定するステップとをさらに含み、疎であるルックアップは外部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続し、密なルックアップは内部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続する、請求項12または13に記載のシステム。前記BIサーバは、前記ユーザの現在の言語によって前記ベーステーブルからの前記データを要求する前記クエリをフィルタ処理し、前記ユーザの現在の言語を適用して前記ルックアップテーブルから翻訳された値を検索する、請求項12~16に記載のシステム。別のルックアップテーブルが各ベーステーブルにつき実現され、前記ルックアップテーブルは、前記ベーステーブルにおけるレコードへの外国キー参照を含む、請求項12~17に記載のシステム。別のルックアップテーブルが前記ベーステーブルの各フィールドにつき実現される、請求項12~17のいずれかに記載のシステム。前記ビジネスインテリジェンスBIサーバは、複数の言語に翻訳されたデータを含むスキーマを実現し、どの言語がログインでユーザに関連付けられるかによって、クエリは、前記言語に従って、前記ルックアップテーブルを用いることにより、フィルタ処理される、請求項12~19のいずれかに記載のシステム。命令のセットを記憶するコンピュータ読取可能記憶媒体であって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、ベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取るステップを実行させ、前記クエリは少なくとも1人のユーザに対して確立されたセッション中に受け取られ、さらに、前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と判断するステップと、前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップとを実行させ、前記結合動作は、前記ベーステーブルの少なくとも1つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものである、コンピュータ読取可能記憶媒体。プロセッサと前記プロセッサに接続されるメモリとを含むコンピュータによって、データ照会および処理環境において多言語サポートをあたえるための方法であって、前記メモリに含まれるベーステーブルに格納されるデータのセットにアクセスするよう、クエリを、前記プロセッサによって受け取るステップを含み、前記クエリは少なくとも1人のユーザに対して確立されたセッション中に受け取られ、前記方法はさらに、前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と前記プロセッサによって判断するステップと、前記プロセッサによって前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップとを含み、前記結合動作は、前記ベーステーブルの少なくとも1つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものである、方法。前記プロセッサによってビジネスインテリジェンスサーバにおいてルックアップ関数を実行するステップをさらに含み、前記ルックアップ関数は、前記結合動作を実行する構造化照会言語SQLステートメントに翻訳される、請求項22に記載の方法。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは前記ベーステーブルにおけるすべてのレコードに対する翻訳を含む密なルックアップテーブルである、と前記プロセッサによって判断するステップと、前記プロセッサによって前記ベーステーブルと前記ルックアップテーブルとの内部結合を実行するステップとをさらに含む、請求項22または23に記載の方法。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは、前記ベーステーブルにおけるレコードのサブセットのみに対する翻訳を含む、疎であるルックアップテーブルである、と前記プロセッサによって判断するステップと、前記プロセッサによって前記ベーステーブルと前記ルックアップテーブルとの外部結合を実行するステップとをさらに含み、前記ベーステーブルからの行は維持される、請求項22~24のいずれかに記載の方法。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは、前記ベーステーブルの少なくとも1つの特定のフィールドについては完全な翻訳を含むが、前記ベーステーブルのフィールドの少なくとも1つの他のフィールドについては部分的な翻訳のみを含む、密および疎の両方であるルックアップテーブルである、と前記プロセッサによって判断するステップと、前記プロセッサによって、疎または密の1つを指定するようルックアップ動作の属性を選定するステップとをさらに含み、疎であるルックアップは外部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続し、密なルックアップは内部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続する、請求項22~25のいずれかに記載の方法。前記プロセッサによって、前記ユーザの現在の言語によって前記ベーステーブルからの前記データを要求する前記クエリをフィルタ処理し、前記ユーザの現在の言語を適用して前記ルックアップテーブルから翻訳された値を検索するステップをさらに含む、請求項22~26のいずれかに記載の方法。別のルックアップテーブルが各ベーステーブルにつき実現され、前記ルックアップテーブルは、前記ベーステーブルにおけるレコードへの外国キー参照を含む、請求項22~27のいずれかに記載の方法。別のルックアップテーブルが前記ベーステーブルの各フィールドにつき実現される、請求項22~28のいずれかに記載の方法。ビジネスインテリジェンスBIサーバが、複数の言語に翻訳されたデータを含むスキーマを実現し、どの言語がログインでユーザに関連付けられるかによって、クエリは、前記言語に従って、前記ルックアップテーブルを用いることにより、フィルタ処理される、請求項22~29のいずれかに記載の方法。データ照会および処理環境において多言語サポートをあたえるためのシステムであって、データのセットを格納するためのデータソース、およびベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取るビジネスインテリジェンスBIサーバを含み、前記クエリは前記BIサーバと少なくとも1人のユーザとの間において確立されたセッション中に受け取られ、前記BIサーバは、前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と判断して、前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行し、前記結合動作は、前記ベーステーブルの少なくとも1つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものである、システム。前記ビジネスインテリジェンスサーバはルックアップ関数を実行し、前記ルックアップ関数は、前記結合動作を実行する構造化照会言語SQLステートメントに翻訳される、請求項31に記載のシステム。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは前記ベーステーブルにおけるすべてのレコードに対する翻訳を含む密なルックアップテーブルである、と判断するステップと、前記ベーステーブルと前記ルックアップテーブルとの内部結合を実行するステップとをさらに含む、請求項31または32に記載のシステム。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは、前記ベーステーブルにおけるレコードのサブセットのみに対する翻訳を含む、疎であるルックアップテーブルである、と判断するステップと、前記ベーステーブルと前記ルックアップテーブルとの外部結合を実行するステップとをさらに含み、前記ベーステーブルからの行は維持される、請求項31~33のいずれかに記載のシステム。前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップは、前記ルックアップテーブルは、前記ベーステーブルの少なくとも1つの特定のフィールドについては完全な翻訳を含むが、前記ベーステーブルのフィールドの少なくとも1つの他のフィールドについては部分的な翻訳のみを含む、密および疎の両方であるルックアップテーブルである、と判断するステップと、疎または密の1つを指定するようルックアップ動作の属性を選定するステップとをさらに含み、疎であるルックアップは外部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続し、密なルックアップは内部結合を介して前記ベーステーブルを前記ルックアップテーブルと接続する、請求項31~34のいずれかに記載のシステム。前記BIサーバは、前記ユーザの現在の言語によって前記ベーステーブルからの前記データを要求する前記クエリをフィルタ処理し、前記ユーザの現在の言語を適用して前記ルックアップテーブルから翻訳された値を検索する、請求項31~35のいずれかに記載のシステム。別のルックアップテーブルが各ベーステーブルにつき実現され、前記ルックアップテーブルは、前記ベーステーブルにおけるレコードへの外国キー参照を含む、請求項31~36のいずれかに記載のシステム。別のルックアップテーブルが前記ベーステーブルの各フィールドにつき実現される、請求項31~37のいずれかに記載のシステム。前記ビジネスインテリジェンスBIサーバは、複数の言語に翻訳されたデータを含むスキーマを実現し、どの言語がログインでユーザに関連付けられるかによって、クエリは、前記言語に従って、前記ルックアップテーブルを用いることにより、フィルタ処理される、請求項31~38のいずれかに記載のシステム。命令のセットを記憶するコンピュータ読取可能記憶媒体であって、前記命令は、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、ベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取るステップを実行させ、前記クエリは少なくとも1人のユーザに対して確立されたセッション中に受け取られ、さらに、前記セッションと関連付けられる言語は、前記ベーステーブルに前記データのセットを格納するよう用いられる言語とは異なる、と判断するステップと、前記ベーステーブルと少なくとも1つのルックアップテーブルとの結合動作を実行するステップとを実行させ、前記結合動作は、前記ベーステーブルの少なくとも1つの行に対する翻訳された値をもたらし、前記翻訳された値は、前記セッションと関連付けられる前記言語におけるものである、コンピュータ読取可能記憶媒体。請求項22~30のいずれかにおいて記載される方法をコンピュータに実行させるためのプログラム。発明の概要さまざまな実施例に従って、多言語二重コラムサポートがBIサーバのために提供される。多言語サポートは、BIサーバが、ベーステーブルに格納された値の翻訳を格納するためにルックアップテーブルを用いることを可能にする。次いで、多言語データを必要とするクエリが、ベーステーブルとルックアップテーブルとを結合して、これらの翻訳を得ることができる。ある実施例に従うと、BIサーバは、ルックアップテーブルを、ユーザが異なる言語を用いるクエリで作業することを可能にする関連するルックアップ関数とともに実現することによって、多言語サポートを可能にする。ユーザがBIサーバにログインすると、セッションオブジェクトがユーザのために生成される。それは、ユーザのセッションに対する状態情報を維持する。そのようなセッションの変数の1つは、ユーザによって現在用いられている言語を指定する。ある実施例に従うと、BIサーバは、このセッション変数を検査して、ユーザの言語を判断し、必要に応じてルックアップ翻訳を実行することができる。たとえば、セッションによって用いられる言語が、必要な情報を格納するベーステーブルの言語とは異なる場合、BIサーバは、ルックアップ関数を呼び出すことによって翻訳を実行することができる。ルックアップの実行は、クエリによって要求された、翻訳された値をもたらすために、ベーステーブルとルックアップテーブルとの結合動作を実行することを含み得る。詳細な説明この発明は、同様の参照符号が同様の要素を示す添付の図面において、限定としてではなく、例として示される。この開示における実施例への参照は、必ずしも同じ実施例に対してではなく、そのような参照は少なくとも1つを意味する。具体的な実現例が論じられるが、それは例示の目的のためにのみなされることが理解される。関連する技術分野の当業者は、他の構成要素および構成が、この発明の範囲および精神から逸脱せずに用いられてもよいことを認識するだろう。以下の説明では、多数の具体的な詳細が、この発明の十分な記載を提供するために述べられる。しかしながら、この発明がこれらの具体的な詳細なしで実施されてもよいことは、当業者には明らかであろう。他の例では、この発明を不明瞭にしないよう、周知の特徴は詳細には記載されない。この開示の全体にわたって記載されるさまざまな実施例に従うと、ビジネスインテリジェンスBIサーバが、データクエリ用に多言語サポートで拡張される。ビジネスインテリジェンスクエリは、典型的には複数のテーブルを結合することを伴う。これは、さまざまな、技術的/パフォーマンス/機能上の挑戦を呈する。たとえば、1ユーザは、異なる言語にわたってユーザのために働く態様でフィルタProductcoke製品=コークを形成することができることを望む。フィルタがProductcokeとして表現される場合、これは日本人ユーザのためには働かないかもしれない;2さらに他の、関係のあるデータが、データベースCLOB/BLOB列パワーポイントファイル、エクセルファイル、PDFファイル、患者X線などに格納されることが一般的である。データベースは、通常、これらの列がgroupbyに参加することを可能にしない;および3ラベルローカリゼーションニーズは、典型的には、あるテーブルが複数のテーブルと結合joinされることを必要とする。しかし、任意の所与のクエリに対して、これらの1つだけがアクティブかもしれない。加えて、結合joinは最適になされる後集計postaggregationで有り得る。多言語サポート特徴は、BIサーバがこれらのニーズに対処することを可能にする。ある実施例に従うと、BIサーバは、ルックアップテーブルを、ユーザが異なる言語を用いるクエリで作業することを可能にする関連するルックアップ関数とともに実現することによって、多言語サポートを可能にする。ユーザがBIサーバにログインすると、セッションオブジェクトがユーザのために生成される。それは、ユーザのセッションに対する状態情報を維持する。そのようなセッションの変数の1つは、ユーザによって現在用いられている言語を指定する。ある実施例に従うと、BIサーバは、このセッション変数を検査して、ユーザの言語を判断し、必要に応じてルックアップ翻訳を実行することができる。たとえば、セッションによって用いられる言語が、必要な情報を格納するベーステーブルの言語とは異なる場合、BIサーバはルックアップ関数を呼び出すことによって翻訳を実行することができる。他方、セッションの言語がベーステーブルの言語と同じである場合には、翻訳は必要ではなく、クエリは、いかなるルックアップもなしで直接答えられ得る。ある実施例に従うと、ルックアップテーブルは少なくとも1つの値列を含む。それは、データを格納するために用いられるベーステーブルにおける列の実際の翻訳値を含む列である。加えて、ルックアップテーブルは、ルックアップを実行するために用いられるルックアップキーたとえば主キーを有する。ある実施例に従うと、ルックアップ関数は、特定のデータ片の翻訳を得るために用いられるパラメータのセットを含む。たとえば、ルックアップ関数は、翻訳を含むルックアップテーブルの値列を指定するパラメータを含む。加えて、ルックアップ関数は、データ項目の識別子を指定するパラメータ、および翻訳に対して必要とされる特定の言語を識別するパラメータこれはセッション変数から得ることができるを含む。いくつかの場合では、以下にさらに詳述されるように、ルックアップ関数は、さらに、必要とされるデータ片に関して基本言語で値を格納するベーステーブルの列を指定するためのパラメータを含んでもよい。ある実施例に従うと、BIサーバは、ルックアップテーブルとベーステーブルとの結合動作を実行するよう用いられる適切な構造化照会言語SQLステートメントに、ルックアップ関数を書き換える。結合動作は、クエリによって要求されたベーステーブルの行に対して翻訳された値をユーザのセッション言語でもたらす。図1は、この発明のさまざまな実施例に従うBIサーバの図である。この図は構成要素を論理上別々のものとして示すが、そのような図示は単に例示のためである。この図において示された構成要素を組み合わせることができるか、または別のソフトウェア、ファームウェアおよび/もしくはハードウェアに分割することができることは、当業者に明らかであろう。さらに、そのような構成要素が、それらがどのように組み合わせられるかまたは分割されるかにかかわらず、同じ電算処理装置で実行することができるか、または1つ以上のネットワークもしくは他の好適な通信手段によって接続される異なる電算処理装置間に分散することができることも当業者には明らかであろう。例示されるように、BIサーバ104およびBIリポジトリ108は、ユーザ100に複雑な共用データソース106に対して単純な論理的な構造化照会言語SQLクエリを送らせる抽象化の層を提供する。ある実施例に従うと、BIサーバ104はユーザ要求を処理し、基礎となるデータソースに問い合わせる。BIサーバは論理データモデルを維持し、オープンデータベースコネクティビティODBCを介してこのモデルに対してクライアントアクセスをあたえることができる。ある実施例に従うと、BIサーバは、リポジトリ108においてメタデータを用いて、2つのタスクを実行して、1論理SQLクエリを解釈し、対応する物理クエリを適切なデータソース106に対して書込み;2物理的な結果の組を変換し組み合わせて、最終計算を実行する。BIサーバは、ODBCを介して、または基礎となるデータソースのネイティブアプリケーションプログラミングインタフェースAPIを通じて、該データソースに対して接続することができる。ある実施例に従うと、管理ツール102はBIリポジトリ108を形成および編集するよう用いることができるアプリケーションである。管理ツールはオフラインモードでリポジトリに接続することができる。または、それはBIサーバを介してリポジトリに接続することができるオンラインモード。さまざまな実施例に従って、BIサーバによって提供されるさらなる機能性はオンラインモードで利用可能にできる。図2は、この発明のさまざまな実施例に従うBIリポジトリの層を横断するクエリの図である。この図は構成要素を論理上別々のものとして示すが、そのような図示は単に例示のためである。この図において示された構成要素を組み合わせることができるか、または別のソフトウェア、ファームウェアおよび/もしくはハードウェアに分割することができることは、当業者には明らかであろう。さらに、そのような構成要素が、それらがどのように組み合わせられるかまたは分割されるかにかかわらず、同じ電算処理装置で実行することができるか、または1つ以上のネットワークもしくは他の好適な通信手段によって接続される異なる電算処理装置間に分散することができることも当業者には明らかであろう。上に述べられるように、BIサーバは複雑な共用データソースに対して送信される、入来するクライアント要求200を処理することができる。ある実施例に従うと、BIリポジトリは3層、つまり物理層206、論理マッピング層204およびプレゼンテーション層202で構成される。ある実施例に従うと、物理層206は、BIサーバが各物理データソース208に対してネイティブクエリを書き込むのに必要とするオブジェクトおよび関係を定義する。ある実施例に従うと、ユーザまたは管理者は、データソースから、テーブル、キューブおよびフラットファイルをインポートすることによって、この層を形成する。たとえば、この図において示されるように、物理層において用いられるフォーマットおよびスキーマのいくつかは、スターおよびスノーフレーク214、正規化216および非正規化218データ、拡張マークアップ言語XMLおよびファイル記憶データ220、多次元データ222、アプリケーション開発フレームワークADFデータ224、ならびに他のフォーマットを含むことができる。物理モデルからアプリケーションの論理的な挙動を分離することは、複数の物理データソースを同じ論理オブジェクトに統合する能力をあたえ、集計ナビゲーションおよび区分化、ならびに物理ソースにおける変化からの次元適合および分離を可能にする。この分離は、さらに、ポータブルBIアプリケーションの生成も可能にする。ある実施例に従うと、論理ビジネスモデルおよびマッピング層204は、データのビジネスまたは論理モデルを定義し、ビジネスモデルと物理スキーマとの間のマッピングを指定する。この層は、さらに、ユーザによって見られる分析的な挙動を判断し、ユーザに利用可能なオブジェクトおよび関係のスーパーセットを定義する。それは、さらに、ソースデータモデルの複雑さを隠す。ある実施例に従うと、プレゼンテーション層202は、ユーザに対して、ビジネスモデルの、カスタマイズされた、安全な、役割に基づいたビュー210を呈示する態様を提供する。それは、あるレベルの抽象化をビジネスモデルおよびマッピング層204上に追加し、プレゼンテーションサービスおよび他のクライアント200で要求を構築するユーザによって見られるデータのビューを提供する。ある実施例に従うと、エンタープライズにとってBIリポジトリを構築する典型的なオーダは、まず物理層オブジェクト、次に論理モデルおよびマッピング層オブジェクト、最後にプレゼンテーション層オブジェクトを生成することである。しかしながら、代替的実施例においては、ユーザは任意の段階で各層に取り組むことができる。大抵の場合、ビジネスモデルを計画することは、意思決定サポートに対して使用可能なデータモデルを開発することにおける第1のステップである。あるビジネスモデルでは、次元は、論理列属性の階層的組織を表す。1つ以上の論理次元テーブルを、多くて1つの次元と関連付けることができる。一般的な次元の例は、期間、製品、市場、顧客、供給者、促進条件、原料、製造プラント、輸送方法、媒体の種類、および時刻である。ある実施例に従うと、次元は、論理モデルおよびマッピング層204ならびにプレゼンテーション層202に存在する。各次元では、属性を階層的レベルに組織化することができる。これらの論理レベルは、BIサーバを展開する組織のビジネスによって要求される組織的規則および報告ニーズを表わす。それらは、データのより詳細なビューを得るために、次元内および次元にわたってたたき込むようBIサーバが用いる構造メタデータを提供する。図3Aはこの発明のさまざまな実施例に従う、1つのルックアップテーブル実現例の図である。ここに記載される実施例はこの特定の実現例に必ずしも限定されず、他の実現例がこの発明の範囲内で可能であることが注記されるべきである。特に、この図は、1つのルックアップテーブルが各ベーステーブル毎に維持される、ルックアップテーブルの設計を示す。図3Bにおいて示される代替的設計では、以下にさらに詳述されるように、1つのルックアップテーブルが、ベーステーブルの各フィールドにつき、維持され得る。図3Aに示されるように、各ベーステーブル300につき、別のルックアップテーブル302がある。ある実施例に従うと、ルックアップテーブルは、ベーステーブルにおけるレコードへの外国キー参照を含み、別の列に各翻訳されたフィールド毎の値を含む。完全に密なルックアップテーブルを仮定した場合、ある特定の言語に対するルックアップテーブルにおける行の数は、ベーステーブルにおける行の数と等しい。図3Aに示される例では、ルックアップテーブル302における各レコードはベーステーブル300においてたった1つの行と一致する。図3Bはこの発明のさまざまな実施例に従う、別のルックアップテーブル実現例の図である。ここに記載される実施例はこの特定の実現例に必ずしも限定されず、ルックアップテーブルの他の実現例も可能であることを、もう一度注記する。例示されるように、代替的設計は、ベーステーブル302の各翻訳されたフィールドにつき、別のルックアップテーブル306を実現することである。ある実施例に従うと、各フィールドの翻訳された値を得ることは、次いで、ルックアップテーブルに対する別の結合を必要とするだろう。実際には、複数のフィールドに対する翻訳を含むわずか1つの物理テーブルがあることが多い。単一のテーブルが複数のフィールドに対する翻訳を含むとき、ルックアップテーブルにフィルタを置いて、ベーステーブルにおける特定の列に関係する値のみにデータを限定することが必要になり得る。この発明のさまざまな実施例に従って、BIサーバは、図3Aおよび図3Bに例示された両方のルックアップテーブル設計をサポートすることができる。さまざまな実施例に従って、疎および密なルックアップテーブルの両方がBIサーバによってサポートされ得る。いくつかのスキーマでは、ルックアップテーブルは、ベーステーブルにおけるレコードのいくつかのみに対する翻訳を含み、疎である。疎であるルックアップテーブルは、ベーステーブルからの行が維持されるように、ベーステーブルとの外部結合を必要とする。通常、翻訳が特定のレコードに対して見当たらないとき、ベース翻訳はNULL値の代わりに置換されるべきである。密なルックアップテーブルは、ベーステーブルにおけるすべてのレコードに対して、すべての言語で翻訳を含む。密なルックアップテーブルはすべてのベースレコードに対して一致するレコードを含むので、ルックアップテーブルはベーステーブルと内部結合することができ、それによって、外部結合および基本言語置換のオーバヘッドを回避する。いくつかの場合では、あるルックアップテーブルは密および疎の両方であり得る。たとえば、図3Bのルックアップテーブルは、Description記述フィールドに対しては完全な翻訳を含むが、Categoryカテゴリフィールドに対しては部分的な翻訳を含んでもよい。したがって、ある実施例に従うと、BIサーバは、テーブルの属性である代わりに、ルックアップ動作の属性として、密および疎を扱う。疎であるルックアップはベーステーブルを翻訳テーブルと外部結合で接続することになり、一方、密なルックアップは結果としてベーステーブルと翻訳テーブルとの間の内部結合になることになる。ある実施例に従うと、記述子列はBIサーバによってサポートすることができる。記述子列は、1対1の関係が記述子列となんらかのキー列との間にある場合にそのキー列に対してテキスト記述を提供する列である。実際には、1対1の関係はしばしば実施されないかもしれないが、クエリ目的に対しては、列は、あたかもそのような1対1の関係があるかのように扱われ得る。記述子列の一例はProductName製品_名称であってもよく、それは、ProductKey製品_キー列に対してテキスト記述をあたえる。多くの場合において2つの製品が同じ名称を有することが考えられ得るが、それは起こりそうにもなく、たとえ同じ名称を有する製品があっても、それらの製品は、集計およびフィルタにおいて依然として別個のエンティティとして扱うことができる。ある実施例に従うと、記述子列を生成する1つの理由は、言語非依存フィルタを定義することにおける補助にある。ユーザが記述子列に基づいたフィルタを生成するとき、クエリツールは、記述子列から選択される値のリストをユーザに対して表示する。内部では、BIサーバは、さらに、キー列を、LOVにおいて隠されたフィールドとして格納することができる。ユーザがLOVから値を選択するとき、ツールは、フィルタにおいて選択された記述子値を、隠されたキー値と置換し、キー列に関してフィルタを書き換える。フィルタは、翻訳されないキー列しか参照しない形式に変換されるので、フィルタは、言語に依存せず、他の言語のユーザと共有することができる。記述子列はしばしば複数の言語に翻訳されるが、これは必ずしも必要ではない。記述子列は単に1つの言語で記述をあたえてもよい。上に記載されたキー値への同じフィルタ変換は、翻訳されない記述子列に等しく当てはまる。これは、集計およびフィルタ処理の際に、異なるキー値を有するが同じテキスト記述を共有する行が別々に扱われることを保証することができる。ある実施例に従うと、この記述子列技術は、キャラクタラージオブジェクトCLOB、バイナリラージオブジェクトBLOBのような大きなオブジェクトLOBデータ型、およびCOUNTまたはSUMのような集計関数を伴っているクエリに対処するときも、有用である。あるデータソースは、LOB列がGROUPBY節において用いられることを可能にしない。したがって、LOB列をGROUPBYに追加する代わりに、LOB列と1対1の関係を有する他のなんらかの列によってグループ化し、次いで、集計が電算処理された後、LOB列を結合することが必要となり得る。図4は、この発明のさまざまな実施例に従う、クエリの翻訳を実行するためにルックアップテーブルを用いるビジネスインテリジェンスサーバの図である。この図は、構成要素を論理上別々のものとして示すが、そのような図示は単に例示のためである。この図において示された構成要素を組み合わせることができるか、または別のソフトウェア、ファームウェアおよび/もしくはハードウェアに分割することができることは、当業者に明らかであろう。さらに、そのような構成要素が、それらがどのように組み合わせられるかまたは分割されるかにかかわらず、同じ電算処理装置で実行することができるか、または1つ以上のネットワークもしくは他の好適な通信手段によって接続される異なる電算処理装置間に分散することができることも当業者には明らかであろう。示されるように、一旦セッション424がユーザに対して確立されると、ユーザ400はBIサーバ404に対して論理SQLクエリ402を出すことができる。クエリ402を受け取ると、BIサーバは、セッション424を検査して、ユーザのセッションの言語を判断することができる。言語が、ベーステーブル416においてデータを格納するために用いられる言語とは異なる場合、ルックアップ関数414を呼び出して、ベーステーブル416における値を、セッションの対応する言語に翻訳することができる。ある実施例に従うと、ルックアップ関数414を実行するために、BIサーバは、ベーステーブルにおいて格納されたデータの翻訳された値を得るよう実行される物理SQLステートメント412を生成することができる。ある実施例に従うと、この物理SQLステートメント412は、翻訳を得るためにベーステーブルとルックアップテーブルとの結合動作を実行することができる。特に、示された例示ステートメントにおいては、BIサーバによって生成されたSQLは、和QtySold408の計算をまず実行しステップ1、次いでステップ2で、ルックアップテーブルをステップ1の結果と結合する。さまざまな実施例に従って、BIサーバは翻訳されたルックアップテーブルをサポートすることができる。たとえば、BIサーバの解析論管理者は、複数の言語に翻訳されたデータを含むスキーマの上にビジネスモデルを生成することができる。ユーザがログインの際にどの言語を指定するかに依って、ユーザはクエリ結果を自身の言語において見出すはずである。ユーザが、異なる言語を用いてログし、再び同じクエリを実行する場合、ユーザは翻訳されたデータを現在の言語について見るはずである。ある実施例に従うと、スキーマは、英語における記述を含むProduct製品テーブルを含んでもよい。Productテーブルは、さらに、各言語依存列毎に言語非依存コードを含むことができる。たとえば、Categoryカテゴリ列は、対応するCategoryCodeカテゴリ_コード列を有する。以下は、Productテーブルの内容の例である:ある実施例に従うと、他の言語に対する記述は別の翻訳テーブルルックアップテーブルに格納することができる。以下は、ProductTranslations製品_翻訳テーブルおよびCategoryTranslationsカテゴリ_翻訳テーブルの内容の例である:ある実施例に従うと、ユーザがログインの際に英語を指定する場合、Productテーブルが関与するクエリは、翻訳テーブルと結合すべきでなく、なぜならば、基本言語翻訳が、ProductDescription製品.記述列およびProductCategory製品.カテゴリ列に既にあるからである。しかしながらユーザがログインの際にドイツ語を指定する場合、Descriptionの論理列を参照するクエリは、ProductテーブルをProductTranslationsテーブルと結合して、ドイツ語に対する翻訳された製品記述を得るべきである。ProductTranslationsテーブルは、さらに、フィルタ処理されて、LanguageKeyDEを伴う行のみを選択しなければならない。同様に、Categoryの論理列が要求される場合、ProductテーブルはCategoryTranslationsテーブルと結合されるべきである。DescriptionもCategoryも参照されない場合、物理SQLステートメントはどの翻訳テーブルも結合すべきではない。ある実施例に従うと、BIサーバは言語セッション変数をサポートすることができる。たとえば、ある場合においては、オプションの2桁の国コードをともなう2桁のISO言語コードたとえばzh-tw.を含む、WEBLANGUAGEと呼ばれる、システム定義されたセッション変数をあたえることができる。このセッション変数は、ユーザがログオンするときに選択される言語に基づいて設定され得る。いくつかの場合では、言語ルックアップテーブルにおいて用いられる言語コードは、WEBLANGUAGEセッション変数において格納された値とは異なり得る。その場合、管理者は、新しいセッション変数を生成して、WEBLANGUAGE変数におけるISO言語コードを、スキーマで用いられるすべての言語コードにマッピングすることができる。次いで、管理者は、翻訳ルックアップテーブルをフィルタ処理するとき、この新しいセッション変数を参照するだろう。ある実施例に従うと、基本言語は所与のスキーマのデフォルト言語である。頻繁には、基本言語における翻訳は、残りの翻訳とは異なるテーブルに格納される。ある実施例に従うと、BIサーバは、基本言語が要求されるかどうかに依存して、クエリを最適化する。たとえば、ユーザの現在の言語が基本言語で、基本言語翻訳がベーステーブルに格納される場合、サーバはルックアップテーブルへの不必要な結合を生成すべきではない。他方、ユーザの現在の言語が基本言語でない場合、サーバは、ユーザの言語で翻訳を得るためにルックアップテーブルと結合する以外に、選択の余地はない。ある実施例に従うと、BIサーバは、ユーザが翻訳された列でフィルタを生成することを可能にする。好ましくは、翻訳された列上の任意のフィルタが集計の前に評価されることになる。これは、翻訳ルックアップ結合が集計の前に実行されるだろうということを意味する。しかしながら、代替的実施例においては、フィルタは、集計前に、翻訳された列において評価されなくてもよい。代わりに、サーバは、フィルタをサブクエリに変換することを試みることができる。ある実施例に従うと、あるルックアップテーブルオブジェクトは、管理者によって、BIサーバのビジネスモデルにおいて定義することができ、それは、翻訳ルックアップテーブルに対して必要なメタデータを定義することになる。1つの特定の実施例に従うと、ルックアップテーブルは以下の特別な属性をともなう論理テーブルである:1各ルックアップテーブルの主キーは、ルックアップを実行するLookupKeyルックアップキーと見なされることになる。この特定の実施例に従うと、ルックアップは、すべてのルックアップキー列に対する値があたえられるときしか実行できない。2ルックアップキーは、通常の論理テーブルキーに匹敵する特別な属性を有する。ルックアップキーの列はオーダに敏感である。つまり、およびは、2つの異なるルックアップキーと見なされることになる。ルックアップキー列のオーダは管理ツールUIにおいて指定することができる。ルックアップキーの列はすべてルックアップ関数において結合されるよう要求され得る。3ルックアップテーブルはルックアップキーを1つだけ有する。4ルックアップテーブルは少なくとも1つの値列を有する。たとえば、先に記載されたProductTranslationsTableにおいては、’Description’は値列であり、それは製品記述に対する実際の翻訳値を含む列である。5ルックアップキーから各値列への関数依存性がなければならない。言いかえれば、ルックアップキーを用いて値列を識別することができる。それは、さらに、ルックアップキーおよび値列は両方とも同じ物理テーブルに属すべきであることを示唆する。6ルックアップテーブルは、任意の他の論理テーブルに結合せずに、スタンドアロンであり得る。ある実施例に従うと、ルックアップ関数は、ビジネスマッピング層において、翻訳された論理テーブル列の式の一部として用いることができる。1つの特定の実施例に従うと、ルックアップ関数の構文は、以下のとおりであり得る:上記の実施例の構文に従って、ルックアップ関数を呼び出すいくつかの例が以下に示される:1つの特定の実施例に従うと、ルックアップ関数は以下の属性を有する:1ルックアップ動作はDense密かまたはSparse疎のいずれかであり、それはキーワードDenseまたはSparseによって指定され得る。DenseまたはSparseのどれもあたえられない場合、デフォルト挙動は密なルックアップである。Denseルックアップについては、翻訳テーブルは内部結合を介してベーステーブルに結合されることになり、一方、SPARSE疎ルックアップについては、残された外部結合が実行されることになる。2第1のパラメータDenseSparseのキーワードの後のパラメータは、論理層において定義される有効なルックアップテーブルからの有効な値列でなければならない。3Sparseのキーワードがあたえられる場合、第2のパラメータはvaluecolumn値_列のベース値をあたえる列でなければならない。密なルックアップについては、このベース列は必要ではない。4expressionlist式_リストの式の数は、valuecolumnによって定義されるルックアップテーブルにおいて定義されるルックアップキー列の数と等しくあるべきである。式リストにおいて指定された式は、さらに、オーダに従って1つずつルックアップキー列と一致すべきである。たとえば、ルックアップテーブルProductNameTRANS製品名_TRANSに対するルックアップキーはであり、expressionlistにおける式はであり、ルックアップの意味は次のとおりである:ProductcodeSnowflakeSalesProductProductIDおよびLanguageKeyVALUEOFの条件で翻訳テーブルからProductNameの翻訳された値を返す。ある実施例に従うと、BIサーバは、論理要求生成の後の方の段階においてルックアップ関数の呼出しを書き換えることができる。以下のテーブルは、1つの考えられ得る、非限定的なSQL生成方策を示す:SQL生成方策上のさらなる詳細、および関連する資料は、米国仮特許出願第61/349,754号において見出すことができ、その全体を、それとともに提出された付録のすべてを含み、ここに引用により援用する。図5は、この発明のさまざまな実施例に従うビジネスインテリジェンスサーバにおいて用いられる多言語サポートのフローチャート図である。この図は例示のために特定のシーケンスで機能上のステップを示すが、プロセスは必ずしもこの特定のオーダまたはステップに限定されない。当業者は、この図において示されたさまざまなステップは、並列して変更、再構成、実行され得るか、またはさまざまな態様で適合され得ることを十分に理解するだろう。さらに、あるステップまたはステップのシーケンスは、この発明の精神および範囲から逸脱することなく、このプロセスに追加するか、またはこのプロセスから省略することができることが理解される。ステップ500において示されるように、BIサーバは、ベーステーブルに格納されるデータのセットにアクセスするようクエリを受け取る。クエリはユーザに対して確立されたセッション中に受け取られる。ステップ502において、BIサーバはセッション変数を検査し、セッションの言語は、ベーステーブルにデータを格納するよう用いられる言語とは異なる、と判断する。言語がベーステーブルにおいて用いられる言語と同じである場合には、翻訳またはルックアップは必要ではない。しかしながら、言語が異なる場合は、ルックアップ関数がステップ504において呼び出される。ルックアップ関数は、パラメータとして、ベーステーブルの列、ルックアップテーブルにおける値、およびデータを選択する式をとる。ステップ506において、BIサーバは、ルックアップ関数をSQLに書き換え、ベーステーブルとルックアップテーブルとの結合動作を実行する。結合動作は、セッションに対する言語において、ベーステーブルの行に対する翻訳された値をもたらす。この開示に記載されるさまざまな前後関係の全体にわたって、この発明の実施例は、前述のシステムおよび方法を実施するよう構成された、コンピュータ装置、電算処理システムおよび機械読取可能媒体もさらに包含する。具体的に設計された集積回路または他の電子機器からなる実施例に加えて、この発明は、コンピュータ技術の熟練者には明らかであろうように、従来の汎用もしくはこの開示の教示に従ってプログラミングされた特殊化されたデジタルコンピュータまたはマイクロプロセッサを用いて、簡便に実施されてもよい。適切なソフトウェアコーディングが、ソフトウェア技術の熟練者には明らかであろうように、この開示の教示に基づいて、熟練したプログラマによって容易に準備することができる。この発明は、さらに、当業者には容易に明らかであろうように、特定用途向け集積回路の準備によって、または従来の構成要素回路の適切なネットワークを相互接続することによって、実現されてもよい。さまざまな実施例は、ここに呈示された特徴のいずれかを実行するように汎用または特殊化された電算処理プロセッサ/装置をプログラミングするよう用いることができる命令を格納した記憶媒体であるコンピュータプログラムプロダクトを含む。記憶媒体は:フロッピー登録商標ディスク、光ディスク、DVD、CD-ROM、マイクロドライブ、光磁気ディスク、ホログラフィストレージ、ROM、RAM、PRAMS、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリ装置、磁気または光カード、ナノシステム分子メモリICを含むを含む任意の種類の物理的媒体;ならびに命令および/もしくは情報を記憶するのに好適な任意の種類の媒体または装置の1つ以上含むことができるが、それらに限定はされない。コンピュータプログラムプロダクトは、全体または一部を、1つ以上の公共および/または私設ネットワークを介して送信することができ、その送信は、ここに呈示された特徴のいずれかを実行するために1つ以上のプロセッサによって用いることができる命令を含む。さまざまな実施例においては、送信は、複数個の別々の送信を含んでもよい。一実施例においては、コンピュータ読取可能記憶媒体は短期的ではない。図6はここに記載されたこの発明のさまざまな実施例を実行するよう利用することができる電算処理装置の図である。ある実施例に従うと、コンピュータ600は、1つ以上のハードウェアプロセッサ610、ならびにリードオンリメモリROM620、ランダムアクセスメモリRAM622、ハードディスクドライブ624、光ディスクドライブ626、632、および外部記憶へのユニバーサルシリアルバスUSBインタフェース628を含むがそれらに限定はされない物理メモリを含むことができる。ある実施例に従うと、コンピュータ600は、さらに、キーボード612およびマウス614の組合せのような入力手段、ならびにモニタ616のような表示装置を利用することができる。さらに、コンピュータ610は、モデム、イーサネット登録商標カードまたは他の通信装置のような通信用インタフェース618により、他のコンピュータおよび同様の装置と通信することができる。図6に示された電算処理装置は、考えられ得るコンピュータのほんの一例であり、他の多くのそのような例がこれら実施例の範囲内で可能であることが注記される。この発明の好ましい実施例の前述の記載は、例示および記載の目的に対してあたえられた。それは、網羅的であったり、またはこの発明を開示されたまさにその形態に限定することは、意図しない。多くの修正および変形が当業者には明らかになり得る。実施例はこの発明およびその実用化の原理について最もよく説明するために選択および記載され、それによって、関連する技術分野の他の当業者がこの発明を理解することを可能にする。"