(57)【要約】【課題】  資源記述フレームワークベースの情報へのアクセス方法を提供する。【解決手段】  ＭＥＡＴＡＤＡＴＡを有用なものとするには、ユーザプログラムが、ＭＥＡＴＡＤＡＴＡにアクセスすることが必要な場合がある。ＲＤＦフレームワークでコード化されたＭＥＴＡＤＡＴＡにアクセスするように設計されたアプリケーションプログラムインターフェース（ＡＰＩ）は存在し得るが、それらのＡＰＩは、ＭＥＴＡＤＡＴＡが十分に利用されるように、ローカルソフトウェアプログラムおよび分散ソフトウェアプログラムの双方にアクセス可能であることが必要であり得る。この問題は、コンポーネント技術ベースのソフトウェアシステムを使用して、Ｊｅｎａアプリケーションプログラムインターフェース（ＡＰＩ）にアクセスすることにより、大部分を解決することができる。【選択図】図１
2004318831.tif 000002
【特許請求の範囲】
【請求項１】
Ｊｅｎａアプリケーションプログラムインターフェース（ＡＰＩ）（１２）を利用することによって、資源記述フレームワーク（ＲＤＦ）ベースの情報（１０）にアクセスすることと、
コンポーネント技術（１４）ベースのソフトウェアシステムを使用することであって、それによって、前記Ｊｅｎａ  ＡＰＩにアクセスする、コンポーネント技術（１４）ベースのソフトウェアシステムを使用することと
を含む方法。
【請求項２】
前記コンポーネント技術ベースのソフトウェアシステムを使用することは、
エンタープライズＪａｖａＢｅａｎｓ（ＥＪＢ）オブジェクト（１８）を生成することと、
前記ＥＪＢオブジェクト（１８）に基づいてＥＪＢインプリメンテーション（２０）を生成することであって、それによって、前記Ｊｅｎａ  ＡＰＩにアクセスする、ＥＪＢインプリメンテーション（２０）を生成することと
をさらに含む
請求項１に記載の方法。
【請求項３】
前記コンポーネント技術ベースのソフトウェアシステムを使用することは、
共通オブジェクトリクエストブローカアーキテクチャ（ＣＯＲＢＡ）コントロールドキュメント（２２）を生成することと、
前記ＣＯＲＢＡコントロールドキュメントに基づいてＣＯＲＢＡインプリメンテーション（２４）を生成することであって、それによって、前記Ｊｅｎａ  ＡＰＩにアクセスする、ＣＯＲＢＡインプリメンテーション（２４）を生成することと
をさらに含む
請求項１に記載の方法。
【請求項４】
前記コンポーネント技術ベースのソフトウェアシステムを使用することは、
仮想関数テーブル（２８）を使用することと、
メソッドへのポインタ（３０）を記憶することと
をさらに含み、
前記仮想関数テーブル（２８）および前記メソッドは、共通オブジェクトモデル（ＣＯＭ）の相互運用性の標準に準拠する
請求項１に記載の方法。
【請求項５】
前記仮想関数テーブルを使用することは、
分散共通オブジェクトモデル（ＤＣＯＭ）の相互運用性の標準に準拠する仮想関数テーブルおよびメソッドを使用すること
をさらに含む
請求項４に記載の方法。
【請求項６】
複数のファイルを記憶するコンピュータ可読媒体であって、
前記複数のファイルは、
コンポーネント技術ソフトウェア（１４）によってＪｅｎａアプリケーションプログラムインターフェース（ＡＰＩ）（１２）にアクセスするためのパラメータを定義するファイル
を含む
コンピュータ可読媒体。
【請求項７】
前記ファイルは、
エンタープライズＪａｖａＢｅａｎｓ（ＥＪＢ）オブジェクト（１８）
を含む
請求項６に記載のコンピュータ可読媒体。
【請求項８】
前記ファイルは、
インターフェース定義言語（ＩＤＬ）（２２）でコード化された共通オブジェクトリクエストブローカアーキテクチャ（ＣＯＲＢＡ）コントロールドキュメント
を含む
請求項６に記載のコンピュータ可読媒体。
【請求項９】
複数のファイルを記憶するコンピュータ可読媒体であって、
該複数のファイルは、
Ｊｅｎａアプリケーションプログラムインターフェース（ＡＰＩ）（１２）を通じて資源記述フレームワーク（ＲＤＦ）に基づき記憶された情報にアクセスするメソッドへのポインタ（３０）を記憶する仮想関数テーブル（２８）
を含む
コンピュータ可読媒体。
【請求項１０】
前記仮想関数テーブル（２８）のファイルおよびメソッドは、共通オブジェクトモデル（ＣＯＭ）の相互運用性の標準に準拠する
請求項９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、資源記述フレームワークベースの情報へのアクセス方法に関する。
【背景技術】
【０００２】
ワールドワイドウェブコンソーシアム（Ｗ３Ｃ）が定義するように、資源記述フレームワーク（ＲＤＦ（Resource Description Framework））は、情報を記憶するモデルとなり得る。
特に、ＲＤＦモデルを、情報に関する情報、すなわちＭＥＴＡＤＡＴＡ（メタデータ）を記憶するように設計することができる。
ＲＤＦモデルにおけるＭＥＴＡＤＡＴＡは、論理トリプル（logical triple）を使用してグループ化される。
このトリプルは、その最も簡単な形式では、主語、述語、および目的語を含むことができる。
例えば、文「Leslie is 34 years old（レスリーは３４歳である）」は、主語＝Ｌｅｓｌｉｅ（レスリー）、述語＝年齢、および目的語＝「３４」のトリプルに分解することができる。
したがって、主語「Ｌｅｓｌｉｅ」を目的語「３４」に結びつける述語は、「年齢」というプロパティとすることができる。
より技術的な観点からいえば、ＲＤＦモデルのトリプルは、資源（主語）、プロパティ（述語）、および目的語によって定義することができる。
上記に挙げた簡単な例では、資源は「Ｌｅｓｌｉｅ」であるが、ＲＤＦモデルでは、資源は、統一的資源識別子（ＵＲＩ（Universal Resource Identifier））を割り当てることができる任意のものとすることができる。
ＵＲＩを割り当てることができる資源の一例は、ワールドワイドウェブに書き込まれた文書である。
ＵＲＩを有する文書は、デジタル画像と同様に簡単なものであることもあるし、ウェブブラウザによって読み取られて見ることのできるウェブページを作成する一連のコマンドと同様に複雑なものであることもある。
【０００３】
ＲＤＦモデルは、プロパティまたは述語を定義することができない。
それどころか、ＲＤＦは、トリプル形式でＭＥＴＡＤＡＴＡを記憶する関係しか定義できない。
したがって、一般の人は、主語のその特定のジャンルに関連し得る任意の列のプロパティを自由に定義できる。
これらの定義された組のプロパティのそれぞれは、スキーマ、ＲＤＦスキーマ、または「名前空間」と呼ばれることがある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＭＥＡＴＡＤＡＴＡを有用なものとするには、ユーザプログラムが、ＭＥＡＴＡＤＡＴＡにアクセスすることが必要な場合がある。
ＲＤＦフレームワークでコード化されたＭＥＴＡＤＡＴＡにアクセスするように設計されたアプリケーションプログラムインターフェース（ＡＰＩ）は存在し得るが、それらのＡＰＩは、ＭＥＴＡＤＡＴＡが十分に利用されるように、ローカルソフトウェアプログラムおよび分散ソフトウェアプログラムの双方にアクセス可能であることが必要であり得る。
【課題を解決するための手段】
【０００５】
この問題は、コンポーネント技術ベースのソフトウェアシステムを使用して、Ｊｅｎａアプリケーションプログラムインターフェース（ＡＰＩ）にアクセスすることにより、大部分を解決することができる。
【０００６】
本発明の実施の形態の詳細な説明では、添付図面が参照される。
【発明を実施するための最良の形態】
【０００７】
表記および専門用語
ある一定の用語が、特定のコンポーネントおよびシステムを参照するために、以下の説明および特許請求の範囲を通して使用される。
当業者には十分理解されるように、コンピュータ会社およびソフトウェア会社は、１つのコンポーネントを種々の名前で言及することがある。
この文書は、名前が異なるが機能は異ならないコンポーネントおよびシステムを区別することを意図しない。
以下の解説および特許請求の範囲では、用語「含む」および「備える」は、制約のない（open-ended）ように使用され、したがって、「〜を含むが、それらに限定されるものではない」という意味に解釈されるべきである。
【０００８】
以下の解説は、本発明のさまざまな実施の形態を対象としている。
これらの実施の形態の１つまたは２つ以上のものは、好ましいものであり得るが、開示された実施の形態は、別段の指定がない限り、特許請求の範囲を含む開示の範囲を限定するものとして解釈されるべきでもなく、その他の方法で使用されるべきでもない。
さらに、以下の説明は、広い用途を有し、どの実施の形態の解説も、その実施の形態の代表的なものとしてしか意味せず、特許請求の範囲を含む開示の範囲がその実施の形態に限定されることを暗示するように意図していないことが、当業者には分かるであろう。
【０００９】
本発明の実施の形態は、ＲＤＦモデルを使用してコード化されるＭＥＴＡＤＡＴＡを作成することを対象とすることができる。
このＭＥＴＡＤＡＴＡは、さまざまなソフトウェアコンポーネント技術に利用可能である。
本発明のさまざまな実施の形態では、ＲＤＦベースの情報にアクセスするための主要なアプリケーションプログラムインターフェース（ＡＰＩ）をＪｅｎａとすることができる。
Ｊｅｎａは、公衆に利用可能なＡＰＩであり、Hewlett-Packardのウェブサイトhttp://www.hpl.hp.com/semweb/download.htmから得ることができる。
Ｊｅｎａを使用して、ＲＤＦモデルに基づいてコード化された情報にアクセスすることができる。
特に、Ｊｅｎａは、ＲＤＦモデルに基づいて拡張マーキング言語（ＸＭＬ（extensible markings language））でコード化された情報の読み出し、書き込み、および他の同様のタスクを行うことができるＪａｖａ言語ベースのＡＰＩであってもよい。
Ｊｅｎａは、特定のスキーマで定義されたプロパティを発見した後、そのプロパティにアクセスする機能を有することがあるので、Ｊｅｎａ  ＡＰＩは、ＲＤＦでコード化された情報に使用される１つまたは複数のスキーマとは独立に使用することができる。
【００１０】
コンポーネント技術は、ソフトウェアアプリケーションを作成する開発者が使用する既製のソフトウェアプログラムであってもよい。
プログラマが、空白のページから開始して、システム全体をコード化し、その後、そのようなシステムをデバッグするのではなく、コンポーネント技術によると、プログラマが、事前に記述および試験されたソフトウェア「コンポーネント」同士をモジュール形式でつなぎ合わせて、所望のタスクを実行させることが可能になる。
したがって、ソフトウェアコンポーネント技術が、ＲＤＦモデルを使用してコード化されたＭＥＴＡＤＡＴＡにアクセスできるように、場合によっては、Ｊｅｎａ  ＡＰＩを経由してそのＭＥＴＡＤＡＴＡにアクセスできるように、本発明の実施の形態を方向づけることができる。
【００１１】
図１は、本発明の実施の形態をブロック図形式で示し得る。
特に、本発明の実施の形態は、ＲＤＦデータベース１０を含むことができ、このＲＤＦデータベースは、ＲＤＦモデルを使用してコード化し得る情報を備える。
ＲＤＦデータベース１０へのアクセスは、Ｊｅｎａ  ＡＰＩ１２といったＡＰＩを通じて行うことができる。
前述したように、Ｊｅｎａ  ＡＰＩ１２は、ＲＤＦデータベース１０内を調べる能力を有し、それによって、ＲＤＦデータベース１０内でコード化されたさまざまなプロパティを決定することができ、外部プログラムが、ＲＤＦデータベース１０の関係へのアクセスおよび／またはその関係の変更を行うことを可能にする。
本発明の実施の形態では、以下にさらに十分に解説するさまざまなコンポーネント技術１４が、Ｊｅｎａ  ＡＰＩ１２を通じてＲＤＦモデル１０内のＭＥＴＡＤＡＴＡにアクセスすることができる。
したがって、さまざまなコンポーネント技術１４によって、クライアントプログラム１６は、場合によってはクライアント１６のプログラミング言語から独立のＲＤＦデータベース１０にアクセスすることが可能になる。
【００１２】
本発明の少なくともいくつかの実施の形態では、コンポーネント技術１４は、図２に示すように、エンタープライズＪａｖａＢｅａｎｓ（登録商標）（ＥＪＢ（Enterprise JavaBeans））システムに基づくコンポーネントとすることができる。
ＥＪＢは、オープンソースコンポーネント技術であってもよく、したがって、ＥＪＢにより、サードパーティのコンポーネントを統合して、システム全体を形成することが可能になる。
ＥＪＢに関するより多くの情報を得るには、http://java.sun.com/products/ejb/docs.htmlで利用可能なエンタープライズＪａｖａＢｅａｎｓ（登録商標）の最終草案を参照することができる。
この最終草案は、以下であたかも完全に再現されるかのごとく、参照により本明細書に援用される。
【００１３】
したがって、本発明の少なくともいくつかの実施の形態は、図２に示すように、Ｊａｖａ言語ベースのＥＪＢオブジェクト１８の生成を含むことができる。
このＥＪＢオブジェクトから、ＥＪＢシステムは、ＥＪＢインプリメンテーション２０を生成することができる。
このように、ＥＪＢオブジェクト１８とＥＪＢインプリメンテーション２０とを組み合わせたものが、クライアント１６（同様に、ＥＪＢ技術を使用してプログラムされ得る）がＲＤＦデータベースへのアクセスを容易にできるメカニズムを形成することができる。
【００１４】
次に、図３を参照して、図３は、本発明の別の実施の形態を示し得る。
特に、図３は、共通オブジェクトリクエストブローカアーキテクチャ（ＣＯＲＢＡ（Common Object Request Broker Architecture））ベースのシステムとしてコンポーネント技術１４を示し得る。
したがって、本発明の実施の形態は、インターフェース定義言語（ＩＤＬ（Interface Definition Language））フォーマットで記述し得るＣＯＲＢＡコントロールドキュメント３２の生成を含むことができる。
ＥＪＢと酷似しているＣＯＲＢＡは、遠隔のクライアントとオブジェクトの間でデータを通信するコンポーネント技術ベースのシステムであってもよい。
場合によっては、これらのクライアントおよびオブジェクトは、同じコンピュータ上に存在することがあるが、標準は、物理距離または論理距離にわたった通信をトランスペアレントに可能にすることができる。
ＣＯＲＢＡ標準に関するより多くの情報を得るには、http://www.omg.org/technology/documents/formal/corba2.htmで利用可能なＣＯＲＢＡ仕様書を参照することができる。
この標準は、以下であたかも完全に再現されるかのごとく、参照により本明細書に援用される。
【００１５】
本発明の実施の形態の関連部分において、ＣＯＲＢＡに準拠したシステムのオブジェクト側は、ＩＤＬのＣＯＲＢＡコントロールドキュメント２２により、利用可能なサービスおよび情報を定義することができる。
ＩＤＬは、プログラミング言語独立運用インターフェース（programming language independent operational interface）であってもよい。
ＣＯＲＢＡシステムの基礎となる通信プロトコルは、インターネットＯＲＢ間プロトコル（ＩＩＯＰ（InternetInterORB Protocol））であるが、ＣＯＲＢＡベースのシステムは、必ずしもこのプロトコルに限定されるものではない。
基礎となるＣＯＲＢＡシステムは、ＩＤＬのＣＯＲＢＡコントロールドキュメントから、ＪａｖａベースのＣＯＲＢＡインプリメンテーション２４を生成することができる。
このように、ＣＯＲＢＡ  ＩＤＬ２２とＣＯＲＢＡインプリメンテーション２４を組み合わせたものが、クライアント１６（同様に、ＣＯＲＢＡを使用してプログラムされ得る）がＲＤＦデータベースへのアクセスを容易にできるメカニズムを形成することができる。
【００１６】
次に、図４を参照して、図４は、本発明のさらに別の実施の形態を示し得る。
特に、図４は、コンポーネントオブジェクトモデル（ＣＯＭ（Component Object Model））のオブジェクト２６の形式でコンポーネント技術１４を示し得る。
ＣＯＭは、さまざまなソフトウェアベンダによって作成されたコンポーネントを組み合わせてアプリケーションを形成することを可能にするソフトウェアアーキテクチャであってもよい。
特に、ＣＯＭは、任意の単一のプログラミング言語に依存しない相互運用性（interoperability）の標準を定義することができる。
ＣＯＭに関するより多くの情報を得るには、http://www.microsoft.com/com/を参照することができる。
【００１７】
本発明の実施の形態の関連部分において、ＣＯＭオブジェクト２６は、仮想関数テーブル（ＶＴＢＬ）２８を備えることができる。
クライアント１６といった他のＣＯＭオブジェクトは、ＶＴＢＬ２８へのポインタを通じてＣＯＭオブジェクトのさまざまなメソッドにアクセスすることができる。
すなわち、ＶＴＢＬ２８は、一連の関数ポインタ３０を含むことができる。
そして、これらの関数ポインタは、特定のメソッド３２を指し示すことができる。
ＣＯＭ標準によると、これらのメソッドは、それらの所望のタスクを実行するように任意のプログラミング言語で実施することができる。
本発明の実施の形態によると、メソッド３２は、Ｊｅｎａ  ＡＰＩ１２と通信し、そして、Ｊｅｎａ  ＡＰＩ１２は、ＲＤＦデータベース１０と通信することができる。
したがって、ＣＯＭ技術を使用すると、クライアント１６といった他のオブジェクトは、ＣＯＭオブジェクト２６のメソッドを発見して利用することにより、ＲＤＦデータベース１０の情報へのアクセスおよび／または当該情報の変更を行うことができる。
【００１８】
一般的に言うと、ＣＯＭ技術は、ＣＯＭオブジェクト２６と同じアドレス空間内に存在するＣＯＭオブジェクトが、（場合によっては、Ｊｅｎａ  ＡＰＩ１２と通信することにより）ＲＤＦデータベース１０の情報へのアクセスかつ／または当該情報の変更を行うことを容易に可能にすることができる。
さらに、ＣＯＭシステムアーキテクチャは、遠隔のオブジェクト、例えば同じハードウェア内ではあるが、異なるアドレス空間内のオブジェクトに加えて、別のマシンのハードウェア内のオブジェクトが、ＣＯＭオブジェクト２６およびそのメソッド３２に遠隔でアクセスすることを可能にする限られた機能を有することができる。
一方、本発明の実施の形態は、分散コンポーネントオブジェクトモデル（ＤＣＯＭ（Distributed Components Object Model））として知られているＣＯＭ技術を拡張したものを使用して、遠隔のオブジェクトがＣＯＭオブジェクト２６にアクセスすることを容易にすることもできる。
特に、ＤＣＯＭは、相互に遠隔のマシン上で実行されるオブジェクト間の比較的トランスペアレントな通信を可能にすることができる。
ＤＣＯＭは、専ら、その個人の開発者が実施に関与する必要がない一組の事前にパッケージ化されたコンポーネント技術として、例えば、ハードウェア障害の場合のフォールトトレランス、ネットワーク障害の処理といった機能を提供でき、また、ネットワークトラフィックを分散させることもできる。
ＤＣＯＭに関する情報をさらに得るには、http://www.microsoft.com/com/teck/DCOM.aspを参照することができる。
【００１９】
このように、本発明のいくつかの実施の形態では、ＤＣＯＭは、クライアント１６とＣＯＭオブジェクト２６との間の通信を実施するために必要な機能を提供することができる。
この機能の提供は、場合によっては、ローカルオブジェクトが自身のアドレス空間で実行されているオブジェクトと通信しているという印象を当該ローカルオブジェクトに与えるプロキシを提供することにより行われる。
しかしながら、ＣＯＭは、単独で、この機能のいくつかを有することができ、したがって、ＤＣＯＭは、必ずしも必要とされないことを理解すべきである。
さらに、他の通信システムをＣＯＭと組み合わせて使用し、遠隔アクセス機能を容易にすることができる。
【００２０】
上記解説は、本発明の原理およびさまざまな実施の形態の例示として意図されている。
当業者には、上記開示を十分に理解すると、多くの変形および変更が明らかとなるだろう。
添付の特許請求の範囲は、このようなすべての変形および変更を包含するように解釈されることが意図されている。
【図面の簡単な説明】
【００２１】
【図１】代表的な実施の形態の高レベルの概要のブロック図形式の図である。
【図２】代表的な実施の形態によるエンタープライズＪａｖａＢｅａｎｓ（登録商標）の使用を示す図である。
【図３】代表的な実施の形態による共通オブジェクトリクエストアーキテクチャ（ＣＯＲＢＡ）の使用を示す図である。
【図４】代表的な実施の形態によるコンポーネントオブジェクトモデル（ＣＯＭ）および分散コンポーネントオブジェクトモデル（ＤＣＯＭ）の使用を示す図である。
【符号の説明】
【００２２】
１０・・・ＲＤＦデータベース、
１２・・・Ｊｅｎａ  ＡＰＩ、
１４・・・コンポーネント技術、
１６・・・クライアントプログラム、
１８・・・ＥＪＢオブジェクト、
２０・・・ＥＪＢインプリメンテーション、
２２・・・ＣＯＲＢＡ  ＩＤＬ、
２４・・・ＣＯＲＢＡインプリメンテーション、
２６・・・オブジェクト、
２８・・・仮想関数テーブル（ＶＴＢＬ）、
３０・・・関数ポインタ
３２・・・メソッド、
【図１】
2004318831.tif 000003
【図２】
2004318831.tif 000004
【図３】
2004318831.tif 000005
【図４】
2004318831.tif 000006