(57)【要約】  レポジトリ内に格納されるリソース間のリレーションシップを管理する方法及び装置を提供する。クライアントは、サーバに、第１のリソースをレポジトリ内に格納する要求を送信する。要求の受信に呼応して、サーバは、第１のリソースをパースして、レポジトリ内に格納されるべき又は現在格納される２つ以上のリソース間のリレーションシップを特定するリレーションシップ・データを取出しする。サーバは、サーバがアクセス可能であるデータベース内に、２つ以上のリソース間のリレーションシップを特定する１つ以上のリレーションシップ・レコードを格納する。１つ以上のリレーションシップ・レコードは、２つ以上のリソースとは別個に格納される。次に、クライアントは、サーバに対して、データベース内に格納される１つ以上のリレーションシップ・レコードについて問い合わせを発行しうる。このようにしてユーザは、１つ以上のリレーションシップ・レコードにアクセスして、レポジトリ内に格納されるリソース間のリレーションシップを解析しうる。【選択図】図２Ａ
2009512960.tif 000002
【特許請求の範囲】
【請求項１】
命令が関与する機械実行演算を実行することを含む方法であって、
前記機械実行演算は、
Ａ）前記命令を、伝送媒体を介して送信すること、
Ｂ）前記命令を、伝送媒体を介して受信すること、
Ｃ）前記命令を、機械可読記憶媒体上に格納すること、及び
Ｄ）前記命令を実行すること、
のうちの少なくとも１つであり、
前記命令は、１つ以上のプロセッサによって実行されると、
第１のリソースをレポジトリ内に格納する要求の受信に呼応して、前記第１のリソースをパースして、前記第１のリソースと前記レポジトリ内の第２のリソースとのリレーションシップを特定するリレーションシップ・データを取出しすることと、
前記リレーションシップを表すリンクのタイプを決定することと、
前記第１のリソースと前記第２のリソースとの間の前記リンクのタイプを使用して前記リレーションシップを特定する１つ以上のリレーションシップ・レコードを、データベース内に格納することと、
を実行する命令であり、
前記１つ以上のリレーションシップ・レコードは、前記第１のリソースとは別個に格納される、方法。
【請求項２】
前記１つ以上のリレーションシップ・レコードは、前記第１のリソースから前記第２のリソースへのリンクのタイプを示し、
前記リンクのタイプは、ハードリンク、ウィークリンク、及びシンボリックリンクのうちの１つである、請求項１に記載の方法。
【請求項３】
前記リンクのタイプは、ハードリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記レポジトリにより前記第２のリソースに割り当てられるオブジェクト識別子により前記第２のリソースを特定する、請求項２に記載の方法。
【請求項４】
前記リンクのタイプは、ウィークリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記レポジトリにより前記第２のリソースに割り当てられるオブジェクト識別子により前記第２のリソースを特定する、請求項２に記載の方法。
【請求項５】
前記リンクのタイプは、シンボリックリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記第２のリソースが駐在する、前記レポジトリ内のパスを指定することで前記第２のリソースを特定する、請求項２に記載の方法。
【請求項６】
前記命令は、前記１つ以上のプロセッサにより実行されると、更に、
前記レポジトリから前記第２のリソースを削除する要求の受信に呼応して、前記レポジトリ内に格納される少なくとも１つのリソースが、前記第２のリソースに対して第１のタイプのリンクを有するか否かを決定し、
前記レポジトリ内の前記少なくとも１つのリソースが前記第２のリソースに対して第１のタイプのリンクを有すると決定すると、前記レポジトリから前記第２のリソースを削除する前記要求を拒否し、
前記レポジトリ内の前記少なくとも１つのリソースが前記第２のリソースに対して第１のタイプのリンクを有さないと決定すると、前記レポジトリから前記第２のリソースを削除する前記要求を許可する、請求項１に記載の方法。
【請求項７】
前記１つ以上のレコードは、前記リレーションシップを表示する方法を特定する、請求項１に記載の方法。
【請求項８】
前記リレーションシップは、第１のタイプであり、
前記命令は、前記１つ以上のプロセッサにより実行されると、更に、
前記１つ以上のリレーションシップ・レコードを、前記データベース内に格納することに呼応して、前記第２のリソースに関連付けられるカウンタをインクリメントし、
前記カウンタは、前記第２のリソースにおいて第１のタイプのリレーションシップを有する、前記レポジトリ内のリソースの数を示す、請求項１に記載の方法。
【請求項９】
命令が関与する機械実行演算を実行することを含む方法であって、
前記機械実行演算は、
Ａ）前記命令を、伝送媒体を介して送信すること、
Ｂ）前記命令を、伝送媒体を介して受信すること、
Ｃ）前記命令を、機械可読記憶媒体上に格納すること、及び
Ｄ）前記命令を実行すること、
のうちの少なくとも１つであり、
前記命令は、１つ以上のプロセッサによって実行されると、
レポジトリ内に第１のリソース及び第２のリソースを格納することと、
第３のリソースを前記レポジトリ内に格納する要求の受信に呼応して、前記第３のリソースをパースして、前記第１のリソースと前記第２のリソースとのリレーションシップを特定するリレーションシップ・データを取出しすることと、
前記リレーションシップを表すリンクのタイプを決定することと、
前記第１のリソースから前記第２のリソースへの前記リンクのタイプの存在を示す１つ以上のリレーションシップ・レコードを、データベース内に格納することと、
を実行する命令であり、
前記第１のリソースは、前記第２のリソースへのリンクを含まず、
前記１つ以上のリレーションシップ・レコードは、前記第１のリソース及び前記第２のリソースのいずれとも別個に格納される、方法。
【請求項１０】
前記リンクは、ハードリンク、ウィークリンク、及びシンボリックリンクのうちの１つである、請求項９に記載の方法。
【請求項１１】
前記リンクのタイプは、ハードリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記データベースにより前記第２のリソースに割り当てられるオブジェクト識別子により前記第２のリソースを特定する、請求項１０に記載の方法。
【請求項１２】
前記リンクのタイプは、ウィークリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記データベースにより前記第２のリソースに割り当てられるオブジェクト識別子により前記第２のリソースを特定する、請求項１０に記載の方法。
【請求項１３】
前記リンクのタイプは、シンボリックリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記第２のリソースが駐在する、前記レポジトリ内のバスを指定することで前記第２のリソースを特定する、請求項１０に記載の方法。
【請求項１４】
前記命令は、前記１つ以上のプロセッサにより実行されると、更に、
前記レポジトリから前記第２のリソースを削除する要求の受信に呼応して、前記レポジトリ内に格納される少なくとも１つのリソースが、前記第２のリソースに対して第１のタイプのリンクを有するか否かを決定し、
前記レポジトリ内の前記少なくとも１つのリソースが前記第２のリソースに対して第１のタイプのリンクを有すると決定すると、前記レポジトリから前記第２のリソースを削除する前記要求を拒否し、
前記レポジトリ内の前記少なくとも１つのリソースが前記第２のリソースに対して第１のタイプのリンクを有さないと決定すると、前記レポジトリから前記第２のリソースを削除する前記要求を許可する、請求項９に記載の方法。
【請求項１５】
前記１つ以上のレコードは、前記リレーションシップを表示する方法を特定する、請求項９に記載の方法。
【請求項１６】
前記リレーションシップは、第１のタイプであり、
前記命令は、前記１つ以上のプロセッサにより実行されると、更に、
前記第２のリソースに関連付けられるカウンタをインクリメントし、
前記カウンタは、前記第２のリソースと第１のタイプのリレーションシップを有する、前記レポジトリ内のリソースの数を示す、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明の実施形態は、レポジトリ内に格納されるリソース間のリレーションシップの管理に係る。
【背景技術】
【０００２】  本願にて広義に使用するデジタルリソース（又は単に「リソース」）とは、個別の実体として格納される任意のデジタルデータの単位をさす。以下に限定しないが、リソースの例証的な例としては、文書、画像、フォルダ、及びファイルが挙げられる。【０００３】  リソースは、互いに様々なタイプのリレーションシップを有しうる。一部の場合では、２つのリソース間のリレーションシップは、それらのリソースのうちの一方によって特定されうる。例えば、第１のウェブページは第２のウェブページとのリレーションシップを有しうる。これは、第１のウェブページが第２のウェブページへのウェブリンクを含むことによる。従って、ユーザが、第１のウェブページ上のウェブリンクを選択すると、そのユーザに第２のウェブページが表示される。【０００４】  他の場合では、２つのリソース間のリレーションシップは、それらの２つのリソースのいずれによっても特定されないことがある。例えば、サムネイル画像は、当該サムネイル画像が対応する原画像とリレーションシップを有する。これは、サムネイル画像と原画像は共に同じ画像を描写することによる。しかし、サムネイル画像と原画像は共に同じ画像を描写するが、サムネイル画像又は原画像のいずれにも互いが存在することを示すものがない。別の例として、第１のテキスト文書は、第２のテキスト文書とリレーションシップを有しうる。これは、第１のテキスト文書のコンテンツが、第２のテキスト文書のコンテンツを含むことによる。しかし、第１のテキスト文書は、第２のテキスト文書の存在を特定しないことがある。【０００５】  リソース管理アプリケーションは、拡張可能マークアップ言語（ＸＭＬ）といった自己記述型のメタ言語で表現されるリソースを格納するよう広く使用されるようになってきている。ＸＭＬは、リソースを要素のツリーとして定義することを可能にする言語である。ＸＭＬは、文書要素のタグ付けを可能にし、また、アプリケーション間及び組織間のデータの定義付け、伝送、検証、及び解釈を可能にするマークアップ言語である。ＸＭＬ仕様はＷ３Ｃコンソーシアムにより開発され、インターネット上に掲載される
（ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＸＭＬ）。【０００６】  ＸＭＬは、リソースの内容を記述するために使用されてきたが、当該技術分野における現行の技術は、レポジトリ内に格納されるリソース間のリレーションシップを適切に管理することができない。従って、レポジトリ内に格納されるリソース間のリレーションシップを管理する方法が望ましい。「背景技術」に記載される方法は、実行可能な方法ではあるが、必ずしも以前に想到又は実行された方法ではない。従って、従来技術であると示されない限り、「背景技術」に記載する方法はいずれも、ただ「背景技術」に記載されるという理由で従来技術とみなすべきではない。
【図面の簡単な説明】
【０００７】  本発明の実施形態を、添付図面の図において限定的ではなく例示的に示す。添付図面中、同様の参照番号は、同様の要素を指す。【０００８】
【図１】  本発明の一実施形態によるシステムを示す図である。
【０００９】
【図２Ａ】  本発明の一実施形態による、レポジトリ内にソースリソースを格納する機能工程を説明するフローチャートである。
【００１０】
【図２Ｂ】  本発明の一実施形態による、レポジトリ内にリレーションシップ特定リソースを格納する機能工程を説明するフローチャートである。
【００１１】
【図３】  本発明の一実施形態による、リソース設定の要素のスキーマを示す図である。
【００１２】
【図４】  本発明の一実施形態を実装しうるコンピュータシステムを示すブロック図である。
【詳細説明】
【００１３】  以下の記載において、説明目的で多数の特定詳細を記載することで本願に記載する発明の実施形態の完全な理解を提供する。しかし、本願に記載する発明の実施形態は、これらの特定詳細なしでも実施しうることは明らかであろう。一部の場合では、周知の構造及び装置は、本願に記載する発明の実施形態を不必要に不明瞭にすることを回避する目的でブロック図として示す。
［機能に関する概要］
【００１４】  本願では、レポジトリ内に格納されるリソース間のリレーションシップを管理する方法を提示する。第１の実施形態では、クライアントは、サーバに、第１のリソースを格納する要求を送信する。サーバは、要求の受信に応答して、第１のリソースをパースし、第１のリソースと、サーバがアクセス可能であるレポジトリ内の第２のリソースとのリレーションシップを特定するリレーションシップ・データを取出しする。リレーションシップ・データは、様々な方法で第１のリソース内に表現されうる。例えば、リレーションシップ・データは、ＸＭＬリンク言語（ＸＬｉｎｋ）を使用して表現されうる。バージョン１．０のＸＬｉｎｋ仕様（「ＸＬｉｎｋ仕様」）は、Ｗ３Ｃコンソーシアムから入手可能である。ＸＬｉｎｋ仕様は、インターネットからも取得可能であり（ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＸＭＬ）、本願にその全体を記載したものとして参照として組み込まれる。サーバは、サーバがアクセス可能なデータベース内に、第１のリソースと第２のリソースとのリレーションシップを特定する１つ以上のリレーションシップ・レコードを格納する。１つ以上のリレーションシップ・レコードは、第１のリソースとは別個に格納される。続けて、クライアントは、サーバに、データベース内に格納される１つ以上のリレーションシップ・レコードについて問い合わせを発行しうる。このようにして、ユーザは、１つ以上のリレーションシップ・レコードにアクセスし、レポジトリ内に格納されるリソース間のリレーションシップを解析しうる。
【００１５】  別の実施形態では、第１のリソース及び第２のリソースが、レポジトリ内に格納される。第１のリソース又は第２のリソースはいずれも互いへのリンクを含まない。サーバは、第３のリソース（「リレーションシップ特定リソース」）をサーバがアクセス可能であるレポジトリ内に格納するクライアントからの要求に応答して、そのリレーションシップ特定リソースをパースし、第１のリソースと第２のリソースとのリレーションシップを特定するリレーションシップ・データを取出しする。リレーションシップ・データは、ＸＬｉｎｋを使用してリレーションシップ特定リソース内で表現されうるが、ＸＬｉｎｋで表現されなくともよい。サーバは、サーバがアクセス可能であるデータベース内に且つ第１のリソースとは別個に、第１のリソースから第２のリソースへのリンクの存在を示す１つ以上のリレーションシップ・レコードを格納する。従って、クライアントは、次に、サーバに対して、第１のリソース又は第２のリソースのいずれも互いへのリンクを含まなくてもデータベース内に格納される１つ以上のリレーションシップ・レコードについて問い合わせを発行しうる。
［アーキテクチャに関する概要］
【００１６】  図１は、本発明の一実施形態によるシステム１００を示す図である。図１のシステム１００は、レポジトリ内に格納されるリソース間のリレーションシップを管理する目的で使用されうる。図１に示す実施形態では、システム１００は、クライアント１１０、通信リンク１２０及び１２２、サーバ１３０、永続ストレージ１４０、レポジトリ１５０、１つ以上のリレーションシップ・レコード１６０、及び１つ以上のリソース１７０を含む。図１のシステム１００は、例示的に過ぎない。本発明の他の実施形態は、図１に示す構成要素とは異なる構成要素を使用しうる。
【００１７】  クライアント１１０は、リソースをレポジトリ１５０内に格納する要求を発行できるようにする任意の媒体又はメカニズムにより提供されうる。例えば、ユーザは、クライアント１１０を使用して、レポジトリ１５０にリソースを格納しうる、また、レポジトリ１５０からリソースを取出ししうる。以下に限定しないが、クライアント１１０の例証的な例としては、ウェブブラウザ、ワイヤレス装置、携帯電話機、パーソナルコンピュータ、及びソフトウェアアプリケーションが挙げられる。
【００１８】  通信リンク１２０は、クライアント１１０とサーバ１３０との間でデータ交換できるようにする任意の媒体又はメカニズムにより提供されうる。通信リンク１２２は、サーバ１３０と永続ストレージ１４０との間でデータ交換できるようにする任意の媒体又はメカニズムにより提供されうる。通信リンク１２０及び１２２の例としては、以下に限定しないが、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イーサネット（登録商標）、又はインターネットといったネットワーク、又は、１つ以上の地上波リンク、衛星リンク、又はワイヤレスリンクが挙げられる。
【００１９】  サーバ１３０は、クライアント１１０からの要求を受信及び処理できるようにする任意の媒体又はメカニズムにより提供されうる。例えば、サーバ１３０は、クライアント１１０から受信した、レポジトリ１５０内にリソースを格納する要求を処理しうる。以下に限定しないが、サーバ１３０の例証的な例としては、データベースサーバ、又は、永続ストレージ１４０にコマンドを発行可能な任意のサーバが挙げられる。
【００２０】  永続ストレージ１４０は、リレーションシップ・レコードを永続的に格納できるようにする任意の媒体又はメカニズムにより提供されうる。以下に限定しないが、永続ストレージ１４０の例としては、データベースが挙げられる。図１に示す実施形態では、永続ストレージ１４０が、レポジトリ１５０を実装する。他の実施形態（図１には図示せず）では、レポジトリ１５０は、永続ストレージ１４０に実装されず、レポジトリ１５０は、永続ストレージ１４０とは別個であり、区別されうる。
【００２１】  永続ストレージ１４０を使用して、１つ以上のリレーションシップ・レコード１６０を格納しうる。リレーションシップ・レコードは、レポジトリ１５０内に格納される２つ以上のリソース間のリレーションシップを記述するレコードである。例えば、一実施形態では、リレーションシップ・レコードは、永続ストレージ１４０の１つ以上の表の１つ以上の行として具現化されうる。特定のリレーションシップ・レコードは、２つ以上のリソース間のリレーションシップのタイプ、そのリレーションシップに関与するリソースを特定する情報、及び、クライアント１１０に対してリレーションシップに関与するリソースを特定する方法といったリレーションシップについての任意の他の情報を記述しうる。
【００２２】  レポジトリ１５０は、ファイルシステムを実施できるようにする任意の媒体又はメカニズムにより提供されうる。レポジトリ１５０は、リソースが格納されうるフォルダの階層を与えうる。以下に限定しないが、レポジトリ１５０の例証的な例としては、ＮＦＳファイルレポジトリが挙げられる。
【００２３】  レポジトリ１５０を使用して１つ以上のリソース１７０を格納しうる。本願にて使用するリソースとは、個別の実体として格納される任意のデジタルデータの単位を指す。以下に限定しないが、リソースの例証的な例としては、文書、画像、フォルダ、及びファイルが挙げられる。
【００２４】  ここでは、一実施形態による例示的なシステム１００を説明した。レポジトリ１５０内に格納されるリソース１７０間のリレーションシップを特定する方法を以下に説明する。
［リレーションシップ・データを使用するソースリソースとターゲットリソース間のリレーションシップの特定方法］
【００２５】  説明を簡単にする目的で、本発明の幾つかの実施形態は、第１のリソース（ソースリソースと呼ぶ）を参照して説明する。第１のリソースは、第２のリソース（ターゲットリソースと呼ぶ）に対するリレーションシップを有する。本発明の実施形態は、任意の数のリソースを含むリレーションシップを管理しうるが、明白な例を与える目的で、ターゲットリソースへのリンクを有するソースリソースを参照する幾つかの実施形態を提示する。ソースリソースとターゲットリソースとのリレーションシップは、ソースリソース内に格納される情報（リレーションシップ・データと呼ぶ）によりシステム１００に対して特定されうる。或いは、リレーションシップ・データは、ソースリソース又はターゲットリソースとは異なるリソース（リレーションシップ特定リソースと呼ぶ）内に格納されてもよい。
【００２６】  リレーションシップ特定リソースは、リレーションシップに関与するソースリソースがリレーションシップ・データを担持することができない場合に、特に有用である。例えば、サムネイル画像は、当該サムネイル画像が基づいている原画像と特定のリレーションシップを有する。しかし、サムネイル画像ファイルは、サムネイル画像がレンダリングされる方法に影響を与えることなくリレーションシップ・データを担持するよう容易に変更することができない。従って、この場合は、リレーションシップ・データを、サムネイル画像ファイル自体ではなくリレーションシップ特定リソース内に格納することが有利でありうる。
【００２７】  リレーションシップ・データは、リレーションシップ・データを表現するために定義された構文を使用してソースリソース又はリレーションシップ特定リソース内で特定されうる。例えば、一実施形態では、ＸＬｉｎｋといったＸＭＬリンク言語を使用してリレーションシップ・データを表現しうる。ＸＬｉｎｋは、リソース間のリレーションシップを作成及び記述する目的で、要素をＸＭＬ文書内に挿入可能にする言語である。
【００２８】  本願では、ソースリソース又はリレーションシップ特定リソースにおけるリレーションシップ・データを特定するＸＬｉｎｋを参照して幾つかの実施形態を説明するが、リソースにおけるリレーションシップ・データを特定するためにＸＬｉｎｋを使用することは一実施形態の例に過ぎない。本発明の他の実施形態では、他の構文を使用してソースリソース又はリレーションシップ特定リソース内のリレーションシップ・データを特定しうる。
［リソース間のリレーションシップの性質］
【００２９】  リレーションシップ・データは、リソース１７０間の様々な異なるリレーションシップを特定しうる。例えば、第１のリソースは、第２のリソースとイントラリソース又はインターリソース・リレーションシップを有しうる。イントラリソース・リレーションシップは、ソースリソースが、１つ以上のターゲットリソースから構成されるリレーションシップを指す。インターリソース・リレーションシップは、第１のリソースが、ソースリソースの一部を形成しない１つ以上のターゲットリソースと暗黙的又は明示的なリレーションシップを有するリレーションシップを指す。
【００３０】  イントラリソース・リレーションシップの一例を挙げるに、大きい文書は、２つ以上の小さい文書から構成されることがある。別個のパーティが各小さい文書を管理する場合がある。更に、特定のリソースは、多くの他のリソース内に組み込まれるよう設計されうる。例えば、ボイラープレート文書（例えば、保証免責条項、又は、著作権表示）は、多数の他の文書内に組み込まれうる。ボイラープレート文書は、ボイラープレート文書を組み込む文書とは別個に格納される可能性が高いので、システム１００を使用して、ボイラープレート文書と、そのボイラープレート文書を組み込む文書とのリレーションシップを管理することが有利でありうる。従って、以下により詳細に説明するように、システム１００を使用して、ボイラープレート文書が偶然に削除されることを阻止しうる。更に、システム１００を使用して、ボイラープレート文書を組み込む、レポジトリ１５０内の全文書を決定しうる。
【００３１】  暗黙のインターリソース・リレーションシップの一例を挙げるに、ソースリソースは、サムネイル画像でありうる。サムネイル画像は原画像の小型版であるが、サムネイル画像又は原画像のいずれにも互いの存在を示す示唆がない。従って、サムネイル画像内には原画像がサムネイル画像と同じ画像を描写するという明白な示唆がないが、サムネイル画像は原画像に対してリレーションシップを有する。
【００３２】  明示のインターリソース・リレーションシップの一例を挙げるに、リソースは、別のリソースを特定するデータを含みうる。例えば、ウェブページは、レポジトリ１５０内に格納される１つ以上の他のターゲットリソースへのユニバーサル・リソース・ロケータ（ＵＲＬ）を使用して指定されるリンクを含みうる。明示的なインターリソース・リレーションシップの更なる例として、ソースリソースは、レポジトリ１５０内の特定のフォルダへのリンクを含みうる。
【００３３】  リソース１７０間に存在しうる例示的なリレーションシップの上述の説明は、リレーションシップ・データ又はリレーションシップ・レコード１６０により記述されうるリレーションシップのタイプを限定することを意図しない。これは、リレーションシップ・データ及びリレーションシップ・レコード１６０を使用して本願に全部を列挙するにはあまりにも多くの様々なリレーションシップを記述しうるからである。
【００３４】  ここでは、リソース１７０間に存在しうるリレーションシップのタイプを説明した。これらのリレーションシップがリレーションシップ・レコード１６０により記述される方法についての以下に更に詳細に説明する。
［ハードリンク、ウィークリンク、及びシンボリックリンク］
【００３５】  リソース１７０間のリレーションシップについての情報は、永続ストレージ１４０内に格納されるリレーションシップ・レコード１６０内に記録される。特定のリレーションシップ・レコードは、２つ以上のリソース１７０間のあるタイプのリンクを使用してその２つ以上のリソース１７０間のリレーションシップをモデル化しうる。リレーションシップ・レコードにより特定されうるリンクのタイプの幾つかの例には、ハードリンク、ウィークリンク、及びシンボリックリンクを含む。以下に示すハードリンク、ウィークリンク、及びシンボリックリンクの説明は、リレーションシップ・レコード１６０により特定されうるリンクのタイプを完全に網羅するわけではない。これは、リレーションシップ・レコード１６０を使用して、ソースリソースとターゲットリソースとの間の任意のタイプのリンクを特定しうるからである。
【００３６】  ソースリソースが、ターゲットリソースに対してハードリンクを有する場合、ターゲットリソースは、そのハードリンクによって、レポジトリ１５０に対して一意に特定される。例えば、ハードリンクを確立する特定のリレーションシップ・レコードは、レポジトリ１５０によりターゲットリソースに割り当てられるターゲットリソース識別子を含みうる。従って、ターゲットリソースがレポジトリ１５０内の別のロケーションに移る場合、ソースリソースとターゲットリソース間のハードリンクは維持されうる。これは、ターゲットリソースが、ターゲットリソース識別子によってレポジトリ１５０内で一意に特定されるからである。レポジトリ１５０が永続ストレージ１４０内に実装される一実施形態では、永続ストレージ１４０が、ターゲットリソース識別子を割り当てしうる。例えば、永続ストレージ１４０はデータベースである場合、データベースが、オブジェクト識別子を割り当てしてターゲットリソースを一意に特定しうる。このようにして、ターゲットリソースがレポジトリ１５０内で移動される場所に関係なく、データベースは、オブジェクト識別子を使用してターゲットリソースを特定しうる。
【００３７】  更に、ハードリンクは、リンクのインテグリティを保証する。換言すれば、ターゲットリソースは、レポジトリ１５０内の任意の他のリソースがそのターゲットリソースへのハードリンクを有する場合、レポジトリ１５０から削除不可である。従って、ハードリンクを使用して、ターゲットリソースへのハードリンクを有するターゲットリソースの偶然の削除を阻止しうる。
【００３８】  ハードリンクに類似して、ソースリソースがターゲットリソースに対してウィークリンクを有する場合、ターゲットリソースは、このウィークリンクによって一意に特定される。例えば、特定のウィークリンクを確立する特定のリレーションシップ・レコードは更に、レポジトリ１５０によりターゲットリソースに割り当てられるターゲットリソース識別子を含みうる。しかし、ハードリンクとは異なり、ウィークリンクは、リンクのインテグリティを保証しない。従って、ウィークリンクは、レポジトリ１５０内に格納される別のリソースがターゲットリソースへのウィークリンクを有する場合、そのターゲットリソースがレポジトリ１５０から削除されることを阻止しない。
【００３９】  ターゲットリソースがハードリンクを有する場合、そのターゲットリソースは、レポジトリ１５０から削除不可であるので、システム１００は、ターゲットリソースにハードリンクを付与するのに特定の許可レベルを必要とするよう構成されうる。しかし、ユーザは、ターゲットリソースにハードリンクを付与するのに十分な許可レベルを有さない場合でも、レポジトリ１５０にターゲットリソースを一意に特定し、それにより、ターゲットリソースがレポジトリ１５０内の異なるロケーションに動かされてもそのリンクが維持されることを依然として希望しうる。そのような場合、ウィークリンクの使用が有利となりうる。
【００４０】  ソースリソースがターゲットリソースに対してシンボリックリンクを有する場合、シンボリックリンクは、レポジトリ１５０内のターゲットリソースを一意に特定しないが、ターゲットリソースが駐在するレポジトリ１５０内のロケーションを特定する。従って、ターゲットリソースがレポジトリ１５０内の異なるロケーションに動かされる場合、シンボリックリンクは、ターゲットリソースをもはや指し示さなくなる。しかし、新しいターゲットリソースが、シンボリックリンクによって特定されるロケーションに動かされる場合、シンボリックリンクは、この新しいターゲットリソースを指し示すことになる。シンボリックリンクは、ターゲットリソースが駐在するロケーションへのレポジトリ１５０内の特定のパスを特定することでレポジトリ１５０内のロケーションを特定しうる。
【００４１】  シンボリックリンクにより特定されるターゲットリソースへのパスは、シンボリックリンクがアクセスされると解決される。従って、シンボリックリンクは、リソースを、レポジトリ内の特定のリソースにリンクさせるのではなく、レポジトリ１５０内の特定のロケーションに対してリンクさせることを維持したい場合に有用でありうる。例えば、一週間の７日間に対応する７つのフォルダがレポジトリ１５０内に存在しうる。７個のフォルダのうち６個のフォルダは、第１のロケーションに格納され、今日に対応するフォルダは第２のロケーションに格納される。一日の終わりに、今日に対応するフォルダは、第１のロケーションに戻され、新しい日に対応するフォルダが、第１のロケーションから第２のロケーションに移動されうる。今日に対応するフォルダに関して更新が行われる。このようにして、週の活動のローリングアーカイブが行われうる。今日に対応するフォルダにリソースがリンクされることが望まれる場合、特定のフォルダにリンクするのではなく、今日にたまたま対応するいずれかのフォルダにリソースをリンクすることが目的である。従って、シンボリックリンクをこのような状況において使用して、リソースを、第２のロケーション（今日のフォルダが格納されるロケーション）を占有するフォルダにリンクしうる。
【００４２】  更に、シンボリックリンクは、リソースを、レポジトリ１５０外に格納される別のリソースにリンクすることが所望される場合に使用されうる。レポジトリ１５０は、ターゲットリソース識別子をレポジトリ１５０により管理されないリソースに対しては割り当てることができないので、シンボリックリンクを使用してこのリレーションシップを記述しうる。例えば、レポジトリ１５０は、コールバック関数を登録してレポジトリ１５０外に格納されるリソースにアクセスしうる。このようにしてシンボリックリンクは、コールバック関数を参照及び使用して、レポジトリ１５０外で格納されうるターゲットリソースのロケーションを特定しうる。シンボリックリンクもリンクのインテグリティを保証しない。従って、シンボリックリンクは、レポジトリ１５０内に格納される他のリソースがターゲットリソースへのシンボリックリンクを有する場合、そのターゲットリソースがレポジトリ１５０から削除されることを阻止しない。
【００４３】  本発明の実施形態は、単一のターゲットリソースへのリレーションシップを有する単一のソースリソースを参照して主に説明するが、単一のリソースは、２つ以上のリソースとリレーションシップを有してもよい。従って、ソースリソース又はリレーションシップ特定リソース内に格納されるリレーションシップ・データは、１つのソースリソースが、２つ以上のターゲットリソースとのリレーションシップを有することを特定しうる。
【００４４】  ここでは、ソースリソース又はリレーションシップ特定リソース内のリレーションシップ・データによって特定されうる様々なタイプのリレーションシップの幾つかの例を説明した。本発明の実施形態による、レポジトリ内にリソースを格納する方法を以下に説明する。
［レポジトリ内にソースリソースを格納する方法］
【００４５】  図２Ａは、本発明の一実施形態による、レポジトリ１５０内にソースリソースを格納する機能工程を説明するフローチャートである。図２Ａの機能工程を、図１を参照して以下に説明する。
【００４６】  工程２１０において、レポジトリ１５０内にソースリソースを格納する要求がサーバ１３０により受信される。工程２１０の要求は、クライアント１１０によって、通信リンク１２０を介してサーバ１３０に送信されうる。上述したように、ソースリソースとは、ターゲットリソースに対してリレーションシップを有するリソースをさす。ソースリソースは、ソースリソースがターゲットリソースに対して有するリレーションシップを特定するリレーションシップ・データを含みうる。例えば、ソースリソースは、ＸＬｉｎｋを使用して表現されるリレーションシップ・データを含む文書でありうる。レポジトリ１５０内にソースリソースを格納する要求を受信後、処理は、工程２２０に進む。
【００４７】  工程２２０において、サーバ１３０はソースリソースをパースして、ソースリソースからリレーションシップ・データを取出しする。例えば、サーバ１３０はソースデータをパースして、ソースリソース内に埋め込まれるＸＬｉｎｋからリレーションシップ・データを取出ししうる。リレーションシップ・データは、ソースリソース内で様々に異なる形式で表現されうる。従って、ＸＬｉｎｋは、リレーションシップ・データがソースリソース内で特定されうる方法の一例に過ぎない。サーバ１３０がソースリソースをパースして、ソースリソースからリレーションシップ・データを取出し後、処理は、工程２３０に進む。
【００４８】  工程２３０において、サーバ１３０は、永続ストレージ１４０内に、工程２２０において取出しされたリレーションシップ・データにより記述されるリレーションシップを特定する１つ以上のリレーションシップ・レコード１６０を格納する。リレーションシップ・レコード１６０は、永続ストレージ１４０の１つ以上の表の１つ以上の行として具現化されうる。
【００４９】  工程２３０においてリレーションシップ・レコード１６０内に格納される情報は、リレーションシップ・データ内で特定される全情報を含む。リレーションシップ・レコード１６０内に格納される情報は、工程２２０において取出しされるリレーションシップ・データに基づいて異なりうる。例えば、工程２２０において取出しされたリレーションシップ・データが、リレーションシップはハードリンク又はウィークリンクとしてモデル化されるべきであることを示す場合、ターゲットリソースを一意に特定するオブジェクト識別子がリレーションシップ・レコード内に格納される。また、工程２２０において取出しされたリレーションシップ・データが、リレーションシップはシンボリックリンクとしてモデル化されるべきであることを示す場合、ターゲットリソースが駐在するレポジトリ１５０内のパスがリレーションシップ・レコード内に格納される。
【００５０】  更に、ハードリンクは、リンクのインテグリティを保証するので、新しいハードリンクがレポジトリ１５０内で作成されると、常に、ターゲットリソースに関連付けられるハードリンクカウンタ値がインクリメントされる。同様に、ターゲットリソースに対しハードリンクを有するリソースが削除されると、常に、そのターゲットリソースに関連付けられるハードリンクカウンタ値はデクリメントされる。このようにして、レポジトリ１５０は、レポジトリ内の各リソースに対して、特定のリソースへのハードリンクを有する、レポジトリ１５０内の他のリソースの数を監視しうる。サーバ１３０は、レポジトリ１５０内に格納される特定のリソースに関連付けられるハードリンクカウンタ値がゼロより大きい値を有する場合には、その特定のリソースが削除されることを阻止しうる。
【００５１】  ここでは、ソースリソースを格納する工程を説明した。リレーションシップ特定リソースを格納する工程を以下に説明する。
［レポジトリ内にリレーションシップ特定リソースを格納する方法］
【００５２】  リレーションシップ特定リソースは、リレーションシップに関与するリソースがリレーションシップ・データを容易に担持することができない場合に特に有用である。例えば、ソースリソースは、リレーションシップ・データの挿入を許可しない形式で表現されうる。例えば、プロプライエタリ形式で表現されるデジタル画像又はリソースである。そのような場合、ソースリソースとターゲットリソース間のリレーションシップは、図２Ｂの工程に従ってレポジトリ１５０内にリレーションシップ特定リソースを格納することでシステム１００により依然として管理されうる。図２Ｂの工程を、図１を参照して以下に説明する。
【００５３】  図２Ｂは、本発明の一実施形態による、レポジトリ１５０内にリレーションシップ特定リソースを格納する機能工程を説明するフローチャートである。
【００５４】  工程２５０において、レポジトリ１５０内にリレーションシップ特定リソースを格納する要求がサーバ１３０により受信される。工程２５０の要求は、クライアント１１０によって、通信リンク１２０を介してサーバ１３０に送信されうる。上述したように、リレーションシップ特定リソースは、リソース内のリレーションシップ・データを含むリソースではあるが、ソースリソースではない。例えば、リレーションシップ特定リソースは、ＸＬｉｎｋを使用して表現されるリレーションシップ・データを含む文書でありうる。レポジトリ１５０内にソースリソースを格納する要求を受信後、処理は、工程２６０に進む。
【００５５】  工程２６０において、サーバ１３０はリレーションシップ特定リソースをパースして、リレーションシップ・データを取出しする。工程２６０の動作は、リレーションシップ・データが、ソースリソースではなくリレーションシップ特定リソースから取出しされることを除き、工程２２０の動作と実質的に同様である。リレーションシップ・データが取出しされた後、処理は、工程２７０に進む。
【００５６】  工程２７０において、サーバ１３０は、永続ストレージ１４０内に、ソースリソースとターゲットリソースとのリレーションシップを特定する１つ以上のリレーションシップ・レコード１６０を格納する。工程２７０の動作は、工程２３０の動作と実質的に同様である。
［レポジトリからリレーションシップ情報を取出しする方法］
【００５７】  図２Ａ及び図２Ｂの工程を使用して、リレーションシップ・レコード１６０を永続ストレージ１４０内に格納しうる。リレーションシップ・レコード１６０が一旦永続ストレージ１４０内に格納されると、ユーザは、サーバ１３０に、指定検索基準を満足する特定のリレーションシップ・レコード１６０を閲覧する要求を発行しうる。ユーザは、ソースリソース、ターゲットリソース、リンクタイプ、又は、リレーションシップ・レコード１７０内に格納される任意の他のリレーションシップの特性に関する情報について要求を発行しうる。このようにして、ユーザは、リソース１７０間のリレーションシップに関する任意の情報を閲覧しうる。
【００５８】  一実施形態では、リレーションシップ・レコードは、データベースビューを使用してアクセスされうる。ユーザは、サーバ１３０に、要求内に特定される基準を満足する特定のリレーションシップ・レコード１６０を閲覧するためにデータベースビューに対して要求を発行しうる。データベースビューでは幾つかの列が表示され、また、データベースビューの各行は、特定のリレーションシップ・レコード１６０を特定しうる。データベースビューの列は、リソース１７０間の様々なリレーションシップについての情報に対応しうる。例として、例示的且つ非限定的データベースビューの列を、対応する説明と共に、以下の表１に記載する。
【表１】
2009512960.tif 000003
【００５９】  なお、多くのリレーションシップ・レコード１６０は、表１に示す各列のデータを格納しない場合もある。例えば、ハードリンク及びウィークリンクに対応するリレーションシップ・レコード１６０は、ターゲットリソース識別子の列内にはデータを格納しうるが、ターゲットパスの列にはデータを格納しない。また、シンボリックリンクに対応するリレーションシップ・レコード１６０は、ターゲットパスの列内にはデータを格納しうるが、ターゲットリソース識別子の列内にはデータを格納しない。従って、表１に示すリレーションシップ・レコード１６０内に格納される情報のタイプは例示的に過ぎない。
［システムの挙動を設定する方法］
【００６０】  フレームワークの特許出願は、「リソース設定」を使用して論理を統合する技術を開示する。リソース設定は、レポジトリ１５０内の１つ以上のリソースに関連付けられる論理の単位である。各リソース設定は、リソース設定に関連付けられるリソースを管理する１つ以上の規則をそれぞれ定義及び／又は表現する１つ以上の設定アイテムを含む。
【００６１】  レポジトリ１５０は、リソース設定を解釈、評価、及び／又は解析して、リソース設定内に表現される規則を実行する。リソース設定は、様々な方法で１つ以上のリソースに関連付けられることが可能である。例えば、リソース設定は、特定のディレクトリ内に駐在する又は特定のリソースタイプに属するリソースに関連付けられうる。リソース設定に関連付けられたリソースは、本願では、関連付けられたリソースと称する。
【００６２】  レポジトリ１５０は、リソースに対して演算を実行する度に、そのリソースに関連付けられるリソース設定内に指定される規則を実行する。
【００６３】  リソース設定を使用して、リレーションシップ・データがレポジトリ１５０内で処理される方法を設定しうる。リソース設定の要素の例示的なスキーマを図３に示す。例えば、スキーマの一部３０２を使用して、リレーションシップ・データにより特定されるリレーションシップがモデル化されるべきリンクのタイプ（例えば、ハードリンク、ウィークリンク、シンボリックリンク、又はこれらのいずれでもない）を指定しうる。スキーマの一部３０４を使用して、クライアント１１０によって要求される場合にロケーション−表示属性を解決する方法を指定しうる。例えば、リソースに関連付けられるＰａｔｈＦｏｒｍａｔ変数が「ｉｄｅｎｔｉｆｉｅｒ」の値を有する場合、ロケーション−表示属性は、リソースの識別子への要求時に解決される。ＰａｔｈＦｏｒｍａｔ変数が「ｐａｔｈ」の値を有する場合、リソースは、そのリソースが駐在する、レポジトリ１５０内のパスへの要求時に解決される。
【００６４】  ロケーション−表示属性をこのようにして使用して、クライアント１１０への送信のために情報を準備する際に、リソースへのパスの計算を回避することでオーバヘッドとなることを回避しうる。従って、リソース設定により上述のように設定される場合、リソースがレポジトリ１５０から取出しされるとき、そのリソースが、リソース識別子により別のリソースを特定する情報を含む場合、その情報は、他のリソースが駐在するレポジトリ１５０内のパスによりその他のリソースを特定する情報で置換されうる。或いは、リソース設定により上述のように設定される場合、リソースがレポジトリ１５０から取出しされるとき、そのリソースが、他のリソースが駐在するレポジトリ１５０内のパスにより別のリソースを特定する情報を含む場合、その情報は、リソース識別子によりその他のリソースを特定する情報で置換されうる。
【００６５】  リソース設定の例示的なスキーマの一部３０２に示すように、リソース設定は、システム１００が、関連付けられたリソース内に含まれるリレーションシップ・データを無視するよう設定されうる。この場合、リレーションシップ・レコード１６０は、上述のように設定される関連付けられたソースリソース又はリレーションシップ特定リソースがレポジトリ１５０内に格納される際に永続ストレージ１４０内に作成されない。
【００６６】  リソース設定は、全ての関連付けられるリソースが特定の特徴を示すことを指定しうる。例えば、ソースリソースである全ての関連付けられるリソースは、リレーションシップ・データ内で特定されるリンクのタイプに関係なく特定のタイプのリンク（例えば、シンボリックリンク）として処理されると指定しうる。
【００６７】  一実施形態では、リソース設定の設定によって、リレーションシップ・データは、リレーションシップ・データが位置付けられる場所に依存して特定の方法で処理されうる。例えば、特定のタイプのリソースは、リレーションシップ・データ内に特定されるターゲットリソースに対して特定のタイプのリンクを有するものと仮定されうる。更に、システム１００は、リレーションシップ・データがリソース内で位置付けられる場所に依存して、リレーションシップ・データ内で特定されるターゲットリソースへのリンクのタイプについてある推論をしうる。例えば、リレーションシップ・データがウェブページの本文内に含まれる場合、対応するリレーションシップ・レコード１６０内に特定されるリンクのタイプは、ウェブページ内に含まれるリレーションシップ・データ内に特定されるリンクのタイプに関係なく、ウィークリンクでありうる。
［実施メカニズム］
【００６８】  ある実施形態では、クライアント１１０、サーバ１３０、及び永続ストレージ１４０は、それぞれ、１つ以上のコンピュータシステム上に実装されうる。図４は、本発明の一実施形態を実装しうるコンピュータシステム４００を示すブロック図である。コンピュータシステム４００は、情報を通信するバス４０２又は他の通信メカニズム、及び、バス４０２に結合され情報を処理するプロセッサ４０４を含む。コンピュータシステム４００は更に、バス４０２に結合され、プロセッサ４０４によって実行されるべき情報及び命令を格納するランダムアクセスメモリ（ＲＡＭ）又は他の動的記憶装置といったメインメモリ４０６を含む。メインメモリ４０６は更に、プロセッサ４０４によって実行されるべき命令の実行時の一時的変数又は他の中間情報を格納するよう使用してもよい。コンピュータシステム４００は更に、バス４０２に結合され、プロセッサ４０４用の静的情報及び命令を格納する読出し専用メモリ（ＲＯＭ）４０８又は他の静的記憶装置を含む。磁気ディスク又は光学ディスクといった記憶装置４１０も設けられ、バス４０２に結合して情報及び命令を格納する。
【００６９】  コンピュータシステム４００は、バス４０２を介して、陰極線管（ＣＲＴ）といったディスプレイ４１２に結合されて情報をコンピュータユーザに表示しうる。英数字及び他のキーを含む入力装置４１４はバス４０２に結合され、情報及びコマンド選択をプロセッサ４０４に伝える。別のタイプのユーザ入力装置は、方向情報及びコマンド選択をプロセッサ４０４に伝え、ディスプレイ４１２上のカーソル動作を制御する、マウス、トラックボール、又はカーソル方向キーといったカーソルコントロール４１６である。この入力装置は、一般的に、第１の軸（例えばｘ軸）及び第２の軸（例えばｙ軸）といった２つの軸方向における２自由度を有し、それにより、入力装置は、平面における位置を特定することができる。
【００７０】  本発明は、本願に記載する技術を実施するためのコンピュータシステム４００の使用に関連する。本発明の一実施形態では、この技術は、コンピュータシステム４００によって、プロセッサ４０４がメインメモリ４０６内に含まれる１つ以上の命令の１つ以上のシーケンスを実行することに呼応して実施される。この命令は、記憶装置４１０といった別の機械可読媒体からメインメモリ４０６内に読み込まれうる。メインメモリ４０６内に含まれる命令のシーケンスを実行すると、プロセッサ４０４は、本願に説明した処理工程を実行する。別の実施形態では、配線回路を、ソフトウェア命令の代わりに又はソフトウェア命令と組み合わせて使用して、本発明を実施しうる。従って、本発明の実施形態は、ハードウェア回路及びソフトウェアの任意の特定の組み合わせに限定されない。
【００７１】  本願にて使用する用語「機械可読媒体」とは、機械に特定の方法で演算を行わせるデータの供給に参加する任意の媒体を指す。コンピュータシステム４００を使用して実施される実施形態では、様々な機械可読媒体が、例えば、実行のためのプロセッサ４０４への命令の供給に関与する。このような媒体は様々な形式を取ってよく、以下に限定されないが、不揮発性媒体、揮発性媒体、及び伝送媒体を含む。不揮発性媒体は、例えば、記憶装置４１０といった光学又は磁気ディスクを含む。揮発性媒体は、メインメモリ４０６といったダイナミックメモリを含む。伝送媒体は、バス４０２を構成するワイヤを含む同軸ケーブル、銅線、及び光ファイバを含む。伝送媒体は更に、電波又は赤外線データ通信時に生成されるような音波又は光波の形を取ることもできる。このような媒体は全て有形で、媒体により担持される命令が、その命令を機械内に読み込む物理メカニズムによって検出可能でなければならない。
【００７２】  機械可読媒体の一般的な形式は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ又は任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光学媒体、パンチカード、紙テープ、穿孔パターンのついた任意の他の物理媒体、ＲＡＭ、ＰＲＯＭ、及びＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、任意の他のメモリチップ又はカートリッジ、上述したような搬送波、又は、コンピュータが可読である任意の他の媒体を含む。
【００７３】  様々な形式の機械可読媒体が、実行のためにプロセッサ４０４に１つ以上の命令の１つ以上のシーケンスを運ぶ際に関与しうる。例えば、命令は、最初はリモートコンピュータの磁気ディスク上に担持されうる。リモートコンピュータは、命令をそのダイナミックメモリにロードし、その命令を、モデムを使用して電話回線を介して送信できる。コンピュータシステム４００のローカルにあるモデムは、電話回線上のデータを受信し、赤外線送信器を使用してそのデータを赤外線信号に変換する。赤外線検出器は、赤外線信号内のデータを受信し、適切な回路がデータをバス４０２上に置く。バス４０２は、データをメインメモリ４０６に運び、プロセッサ４０４はメインメモリから命令を取出しして実行する。メインメモリ４０６により受信される命令は、任意選択的に、プロセッサ４０４による実行前又は後に記憶装置４１０上に格納されてもよい。
【００７４】  コンピュータシステム４００は更に、バス４０２に結合される通信インターフェイス４１８を含む。通信インターフェイス４１８は、ローカルネットワーク４２２に接続するネットワークリンク４２０に結合する双方向性データ通信を与える。例えば、通信インターフェイス４１８は、総合サービスデジタルネットワーク（ＩＳＤＮ）カード又はモデムであり、対応するタイプの電話回線へのデータ通信接続を与えうる。別の例として、通信インターフェイス４１８は、ローカルエリアネットワーク（ＬＡＮ）カードであり、互換性のあるＬＡＮへのデータ通信接続を与えうる。ワイヤレスリンクも実装してもよい。どの実施においても、通信インターフェイス４１８は、様々なタイプの情報を表すデジタルデータストリームを運ぶ電気、電磁気、又は光学信号を送受信する。
【００７５】  ネットワークリンク４２０は、一般的に、１つ以上のネットワークを介して別のデータ装置へのデータ通信を与える。例えば、ネットワークリンク４２０は、ローカルネットワーク４２２を介してホストコンピュータ４２４又はインターネットサービスプロバイダ（ＩＳＰ）４２６によって動作されるデータ機器への接続を与えうる。ＩＳＰ４２６は、現在では一般的に「インターネット」４２８と呼ばれるワールドワイドのパケットデータ通信ネットワークを介するデータ通信サービスを提供する。ローカルネットワーク４２２及びインターネット４２８は共に、デジタルデータストリームを運ぶ電気、電磁気、又は光学信号を使用する。様々なネットワークを介する信号及びネットワークリンク４２０上及び通信インターフェイス４１８を通る信号は、コンピュータシステム４００へ及びコンピュータシステム４００からデジタルデータを運び、情報を伝送する搬送波の例示的な形式である。
【００７６】  コンピュータシステム４００は、ネットワーク、ネットワークリンク４２０、及び通信インターフェイス４１８を介して、メッセージを送信し、また、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ４３０が、インターネット４２８、ＩＳＰ４２６、ローカルネットワーク４２２、及び通信インターフェイス４１８を介してアプリケーションプログラムの要求されたコードを送信しうる。
【００７７】  コードはプロセッサ４０４によって受信されると、プロセッサ４０４によって実行されうる、及び／又は、記憶装置４１０又は他の不揮発性記憶装置内に後の実行のために格納されうる。このようにして、コンピュータシステム４００は、搬送波の形でアプリケーションコードを取得しうる。
【００７８】  本発明の実施形態を、実施に応じて異なりうる多数の特定の詳細を参照して上述した。従って、本発明及び発明であると出願人が意図するものを唯一且つ排他的に示しているのは、任意の今後の補正を含む、本願から派生する特定の請求項記載形式の請求項一式である。請求項に含まれる用語について本明細書に明示的に記載した任意の定義は、請求項において使用されたそのような用語の意味を左右する。従って、請求項に明示的に記載しない制限、要素、特性、特徴、利点、又は属性が請求項の範囲を限定すべきではない。従って、明細書及び図面は、限定的ではなく例示的に解釈すべきである。
【図１】
2009512960.tif 000004
【図２Ａ】
2009512960.tif 000005
【図２Ｂ】
2009512960.tif 000006
【図３】
2009512960.tif 000007
【図４】
2009512960.tif 000008
【手続補正書】
【提出日】平成19年9月18日(2007.9.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
命令が関与する機械実行演算を実行することを含む方法であって、
前記機械実行演算は、
Ａ）前記命令を、伝送媒体を介して送信すること、
Ｂ）前記命令を、伝送媒体を介して受信すること、
Ｃ）前記命令を、機械可読記憶媒体上に格納すること、及び
Ｄ）前記命令を実行すること、
のうちの少なくとも１つであり、
前記命令は、１つ以上のプロセッサによって実行されると、
第１のリソースをレポジトリ内に格納する要求のサーバーによる受信に呼応して、
前記サーバーが、
前記第１のリソースをパースして、前記第１のリソースと前記レポジトリ内の第２のリソースとのリレーションシップを特定するリレーションシップ・データを取出しすることと、
前記リレーションシップを表すリンクのタイプを決定することと、
前記第１のリソースと前記第２のリソースとの間の前記リンクのタイプを使用して前記リレーションシップを特定する１つ以上のリレーションシップ・レコードを、データベース内に格納することと、
を実行する命令であり、
前記１つ以上のリレーションシップ・レコードは、前記第１のリソースとは別個に格納される、方法。
【請求項２】
前記１つ以上のリレーションシップ・レコードは、前記第１のリソースから前記第２のリソースへのリンクのタイプを示し、
前記リンクのタイプは、ハードリンク、ウィークリンク、及びシンボリックリンクのうちの１つである、請求項１に記載の方法。
【請求項３】
前記リンクのタイプは、ハードリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記レポジトリにより前記第２のリソースに割り当てられるオブジェクト識別子により前記第２のリソースを特定する、請求項２に記載の方法。
【請求項４】
前記リンクのタイプは、ウィークリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記レポジトリにより前記第２のリソースに割り当てられるオブジェクト識別子により前記第２のリソースを特定する、請求項２に記載の方法。
【請求項５】
前記リンクのタイプは、シンボリックリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記第２のリソースが駐在する、前記レポジトリ内のパスを指定することで前記第２のリソースを特定する、請求項２に記載の方法。
【請求項６】
前記命令は、前記１つ以上のプロセッサにより実行されると、更に、
前記レポジトリから前記第２のリソースを削除する要求の受信に呼応して、前記レポジトリ内に格納される少なくとも１つのリソースが、前記第２のリソースに対して第１のタイプのリンクを有するか否かを決定し、
前記レポジトリ内の前記少なくとも１つのリソースが前記第２のリソースに対して第１のタイプのリンクを有すると決定すると、前記レポジトリから前記第２のリソースを削除する前記要求を拒否し、
前記レポジトリ内の前記少なくとも１つのリソースが前記第２のリソースに対して第１のタイプのリンクを有さないと決定すると、前記レポジトリから前記第２のリソースを削除する前記要求を許可する、請求項１に記載の方法。
【請求項７】
前記１つ以上のレコードは、前記リレーションシップを表示する方法を特定する、請求項１に記載の方法。
【請求項８】
前記リレーションシップは、第１のタイプであり、
前記命令は、前記１つ以上のプロセッサにより実行されると、更に、
前記１つ以上のリレーションシップ・レコードを、前記データベース内に格納することに呼応して、前記第２のリソースに関連付けられるカウンタをインクリメントし、
前記カウンタは、前記第２のリソースにおいて第１のタイプのリレーションシップを有する、前記レポジトリ内のリソースの数を示す、請求項１に記載の方法。
【請求項９】
命令が関与する機械実行演算を実行することを含む方法であって、
前記機械実行演算は、
Ａ）前記命令を、伝送媒体を介して送信すること、
Ｂ）前記命令を、伝送媒体を介して受信すること、
Ｃ）前記命令を、機械可読記憶媒体上に格納すること、及び
Ｄ）前記命令を実行すること、
のうちの少なくとも１つであり、
前記命令は、１つ以上のプロセッサによって実行されると、
レポジトリ内に第１のリソース及び第２のリソースを格納することと、
第３のリソースを前記レポジトリ内に格納する要求のサーバーによる受信に呼応して、
前記サーバーが、
前記第３のリソースをパースして、前記第１のリソースと前記第２のリソースとのリレーションシップを特定するリレーションシップ・データを取出しすることと、
前記リレーションシップを表すリンクのタイプを決定することと、そして
前記第１のリソースから前記第２のリソースへの前記リンクのタイプの存在を示す１つ以上のリレーションシップ・レコードを、データベース内に格納することと、
を実行する命令であり、
前記第１のリソースは、前記第２のリソースへのリンクを含まず、
前記１つ以上のリレーションシップ・レコードは、前記第１のリソース及び前記第２のリソースのいずれとも別個に格納される、方法。
【請求項１０】
前記リンクは、ハードリンク、ウィークリンク、及びシンボリックリンクのうちの１つである、請求項９に記載の方法。
【請求項１１】
前記リンクのタイプは、ハードリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記データベースにより前記第２のリソースに割り当てられるオブジェクト識別子により前記第２のリソースを特定する、請求項１０に記載の方法。
【請求項１２】
前記リンクのタイプは、ウィークリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記データベースにより前記第２のリソースに割り当てられるオブジェクト識別子により前記第２のリソースを特定する、請求項１０に記載の方法。
【請求項１３】
前記リンクのタイプは、シンボリックリンクであり、
前記１つ以上のリレーションシップ・レコードは、前記第２のリソースが駐在する、前記レポジトリ内のパスを指定することで前記第２のリソースを特定する、請求項１０に記載の方法。
【請求項１４】
前記命令は、前記１つ以上のプロセッサにより実行されると、更に、
前記レポジトリから前記第２のリソースを削除する要求の受信に呼応して、前記レポジトリ内に格納される少なくとも１つのリソースが、前記第２のリソースに対して第１のタイプのリンクを有するか否かを決定し、
前記レポジトリ内の前記少なくとも１つのリソースが前記第２のリソースに対して第１のタイプのリンクを有すると決定すると、前記レポジトリから前記第２のリソースを削除する前記要求を拒否し、
前記レポジトリ内の前記少なくとも１つのリソースが前記第２のリソースに対して第１のタイプのリンクを有さないと決定すると、前記レポジトリから前記第２のリソースを削除する前記要求を許可する、請求項９に記載の方法。
【請求項１５】
前記１つ以上のレコードは、前記リレーションシップを表示する方法を特定する、請求項９に記載の方法。
【請求項１６】
前記リレーションシップは、第１のタイプであり、
前記命令は、前記１つ以上のプロセッサにより実行されると、更に、
前記第２のリソースに関連付けられるカウンタをインクリメントし、
前記カウンタは、前記第２のリソースと第１のタイプのリレーションシップを有する、前記レポジトリ内のリソースの数を示す、請求項９に記載の方法。
【請求項１７】
前記リンクのタイプは、ハードリンクであり、
前記工程は、前記リンクのタイプがハードリンクである間は、前記第２のリソースの削除を阻止することを更に含む、請求項１に記載の方法
【国際調査報告】
2009512960.tif 000009
2009512960.tif 000010