(57)【特許請求の範囲】
【請求項１】
複数のデータから構成されるデータ層と、上記データ間を双方向に参照するための双方向リンクで構成されたリンク情報を保持するリンク層とを設け、上記リンク層の情報を参照又は更新しておらず、且つ、上記データ層のデータを参照している場合に、そのデータに対しては他から読み出し可能，書き込み禁止とし、上記参照されているデータに対応する上記リンク層の情報に対しては他から読み出し可能，書き込み可能とし、上記リンク層のリンク情報を参照してデータ層のリンク元データからリンク先データを取得する場合、上記リンク層の上記リンク情報にロックをかけて上記参照するリンク情報を他から読み出し可能，書き込み禁止にし、上記リンク情報を参照して上記リンク元データからリンクをたどって上記リンク先データを取得した後上記リンク情報にかけたロックを解除し、上記リンク情報を更新する場合、上記データ層のリンク元データにロックをかけて上記リンク元データを他から読み出し禁止，書き込み禁止にした後、上記リンク層の上記リンク情報にロックをかけて上記リンク情報を他から読み出し禁止，書き込み禁止にしてリンク情報を更新し、この後上記リンク情報にかけたロックを解除し、上記リンク元データの他からの読み出し禁止を解除することとしたデータリンク情報制御方式。
【請求項２】
データにデータの一種であるキーデータが付属し、上記データからそれに付属する上記キーデータを介して他のデータへリンクが張られる構成に対し、リンク層のリンク情報を参照してデータ層のリンク先データを取得する場合、上記リンク層の上記リンク情報にロックをかけて上記参照するリンク情報を他から読み出し可能，書き込み禁止にし、上記リンク情報を参照して上記キーデータからリンクをたどって上記キーデータのリンク先であるリンク先データを取得した後上記リンク情報にかけたロックを解除することを特徴とする請求項１に記載のデータリンク情報制御方式。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、データリンク情報制御方式に関し、特にコンピュータを用いてデータのリンク情報を制御する際に用いられるものである。
【０００２】
【従来の技術】
図７は、例えば特願平２ー２２２９９０号公報に示された従来のデータ検索装置の一種であるマルチメディア管理装置を示すブロック図である。図において、１はメディアとしての文書情報が蓄積される文書情報記憶装置、２は各種情報メディアからの情報の入出力を制御するマルチメディア情報制御装置、３は利用者からの要求信号が入力される入力装置としてのキーボード、４はマウスである。５は中央処理装置（以下、ＣＰＵと記す）で、利用者からの要求信号に基づいて検索処理し、マルチメディア情報制御装置２へ信号を出力してデータを取得する。６はこのＣＰＵ５の出力する検索内容を提示するディスプレイ装置である。
【０００３】
また、７はこれら文書情報記憶装置１、マルチメディア情報制御装置２、キーボード３、マウス４、ＣＰＵ５、及びディスプレイ装置６を含むハイパーテキストシステムである。このハイパーテキストシステム７の機能により、文書情報記憶装置１に蓄積された文書類は、単に文書中の前後関係を持つもの、内容的に階層関係を持つもの、文書中で直接他を参照しているものなど、それぞれの相関関係に応じて非線形的な検索パスによって接続されている。
【０００４】
また、８はハイパーテキストシステム７中のマルチメディア情報制御装置２に接続され、文書情報記憶装置１に蓄積された個々の文書に関して、映像化及び音声化された情報が格納されている映像・音声情報記憶装置、９はマルチメディア情報制御装置２からの出力情報が出力されるプリンタ等の出力装置である。１０は外部より情報を提供する外部情報提供者あるいは外部情報源（以下、単に外部情報源と記す）であり、１１はこの外部情報源１０をマルチメディア情報制御装置２に接続している電話回線や光ファイバ等のアクセスバスである。
【０００５】
次に動作について説明する。このように構成されたマルチメディア管理装置において、検索利用者は入力装置であるキーボード３やマウス４より要求信号を入力することにより、ハイパーテキストシステム７の文書情報記憶装置１に収納された電子文書を呼び出してディスプレイ装置６に表示したり、マルチメディア情報制御装置２を介して映像・音声情報記憶装置８に収納されている情報や，外部提供者などの外部情報源１０の情報などを呼び出してディスプレイ装置６に表示することができる。また、利用者の検索した内容は要求に応じて出力装置９により印刷または音声出力される。
【０００６】
なお、図８はディスプレイ装置６における一般的なデータの表示画面の一例を示す説明図である。図において、１２は実際の文章が表示される文書表示領域であり、１３，１４はこの文章中で直接引用されている文章ａまたは文章ｂのそれぞれ文章中のキーワード上に設置されたボタンである。また、１５〜１９はディスプレイ装置６の表示画面上に集約されたボタンで、１５は関連文書呼出ボタン、１６は音声ボタン、１７は印刷ボタン、１８は映像情報表示ボタン、１９は外部情報アクセスボタンである。
【０００７】
今、ディスプレイ装置６の表示画面の文書表示領域１２に表示された文章中で直接引用される文書ａまたは文書ｂは、それぞれに設定されているボタン１３または１４を入力装置であるマウス４でクリックして呼出すことができる。また、表示された文章の前後ページまたは上下階層に相当する文書や参照元は関連文書呼出ボタン１５をマウス４でクリックして呼出すことができる。また、文書表示領域１２に示された内容は、音声ボタン１６をクリックして音声によって発話したり、必要に応じて印刷ボタン１７をクリックして出力装置９で印刷できる。また、映像情報表示ボタン１８をクリックすれば、その文書に関連した映像を表示することができ、文書検索中、外部情報源１０にアクセスする必要が生じたときには、外部情報アクセスボタン１９をクリックしてアクセスすることも可能である。
【０００８】
また、図９はディスプレイ装置６へ文書，画像，音声などの各メディアデータを提示した一例を示す説明図である。図において、６１はマウス４が指し示す座標位置を示すカーソルである。４１はディスプレイ装置６上に提示されたメディアデータであり、４１１ａ，４１２ａ，４１３ａはメディアデータ４１に付けられたキーデータである。
【０００９】
また、図１０は文書、映像、音声などの各メディアデータ間の参照関係の一例を記述するデータ構造を示す説明図である。図において、４１〜４６はそれぞれ各種文書情報等のメディアデータである。４１１ａはメディアデータ４１の文中の単語やイメージデータ中の特定の位置などにつけられたキーデータであり、それに関連するメディアデータ４２と双方向リンクで結ばれている。即ちキーデータ４１１ａが保持するリンク情報を参照してメディアデータ４２を得ることができ、かつまた逆にメディアデータ４２が保持するリンク情報を参照してキーデータ４１１ａを得ることができる。
また、４１２ａはメディアデータ４１に付けられてメディアデータ４３と双方向リンクで結ばれているキーデータであり、４１３ａはメディアデータ４１に付けられてメディアデータ４４と双方向リンクで結ばれているキーデータである。  さらに、４２１ａ及び４２２ａはメディアデータ４２に付けられてメディアデータ４５及びメディアデータ４６と双方向リンクで結ばれているキーデータであり、４３１ａはメディアデータ４３に付けられてメディアデータ４６と双方向リンクで結ばれているキーデータである。
【００１０】
キーデータ４１１ａからメディアデータ４２に伸びている矢印は、メディアデータ４１からメディアデータ４２にリンクが張られており、マウスでキーデータ４１１ａを選択するとメディアデータ４２が表示されることを表している。キーデータ４１２ａからメディアデータ４３への矢印と、キーデータ４１３ａからメディアデータ４４への矢印と、キーデータ４２１ａからメディアデータ４５への矢印と、キーデータ４２２ａからメディアデータ４６への矢印と、キーデータ４３１ａからメディアデータ４６への矢印も同様である。
【００１１】
図１１はメディアデータ４２のリンク情報の一例を示す説明図である。図に示すように、メディアデータ４２のリンク情報は、例えばリンク元データ４１１ａを一意に特定できる識別子（以下、ＩＤと記す），リンク先データ４２１ａの情報，リンク先データ４２２ａの情報で構成されている。このリンク先データ４２１ａ，４２２ａの情報はそれぞれキーデータ４２１ａ，４２２ａのｘ，ｙ座標、リンク先データ４５，４６のＩＤで構成されている。
【００１２】
以下、メディアデータ４２を削除する場合の動作について説明する。
まず、キーデータ４１１ａとメディアデータ４２を結ぶ双方向リンクを切断する。即ち、メディアデータ４２のリンク元データのＩＤを参照してリンク元データ４１１ａを取得し、キーデータ４１１ａが保持するリンク情報を変更して、キーデータ４１１ａのリンク先をＮＵＬＬに設定する。これと共に、メディアデータ４２が保持するリンク情報を変更して、メディアデータ４２のリンク元をＮＵＬＬに設定する。リンク先あるいはリンク元がＮＵＬＬであれば、そのキーデータはどのメディアデータにもリンクされていないことを表すものとする。
次にキーデータ４２１ａとメディアデータ４５を結ぶ双方向リンク及びキーデータ４２２ａとメディアデータ４６を結ぶ双方向リンクを同様にして切断する。  さらに、メディアデータ４２とキーデータ４２１ａ及び４２２ａを削除する。  このようにメディアデータ４２を削除する際、そのリンク元のキーデータ４１１ａのリンク情報を変更するために、キーデータとメディアデータとのリンクは、順方向だけでなく逆方向にもたどることが可能な双方向リンクを構成している。
【００１３】
従来のデータ検索装置のデータ及びリンク情報は以上のように構成されており、これを複数のユーザ又はタスクが同時に利用する分散環境においては、複数のユーザ又はタスクが同時にデータ検索装置にアクセスすることを許し、かつデータ構造の一貫性を保持するために、排他制御を行う必要がある。このための代表的な方式がロックを用いる方式である。
以下、説明の簡略化のため、複数のユーザが同時にデータ検索装置にアクセスする場合について説明する。一般に、ロックにはリードロックとライトロックがある。ユーザがデータを参照する場合、ユーザはそのデータに対してまずリードロックを獲得しようとする。獲得できれば、データの参照が許されたことになる。そこでデータを参照中、リードロックを保持する。そして参照を終了する場合、リードロックを解放する。
【００１４】
一方、ユーザがデータを更新する場合、ユーザはそのデータに対してまずライトロックを獲得しようとする。獲得できれば、そのデータの更新が許されたことになる。そこでデータの更新が終了するまで、ライトロックを保持する。そして更新が終了した場合、ライトロックを解放する。
ユーザがデータに対するリードロックを保持している間に、他のユーザはそのデータに対してリードロックを獲得することは許されるが、ライトロックを獲得することは許されない。またユーザがデータに対するライトロックを保持している間に、他のユーザはそのデータに対してリードロックもライトロックも獲得することは許されない。
即ち、ユーザがデータに対するリードロックを保持するということは、他のユーザはそのデータに書き込み禁止状態，かつ読み出し可能状態となる。また、ユーザがデータに対するライトロックを保持するということは、他のユーザはそのデータに書き込み禁止状態，かつ読み出し禁止状態となる。
【００１５】
いま、ユーザＡがメディアデータ４１とそのキーデータ４１１ａ，４１２ａ，及び４１３ａと、メディアデータ４２とそのキーデータ４２１ａ及び４２２ａを参照しているとする。この時、ユーザＡにより、メディアデータ４１と４２及びキーデータ４１１ａ，４１２ａ，４１３ａ，４２１ａ，４２２ａにリードロックがかけられている。一方これと同時に、別のユーザＢがメディアデータ４２とそのキーデータ４２１ａ及び４２２ａを参照しているとする。このとき、ユーザＢにより、メディアデータ４２及びキーデータ４２１ａ，４２２ａにリードロックがかけられている。
ユーザＡがキーデータ４１１ａとメディアデータ４２とのリンクを切断したいとする。しかしユーザＡはキーデータ４１１ａとメディアデータ４２の間の双方向リンクを切断することができない。なぜなら双方向リンクを切断するためにはメディアデータ４２のリンク情報のリンク元データのＩＤをＮＵＬＬに更新する必要があるが、ユーザＢによってメディアデータ４２にリードロックがかけられているために更新できないからである。
【００１６】
また、ユーザＡがメディアデータ４４と４６を参照中に他のユーザＢがメディアデータ４６を参照しているとする。即ち、メディアデータ４４にはユーザＡによりリードロックがかけられており、メディアデータ４６にはユーザＡ，Ｂによりリードロックがかけられている。
このとき、ユーザＡがキーデータ４４１ａを新たに作成し、そのキーデータ４４１ａからメディアデータ４６にリンクを張りたいとする。しかしユーザＡはそのキーデータ４４１ａからメディアデータ４６に双方向リンクを張ることはできない。なぜなら、双方向リンクを張るためにはメディアデータ４６のリンク情報のリンク元データのＩＤをキーデータ４４１ａに変更する必要があるが、ユーザＢによってメディアデータ４６にリードロックがかけられているために更新できないからである。
【００１７】
即ち、メディアデータから別のメディアデータに対してキーデータを介してリンクが張られている場合、リンク先のメディアデータを他のユーザが参照していれば、そのリンクを更新することができないという問題点があった。また、あるデータを別のユーザが参照している場合、そのデータを更新するのではなく、データに対してリンクを張ることまでもできなかった。
これはデータがハイパーメディアシステムにおけるメディアデータの場合に限るものではなく、他のシステムにおける他のデータ、例えば数値データ，文字データ，ビット列などの場合にも同様である。
【００１８】
【発明が解決しようとする課題】
以上のように、ユーザがデータを参照しているだけの場合には、リンク情報を新たに作成したり更新したり削除したりできるはずであるが、従来のデータリンク情報制御方式では、データとリンク情報共に書き込み禁止状態となり、リンク情報を新たに作成したり更新したり削除したりできなかった。
【００１９】
この発明は上記のような問題点を解消するためになされたもので、データが参照されている場合でも、このデータに対して新たにリンクを張ったり、そのデータに対して張られているリンク情報を作成したり，更新したり，削除したりできるデータリンク情報制御方式を提供することを目的とする。
【００２０】
【課題を解決するための手段】
また、請求項第１項の発明に係るデータリンク情報制御方式は、複数のデータから構成されるデータ層と、上記データ間を双方向に参照するための双方向リンクで構成されたリンク情報を保持するリンク層とを設け、上記リンク層の情報を参照又は更新しておらず、且つ、上記データ層のデータを参照している場合に、そのデータに対しては他から読み出し可能，書き込み禁止とし、上記参照されているデータに対応する上記リンク層の情報に対しては他から読み出し可能，書き込み可能とし、上記リンク層のリンク情報を参照してデータ層のリンク元データからリンク先データを取得する場合、上記リンク層の上記リンク情報にロックをかけて上記参照するリンク情報を他から読み出し可能，書き込み禁止にし、上記リンク情報を参照して上記リンク元データからリンクをたどって上記リンク先データを取得した後上記リンク情報にかけたロックを解除し、上記リンク情報を更新する場合、上記データ層のリンク元データにロックをかけて上記リンク元データを他から読み出し禁止，書き込み禁止にした後、上記リンク層の上記リンク情報にロックをかけて上記リンク情報を他から読み出し禁止，書き込み禁止にしてリンク情報を更新し、この後上記リンク情報にかけたロックを解除し、上記リンク元データの他からの読み出し禁止を解除するようにしたものである。
【００２１】
また、請求項第２項の発明に係るデータリンク情報制御方式は、データにデータの一種であるキーデータが付属し、上記データからそれに付属する上記キーデータを介して他のデータへリンクが張られる構成に対し、リンク層のリンク情報を参照してデータ層のリンク先データを取得する場合、上記リンク層の上記リンク情報にロックをかけて上記参照するリンク情報を他から読み出し可能，書き込み禁止にし、上記リンク情報を参照して上記キーデータからリンクをたどって上記キーデータのリンク先であるリンク先データを取得した後上記リンク情報にかけたロックを解除するようにしたものである。
【００２２】
【作用】
請求項１に記載の発明に係るデータリンク情報制御方式は、複数のデータで構成されるデータ層と、データ間の関係を表すリンク情報を保持するリンク層に分離し、データ層のデータとリンク層のリンク情報とに別々にリードロック，ライトロックをかけるように構成する。そして、リンク情報の参照が実行されていない場合及び更新処理が実行されていない場合には、データ層の参照中のデータに対してリードロックをかけ、リンク層のリンク情報に対してはロックをかけない。このため、参照されているデータに対して他からライトロックを取得して変更されるのを防ぐことができ、かつ参照されているデータに対応するリンク層のリンク情報にロックがかけられないので、リンク層のリンク情報を新たに作成したり，更新したり，削除したりできる。
更に、データを参照する場合、データ層のデータにロックをかけて読み出し可能，書き込み禁止にするので、リンク層のリンク情報にはロックがかからず、自由に他から読み出し，書き込みできる。
また、リンク情報を更新する際に、実際に変更処理を行う場合のみリンク層のリンク情報にロックをかけてリンク情報を読み出し禁止，書き込み禁止にして更新し、この後リンク情報にかけたロックを解除している。このため、他からリンク情報を読み出し，書き込みできる機会が多くなる。
【００２３】
また、請求項２に記載の発明に係るデータリンク情報制御方式は、データにそのデータの一種であるキーデータが付属し、データからそれに付属するキーデータを介して他のデータへリンクが張られる構成に対し、複数のデータから構成されるデータ層と、データ間の関係を表すリンク情報を保持するリンク層に分離し、データ層のデータとリンク層のリンク情報とに別々にリードロック，ライトロックをかけるように構成する。そして、データを参照する場合、データ層のデータにロックをかけて読み出し可能，書き込み禁止にするので、リンク層のリンク情報にはロックがかからず、自由に他から読み出し，書き込みできる。
また、リンク情報を更新する際に、実際に変更処理を行う場合のみリンク層のリンク情報にロックをかけてリンク情報を読み出し禁止，書き込み禁止にして更新し、この後リンク情報にかけたロックを解除している。このため、他からリンク情報を読み出し，書き込みできる機会が多くなる。
【００２４】
【実施例】
実施例１．
以下、この発明の実施例１によるデータリンク情報制御方式を図について説明する。
図１と図２は実施例１に係るデータリンク情報制御方式の動作を説明するフローチャートである。また、図３は実施例１に係るデータ構造を示す説明図である。図３において、８１〜８６はメディアデータ，数値データ，文字データ，ビット列などのデータ、９１〜９６はノードで、ノード９１はノード９２，９３，９４と双方向リンクで結ばれ、ノード９２はノード９５，９６と双方向リンクで結ばれ、ノード９３はノード９６と双方向リンクで結ばれている。７０はノード９１〜９６で構成されるリンク層、１００はデータ８１〜８６で構成されるデータ層である。データ層１００及びリンク層７０の情報は、ロックを用いた複数のユーザの並行処理機能を持つデータベースに格納されているとする。
【００２５】
次に動作について説明する。リンク情報を更新する例として、図３に示すような構造のデータにおいて、データ８２からデータ８５と８６へ張られているリンクを削除する場合について、図１のフローチャートを用いて説明する。この場合、リンク元データが８２、リンク先データが８５と８６になる。ユーザがデータ８２を選択し、データ８２から他のデータへのリンクの削除を指定したとする。図１のＳＴ１で、リンク元のデータであるデータ８２に対してライトロックの取得を試みる。もし他のユーザがデータ８２を参照中であれば、既にデータ８２にリードロックがかかっており、ライトロックを得ることができない。従ってＳＴ２でライトロックの取得が不成功となり、ＳＴ３でリンク情報の更新、即ちリンクの削除を断念する。
ここで、リードロックとはロックをかける対象となるデータを、他から読み出し可能，かつ書き込み禁止とすることであり、ライトロックとはロックをかける対象となるデータを、他から読み出し禁止，かつ書き込み禁止とすることである。このため、ライトロックをあるデータに対してかけようとすれば、そのデータはライトロックもリードロックもかかっていない状態であることが必要であり、リードロックをあるデータに対してかけようとすれば、そのデータはリードロックはかかっていてもよいが、ライトロックはかかっていない状態であることが必要である。
【００２６】
もし他のユーザがデータ８２を参照していなかったら、ＳＴ２でライトロックの取得に成功する。そこでＳＴ４で、データ８２，８５，８６に対応するノード９２，９５，９６にライトロックをかけ、ノード９２とノード９５の双方向リンクとノード９２とノード９６の双方向リンクとを切断する。ＳＴ５でノード９２，９５，９６のロックを解除する。これによって、リンク層のロックが全て解除されたことになる。ＳＴ６で、リンク元データであるデータ８２のロックを、ライトロックからリードロックに変更し、リンク元データの参照を継続する。また、リンク元データの参照を終了する場合はデータ８２のロックを解除する。なお、ＳＴ５とＳＴ６の実行順序は、どちらが先でも構わない。
【００２７】
このように、リンク情報を変更する際に、実際に変更処理を行う場合のみリンク層７０のリンク情報にロックをかけてリンク情報を読み出し禁止，書き込み禁止にして更新し、この後リンク情報にかけたロックを解除している。このため、他からリンク情報を読み出し，書き込みできる機会が多くなる。
【００２８】
上記の場合はリンク情報の更新であるが、単にデータ８２を参照する場合は、データ層１００のデータ８２にリードロックをかけ、リンク層７０にはロックをかけない。このため、データ８２が参照されている場合は、データ層１００のデータ８２は他から読み出し可能，書き込み禁止状態となるが、これに対応するリンク層７０のリンク情報に対しては読み出し可能，書き込み可能となり、他のユーザは例えばデータ８１からデータ８２に双方向リンクを張ることができる。
【００２９】
次にリンク情報を参照する例として、図３でリンク元データとなるデータ８２からリンク先データであるデータ８５と８６を取得する場合について、図２のフローチャートを用いて説明する。ユーザがデータ８２を選択すると、ＳＴ１２で、データ８２に対応するノード９２にリードロックをかけ、リンク情報を参照してリンク先のノード９５と９６を取得し、さらにノード９５と９６にリードロックをかけて、リンク先データ８５と８６を取得する。ＳＴ１３でノード９２，９５，９６のロックを解除する。これにより、リンク層７０のこのユーザによってかけられたロックが全て解除されたことになる。この後、必要に応じてデータ８５，８６にリードロックをかけてこれらを参照する。
【００３０】
このように、実施例１によるデータリンク情報制御方式は、複数のデータで構成されるデータ層１００と、データ間の関係を表すリンク情報を保持するリンク層７０に分離し、データ層１００のデータとリンク層７０のリンク情報とに別々にリードロック，ライトロックをかけるように構成する。そして、リンク情報の参照が実行されていない場合及び更新処理が実行されていない場合に、データ層１００のデータを参照中にそのデータ層１００のデータに対してリードロックをかけ、リンク層７０のリンク情報に対してロックをかけない。このため、参照されているデータに対して他からライトロックを取得して変更されるのを防ぐことができ、かつ参照されているデータに対して新たにリンクを張ったり、そのデータに対して張られているリンク情報を作成したり，更新したり，削除したりできる。
【００３１】
なお、この実施例において、データを更新したり作成したりするのはユーザであるとして説明したが、これに限ることなく、タスクの実行によってデータを更新したり作成したりすることもある。
【００３２】
実施例２．
以下、この発明の実施例２によるデータリンク情報制御方式を図について説明する。実施例２はメディアデータにデータの一種であるキーデータが付属し、メディアデータからそれに付属するキーデータを介して他のデータへリンクが張られるハイパーメディアシステムに対して、データのリンク情報を排他的に制御する制御方式についての実施例である。
図４は実施例２によるデータリンク情報制御方式に係るデータ構造を示す説明図である。処理動作を示すフローチャートは実施例１の図１，図２と同様である。
【００３３】
図４において、６１０はメディアデータ４１と組になり、メディアデータ４１上に表示されるキーデータ４１１ａ，４１２ａ，４１３ａのそれぞれの中心のｘ，ｙ座標と、それぞれのリンク先のノードへのポインタとを保持するノード、６２０はメディアデータ４２と組になり、リンク元のノード６１０へのポインタと、メディアデータ４２上に表示されるキーデータ４２１ａと４２２ａのそれぞれの中心のｘ，ｙ座標とそれぞれのリンク先のノードへのポインタとを保持するノード、６３０はメディアデータ４３と組になり、リンク元のノード６１０へのポインタとメディアデータ４３上に表示されるキーデータ４３１ａの中心のｘ，ｙ座標とそのリンク先のノードへのポインタを保持するノードである。
【００３４】
また、６４０はメディアデータ４４と組になり、リンク元のノード６１０へのポインタとメディアデータ４４上に表示されるキーデータ４４１ａの中心のｘ，ｙ座標を保持するノード、６５０はメディアデータ４５と組になり、リンク元のノード６２０へのポインタを保持するノード、６６０はメディアデータ４６と組になり、リンク元のノード６２０と６３０へのポインタを保持するノード、７０はノード６１０，６２０，６３０，６４０，６５０，６６０から構成されるリンク層、１００はメディアデータ４１，４２，４３，４４，４５，４６から構成されるデータ層である。リンク層７０及びデータ層１００の情報は、ロックを用いた複数のユーザの並行処理機能を持つデータベースに格納されているとする。
【００３５】
次に動作について説明する。リンク情報を更新する例として、図４でメディアデータ４２からメディアデータ４６へキーデータ４２２ａを介して張られているリンクを削除する場合について、図１のフローチャートを用いて説明する。この場合、リンク元データが４２、リンク先データが４６になる。ユーザがディスプレイ上のメディアデータ４２上に表示されたキーデータ４２２ａを選択し、リンクの削除を指定したとする。このとき図１のＳＴ１で、リンク元データであるメディアデータ４２に対してライトロックの取得を試みる。もし他のユーザがメディアデータ４２を参照中であれば、既にメディアデータ４２にリードロックがかかっており、ライトロックを得ることができない。従ってＳＴ２でライトロックの取得が不成功となり、ＳＴ３でリンク情報の更新、即ちリンクの削除を断念する。
【００３６】
もし他のユーザがメディアデータ４２を参照していなかったら、ＳＴ２でライトロックの取得に成功する。そこでＳＴ４で、まずリンク層のノード６２０と６６０とにライトロックをかけ、他のユーザがこれを参照できないようにする。次にノード６２０が保持するキーデータ４２２ａの座標（３０，１５）と、キーデータ４２２ａのリンク先のノードへのポインタを削除し、さらに６６０が保持するリンク元のノード６２０へのポインタを削除する。最後にコミットを実行して、データの変更を永続化する。ＳＴ５でリンク層のノード６２０と６６０のロックを解除する。これによって、リンク層のロックが全て解除されたことになる。ＳＴ６で、リンク元データであるメディアデータ４２のロックを、ライトロックからリードロックに変更し、リンク元データの参照を継続する。また、リンク元データの参照を終了する場合はメディアデータ４２のロックを解除する。なお、ＳＴ５とＳＴ６の実行順序は、どちらが先でも構わない。
【００３７】
このように、リンク情報を変更する際に、実際に変更処理を行う場合のみリンク層７０のリンク情報にロックをかけてリンク情報を読み出し禁止，書き込み禁止にして更新し、この後リンク情報にかけたロックを解除している。このため、他からリンク情報を読み出し，書き込みできる機会が多くなる。
【００３８】
上記の場合はリンク情報の更新であるが、単にメディアデータ４２を参照する場合は、データ層のメディアデータ４２にリードロックをかけ、リンク層にはロックをかけない。このため、メディアデータ４２が参照されている場合は、データ層のメディアデータ４２は他から読み出し可能，書き込み禁止状態となるが、これに対応するリンク層のリンク情報、例えばノード６２０や６６０に対しては読み出し可能，書き込み可能となり、他のユーザは例えばメディアデータ４１からメディアデータ４２に双方向リンクを張ることもできる。
【００３９】
次にリンクデータを参照する例として、図４でリンク元データとなるメディアデータ４２からキーデータ４２２ａを介してリンク先データのメディアデータ４６を取得する場合について図２のフローチャートを用いて説明する。
ディスプレイ装置上でユーザがマウスでキーデータ４２２ａを選択すると、ＳＴ１２で、メディアデータ４２に対応するノード６２０を取得してリードロックをかけ、キーデータ４２２ａのリンク先となるノード６６０を取得してリードロックをかけて、リンク先データ４６を取得する。ＳＴ１３でノード６２０とノード６６０のロックを解除する。これにより、リンク層のロックが全て解除されたことになる。この後、必要に応じてメディアデータ４６にリードロックをかけて参照する。
【００４０】
このように、実施例２によるデータリンク情報制御方式は、複数のデータで構成されるデータ層１００と、データ間の関係を表すリンク情報を保持するリンク層７０に情報を分離し、データ層１００のデータとリンク層７０のリンク情報とに別々にリードロック，ライトロックをかけるように構成する。このため、参照されているデータに対して他からライトロックを取得して変更されるのを防ぐことができ、かつ参照されているデータに対応するリンク層７０の情報にロックがかけられないので、リンク層７０の情報を新たに作成したり，更新したり，削除したりできる。
【００４１】
なお、この実施例において、データを更新したり作成したりするのはユーザであるとして説明したが、これに限ることなく、タスクの実行によってデータを更新したり作成したりすることもある。
また、データ層１００のデータやリンク層７０のリンク情報は図４に限るものではない。
【００４２】
実施例３．
以下、この発明の実施例３によるデータリンク情報制御方式を図について説明する。実施例３はメディアデータにデータの一種であるキーデータが付属し、メディアデータからそれに付属するキーデータを介して他のデータへリンクが張られるハイパーメディアシステムにおいて、データのリンク情報を排他的に制御する制御方式についての他の実施例である。
図５は実施例３によるデータリンク情報制御方式に係るデータ構造を示す説明図である。処理動作を示すフローチャートは実施例１の図１，図２と同様である。
【００４３】
図５において、４１０はメディアデータ４１に対応するノード、４２０はメディアデータ４２に対応するノード、４３０はメディアデータ４３に対応するノード、４４０はメディアデータ４４に対応するノード、４５０はメディアデータ４５に対応するノード、４６０はメディアデータ４６に対応するノードである。また、４１１ｃはキーデータ４１１ａに対応するノード、４１２ｃはキーデータ４１２ａに対応するノード、４１３ｃはキーデータ４１３ａに対応するノード、４２１ｃはキーデータ４２１ａに対応するノード、４２２ｃはキーデータ４２２ａに対応するノード、４３１ｃはキーデータ４３１ａに対応するノード、４４１ｃはキーデータ４４１ａに対応するノードである。
【００４４】
また、４１１ｂはノード４１０とノード４１１ｃを双方向に結ぶパートリンク、４１２ｂはノード４１０とノード４１２ｃを双方向に結ぶパートリンク、４１３ｂはノード４１０とノード４１３ｃを双方向に結ぶパートリンク、４２１ｂはノード４２０とノード４２１ｃを双方向に結ぶパートリンク、４２２ｂはノード４２０とノード４２２ｃを双方向に結ぶパートリンク、４３１ｂはノード４３０とノード４３１ｃを双方向に結ぶパートリンク、４４１ｂはノード４４０とノード４４１ｃを双方向に結ぶパートリンクである。
【００４５】
さらに、４１１ｄはノード４１１ｃとノード４２０を双方向に結ぶアソシエーションリンク、４１２ｄはノード４１２ｃとノード４３０を双方向に結ぶアソシエーションリンク、４１３ｄはノード４１３ｃとノード４４０を双方向に結ぶアソシエーションリンク、４２１ｄはノード４２１ｃとノード４５０を双方向に結ぶアソシエーションリンク、４２２ｄはノード４２２ｃとノード４６０を双方向に結ぶアソシエーションリンク、４３１ｄはノード４３１ｃとノード４６０を双方向に結ぶアソシエーションリンク、７０はリンク層、７１はデータ層１００のメディアとリンク層７０のノードを対応づけるための対応表である。またキーデータ４１１ａ，４１２ａ，４１３ａ，４２１ａ，４２２ａ，４３１ａ，４４１ａは、自分の背景に表示されるメディアデータのどの位置に自分が表示されるかの位置情報を内部に保持しているものとする。データ層１００及びリンク層７０の情報は、ロックを用いた複数のユーザの並行処理機能持つデータベースに格納されているとする。
【００４６】
次に動作について説明する。リンク情報を変更する例として、図５でメディアデータ４２からメディアデータ４６へキーデータ４２２ａを介して張られているリンクを削除する場合について、図１のフローチャートを用いて説明する。この場合、リンク元データが４２、リンク先データが４６になる。
ユーザがディスプレイ装置上のメディアデータ４２上に表示されたキーデータ４２２ａを選択し、リンクの削除を指定したとする。このとき図１のＳＴ１で、リンク元のデータであるメディアデータ４２に対してライトロックの取得を試みる。もし他のユーザがメディアデータ４２を参照中であれば、既にメディアデータ４２にリードロックがかかっており、ライトロックを得ることができない。従ってＳＴ２でライトロックの取得が不成功となり、ＳＴ３でリンク情報の更新、即ちリンクの削除を断念する。
【００４７】
もし他のユーザがメディアデータ４２を参照していなかったら、ＳＴ２でライトロックの取得に成功する。そこでＳＴ４で、まず対応表７１を参照してキーデータ４２２ａに対応するノード４２２ｃを取得する。次に４２２ｃの双方向リンクを参照して、パートリンク４２２ｂとアソシエーションリンク４２２ｄを取得する。さらにアソシエーションリンク４２２ｄの双方向リンクを参照して、ノード４６０を取得する。そしてノード４２０，パートリンク４２２ｂ，ノード４２２ｃ，アソシエーションリンク４２２ｄ，ノード４６０及び対応表７１にライトロックをかけ、ノード４２０とパートリンク４２２ｂの双方向リンクを切断し、アソシエーションリンク４２２ｄとノード４６０の双方向リンクを切断し、パートリンク４２２ｂ，ノード４２２ｃ，及びアソシエーションリンク４２２ｄを削除し、対応表７１から削除されたノードに対応する項目を削除し、キーデータ４２２ａを削除する。
【００４８】
最後にコミットを実行して、変更を永続化させる。ＳＴ５でノード４２０と４６０及び対応表７１にかけたロックを解除する。これによって、リンク層７０のロックが全て解除されたことになる。ＳＴ６で、リンク元データであるメディアデータ４２のロックを、ライトロックからリードロックに変更し、メディアデータ４２の参照を継続する。また、メディアデータ４２の参照を終了する場合はメディアデータ４２のロックを解除する。なお、ＳＴ５とＳＴ６の実行順序は、どちらが先でも構わない。
【００４９】
このように、リンク情報を変更する際に、実際に変更処理を行う場合のみリンク層７０のリンク情報にロックをかけてリンク情報を読み出し禁止，書き込み禁止にして更新し、この後リンク情報にかけたロックを解除している。このため、他からリンク情報を読み出し，書き込みできる機会が多くなる。
【００５０】
上記の場合はリンク情報の更新であるが、単にメディアデータ４２を参照する場合は、データ層のメディアデータ４２にリードロックをかけ、リンク層のリンク情報にはロックをかけない。このため、メディアデータ４２が参照されている場合は、データ層のメディアデータ４２は他から読み出し可能，書き込み禁止状態となるが、これに対応するリンク層のリンク情報、例えばノード４２０や４６０に対しては読み出し可能，書き込み可能となり、他のユーザは例えばメディアデータ４１からメディアデータ４２に双方向リンクを張ることもできる。
【００５１】
次にリンクデータを参照する例として、図５でリンク元データとなるメディアデータ４２からキーデータ４２２ａを介してリンクされている、リンク先データのメディアデータ４６を取得する場合について、図２のフローチャートに従って説明する。ディスプレイ上でユーザがマウスでキーデータ４２２ａを選択すると、ＳＴ１２で、対応表７１を参照してキーデータ４２２ａに対応するノード４２２ｃにリードロックをかけ、双方向リンクをたどることによって順にアソシエーションリンク４２２ｄ及びノード４６０をリードロックをかけながらたどり、対応表７１を参照してノード４６０に対応するメディアデータ４６を取得する。ＳＴ１３でノード４２２ｃ，アソシエーションリンク４２２ｄ，ノード４６０，及び対応表７１のロックを解除する。これにより、リンク層のロックが全て解除されたことになる。この後、必要に応じてメディアデータ４６にリードロックをかけて参照する。
【００５２】
このように、実施例３によるデータリンク情報制御方式は、複数のデータで構成されるデータ層１００と、データ間の関係を表すリンク情報を保持するリンク層７０に情報を分離し、データ層１００のデータとリンク層７０のリンク情報とに別々にリードロック，ライトロックをかけるように構成する。このため、参照されているデータに対して他からライトロックを取得して変更されるのを防ぐことができ、かつ参照されているデータに対応するリンク層７０の情報にロックがかけられないので、リンク層７０のリンク情報を新たに作成したり，更新したり，削除したりできる。
【００５３】
なお、この実施例において、データを更新したり作成したりするのはユーザであるとして説明したが、これに限ることなく、タスクの実行によってデータを更新したり作成したりすることもある。
また、データ層１００のデータやリンク層７０のリンク情報は図５に限るものではない。
また、対応表７１にロックをかける場合、ロックをかけたメディアデータとノードに対応する項目のみにロックをかけてもよい。
【００５４】
実施例４．
以下、この発明の実施例４によるデータリンク情報制御方式を図について説明する。実施例４はメディアデータにデータの一種であるキーデータが付属し、さらにキーデータに別のキーデータが付属している構成のデータ構造において、データのリンク情報を排他的に制御する制御方式についての実施例である。
図６は実施例４によるデータリンク情報制御方式に係るデータ構造を示す説明図である。処理動作を示すフローチャートは実施例１の図１，図２と同様である。
【００５５】
図６において、４７，４８，４９はデータ層１００のメディアデータ、４７１ａ，４７２ａ，４８１ａ，４８２ａ，４９１ａはキーデータ、４７０，４８０，４９０はそれぞれメディアデータ４７，４８，４９に対応するノードである。
また、４７１ｃ，４７２ｃ，４８１ｃ，４８２ｃ，４９１ｃはそれぞれキーデータ４７１ａ，４７２ａ，４８１ａ，４８２ａ，４９１ａに対応するノードである。
また、４７１ｂ，４７２ｂ，４８１ｂ，４８２ｂ，４９１ｂはパートリンク、４７１ｄ，４７１ｅ，４７２ｄ，４８０ｄ，４９０ｄ，４８２ｄはアソシエーションリンクである。１００はデータ層、７０はリンク層、７２は対応表である。
【００５６】
図６に示すようにメディアデータ４８にキーデータ４８１ａが付属し、さらにキーデータ４８１ａに別のキーデータ４８２ａが付属してキーデータ４８２ａからキーデータ４９１ａにリンクされている。この様な構成の場合でも、リンク元データであるメディアデータ４８からキーデータ４８２ａを介してリンク先データであるデータ４９１ａにリンクしているものとみなせば、実施例２，３と同様の方式を適用することができ、同様の効果を奏する。
【００５７】
即ち、複数のデータで構成されるデータ層１００と、データ間の関係を表すリンク情報を保持するリンク層７０とに分離し、データ層１００のデータとリンク層７０のリンク情報とに別々にリードロック，ライトロックをかけるように構成する。このため、参照されているデータに対して他からライトロックを取得して変更されるのを防ぐことができ、かつ参照されているデータに対応するリンク層７０のリンク情報にロックがかけられないので、リンク層７０の情報を新たに作成したり，更新したり，削除したりできる。
【００５８】
また、キーデータからキーデータへのリンクにおいても同様である。例えば、キーデータ４８２ａからキーデータ４９１ａにリンクされている場合は、リンク元データをメディアデータ４８とし、リンク先データをキーデータ４９１ａとし、キーデータ４８２ａを介してリンクされているとみなせばよい。
さらに、キーデータから複数のデータへのリンクにおいても同様である。例えば、キーデータ４７１ａから複数のメディアデータ４８，４９にリンクされている場合は、リンク元データをメディアデータ４７とし、リンク先データをメディアデータ４８またはメディアデータ４９とし、キーデータ４７１ａを介してリンクされているとみなすことができ、実施例２，３と同様の処理によって同様の効果を奏する。
【００５９】
実施例５．
以下、この発明の実施例５によるデータリンク情報制御方式を動作について説明する。その処理を示すフローチャートは図１，図２と同様であり、データ構成は図５と同様である。
リンク情報を変更する例として、図５でキーデータ４４１ａと、メディアデータ４４からキーデータ４４１ａへ張られているリンクとを削除する場合について、図１のフローチャートを用いて説明する。この場合、リンク元データが４４、リンク先データが４４１ａになる。
【００６０】
ユーザがディスプレイ装置上のメディアデータ４４上に表示されたデータ４４１ａを選択し、データ４４からデータ４４１ａへのリンクの削除を指定したとする。このとき図１のＳＴ１で、データ層１００のリンク元のデータであるデータ４４に対してライトロックの取得を試みる。もし他のユーザがデータ４４を参照中であれば、既にデータ４４にリードロックがかかっており、ライトロックを得ることができない。従ってＳＴ２でライトロックの取得が不成功となり、ＳＴ３でリンク情報の更新、即ちリンクの削除を断念する。
【００６１】
もし他のユーザがデータ４４を参照していなかったら、ＳＴ２でライトロックの取得に成功する。そこでＳＴ４で、まず対応表７１を参照してデータ４４１ａに対応するノード４４１ｃを取得する。次に４４１ｃの双方向リンクを参照してパートリンク４４１ｂを取得し、さらにパートリンク４４１ｂの双方向リンクを参照してノード４４０を取得する。そしてノード４４０，パートリンク４４１ｂ，ノード４４１ｃ，及び対応表７１にライトロックをかけ、ノード４４０とパートリンク４４１ｂの双方向リンクを切断し、パートリンク４４１ｂ及びノード４４１ｃを削除し、削除されたノードに対応する項目を対応表７１から削除し、キーデータ４４１ａを削除する。
【００６２】
最後にコミットを実行して、変更を永続化させる。ＳＴ５でリンク層７０のノード４４０及び対応表７１にかけたロックを解除する。これによって、リンク層７０のロックが全て解除されたことになる。ＳＴ６で、データ層１００のリンク元データであるデータ４４のロックを、ライトロックからリードロックに変更し、データ４４の参照を継続する。また、データ４４の参照を終了する場合はデータ４４のロックを解除する。なお、ＳＴ５とＳＴ６の実行順序は、どちらが先でも構わない。
【００６３】
このように、リンク情報を変更する際に、実際に変更処理を行う場合のみリンク層７０のリンク情報にロックをかけてリンク情報を読み出し禁止，書き込み禁止にして更新し、この後リンク情報にかけたロックを解除している。このため、他からリンク情報を読み出し，書き込みできる機会が多くなる。
【００６４】
次にリンク情報を参照する例として、リンク元データとなるデータ４４からリンク先データのデータ４４１ａを取得する場合について図２のフローチャートを用いて説明する。
リンク元データ４４が指定されると、ＳＴ１２で、対応表７１を参照してデータ４４に対応するノード４４０を取得する。リンク層７０のノード４４０にリードロックをかけ、双方向リンクをたどる。さらに、順にパートリンク４４１ｂ及びノード４４１ｃをリードロックをかけながらたどり、対応表７１を参照してノード４４１ｃに対応するデータ４４１ａを取得する。ＳＴ１３でノード４４０，パートリンク４４１ｂ，ノード４４１ｃ，及び対応表７１にかけたロックを解除する。これにより、リンク層７０のロックが全て解除されたことになる。この後、必要に応じてデータ４４１ａにリードロックをかけて参照する。
また、対応表７１にロックをかける場合、ロックをかけたメディアデータとノードに対応する項目のみにロックをかけてもよい。
【００６５】
なお、実施例１〜実施例５ではデータ層１００及びリンク層７０の情報がロックを用いた複数のユーザの並行処理機能を持つデータベースに格納されるものとしたが、データベースを利用せずに、各情報に対してその情報のロック状態とそのロックを取得しているユーザを記述したロック情報を付属させ、このロック情報によって並行処理機能を実現しても同様の効果を奏する。
また、データ毎にそのデータの参照と更新時点で時刻を記録し、これを用いて並行処理制御を実現しても同様の効果を奏する。
【００６６】
また、実施例１〜実施例５では、リンクの順方向にたどって参照したり更新したりする処理動作について説明したが、これに限らず、リンクの逆方向にたどって参照したり更新したりしても、上記と同様の効果を奏する。例えば図５において、メディアデータ４２からリンクをたどってキーデータ４１１ａを参照する場合、リンク元データをメディアデータ４２、リンク先データをキーデータ４１１ａとみなせばよい。リンク情報の更新においても同様である。
【００６７】
また、メディアデータを削除する場合も同様である。まず、データ層のデータとリンク層のリンク情報に必要に応じてそれぞれロックをかけ、削除するメディアデータ及びこれに付属するキーデータと、他のデータとの間に張られているリンクを切断する。その後、メディアデータ及びこれに付属するキーデータとそれらに対応するリンク情報を削除するという処理を行う。この処理を終了後、かけたロックを解除すれば、上記と同様の効果がある。ただし、この場合、データ層のメディアデータを削除したとき、データ層のメディアデータにかけたロックは解除されたことになる。
【００６８】
【発明の効果】
以上のように、請求項１に記載の発明によれば、複数のデータから構成されるデータ層と、データ間を双方向に参照するための双方向リンクで構成されたリンク情報を保持するリンク層とを設け、リンク層の情報を参照又は更新をしておらず、且つ、上記データ層のデータを参照している場合に、そのデータに対しては他から読み出し可能，書き込み禁止とし、参照されているデータに対応するリンク層の情報に対しては他から読み出し可能，書き込み可能とし、更に、上記リンク層のリンク情報を参照して上記データ層のリンク元データからリンク先データを取得する場合、上記リンク層のリンク情報にロックをかけて参照するリンク情報を他から読み出し可能，書き込み禁止にし、リンク情報を参照してリンク元データからリンクをたどってリンク先データを取得した後リンク情報にかけたロックを解除し、リンク情報を更新する場合、データ層のリンク元データにロックをかけてリンク元データを他から読み出し禁止，書き込み禁止にした後、リンク層のリンク情報にロックをかけてリンク情報を他から読み出し禁止，書き込み禁止にしてリンク情報を更新し、この後リンク情報にかけたロックを解除し、リンク元データの他からの読み出し禁止を解除するようにしたことにより、データが参照されている場合でも、このデータに対して新たにリンクを張ったり、そのデータに対して張られているリンク情報を新たに作成したり，更新したり，削除したりできるデータリンク情報制御方式が得られる効果があると共に、参照されているデータに対して他からライトロックを取得して変更されるのを防ぐことができ、かつデータが参照されている場合でも、このデータに対して新たにリンクを張ったり、そのデータに対して張られているリンク情報を新たに作成したり，更新したり，削除したりできるデータリンク情報制御方式が得られる効果がある。
【００６９】
また、請求項２に記載の発明によれば、データにデータの一種であるキーデータが付属し、データからそれに付属するキーデータを介して他のデータへリンクが張られる構成に対し、リンク層のリンク情報を参照してデータ層のリンク先データを取得する場合、リンク層のリンク情報にロックをかけて参照するリンク情報を他から読み出し可能，書き込み禁止にし、リンク情報を参照してキーデータからリンクをたどってキーデータのリンク先であるリンク先データを取得した後リンク情報にかけたロックを解除するようにしたので、参照されているデータに対して他からライトロックを取得して変更されるのを防ぐことができ、かつデータが参照されている場合でも、このデータに対して新たにリンクを張ったり、そのデータに対して張られているリンク情報を新たに作成したり，更新したり，削除したりできるデータリンク情報制御方式が得られる効果がある。
【図面の簡単な説明】
【図１】この発明の実施例１に係るデータリンク情報制御方式の動作を説明するフローチャートである。
【図２】実施例１に係るデータリンク情報制御方式の動作を説明するフローチャートである。
【図３】実施例１に係るデータ構造を示す説明図である。
【図４】この発明の実施例２によるデータリンク情報制御方式に係るデータ構造を示す説明図である。
【図５】この発明の実施例３によるデータリンク情報制御方式に係るデータ構造を示す説明図である。
【図６】この発明の実施例４によるデータリンク情報制御方式に係るデータ構造を示す説明図である。
【図７】従来のデータ検索装置を示すブロック図である。
【図８】従来のデータ検索装置に係るデータの表示画面の一例を示す説明図である。
【図９】従来のデータ検索装置に係るメディアデータの提示例を示す説明図である。
【図１０】従来のデータ検索装置に係るデータデータ構造を示す説明図である。
【図１１】従来のデータ検索装置に係るデータのリンク情報を示す説明図である。
【符号の説明】
７０  リンク層、  １００  データ層
【図１】
0003596021.tif 000002
【図２】
0003596021.tif 000003
【図３】
0003596021.tif 000004
【図４】
0003596021.tif 000005
【図５】
0003596021.tif 000006
【図６】
0003596021.tif 000007
【図７】
0003596021.tif 000008
【図８】
0003596021.tif 000009
【図９】
0003596021.tif 000010
【図１０】
0003596021.tif 000011
【図１１】
0003596021.tif 000012