情報蓄積装置
【課題】グラフモデル(有向グラフ)を利用する1種類のデータ構造にて種々の機能を提供可能にしつつ、利用者数やデータ数の増加に伴って大規模化してもシステムが複雑化しない情報蓄積装置を提供することである。
【解決手段】記憶部11のアイテムノードデータ111とリンクノードデータ112とアークデータ113とから構成されるデータ構造を用いて情報の蓄積を行うグラフモデルを用いた情報蓄積装置で、データ入出力手段121がアイテムノードまたはリンクノードへのデータ操作要求を受け付けてアークの生成を伴うデータ変更要求であると識別すると、ノード接続可否判定手段124は変更後のアークの上流側と下流側が共にアイテムノードであるか否か判定し、データ変更手段123は上流側及び下流側が共にアイテムノードであれば当該データ変更を禁止し、上流側と下流側の何れか又は両方がアイテムノードでなければ当該データ変更を実行する。
【解決手段】記憶部11のアイテムノードデータ111とリンクノードデータ112とアークデータ113とから構成されるデータ構造を用いて情報の蓄積を行うグラフモデルを用いた情報蓄積装置で、データ入出力手段121がアイテムノードまたはリンクノードへのデータ操作要求を受け付けてアークの生成を伴うデータ変更要求であると識別すると、ノード接続可否判定手段124は変更後のアークの上流側と下流側が共にアイテムノードであるか否か判定し、データ変更手段123は上流側及び下流側が共にアイテムノードであれば当該データ変更を禁止し、上流側と下流側の何れか又は両方がアイテムノードでなければ当該データ変更を実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、掲示板型、日記型、メール型、共有フォルダ型など複数の情報蓄積方式を、グラフモデルを用いることで一つのデータモデルにて蓄積できる情報蓄積装置に関する。
【背景技術】
【0002】
電子メールやWEBページ、ブログや掲示板などのサービスは、サービスごとにデータベースを構築している。このため、多数のサービスを提供しつつ連携させる場合、多数のデータベースを用意した上で、これらを連携させるための情報共有基盤を構築することが必要となり、システム開発のコスト等が大きくなってしまう。
【0003】
これを解決するために従来、グラフモデルとルールテーブルから構成される単一のデータモデルを用いて様々な情報蓄積方式にて情報を蓄積・検索する情報検索装置が提案されている(特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−209647号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のグラフモデルでは、複数のノード同士の関係を追加する際に、追加する分だけノード同士を接続するエッジ(アーク)が増加する。このため、蓄積したノードの数が膨大になっていくと、エッジ(アーク)の数も膨大となり、それだけエッジ(アーク)の関係が複雑化する。したがって、従来の方式では、蓄積している情報を整理等するときに、複雑に絡み合ったエッジ(アーク)を紐解きながら整理する必要があるという課題があった。特に、従来のグラフモデルでは、利用者が自由にノードやエッジ(アーク)を設計できるので、かかる課題が生じてしまう。
【0006】
本発明の目的は、有向グラフモデルを利用する1種類のデータ構造にて種々の機能を提供可能にしつつ、利用者数やデータ数の増加に伴って大規模化してもシステムが複雑化しない情報蓄積装置を提供することにある。
【課題を解決するための手段】
【0007】
かかる課題を解決するために、本発明は、上流アーク及び下流アークの両方または何れか一方の識別子と蓄積対象のアイテム情報からなるアイテムノードと、上流アーク及び下流アークの両方または何れか一方の識別子からなるリンクノードと、上流及び下流のアイテムノード又はリンクノードの識別子からなるアークとから構成されるデータ構造を記憶している記憶部と、記憶部のデータ構造を用いて情報の蓄積を行う制御部を有してなるグラフモデルを用いた情報蓄積装置であって、制御部は、アイテムノードまたはリンクノードへのデータ操作要求を受け付け、アークの生成を伴うデータ変更要求であるか否かを識別する入出力手段と、アークの生成を伴うデータ変更要求であれば、変更後のアークの上流側と下流側が共にアイテムノードであるか否か判定するノード接続可否判定手段と、上流側及び下流側が共にアイテムノードであれば当該データ変更を禁止し、上流側と下流側の何れか又は両方がアイテムノードでなければ当該データ変更を実行する変更手段と、を有することを特徴とする情報蓄積装置を提供する。これにより、アイテムノード同士の接続を禁止し、ノード間の接続関係が複雑化を防止することができる。
【0008】
かかる情報蓄積装置において、データ構造におけるアークは、更に当該アークの属性を示すラベル情報を含み、制御部は、入出力手段からアイテムノード又はリンクノードへの参照要求を受けると、当該アイテムノード又は当該リンクノードに接続されているアークのラベル情報を含む結果情報を出力する参照手段を更に有することが好ましい。これにより、アークの上流側となるノードとアークの下流側となるノードとの関係をラベル情報に含めてアークを生成することで、参照時にノード間の関係を利用者に示すことができる。
【0009】
また、かかる情報蓄積装置において、リンクノードは、更に当該リンクノード及び当該リンクノードの下流アークで接続するアイテムノードへのアクセス制御情報を含み、制御部は、更に、アクセス制御情報を用いてリンクノード及びアイテムノードへの操作権限を判定する権限判定手段を有し、入出力手段からアイテムノード又はリンクノードへのデータ操作要求を受けると、当該アイテムノード又は当該リンクノードのアクセス制御情報についての操作権限の判定に従ってデータ操作の処理を実行することが好ましい。これにより、すべてのアイテムノードおよびアークに関するアクセス制御情報をリンクノードが保持するので、あるリンクノードの下流に接続するアイテムノード群のアクセス制御の管理を容易に行なうことができる。
【発明の効果】
【0010】
本発明によれば、掲示板、日記、メールなど複数のサービスに関する情報をアイテムノードに格納しつつ、リンクノードを介したアイテムノードの接続、グルーピング及び階層化によって、アイテムノードの制御を容易にして、アイテムノード間の接続関係が複雑化することを防止した情報蓄積装置を提供することが可能になる。
【図面の簡単な説明】
【0011】
【図1】本発明による情報蓄積装置を用いた情報蓄積共有システムの構成図である。
【図2】データモデルを説明する図である。
【図3】データ構造を説明する図である。
【図4】リンクノードのアクセス制御範囲を説明する図である。
【図5】サーバ装置のデータ操作要求受信時の処理フローチャートである。
【図6】アーク接続変更処理のフローチャートである。
【図7】利用者間の情報蓄積共有の一例を説明する図である。
【図8】図7におけるノードデータ及びアークデータの例を説明する図である。
【図9】図7のノードが利用者端末装置2に表示される画面の例である。
【図10】図7の利用者間でメールを送受信する例を説明する図である。
【図11】図10におけるノードデータ及びアークデータの例を説明する図である。
【図12】図10のノードが利用者端末装置2に表示される画面の例である。
【図13】図7の利用者間で日記を共有する例を説明する図である。
【図14】図13におけるノードデータ及びアークデータの例を説明する図である。
【図15】図13のノードが利用者端末装置2に表示される画面の例である。
【図16】図7の利用者間で掲示板を共有する例を説明する図である。
【図17】図16におけるノードデータ及びアークデータの例を説明する図である。
【図18】図16のノードが利用者端末装置2に表示される画面の例である。
【発明を実施するための形態】
【0012】
以下、本発明による情報蓄積装置の実施の形態を、図面を参照して説明する。
【0013】
図1は、本発明による情報蓄積装置を用いた情報蓄積共有システムの構成図である。図1に示す情報蓄積共有システムは、本発明による情報蓄積装置であるサーバ装置1と、ネットワーク3を介して、サーバ装置1に接続され、サーバ装置1に蓄積された情報を参照等するためにアクセスする利用者が操作する利用者端末装置2から構成されている。
【0014】
サーバ装置1は、いわゆるコンピュータシステムであって、ネットワーク3を介して、利用者端末装置2へ蓄積対象の情報であるアイテムの追加、参照、変更、削除などのサービスを提供する。サーバ装置1は、ネットワーク3を通じて利用者端末装置2と通信を行なう通信インタフェース(I/F)部13と、サーバ装置1の各種制御を行なう制御部12と、記憶部11から構成されている。
【0015】
記憶部11は、ROM、RAM、磁気ハードディスク等の記憶装置で構成され、制御部12で用いられる各種プログラムや蓄積対象情報であるアイテム等を記憶する。図1の記憶部11には、蓄積対象情報を記載しており、アイテムノードデータ111と、リンクノードデータ112と、アークデータ113からなるデータ構造にて記憶される。
【0016】
ここで、図2を参照し、サーバ装置1の記憶部11における蓄積対象情報のデータ構造を模式的に示したデータモデルを説明する。図2のデータモデルは、いわゆるラベル付き有向グラフモデルの一種である。
本データモデルは、アイテムノードM1と、リンクノードM2と、アークM3にて構成されている。アイテムノードM1は、蓄積対象の情報であるアイテムを持つノードであり、記憶部11のアイテムノードデータ111として記憶される。リンクノードM2は、アイテムノードM1同士を中継して連結するノードであり、記憶部11のリンクノードデータ112として記憶される。アークM3は、アイテムノードM1またはリンクノードM2の上流下流の順序である向き情報を伴ってアイテムノードM1またはリンクノードM2を連結させる有向枝であり、記憶部11のアークデータ113に記憶される。なお、以下単に、ノードと表記している場合は、アイテムノードM1とリンクノードM2の両方を総称させている。
【0017】
図2のアイテムノードM1を見ると、アイテムノードM1同士の直接連結がないことが分かる。つまり、アイテムノードM1同士を直接連結させるアークM3の生成は禁止している。これは、アークM3を生成する際に、アイテムノードM1同士を直接連結となるかを判定し、直接連結となる場合は生成を禁止している。このように、アイテムノードM1同士の連結を禁止するのは、蓄積対象であるアイテムが膨大になってきたときに、複雑なトポロジーとならないように規制するためである。トポロジーが複雑化すると、その後のメンテナンスやアイテムの整理が困難となるからである。特に、掲示板型、日記型、メール型などの複数の蓄積方式を一つのデータモデルで実現する際には、複雑化に拍車がかかる。
また、アークM3は、上流方向に接続されたノードと下流方向に接続されたノードとの関係を示すラベルが付与されている。かかるラベルを参照することにより、上流ノードと下流ノードとの関係を容易に把握できる。また、本情報蓄積共有システムでは、アークM3に付与しているラベルを用いてグループ化することにより、掲示板型、日記型、メール型などの種々のサービス種別や各サービス内でのきめ細かな検索条件の設定が容易になる。
【0018】
次に、図3を参照して、かかるデータモデルを実現した記憶部11に蓄積されている蓄積対象情報のデータ構造を説明する。
【0019】
図3(a)は、アイテムノードM1のデータ構造であるアイテムノードデータ111を示している。アイテムノードデータ111は、アイテムノードM1が個々に持つデータであって、ノード識別子、所有者識別子、上流アーク、下流アーク、およびアイテムから構成されている。
【0020】
ノード識別子は、本アイテムノードデータ111を識別するユニークなデータであり、アイテムノードM1を新規に生成する毎にコンピュータが自動的に付与する。所有者識別子は、例えばアイテムノードM1を作成した利用者を特定する利用者識別子が格納される。なお、所有者識別子は、複数の利用者に所有権限を付与することも可能であり、所有権限をもつ利用者の数だけの利用者識別子が格納される。所有者識別子は、アイテムノードM1を新規に生成する毎に作成者の利用者識別子をコンピュータが自動的に付与するようにしてもよいし、その都度、手入力により付与してもよい。
【0021】
上流アークは、上流に接続されるアークM3を特定するアーク識別子が格納される。複数のアークM3が接続される場合は、複数のアーク識別子が格納される。下流アークは、下流に接続されるアークM3を特定するアーク識別子が格納される。複数のアークM3が接続される場合は、複数のアーク識別子が格納される。アイテムは、蓄積共有したい情報(コンテンツ)そのものであり、例えば、メールや日記や掲示板などのテキストや画像などの各種データが格納される。
【0022】
図3(b)は、リンクノードM2のデータ構造であるリンクノードデータ112を示している。リンクノードデータ112は、ノード識別子、所有者識別子、上流アーク、下流アークおよびアクセス制御情報から構成されている。
【0023】
ノード識別子は、本リンクノードデータ112を識別するユニークなデータである。本リンクノードM2を新規に生成する毎にコンピュータが自動的に付与する。所有者識別子は、例えばリンクノードM2を作成した利用者を特定する利用者識別子が格納される。なお、所有者識別子は、複数の利用者に所有権限を付与することも可能であり、所有権限をもつ利用者分だけの利用者識別子が格納される。所有者識別子は、本リンクノードM2を新規に生成する毎に作成者の利用者識別子をコンピュータが自動的に付与するようにしてもよいし、その都度、手入力により付与してもよい。
【0024】
上流アークは、上流に接続されるアークM3を特定するアーク識別子が格納される。複数のアークM3が接続される場合は、複数のアーク識別子が格納される。下流アークは、下流に接続されるアークM3を特定するアーク識別子が格納される。複数のアークM3が接続される場合は、複数のアーク識別子が格納される。
【0025】
アクセス制御情報は、本リンクノードM2、下流アークM3、および当該下流アークに接続されたアイテムノードM1の内容を更新させる権限を示す情報である。ここで、アクセス制御情報を本リンクノードM2と下流アークM3及び当該下流アークM3に接続されたアイテムノードM1を権限範囲としたのは、有向グラフモデルが上流から下流に向けて情報を整理するモデルであり、上流に位置するノードが下流に位置するアークM3やノードを支配する関係になっているからである。また、本情報蓄積共有システムでは、アイテムノードM1同士を直接接続しないようにしているので、必ずアイテムノードM1とアイテムノードM1の間には、リンクノードM2を中継させるので、リンクノードM2にアクセス制御情報を設定することで、全てのアイテムノードM1やアークM3にアクセス制御情報を設定する必要がなくなるからである。
【0026】
アクセス制御情報は、管理権限、参照権限、リンクノード変更権限、リンクノード共有権限、アイテムノード変更権限およびアイテムノード共有権限からなっている。各権限情報は、権限実行を許可する利用者の利用者識別子が格納される。複数の利用者に権限を許可する場合は、複数の利用者識別子が格納される。
【0027】
管理権限は、本リンクノードM2、下流アークM3、および下流アークM3に接続されているアイテムノードM1に対して追加/削除/変更/参照すべての操作が可能な利用者に付与する権限である。すなわち、管理権限が付与された利用者は、後述する参照権限、リンクノード変更権限、リンクノード共有権限、アイテムノード変更権限およびアイテムノード共有権限のすべての権限情報に利用者識別子が格納されていることと同じである。また、管理権限が付与された利用者は、アクセス制御情報の各権限情報を変更することができる。なお、本リンクノードデータ112の所有者識別子を持つ利用者に、本管理権限を付与してもよい。
【0028】
参照権限は、本リンクノードM2と下流アークM3を介して接続されたアイテムノードM1の情報を参照可能な利用者に付与する権限である。すなわち、参照権限により、本リンクノードM2及び下流アークM3の情報、下流アークM3を介して接続されたアイテムノードM1及び当該アイテムノードM1の下流アークM3の情報を参照できる。
【0029】
リンクノード変更権限は、下流アークM3を追加/変更/削除の操作が可能な利用者に付与される権限である。なお、下流アークM3を追加/変更/削除の操作とは、具体的には、新たなノードを追加することに伴って下流アークM3を追加する操作、既存のノード同士を新たに接続することに伴って下流アークM3を追加する操作、下流アークM3のラベルなどのアークデータ113を変更する操作、既存のノードを削除することに伴って下流アークM3も削除する操作、既存のノード間の接続関係を解消することに伴って下流アークM3を削除する操作などである。また、下流アークM3は、当該下流アークで接続する下流ノード(リンクノードM2又はアイテムノードM1)にとっては上流アークであり、下流アークM3の追加・削除を行うためには、本リンクノード変更権限だけでなく、下流ノードに関するアクセス制御情報のリンクノード共有権限又はアイテムノード共有権限も同時に必要である。
【0030】
リンクノード共有権限は、上流アークM3を追加/削除の操作が可能な利用者に付与される権限である。なお、上流アークM3を追加/削除の操作とは、具体的には、新たなノードとして追加されることに伴って上流アークM3を追加する操作、既存のノード同士を新たに接続することに伴って上流アークM3を追加する操作、ノードが削除されることに伴って上流アークM3も削除する操作、既存のノード間の接続関係を解消することに伴って上流アークM3を削除する操作などである。また、上流アークM3は、当該上流アークで接続する上流ノード(リンクノードM2又はアイテムノードM1)にとっては下流アークであり、上流アークM3の追加・削除を行うためには、本リンクノード共有権限だけでなく、上流ノードに関するアクセス制御情報のリンクノード変更権限又はアイテムノード変更権限も同時に必要である。
【0031】
アイテムノード変更権限は、下流アークM3を介して接続されているアイテムノードM1における下流アークM3を追加/削除/変更の操作、及び、アイテムの変更の操作が可能な利用者に付与する権限である。アイテムノードM1における下流アークM3は、当該下流アークで接続する下流ノード(リンクノードM2)にとっては上流アークであり、下流アークM3の追加・削除を行うためには、本アイテムノード変更権限だけでなく、下流ノードに関するアクセス制御情報のリンクノード共有権限も同時に必要である。
アイテムノード共有権限は、下流アークM3を介して接続されているアイテムノードM1における上流アークM3を追加/削除の操作が可能な利用者に付与される権限である。アイテムノードM1における上流アークM3は、当該上流アークで接続する上流ノード(リンクノードM2)にとっては下流アークであり、上流アークM3の追加・削除を行うためには、本アイテムノード共有権限だけでなく、上流ノードに関するアクセス制御情報のリンクノード変更権限も同時に必要である。
【0032】
ここで、図4を参照し、リンクノードM2のアクセス制御情報によるアクセス制御の範囲を説明する。リンクノードM2のアクセス制御の範囲は、当該リンクノードM2から下流に対して有効で、次のリンクノードの手前のアークまで適用される。図4では、リンクノードM2から下流のアイテムノードM1を含んで次のリンクノード(M2−2、M2−3)に接続されるアークまでの囲みM2−aで示される範囲となる。
【0033】
図3(c)は、アークM3のデータ構造であるアークデータ113を示している。アークデータ113は、アーク識別子、上流ノード、下流ノード、およびラベルから構成されている。アーク識別子は、本アークデータ113を識別するユニークなデータである。本アークM3を新規に生成する毎にコンピュータが自動的に付与する。上流ノードは、本アークM3の上流側に接続されているノードを特定するものであって、上流側に接続されているノードのノード識別子が一つ格納される。下流ノードは、本アークM3の下流側に接続されているノードを特定するものであって、下流側に接続されているノードのノード識別子が一つ格納される。アークM3のラベルは、接続される上流アイテムノードと下流リンクノード間の接続関係の意味を表現した情報が格納される。例えば、メールや日記や掲示板などのカテゴリやタイトルを表現する文字列が格納される。
【0034】
制御部12は、CPU/MCU、各種メモリ、プロセッサ等から構成され、データ入出力手段121と、データ参照手段122と、データ変更手段123と、ノード接続可否判定手段124と、権限判定手段125を有する。
【0035】
データ入出力手段121は、利用者端末装置2からデータ操作要求を通信I/F部23を介して受信し、データ操作要求の種類を判別して後述のデータ参照手段122及びデータ変更手段123にデータ操作要求に対する処理を実行させ、その処理結果をデータ操作結果として利用者端末装置2へ通信I/F部23を介して送信する。
【0036】
データ参照手段122は、利用者が利用者端末装置2を操作して、所定のサービスを利用して、目的とするアイテムを参照するまでの一連の処理を制御する手段である。例えば、メールサービスを受ける際に、利用者自身に届いたメール内容を参照する際の処理を実行する。データ参照手段122は、データ入出力手段121が受信したデータ操作要求が、蓄積情報を参照するための操作であったときに動作を開始する。利用者が参照したいアイテムノードM1を参照するための処理を順次行なう。処理の詳細については、図5を参照して後述する。
【0037】
データ変更手段123は、データ入出力手段121にて受信したデータ操作要求が、アイテムノードM1、リンクノードM2、アークM3に対して、追加、変更、削除の操作であったときに動作を開始する。利用者がアイテムノードM1等を追加、変更、削除するための処理を順次行なう。処理の詳細については、図5を参照して後述する。
【0038】
ノード接続可否判定手段124は、データ変更手段123にてアイテムノードM1、リンクノードM2、アークM3に対する追加、変更をしようとする場合に、上流ノードと下流ノードの接続可否判定の処理を行う。処理の詳細については、図5、図6を参照して後述する。
【0039】
権限判定手段125は、アイテムノードM1、リンクノードM2、アークM3に対して、追加、変更、削除の操作の権限を操作要求した利用者が持っているか否かを判定する。処理の詳細については、図5、図6を参照して後述する。
【0040】
通信I/F部23は、利用者端末装置2との通信を行なうインタフェースであり、接続するネットワークに対応している。
【0041】
利用者端末装置2は、いわゆるパーソナルコンピュータであって、キーボードやテンキー、マウス等の入力部(不図示)や、液晶ディスプレイ(LCD)などの表示部(不図示)を有し、ネットワーク3を介してサーバ装置1に接続する。
【0042】
ネットワーク3は、サーバ装置1及び利用者端末装置2に接続され、インターネット等の広域通信網あるいは閉域通信網などのネットワークである。一般電話回線網であってもよい。
【0043】
次に、図5を参照して、利用者が利用者端末装置2を操作し、ネットワーク3を介してサーバ装置1にデータ操作要求した際のサーバ装置1の処理フローを説明する。なお、以下に説明する処理フローは、制御部12で実行されるプログラムによって制御される。
サーバ装置1は、利用者端末装置2からデータ操作要求を受信すると、データ操作処理を開始する(ステップS1)。データ操作要求には、アイテムを参照するためのデータ参照要求、アイテムやラベルといったノードやアークM3の接続関係に影響を及ぼさないデータ変更要求、およびノードやアークM3の接続関係に影響を及ぼすデータ変更要求がある。また、データ操作要求には、参照、変更、追加等の対象となるアイテムノードM1、リンクノードM2を特定する情報が少なくとも含まれている。これらのデータ操作要求に含まれる情報を用いて、データ入出力手段121が利用者端末装置2からのデータ操作要求の種別等を判定する。
【0044】
データ入出力手段121は、先ずステップS2にてデータ操作要求がデータ参照要求か否かを判定する。データ参照要求であれば(ステップS2−Yes)、データ参照手段122が処理を開始する。先ず、データ参照要求に含まれる参照したいノードのノード識別子を取得する。例えば、最初にサービスへログインするような場合は、利用者にとってのホームとなるようなアイテムノードM1のノード識別子である。その他の場合は、適宜のノード識別子を取得することとなる。
【0045】
次に、記憶部11を参照して、取得したノード識別子を持つノードのアイテムノードデータ111又はリンクノードデータ112を取得する(ステップS21)。そして、取得したアイテムノードデータ111又はリンクノードデータ112を参照し、データ参照要求をした利用者が参照権限を持つか否か判定する(ステップS22)。
【0046】
具体的には、アイテムノードM1へのデータ参照要求であれば、アイテムノードデータ111における上流アークにアーク識別子が記憶されているか確認する。上流アークが記憶されていなければ、このアイテムノードM1が最上位に位置するノードであると判断し、本アイテムノードM1に参照権限ありと判定する。但し、所有者識別子がデータ参照要求に含まれる利用者識別子と一致することを条件に参照権限ありと判定するようにしてもよい。
【0047】
他方、アイテムノードM1が最上位でない場合は、アイテムノードデータ111における上流アークに格納されているアーク識別子を読み出し、当該アーク識別子を持つアークを介して接続されているリンクノードM2を特定する。そして、当該リンクノードM2のリンクノードデータ112におけるアクセス制御情報の参照権限、管理権限を参照し、データ参照要求に含まれる利用者識別子が含まれていれば参照権限ありと判定し、含まれていなければ参照権限なしと判定する。なお、上流アークに複数のアーク識別子がある場合、当該アイテムノードM1を参照しようとして中継してきたリンクノードM2のノード識別子もデータ参照要求から取得し、上流アークに格納されているアーク識別子を持つアークの中に当該ノード識別子を上流ノードに含むアークが含まれていれば、当該リンクノードM2の権限に従う。
【0048】
また、リンクノードM2へのデータ参照要求であれば、データ参照要求に含まれる利用者識別子が、当該リンクノードデータ112におけるアクセス制御情報の管理権限又は参照権限に記憶されているか確認する。記憶されていれば、このリンクノードM2に参照権限ありと判定する。他方、記憶されていなければ、このリンクノードM2に参照権限なしと判定する。
【0049】
参照権限があれば(ステップS23−Yes)、データ参照手段122は、アイテムノードM1であればアイテムノードデータ111におけるアイテムをデータ操作結果として通信I/F部13、ネットワーク3を介してデータ操作要求をしてきた利用者端末装置2に送信する(ステップS10)。この際、アイテムノードデータ111におけるアイテムに、下流アークのアーク識別子や上流アークのアーク識別子を当該アークM3のラベルとともに組み込んで生成したデータをデータ操作結果としてもよい(ステップS24)。
また、同様に、リンクノードM2であればリンクノードデータ112における上流アークと下流アークの両方またはどちらか一方のアーク識別子と当該アークM3のラベルを含めて生成したデータをデータ操作結果として通信I/F部13、ネットワーク3を介してデータ操作要求をしてきた利用者端末装置2に送信する(ステップS10)。なお、本実施の形態では、データ参照手段122にてデータ操作結果を利用者端末装置2にて視認できるように生成しているが、利用者端末装置2の専用の閲覧用ブラウザを用意して、当該ブラウザにて視認できるようにしてもよい。
【0050】
他方、ステップS23にて、参照権限がないと判定すると、その旨をデータ操作結果として、通信I/F部13、ネットワーク3を介してデータ操作要求をしてきた利用者端末装置2に送信する(ステップS10)。
【0051】
ステップS2に戻って、データ入出力手段121が、データ操作要求がデータ参照要求でないと判定し(ステップS2−No)、ステップS3にてアイテムやラベル自体の変更のように、ノードやアークM3の接続関係に影響を及ぼさないデータ変更要求と判定した場合について説明する(ステップS3−No)。つまり、利用者端末装置2からのデータ操作要求が、単にアイテム等を参照するのではなく、アイテムノードデータ111におけるアイテムやアークデータ113におけるラベルの変更を利用者が行ないたいときである。他に、リンクノードデータ112におけるアクセス制御情報を変更する際の要求である。このデータ変更要求には、変更したいアイテムノードM1のノード識別子、リンクノードM2のノード識別子、アークM3のアーク識別子、更に変更したい変更データ等が含まれている。
【0052】
データ入出力手段121がステップS3にてアーク接続変更を伴うデータ変更要求でないと判定すると、データ変更手段123が処理を開始する。先ず、データ変更手段123は、記憶部11を参照して、データ変更要求に含まれる変更したいノードのノード識別子を持つアイテムノードデータ111又はリンクノードデータ112を取得する(ステップS11)。そして、取得したアイテムノードデータ111又はリンクノードデータ112を参照し、権限判定手段125は、データ変更要求をした利用者が変更権限を持つか否か判定する(ステップS12)。
【0053】
具体的には、アイテムノードM1へのデータ変更要求(アイテムの変更)であれば、アイテムノードデータ111における上流アークにアーク識別子が格納されているか確認する。上流アークが格納されていなければ、このアイテムノードM1が最上位に位置するノードであると判断し、本アイテムノードM1に変更権限ありと判定する。但し、アイテムノードによって、所有者識別子がデータ変更要求に含まれる利用者識別子と一致していたことを条件に変更権限ありと判定するようにしてもよい。
他方、上流アークにアーク識別子が記憶されていれば、上流アークに格納されているアーク識別子を持つアークデータ113を参照し、更に当該アークデータ113における上流ノードに格納されているノード識別子を抽出する。そして、抽出したノード識別子を持つリンクノードデータ112におけるアクセス制御情報のアイテムノード変更権限又は管理権限に記憶されている利用者識別子に、本データ変更要求をした利用者の利用者識別子が含まれているか確認する。なお、本情報蓄積共有システムでは、アイテムノードM1同士を直接接続せず、アイテムノードM1にアークM3を介してリンクノードM2が接続されるので、アイテムノードM1の上位に存在するノードは、必ずリンクノードM2になる。また、所有者識別子がデータ変更要求に含まれる利用者識別子と一致していたことを条件に変更権限ありと判定するようにしてもよい。また、上流アークに複数のアーク識別子がある場合、当該アイテムノードM1を変更しようとして中継してきたリンクノードM2のノード識別子もデータ変更要求から取得し、上流アークに格納されているアーク識別子を持つアークデータ113を参照し、当該アークデータ113における上流ノードにリンクノードM2のノード識別子を含むアークが含まれていれば、当該リンクノードM2の権限に従う。
【0054】
リンクノードM2へのデータ変更要求(アクセス制御情報の変更)であれば、データ変更要求に含まれる利用者識別子が、リンクノードデータ112におけるアクセス制御情報の管理権限に格納されているか確認する。格納されていれば、このリンクノードM2におけるアクセス制御情報を変更する権限ありと判定する。他方、記憶されていなければ、このリンクノードM2のアクセス制御情報に変更権限なしと判定する。
【0055】
アークM3へのデータ変更要求(ラベルの変更)であれば、データ変更要求に含まれる変更したいアークM3のアーク識別子を持つアークデータ113を参照し、当該アークデータ113における上流ノードに格納されているノード識別子を抽出する。そして、かかるノード識別子を持つリンクノードデータ112又はアイテムノードデータ111を抽出する。そして、リンクノードデータ112を抽出した場合は、当該リンクノードデータ112におけるアクセス制御情報のリンクノード変更権限又は管理権限に本データ変更要求をした利用者の利用者識別子が含まれているか確認する。本データ変更要求をした利用者の利用者識別子が含まれていれば、当該アークM3のアークデータ113におけるラベルを変更する権限ありと判定する。また、アイテムノードデータ111を抽出した場合は、更に、アイテムノードM1へのデータ変更要求のときと同様に変更権限の有無を確認し、上流アークにアーク識別子が記憶されていれば、上流に存在するノードのリンクノードデータ112を抽出する。当該リンクノードデータ112におけるアクセス制御情報のアイテムノード変更権限又は管理権限に本データ変更要求をした利用者の利用者識別子が含まれているか確認する。本データ変更要求をした利用者の利用者識別子が含まれていれば、当該アークM3のアークデータ113におけるラベルを変更する権限ありと判定する。
【0056】
変更権限があれば(ステップS13−Yes)、データ変更手段123は、ステップS14にてデータ変更要求に含まれる変更データにて該当のラベル、アイテムまたはアクセス制御情報の書き換え変更を行なう(ステップS14)。他方、変更権限がなければそのままステップS10に進む。ステップS10では、変更完了したか否かの結果をデータ操作結果として通信I/F部13、ネットワーク3を介してデータ操作要求をしてきた利用者端末装置2に送信する(ステップS10)。
【0057】
ステップS3に戻って、利用者端末装置2からのデータ操作要求が、単に共有情報を参照するデータ参照要求、アーク接続の変更を伴わないデータ変更要求でもない場合、つまり、アークM3の接続変更を伴うデータ変更である場合(ステップS3−Yes)について説明する。アークM3の接続変更を伴うデータ変更には、新たなノードを追加するのに伴ってアークM3を追加する場合、既存のノード同士を新たに接続するのに伴ってアークM3を追加する場合、既存のノードを削除することに伴ってアークM3も削除する場合、既存のノード間の接続関係を解消することに伴ってアークM3を削除する場合、がある。
【0058】
かかるデータ変更要求には、追加・削除又は変更したいアイテムノードM1、リンクノードM2、アークM3、更に変更等に必要な種々のデータが含まれている。具体的には、追加・削除されるアークM3の上流ノードや下流ノードになるアイテムノードM1、リンクノードM2のノード識別子又はアークM3のアーク識別子、新たなノードを追加する場合に必要なデータ等が含まれる。
【0059】
アークM3の接続変更を伴うデータ変更の処理(ステップS4)を、図6を用いて説明する。最初に、新たなノードを追加する場合について説明する。つまり、データ入出力手段121が、利用者からのデータ変更要求が新たなノードの追加に伴ってのアークM3の追加であると判定すれば(ステップS40−Yes)、データ変更手段123は受信したデータ変更要求に含まれるデータに基いて仮ノードデータを生成する(ステップS41)。具体的には、アイテムノードM1の追加であれば、アイテムノードデータ111に必要な所有者識別子、アイテムおよび接続先であるノードのノード識別子を取得し、仮のアイテムノードデータ111を生成する。生成されたときに、アイテムノードM1としてのノード識別子が自動的に付与される。
【0060】
また、リンクノードM2の追加であれば、リンクノードデータ112に必要な所有者識別子、アクセス制御情報および接続先であるノードのノード識別子を取得し、仮のリンクノードデータ112を生成する。生成されたときに、リンクノードM2としてのノード識別子が自動的に付与される。
【0061】
ステップS42は、アイテムノードM1同士が直接接続されるのを禁止するためのノード接続可否判定手段124の処理である。すなわち、仮アイテムノードデータ111の追加であった場合、接続先であるノードがアイテムノードM1かリンクノードM2かを判定し、接続先のノードがアイテムノードM1であれば接続を禁止し(ステップS43−不可)、それ以外であれば接続可能と判定する(ステップS43−可能)。具体的には、受信した接続先であるノードのノード識別子がアイテムノードM1に付与されたものか否かによって、アイテムノードM1同士の直接接続となるのか判定している。なお、本実施の形態では、ノード識別子自体にアイテムノードM1かリンクノードM2かの判定ができるようにしているが、これに限ることなく、接続先であるノードのノード識別子を持つノードデータの中に、アイテムノードデータ111であるか、リンクノードデータ112であるかを識別できるようにしてもよい。
【0062】
ステップS43にて、アイテムノードM1同士が直接接続と判定すれば(ステップS43−不可)、ステップS10に進み、本ノード追加のデータ変更要求ができない旨をデータ操作結果として利用者端末装置2へ送信する。
【0063】
他方、ステップS43にて、アイテムノードM1同士が直接接続でないと判定すれば(ステップS43−可能)、ステップS44に進み、権限判定手段125は、データ変更要求してきた利用者が変更権限を持つか否かを判定する。
具体的には、接続先のノードに関するアクセス制御情報を持つリンクノードデータ112におけるアクセス制御情報のリンクノード変更権限、リンクノード共有権限、アイテムノード変更権限、アイテムノード共有権限、管理権限または当該接続先のノードの所有者識別子に、本データ変更要求をした利用者の利用者識別子が含まれているか確認する。なお、接続先がアイテムノードM1であれば、自己の上流アークのリンクノードM2のリンクノードデータ112の権限に従う。利用者が接続先のノードの所有者でなく、管理権限もないとき、仮ノードデータが下流ノードで接続先のノードが上流ノードになる場合は、接続先のノードのリンクノード変更権限又はアイテムノード変更権限が必要で、仮ノードデータが上流ノードで接続先ノードが下流ノードになる場合はリンクノード共有権限又はアイテムノード共有権限が必要となる。なお、悪意を持つものが新規ノードを作成し、この新規ノードの権限を用いて下流ノードに対して悪意のある変更を行うことを避けるため、仮ノードデータが上流ノードとなる新規ノード追加は、接続先ノードのリンクノード共有権限又はアイテムノード共有権限ではなく管理権限に利用者識別子が含まれる利用者だけに許可するようにしてもよい。
【0064】
そして、利用者に変更権限があれば(ステップS45−Yes)、データ変更手段123は、アークデータ113を新たに生成させる。すなわち、アーク識別子を自動生成するとともに、上流ノードのノード識別子、下流ノードのノード識別子、ラベルをデータ変更要求に従い記憶する(ステップS46)。
ステップS47では、仮ノードデータにステップS46にて生成したアークデータ113のアーク識別子を上流アークまたは下流アークに追加し、正式なアイテムノードデータ111またはリンクノードデータ112として記憶し、ステップS10に進む。
【0065】
他方、利用者に変更権限がなければ(ステップS45−No)、ステップS10に進み、本ノード追加のデータ変更要求ができない旨をデータ操作結果として利用者端末装置2へ送信する。
【0066】
次に、ステップS40にてノード追加ではない、すなわち、既存ノードまたは既存のアークに対する追加削除または変更の処理について説明する。データ変更手段123は、記憶部11を参照して、データ変更要求に含まれる変更したいノードのノード識別子を持つノードデータを取得する(ステップS48)。そして、取得したアイテムノードデータ111又はリンクノードデータ112を参照し、権限判定手段125は、データ変更要求をした利用者が変更権限を持つか否か判定する(ステップS49)。
【0067】
具体的には、アイテムノードM1を含んだデータ変更要求であれば、当該アイテムノードデータ111における上流アークにアーク識別子が記憶されているか確認する。上流アークが記憶されていなければ、このアイテムノードM1が最上位に位置するノードであると判断し、本変更権限ありと判定する。但し、アイテムノードによって、所有者識別子がデータ変更要求に含まれる利用者識別子と一致していたことを条件に変更権限ありと判定するようにしてもよい。他方、上流アークが記憶されていれば、上流アークに格納されているアーク識別子を持つアークデータ113を参照し、更に当該アークデータ113における上流ノードに格納されているノード識別子を抽出する。そして、抽出したノード識別子を持つリンクノードM2であるリンクノードデータ112を抽出する。そして、当該リンクノードデータ112におけるアクセス制御情報を参照し、アイテムノード変更権限(上流ノード側にアイテムノードM1を含み、当該アイテムノードM1の下流アークが変更される場合)又はアイテムノード共有権限(下流ノード側にアイテムノードM1を含み、当該アイテムノードM1の上流アークが変更される場合)又は管理権限に記憶されている利用者識別子に、本データ変更要求をした利用者の利用者識別子が含まれているか確認し、含まれていれば変更権限ありと判定する。他方、含まれていなければ、変更権限なしと判定する。
【0068】
リンクノードM2を含んだデータ変更要求であれば、当該リンクノードデータ112における管理権限又はリンクノード変更権限(上流ノード側にリンクノードM2を含み、当該リンクノードM2の下流アークが変更される場合)又はリンクノード共有権限(下流ノード側にリンクノードM2を含み、当該リンクノードM2の上流アークが変更される場合)にデータ変更要求に含まれる利用者識別子が含まれているか確認する。含まれていれば、このリンクノードM2の上流アーク又は下流アークを変更する権限ありと判定する。他方、含まれていなければ、このリンクノードM2に変更権限なしと判定する。
【0069】
アークM3への削除要求であれば、データ変更要求に含まれる変更したいアークM3のアーク識別子を持つアークデータ113における上流ノードに格納されているノード識別子を抽出する。そして、抽出されたノード識別子を持つノードに関するアクセス制御情報を持つリンクノードデータ112を抽出し、当該リンクノードデータ112におけるリンクノード変更権限、アイテムノード変更権限又は管理権限に格納されている利用者識別子にデータ変更要求に含まれる利用者識別子が含まれていればアークデータ113を削除する権限ありと判定する。更に、アークM3のアーク識別子を持つアークデータ113における下流ノードのノード識別子を抽出し、下流ノードに関するアクセス制御情報を持つリンクノードデータ112を抽出し、当該リンクノードデータ112におけるリンクノード共有権限、アイテムノード共有権限又は管理権限に格納されている利用者識別子にデータ変更要求に含まれる利用者識別子が含まれていればアークデータ113を削除する権限ありと判定するようにしてもよい。
【0070】
変更権限があれば(ステップS50−Yes)、データ変更手段123は、ステップS52に進む。他方、変更権限がなければ(ステップS50−No)、そのままステップS10に進む。ステップS10では、変更完了したか否かの結果をデータ操作結果として通信I/F部13、ネットワーク3を介してデータ操作要求をしてきた利用者端末装置2に送信する。この場合は、データ変更要求ができない旨をデータ操作結果として利用者端末装置2へ送信する。
【0071】
ステップS51では、データ変更要求に基づいて、変更の対象がノード接続関係を変更するものか否かを判定する。ノード接続関係を変更するものであればステップS52に進み、ノード接続関係を変更するものでなければステップS56に進む。
【0072】
ステップS52は、アイテムノードM1同士が直接接続されるのを禁止するためのノード接続可否判定手段124の処理である。すなわち、先ず、ステップS48にて取得した接続関係を変更し新たな接続を確立させようとするノードデータを読み出す。そして、読み出したノードが、アイテムノードデータ111同士か否かを判定する。アイテムノードデータ111同士であれば接続を禁止し(ステップS53−不可)、それ以外であれば接続可能と判定する(ステップS53−可能)。具体的には、受信した接続先であるノードのノード識別子がアイテムノードM1に付与されたものか否かによって、アイテムノードM1同士の直接接続となるのか判定している。なお、本実施の形態では、ノード識別子自体にアイテムノードM1かリンクノードM2かの判定ができるようにしているが、これに限ることなく、接続先であるノード識別子を持つノードデータの中に、アイテムノードデータ111とリンクノードデータ112を識別できるデータを持たせてもよい。
【0073】
ステップS53にて、アイテムノードM1同士が直接接続と判定すれば、ステップS10に進み、本ノード追加のデータ変更要求ができない旨をデータ操作結果として利用者端末装置2へ送信する。
【0074】
次に、ステップS54では、データ変更要求にしたがって、既存のアークデータ113の削除処理と、新規のアークデータ113の追加処理を行なう。すなわち、新たにアークデータ113を生成させるとき、データ変更手段123は、アーク識別子を自動生成するとともに、上流ノードのノード識別子、下流ノードのノード識別子、ラベルをデータ変更要求に従い記憶する。そして、ステップS55にて、関連するアイテムノードデータ111またはリンクノードデータ112における上流アークまたは下流アークから当該アーク識別子を削除または追加し、ステップS10に進む。
【0075】
ステップS51にて、変更の対象がノード接続関係を変更するものでないと判定した場合、ステップS56に進んでデータ変更要求がノードの削除要求か否かを判定する。ノードの削除要求であれば、ノードの削除に伴って不要となるアークデータ113を削除し(ステップS57)、削除対象のノードを削除するとともに削除に伴って影響を受けるノードの変更を行ない(ステップS58)、ステップS10に進む。
【0076】
また、ステップS56にて、ノードの削除が伴わない、つまりアークM3の削除と判定すると、データ変更要求に従ってアークデータ113を削除し(ステップS59)、かかるアークデータ113の削除の影響を受けるノードデータにおける上流アークまたは下流アークから当該アーク識別子を削除し(ステップS60)、ステップS10に進む。
【0077】
次に、図7〜図18を参照し、メール・日記・掲示板のサービスが使えるシステムでの具体的な実施例を説明する。メール・日記・掲示板のサービスが使えるシステムを構築するように依頼されたシステム構築者は、本情報蓄積共有システムを用いて、システムの枠組みを作る。具体的には、提供するサービスのメールや日記や掲示板のデータをアイテムノードM1のアイテムノードデータ111のアイテムの中に保存するときのデータ構造を決め、そのデータ構造に応じて利用者端末装置2にアイテムを表示させる参照画面や提供するサービスのメールや日記や掲示板のデータを新規追加、内容変更する場合の入力画面、ログイン画面、ログイン後に表示する画面などを含む各種操作画面を作る。また、各種操作画面からどのデータ操作要求をサーバ装置1に送信すればよいか、画面と処理を対応付ける。
【0078】
次に、構築されたシステムを運用し、利用者を新規登録するシステム管理者は、利用者を登録する毎に当該利用者にとってのホームとなるような画面のアイテムノードM1を用意する。図7は、システム構築者によってメール・日記・掲示板のサービスが使えるシステムが構築され、システム管理者によって利用者A/利用者B/利用者C・・・が登録され、利用者がログインするとホームからメールだけ利用できるがメールアイテムはまだ存在しない状態を説明する図である。また、図8は、図7におけるアイテムノードデータ111、リンクノードデータ112及びアークデータ113の例を示す。図9は、図7に対応して各ノードが利用者端末装置2に表示される画面の例である。以降の説明では、InはアイテムノードM1のノード識別子であり、LnはリンクノードM2のノード識別子、AnはアークM3のアーク識別子である。
本システムの起点は、I1のアイテムノードである。利用者は利用者端末装置2からこのI1へアクセスしてくる。このI1がログイン画面と連動し、I1のアイテムである利用者共有ホーム画像が表示される(図9の(a)を参照)。なお、I1の所有者識別子はSuperUserであり、システム管理者の利用者識別子となっている。起点のため、上流アークはない(以降、アイテムノードデータ111、リンクノードデータ112及びアークデータ113での$は何も記憶されていないことを表す)。
【0079】
さて、利用者が、ログインのボタン押下をすると利用者認証が行われ、利用者認証の結果を受けて、I1の下流アークのA1で接続するL1を経由して利用者毎に振り分けられ、利用者にとってのホームが表示される。図9(b)は利用者A(利用者識別子U0001)のログイン直後の画面、すなわちI2を表示した例であり、同様に、図9(c)は利用者B(利用者識別子U0002)のI3、図9(d)は利用者C(利用者識別子U0003)のI4を表示した画面である。なお、利用者認証で用いる利用者ID・パスワード等の利用者情報を利用者共有ホーム画像と共にI1のアイテムに保管してもよい。また、L1を経由するときに、アークのラベルの一覧からなる画面を表示し、利用者に「利用者A」「利用者B」「利用者C」・・・を選択させるようにしてもよい。図8のアイテムノードデータを参照すると、利用者にとってのホームであるI2、I3、I4にはそれぞれの利用者識別子が所有者識別子として格納されている。また、I2、I3、I4の上流アークには、L1が上流ノードであるアークのアーク識別子、A2、A3、A4がそれぞれ格納されている。そして、下流アークにはまずはメールを使えるように、ラベルが「メール」であるアークのA5、A6、A7によってそれぞれ接続されたリンクノードのL2、L3、L4が用意された状態になっている。次に、リンクノードデータを参照すると、L2、L3、L4のアクセス制御情報の管理権限、参照権限及びアイテムノード共有権限には、所有者識別子と同じ各利用者の利用者識別子が格納され、リンクノード変更権限は個々の利用者識別子でなく本システムの利用者全員の利用者識別子が指定されているのと同じ「全員」が格納されている。L2を用いて説明すると、L2は利用者Aしか参照することができないので、L2に接続されたアイテムノード(この場合はメールアイテム)は利用者Aしか参照できない。しかし、L2にアイテムノードを追加することは全員ができるので、利用者は誰でも利用者Aにメールを送信することができる。
【0080】
ここで、図10〜図12を参照し、具体的に、利用者Bから利用者Aへメールが送信される例を説明する。図10は図7からメール送受信で追加されたノードおよびアークの接続状態の変化を、図11は図8からの格納されるデータの変化を示したものである。図12は、図10に対応して各ノードが利用者端末装置2に表示される画面の例である。メールに関する操作画面としては、メールを作成・送信する「新規メール」の操作画面や、送受信したメールを参照する画面などが、データ操作要求と対応付けられてあらかじめ用意される。
利用者Bは、例えば、図9(c)のI3の表示画面又はI3の「メール」ラベルから表示したL3の表示画面の「新規メール」をクリックし、あらかじめシステム構築者によって用意された「新規メール」の操作画面から宛先・件名・本文などから構成されるメールを作成し、メールアイテムのI10を新規作成すると、L3からI10へのアークのA10が作成される。これは、L3を上流ノードに指定して新規ノードとしてI10を作成し追加するデータ操作要求、すなわち、データ変更要求の新規ノード追加の操作である。利用者BはL3に対して管理権限及びリンクノード変更権限を持つため、新規ノードであるI10及びA10が作られる。A10のアークだけが作られた状態は、送信者となる利用者Bの手元にのみメールアイテムがあるため、メールの下書き保存の状態となる。ここで、利用者Bが利用者Aへ「送信」を実際に行うと、L2からI10へのアークのA11が作られる。これは、宛先である利用者Aがラベル「メール」で参照するリンクノードであるL2を上流ノードに指定し、I10を下流ノードに指定した既存ノード同士を新たに接続するデータ操作要求、すなわち、データ変更要求のアーク追加の操作である。この一連の操作が、「新規メール」の操作画面に対応付けられている。利用者BはL2に対してリンクノード変更権限を持ち、I10に対しては上流アークのA10を介してL3のアクセス制御情報を参照して管理権限及びアイテムノード共有権限を持つため、L2からI10へのアークA11を作成し、I10の上流アークにA11を追加し、L2の下流アークにA11を追加することができる。
【0081】
さて、受信メールと送信メールを同じリンクノードから(例えば、L2やL3から)参照するのではなく、メール種別で振り分けを可能にする場合は、システム構築者が振り分け操作画面を用意しておき、利用者自身によって下流に新たなリンクノードを作り、振り分けるとよい。例えば、送信側の利用者Bが、送信メールのラベルをもつアークA12で接続するリンクノードのL5を新規作成し、L5の下流ノードからI10に接続するアークのA13を作るデータ操作要求を行うと、メール送信後にI10を送信メールに振り分けることになる。また、受信側の利用者Aが、受信メールのラベルをもつアークA14で接続するリンクノードのL6を新規作成し、L6の下流ノードからI10に接続するアークのA15を作るデータ操作要求を行うと、メール受信後にI10を受信メールに振り分けることになる。また、利用者BがI10を作成する前に、あらかじめL5とL6のリンクノードが用意されていれば、A10、A11の順でアークを作成してメール送受信した操作を、A13、A15の順でアークを作成して自動的に送信メールや受信メールに振り分けてメール送受信する操作に置き換えすることもできる。なお、L5のアクセス制御情報のリンクノード変更権限には利用者Bの利用者識別子U0002のみが格納されており、管理権限、参照権限及びアイテムノード共有権限も利用者Bの利用者識別子U0002のみのため、L5を参照できるのもL5の下流にノードを追加できるも利用者Bだけとなり、他の利用者が利用者Bの送信メールを見ることやメールを利用者Bの送信メールに振り分けることはできない。
【0082】
図12は、利用者Bから利用者Aにメールを送り、振り分けも行った状態の画面例であり、図12(a)は利用者AがL2を表示した画面の例で、A14の受信メールのラベルが表示されている。また、図12(b)は利用者BがL3を表示した画面の例で、A12の送信メールのラベルが表示されている。また、図中のメールアイテムをクリックすると、利用者Aにとっては受信メールとして、また、利用者Bにとっては送信メールとして、I10のアイテムがメール参照画面にて表示されてそれぞれメールの内容を読むことができる。
【0083】
次に、図13〜図15を参照し、利用者Aが日記を使えるように設定し、利用者Aが作成した日記を利用者B及び利用者Cが購読する例を説明する。図13は図7及び図10から日記で追加されたノードおよびアークの接続状態の変化を、図14は図8及び図11からの格納されるデータの変化を示したものである。図15は、図13に対応して各ノードが利用者端末装置2に表示される画面の例である。
利用者Aが日記を書くために、利用者AのホームのI2から「新規日記」をクリックし、「新規日記」の操作画面から、日記を使えるようにL20(A20)をつくり、更に、「新規アイテム」でI20(A21)に新しい日記の記事を作成する。すなわち、I2からL20、L20からI20という2回の新規ノードの追加のデータ変更要求のデータ操作要求が実行され、それぞれA20とA21のアークが追加される。
他の利用者は自身のホームの「新規日記」から公開されている日記のリンク一覧を参照し、既存ノードの利用者AのL20を下流ノードに指定することで、利用者BはI3からA22を、利用者CはI4からA23を作ることができる。すなわち、既存ノード同士の接続のデータ変更要求のデータ操作要求が実行される。このとき、利用者BはA22のラベルに「Aさんの日記」を、利用者CはA23のラベルに「購読日記」を付与している。このように同じL20へのアークであっても、リンクノードではなくアークにラベルをつけることによって、利用者が自由に次の参照先への意味を付加することができる。
ここで、図14のL20のアクセス制御情報を参照すると、参照権限は全員、リンクノード変更権限は利用者A、リンクノード共有権限は全員であり、利用者Aは日記を公開し、他の利用者のノードからL20へのアークの追加を許可している。また、参照権限があるので、利用者B及び利用者Cは、L20の下流アークのA21で接続されたI20を参照することができる。しかし、L20のリンクノード変更権限は利用者Aのみのため、新たな日記投稿は、利用者Aのみが実行可能になる。そして、新たな日記投稿はL20を上流ノードに指定した新規ノードの追加操作になる。L20の下流アークで接続される投稿した日記を修正したい場合は、アイテムノードを指定したアーク接続を伴わないデータ変更要求が対応付けられた修正画面から利用者Aのみが実行可能である。
【0084】
図15は、利用者Aが作成した日記を利用者B、利用者Cが参照可能になった状態の画面例の例である。図15(a)は、利用者Aの画面遷移の例である。利用者AのホームであるI2の表示画面からA20のラベルの「日記」をクリックすると、L20が表示され、ここで、A21で接続された「記事1」のアイテムを選ぶと、I20の表示画面で利用者Aが作成した日記を読むことができる。図15(b)は利用者BがホームであるI3から、図15(c)は利用者CがホームであるI4から、L20を表示させた場合の画面の例である。L20という同じリンクノードであっても、どのノードから参照してきたかによって画面の表示内容は変わる。また、利用者B及び利用者Cは、L20に対して参照権限しかないため、利用者AがL20を表示している画面にはある「新規アイテム」という新規に日記を作成するための操作画面を選択するボタンは用意されていない。
【0085】
次に、図16〜図17を参照し、利用者Aが掲示板を使えるように設定し、利用者Aが用意した掲示板を、利用者Bや利用者Cが利用し、コメントする例を説明する。図16は図7、図10及び図13から掲示板で追加されたノードおよびアークの接続状態の変化を、図17は図8、図11及び図14からの格納されるデータの変化を示したものである。図18は、図16に対応して各ノードが利用者端末装置2に表示される画面の例である。
利用者Aは掲示版を開設するため、利用者AのホームのI2から「新規掲示板」をクリックし、「新規掲示板」の操作画面から、掲示板を作る(L30,A30)。そして、「新規アイテム」をクリックし、「新規アイテム」の操作画面から、話題(話題1)を提供する(I30,A31)。また、話題1へのコメントを受け付けられるようにする(L31、A32)。すなわち、I2からL30、L30からI30という3回の新規ノードの追加のデータ変更要求のデータ操作要求が実行され、それぞれA30、A31及びA32のアークが追加される。
利用者Bは、自身のホームノードであるI3の「新規掲示板」をクリックし、「新規掲示板」の操作画面から、公開されている利用者Aが用意した掲示板を読めるようにする。すなわち、既存ノード同士の新たな接続関係を追加するデータ変更要求のデータ操作要求で、I3からL30へ、ラベル「Aさんの掲示板」のA33を生成する。同様に、利用者Cも利用者Aが用意した掲示板を読めるように、I4からL30へ、ラベル「お気に入り掲示板」のA34を生成する。
ここで、図17のL30のアクセス制御情報を参照すると、管理権限は利用者A、参照権限・リンクノード変更権限・リンクノード共有権限は全員、アイテムノード共有権限は利用者Aであり、利用者Aは掲示板を公開し、他の利用者のノードからL30へのアークの追加することや新たなノードの作成すること(ここでは、話題の提供)を許可している。また、参照権限があるので、他の利用者もL30の下流アークのA31で接続されたI30の話題1を参照することができる。また、L31のアクセス制御情報を参照すると、管理権限は利用者A、参照権限・リンクノード変更権限は全員、リンクノード共有権限・アイテムノード共有権限は利用者Aであり、利用者Aは話題1に対してコメント受付の準備を行え(A32を生成)、他の利用者には新たなノードの作成すること(ここでは、コメントの投稿)を許可している。また、参照権限があるので、他の利用者もL31の下流アークで接続されたコメントを参照することができる。
利用者Bが話題1に対してコメント1を投稿し(L31からI31、A35)。利用者Cも話題1に対してコメント2を投稿する(L31からI32、A36)。このように、利用者B及び利用者Cは、新たに話題を提供したり、コメントを投稿したり、自身が投稿した記事やコメントを変更したりすることができる。これらは、L30又はL31に対しての新規ノードの追加のデータ変更要求のデータ操作要求、自身が作成して所有権限をもつアイテムの変更のデータ変更要求のデータ操作要求が実行されることで実現される。なお、利用者Aは、L30及びL31に管理権限を持つため、管理者として全ての投稿の変更ができる。
【0086】
図18は、利用者Aが開設した掲示板を利用者B、利用者Cが利用する状態の画面例の例である。図18(a)は、利用者Aの画面遷移の例である。利用者AのホームであるI2の表示画面からA30のラベルの「掲示版」をクリックすると、L30の画面が表示され、ここで、A31で接続された「話題1」のアイテムを選ぶと、I30の表示画面で利用者Aが提供した話題である「話題1」を読むことができる。また、A32で接続された「コメント」を選ぶと、L31の画面が表示され、投稿されたコメントの一覧を見ることができる。図18(b)は、利用者Bの画面遷移の例である。利用者BのホームであるI3の表示画面からA33のラベルの「掲示版」をクリックすると、L30の画面が表示され、ここで、A31で接続された「話題1」のアイテムを選ぶと、I30の表示画面で利用者Aが提供した話題である「話題1」を読むことができる。ここで、「新規コメント」をクリックして話題1に対してコメント1を投稿すると(L31からI31、A35)、生成されたI31の表示画面で利用者Bが投稿したコメント1の内容を読むことができる。
【符号の説明】
【0087】
1・・・サーバ装置
11・・・記憶部
111・・・アイテムノードデータ
112・・・リンクノードデータ
113・・・アークデータ
12・・・制御部
121・・・データ入出力手段
122・・・データ参照手段
123・・・データ変更手段
124・・・ノード接続可否判定手段
125・・・権限判定手段
13・・・通信インタフェース(I/F)部
2・・・利用者端末装置
3・・・ネットワーク
【技術分野】
【0001】
本発明は、掲示板型、日記型、メール型、共有フォルダ型など複数の情報蓄積方式を、グラフモデルを用いることで一つのデータモデルにて蓄積できる情報蓄積装置に関する。
【背景技術】
【0002】
電子メールやWEBページ、ブログや掲示板などのサービスは、サービスごとにデータベースを構築している。このため、多数のサービスを提供しつつ連携させる場合、多数のデータベースを用意した上で、これらを連携させるための情報共有基盤を構築することが必要となり、システム開発のコスト等が大きくなってしまう。
【0003】
これを解決するために従来、グラフモデルとルールテーブルから構成される単一のデータモデルを用いて様々な情報蓄積方式にて情報を蓄積・検索する情報検索装置が提案されている(特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−209647号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のグラフモデルでは、複数のノード同士の関係を追加する際に、追加する分だけノード同士を接続するエッジ(アーク)が増加する。このため、蓄積したノードの数が膨大になっていくと、エッジ(アーク)の数も膨大となり、それだけエッジ(アーク)の関係が複雑化する。したがって、従来の方式では、蓄積している情報を整理等するときに、複雑に絡み合ったエッジ(アーク)を紐解きながら整理する必要があるという課題があった。特に、従来のグラフモデルでは、利用者が自由にノードやエッジ(アーク)を設計できるので、かかる課題が生じてしまう。
【0006】
本発明の目的は、有向グラフモデルを利用する1種類のデータ構造にて種々の機能を提供可能にしつつ、利用者数やデータ数の増加に伴って大規模化してもシステムが複雑化しない情報蓄積装置を提供することにある。
【課題を解決するための手段】
【0007】
かかる課題を解決するために、本発明は、上流アーク及び下流アークの両方または何れか一方の識別子と蓄積対象のアイテム情報からなるアイテムノードと、上流アーク及び下流アークの両方または何れか一方の識別子からなるリンクノードと、上流及び下流のアイテムノード又はリンクノードの識別子からなるアークとから構成されるデータ構造を記憶している記憶部と、記憶部のデータ構造を用いて情報の蓄積を行う制御部を有してなるグラフモデルを用いた情報蓄積装置であって、制御部は、アイテムノードまたはリンクノードへのデータ操作要求を受け付け、アークの生成を伴うデータ変更要求であるか否かを識別する入出力手段と、アークの生成を伴うデータ変更要求であれば、変更後のアークの上流側と下流側が共にアイテムノードであるか否か判定するノード接続可否判定手段と、上流側及び下流側が共にアイテムノードであれば当該データ変更を禁止し、上流側と下流側の何れか又は両方がアイテムノードでなければ当該データ変更を実行する変更手段と、を有することを特徴とする情報蓄積装置を提供する。これにより、アイテムノード同士の接続を禁止し、ノード間の接続関係が複雑化を防止することができる。
【0008】
かかる情報蓄積装置において、データ構造におけるアークは、更に当該アークの属性を示すラベル情報を含み、制御部は、入出力手段からアイテムノード又はリンクノードへの参照要求を受けると、当該アイテムノード又は当該リンクノードに接続されているアークのラベル情報を含む結果情報を出力する参照手段を更に有することが好ましい。これにより、アークの上流側となるノードとアークの下流側となるノードとの関係をラベル情報に含めてアークを生成することで、参照時にノード間の関係を利用者に示すことができる。
【0009】
また、かかる情報蓄積装置において、リンクノードは、更に当該リンクノード及び当該リンクノードの下流アークで接続するアイテムノードへのアクセス制御情報を含み、制御部は、更に、アクセス制御情報を用いてリンクノード及びアイテムノードへの操作権限を判定する権限判定手段を有し、入出力手段からアイテムノード又はリンクノードへのデータ操作要求を受けると、当該アイテムノード又は当該リンクノードのアクセス制御情報についての操作権限の判定に従ってデータ操作の処理を実行することが好ましい。これにより、すべてのアイテムノードおよびアークに関するアクセス制御情報をリンクノードが保持するので、あるリンクノードの下流に接続するアイテムノード群のアクセス制御の管理を容易に行なうことができる。
【発明の効果】
【0010】
本発明によれば、掲示板、日記、メールなど複数のサービスに関する情報をアイテムノードに格納しつつ、リンクノードを介したアイテムノードの接続、グルーピング及び階層化によって、アイテムノードの制御を容易にして、アイテムノード間の接続関係が複雑化することを防止した情報蓄積装置を提供することが可能になる。
【図面の簡単な説明】
【0011】
【図1】本発明による情報蓄積装置を用いた情報蓄積共有システムの構成図である。
【図2】データモデルを説明する図である。
【図3】データ構造を説明する図である。
【図4】リンクノードのアクセス制御範囲を説明する図である。
【図5】サーバ装置のデータ操作要求受信時の処理フローチャートである。
【図6】アーク接続変更処理のフローチャートである。
【図7】利用者間の情報蓄積共有の一例を説明する図である。
【図8】図7におけるノードデータ及びアークデータの例を説明する図である。
【図9】図7のノードが利用者端末装置2に表示される画面の例である。
【図10】図7の利用者間でメールを送受信する例を説明する図である。
【図11】図10におけるノードデータ及びアークデータの例を説明する図である。
【図12】図10のノードが利用者端末装置2に表示される画面の例である。
【図13】図7の利用者間で日記を共有する例を説明する図である。
【図14】図13におけるノードデータ及びアークデータの例を説明する図である。
【図15】図13のノードが利用者端末装置2に表示される画面の例である。
【図16】図7の利用者間で掲示板を共有する例を説明する図である。
【図17】図16におけるノードデータ及びアークデータの例を説明する図である。
【図18】図16のノードが利用者端末装置2に表示される画面の例である。
【発明を実施するための形態】
【0012】
以下、本発明による情報蓄積装置の実施の形態を、図面を参照して説明する。
【0013】
図1は、本発明による情報蓄積装置を用いた情報蓄積共有システムの構成図である。図1に示す情報蓄積共有システムは、本発明による情報蓄積装置であるサーバ装置1と、ネットワーク3を介して、サーバ装置1に接続され、サーバ装置1に蓄積された情報を参照等するためにアクセスする利用者が操作する利用者端末装置2から構成されている。
【0014】
サーバ装置1は、いわゆるコンピュータシステムであって、ネットワーク3を介して、利用者端末装置2へ蓄積対象の情報であるアイテムの追加、参照、変更、削除などのサービスを提供する。サーバ装置1は、ネットワーク3を通じて利用者端末装置2と通信を行なう通信インタフェース(I/F)部13と、サーバ装置1の各種制御を行なう制御部12と、記憶部11から構成されている。
【0015】
記憶部11は、ROM、RAM、磁気ハードディスク等の記憶装置で構成され、制御部12で用いられる各種プログラムや蓄積対象情報であるアイテム等を記憶する。図1の記憶部11には、蓄積対象情報を記載しており、アイテムノードデータ111と、リンクノードデータ112と、アークデータ113からなるデータ構造にて記憶される。
【0016】
ここで、図2を参照し、サーバ装置1の記憶部11における蓄積対象情報のデータ構造を模式的に示したデータモデルを説明する。図2のデータモデルは、いわゆるラベル付き有向グラフモデルの一種である。
本データモデルは、アイテムノードM1と、リンクノードM2と、アークM3にて構成されている。アイテムノードM1は、蓄積対象の情報であるアイテムを持つノードであり、記憶部11のアイテムノードデータ111として記憶される。リンクノードM2は、アイテムノードM1同士を中継して連結するノードであり、記憶部11のリンクノードデータ112として記憶される。アークM3は、アイテムノードM1またはリンクノードM2の上流下流の順序である向き情報を伴ってアイテムノードM1またはリンクノードM2を連結させる有向枝であり、記憶部11のアークデータ113に記憶される。なお、以下単に、ノードと表記している場合は、アイテムノードM1とリンクノードM2の両方を総称させている。
【0017】
図2のアイテムノードM1を見ると、アイテムノードM1同士の直接連結がないことが分かる。つまり、アイテムノードM1同士を直接連結させるアークM3の生成は禁止している。これは、アークM3を生成する際に、アイテムノードM1同士を直接連結となるかを判定し、直接連結となる場合は生成を禁止している。このように、アイテムノードM1同士の連結を禁止するのは、蓄積対象であるアイテムが膨大になってきたときに、複雑なトポロジーとならないように規制するためである。トポロジーが複雑化すると、その後のメンテナンスやアイテムの整理が困難となるからである。特に、掲示板型、日記型、メール型などの複数の蓄積方式を一つのデータモデルで実現する際には、複雑化に拍車がかかる。
また、アークM3は、上流方向に接続されたノードと下流方向に接続されたノードとの関係を示すラベルが付与されている。かかるラベルを参照することにより、上流ノードと下流ノードとの関係を容易に把握できる。また、本情報蓄積共有システムでは、アークM3に付与しているラベルを用いてグループ化することにより、掲示板型、日記型、メール型などの種々のサービス種別や各サービス内でのきめ細かな検索条件の設定が容易になる。
【0018】
次に、図3を参照して、かかるデータモデルを実現した記憶部11に蓄積されている蓄積対象情報のデータ構造を説明する。
【0019】
図3(a)は、アイテムノードM1のデータ構造であるアイテムノードデータ111を示している。アイテムノードデータ111は、アイテムノードM1が個々に持つデータであって、ノード識別子、所有者識別子、上流アーク、下流アーク、およびアイテムから構成されている。
【0020】
ノード識別子は、本アイテムノードデータ111を識別するユニークなデータであり、アイテムノードM1を新規に生成する毎にコンピュータが自動的に付与する。所有者識別子は、例えばアイテムノードM1を作成した利用者を特定する利用者識別子が格納される。なお、所有者識別子は、複数の利用者に所有権限を付与することも可能であり、所有権限をもつ利用者の数だけの利用者識別子が格納される。所有者識別子は、アイテムノードM1を新規に生成する毎に作成者の利用者識別子をコンピュータが自動的に付与するようにしてもよいし、その都度、手入力により付与してもよい。
【0021】
上流アークは、上流に接続されるアークM3を特定するアーク識別子が格納される。複数のアークM3が接続される場合は、複数のアーク識別子が格納される。下流アークは、下流に接続されるアークM3を特定するアーク識別子が格納される。複数のアークM3が接続される場合は、複数のアーク識別子が格納される。アイテムは、蓄積共有したい情報(コンテンツ)そのものであり、例えば、メールや日記や掲示板などのテキストや画像などの各種データが格納される。
【0022】
図3(b)は、リンクノードM2のデータ構造であるリンクノードデータ112を示している。リンクノードデータ112は、ノード識別子、所有者識別子、上流アーク、下流アークおよびアクセス制御情報から構成されている。
【0023】
ノード識別子は、本リンクノードデータ112を識別するユニークなデータである。本リンクノードM2を新規に生成する毎にコンピュータが自動的に付与する。所有者識別子は、例えばリンクノードM2を作成した利用者を特定する利用者識別子が格納される。なお、所有者識別子は、複数の利用者に所有権限を付与することも可能であり、所有権限をもつ利用者分だけの利用者識別子が格納される。所有者識別子は、本リンクノードM2を新規に生成する毎に作成者の利用者識別子をコンピュータが自動的に付与するようにしてもよいし、その都度、手入力により付与してもよい。
【0024】
上流アークは、上流に接続されるアークM3を特定するアーク識別子が格納される。複数のアークM3が接続される場合は、複数のアーク識別子が格納される。下流アークは、下流に接続されるアークM3を特定するアーク識別子が格納される。複数のアークM3が接続される場合は、複数のアーク識別子が格納される。
【0025】
アクセス制御情報は、本リンクノードM2、下流アークM3、および当該下流アークに接続されたアイテムノードM1の内容を更新させる権限を示す情報である。ここで、アクセス制御情報を本リンクノードM2と下流アークM3及び当該下流アークM3に接続されたアイテムノードM1を権限範囲としたのは、有向グラフモデルが上流から下流に向けて情報を整理するモデルであり、上流に位置するノードが下流に位置するアークM3やノードを支配する関係になっているからである。また、本情報蓄積共有システムでは、アイテムノードM1同士を直接接続しないようにしているので、必ずアイテムノードM1とアイテムノードM1の間には、リンクノードM2を中継させるので、リンクノードM2にアクセス制御情報を設定することで、全てのアイテムノードM1やアークM3にアクセス制御情報を設定する必要がなくなるからである。
【0026】
アクセス制御情報は、管理権限、参照権限、リンクノード変更権限、リンクノード共有権限、アイテムノード変更権限およびアイテムノード共有権限からなっている。各権限情報は、権限実行を許可する利用者の利用者識別子が格納される。複数の利用者に権限を許可する場合は、複数の利用者識別子が格納される。
【0027】
管理権限は、本リンクノードM2、下流アークM3、および下流アークM3に接続されているアイテムノードM1に対して追加/削除/変更/参照すべての操作が可能な利用者に付与する権限である。すなわち、管理権限が付与された利用者は、後述する参照権限、リンクノード変更権限、リンクノード共有権限、アイテムノード変更権限およびアイテムノード共有権限のすべての権限情報に利用者識別子が格納されていることと同じである。また、管理権限が付与された利用者は、アクセス制御情報の各権限情報を変更することができる。なお、本リンクノードデータ112の所有者識別子を持つ利用者に、本管理権限を付与してもよい。
【0028】
参照権限は、本リンクノードM2と下流アークM3を介して接続されたアイテムノードM1の情報を参照可能な利用者に付与する権限である。すなわち、参照権限により、本リンクノードM2及び下流アークM3の情報、下流アークM3を介して接続されたアイテムノードM1及び当該アイテムノードM1の下流アークM3の情報を参照できる。
【0029】
リンクノード変更権限は、下流アークM3を追加/変更/削除の操作が可能な利用者に付与される権限である。なお、下流アークM3を追加/変更/削除の操作とは、具体的には、新たなノードを追加することに伴って下流アークM3を追加する操作、既存のノード同士を新たに接続することに伴って下流アークM3を追加する操作、下流アークM3のラベルなどのアークデータ113を変更する操作、既存のノードを削除することに伴って下流アークM3も削除する操作、既存のノード間の接続関係を解消することに伴って下流アークM3を削除する操作などである。また、下流アークM3は、当該下流アークで接続する下流ノード(リンクノードM2又はアイテムノードM1)にとっては上流アークであり、下流アークM3の追加・削除を行うためには、本リンクノード変更権限だけでなく、下流ノードに関するアクセス制御情報のリンクノード共有権限又はアイテムノード共有権限も同時に必要である。
【0030】
リンクノード共有権限は、上流アークM3を追加/削除の操作が可能な利用者に付与される権限である。なお、上流アークM3を追加/削除の操作とは、具体的には、新たなノードとして追加されることに伴って上流アークM3を追加する操作、既存のノード同士を新たに接続することに伴って上流アークM3を追加する操作、ノードが削除されることに伴って上流アークM3も削除する操作、既存のノード間の接続関係を解消することに伴って上流アークM3を削除する操作などである。また、上流アークM3は、当該上流アークで接続する上流ノード(リンクノードM2又はアイテムノードM1)にとっては下流アークであり、上流アークM3の追加・削除を行うためには、本リンクノード共有権限だけでなく、上流ノードに関するアクセス制御情報のリンクノード変更権限又はアイテムノード変更権限も同時に必要である。
【0031】
アイテムノード変更権限は、下流アークM3を介して接続されているアイテムノードM1における下流アークM3を追加/削除/変更の操作、及び、アイテムの変更の操作が可能な利用者に付与する権限である。アイテムノードM1における下流アークM3は、当該下流アークで接続する下流ノード(リンクノードM2)にとっては上流アークであり、下流アークM3の追加・削除を行うためには、本アイテムノード変更権限だけでなく、下流ノードに関するアクセス制御情報のリンクノード共有権限も同時に必要である。
アイテムノード共有権限は、下流アークM3を介して接続されているアイテムノードM1における上流アークM3を追加/削除の操作が可能な利用者に付与される権限である。アイテムノードM1における上流アークM3は、当該上流アークで接続する上流ノード(リンクノードM2)にとっては下流アークであり、上流アークM3の追加・削除を行うためには、本アイテムノード共有権限だけでなく、上流ノードに関するアクセス制御情報のリンクノード変更権限も同時に必要である。
【0032】
ここで、図4を参照し、リンクノードM2のアクセス制御情報によるアクセス制御の範囲を説明する。リンクノードM2のアクセス制御の範囲は、当該リンクノードM2から下流に対して有効で、次のリンクノードの手前のアークまで適用される。図4では、リンクノードM2から下流のアイテムノードM1を含んで次のリンクノード(M2−2、M2−3)に接続されるアークまでの囲みM2−aで示される範囲となる。
【0033】
図3(c)は、アークM3のデータ構造であるアークデータ113を示している。アークデータ113は、アーク識別子、上流ノード、下流ノード、およびラベルから構成されている。アーク識別子は、本アークデータ113を識別するユニークなデータである。本アークM3を新規に生成する毎にコンピュータが自動的に付与する。上流ノードは、本アークM3の上流側に接続されているノードを特定するものであって、上流側に接続されているノードのノード識別子が一つ格納される。下流ノードは、本アークM3の下流側に接続されているノードを特定するものであって、下流側に接続されているノードのノード識別子が一つ格納される。アークM3のラベルは、接続される上流アイテムノードと下流リンクノード間の接続関係の意味を表現した情報が格納される。例えば、メールや日記や掲示板などのカテゴリやタイトルを表現する文字列が格納される。
【0034】
制御部12は、CPU/MCU、各種メモリ、プロセッサ等から構成され、データ入出力手段121と、データ参照手段122と、データ変更手段123と、ノード接続可否判定手段124と、権限判定手段125を有する。
【0035】
データ入出力手段121は、利用者端末装置2からデータ操作要求を通信I/F部23を介して受信し、データ操作要求の種類を判別して後述のデータ参照手段122及びデータ変更手段123にデータ操作要求に対する処理を実行させ、その処理結果をデータ操作結果として利用者端末装置2へ通信I/F部23を介して送信する。
【0036】
データ参照手段122は、利用者が利用者端末装置2を操作して、所定のサービスを利用して、目的とするアイテムを参照するまでの一連の処理を制御する手段である。例えば、メールサービスを受ける際に、利用者自身に届いたメール内容を参照する際の処理を実行する。データ参照手段122は、データ入出力手段121が受信したデータ操作要求が、蓄積情報を参照するための操作であったときに動作を開始する。利用者が参照したいアイテムノードM1を参照するための処理を順次行なう。処理の詳細については、図5を参照して後述する。
【0037】
データ変更手段123は、データ入出力手段121にて受信したデータ操作要求が、アイテムノードM1、リンクノードM2、アークM3に対して、追加、変更、削除の操作であったときに動作を開始する。利用者がアイテムノードM1等を追加、変更、削除するための処理を順次行なう。処理の詳細については、図5を参照して後述する。
【0038】
ノード接続可否判定手段124は、データ変更手段123にてアイテムノードM1、リンクノードM2、アークM3に対する追加、変更をしようとする場合に、上流ノードと下流ノードの接続可否判定の処理を行う。処理の詳細については、図5、図6を参照して後述する。
【0039】
権限判定手段125は、アイテムノードM1、リンクノードM2、アークM3に対して、追加、変更、削除の操作の権限を操作要求した利用者が持っているか否かを判定する。処理の詳細については、図5、図6を参照して後述する。
【0040】
通信I/F部23は、利用者端末装置2との通信を行なうインタフェースであり、接続するネットワークに対応している。
【0041】
利用者端末装置2は、いわゆるパーソナルコンピュータであって、キーボードやテンキー、マウス等の入力部(不図示)や、液晶ディスプレイ(LCD)などの表示部(不図示)を有し、ネットワーク3を介してサーバ装置1に接続する。
【0042】
ネットワーク3は、サーバ装置1及び利用者端末装置2に接続され、インターネット等の広域通信網あるいは閉域通信網などのネットワークである。一般電話回線網であってもよい。
【0043】
次に、図5を参照して、利用者が利用者端末装置2を操作し、ネットワーク3を介してサーバ装置1にデータ操作要求した際のサーバ装置1の処理フローを説明する。なお、以下に説明する処理フローは、制御部12で実行されるプログラムによって制御される。
サーバ装置1は、利用者端末装置2からデータ操作要求を受信すると、データ操作処理を開始する(ステップS1)。データ操作要求には、アイテムを参照するためのデータ参照要求、アイテムやラベルといったノードやアークM3の接続関係に影響を及ぼさないデータ変更要求、およびノードやアークM3の接続関係に影響を及ぼすデータ変更要求がある。また、データ操作要求には、参照、変更、追加等の対象となるアイテムノードM1、リンクノードM2を特定する情報が少なくとも含まれている。これらのデータ操作要求に含まれる情報を用いて、データ入出力手段121が利用者端末装置2からのデータ操作要求の種別等を判定する。
【0044】
データ入出力手段121は、先ずステップS2にてデータ操作要求がデータ参照要求か否かを判定する。データ参照要求であれば(ステップS2−Yes)、データ参照手段122が処理を開始する。先ず、データ参照要求に含まれる参照したいノードのノード識別子を取得する。例えば、最初にサービスへログインするような場合は、利用者にとってのホームとなるようなアイテムノードM1のノード識別子である。その他の場合は、適宜のノード識別子を取得することとなる。
【0045】
次に、記憶部11を参照して、取得したノード識別子を持つノードのアイテムノードデータ111又はリンクノードデータ112を取得する(ステップS21)。そして、取得したアイテムノードデータ111又はリンクノードデータ112を参照し、データ参照要求をした利用者が参照権限を持つか否か判定する(ステップS22)。
【0046】
具体的には、アイテムノードM1へのデータ参照要求であれば、アイテムノードデータ111における上流アークにアーク識別子が記憶されているか確認する。上流アークが記憶されていなければ、このアイテムノードM1が最上位に位置するノードであると判断し、本アイテムノードM1に参照権限ありと判定する。但し、所有者識別子がデータ参照要求に含まれる利用者識別子と一致することを条件に参照権限ありと判定するようにしてもよい。
【0047】
他方、アイテムノードM1が最上位でない場合は、アイテムノードデータ111における上流アークに格納されているアーク識別子を読み出し、当該アーク識別子を持つアークを介して接続されているリンクノードM2を特定する。そして、当該リンクノードM2のリンクノードデータ112におけるアクセス制御情報の参照権限、管理権限を参照し、データ参照要求に含まれる利用者識別子が含まれていれば参照権限ありと判定し、含まれていなければ参照権限なしと判定する。なお、上流アークに複数のアーク識別子がある場合、当該アイテムノードM1を参照しようとして中継してきたリンクノードM2のノード識別子もデータ参照要求から取得し、上流アークに格納されているアーク識別子を持つアークの中に当該ノード識別子を上流ノードに含むアークが含まれていれば、当該リンクノードM2の権限に従う。
【0048】
また、リンクノードM2へのデータ参照要求であれば、データ参照要求に含まれる利用者識別子が、当該リンクノードデータ112におけるアクセス制御情報の管理権限又は参照権限に記憶されているか確認する。記憶されていれば、このリンクノードM2に参照権限ありと判定する。他方、記憶されていなければ、このリンクノードM2に参照権限なしと判定する。
【0049】
参照権限があれば(ステップS23−Yes)、データ参照手段122は、アイテムノードM1であればアイテムノードデータ111におけるアイテムをデータ操作結果として通信I/F部13、ネットワーク3を介してデータ操作要求をしてきた利用者端末装置2に送信する(ステップS10)。この際、アイテムノードデータ111におけるアイテムに、下流アークのアーク識別子や上流アークのアーク識別子を当該アークM3のラベルとともに組み込んで生成したデータをデータ操作結果としてもよい(ステップS24)。
また、同様に、リンクノードM2であればリンクノードデータ112における上流アークと下流アークの両方またはどちらか一方のアーク識別子と当該アークM3のラベルを含めて生成したデータをデータ操作結果として通信I/F部13、ネットワーク3を介してデータ操作要求をしてきた利用者端末装置2に送信する(ステップS10)。なお、本実施の形態では、データ参照手段122にてデータ操作結果を利用者端末装置2にて視認できるように生成しているが、利用者端末装置2の専用の閲覧用ブラウザを用意して、当該ブラウザにて視認できるようにしてもよい。
【0050】
他方、ステップS23にて、参照権限がないと判定すると、その旨をデータ操作結果として、通信I/F部13、ネットワーク3を介してデータ操作要求をしてきた利用者端末装置2に送信する(ステップS10)。
【0051】
ステップS2に戻って、データ入出力手段121が、データ操作要求がデータ参照要求でないと判定し(ステップS2−No)、ステップS3にてアイテムやラベル自体の変更のように、ノードやアークM3の接続関係に影響を及ぼさないデータ変更要求と判定した場合について説明する(ステップS3−No)。つまり、利用者端末装置2からのデータ操作要求が、単にアイテム等を参照するのではなく、アイテムノードデータ111におけるアイテムやアークデータ113におけるラベルの変更を利用者が行ないたいときである。他に、リンクノードデータ112におけるアクセス制御情報を変更する際の要求である。このデータ変更要求には、変更したいアイテムノードM1のノード識別子、リンクノードM2のノード識別子、アークM3のアーク識別子、更に変更したい変更データ等が含まれている。
【0052】
データ入出力手段121がステップS3にてアーク接続変更を伴うデータ変更要求でないと判定すると、データ変更手段123が処理を開始する。先ず、データ変更手段123は、記憶部11を参照して、データ変更要求に含まれる変更したいノードのノード識別子を持つアイテムノードデータ111又はリンクノードデータ112を取得する(ステップS11)。そして、取得したアイテムノードデータ111又はリンクノードデータ112を参照し、権限判定手段125は、データ変更要求をした利用者が変更権限を持つか否か判定する(ステップS12)。
【0053】
具体的には、アイテムノードM1へのデータ変更要求(アイテムの変更)であれば、アイテムノードデータ111における上流アークにアーク識別子が格納されているか確認する。上流アークが格納されていなければ、このアイテムノードM1が最上位に位置するノードであると判断し、本アイテムノードM1に変更権限ありと判定する。但し、アイテムノードによって、所有者識別子がデータ変更要求に含まれる利用者識別子と一致していたことを条件に変更権限ありと判定するようにしてもよい。
他方、上流アークにアーク識別子が記憶されていれば、上流アークに格納されているアーク識別子を持つアークデータ113を参照し、更に当該アークデータ113における上流ノードに格納されているノード識別子を抽出する。そして、抽出したノード識別子を持つリンクノードデータ112におけるアクセス制御情報のアイテムノード変更権限又は管理権限に記憶されている利用者識別子に、本データ変更要求をした利用者の利用者識別子が含まれているか確認する。なお、本情報蓄積共有システムでは、アイテムノードM1同士を直接接続せず、アイテムノードM1にアークM3を介してリンクノードM2が接続されるので、アイテムノードM1の上位に存在するノードは、必ずリンクノードM2になる。また、所有者識別子がデータ変更要求に含まれる利用者識別子と一致していたことを条件に変更権限ありと判定するようにしてもよい。また、上流アークに複数のアーク識別子がある場合、当該アイテムノードM1を変更しようとして中継してきたリンクノードM2のノード識別子もデータ変更要求から取得し、上流アークに格納されているアーク識別子を持つアークデータ113を参照し、当該アークデータ113における上流ノードにリンクノードM2のノード識別子を含むアークが含まれていれば、当該リンクノードM2の権限に従う。
【0054】
リンクノードM2へのデータ変更要求(アクセス制御情報の変更)であれば、データ変更要求に含まれる利用者識別子が、リンクノードデータ112におけるアクセス制御情報の管理権限に格納されているか確認する。格納されていれば、このリンクノードM2におけるアクセス制御情報を変更する権限ありと判定する。他方、記憶されていなければ、このリンクノードM2のアクセス制御情報に変更権限なしと判定する。
【0055】
アークM3へのデータ変更要求(ラベルの変更)であれば、データ変更要求に含まれる変更したいアークM3のアーク識別子を持つアークデータ113を参照し、当該アークデータ113における上流ノードに格納されているノード識別子を抽出する。そして、かかるノード識別子を持つリンクノードデータ112又はアイテムノードデータ111を抽出する。そして、リンクノードデータ112を抽出した場合は、当該リンクノードデータ112におけるアクセス制御情報のリンクノード変更権限又は管理権限に本データ変更要求をした利用者の利用者識別子が含まれているか確認する。本データ変更要求をした利用者の利用者識別子が含まれていれば、当該アークM3のアークデータ113におけるラベルを変更する権限ありと判定する。また、アイテムノードデータ111を抽出した場合は、更に、アイテムノードM1へのデータ変更要求のときと同様に変更権限の有無を確認し、上流アークにアーク識別子が記憶されていれば、上流に存在するノードのリンクノードデータ112を抽出する。当該リンクノードデータ112におけるアクセス制御情報のアイテムノード変更権限又は管理権限に本データ変更要求をした利用者の利用者識別子が含まれているか確認する。本データ変更要求をした利用者の利用者識別子が含まれていれば、当該アークM3のアークデータ113におけるラベルを変更する権限ありと判定する。
【0056】
変更権限があれば(ステップS13−Yes)、データ変更手段123は、ステップS14にてデータ変更要求に含まれる変更データにて該当のラベル、アイテムまたはアクセス制御情報の書き換え変更を行なう(ステップS14)。他方、変更権限がなければそのままステップS10に進む。ステップS10では、変更完了したか否かの結果をデータ操作結果として通信I/F部13、ネットワーク3を介してデータ操作要求をしてきた利用者端末装置2に送信する(ステップS10)。
【0057】
ステップS3に戻って、利用者端末装置2からのデータ操作要求が、単に共有情報を参照するデータ参照要求、アーク接続の変更を伴わないデータ変更要求でもない場合、つまり、アークM3の接続変更を伴うデータ変更である場合(ステップS3−Yes)について説明する。アークM3の接続変更を伴うデータ変更には、新たなノードを追加するのに伴ってアークM3を追加する場合、既存のノード同士を新たに接続するのに伴ってアークM3を追加する場合、既存のノードを削除することに伴ってアークM3も削除する場合、既存のノード間の接続関係を解消することに伴ってアークM3を削除する場合、がある。
【0058】
かかるデータ変更要求には、追加・削除又は変更したいアイテムノードM1、リンクノードM2、アークM3、更に変更等に必要な種々のデータが含まれている。具体的には、追加・削除されるアークM3の上流ノードや下流ノードになるアイテムノードM1、リンクノードM2のノード識別子又はアークM3のアーク識別子、新たなノードを追加する場合に必要なデータ等が含まれる。
【0059】
アークM3の接続変更を伴うデータ変更の処理(ステップS4)を、図6を用いて説明する。最初に、新たなノードを追加する場合について説明する。つまり、データ入出力手段121が、利用者からのデータ変更要求が新たなノードの追加に伴ってのアークM3の追加であると判定すれば(ステップS40−Yes)、データ変更手段123は受信したデータ変更要求に含まれるデータに基いて仮ノードデータを生成する(ステップS41)。具体的には、アイテムノードM1の追加であれば、アイテムノードデータ111に必要な所有者識別子、アイテムおよび接続先であるノードのノード識別子を取得し、仮のアイテムノードデータ111を生成する。生成されたときに、アイテムノードM1としてのノード識別子が自動的に付与される。
【0060】
また、リンクノードM2の追加であれば、リンクノードデータ112に必要な所有者識別子、アクセス制御情報および接続先であるノードのノード識別子を取得し、仮のリンクノードデータ112を生成する。生成されたときに、リンクノードM2としてのノード識別子が自動的に付与される。
【0061】
ステップS42は、アイテムノードM1同士が直接接続されるのを禁止するためのノード接続可否判定手段124の処理である。すなわち、仮アイテムノードデータ111の追加であった場合、接続先であるノードがアイテムノードM1かリンクノードM2かを判定し、接続先のノードがアイテムノードM1であれば接続を禁止し(ステップS43−不可)、それ以外であれば接続可能と判定する(ステップS43−可能)。具体的には、受信した接続先であるノードのノード識別子がアイテムノードM1に付与されたものか否かによって、アイテムノードM1同士の直接接続となるのか判定している。なお、本実施の形態では、ノード識別子自体にアイテムノードM1かリンクノードM2かの判定ができるようにしているが、これに限ることなく、接続先であるノードのノード識別子を持つノードデータの中に、アイテムノードデータ111であるか、リンクノードデータ112であるかを識別できるようにしてもよい。
【0062】
ステップS43にて、アイテムノードM1同士が直接接続と判定すれば(ステップS43−不可)、ステップS10に進み、本ノード追加のデータ変更要求ができない旨をデータ操作結果として利用者端末装置2へ送信する。
【0063】
他方、ステップS43にて、アイテムノードM1同士が直接接続でないと判定すれば(ステップS43−可能)、ステップS44に進み、権限判定手段125は、データ変更要求してきた利用者が変更権限を持つか否かを判定する。
具体的には、接続先のノードに関するアクセス制御情報を持つリンクノードデータ112におけるアクセス制御情報のリンクノード変更権限、リンクノード共有権限、アイテムノード変更権限、アイテムノード共有権限、管理権限または当該接続先のノードの所有者識別子に、本データ変更要求をした利用者の利用者識別子が含まれているか確認する。なお、接続先がアイテムノードM1であれば、自己の上流アークのリンクノードM2のリンクノードデータ112の権限に従う。利用者が接続先のノードの所有者でなく、管理権限もないとき、仮ノードデータが下流ノードで接続先のノードが上流ノードになる場合は、接続先のノードのリンクノード変更権限又はアイテムノード変更権限が必要で、仮ノードデータが上流ノードで接続先ノードが下流ノードになる場合はリンクノード共有権限又はアイテムノード共有権限が必要となる。なお、悪意を持つものが新規ノードを作成し、この新規ノードの権限を用いて下流ノードに対して悪意のある変更を行うことを避けるため、仮ノードデータが上流ノードとなる新規ノード追加は、接続先ノードのリンクノード共有権限又はアイテムノード共有権限ではなく管理権限に利用者識別子が含まれる利用者だけに許可するようにしてもよい。
【0064】
そして、利用者に変更権限があれば(ステップS45−Yes)、データ変更手段123は、アークデータ113を新たに生成させる。すなわち、アーク識別子を自動生成するとともに、上流ノードのノード識別子、下流ノードのノード識別子、ラベルをデータ変更要求に従い記憶する(ステップS46)。
ステップS47では、仮ノードデータにステップS46にて生成したアークデータ113のアーク識別子を上流アークまたは下流アークに追加し、正式なアイテムノードデータ111またはリンクノードデータ112として記憶し、ステップS10に進む。
【0065】
他方、利用者に変更権限がなければ(ステップS45−No)、ステップS10に進み、本ノード追加のデータ変更要求ができない旨をデータ操作結果として利用者端末装置2へ送信する。
【0066】
次に、ステップS40にてノード追加ではない、すなわち、既存ノードまたは既存のアークに対する追加削除または変更の処理について説明する。データ変更手段123は、記憶部11を参照して、データ変更要求に含まれる変更したいノードのノード識別子を持つノードデータを取得する(ステップS48)。そして、取得したアイテムノードデータ111又はリンクノードデータ112を参照し、権限判定手段125は、データ変更要求をした利用者が変更権限を持つか否か判定する(ステップS49)。
【0067】
具体的には、アイテムノードM1を含んだデータ変更要求であれば、当該アイテムノードデータ111における上流アークにアーク識別子が記憶されているか確認する。上流アークが記憶されていなければ、このアイテムノードM1が最上位に位置するノードであると判断し、本変更権限ありと判定する。但し、アイテムノードによって、所有者識別子がデータ変更要求に含まれる利用者識別子と一致していたことを条件に変更権限ありと判定するようにしてもよい。他方、上流アークが記憶されていれば、上流アークに格納されているアーク識別子を持つアークデータ113を参照し、更に当該アークデータ113における上流ノードに格納されているノード識別子を抽出する。そして、抽出したノード識別子を持つリンクノードM2であるリンクノードデータ112を抽出する。そして、当該リンクノードデータ112におけるアクセス制御情報を参照し、アイテムノード変更権限(上流ノード側にアイテムノードM1を含み、当該アイテムノードM1の下流アークが変更される場合)又はアイテムノード共有権限(下流ノード側にアイテムノードM1を含み、当該アイテムノードM1の上流アークが変更される場合)又は管理権限に記憶されている利用者識別子に、本データ変更要求をした利用者の利用者識別子が含まれているか確認し、含まれていれば変更権限ありと判定する。他方、含まれていなければ、変更権限なしと判定する。
【0068】
リンクノードM2を含んだデータ変更要求であれば、当該リンクノードデータ112における管理権限又はリンクノード変更権限(上流ノード側にリンクノードM2を含み、当該リンクノードM2の下流アークが変更される場合)又はリンクノード共有権限(下流ノード側にリンクノードM2を含み、当該リンクノードM2の上流アークが変更される場合)にデータ変更要求に含まれる利用者識別子が含まれているか確認する。含まれていれば、このリンクノードM2の上流アーク又は下流アークを変更する権限ありと判定する。他方、含まれていなければ、このリンクノードM2に変更権限なしと判定する。
【0069】
アークM3への削除要求であれば、データ変更要求に含まれる変更したいアークM3のアーク識別子を持つアークデータ113における上流ノードに格納されているノード識別子を抽出する。そして、抽出されたノード識別子を持つノードに関するアクセス制御情報を持つリンクノードデータ112を抽出し、当該リンクノードデータ112におけるリンクノード変更権限、アイテムノード変更権限又は管理権限に格納されている利用者識別子にデータ変更要求に含まれる利用者識別子が含まれていればアークデータ113を削除する権限ありと判定する。更に、アークM3のアーク識別子を持つアークデータ113における下流ノードのノード識別子を抽出し、下流ノードに関するアクセス制御情報を持つリンクノードデータ112を抽出し、当該リンクノードデータ112におけるリンクノード共有権限、アイテムノード共有権限又は管理権限に格納されている利用者識別子にデータ変更要求に含まれる利用者識別子が含まれていればアークデータ113を削除する権限ありと判定するようにしてもよい。
【0070】
変更権限があれば(ステップS50−Yes)、データ変更手段123は、ステップS52に進む。他方、変更権限がなければ(ステップS50−No)、そのままステップS10に進む。ステップS10では、変更完了したか否かの結果をデータ操作結果として通信I/F部13、ネットワーク3を介してデータ操作要求をしてきた利用者端末装置2に送信する。この場合は、データ変更要求ができない旨をデータ操作結果として利用者端末装置2へ送信する。
【0071】
ステップS51では、データ変更要求に基づいて、変更の対象がノード接続関係を変更するものか否かを判定する。ノード接続関係を変更するものであればステップS52に進み、ノード接続関係を変更するものでなければステップS56に進む。
【0072】
ステップS52は、アイテムノードM1同士が直接接続されるのを禁止するためのノード接続可否判定手段124の処理である。すなわち、先ず、ステップS48にて取得した接続関係を変更し新たな接続を確立させようとするノードデータを読み出す。そして、読み出したノードが、アイテムノードデータ111同士か否かを判定する。アイテムノードデータ111同士であれば接続を禁止し(ステップS53−不可)、それ以外であれば接続可能と判定する(ステップS53−可能)。具体的には、受信した接続先であるノードのノード識別子がアイテムノードM1に付与されたものか否かによって、アイテムノードM1同士の直接接続となるのか判定している。なお、本実施の形態では、ノード識別子自体にアイテムノードM1かリンクノードM2かの判定ができるようにしているが、これに限ることなく、接続先であるノード識別子を持つノードデータの中に、アイテムノードデータ111とリンクノードデータ112を識別できるデータを持たせてもよい。
【0073】
ステップS53にて、アイテムノードM1同士が直接接続と判定すれば、ステップS10に進み、本ノード追加のデータ変更要求ができない旨をデータ操作結果として利用者端末装置2へ送信する。
【0074】
次に、ステップS54では、データ変更要求にしたがって、既存のアークデータ113の削除処理と、新規のアークデータ113の追加処理を行なう。すなわち、新たにアークデータ113を生成させるとき、データ変更手段123は、アーク識別子を自動生成するとともに、上流ノードのノード識別子、下流ノードのノード識別子、ラベルをデータ変更要求に従い記憶する。そして、ステップS55にて、関連するアイテムノードデータ111またはリンクノードデータ112における上流アークまたは下流アークから当該アーク識別子を削除または追加し、ステップS10に進む。
【0075】
ステップS51にて、変更の対象がノード接続関係を変更するものでないと判定した場合、ステップS56に進んでデータ変更要求がノードの削除要求か否かを判定する。ノードの削除要求であれば、ノードの削除に伴って不要となるアークデータ113を削除し(ステップS57)、削除対象のノードを削除するとともに削除に伴って影響を受けるノードの変更を行ない(ステップS58)、ステップS10に進む。
【0076】
また、ステップS56にて、ノードの削除が伴わない、つまりアークM3の削除と判定すると、データ変更要求に従ってアークデータ113を削除し(ステップS59)、かかるアークデータ113の削除の影響を受けるノードデータにおける上流アークまたは下流アークから当該アーク識別子を削除し(ステップS60)、ステップS10に進む。
【0077】
次に、図7〜図18を参照し、メール・日記・掲示板のサービスが使えるシステムでの具体的な実施例を説明する。メール・日記・掲示板のサービスが使えるシステムを構築するように依頼されたシステム構築者は、本情報蓄積共有システムを用いて、システムの枠組みを作る。具体的には、提供するサービスのメールや日記や掲示板のデータをアイテムノードM1のアイテムノードデータ111のアイテムの中に保存するときのデータ構造を決め、そのデータ構造に応じて利用者端末装置2にアイテムを表示させる参照画面や提供するサービスのメールや日記や掲示板のデータを新規追加、内容変更する場合の入力画面、ログイン画面、ログイン後に表示する画面などを含む各種操作画面を作る。また、各種操作画面からどのデータ操作要求をサーバ装置1に送信すればよいか、画面と処理を対応付ける。
【0078】
次に、構築されたシステムを運用し、利用者を新規登録するシステム管理者は、利用者を登録する毎に当該利用者にとってのホームとなるような画面のアイテムノードM1を用意する。図7は、システム構築者によってメール・日記・掲示板のサービスが使えるシステムが構築され、システム管理者によって利用者A/利用者B/利用者C・・・が登録され、利用者がログインするとホームからメールだけ利用できるがメールアイテムはまだ存在しない状態を説明する図である。また、図8は、図7におけるアイテムノードデータ111、リンクノードデータ112及びアークデータ113の例を示す。図9は、図7に対応して各ノードが利用者端末装置2に表示される画面の例である。以降の説明では、InはアイテムノードM1のノード識別子であり、LnはリンクノードM2のノード識別子、AnはアークM3のアーク識別子である。
本システムの起点は、I1のアイテムノードである。利用者は利用者端末装置2からこのI1へアクセスしてくる。このI1がログイン画面と連動し、I1のアイテムである利用者共有ホーム画像が表示される(図9の(a)を参照)。なお、I1の所有者識別子はSuperUserであり、システム管理者の利用者識別子となっている。起点のため、上流アークはない(以降、アイテムノードデータ111、リンクノードデータ112及びアークデータ113での$は何も記憶されていないことを表す)。
【0079】
さて、利用者が、ログインのボタン押下をすると利用者認証が行われ、利用者認証の結果を受けて、I1の下流アークのA1で接続するL1を経由して利用者毎に振り分けられ、利用者にとってのホームが表示される。図9(b)は利用者A(利用者識別子U0001)のログイン直後の画面、すなわちI2を表示した例であり、同様に、図9(c)は利用者B(利用者識別子U0002)のI3、図9(d)は利用者C(利用者識別子U0003)のI4を表示した画面である。なお、利用者認証で用いる利用者ID・パスワード等の利用者情報を利用者共有ホーム画像と共にI1のアイテムに保管してもよい。また、L1を経由するときに、アークのラベルの一覧からなる画面を表示し、利用者に「利用者A」「利用者B」「利用者C」・・・を選択させるようにしてもよい。図8のアイテムノードデータを参照すると、利用者にとってのホームであるI2、I3、I4にはそれぞれの利用者識別子が所有者識別子として格納されている。また、I2、I3、I4の上流アークには、L1が上流ノードであるアークのアーク識別子、A2、A3、A4がそれぞれ格納されている。そして、下流アークにはまずはメールを使えるように、ラベルが「メール」であるアークのA5、A6、A7によってそれぞれ接続されたリンクノードのL2、L3、L4が用意された状態になっている。次に、リンクノードデータを参照すると、L2、L3、L4のアクセス制御情報の管理権限、参照権限及びアイテムノード共有権限には、所有者識別子と同じ各利用者の利用者識別子が格納され、リンクノード変更権限は個々の利用者識別子でなく本システムの利用者全員の利用者識別子が指定されているのと同じ「全員」が格納されている。L2を用いて説明すると、L2は利用者Aしか参照することができないので、L2に接続されたアイテムノード(この場合はメールアイテム)は利用者Aしか参照できない。しかし、L2にアイテムノードを追加することは全員ができるので、利用者は誰でも利用者Aにメールを送信することができる。
【0080】
ここで、図10〜図12を参照し、具体的に、利用者Bから利用者Aへメールが送信される例を説明する。図10は図7からメール送受信で追加されたノードおよびアークの接続状態の変化を、図11は図8からの格納されるデータの変化を示したものである。図12は、図10に対応して各ノードが利用者端末装置2に表示される画面の例である。メールに関する操作画面としては、メールを作成・送信する「新規メール」の操作画面や、送受信したメールを参照する画面などが、データ操作要求と対応付けられてあらかじめ用意される。
利用者Bは、例えば、図9(c)のI3の表示画面又はI3の「メール」ラベルから表示したL3の表示画面の「新規メール」をクリックし、あらかじめシステム構築者によって用意された「新規メール」の操作画面から宛先・件名・本文などから構成されるメールを作成し、メールアイテムのI10を新規作成すると、L3からI10へのアークのA10が作成される。これは、L3を上流ノードに指定して新規ノードとしてI10を作成し追加するデータ操作要求、すなわち、データ変更要求の新規ノード追加の操作である。利用者BはL3に対して管理権限及びリンクノード変更権限を持つため、新規ノードであるI10及びA10が作られる。A10のアークだけが作られた状態は、送信者となる利用者Bの手元にのみメールアイテムがあるため、メールの下書き保存の状態となる。ここで、利用者Bが利用者Aへ「送信」を実際に行うと、L2からI10へのアークのA11が作られる。これは、宛先である利用者Aがラベル「メール」で参照するリンクノードであるL2を上流ノードに指定し、I10を下流ノードに指定した既存ノード同士を新たに接続するデータ操作要求、すなわち、データ変更要求のアーク追加の操作である。この一連の操作が、「新規メール」の操作画面に対応付けられている。利用者BはL2に対してリンクノード変更権限を持ち、I10に対しては上流アークのA10を介してL3のアクセス制御情報を参照して管理権限及びアイテムノード共有権限を持つため、L2からI10へのアークA11を作成し、I10の上流アークにA11を追加し、L2の下流アークにA11を追加することができる。
【0081】
さて、受信メールと送信メールを同じリンクノードから(例えば、L2やL3から)参照するのではなく、メール種別で振り分けを可能にする場合は、システム構築者が振り分け操作画面を用意しておき、利用者自身によって下流に新たなリンクノードを作り、振り分けるとよい。例えば、送信側の利用者Bが、送信メールのラベルをもつアークA12で接続するリンクノードのL5を新規作成し、L5の下流ノードからI10に接続するアークのA13を作るデータ操作要求を行うと、メール送信後にI10を送信メールに振り分けることになる。また、受信側の利用者Aが、受信メールのラベルをもつアークA14で接続するリンクノードのL6を新規作成し、L6の下流ノードからI10に接続するアークのA15を作るデータ操作要求を行うと、メール受信後にI10を受信メールに振り分けることになる。また、利用者BがI10を作成する前に、あらかじめL5とL6のリンクノードが用意されていれば、A10、A11の順でアークを作成してメール送受信した操作を、A13、A15の順でアークを作成して自動的に送信メールや受信メールに振り分けてメール送受信する操作に置き換えすることもできる。なお、L5のアクセス制御情報のリンクノード変更権限には利用者Bの利用者識別子U0002のみが格納されており、管理権限、参照権限及びアイテムノード共有権限も利用者Bの利用者識別子U0002のみのため、L5を参照できるのもL5の下流にノードを追加できるも利用者Bだけとなり、他の利用者が利用者Bの送信メールを見ることやメールを利用者Bの送信メールに振り分けることはできない。
【0082】
図12は、利用者Bから利用者Aにメールを送り、振り分けも行った状態の画面例であり、図12(a)は利用者AがL2を表示した画面の例で、A14の受信メールのラベルが表示されている。また、図12(b)は利用者BがL3を表示した画面の例で、A12の送信メールのラベルが表示されている。また、図中のメールアイテムをクリックすると、利用者Aにとっては受信メールとして、また、利用者Bにとっては送信メールとして、I10のアイテムがメール参照画面にて表示されてそれぞれメールの内容を読むことができる。
【0083】
次に、図13〜図15を参照し、利用者Aが日記を使えるように設定し、利用者Aが作成した日記を利用者B及び利用者Cが購読する例を説明する。図13は図7及び図10から日記で追加されたノードおよびアークの接続状態の変化を、図14は図8及び図11からの格納されるデータの変化を示したものである。図15は、図13に対応して各ノードが利用者端末装置2に表示される画面の例である。
利用者Aが日記を書くために、利用者AのホームのI2から「新規日記」をクリックし、「新規日記」の操作画面から、日記を使えるようにL20(A20)をつくり、更に、「新規アイテム」でI20(A21)に新しい日記の記事を作成する。すなわち、I2からL20、L20からI20という2回の新規ノードの追加のデータ変更要求のデータ操作要求が実行され、それぞれA20とA21のアークが追加される。
他の利用者は自身のホームの「新規日記」から公開されている日記のリンク一覧を参照し、既存ノードの利用者AのL20を下流ノードに指定することで、利用者BはI3からA22を、利用者CはI4からA23を作ることができる。すなわち、既存ノード同士の接続のデータ変更要求のデータ操作要求が実行される。このとき、利用者BはA22のラベルに「Aさんの日記」を、利用者CはA23のラベルに「購読日記」を付与している。このように同じL20へのアークであっても、リンクノードではなくアークにラベルをつけることによって、利用者が自由に次の参照先への意味を付加することができる。
ここで、図14のL20のアクセス制御情報を参照すると、参照権限は全員、リンクノード変更権限は利用者A、リンクノード共有権限は全員であり、利用者Aは日記を公開し、他の利用者のノードからL20へのアークの追加を許可している。また、参照権限があるので、利用者B及び利用者Cは、L20の下流アークのA21で接続されたI20を参照することができる。しかし、L20のリンクノード変更権限は利用者Aのみのため、新たな日記投稿は、利用者Aのみが実行可能になる。そして、新たな日記投稿はL20を上流ノードに指定した新規ノードの追加操作になる。L20の下流アークで接続される投稿した日記を修正したい場合は、アイテムノードを指定したアーク接続を伴わないデータ変更要求が対応付けられた修正画面から利用者Aのみが実行可能である。
【0084】
図15は、利用者Aが作成した日記を利用者B、利用者Cが参照可能になった状態の画面例の例である。図15(a)は、利用者Aの画面遷移の例である。利用者AのホームであるI2の表示画面からA20のラベルの「日記」をクリックすると、L20が表示され、ここで、A21で接続された「記事1」のアイテムを選ぶと、I20の表示画面で利用者Aが作成した日記を読むことができる。図15(b)は利用者BがホームであるI3から、図15(c)は利用者CがホームであるI4から、L20を表示させた場合の画面の例である。L20という同じリンクノードであっても、どのノードから参照してきたかによって画面の表示内容は変わる。また、利用者B及び利用者Cは、L20に対して参照権限しかないため、利用者AがL20を表示している画面にはある「新規アイテム」という新規に日記を作成するための操作画面を選択するボタンは用意されていない。
【0085】
次に、図16〜図17を参照し、利用者Aが掲示板を使えるように設定し、利用者Aが用意した掲示板を、利用者Bや利用者Cが利用し、コメントする例を説明する。図16は図7、図10及び図13から掲示板で追加されたノードおよびアークの接続状態の変化を、図17は図8、図11及び図14からの格納されるデータの変化を示したものである。図18は、図16に対応して各ノードが利用者端末装置2に表示される画面の例である。
利用者Aは掲示版を開設するため、利用者AのホームのI2から「新規掲示板」をクリックし、「新規掲示板」の操作画面から、掲示板を作る(L30,A30)。そして、「新規アイテム」をクリックし、「新規アイテム」の操作画面から、話題(話題1)を提供する(I30,A31)。また、話題1へのコメントを受け付けられるようにする(L31、A32)。すなわち、I2からL30、L30からI30という3回の新規ノードの追加のデータ変更要求のデータ操作要求が実行され、それぞれA30、A31及びA32のアークが追加される。
利用者Bは、自身のホームノードであるI3の「新規掲示板」をクリックし、「新規掲示板」の操作画面から、公開されている利用者Aが用意した掲示板を読めるようにする。すなわち、既存ノード同士の新たな接続関係を追加するデータ変更要求のデータ操作要求で、I3からL30へ、ラベル「Aさんの掲示板」のA33を生成する。同様に、利用者Cも利用者Aが用意した掲示板を読めるように、I4からL30へ、ラベル「お気に入り掲示板」のA34を生成する。
ここで、図17のL30のアクセス制御情報を参照すると、管理権限は利用者A、参照権限・リンクノード変更権限・リンクノード共有権限は全員、アイテムノード共有権限は利用者Aであり、利用者Aは掲示板を公開し、他の利用者のノードからL30へのアークの追加することや新たなノードの作成すること(ここでは、話題の提供)を許可している。また、参照権限があるので、他の利用者もL30の下流アークのA31で接続されたI30の話題1を参照することができる。また、L31のアクセス制御情報を参照すると、管理権限は利用者A、参照権限・リンクノード変更権限は全員、リンクノード共有権限・アイテムノード共有権限は利用者Aであり、利用者Aは話題1に対してコメント受付の準備を行え(A32を生成)、他の利用者には新たなノードの作成すること(ここでは、コメントの投稿)を許可している。また、参照権限があるので、他の利用者もL31の下流アークで接続されたコメントを参照することができる。
利用者Bが話題1に対してコメント1を投稿し(L31からI31、A35)。利用者Cも話題1に対してコメント2を投稿する(L31からI32、A36)。このように、利用者B及び利用者Cは、新たに話題を提供したり、コメントを投稿したり、自身が投稿した記事やコメントを変更したりすることができる。これらは、L30又はL31に対しての新規ノードの追加のデータ変更要求のデータ操作要求、自身が作成して所有権限をもつアイテムの変更のデータ変更要求のデータ操作要求が実行されることで実現される。なお、利用者Aは、L30及びL31に管理権限を持つため、管理者として全ての投稿の変更ができる。
【0086】
図18は、利用者Aが開設した掲示板を利用者B、利用者Cが利用する状態の画面例の例である。図18(a)は、利用者Aの画面遷移の例である。利用者AのホームであるI2の表示画面からA30のラベルの「掲示版」をクリックすると、L30の画面が表示され、ここで、A31で接続された「話題1」のアイテムを選ぶと、I30の表示画面で利用者Aが提供した話題である「話題1」を読むことができる。また、A32で接続された「コメント」を選ぶと、L31の画面が表示され、投稿されたコメントの一覧を見ることができる。図18(b)は、利用者Bの画面遷移の例である。利用者BのホームであるI3の表示画面からA33のラベルの「掲示版」をクリックすると、L30の画面が表示され、ここで、A31で接続された「話題1」のアイテムを選ぶと、I30の表示画面で利用者Aが提供した話題である「話題1」を読むことができる。ここで、「新規コメント」をクリックして話題1に対してコメント1を投稿すると(L31からI31、A35)、生成されたI31の表示画面で利用者Bが投稿したコメント1の内容を読むことができる。
【符号の説明】
【0087】
1・・・サーバ装置
11・・・記憶部
111・・・アイテムノードデータ
112・・・リンクノードデータ
113・・・アークデータ
12・・・制御部
121・・・データ入出力手段
122・・・データ参照手段
123・・・データ変更手段
124・・・ノード接続可否判定手段
125・・・権限判定手段
13・・・通信インタフェース(I/F)部
2・・・利用者端末装置
3・・・ネットワーク
【特許請求の範囲】
【請求項1】
上流アーク及び下流アークの両方または何れか一方の識別子と蓄積対象のアイテム情報からなるアイテムノードと、上流アーク及び下流アークの両方または何れか一方の識別子からなるリンクノードと、上流及び下流の前記アイテムノード又は前記リンクノードの識別子からなるアークとから構成されるデータ構造を記憶している記憶部と、
前記記憶部のデータ構造を用いて情報の蓄積を行う制御部を有してなるグラフモデルを用いた情報蓄積装置であって、
前記制御部は、
前記アイテムノードまたは前記リンクノードへのデータ操作要求を受け付け、前記アークの生成を伴うデータ変更要求であるか否かを識別する入出力手段と、
前記アークの生成を伴うデータ変更要求であれば、変更後の前記アークの上流側と下流側が共にアイテムノードであるか否か判定するノード接続可否判定手段と、
前記上流側及び下流側が共にアイテムノードであれば当該データ変更を禁止し、前記上流側と下流側の何れか又は両方がアイテムノードでなければ当該データ変更を実行する変更手段と、
を有することを特徴とした情報蓄積装置。
【請求項2】
前記データ構造における前記アークは、更に当該アークの属性を示すラベル情報を含み、
前記制御部は、前記入出力手段から前記アイテムノード又は前記リンクノードへの参照要求を受けると、当該アイテムノード又は当該リンクノードに接続されているアークのラベル情報を含む結果情報を出力する参照手段を更に有することを特徴とした請求項1に記載の情報蓄積装置。
【請求項3】
前記リンクノードは、更に当該リンクノード及び当該リンクノードの下流アークで接続するアイテムノードへのアクセス制御情報を含み、
前記制御部は、
更に、前記アクセス制御情報を用いて前記リンクノード及び前記アイテムノードへの操作権限を判定する権限判定手段を有し、
前記入出力手段から前記アイテムノード又は前記リンクノードへのデータ操作要求を受けると、当該アイテムノード又は当該リンクノードの前記アクセス制御情報についての操作権限の判定に従ってデータ操作の処理を実行することを特徴とする請求項1または請求項2に記載の情報蓄積装置。
【請求項1】
上流アーク及び下流アークの両方または何れか一方の識別子と蓄積対象のアイテム情報からなるアイテムノードと、上流アーク及び下流アークの両方または何れか一方の識別子からなるリンクノードと、上流及び下流の前記アイテムノード又は前記リンクノードの識別子からなるアークとから構成されるデータ構造を記憶している記憶部と、
前記記憶部のデータ構造を用いて情報の蓄積を行う制御部を有してなるグラフモデルを用いた情報蓄積装置であって、
前記制御部は、
前記アイテムノードまたは前記リンクノードへのデータ操作要求を受け付け、前記アークの生成を伴うデータ変更要求であるか否かを識別する入出力手段と、
前記アークの生成を伴うデータ変更要求であれば、変更後の前記アークの上流側と下流側が共にアイテムノードであるか否か判定するノード接続可否判定手段と、
前記上流側及び下流側が共にアイテムノードであれば当該データ変更を禁止し、前記上流側と下流側の何れか又は両方がアイテムノードでなければ当該データ変更を実行する変更手段と、
を有することを特徴とした情報蓄積装置。
【請求項2】
前記データ構造における前記アークは、更に当該アークの属性を示すラベル情報を含み、
前記制御部は、前記入出力手段から前記アイテムノード又は前記リンクノードへの参照要求を受けると、当該アイテムノード又は当該リンクノードに接続されているアークのラベル情報を含む結果情報を出力する参照手段を更に有することを特徴とした請求項1に記載の情報蓄積装置。
【請求項3】
前記リンクノードは、更に当該リンクノード及び当該リンクノードの下流アークで接続するアイテムノードへのアクセス制御情報を含み、
前記制御部は、
更に、前記アクセス制御情報を用いて前記リンクノード及び前記アイテムノードへの操作権限を判定する権限判定手段を有し、
前記入出力手段から前記アイテムノード又は前記リンクノードへのデータ操作要求を受けると、当該アイテムノード又は当該リンクノードの前記アクセス制御情報についての操作権限の判定に従ってデータ操作の処理を実行することを特徴とする請求項1または請求項2に記載の情報蓄積装置。
【図8】
【図11】
【図14】
【図17】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図9】
【図10】
【図12】
【図13】
【図15】
【図16】
【図18】
【図11】
【図14】
【図17】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図9】
【図10】
【図12】
【図13】
【図15】
【図16】
【図18】
【公開番号】特開2012−181740(P2012−181740A)
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願番号】特願2011−45093(P2011−45093)
【出願日】平成23年3月2日(2011.3.2)
【出願人】(000108085)セコム株式会社 (596)
【Fターム(参考)】
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願日】平成23年3月2日(2011.3.2)
【出願人】(000108085)セコム株式会社 (596)
【Fターム(参考)】
[ Back to top ]