JP2002528821A - 共用ファイル環境用の改良された情報格納および検索システムを有する物理格納アーキテクチャのための方法および装置 - Google Patents

共用ファイル環境用の改良された情報格納および検索システムを有する物理格納アーキテクチャのための方法および装置

Info

Publication number
JP2002528821A
JP2002528821A JP2000578750A JP2000578750A JP2002528821A JP 2002528821 A JP2002528821 A JP 2002528821A JP 2000578750 A JP2000578750 A JP 2000578750A JP 2000578750 A JP2000578750 A JP 2000578750A JP 2002528821 A JP2002528821 A JP 2002528821A
Authority
JP
Japan
Prior art keywords
data
user
partition
column
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000578750A
Other languages
English (en)
Inventor
スコット ウラスチン,
Original Assignee
エンフィッシュ テクノロジー, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/128,922 external-priority patent/US6182121B1/en
Application filed by エンフィッシュ テクノロジー, インコーポレイテッド filed Critical エンフィッシュ テクノロジー, インコーポレイテッド
Publication of JP2002528821A publication Critical patent/JP2002528821A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 分散型格納システムは、必ずしも互いに接続され得ない複数の物理的格納デバイスを通じてデータアイテムの格納、検索、およびデータ共有を行う装置および方法を提供する。本発明は、別個の格納デバイス上に1つ以上の「パーティション」を含み、各パーティションは、関連付けられたデータファイルのグループを含む。多様な種類のパーティションがあり得、多様なクライアントのパーティションが、統合ファイルまたは別のパーティション中に常駐するファイルに様々な時期に結合され得る。本システムは、2つ以上のクライアント間のコンフリクトを解消して、更新情報が少しでもあれば、どの更新情報をライブラリパーティション中に格納するのか判定する。本発明のこの柔軟かつ自己参照型の表は、あらゆる種類の(構造化および非構造化の両方の)データを格納し得、他のアプリケーションプログラムへのインターフェースを提供し得る。

Description

【発明の詳細な説明】
【0001】 (発明の背景) 1.発明の分野 本発明は、概して様々な種類のデータを格納し、検索し、そして配信する方法
および装置に関する。より詳細には、本発明は、共有ファイル環境用の物理格納
アーキテクチャおよびこのようなアーキテクチャを用いる方法に関する。
【0002】 2.技術背景 ここ30年にわたって、情報を格納し、管理する際に、コンピュータはますま
す重要となってきている。このことによりコンピュータネットワークを介した電
子メールおよびドキュメントのようなデータの広範な共有および通信に至る。デ
ータの共有を支援するために、ユーザがサーバ上でファイルにアクセスすること
を可能にするクライアント−サーバアーキテクチャが、ますます当たり前となり
つつある。特に、複数のユーザが1つのサーバまたは複数のサーバに存在する同
じデータベースにアクセスできるようにすることが当たり前となりつつある。
【0003】 多くの現在のデータベースアーキテクチャは、1つのデータファイルのセット
への連続的なアクセス用に設計されている。1つのファイルのセットは、クライ
アント−サーバネットワークにおけるように直接的にまたは間接的に共有され得
る。複数の物理的サイトにいるユーザが異なるクライアントコンピュータにおい
て同じデータに同時アクセスすることを必要とする場合、このアプローチではい
くつかの困難に遭遇する。
【0004】 同時アクセスに関する問題に対する3つの共通したアプローチがある。第1の
アプローチによれば、すべてのユーザが、1つのサイト(典型的にはコンピュー
タメインフレーム)にアクセスしなければならない。第2のアプローチによれば
、各サイトは他のサイトにおいてデータの正確なコピーを有しており、すべての
データのコピーは、2段階コミットのようなアルゴリズムを用いてリアルタイム
で同期化された状態となる。第3の方法によれば、各サイトが他のサイトにおい
てデータのコピーを有し、コピーは必ずしも同じである必要はなく、コピーの同
期化はある一定間隔で行わなければならないことになっている。このことは、同
期複製として公知である。
【0005】 現在のデータベースアーキテクチャは、すべてのデータファイルへの連続アク
セス用に設計されており、従って、メインフレームおよび2段階コミットアプロ
ーチとともにうまく機能する。しかし連続アクセスが保証されない状況の場合、
これらのアプローチに従うシステムオペレーティングは、適切に機能しない。
【0006】 デスクトップの情報管理用に設計されたクライアント−サーバシステムおよび
ローカルエリアネットワークは、上述した最初の2つのアプローチのうち1つを
一様に用いる。これらのアプローチは、サーバにアンバランスな負荷をもたらし
、典型的にはリモートサーバ上で共有ファイルのロックを必要とする傾向がある
。このことがパフォーマンスのさらなる妨げとなる。さらに、サーバ上に存在す
るファイルは、典型的にはクライアントへの接続を必要とし、従ってこのような
接続なしでは更新は起こり得ない。最初の2つのアプローチはまた、更新がリア
ルタイムに同期化されなければならないので、更新に対して比較的遅くなりがち
である。
【0007】 本発明は、同期複製の利点と中央データへの直接アクセスの必要性とを組合せ
た柔軟な、効率的な、および高速物理格納システムを提供することによって、従
来技術による制限を克服する。ユーザがハードドライブ、CD−ROM、および
WORMドライブ等の異なる格納媒体を介して、ネットワーク上でファイルを共
有することを可能とするファイルシステムとして用いられるように設計されてい
る。
【0008】 現在の物理格納システムは、上述したように同期化の問題以外の制限を受けて
いる。物理格納システムは、アプリケーションがこのようなデータへのアクセス
を必要とするときまで、データベースレコード等のデータアイテムを不揮発性メ
モリに格納しなければならない。このプロセスは典型的には、データアイテムの
コンテンツの「フラット化」工程、およびフラット化したコンテンツを格納媒体
に書き込む工程とを含む。格納媒体は概して固定サイズブロックに分割され、そ
の固定サイズブロックの各々が1つの位置を有する。
【0009】 従来技術による格納システムによれば、このようなシステムの設計を容易にし
得る2つの制限がある。第1の制限は、各データアイテムが固定長であるという
ことである。第2の制限は、各データアイテムの最新のバージョンのみが格納さ
れる必要があるということである。従来技術の格納システムは、一般にこれらの
制限のうちの一方または両方により作動する。典型的な格納システムでは、デー
タアイテムを保存するに十分な大きさのメモリブロックを見つけ、次いでそのブ
ロックに書き込む。アイテムが消去されると、そのブロック内の他のアイテムが
再編成され、スペースの最大容量を解放し、他のデータアイテムが使用可能な状
態にする。新しいデータアイテム用の十分なスペースを有するブロックが存在し
ない場合にのみ、新しいブロックが生成される。
【0010】 従来技術によるアプローチは多くの欠点を有する。従来技術によるシステムで
は、可変長のデータを容易には支援せず、前のバージョンのデータアイテムは利
用できないため、ユーザは「アンドゥ」機能を利用できない。さらに、従来技術
による方法では、追記型(WORM)ディスク等の追加オンリ媒体と共に用いる
ことができない。
【0011】 記載されるように、本発明は、より古いバージョンのデータアイテムを消去す
ることなく、比較的最小のディスクスペースを占めつつ可変長のデータアイテム
を容易に支援するシステムによって、従来技術による格納システムの制限を克服
する。
【0012】 多くのデータベースは、ユーザが情報を格納し、且つ操作して、所望の情報を
サーチすることを可能にするように開発されてきた。情報産業の留まることのな
い成長により、より強力なデータベースに対する要求を生み出す。
【0013】 データベースプロダクトは、長い間にわたって発展してきた。最初にデータベ
ースは、インデックスに関連付けられた簡単な「フラットファイル」を含んでい
た。データベースプログラム自身とは対照的なアプリケーションプログラムは、
これらのファイル間の関連性を管理し、ユーザは典型的には、アプリケーション
プログラムレベルでクエリを完全に実行していた。リレーショナルデータベース
システムの導入によりアプリケーションプログラムからデータベースプログラム
へと多くのタスクがシフトした。現在既存のデータベース管理システムは、2つ
の主な種類(これらはリレーショナルモデルに従い、オブジェクト指向モデルに
従う)を含む。
【0014】 リレーショナルモデルでは、データの規格化等のデータアイテムを編成するい
くつかのルールおよびガイドラインを設定する。リレーショナルデータベース管
理システム(RDBMS)は、これらのルールに従うシステムである。RDBM
Sデータベースは、各データアイテムが「リレーション」の特定のインスタンス
として独自に分類されることを必要とする。リレーションの各セットが、別々の
「テーブル」を表す。テーブルの各ロウは、特定のデータアイテムを表し、各カ
ラムはそのテーブルのすべてのデータアイテムにわたって共有される属性を表す
【0015】 純粋なリレーショナルモデルは、データアイテムについていくつかの制限を設
ける。例えば、各データアイテムは、テーブルに関して記載したこれらのカラム
以外の属性を有することはできない。さらに、アイテムは、直接他のアイテムに
対応できない。その代わりに、「一次キー」(独自の識別子)を用いて、他のア
イテムを参照しなければならない。典型的に、これらの制限によりRDBMSデ
ータベースは、サーチするために比較的膨大な時間を必要とする多くのテーブル
を含むようになる。さらに、テーブル数によって大部分のコンピュータメモリが
占められる。
【0016】 オブジェクト指向プログラミングモデルから得られるオブジェクト指向データ
ベースモデルは、リレーショナルモデルの代替となる。リレーショナルモデルの
ように、各データアイテムは、データアイテムの属性を規定する1つのクラスに
属するように独自に分類されなければならない。オブジェクト指向モデルのキー
の特徴は以下である:1)各アイテムが正確な検索に用いられ得る独自のシステ
ム発生オブジェクト識別子番号を有する、2)異なるタイプのデータアイテムが
共に格納され得る、そして3)予め規定された機能または挙動がデータアイテム
と共に作られ、格納され得る。
【0017】 上述した制限のほかに、リレーショナルモデルおよびオブジェクト指向モデル
の両方は、データ構造およびサーチに関して重要な制限を共有している。両方の
モデルは、規定されたフィールド構造に従って入力されるデータを必要とし、従
って全テキストデータエントリを完全には支持しない。いくつかのデータベース
は、レコードがテキストフィールドを含むことを可能にするが、このようなテキ
ストフィールドのサーチは容易でない。現在のデータベースの構造要件は、構造
を予め規定するためにプログラマーを必要とし、その次のデータエントリがその
構造に一致しなければならない。データベースに入力されるデータの構造を決定
することが難しい場合には、このことは役に立たない。
【0018】 逆に、構造化されていないデータエントリを可能にするワードプロセッサおよ
びイメージプロセッサは、効率的なデータ検索メカニズムを提供せず、データを
検索するために別個のテキスト検索またはデータ管理ツールを必要とする。従っ
て、現在の情報管理システムは、全テキストまたはグラフィックスデータエント
リをデータベースのサーチメカニズムと統合する能力を提供しない。
【0019】 ワードプロセッサのような他のプログラムからのデータベースの分離により、
現在のデータベースと統合することができない多くのテキストおよび他のファイ
ルを作り出す。様々なデータベース、表計算、画像、ワードプロセッシング、電
子メール、および他のタイプのファイルは、この情報のすべてを含む1つのデー
タベース内では現在アクセスすることができない。様々なプログラムは、表計算
、ワードプロセッシング、およびデータベースプログラム間に統合を提供するが
、上述したように現在のデータベースは、構造化されていないファイル内の効果
的なサーチを支援しない。
【0020】 本発明は、増大した柔軟性、高速サーチ回数、およびより少ないメモリ要件を
有するデータベースを提供することによって、リレーショナルデータベースモデ
ルおよびオブジェクト指向データベースモデルの両方の制限を克服し、テキスト
の属性を支援する。さらに、本発明のデータベースでは、ユーザがデータエント
リを適合させなければならない構造を予め構成するためのプログラマーを必要と
しない。多くのアルゴリズムおよび技術が、これらの種類の情報を処理するアプ
リケーションによって必要とされる。本発明は、以下に記載するように1つのデ
ータベースエンジンへと統合し、これらの技術を支援する。そしてアプリケーシ
ョンからデータベースへとプログラミングをシフトさせる。本発明はまた、他の
データベース、表計算、ワードプロセッシングプログラム等の様々なタイプのア
プリケーションプログラム下で開発された既存のソースファイルの1つのデータ
ベースへの統合を提供する。さらに、本発明によりユーザは、集中データの保管
場所のセキュリティの必要性を犠牲にすることなく、それらに関連するデータの
すべてを制御することができる。
【0021】 (発明の要旨) 本発明の分散型格納システムは、必ずしも互いに接続される必要のない複数の
物理格納デバイスを介してデータアイテムを格納し、検索し、そして共有する方
法および装置を提供する。
【0022】 本発明の分散型格納システムは、異なる格納デバイス上に1つ以上の「パーテ
ィション」を含み、各パーティションは、データアイテムの集合を順に含む関連
付けられたデータファイルの群を含み、データファイルの各々が個々にアクセス
され得る。パーティションには様々なタイプがあり得る。ジャーナルパーティシ
ョンは、ユーザが書き込むことが可能であり、共有されたデータアイテムへのユ
ーザの更新を含む。好適な実施形態において、ジャーナルパーティションは、ク
ライアント−サーバアーキテクチャにおいてクライアントコンピュータに関連付
けられた格納デバイスに存在する。他のタイプのパーティション、ライブラリパ
ーティション、およびアーカイブパーティションは、クライアント−サーバアー
キテクチャにおいてサーバコンピュータに関連付けられた格納デバイスに存在し
得る。
【0023】 様々なクライアントのジャーナルパーティション上のデータアイテムは、様々
な時に、新しく統合されたパーティション内に存在するデータアイテムへ結合さ
れ得る。2つ以上のクライアントが同じデータアイテムに関連するデータを更新
または変更しようとする場合、システムはクライアント間でコンフリクトを解決
し、更新があったとしても、どの更新が統合されたパーティションに格納される
べきかを判定する。結合オペレーションは、様々な時間間隔で生じ得るか、また
はイベント駆動型であり得る。他の様々な時に、統合されたパーティションは、
任意にライブラリパーティションへ結合され得、ライブラリパーティションは、
共有されたバージョンのデータアイテムを保存する。アーカイブパーティション
は、ライブラリパーティションからより古いバージョンのデータアイテムを格納
する。
【0024】 複数のジャーナルパーティションは、同じライブラリパーティションおよびア
ーカイブパーティションを共有することができ、このことは、ジャーナルパーテ
ィション内のデータアイテムが、他のジャーナル内のデータアイテムまたは共有
されたデータアイテムに関係のないローカルバージョンのデータアイテムを有す
ることを可能にしつつ、共有されているライブラリパーティションおよびアーカ
イブパーティション内のデータアイテムを提供する手段を提供する。
【0025】 好適な実施形態において、本発明のジャーナルパーティションは、物理メモリ
に連続して書き込まれる一連のオブジェクトを含む。ジャーナルパーティション
は、ユーザが変更されたデータを検索できるようにより古いバージョンのオブジ
ェクトを格納する。そのオブジェクトは、データベースまたはテキストファイル
内のレコードのようなデータアイテムに対応する。ジャーナルパーティション内
のオブジェクトの位置を追跡するために、テーブルが格納される。
【0026】 本発明は、データを格納するための柔軟かつ自己指示型テーブルを使用するこ
とによって、従来技術による情報サーチおよび検索システムを改良する。本発明
のテーブルは、構造化したデータおよび構造化されていないデータの両方の任意
のタイプのデータを格納することができ、他のアプリケーションプログラム(例
えばワードプロセッサ)へのインターフェースを提供し、このようなアプリケー
ションプログラムに関するすべてのデータの1つのデータベースへの統合を可能
にする。本発明はまた、ハイパーテキストを含むほかの様々な特徴を支援する。
【0027】 本発明のテーブルは、複数のロウおよびカラムを含む。各ロウは、オブジェク
ト識別番号(OID)を有し、各カラムもまたOIDを有する。ロウはレコード
に対応し、カラムは属性に対応し、それによりロウとカラムとの交差する点が、
特定の属性に関連する特定のレコードについてのデータを含み得るセルを含むこ
とになる。セルはまた、他のレコードに対応し得る。サーチの機能を高め、カラ
ム間の同期化を提供するために、カラムの定義がテーブル内のロウとして入力さ
れ、カラムに対応するレコードが、カラムに関する様々な情報を含む。これによ
り自己指示型テーブルが与えられ、本明細書中で記載されるように多くの利点を
提供する。
【0028】 本発明は、高速サーチを可能にするインデックス構造を含む。各セルからのテ
キストがキーワードインデックス内に格納され、キーワードインデックスそれ自
身がテーブル内に格納される。テキストセルは、キーワードインデックス内のエ
ントリへのポインタを含み、キーワードインデックスはセルへのポインタを含む
。この2方向の関連性により拡張されたクエリが提供される。本発明はさらに、
このような拡張されたクエリについて重要度およびフィルタを含む。
【0029】 本発明は、インデックス付けされたサーチの機能を高めるシソーラスおよび知
識ベースを含む。シソーラスはテーブル内に格納され、ユーザがシノニムおよび
概念を検索することを可能にし、また検索されたレコードの関連性をランク付け
する重み付けメカニズムを提供する。
【0030】 アプリケーション支援レイヤーは、ワードプロセッサ、パスワードシステム、
ハイパーテキスト、および他の機能を含む。本発明の新規なワードプロセッサは
、セルがワードプロセッサを用いて編集可能となるように、本発明のテーブルと
統合される。さらに、テーブルは外部ドキュメントとインターフェースをとるこ
とができ、これによりユーザは、本発明の機能強化した検索システムに従って外
部ドキュメントからデータを検索できる。
【0031】 本発明のこれらおよび他の特徴ならびに利点は、次に続く詳細な説明および添
付の図面からさらに明らかとなる。図面および説明において、数字は本発明の様
々な特徴を示す。図面および説明の双方にわたって同様の数字は同様の特徴を指
す。
【0032】 (表記法および専門用語) 以下の詳細な説明は、主としてコンピュータメモリ内のデータビット上の動作
のアルゴリズムおよび記号表現に関して示される。これらの説明および表現は、
データ処理分野の当業者によって用いられる手段であって、これにより彼らの仕
事の実質を他の当業者に最も効率的に伝える。
【0033】 ここでアルゴリズムは概して、所望の結果を導く首尾一貫した連続工程である
と考えられる。これらの工程は、物理量の物理的操作を必要とする。通常、必ず
しも必要ではないが、これらの物理量は、格納、転送、結合、比較、その他操作
可能な電気的信号または磁気的信号の形になる。これらの信号をビット、値、要
素、記号、文字、ターム、数字等と呼ぶことは、主に共通の用法であるため時に
都合がよいと分かる。しかし、これらすべておよび同様の用語は、適切な物理量
に関連付けられ、これらの物理量に付けられた単なる便利なラベルにすぎないこ
とを心に留めておくべきである。
【0034】 さらに、行われる操作は、通常人間のオペレータが行う精神的操作(ment
al operation)に関連付けられた例えば追加または比較を明確に指
す場合がある。人間のオペレータのこのような能力は必ずしも必要ではなく、ま
たは多くの場合にはこのことが好ましくもあり、本明細書中に記載される本発明
の一部をなす動作のいずれにおいても、その動作は機械操作である。本発明の動
作を行う有効な機械には、多目的デジタルコンピュータまたは他の同様のデジタ
ルデバイスがある。すべての場合において、コンピュータを動作させる際の動作
方法と計算そのものを行う方法との間の違いを心に留めておくべきである。本発
明は、電気的信号または他の(例えば機械的、化学的)物理的信号を処理して、
他の所望の物理的信号を生成する際のコンピュータを動作する方法の工程に関す
る。
【0035】 本発明はまた、これらの動作を行う装置に関する。この装置は、特に必要とさ
れる目的に対して構成され得るか、またはコンピュータに格納されたコンピュー
タプログラムによって、選択的に起動または再構成するような多目的コンピュー
タを含み得る。本明細書中で示されるアルゴリズムは、本来特定のコンピュータ
または他の装置には関連しない。特に、様々な多目的機械は、本明細書中の教示
内容に従って書かれたプログラムとともに用いられ得るか、または必要な方法工
程を行うためにより特化された装置を構成することがより都合がよいと分かり得
る。これらの様々な機械に関して必要な構造は、以下の説明より明らかとなる。
【0036】 本明細書中で参照されるデータアイテムは、ユーザがアクセスを望み得る個別
のデータ要素に対応する。例えば、データアイテムは、データベースの特定のレ
コードまたはデータベースのレコード内の特定のフィールドを含み得る。データ
アイテムは、ワードプロセッシングファイルまたは任意の他のタイプのファイル
を含み得る。本明細書中で参照されるデータオブジェクトは、データアイテムの
バージョンを格納する。同じデータアイテムの異なるバージョンが、異なるデー
タオブジェクトに格納され得る。例えば、テキストファイルの元のバージョンお
よび更新されたバージョンが、2つの異なるデータオブジェクトに格納され、こ
れら2つの異なるデータオブジェクトの各々が、同じデータアイテム、すなわち
実際のテキストファイルに対応する。
【0037】 ドメインは、特定のデータアイテムのタイプについて記載し、「Method
and Apparatus for Improved Informat
ion Storage and Retrieval System」と称さ
れる1995年2月3日に出願された第08/383,752号の同時係属出願
において、用語法とともに一貫して用いられる。従って、例えば特定のデータア
イテムは、テキスト、数字またはブーリアンドメイン、あるいはユーザ定義のド
メインであり得る。
【0038】 (発明の詳細な説明) 本発明は、データを格納、操作、および検索する方法および装置を開示する。
本発明は、特定のブロック図およびテーブルエントリ等を参照して記載されるが
、当業者であれば、本明細書のより徹底的な理解を提供するために、このような
詳細が簡単に開示されていることを理解する。従って、当業者にとって本発明は
、これらの特定の詳細を用いることなく実行可能であることが明らかである。
【0039】 さらに、「分かる(know)」、「確認する(verify)」、「格納す
る(store)」、「見つける(find)」、「置き換える(replac
e)」、「調べる(examine)」、「判定する(determine)」
等の特定の用語が本明細書中で使用され得、これらは当該分野の用語であるとみ
なされる。一時的な読者にとってコンピュータまたは電子システムの擬人化と思
われ得るこれらの用語の使用は、簡単にするために人間のような属性を有するよ
うなシステムの機能を指す。例えば、本明細書中で何かを「判定する」電子シス
テムまたはコンピュータプログラムを参照することは、電子システムがプログラ
ムされるかまたはそうでない場合には本明細書の教示内容に従って改変されると
いうことを記述する単なる簡略化した(shorthand)方法である。読者
は、日常の人間の属性について記述される機能を混同しないように注意を受ける
。これらの機能は、すべての意味において機械の機能である。
【0040】 (ローカルシステムハードウェア) 図1を参照して、本発明のハードウェアコンフィギュレーションを概念的に示
す。図1は、本発明の教示内容に従って構成された情報格納および検索システム
を示す。示されるように、情報格納および検索システムは、4つの主なコンポー
ネントを備えるコンピュータ23を含む。これらのコンポーネントのうち第1は
、入力/出力(I/O)回路22であり、この入力/出力(I/O)回路22を
用いてコンピュータ23の他の部分へおよび他の部分から情報を適切に構造化さ
れた形式で通信する。さらに、コンピュータ23は、I/O回路22およびメモ
リ26に接続された中央演算処理装置(CPU)24を含む。これらの要素は、
典型的にたいていのコンピュータ内で見つけられ、実際コンピュータ23はデー
タ処理デバイスの広いカテゴリを表すように意図されている。
【0041】 また図1にはI/O回路22を介してコンピュータ23へデータおよびコマン
ドを入力する周知のキーボード30が示されている。同様に、図1に示されるシ
ステムにさらなるプログラミング能力を設けるように、CD ROM34がI/
O回路22に接続される。磁気テープドライブ、バッファメモリデバイス等のデ
ータ格納をするためのさらなるデバイスがコンピュータ23に接続され得ること
が理解される。デバイスコントロール36は、メモリ26およびI/O回路22
の両方に接続され、コンピュータ23がマルチメディアシステムリソースと通信
することを可能にする。デバイスコントロール36は、マルチメディアリソース
の動作を制御して、マルチメディアリソースとコンピュータ23とのインターフ
ェースをとる。
【0042】 ディスプレイモニタ43は、I/O回路22を介してコンピュータ20に接続
される。カーソルコントロールデバイス45は、本発明の教示内容に従ってCP
U24のための信号によるスイッチ47および49を含む。カーソルコントロー
ルデバイス45(通常「マウス」と呼ばれる)は、ユーザが様々なコマンドモー
ドを選択し、グラフィックデータを改変し、スイッチ47および49を用いて他
のデータを入力することを可能にする。より詳細には、カーソルコントロールデ
バイス45は、ユーザがディスプレイ43の表示画面37上の任意の所望の位置
にカーソル39を選択的に位置付けることを可能にする。カーソルコントロール
デバイス45およびキーボード30は、本発明の教示内容に従って利用され得る
様々な入力デバイスの例であることが理解される。他の入力デバイス(例えば、
トラックボール、タッチスクリーン、データグローブ、または他の仮想現実デバ
イスを含む)もまた、本明細書中で開示されるように本発明とともに用いられ得
る。
【0043】 (システム構造) 本発明は2つのメインコンポーネントを含む。第1のコンポーネントは、二人
以上のユーザが共通のファイルへのアクセスを可能にする分散型ファイルアーキ
テクチャである。第2のコンポーネントは、可変長のデータアイテムを支援し、
前のバージョンのデータアイテムを維持するローカルコンピュータ23内の物理
格納システムである。本明細書では次にこれらのコンポーネントについて述べる
【0044】 (分散型アーキテクチャ) 図2は本発明の物理格納アーキテクチャの概観を示す。示されるように、一般
にクライアントとして公知のコンピュータ23は、一般にサーバとして公知のリ
モートコンピュータ56と通信する。リモートコンピュータ56は、コンピュー
タ23および他のコンピュータがアクセス可能なデータベースファイルおよび他
のファイルを含む。
【0045】 注意:物理的位置間のデータアイテムの伝送は、TCP/IP、Novell
IPX、およびNetBEUI等を含む(ただしこれらに限定されないが)任
意のネットワーク通信システムを介して生じ得る。データアイテムの伝送に使用
されるパッケージングプロトコルは、FTPのようなファイル転送プロトコル、
ZMODEMのようなモデム転送プロトコル、SMTPのようなEメールプロト
コル、ハイパーテキストトランスポートプロトコル等を含む(ただしこれらに限
定されないが)データを伝送する任意の標準方式であり得る。
【0046】 (物理格納システムの設計) 二人のユーザがサーバ56に存在する同じファイルを同時に更新しようとする
場合に、困難が生じる。
【0047】 同時アクセスに典型的に関連する困難を避けるために、本発明は、物理格納シ
ステムをパーティションに分ける。この場合物理的デバイスの各々が少なくとも
1つのパーティションを含む。各パーティションは、1つ以上の関連付けされた
データファイルを含む。図2に示されるように、クライアントコンピュータ23
は、ディスク32に格納されるジャーナルパーティション58を含み、一方サー
バ56はサーバ56内の同じまたは異なる格納デバイスに存在するライブラリパ
ーティション60およびアーカイブパーティション62を含む。
【0048】 容易に理解されるように、図2は、本発明の教示内容に従って構造化された1
つのタイプのアーキテクチャを示す。例えば、他の可能な組合せには以下が挙げ
られるが、これらに限定されない:a)ライブラリパーティション60がCD−
ROMに存在し、ジャーナルパーティションがクライアントコンピュータ23に
存在し得る、b)3つのパーティション全てがクライアントコンピュータ23に
存在し得る、c)ジャーナルパーティションがネットワークサーバ上にあり、1
つのライブラリパーティションが1つの同じサーバにあり、そして第2のライブ
ラリパーティションがインターネットを介してリモート的に接続される。
【0049】 リンクされたパーティションの特定のリストを「パーティションチェイン」と
呼び、図2においてパーティション58、60、および62で示される。特定の
チェインは、任意の数(1つを含む)のパーティションを含むことができる。好
適な実施形態において、ユーザに最も近いパーティション58を「更新パーティ
ション」と呼び、それはジャーナルパーティションでなければなく、直接更新さ
れ得るチェイン内のパーティションだけである。他のパーティション60および
62は、「リモートパーティション」であり、直接読み出すことはできるが、直
接書き込むことができないリードオンリパーティションである。
【0050】 パーティションは、パーティションの機能による様々なタイプに従って分類さ
れ得る。パーティション58のようなジャーナルパーティションは、以下により
十分に記載するように少なくとも1つの追加オンリジャーナルファイルを含む。
パーティション60のようなライブラリパーティションは、「パック化」された
バージョンのジャーナルパーティションを格納し、各データアイテムの1つのバ
ージョンのみを含む。パーティション62のようなアーカイブパーティションは
、複数の履歴バージョンのデータを格納する。他のタイプのパーティションが可
能である。概して、ジャーナルパーティション、ライブラリパーティション、ア
ーカイブパーティションは、図2に示されるように共にリンクされる。
【0051】 データベースおよびワードプロセッシングファイル等のファイルへの更新は、
ライブラリパーティション60へ直接書き込まれない。その代わり、更新は、ジ
ャーナルパーティション58に直ちに格納され、次いでサーバ56に提供され、
後でライブラリパーティション60に結合される。
【0052】 図3は、ジャーナルパーティション58、ライブラリパーティション60、お
よびアーカイブパーティション62間のリンケージを示す。ジャーナルパーティ
ション58内に存在するジャーナルファイル70は、様々なデータオブジェクト
(例えば、データベースレコード)を含み、そのファイルはまた、未使用メモリ
を含み得る。後に、ジャーナルファイル70はパックされ、新しい統合ファイル
70に統合される。その統合ファイル70は、現在空のジャーナルファイルとラ
イブラリファイルとの間のパーティションチェイン内に挿入され得る。統合され
たジャーナルファイルは任意にパックされ得、次いでライブラリパーティション
60内に格納されるライブラリファイル72に格納され得る。次いで、サーバ5
2は、ライブラリファイル72をアーカイブパーティション62内に格納される
アーカイブファイル74に書き込むことができる。アーカイブファイル74は、
複数のバージョンの同じデータオブジェクトを含む。
【0053】 (追加可能データアイテム) 多くのアプリケーションにおいて、ライブラリは、オブジェクトに対する10
,000のポインタのリストまたは大きなテキスト文書を格納するアイテムのよ
うな大きなデータアイテムを備え得る。これらの場合、データアイテムの値を更
新することで、データの不必要な複製が生じる。
【0054】 本発明の物理的格納システムは、「追加可能な」データアイテムを支援し、こ
のアイテムは、複数のパーティションにわたってそれらの内容の格納を分散させ
る。追加可能データアイテムは、オリジナルデータへの変更を追跡し、かつオリ
ジナルデータへの変更のみをジャーナル中に格納する。
【0055】 追加可能データアイテムの内部構造は、2つの部分(オリジナルデータが格納
される「リモート」セクション、および変更が保持される「ローカル」セクショ
ン)を備える。図4Aおよび4Bは、それぞれリストおよびテキストデータ用の
2つの追加可能なアイテムの実施を示す。図4Aは、リストデータアイテムを示
し、このアイテムは、リモートパーティションに格納されたオリジナルリスト、
追加物、およびローカルパーティションに格納されたリストからの除去物を含む
。このオリジナルリストはリードオンリーリストであり、そして任意の更新は更
新リストに書き込まれなければならない。変更は識別ナンバーとして格納されて
オリジナルリストに追加され得、そして識別ナンバーとして格納されてオリジナ
ルリストから除去され得る。
【0056】 同様に、図4Bは、追加可能リスト82として格納されるテキストデータアイ
テムを図示する。このアイテムは、リモートパーティションに格納されたオリジ
ナルテキスト、追加物、およびローカルパーティションに格納されたテキストか
らの削除物を含む。このオリジナルテキストはリードオンリーテキストであるよ
うに格納され、そして任意の更新はローカルパーティションに書き込まれなけれ
ばならない。変更は挿入、削除およびフォーマット動作のような一連の編集動作
として格納され得る。
【0057】 追加可能データアイテムの使用は、有利である。これらのアイテムは、更新に
必要とされる格納が最小化されることを可能にし、これは、オリジナル情報がロ
ーカルパーティションに格納される必要がないからである。さらに、これらのア
イテムは、同期の問題を低減し、これは、ローカルパーティションがオリジナル
データ自身ではなく、オリジナルデータへの変更のみを格納するからである。最
終的に、追加可能データアイテムの使用は、CD−ROMおよび一方向電子出版
サービスのようなリードオンリー媒体が注記されることを可能にする。
【0058】 (共有データアイテム対個人データアイテム) 複数のパーティションのチェインは、同一ライブラリおよびアーカイブパーテ
ィションのいくつかまたはすべてを共有することができる。これにより、ライブ
ラリおよびアーカイブパーティション中のデータアイテムを共有したままで提供
するための手段を提供し、一方でジャーナルパーティションのデータアイテムが
ローカルバージョンを有することを可能にする手段を提供し、これは、他のジャ
ーナルのデータアイテムまたは共有されたデータアイテムから独立している。
【0059】 統合(consolidation)の間、種々のジャーナルファイルが、統
合から特定のデータアイテムを除外することにより、種々の程度にまで統合され
得る。さらに、統合ファイルはそれ自身で、以前のライブラリパーティションへ
結合されることなく、新たなパーティションとして作用し得る。
【0060】 このようにして、データアイテムの「レイヤー」が構築され得、各レイヤーは
先のレイヤーの部分の外部をマスキングする。
【0061】 例えば、以下の状況を想定する:ユーザXのためのパーティションチェインは
、ジャーナルファイル中のデータアイテムA1を含む;ユーザYのためのパーテ
ィションチェインは、ジャーナルファイル中のデータアイテムB1を含む、そし
て両方のチェインは、データアイテムC1を有するライブラリパーティション、
およびデータアイテムA1の古いほうのバージョン(A2と呼ぶ)を含む。
【0062】 この状況において、ユーザXは、データアイテムA1およびC1を確認するが
、B1はユーザXから確認できない。ユーザYは、データアイテムB1およびC
1を確認し、そしてA1の古いほうのバージョンA2(これは、パーティション
Cに残る)を確認する。
【0063】 このように、レイヤーを提供する格納システムを使用することで、この格納シ
ステムのユーザは特定のデータアイテムの個人のバージョンを維持し得るが、他
のデータアイテムを共有するという利点をなお有する。さらに、種々のレイヤー
は、種々の目的に役立つことができ、例えば4つのレイヤーシステムが存在し得
、これらは以下に規定するレイヤーである:第1レイヤーは、一人のユーザのた
めに専用化され得る。次のレイヤーは、作業グループ用の共有情報を含み得る。
引き続くレイヤーは、社内情報システム用の共有情報を含み得る。最後のレイヤ
ーは、公的共有情報を含み得る。
【0064】 (新規レイヤーの挿入) 本発明は、ユーザが、レイヤー法を使用することにより、互いにデータアイテ
ムのサブセットを交換する有利な能力を提供する。
【0065】 ユーザXは、ユーザXのデータのサブセットに基づいた新規パーティション(
Aという)を作成し得、そしてそれを別のユーザYに転送し、これは上記のよう
な任意の標準的なデータ転送システムを使用する。次いで、ユーザYは、パーテ
ィションAをユーザYのパーティションチェインに挿入し得、その結果、特定の
データアイテムが「高い」レイヤーによってマスクされない限り、パーティショ
ンA中のすべてのデータアイテムは、直ちにかつ明白にユーザYのデータセット
の一部であるように見える。
【0066】 この能力は、以下のような要求に有利に適用され得る:集中したシステムを共
有していないユーザを同期させること、CD−ROMのようなリードオンリー出
版媒体に更新および注釈を送信すること、別個のソースから情報を収集し、統合
すること。
【0067】 (結合) 先に記載されたように、このシステムは、クロック間隔または事象の発生に従
って、ライブラリパーティション60に対してジャーナルパーティション58の
統合された内容を提供する。システムのユーザは、例えば、ジャーナルパーティ
ション58が特定の量のデータを含む場合、または特定の量のトランザクション
が一番最近の結合操作以来に起こる場合、このような結合操作を引き起こすこれ
らの状況を規定し得る。
【0068】 更新がライブラリパーティション60へ結合されると、ライブラリパーティシ
ョン60由来の古いバージョンは、アーカイブパーティション62へ再配置され
る。図6は、結合操作を示し、ここでは、ジャーナルパーティション58内で異
なる位置にある複数のデータアイテム120、122および124がコピーされ
、そしてこのコピーは、ライブラリパーティション60に提供され、ここでコピ
ーは、ライブラリパーティション60中の他のデータと統合および結合される。
ジャーナルパーティション58からライブラリパーティション60への転送時間
を減少させるために、データアイテムはデータ圧縮アルゴリズムに従って圧縮さ
れ得る。
【0069】 図7は、結合操作に関するフローチャートである。ブロック140および14
2において、データがジャーナルパーティション58中のファイルに書き込まれ
る。ブロック144では、このシステムは、ライブラリパーティション60が存
在するデバイス上に書き込まれ得るかどうかを決定する。デバイスがCD−RO
Mのようなリードオンリーデバイスである場合、結合プロセスは起こり得ず、ル
ーチンはブロック146で停止する。そうでなければ、このシステムは、データ
がジャーナルパーティション58からライブラリパーティション60に対して提
供されるブロック148へ分岐する。ブロック150において、このシステムは
、他のジャーナルファイルが結合される必要があるかどうかを決定する。もしそ
うであれば、このシステムは、ブロック148へ戻るように分岐する。そうでな
ければ、このシステムはブロック152に示されるように、ジャーナルパーティ
ション60から一つの統合ファイルへと複数のデータアイテムを統合し、そして
このファイルはライブラリファイルへと結合される。続いて、ブロック154に
示されるようにルーチンは終了する。
【0070】 2人以上のユーザが同一のファイルの変更をしようとすると、コンフリクトが
結合操作間で発生する。システムは両方の更新が認められ得るかどうか、そして
そうでない場合、2つの更新のうちのどちらかに決めるとすれば、どちらが格納
されるべきか、を決定しなければならない。先に記載したような統合手順は、こ
れらのコンフリクトを解決しなければならない。
【0071】 図8は、統合手順に関するフローチャートである。ブロック160では、ルー
チンが初期化され、新しい「統合された」ファイルが作成される。このファイル
は、最終的にジャーナルファイルからのすべてのデータを含む。次に、各ジャー
ナルファイルに関して、そして各ジャーナルファイル中の各データアイテムに関
して、ルーチンはデータアイテムを統合ファイル加えようとする。
【0072】 ブロック162では、ルーチンは、別のソース(通常は、異なるユーザと関連
したデバイス)由来の別のバージョンのデータアイテムが、既に統合ファイル中
に存在するかどうかを決定する。そうでなければ、新しいデータがブロック18
4で統合ファイルに加えられ、そしてルーチンはブロック186で終了する。別
のソースから別のバージョンのデータアイテムが既に統合ファイル内に存在する
場合、ブロック162はブロック164へと分岐し、そしてバージョン間のコン
フリクトは、ユーザにより特定されるか、またはデータオブジェクトのタイプに
より特定されるルールを適用することにより、解決される。特定の場合において
、コンフリクトは結合操作により解決され得る。例えば、テキスト文書への重複
しない2つの変化が結合され得る。ブロック164で、ルーチンがコンフリクト
を解決すると、ブロック166はブロック174へと分岐し、ここで新しいデー
タは、ユーザまたはオブジェクトタイプ(ドメイン)により規定される方法を使
用して別のソースからのデータと結合する。次いで、このシステムは、ブロック
182で次のアイテムを取り出す。
【0073】 ブロック164でルーチンがコンフリクトを解決しなかった場合、ブロック1
66はブロック168へと分岐し、ここでシステムは、新しいアイテムまたは別
のソースからのアイテムが格納されるかどうかを決定する。新しいアイテムがコ
ンフリクトに勝り、従って格納されると、ブロック168はブロック176へと
分岐し、ここで別のソースからのアイテムは統合ファイルから除去され、別のソ
ース由来のアイテムを作成したメッセージがユーザに提供され、ユーザにこのデ
ータアイテムが格納されないことを知らせる。続いて、ルーチンはブロック18
2へと分岐する。コンフリクトの勝者は、アイテムが一番最近のタイムスタンプ
またはより高い値を有したルールの数により決定され得るが、これに限定されな
い。あるいは、ルーチンは、より高度なジャーナルファイルを有するユーザまた
は情報を入力するユーザを優先し得る。
【0074】 ブロック168で、新しいアイテムがコンフリクトに勝らない場合、ブロック
168はブロック170へと分岐し、ここでシステムは、別のソース由来のアイ
テムがコンフリクトに勝るかどうかを決定する。そうであれば、ブロック170
はブロック178へと分岐し、新しいデータアイテムは統合ファイルから除去さ
れ、メッセージが新しいデータアイテムを作成したユーザに提供され、そしてル
ーチンはブロック182へと分岐する。最後に、新しいアイテムまたは別のソー
ス由来のアイテムのいずれもがコンフリクトに勝らない場合、両方のデータアイ
テムは統合ファイルから除去され、メッセージが両方のアイテムのユーザに提供
される。続いて、ルーチンはブロック182へと分岐する。
【0075】 この時点にて、古いジャーナルファイルがクリアされ得、再度更新される準備
が整う。ライブラリファイルが変更されないままでなければならない場合、ルー
チンは停止し、統合ファイルは新しいライブラリパーティションとしてパーティ
ションチェインに挿入され得、上記のような新しい「レイヤー」を作成する。さ
もなければ、次に統合ファイルはライブラリファイルと結合され得る。
【0076】 図9は、統合ファイルをライブラリファイルと結合するためのフローチャート
である。ブロック190では、ルーチンは、古いほうのバージョンのデータアイ
テムが既にライブラリファイル中に存在するかどうかを決定し、そして存在しな
い場合、ルーチンはブロック194へと分岐する。さもなければ、ブロック19
2は、古いほうのバージョンが保存されるべきかどうかを決定する。そうである
場合、古いほうのバージョンは、ブロック196に示されるようにアーカイブフ
ァイルへと転送される。古いほうのバージョンが保存されるべきでない場合、そ
れは削除され、そしてブロック192はブロック194へと分岐する。
【0077】 ブロック194では、システムは、新しいアイテムがその親と共に格納されな
ければならない追加可能レコードを含むかどうかを決定する。そうである場合、
新しいデータアイテムは、ドメインにより規定される結合方法を使用して既存の
古いほうのバージョンと結合し、そしてルーチンはブロック202で終了する。
本発明に従って、複数のソースからのデータが結合され、そのいずれもが、ライ
ブラリパーティションが存在するデバイスに接続される必要はない。新しいアイ
テムが追加可能レコードでない場合、ブロック194はブロック198へと分岐
し、そして新しいデータアイテムがライブラリファイルに追加され、任意の古い
ほうのバージョンを上書きする。ブロック198では、オプションとして古いほ
うのバージョンがアーカイブされ得る。続いて、ルーチンはブロック202で終
了する。
【0078】 (読み込みおよび書き込みデータアイテム) 追加可能データアイテムは、異なるパーティション内部に存在するデータを含
むので、読み込みおよび書き込み追加可能データアイテムは、システムが関連の
パーティションにアクセスすることを要求する。ユーザが、キーボード30から
メモリ26への入力により追加可能データアイテムを変更する場合、もとの内容
が変更とは別にメモリ26中に格納され、そして「追加フラグ」がアイテムのた
めに設定される。データアイテムが永久記憶装置(例えば、メモリ32内部のパ
ーティション58)に書き込まれると、システムは、「追加フラグ」が設定され
ているかどうかを決定し、そしてそうである場合、追加可能アイテムの変更した
部分のみが書き込まれる。異なるパーティションに既に存在するオリジナルデー
タは、それがオリジナルリードオンリーパーティションから再構築され得るので
、書き込まれない。しかし、システムの完全性を保証するために、オリジナルデ
ータを表す独自の識別ナンバーがまた格納され、その結果システムは、オリジナ
ルデータが消失するかまたは変更されるかどうかを検出する。
【0079】 データアイテムを読み込んでいる時、システムは、アイテムの「追加」フラグ
が設定されているかどうかを決定する。そうである場合、システムはオリジナル
データをそのオリジナルデータを含むパーティションから読み込もうとし、そし
てオリジナルデータを変更と結合しようとする。図5は、本発明の教示に従うデ
ータを読み込むためのフローチャートである。ブロック90では、システムはま
ず、任意のローカルジャーナルパーティションを検索し、次いで読み込み中のデ
ータアイテムの識別ナンバーを有するデータアイテムを見つけるために、順にリ
モートパーティションを検索する(例えば、ライブラリパーティション次いでア
ーカイブパーティション)。システムがデータアイテムをなんら見つけられない
場合、ブロック92はブロック94へと分岐し、そして「ゼロ」または初期設定
値を返す。
【0080】 逆に、システムがデータアイテムを見つけると、ブロック92はブロック96
へと分岐し、そしてシステムは、データアイテムが「墓石」であるかどうか、す
なわち特定のデータアイテムが削除されたかどうかを決定する。そうであれば、
システムはブロック94へと分岐する。さもなければ、ブロック98で、システ
ムはアイテムの追加フラグが設定されているかどうかを決定し、そうでない場合
、このシステムはブロック100に示されるようにデータアイテムを返す。追加
可能アイテムを示している追加フラグが設定されていると、ブロック102で、
システムは、同じ識別ナンバーを有する他のデータアイテムを見つけるために他
のパーティションを検索する。親データアイテムが見つからない場合、システム
はブロック104からブロック106へと分岐し、ここでシステムは、追加フラ
グが、親データアイテムが存在することを示すためエラーを示す。
【0081】 システムが親データアイテムを見つけると、システムは親データアイテムの追
加フラグが設定されているかどうかをブロック108で決定し、これは親がそれ
ぞれの親を有するかどうかを示す。そうである場合、ルーチンは分岐して102
へと戻り、ここで次のパーティションが順に検索される。ルーチンがすべての関
連したデータアイテムを見つけると、ブロック110に示されるように、それら
は1つのアイテムに結合され、そして返される。
【0082】 (消失パーティション) 本発明の1つの利点は、読み込みおよび書き込みデータアイテムは、すべての
時点においてすべてのパーティションが存在していることを要求するわけではな
いということである。データが主にジャーナルパーティションから読み込まれる
(および常にジャーナルパーティションへ書き込まれる)場合、いくつかまたは
任意のライブラリおよびアーカイブパーティションがなくても悪い影響はない。
【0083】 特に、本発明は、信頼できないまたは完全に切断されたパーティションチェイ
ンにかかるデータを処理する方法を提供する。
【0084】 例えば、ユーザは、ラップトップコンピュータ上にジャーナルパーティション
および小さなローカルライブラリパーティションを有し得る。特定の時間におい
て、ユーザは、ずっと大きなマスターライブラリパーティションおよびアーカイ
ブパーティションにアクセスするためにネットワークに接続することが可能であ
るがネットワークから切断してもなおデータアイテムを首尾よく入力および取り
出すことが可能である。
【0085】 ユーザネットワークに接続されている間、ジャーナルファイルの統合が起こり
得、所望であれば、その後新しいジャーナルおよびライブラリファイルが以前の
バージョンと置き換わり得る。
【0086】 さらに、この同一のアプローチが他の切断可能なパーティションに適用され得
、これには、取外し可能ディスク、CD−ROM、インターネットサーバなどに
格納されるパーティションが挙げられるが、これらに限定されない。
【0087】 (ジャーナルファイル) この章では、ジャーナルパーティション58の好ましい実施形態を説明する。
ジャーナルパーティション58は、以前のバージョンのこれらの同一のアイテム
を保持することができるように、格納媒体上に種々の長さのデータアイテム(例
えば、フリーテキストデータベースレコード)を格納し得る。
【0088】 図10は、ジャーナルパーティション58の構造を示す。ジャーナルパーティ
ションは、図1の大容量メモリ32に存在し得る。図10に示されるように、ジ
ャーナルパーティション58を含むメモリは、物理格納デバイスブロック250
、252および254へと分割されている。データオブジェクト(データオブジ
ェクト256、258および262を含む)は、ブロック250、252および
254内部に格納される。
【0089】 図10に示されるように、ジャーナルパーティション58に格納されるべきデ
ータオブジェクトは、メモリに連続的に追加され、そしてブロック250、25
2および254は、上書きされない。従って、ジャーナルパーティション58は
、同じデータオブジェクトの古いほうのバージョンを含み得る。例えば、データ
オブジェクト256は、会社従業員に関する情報を含むデータベースセルを含み
得、そしてデータオブジェクト258は、ユーザがそれを更新した後にはそのセ
ルを示し得る。このシステムは、必要とされるときに新しいブロックを作成し、
そしてこのシステムは、オブジェクトをそれらの各ブロックに関連付けるテーブ
ル260を格納する。テーブル260は、オブジェクトがブロックに書き込まれ
るそれぞれの時間に更新される。
【0090】 図11は、オブジェクト262のコンテンツを示す。好適な実施形態において
、オブジェクト262は、5つのフィールド、すなわちステータスフィールド2
64、識別子フィールド266、データフィールド268、ポインタフィールド
270、およびタイムスタンプフィールド272を含む。オブジェクト262は
、ステータスフィールド264を除けば他のフィールド全てを必ずしも含む必要
はなく、ステータスフィールド264は、オブジェクトが含んでいるフィールド
を示すフラグを含む。データフィールド268は、オブジェクト262に対応す
るテキストおよび数字等のデータを格納し、ポインタフィールド270は、旧バ
ージョンのオブジェクト262を示すポインタを含む。タイムスタンプフィール
ド272は、オブジェクト262が生成された時間を示し、識別子フィールド2
66は、表260に用いられるオブジェクト262を識別する数を含む。
【0091】 旧バージョンのデータアイテムは削除不可能なので、データアイテムの削除は
特別に処理する必要がある。データアイテムを削除する際、データアイテムが削
除されたことを意味する「墓石」と呼ばれる特別な印がジャーナルパーティショ
ンに書き込まれる。この墓石は、値を持たないデータフィールドを有するオブジ
ェクトを含み、そのアイテムが墓石であることを示す特別なステータスフラグが
設定される。この墓石オブジェクトは、削除されるデータアイテムの最新バージ
ョンを含むオブジェクトを示すポインタを格納する。
【0092】 データアイテムを読み出す際、表260中から適切なブロックをルックアップ
することにより、最新のバージョンのデータアイテムが検索される。該当アイテ
ムに関連する最新オブジェクトを検索することにより最新バージョンのデータア
イテムが検索され終えると、検索されたオブジェクト中に格納されているポイン
タを用いることにより旧バージョンのデータアイテムが検索可能となる。
【0093】 その結果、ユーザは、旧バージョンのデータアイテムを廃棄したいと考え得る
。これは、所望のデータアイテム(通常は最新のデータアイテム)を別のファイ
ルにコピーしてオリジナルのファイルを廃棄することにより行われる。
【0094】 図12は、ジャーナルパーティション58にアイテムを挿入する工程、ジャー
ナルパーティション58中のアイテムを更新する工程、およびジャーナルパーテ
ィション58からデータアイテムを削除する工程のフローチャートである。図1
2に示すルーチンによれば、挿入工程、更新工程、および削除工程は同様の方法
で行われ、ステータスフラグはこれらのアクション間の相違点を示す。
【0095】 これらの3つの動作は全て、新しいオブジェクトをジャーナルパーティション
58に書き込む工程を含む。既存のデータアイテムを更新する場合、新しいオブ
ジェクトは、上述したように、更新されたデータと旧バージョンのデータアイテ
ムを示すポイントとを含む。データアイテムを削除する場合、上述したように、
削除されたデータアイテムを示すジャーナルパーティション58に墓石オブジェ
クトが書き込まれる。
【0096】 ブロック280において、挿入動作が開始し、ブロック282へと分岐する。
アイテムを挿入することはポインタの対象となる旧アドレスが無くなることを意
味するため、ブロック282において、旧アドレスフラグがFALSEに設定さ
れる。逆にいえば、ブロック300に示すように既存のデータアイテムを更新す
る際、本システムは、更新対象のアイテムを含むオブジェクトのアドレスを格納
し、ブロック302に示すようにそのオブジェクトの旧アドレスフラグをTRU
Eに設定する。ブロック314に示すようにデータアイテムを削除する際、ルー
チンは「墓石」フラグをTRUEに設定し、「データ値」フラグをFALSEに
設定して、書き込み中のオブジェクト中にデータが存在せず、ブロック316に
示すように書き込み中のオブジェクトがデータアイテムの削除を意味することを
知らせる。
【0097】 次いで、本システムは、新しいオブジェクトをジャーナルパーティション58
に書き込む。書き込みを行う前に、本ルーチンは、新規オブジェクトを様々なオ
プションに従って処理し得る。例えば、ブロック284において、本ルーチンは
、オブジェクト識別子フィールドにオブジェクト識別子を格納するかどうかを判
定する。識別子の格納は検索には不必要であるが、ファイルが破損した場合にデ
ータを回復するのに利用することができる。識別子の格納を行わない場合、ブロ
ック284はブロック304へと分岐し、識別子フラグはOFF設定となる。ブ
ロック304はブロック286へと分岐し、ジャーナルパーティション58にス
テータスフラグが書き込まれる。
【0098】 ブロック288において、本ルーチンは、識別子フラグがTRUEかどうかを
判定する。識別子がTRUEである場合、本システムはブロック306へと分岐
し、ジャーナルパーティション58に識別子が書き込まれる。本システムは次い
で、ブロック290へと分岐し、数値フラグがTRUEかどうかを判定する。数
値フラグがTRUEである場合、本システムは、該当データ値をジャーナルパー
ティション58に書き込む。同様に、ブロック292において、本ルーチンは旧
アドレスフラグがTRUEかどうかを判定する。旧アドレスがTRUEである場
合、本システムはブロック310に分岐し、ジャーナルパーティション58内に
生成された新しいデータオブジェクト中のポインタフィールドに旧アドレスが書
き込まれる。本システムは次いでブロック294に分岐し、タイムスタンプフラ
グがTRUEかどうかを判定する。タイムスタンプフラグがTRUEである場合
、本システムは、ジャーナルパーティション58内に生成された新オブジェクト
のタイムスタンプフィールドにタイムスタンプを書き込む。
【0099】 最後に、表260が更新され、表260は、ジャーナルパーティション58に
書き込まれた新オブジェクトに対応するデータアイテムのデスク上での新しい配
置を反映する。
【0100】 このアプローチでは様々なオプションが可能である。例えば、全データアイテ
ムに関して、識別子の格納はオプションである。識別子、タイムスタンプ、およ
び旧ポインタを格納しない場合、データアイテムの必要格納サイズは最小となる
【0101】 (データ回復) 好適な実施形態において、表260の構造は、標準的な延長可能なハッシュ表
データ構造である。上述したように、表262は、新オブジェクトがジャーナル
パーティション58に書き込まれるたびに更新される。表260は極めて大量に
なり得るので、表を保存するのではなく、表260を不揮発性メモリに書き込む
ことにより、更新が行われるたびに、チェックポイントアプローチを用いてユー
ザが規定する特定の間隔をあけて表260を保存する。例えば、ユーザは、50
回更新を行う毎に表を保存すると規定し得る。
【0102】 表262が保存された後、「センチネル」がジャーナルパーティション58に
書き込まれる。図13は、「センチネル」データオブジェクトを示す。「センチ
ネル」オブジェクト350および352はそれぞれ、表354および356にそ
れぞれ対応するタイムスタンプおよびポインタを含む。表354および356は
、表260のバージョンを含み、「センチネル」オブジェクトがジャーナルパー
ティション58に書き込まれるときに不揮発性メモリ中に格納される。
【0103】 クラッシュが発生した場合、実際のデータは既にジャーナルパーティション5
8に書き込まれているため、本システムでは表260を復元するだけでよい。表
260の復元は、ファイルの開始部分からではなく最終部分にある有効センチネ
ルから開始できるため、復元速度が飛躍的に速くなる。表260を復元するルー
チンの好適な実施形態に従って、ジャーナルの最終部分から逆方向に読み出しを
行うことにより、最新の「センチネル」オブジェクトが配置される。この配置場
所が表260を有効にする最終ポイントとなる。センチネルは、表262を格納
するディスクファイルに対応するポインタを含み、次いで、この表262は、こ
のファイルからロードされ得る。表262が見つからなかったりまたは損傷を受
けている場合、ルーチンは、ジャーナルファイルの前にある「センチネル」オブ
ジェクトチェックポイントを探そうとする。このプロセスは、有効「センチネル
」オブジェクトが見つかるかまたはジャーナルファイルの開始部分に到達するま
で継続する。
【0104】 次いで、有効な表に対応するポイントを指す「センチネル」が(少しでもあれ
ば)配置された後に、ジャーナルパーティション58に書き込まれた次のオブジ
ェクト部分から、ジャーナルパーティション58の読み出しが開始する。その後
、ジャーナルパーティション58にオブジェクトが書き込まれるたびに表260
が更新される。最後に、「センチネル」が新しく生成され、表260が新たに保
存される。
【0105】 (最適化) 本格納システムのオブジェクトオリエンテーションは、多様な操作の効率化を
促進する。例えば、1995年 に出願された出願番号 の、
「Method and Apparatus for Improved I
nformation Storage and Retrieval Sys
tem」という名称の本出願と同時係属中の出願に、行および列の表を含むデー
タベースについての開示がある。行はレコードに対応し、列はフィールドに対応
する。行および列の交差部分は、本発明のデータアイテムに対応するセルを含む
。従って、セルは、本発明の教示内容に従ったデータオブジェクトとして格納さ
れる。本発明の教示内容による同時係属中の出願のデータベースを格納すること
により、以下のような特定のデータベース操作が改良される: I.分散ネットワークまたは切断ネットワーク中の共有データを利用すること
【0106】 II.データをセルレベルで複製、同期化、および結合し、インデックスを結
合すること。
【0107】 III.損傷を受けたデータまたは見つからないデータを回復すること。
【0108】 IV.セルを行単位ではなく列単位でサーチすること。
【0109】 さらに、セルの格納媒体への物理的配置は、自在に行うことができ、各要件に
応じて調整可能である。例えば、特定の列(または列のセット)を定期的にサー
チする場合、その列を含むセルを互いに隣接させた状態でパーティション内に保
存することができる。あるいは、主格納ファイルからセルを分離して、「ストリ
ップ」と呼ばれる別のファイルに格納することもできる。
【0110】 データアイテムの中には、冗長な情報を含むものもあり、上述したように、親
データアイテムに相当する「オリジナルの」情報から冗長情報を復元することが
できる。例えば、1995年2月3日に出願された、「Method and
Apparatus for Improved Information S
torage and Retrieval System」という名称の本出
願と同時係属中の特許出願第08/383,752号を参照すると、データアイ
テムの「親フォルダ」属性全てを収集することにより、レコードのグループに対
応するレコードであるフォルダのコンテンツを復元することが可能である。同様
に、インデックスおよび他のナビゲーション構造も多くの場合復元可能である。
【0111】 これらの種類の復元可能なデータアイテムには、特殊な格納技術を用いること
が可能である。データアイテムのコンテンツは、ジャーナルパーティションとは
別の特別な場所に格納される。この場所は、復元可能なデータアイテムが書き込
まれるたびに再利用され得、そのためメモリ容量および時間が節約できる。その
結果、ジャーナルは、実際のデータそのものの代わりとして、この外部の場所に
対するポインタを含む。何らかの理由により外部の格納場所が見つからないかま
たは損傷を受けている場合、データアイテムは適切な方法を用いて復元すること
ができる。
【0112】 (システムアーキテクチャ) 図14は、本発明の情報格納および検索システムのブロック図である。図中に
示すように、本発明は、レコード用データベース401およびフリーテキストデ
ータベース402をさらに含む内部データベース400を含む。データベース4
00は、ワープロ文書404、表計算405、およびデータベースファイル40
6を含むデータを複数の外部ソース403から受信し得る。以下により詳細に説
明するように、本発明は、外部ソース403をデータベース400とインターフ
ェースするアプリケーションサポートシステムを含む。
【0113】 データベース400中に格納されている情報を効率良く検索するために、複数
のインデックス406(キーワードインデックス407および他の種類のインデ
ックス(例えば、他の言語を特殊な音声順に選別したインデックス、化学、法律
、医学などの分野特有のインデックス)等を含む)は、データベース400によ
り提供される選別情報を格納する。インデックス406中の情報を整理するため
に、知識システム408は、インデックス406内にある情報を互いにリンクさ
せる。
【0114】 図14に示す構成は概念を説明するためのものであり、実際には、以下により
詳細に説明するように、データベース400、インデックス406および知識シ
ステム408は、同じ表中に格納される。本明細書では、データベース400の
構造および機能についてまず始めに説明し、次いで、インデックス406および
データベース400をサーチするためのインデックス406のインプリメンテー
ションについて説明する。次いで本明細書では、シノニムおよび他の構成要素を
提供することによりインデックス406をさらに改良する知識システム408に
ついて説明し、最後に、外部アプリケーションプログラム403とデータベース
400との間のインターフェースについて、新規な構造のワードプロセッサおよ
び新規なパスワードスキームを含めて詳細を説明する。
【0115】 図15は、本発明の格納および検索の構造を示す。本発明の格納および検索構
造は、表409を含む。表409の構造は、論理的構造であり、必ずしも物理的
構造ではない。従って、本発明の教示内容にしたがって設定されるメモリ26お
よび32は、表409を連続的に格納する必要はない。
【0116】 表409は、複数の行410および複数の列420をさらに含む。行はレコー
ドに対応し、列はレコードの属性に対応し、列の規定する特性は、行411に格
納される。行および列の交差部分は、特定のセルを含む。
【0117】 各行には、列420に格納される独自のオブジェクト識別番号(OID)が割
り当てられ、各列にも独自のOIDが割り当てられ、括弧中に表示され、行41
1中に格納される。例えば、行410は1100と等しいOIDを有し、列42
2は101と等しいOIDを有する。以下により詳細に説明するように、行およ
び列のOIDはどちらともポインタとして用いられ得、セル412はOIDを格
納し得る。さらに、OIDを割り当てる方法について以下に説明する。
【0118】 図15に示すように、レコードに対応する各行は、各列中に情報を含み得るが
、行は、データを各列中に有する必要はなく、また有していないことが多い。例
えば、行410は、セル413に示すように社名に対応する。社名がないのでセ
ル414は未使用となっている。
【0119】 列と関連する種類の情報は、「ドメイン」として公知である。ほとんどのデー
タベースシステムでサポートされる標準的ドメインは、テキスト、数、日付、お
よびブーリアン(Boolean)を含む。本発明は、行または列を指すOID
ドメインのような他の種類のドメインを有する。本発明はさらに「ユーザが規定
する」ドメインをサポートし、これにより、ドメインの全挙動をユーザまたはプ
ログラマによって決定することができる。例えば、ユーザは、ドメインを格納媒
体への書き込みおよび格納媒体からの読み出しならびに同等試験および比較など
の処理操作を含むように設定し得る。
【0120】 本発明によれば、個々のセルは、セルの行および列のOIDに従ってアクセス
することができる。すなわち、従来技術では標準的なレコード(または行)では
なく、セル(または行と列との交差部分)が格納および管理単位となる。セルを
格納単位として用いると、従来はオブジェクト全体またはレコード全体を必要と
した多くの標準的なデータ管理操作が改良される。このような操作としては、バ
ージョン変更、セキュリティ、階層型格納管理、リモートパーティションへの追
加、印刷、および他の操作がある。
【0121】 (列の定義) 各列は、関連する列の定義を含み、この定義は、列の特性(例えば、列のドメ
イン、列の名称、列の要/不要、および列に関連し得る他の特性等)を決定する
。表409は、構造化されていないフリーテキストデータを含む列をサポートす
る。
【0122】 列の定義は、図15の表409にレコードとして格納される。例えば、「雇用
主」列415は、対応する行416を有する。列に対応する行を追加すると、表
409は自己参照型になる。新しい列は、列の定義レコードを新たに生成するこ
とにより、表409に容易に付加され得、既存のレコード使用にすぐに利用可能
となる。
【0123】 (日付) 日付は、数字としてもテキストとしても規定可能である。数字で表した日付の
例としては「11/6/67」があり、テキストとして表した日付の例としては
「November 6, 1967」がある。テキスト入力は、標準的なアル
ゴリズムおよびルックアップテーブルを用いて日付に変換される。日付数値とし
て、オリジナルのテキストおよびテキストを変換した日の日付の両方を格納する
ことができるため、日付を最初に入力したときの形式で日付数値を表示すること
ができる。
【0124】 (数) 数値は、自然数(整数)としてまたは分数として分類される。好適な実施形態
において、整数は可変長構造として格納されるため、任意の大きさの数として表
すことができる。全てのデータ構造およびインデックスはこの形式を用いるため
、本システムには限界が無い。
【0125】 分数は、可変長の整数を組み合せて<分子/分母>とすることにより表される
。日付の場合と同様に、数値としてオリジナルのテキスト(「4 1/2 in
ches」)およびそれに関連する数(4.5)両方を格納できるため、数値を
最初に入力したときの形式で数値を再表示することができる。
【0126】 (タイプの定義) レコードは、「レコードタイプ」と関連付けられ得る。レコードタイプは、単
にカテゴリとして使用するだけではなく、レコードの挙動を決定するためにも用
いることができる。例えば、レコードタイプは、あるタイプのレコード全てに必
要な特定の列を規定し得、列の場合と同様に、タイプ定義もレコードとして表4
09に格納される。図15において、列422は各レコードについてのタイプ定
義を含む。列422は、特定のタイプの列を定義する行に対応するポインタを格
納する。例えば、列416は、「フィールド」タイプの列であり、セル417に
おいて、「フィールド」タイプの列を定義する行418に対応するポインタを含
む。行418のこの「タイプ列」422は、行419に規定された「タイプ」と
呼ばれるタイプに対応する。「タイプ」は、「タイプ」自身に対応するタイプ列
を有する。
【0127】 レコードタイプは、対応する行により規定されるように、そのタイプのレコー
ドが含み得る数値を制限し得る。例えば、レコードタイプの「Person」は
、「人物」のタイプのレコードが、「名前」列、「電話」列、および他の任意の
列内に有効値を有することを必要とし得る。レコードのタイプは、レコードの属
性であるため、いつでも変更され得る。
【0128】 (テンプレートの定義) テンプレートは、フィールドの詳細およびリストを含む特別なレコードである
。例えば、連絡(contact)テンプレートは、「名前」、「苗字」、「電
話」などのフィールドからなり得る。テンプレートは、フィールドのグループを
簡便に標識化するために用いられる。テンプレートは、様々な目的(例えば、レ
コードの編集、レコードの印刷、レコードのサーチ、またはレコードのエクスポ
ート等をするときに用いるフィールドの決定)に用いることができる。より高度
なテンプレートは、レコードを編集または印刷するときに用いられるレイアウト
情報を含むことができる。
【0129】 あらゆるレコードはあらゆるフィールドを含むことができるため、レコードの
タイプに対して、あるフィールドが「不適切」であっても、あらゆるテンプレー
トをあらゆるレコードに適用できる。例えば、レコードのコレクション(col
lection)を印刷するとき、レコードの種類が互いに異なっていても、コ
レクション中の全てのレコードに同じテンプレートが適用され得る。
【0130】 レコードは、特定の「デフォルトテンプレート」と関連付けることができる。
このテンプレートは、レコードの編集、印刷、およびエクスポートの際にデフォ
ルトとして用いられる。
【0131】 (独自のOIDの生成) 上述したように、列および行を形成する際、本システムでは独自のOIDを生
成する必要がある。図16は、OIDを割り当てる方法のフローチャートである
【0132】 図16のブロック430において、メモリ26中に格納されているデータベー
スプログラムを動作させるCPU24は、オペレーティングシステムからのタイ
ムスタンプをリクエストする。ブロック432において、本システムは、受信し
たタイムスタンプが以前のタイムスタンプと同一かどうか判定する。タイムスタ
ンプが同一である場合、ブロック432はブロック434に分岐し、同一のタイ
ムスタンプ間のコンフリクトを解消するためにタイブレーカを増加させる。ブロ
ック436において、本システムは、タイブレーカが限度に達したかどうかを判
定し、限度に達している場合、本システムはブロック430に分岐し、新しいタ
イムスタンプを検索する。限度に達していない場合、本システムはブロック44
0に分岐し、ユーザセッションに対して独自のセッション識別をリクエストする
【0133】 好適な実施形態において、セッション識別は、ユーザマシンにインストールさ
れたアプリケーションの独自の通し番号から得られる。あらゆる特定のマシンか
ら独立した特定のOIDの場合、セッション識別は、オブジェクトの種類を判定
するために用いられ得る。例えば、日付はあらゆる特定のマシンから独立するた
め、日付のOIDは一定のセッション識別を有し得る。
【0134】 ブロック432を参照して、タイムスタンプが同一でない場合、制御はブロッ
ク438へと進み、タイブレーカはゼロに設定され、次いで制御はブロック44
0に進む。上述したように、ブロック440において、本システムは、ユーザセ
ッションに対して独自のセッション識別を要求する。次いで、制御はブロック4
42へと進み、セッション識別、タイムスタンプ、およびタイブレーカを組み合
わせてビットアレーとし、このビットアレーをOIDとする。OIDは可変長構
造であるので、必要な精度、オペレーティングシステムクロックの分解能、およ
びユーザ数に応じて任意の数のビットが用いられ得る。好適な実施形態において
、OIDは長さが64ビットであり、タイムスタンプは第1の32ビットを含み
、タイブレーカは次の10ビットを含み、セッション識別は22ビットを含む。
【0135】 特定の種類のOIDおよびその長さは、単一のデータベースでは一定であるが
、データベース間において変化し得る。使用されるOIDの種類を示すフラグは
、各データベースのヘッダ中に埋めこまれ得る。
【0136】 (OIDドメイン) OIDドメインは、他のレコードへのポインタとして、OIDを格納するのに
用いられる。列をサーチするよりも、これらのOIDを用いて他のレコードを直
接サーチした方が効率的に問い合せを行うことができる。
【0137】 ユーザが列を検索して列内の特定のアイテムを有するレコード(単数または複
数)を見つけようとして、そのアイテムのOIDを知らない場合、本発明は、テ
キストの詳細からOIDを判定する新規な技術を含む。ユーザがレコードに情報
を入力しているとき、テキストからOIDへの変換を行うことも必要となり得る
。例えば、図15において、ユーザは、「雇用主」列415に情報を入力してい
る最中であり得、テキスト「DEXIS」を規定してOID#1100へ変換し
ようとする。この目的のため、サーチおよび変換を実行する方法を規定する特別
な列が必要となる。
【0138】 図18は、図17に示す構造に従って構成された表409をサーチするフロー
チャートである。ブロック450において、ユーザは、サーチしたい特定の列に
関するテキストを、キーボード30またはマウス45を通じて入力する。ブロッ
ク452において、本システムは、図17に示すような列451に格納されてい
る情報から、サーチ対象となる列のサーチ経路を検索する。上記の実施例から引
き続いて、行416内のセル453は、図15の「雇用主」列415に関するサ
ーチ経路情報を含む。「雇用主」フィールドに関するサーチ経路情報は、「DE
XIS」のラベル(label)を有する会社について、「\contacts
」および「\departments」と呼ばれるフォルダをサーチするべき旨
を示す。
【0139】 図17に戻って、本システムは、検索したサーチ経路情報に従って表409を
サーチする。サーチ経路内に規定された各フォルダについて、本ルーチンは、図
15の列422に示すようなサーチ対象のテキストと同一でかつ同じ種類の図1
5のラベル列423での入力を有するレコードをサーチする。フォルダについて
以下により詳細に説明する。
【0140】 ブロック456において、本システムは、ユーザがサーチしているテキストに
マッチングするアイテムが見つかったかどうか判定する。アイテムが見つからな
い場合、ブロック458において、本システムは、ユーザに表示画面37上に新
しいレコードを生成するよう促す。ユーザが新しいレコードを生成したい場合、
制御はブロック462に進み、本システムは新しいレコードを生成する。ブロッ
ク464において、新しいレコードのOIDが戻される。ユーザが新しいレコー
ドを生成したくない場合、ブロック460に示すように、「NIL」ストリング
が戻される。
【0141】 システムが、少なくとも1つのアイテムを見つける場合、システムは、ブロッ
ク466に示すように、1つ以上のアイテムが見つかったかどうか判定する。ア
イテムが1つだけ見つかった場合、ブロック468においてそのOIDが返却さ
れる。1つ以上のアイテムが見つかった場合、ブロック470において、システ
ムはアイテムのリストをユーザに表示し、ユーザはそのリストからレコードを選
択する。ブロック472において、選択されたレコードのOID(上記の例では
、会社「DEXIS」のレコードのOIDである#1100)が返却される。
【0142】 図18を参照しながら説明したように、別の実施形態において、このサーチメ
カニズムに様々な機能(例えば、サーチにさらなる制限を追加すること、厳密な
マッチングの代わりに予め固定したマッチングまたはあいまいなマッチングを可
能にすることによりサーチを関連付ること、および後述するような「連想サーチ
(associative search)」技術を用いることによりサーチを
広範に行うこと等)が追加され得る。
【0143】 (双方向同期化リンク) レコードは相互関係を有し得、相互関連するレコード間の整合性を維持するこ
とが望ましい場合が多い。例えば、図15の行410に示すように、会社につい
てのデータを含むレコードは、その会社の従業員に関する情報を含み得る。同様
に、その会社で働いている従業員は、図15の行421で示されるように、雇用
主をポインタで示すレコードを有し得る。従って、会社の従業員列は、雇用主列
がその会社に対応している従業員に対応するべきである。本発明は、相関レコー
ドが追加または削除されるたびに列間の相関関係を適切に更新することを確実に
する同期化技術を含む。
【0144】 本システムは、図17に示すような「同期化先」列455を表409に追加す
ることにより、相関レコードを同期化する。列中の数値はレコード間の関連性を
定義しているので、列に対応する行416および457は、「同期化先」列45
5中に、どの他の列が行416および457に対応する列と同期化されるかを示
す情報を含む。図17を参照して、「雇用主」列415は、行457に表示され
ている「従業員」列に対する「同期化先」列455中のOIDポインタにより、
「従業員」列と同期化される。同様に、「従業員」列は、行416で示されるよ
うに、「雇用主」列415に対する「同期化先」列455中のポインタにより、
「雇用主」列415と同期化される。従って、従業員が会社を変わるたびに、そ
の従業員の「雇用主」列が変更され、前の雇用主の「従業員」列が更新されて、
元従業員に対するポインタが削除され、その結果「雇用主」フィールドに新しい
雇用主の従業員が追加される。別の列へに対する関連(reference)が
追加または除去されても、もしくはレコード全体が表409に付加または表40
9から削除されても、いずれの場合においても、列が変更されるたびに同期化を
行う必要があり得る。
【0145】 図18Aは、ユーザがレコードを追加または削除するときにレコードを同期化
するためのフローチャートである。ブロック461において、システムは、他の
行への関連(すなわち、簡単に言うと他の行のOID)に関するオリジナルのリ
ストのバックアップを作成して、システムが、追加または削除されたのはどのO
IDかを後で判定することができるようにする。同期化する必要があるのは、追
加または削除の2つの変更のみである。ブロック463において、システムは、
規定されたOIDを追加または削除することにより、関連の新しいリストを生成
する。ブロック465において、システムは、関連する列が別の列と同期化して
いるかどうか判定する。関連する列が別の列と同期化していない場合、システム
はブロック467へと分岐し、更新が終了する。列が他の列と同期化している場
合、システムは、その列が既に同期化ルーチンに入っているかどうか判定する。
その列がまだ同期化ルーチンに入っていない場合、ルーチンは、無限に続く反復
ループに入る。システムがすでに同期化ルーチンに入っている場合、システムは
ブロック471へと分岐し、更新が終了する。
【0146】 そうでない場合、システムは、実際に同期化を行う。ブロック473において
、システムは、変更されているレコード(R1)の列(C1)に追加されたOI
Dまたはそこから除去されたOIDを見つける。ブロック474において、シス
テムは、追加または除去されたOIDに対応するレコード(R2)を検索する。
システムは、ブロック475において列(C1)の同期化列(C2)を決定し、
そのフィールドを追加または除去されたOIDに配置する。例えば、雇用主が解
雇されて雇用主の「雇用主」フィールドがそれに応じて変更されると、システム
は、図17に示すようなセル459に含まれる「従業員」列についての「同期化
先」列455の数値をルックアップする。セル459は「雇用主」フィールドに
対応しているので、システムは、解雇された従業員のレコードの「雇用主」フィ
ールドを配置する。図18Aのブロック476において、OIDを追加または除
去することにより、配置されたセル(R2:C2)が更新される。上記の実施例
から引き続いて、雇用主のOIDを「雇用主」フィールドから削除するだけで、
従業員の「雇用主」フィールドは、元従業員に対応しなくなるように変更される
。システムはブロック473に戻って分岐し、他の任意のOIDの追加および除
去を更新する。システムがOID全てを処理すると、ブロック477および47
8に示すようにルーチンが終了する。
【0147】 図18Bは、「雇用主」フィールドと「従業員」フィールドとを列について同
期化させた結果を示す。図示のように、これらの2つの列のレコード中のポイン
タは、互いに一致している。
【0148】 (列中の列) 列は、自身の中に、同じレコード中にある他の列への関連を含み得る。例えば
、「姓名」列は、「名前」列および「苗字」列の両方への関連を含み得る。そう
することで、「姓名」列の数値を、他の2つの列の数値から復元することができ
る。図19Aおよび19Bは、同一レコード中の1つ以上の列から数値を復元す
るための2つの可能なインプリメンテーションを示す。
【0149】 図19Aは、「名前」列482、「苗字」列484、および「姓名」列486
を含む表480を示す。「John Smith」のレコード226は、「名前
」列482中に名前「John」を有し、列484中に苗字「Smith」を有
する。姓名フィールド486Aは、列486に示すような<fieldRef
field = 'Column Name'>の形式に従った括弧中のフィール
ドを参照することにより、「姓名はJohn Smith」というテキストを返
す。
【0150】 図19Bは、図19Aに示す参照スキームを改変したものである。図19Bは
、「名前」列483、「苗字」列485、および「姓名」列487を含む表48
1を示す。「John Smith」のレコード489は、「名前」列483中
に名前「John」を有し、列485中に苗字「Smith」を有する。姓名フ
ィールド487Aは、列487に示すような変数「fn」および「ln」により
定義されたフィールドを参照することにより、「姓名はJohn Smith」
というテキストを返す。これらの変数は、変数:=fieldAt(パラメータ
、「列名」)の形式に従って定義され、列487に示すような返答ステートメン
トにおいて参照され得る。
【0151】 (レコードコンテンツ) 上述したように、所与の行は、あらゆる列の数値を含み得る。しかし、レコー
ドにより用いられ得る列全てを判定する際、あらゆる可能な列を入念に調べる必
要がある。この問題を避けるため、好適な実施形態において、図15に示す表4
09は、その列中の特定のレコードに格納値が含まれていることを示す「レコー
ドコンテンツ」列を含む。
【0152】 図20は、特定のレコードの数値を含む列に対応するポインタを含む「レコー
ドコンテンツ」列427を有する表409を示す。例えば、行410の「レコー
ドコンテンツ」427は、列423および列425に対応するポインタを有する
が、行410は列415の数値を持たないため、列415に対応するポインタを
有さない。上述したように、各列はその列を定義する対応行を有するため、「レ
コードコンテンツ」列427は、定義行428を有する。あらゆるセルと同様に
、レコードコンテンツを含むセルは、バージョン変更でき、レコードのバージョ
ン変更を行う能力を提供する。
【0153】 (フォルダ) 情報管理をより効率化するために、表409は、フォルダとして定義された種
類のデータを含み得る。図21は、「親フォルダ」列490および「子フォルダ
」列492を含むフォルダの構造を示す。フォルダは、対応するレコードを有す
る。例えば、図10に示すように、「連絡」という名称のフォルダは、対応する
行494を有する。「連絡」フォルダの「子フォルダ」列492は、そのフォル
ダに属するレコードに対応するポインタを含む。同様に、フォルダに属するレコ
ードは、そのフォルダに対応するポインタを「親フォルダ」列490に含む。
【0154】 特定のレコードは、あらゆる数のフォルダに属することができる。
【0155】 図21に示すフォルダ構造は、サーチを容易にする。上述したように、列の定
義中に規定されているフォルダに従って、列をサーチできる。フォルダをサーチ
する際、システムは、そのフォルダに対応するレコードにアクセスし、そのフォ
ルダに対応するレコード全てをサーチする。
【0156】 さらに、上述した同期化機能は、フォルダ中にアイテムのリストを生成するの
にも用いられ得る。例えば、図21において、「親フォルダ」および「子フォル
ダ」列が同期化され得る。レコード421の「親フォルダ」フィールド490A
が行494により示される「連絡」フォルダと関連するように設定されている場
合、「連絡」フォルダ(「子フォルダ」)中のアイテムのリストが自動的に更新
され、そのOID1101を「子フォルダ」列492に含むことにより、行42
1により表されるレコードへの相互関連が格納される。
【0157】 (自動フォルダ) フォルダのコンテンツを自動的に定義するよう、特定のフォルダを定義する。
このフォルダは、定義の種類に応じて「インデックス」フォルダまたは「クエリ
」フォルダという。インデックスフォルダは、特定のフィールド中に有効な数値
を含むレコード全てを含む。
【0158】 例えば、「人」フォルダは、「Person」の種類のレコード全てを自動的
に含むように定義され得る。
【0159】 さらに、これらの定義をより複雑な定義(照会と呼ばれる)として組み合せる
ことができる。このようなフォルダの例としては、a)「Person」の種類
のレコード全てを自動的に含み、b)「California」という単語を含
むフォルダがある。
【0160】 このような自動フォルダは、ユーザからの明示的アクションを要することなく
目的となるレコードを自動的に補充および分類することにより、システムの利用
を容易にする。
【0161】 (テキストインデックス化システム) 本発明は、表409中のあらゆるセルに含まれるテキストを高速にサーチする
インデックス化システムを含む。各キーフレーズがセルから抽出され、所定の階
層に従ってリスト形式で格納される。例えば、リストはアルファベット順であり
得、特定の姓名を非常に高速でサーチする。
【0162】 図22は、表409からリスト495へのテキスト抽出を示す。分かり易くす
るためにリスト495を表409と別個に示しているが、本発明のこの好適な実
施形態において、リスト495は表409の一部を為す。リスト495は、セル
識別番号(例えば、リスト中の各単語に対するセル識別番号495A)を格納し
、セル識別番号は<record OID、column OID>の形式であ
り得る。例えば、「Ventura」という単語が、異なる行および異なる列に
該当するセル496、497および498に発生している。リスト495中の「
Ventura」という単語は、セル496、497、および498に対してポ
インタまたはセル識別番号を含む。
【0163】 同様に、各セルは、アンカーを用いて、キーフレーズに対する関連をセル内部
に格納する。図23に示すように、アンカーは、場所(例えば、テキストの開始
部分および終了部分のオフセット)および識別番号を含む。テキストおよびアン
カーの両方がセル496に格納される。他の種類のドメインもアンカーをサポー
トする。例えば、グラフィカル画像は、アンカーがグラフィカル画像上のポイン
ト上に位置決めされている「hot spot」の概念をサポートする。
【0164】 上述したように、各キーフレーズは、レコードとしてデータベースに格納され
、レコードのOIDは図23を参照して述べた識別番号と等しい。列の中には、
キーフレーズとして姓名を格納するものあれば、キーフレーズを含むセル識別番
号のリストを格納するものもある。キーフレーズは、やはりインデックス化が可
能な独自のコメントを有し得る。
【0165】 図22に示すように選別されたリスト495は、図24に示すようにフォルダ
として格納される。セル識別フィールド491は、該当レコードに対応する用語
を含むセルを維持する。リスト495上の各用語に対する「親フォルダ」列49
0は、その親フォルダが「Natural」というタイトルを有するインデック
スであることを示す。「Natural」フォルダは、リスト495中の用語全
てに対応するポインタを「子フォルダ」列492中に有する行499を有する。
【0166】 この「Natural」フォルダは、特定の種類のアルゴリズムにより選別さ
れたインデックスに対応する。コンピュータプログラムは一般的には、標準的な
照合シーケンス(例えば、ASCII)を用いて選別を行う。本発明は、この種
類の選別を改善し、改善された選別技術が「Natural」フォルダに対応す
る。「Natural」フォルダ中のレコードは、以下の規則に従って選別され
る: 1)リスト中、1つ以上のポイントでキーフレーズが発生し得、特に、 1a)各順列において、キーフレーズが並び替えまたは格納され得る。例え
ば、「John Smith」は、「John」に基づいてあるいは「Smit
h」に基づいて格納できる。順列中の「a」および「the」のようなノイズ的
単語は無視される。
【0167】 1b)数値または日付に関するキーフレーズは、各可能な場所に格納され得
る。例えば、「1984」は、ディジット「1984」に基づいて、「One
thousand, nine hundred…」に基づいて、あるいは「n
ineteen eighty four」に基づいて格納できる。
【0168】 2)数字を自然に選別する。例えば、「20」は、「3」の後にきて、「10
0」の前にくる。
【0169】 3)キーフレーズ中の接頭辞は無視する。例えば、「The Big Oak
」は「Big」に基づいて選別される。
【0170】 4)キーフレーズを語幹化して、「Computers」および「Compu
ting」を同一のキーフレーズレコードにマッピングする。
【0171】 以下は、キーフレーズを「Natural」フォルダに入力する場所を生成す
るためのルーチンの好適な実施形態である: 1)場合によって感度が変わる問題を回避するため、キーフレーズを大文字に
する。例えば、「John Smith the 1st」は「JOHN SM
ITH THE 1ST」となる。
【0172】 2)キーフレーズ中の各単語を標準的な技術を用いて語幹化する。例えば、「
COMPUTERS」は「COMPUT」となる。
【0173】 3)キーフレーズを並び替えて、オリジナルのキーフレーズに基づいた複数の
キーフレーズを新しく1組作成する。例えば、「JOHN SMITH THE
1ST」から、{「JOHN SMITH THE 1ST」、「SMITH
THE 1ST JOHN」、「THE 1ST JOHN SMITH」、
「1ST JHON SMITH THE」}からなる組ができる。
【0174】 4)ノイズとなる接頭辞を除去する。上記の例の場合、第3のエントリ「TH
E 1ST JOHN SMITH」を除去する。除去した後にフレーズが残っ
ていない場合、オリジナルのフレーズを用いる。例えば、「TO BE OR
NOT TO BE」のエントリは、ノイズ的単語を全て除去した後でも保存さ
れる。
【0175】 5)各結果について、数字および日付を全ての可能なテキスト表示に拡張し、
テキスト表示を数値に変換する。例えば、{「1ST JOHN SMITH
THE」から、「1ST JOHN SMITH THE」および「FIRST
JOHN SMITH THE」}の組ができる。
【0176】 6)最後に、各変更されたキーフレーズを用いて主要キーフレーズレコードに
対する関連位置を決定し、その結果に従ってフォルダ中にエントリを作成する。
例えば、「1ST JOHN SMITH THE」は、「1」と「2」との間
に格納され、「FIRST JOHN SMITH THE」は、「FIR」の
後かつ「FIS」の前に格納される。
【0177】 図33Aは、従来技術による選別アルゴリズムの結果を示し、図33Bは、本
発明による選別アルゴリズムの結果を示す。
【0178】 (キーフレーズの抽出) 本システムでは、選別したリストを生成するために、適合するセルからキーフ
レーズまたは単語を先ず抽出する必要がある。キーフレーズ抽出では多様な組み
合せを用いることができる。
【0179】 テキストを完全に抽出する場合、各単語をインデックス化し、これは、標準的
なテキスト検索システムの場合には典型的である。列について抽出する場合、標
準的なデータベースシステムに対応する列の全コンテンツをインデックス化する
。第3の種類の抽出方法である自動解析に従って、フレーズのマッチング、意味
的コンテキスト、および他の要素に基づいてテキストのコンテンツを解析し、キ
ーフレーズを抽出する。最後に、手作業による選択抽出において、ユーザまたは
アプリケーションは、キーフレーズに明示的に印を付けてインデックス化する。
【0180】 自動解析を用いると、セル中のテキストが変更される度に、「キーフレーズ」
アンカーが自動的に更新されるため、データが変わるたびに手作業でセルをリン
クさせる必要がなくなり、有利である。
【0181】 (フィールドを用いたテキストのインデックス化のサポート) 各フィールドは、それぞれ独自のフィールド定義を有するため、フィールドの
テキストをどのようにインデックス化するかを定義することができる。例えば、
「苗字」フィールドを解析して全コンテンツを重要と見なしてインデックス化す
る一方、「電話」フィールドを解析して全コンテンツを重要ではないと見なして
インデックス化を行わなくすることができる。
【0182】 構造化した情報とテキストとを組み合せると、レコード中の各セルに対して様
々な組み合せのキーフレーズの抽出を様々に用いることができ、、ユーザは最適
な組み合せを選択することができる。特に、キーフレーズに基づいて、特定フィ
ールド中のデータに対するリンクをユーザの干渉なく自動的に生成することがで
きるよう、フィールドを定義することができる。
【0183】 (リンクをデータベースに格納する利点) データベースのマテリアル(database material)を発行す
るには、データアイテム間にリンクを設ける必要がある場合が多い。従来からリ
ンクはデータとは別に保管されてきたため、マテリアルを発行する準備をするた
びにデータアイテム間を再度リンクさせる必要がある。本発明は、リンクをデー
タと一緒に格納して、リンクを自動更新することにより、2つの手順を不要とす
る。これは、リンクをサポートするが維持が困難な形式(例えば、ハイパーテキ
ストマークアップランゲージ、HTML)で発行する場合に特に有用である。さ
らに、このデータベースシステムは、リンクを用いた多様な種類のデータ形式を
生成する1つのレポジトリ用に用いることができる。
【0184】 (日付インデックス化システム) 日付インデックス化スキームは、上述したテキストインデックス化スキームに
非常によく似ている。重要日付がテキストから抽出され、「重要日付」リストに
追加される。各重要データは、「重要日付」レコードにより表示される。「重要
日付」レコードは、日付別に選別される「重要日付」フォルダに格納される。
【0185】 重要日付は、テキストから抽出される。本システムは、数値的日付(例えば、
「4/5/94」)または日付に関するテキスト(例えば、「Tomorrow
」、「next Tuesday」または「Christmas」)をサーチし
得る。図34は、図15の表のセルと選別された日付インデックスとの間の対応
を示す。
【0186】 OIDはあらゆるシステムにおいて常に同一の識別性を有するため、重要日付
レコードに所定の特別なOIDが割り当てられる。所定のOIDを日付に割り当
てると、重要日付をシステム間で共有することが可能となる。所定のOIDは、
重要日付を示すOIDであることを意味する特殊なセッション識別番号を用いる
ことにより生成される。その場合、タイムスタンプは、重要日付が生成された時
間ではなく重要日付そのものの値を表す。
【0187】 (関連クエリ) 上述したように、選別されたキーワードリストは、テキストからセルおよびテ
キストセルにレコードが対応するフォルダ中に格納されたリストとして生成され
る。テキストを含むセルはキーワードに対応するため、テキストを有するレコー
ドのリストとキーフレーズのリストとの間の関連は双方向の関係である。図25
は、この双方向の対応を示す。各レコードは複数のキーフレーズに対応でき、各
キーフレーズは複数のレコードに対応できる。
【0188】 図26は、レコードとキーワードリストとの間の双方向関連を図にしたもので
ある。各レコード(例えば、複数のレコード500中のレコード501)は、1
つ以上の重要単語エントリ(例えば、単語エントリ510)に対応し得る。同様
に、各重要単語エントリは、1つ以上のレコードに対応し得る。1つのレベルの
サーチは、(グラフのどちらかの)1つのノード(例えば、ノード502)から
開始し、リンク(例えば、リンク504)へと進み、反対側のノード(例えば、
ノード512)へと進む。例えば、ユーザが「Shasta」という単語を含む
レコードを見つけたいと考え得、先ず重要単語インデックスにアクセスして、「
Shasta」という単語を見つけ、この単語に対応するレコードを検索する。
矢印504および513は、このサーチ方法を示し、単語「Shasta」はノ
ード512に対応する。同様に、ユーザは、リンク504および506に示すよ
うに、特定のレコード中に含まれる重要単語全てを配置したいと考え得る。
【0189】 サーチは、所望のレベルに到達するまでリンクを前後に繰り返したどることに
より、拡張可能である。図27Aは、この概念を示す。一例として、あるレコー
ドでは「Shasta」がDogとして記載されており、別のレコードでは「S
hasta」がGeniusとして記載されているため、「Shasta」とい
う用語がずば抜けた頭脳を有するDogに対応する場合があり得る。ユーザが「
Shasta」と関連する単語を見つけたい場合、システムは、セル508すな
わち「Shasta」を「Shasta」という単語を含むレコード(例えば、
レコード505および507)に対応する「重要単語」フォルダ503に配置す
る。すると、「重要単語」に対応するポインタを含むレコード505および50
7は、各インデックス単語をレコードにリスト化する。「Shasta」はレコ
ード中で「Dog」および「Genius」という単語と共に現れるので、これ
らの単語がシステムにより検索される。
【0190】 この種類のサーチは、無限に拡張され得る。図27Bは、さらなる程度のサー
チを示す。上記の実施例から引き続いて、「Genius」という単語は、Di
racと「Checkers」に関連する「Dog」という単語とを参照するレ
コード中に発生し得るため、図27Bに示す複数のレベルのサーチに「Shas
ta」という単語を与えると、「Dirac」および「Checkers」が検
索される。
【0191】 各リンクおよびキーワードの種類に関連する重要度に基づいて、相関度ランキ
ングを生成することができ、レコードを相関度の高い順から表示することができ
る。好適な実施形態において、開始ポイントとして2つ以上のノードを用いる場
合、相関度は全ノードからの距離に基づく。このようにして、全ての最初のノー
ドに近いノードのみが高い相関度を有することになる。距離を用いない別の多く
の相関度ランキングも用いられ得る。
【0192】 サーチを高精度にするため、追従するリンクを制限するためにフィルタを用い
ることができる。例えば、サーチは、「Person」の種類のみがリストされ
るようにフィルタリングされ得るため、上記の実施例ではShastaはChe
ckersではなくDiracと関連付けられる。
【0193】 (知識ベースおよびシソーラス) 本発明の好適な実施形態は、サーチ能力をさらに増強する知識ベースおよびシ
ソーラスを含む。
【0194】 シソーラス中に含まれる各重要単語レコード(用語)は、「概念」レコードに
対応するポインタを含む。各概念レコードは、別の概念レコードと各概念の境界
内に含まれる用語とに対応するポインタを含む。図28は、シソーラスの構造を
示す。表409は、「親概念」列522、「概念名」列524、「シノニム」列
526、「より詳細な用語」列528、「より一般的な用語」列530および「
参照」列532を含む。概念レコード520は「IBM」という概念を定義し、
シノニム列526は、IBMと同義のレコードと、「IBM」という値の付いた
ラベルフィールドを有するレコード521と、「International
Business Machines」という値の付いたラベルフィールドを有
するレコード523とに対応する。レコード521および523は、「親概念」
フィールド中に親概念レコード520に対応するポインタを有する。
【0195】 図28に示すシソーラス構造は、正確なシノニムよりもさらに高い柔軟性を提
供する。重要度のパーセンテージが最初の用語「IBM」と関連用語「IBM
PC」との間の類似性を反映する場合に100%の重要度を割り当てると、「I
BM」と関連する概念レコード520の「より詳細な用語」列528は、IBM
と関連する概念レコード525に対応する。同様に、60%の重要度を割り当て
ると、「IBM」と関連する概念レコード520の「より一般的な用語」列53
0は、コンピュータ会社と関連する概念レコード527に対応する。重要度のパ
ーセンテージが最初の用語「IBM」と関連用語「IBM PC」との間の類似
性を反映する場合に70%の重要度を割り当てると、「参照」列532は、「M
icrosoft」という概念と関連するレコード529に対応する。
【0196】 図28に示すシソーラスは、図25〜27Bを参照して前述したサーチメカニ
ズムを増強する。本システムでは、先ずキーワードに関連するレコードを見つけ
、そのキーワードに対応する親概念レコードを見つけ、次いで列526、528
、530、および532中のポインタのいくつかまたは全てをたどり、「概念名
」列524中に格納されているOIDを戻す。
【0197】 本システムではキーフレーズおよび概念をレコードとして格納するため、シス
テム中に格納する知識および情報を拡張するために他のあらゆる列が用いられ得
る。特に、OIDの使用を通じて、本システムは、類義語的関係以外の関係を含
む、キーフレーズ、概念、および他のレコード間のあらゆる種類の関係を格納す
ることができる。
【0198】 (アプリケーションサポート) 本発明のデータベースについて、本発明を主要格納および検索システムとして
用い得るアプリケーションとのインターフェースについて言及することなく説明
をしてきた。図14を参照して前述したように、本発明のデータベースは、アプ
リケーションプログラムをサポートするインターフェースを含む。アプリケーシ
ョンサポートシステム中の構成要素としては、外部文書サポート、ハイパーテキ
スト、文書管理およびワークフロー、カレンダー機能およびスケジューリング、
セキュリティおよび他の機能がある。
【0199】 さらに、本発明は、本発明のデータベース構造へのフルアクセスを提供するよ
う開発されてきた様々なユーザインターフェース構成要素を含む。特に、新しい
種類の構造化されたワードプロセッサが提示される。本明細書は、アプリケーシ
ョンサポートシステムの各構成要素について別々に説明する。
【0200】 (外部文書) 本発明は、外部文書のインデックス化をサポートする。ファイルのコンテンツ
がデータベース中に直接格納されていない場合、表409は文書(例えば、ワー
ドプロセッサ文書等)のファイル名を格納する。ファイルの内容はデータベース
に直接格納されない。文書名は、専用の「外部文書」ドメインを有する列中に格
納され得る。外部文書は、デバイス制御36を通じてシステムとインターフェー
スをとる大容量メモリ32またはマルチソース中に存在し得る。
【0201】 表409の外部にある文書をインデックス化する際、外部文書を処理前に単純
なテキスト形式に変換する。次いで、前述したようにキーフレーズを抽出する。
特に、テキスト中のフィールドを決定してデータベース中のフィールドにマッピ
ングすることができる。例えば、「Memo」文書は、「To: John S
mith. From: Mary Doe」といったテキストを含み得る。こ
のテキストは、「to」および「from」と呼ばれるフィールドにマッピング
でき、マッピングに応じてこれらのフィールドの値を設定することができる。こ
のようなテキスト解析は、異なる種類の外部文書(例えば、メモ、法律文書、表
計算、コンピュータソースコード、および他のあらゆる種類の文書)用に変更す
ることができる。抽出されたキーフレーズの各々について、テキスト中の開始ポ
イントおよび終了ポイントが決定される。前述した形式のアンカーのリスト(開
始、終了、キーフレーズ)がパーサーにより生成され、外部文書ドメイン下の表
409中に格納される。
【0202】 (外部文書の閲覧) ユーザが外部文書を表示画面37上で閲覧する場合、格納されているアンカー
が文書上にオーバーレイされ、これにより外部文書は、ハイパーテキストで印を
付けられているように見える。ユーザが外部文書表示の一部分上をマウス50の
スイッチ45または47でクリックすると、様々な開始座標および終了座標から
対応するアンカーが決定される。アンカーに対応するキーフレーズのOIDは、
アンカー中に格納され、キーフレーズレコードを検索したり、または前述したよ
うにクエリを開始したりするのに使用することができる。
【0203】 (ダイナミックハイパーテキスト) 本発明は、従来のハイパーテキストをサポートする。従来のハイパーテキスト
システムは典型的には、図29に示すように、テキスト領域と別のレコードに対
応するポインタとを関連付ける。これにより、ソースとターゲットとの間に「ハ
ードコードされた」リンクが生成される。ユーザがソース領域をクリックすると
、ターゲットレコードがロードされ、表示される。ターゲットレコードが無い場
合、ハイパーテキストジャンプは行われず、深刻な結果となり得る。
【0204】 本発明のシステムは、レコード間のダイナミックな関連に基づいた新しいアプ
ローチを用いる。好適な実施形態において、各ハイパーテキスト領域(例えば、
領域540)は、通常のレコードではなくキーフレーズと関連付けられる。ユー
ザがソース領域541上をマウス50のスイッチ45または47でクリックする
と、キーフレーズに関連するレコード542全てが検索され、前述した関連のサ
ーチ技術のうち任意のサーチ技術を用いてランク付けされる。次いで、図30に
示すように、アプリケーションは、表示画面37上に最高ランクのアイテム(例
えば、アイテム543)かまたは検索されたアイテム全てのいずれかを表示する
ことができ、ユーザがアクセスしたいアイテムを選択することを可能にする。
【0205】 特定のアプリケーションにおいて、ユーザは、1つの「デフォルト」アイテム
(例えば、アイテム543)にアクセスしたいと考え得る。このアイテムは、ダ
イナミックに生成されたリストの最上位のアイテムを選択することにより自動的
に決定するか、またはユーザがそのアイテムを明示的に選択してその選択をアン
カー自体に保存することにより手動で決定することができる。
【0206】 (注釈) 本発明のデータベースは、既存のレコードに「注釈」フィールドを追加するか
またはオリジナルのレコードに対応する「注釈」レコードを新しく生成すること
により、あらゆるレコードに注釈およびコメントを付け加える能力を含む。従来
技術の注釈付けメカニズムとは異なり、本発明の注釈付けメカニズムは、データ
ベース中に完全に統合され、インデックス化、ハイパーテキストの適用、フォル
ダへの配置等の用途に利用可能である。
【0207】 (一般的なワードプロセッサ) 本発明のデータベースは、表409と共に用いられ得る新規な構造のワードプ
ロセッサを含む。
【0208】 本発明のこの構造化されたワードプロセッサは、Donald Knuthに
よりTEXに導入された「ボックスおよびグルー(boxes and glu
e)」パラダイムを用いる。このパラダイムによれば、テキストのページは、個
々の文字から開始して文字を連結して「ボックス」と呼ばれるより大きな単位を
形成し、これらのボックスをさらに大きなボックスに組み合せることにより生成
される。図31Aは、単語ボックス550を形成するように連結された3つの文
字ボックス551、553、および555を示す。図31Bは、水平ラインボッ
クス557を形成するように結合された4つの単語ボックス552、554、5
56、および550を示す。水平ボックスは、別のボックス内部で水平方向に間
隔をおいて配置された単語または他のテキストトークン(例えば、ライン(また
は列幅))用に用いられる。図31Cは、水平ラインボックス557と別の水平
ラインボックス559とを組み合せて垂直ボックス558を形成したものを示す
。垂直ボックスは、別のボックス中に垂直に間隔をおいて配置されるパラグラフ
または他のオブジェクト(例えば、ページ高さ)用に用いられる。
【0209】 ボックスは、「グルー」を用いて他のボックスにアタッチされ得る。グルーは
、必要に応じて延伸または収縮可能である。例えば、位置揃えされた文章におい
て、単語間の余白が延伸され、これにより単語は列の適切な端部に整列するよう
になる。グルーは、(水平方向の)文字間間隔、タブマークに「付着する」「タ
ブ」グルーを含む(水平方向の)単語間間隔用に使用可能である。グルーはまた
、(垂直方向の)行間間隔および(垂直方向の)パラグラフ間間隔用にも使用可
能である。
【0210】 表409のレコードが編集される際、各単語およびフィールド定義は、ボック
スに変換される。図32に示すように、本システムは、これらのボックスを木構
造のラインボックスおよびパラグラフボックスに編成する。図示しているのは、
レコードの階層に対応するレコード構造階層560およびレイアウトの階層に対
応するレイアウト階層570(例えば、図31A〜31Cを参照して説明したワ
ードプロセッサにより生成された文書等)である。レコード階層560は、表4
09のレコード構造を表し、レコード562は、表409中の行に対応し、表4
09の列に対応する属性564を含む複数の属性を含む。次に、これらの属性は
、多様なアイテムを含み得る。例えば、属性564は、図示されるようにブロッ
ク566により表されるテキストと、ブロック568により表されるフィールド
リファレンスと、他のアイテムとを含む。
【0211】 次に、レイアウト階層570は、複数のページ(例えば、ページ574)を含
む文書572を含む。 ページ574は、パラグラフ576および578を含む
複数のパラグラフを含み、パラグラフ576は、ライン577および579を含
む複数のラインを含む。パラグラフ578はライン579を含む。
【0212】 本発明のワードプロセッサは、レコード構造階層560およびレイアウト階層
570の両方に共通であるボックス565、567、および569を含む複数の
ボックスを提供することにより、文書572をレコード562に挿入することを
可能にする。例えば、ボックス565は、ライン577の一部に対応し、属性5
64のテキスト566の一部を含む。同様に、ボックス567はライン579の
一部に対応し、ブロック568に示すようなフィールドリファレンスを含み得る
。従って、図32に示すような共用ボックス構造を用いれば、あらゆる種類のワ
ード処理文書と表409中のあらゆるレコードとの間にインターフェースを設け
ることができる。
【0213】 概念的には、各ボックスは、ビットマップとして保管され、その高さおよび幅
は既知であるので、本システムは、木構造中のボックスに対応するビットマップ
全てを表示することにより、木構造571を表示する。例えば新しく単語を追加
などすることにより、木構造が変化すると、新しい単語ボックスおよび比較的少
数の隣接ボックスのみを再計算すればよい。同様に、ライン区切りすなわちパラ
グラフの再構造があっても、ほとんどの単語ボックスは影響を受けずに再使用さ
れ、ラインボックスのみを再計算すればよい。図32に示すような木構造571
を編集するため、ユーザはテキストの一部上でカーソルをクリックし得る。本シ
ステムは、木構造571中を反復的な降順で、編集される単語ボックスまたはグ
ルーを配置する。
【0214】 ワードプロセッサは、複数のフォントおよび特殊効果(例えば、下付き文字、
ドロップキャップ、およびグラフィックオブジェクトを含む他の機能)をサポー
トする。基本フォントと異なるフォントの単語は、異なるボックス中にあり、ラ
イン上の他のボックスと異なる高さを有し得る。ラインボックスの高さは、その
ラインボックス中で最大の単語ボックスの高さである。単語中の効果は、単語を
グルーを介在させずに下位ボックスに分割することにより処理できる。ここでも
、単語ボックスの高さは、単語ボックス中の最大のボックスの高さである。ビッ
トマップ等のグラフィックオブジェクトは、固定幅のボックスとして処理および
フォーマットされ得る。
【0215】 本発明のワードプロセッサは、表409中のレコードを編集するために用いら
れ得る。レコード中の各フィールドに関連するテキストは、フィールド間間隔、
フィールド中でのテキストフロー、および他のフォーマット化パラメータの目的
のための「パラグラフ」として見なすことができる。テキスト編集中に全フィー
ルドを同じ方法で格納すれば、テキストの動きおよび「フロー」を自然に見せる
ことができる。
【0216】 上述したように、編集対象のテキストはフィールドに分割され、各フィールド
は基本であるデータベース中の列に対応する。従来のスタティックデータエント
リフォームとは異なり、属性の位置およびサイズは一定ではなくダイナミックで
あり、レコードフィールドを編集する際、ワードプロセッサの全機能(例えば、
フォント、埋め込みグラフィック等)が利用可能である。
【0217】 同様に、このワードプロセッサでは、データベースの全機能(例えば、ルック
アップおよびメールマージ等)が利用可能である。特定のフィールドのデータエ
ントリに適合する属性全てが、このワードプロセッサにより実施される。このよ
うな属性は、マスク(例えば、###−####)、存在要件、範囲および数値
に関する制約等を含み得る。フィールドは、明示的にラベル付けもでき、あるい
は隠蔽および暗示も可能である。
【0218】 本発明のワードプロセッサは、フィールド名の接頭辞をタイプしてボタンを押
すことにより、現存するフィールドに追加を行うことを可能にする。次いで、本
システムは、残りのフィールド名を自動的に補完する。
【0219】 本発明のワードプロセッサは、他のデータベース機能をサポートする。例えば
、ユーザは、ポップアップダイアログボックスを用いることにより、新しいフィ
ールドを生成することができる。同様に、他のレコードへの関連または重要単語
もダイアログボックスにより追加可能である。特に本発明の表409に関して、
OIDリファレンスは、別のフィールド中のフィールドをサポートし得、別のフ
ィールド中の特定のフィールドは、テキスト中に埋め込まれたフィールドレファ
レンスのリストである「テンプレート」の使用をサポートする。例えば、「En
ter the first name here <fieldref id
=firstName>and the last name here<fi
eldref id=lastName>」というテンプレートは、ユーザには
「Enter the first name here: John and
the last name here: Doe.」と見える。テンプレー
トを用いると、ユーザは、複雑なフォーム描画ツールを用いなくてもダイナミッ
クフォームを容易かつ短時間に作成することができる。
【0220】 あらゆる組み合せのフィールドまたはレイアウトは、名前を付けてテンプレー
トとして保存および再使用可能である。このようなテンプレートは、フィールド
のフォーマットおよびレイアウト全てを保管するが、実際のフィールドデータ自
体は含まず、その代わりワードプロセッサ中のデータ用のプレースホルダとして
機能する(上述したような)空フィールドリファレンスを含む。
【0221】 本発明のワードプロセッサのユーザインターフェースを用いると、ユーザは、
2つのデータ入力モードを切り替えることができる。本発明のワードプロセッサ
は、1つのレコードへの入力を一度に自在に行うために用いられ、一方、列表示
は、データを列に入力するために用いられる。ユーザは、これらの2つの表示間
をデータ損失無く切り換えて往復することができ、ワードプロセッサから列表示
に切り換わると、1つのアイテムに入力されたフィールドは、列表示に表示され
る列になる。
【0222】 最後に、ワードプロセッサ表示に現れている「フィールド中のフィールド」は
、列表示中の列に分割される。すると、ユーザは、列モードで変更することがで
きるようになり、再び切り換えてワードプロセッサ表示に戻ると、列が再度組み
合わされる。
【0223】 (構造化eメール) 本発明の特定の用途は、「構造化された」eメールの生成、自動インデックス
化、編成および検索をサポートすることである。構造化eメールは、メッセージ
の本文中にフィールドおよび他の構造情報を格納する従来のeメールを改変した
ものである。上述したように、本発明は、ワードプロセッサおよびテンプレート
の使用を通じて、eメールに必要なデータを自在に入力することをサポートし、
このようなeメールの管理工程、インデックス化工程、および検索工程に本明細
書中に説明した利点全てを提供する。
【0224】 1995年2月3日に出願された、「Method and Apparat
us for a Physical Storage Architectu
re for a Shared File Environment」という
名称の本出願と同時係属中の特許出願第08/384,706号に記載されてい
る分散型格納システムおよびeメール転送(例えば、Simple Mail
Transport Protocol、SMTP)と共に用いると、本発明は
、eメールの有利なインプリメンテーションを提供する。
【0225】 (パスワード) 特定のデータアイテムへのアクセスを特定のユーザに限定しなければならない
場合がよくある。これらの限定を適用するために、情報管理システムは、アクセ
スを要求するユーザの同一性を判定する必要がある。同一性判定は、現在2種類
の方法で行われており、1つの方法としては、ユーザからのリクエスト情報の使
用について独自の特性を物理的に測定する方法があり、もう1つの方法としては
、現行のほとんどの情報管理システムが依存している「パスワード」を用いる方
法がある。しかし、パスワードシステムに関するセキュリティの問題を回避する
ために、以下の3つのガイドラインをパスワードに適用する: a)システムに侵略する者は、力ずくのアプローチおよびパスワードを類推す
る辞書を用い得るので、パスワードを作成するのに一般的な言葉は用いるべきで
はない。
【0226】 b)パスワードは、短いよりも長くあるべきである。
【0227】 c)パスワードを頻繁に変更して、パスワードが盗まれた場合にでも、パスワ
ードが長期間有効にならないようにすべきである。
【0228】 最後に、パスワードは、決して何かに書き留めたり、ログインスクリプトに埋
め込んだりするべきではなく、常時双方向であるべきである。
【0229】 本発明のパスワードシステムによれば、ユーザの同一性は、広範囲にわたる質
疑応答のやり取りを通して判定される。特定の個人的な質問に対する応答は、ユ
ーザの同一性を非常に正確かつ短時間で確認する。質疑応答が続くうちに、いか
に精巧な模倣者でも、最後には正確に応答することができなくなる。
【0230】 例えば、質問の例としては、「朝食のシリアルであなたの好みのものはなんで
すか?」; 「1990年4月にあなたはどこにいましたか?」; 「あなたの
歯ブラシの色は何色ですか?」などがある。これらの質問は広範囲に亘っており
、模倣は困難である。さらに、正しい応答は、非常に大きな解空間を伴う自然な
英語の文章で行われるため、力ずくのアプローチが成功することはまず無い。
【0231】 応答の有効性を高めるのにユーザの応答と格納された回答とを正確にマッチン
グする必要は無く、本発明のシノニム、シソーラスおよび他の機能に従って「フ
ァジー」および「関連」マッチングを用いることができる。
【0232】 本発明のパスワードシステムによれば、ユーザは、質問リストおよび対応する
回答を作成し、このリストは格納される。ユーザは、これらの質問を完全に把握
しているので、質問および回答を作成するプロセスを楽しいと感じ得、その結果
、質問および回答リストを頻繁に変更し得、システムのセキュリティがさらに増
強される。
【0233】 好適な実施形態によれば、ユーザは、50〜100の質問および回答のリスト
を作成し、このリストは暗号化され、格納される。質問は全て新しいものであり
得、または興味深い質問の大規模データベースに基づき得る。ユーザがシステム
にログオンすると、システムは、ユーザに関連する質問のうち1つをランダムに
選択し、その質問をユーザに提示する。次いで、ユーザは応答をタイプし、その
応答は正しい回答とマッチングされる。マッチングは、上述したようにファジー
または関連を用いて行うことができる。応答が正しくマッチングすると、アクセ
スが許可される。
【0234】 別の実施形態において、特定のリスク閾値に達するまで繰り返し質問をするこ
とによりセキュリティがより強固になり得る。例えば、「あなたの歯ブラシの色
は何色ですか?」への回答が「赤」という単語一語である場合は、力ずくの類推
が有効になり得る。このシナリオの場合、質問を繰り返し行うと、力ずくの類推
が成功する確率が低減する。
【0235】 特許法の規定に従って本発明を説明してきたが、当業者であれば、その特定の
要件または条件を満たしながら、本発明の変更および改変方法を理解する。
【図面の簡単な説明】
【図1】 図1は、本発明の教示内容を組み込んだ1つの可能なコンピュータシステムを
示す機能的ブロック図である。
【図2】 図2は、クライアント−サーバアーキテクチャにおける本発明のパーティショ
ン構造を示すブロック図である。
【図3】 図3は、図2のパーティション間のリンケージ、およびファイルが1つのパー
ティションから別のパーティションへと転送される様子を示す図である。
【図4A】 図4Aは、1つ以上のパーティション内に存在することができる追加可能リス
トデータアイテムの構造を示す図である。
【図4B】 図4Bは、1つ以上のパーティション内に存在することができる追加可能テキ
ストデータアイテムの構造を示す図である。
【図5】 図5は、本発明の教示内容によるデータアイテムの読み出しおよび書き込みの
フローチャートである。
【図6】 図6は、ジャーナルパーティションに配置されたファイルをライブラリパーテ
ィションに配置されたファイルへと結合する動作を示す図である。
【図7】 図7は、データを統合ファイルへ書き込むための、本発明の工程の順序を示す
フローチャートである。
【図8】 図8は、統合ファイルを統合するための、本発明の工程の順序を示すフローチ
ャートである。
【図9】 図9は、統合ファイルをライブラリファイルに結合するための、本発明の工程
の順序を示すフローチャートである。
【図10】 図10は、好適な実施形態におけるジャーナルパーティションファイルの構造
を示す図である。
【図11】 図11は、ジャーナルパーティションに格納されたオブジェクトの構造を示す
図である。
【図12】 図12は、ジャーナルファイルからデータアイテムを挿入し、更新し、そして
消去するためのフローチャートである。
【図13】 図13は、ジャーナルファイルに格納されたオブジェクトを物理的メモリのブ
ロックにマッピングするテーブルを格納するための、本発明の「センチネル」機
能を示す図である。
【図14】 図14は、本発明のメインコンポーネントを示すブロック図である。
【図15】 図15は、本発明のデータベースのテーブル構造を示す図である。
【図16】 図16は、図15のテーブルにおけるロウおよびカラムを規定するオブジェク
ト識別番号(OID)を計算する方法のフローチャートである。
【図17】 図17は、本発明のカラム同期化機能を示す図14のテーブルの一部の図であ
る。
【図18】 図18は、図15のテーブルをサーチする方法のフローチャートである。
【図18A】 図18Aは、図15のテーブルのカラムを同期化するためのフローチャートで
ある。
【図18B】 図18Bは、カラムを同期化した結果を示す図である。
【図19A】 図19Aは、1つのカラム内で別のカラムへの参照を示す図である。
【図19B】 図19Bは、カラム内で別のカラムへ参照するための代替的実施形態を示す図
である。
【図20】 図20は、特定のレコードのうちどのカラムが値を有するかを示す本発明の「
レコードコンテンツ」カラムを示す図である。
【図21】 図21は、レコードを編成するフォルダ構造を示す図である。そのフォルダ構
造は、図15のテーブル内に格納される。
【図22】 図22は、図15のテーブルのセルとソートしたキーワードインデックスとの
間の対応を示す図である。
【図23】 図23は、セル内のワードとキーワードインデックスレコードとを関連させる
セル内の「アンカー」を示す図である。
【図24】 図24は、図15のテーブルに格納されたキーワードインデックスレコードを
示す図である。
【図25】 図25は、特定のデータレコードとキーワードインデックスレコードとの間の
関連性を示す図である。
【図26】 図26は、図25の関連性をグラフィカル形式で示す図である。
【図27A】 図27Aは、拡張されたサーチをグラフィカル形式で示す図である。
【図27B】 図27Bは、さらに拡張されたサーチをグラフィカル形式で示す図である。
【図28】 図28は、図15のテーブルに格納された本発明のシソーラス構造を示す図で
ある。
【図29】 図29は、従来技術によるハイパーテキストを示す図である。
【図30】 図30は、本発明のハイパーテキスト機能を示す図である。
【図31A】 図31Aは、本発明のワードプロセッサの特徴およびワードボックス構造を示
す図である。
【図31B】 図31Bは、本発明のワードプロセッサのワードおよび水平ラインボックス構
造を示す図である。
【図31C】 図31Cは、本発明のワードプロセッサの垂直方向のボックス構造を示す図で
ある。
【図32】 図32は、本発明のワードプロセッサのボックス木構造を示す図である。
【図33A】 図33Aは、従来技術によるアルゴリズムを選別した結果を示す図である。
【図33B】 図33Bは、本発明によるアルゴリズムを選別した結果を示す図である。
【図34】 図34は、図15のテーブルのセルと選別したデータインデックスとの間の対
応を示す図である。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 17/30 240 G06F 17/30 240A 240B (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AL,AM,AT,AU,AZ,BA,BB ,BG,BR,BY,CA,CH,CN,CU,CZ, DE,DK,EE,ES,FI,GB,GE,GH,H U,IL,IN,IS,JP,KE,KG,KP,KR ,KZ,LC,LK,LR,LS,LT,LU,LV, MD,MG,MK,MN,MW,MX,NO,NZ,P L,PT,RO,RU,SD,SE,SG,SI,SK ,SL,TJ,TM,TR,TT,UA,UG,US, UZ,VN,YU,ZW

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1つのコンピュータを備えるコンピュータネット
    ワーク上の論理表にしたがって構成されたメモリ中にある共通ファイルへの同時
    アクセスを提供する方法であって、 拡張可能な論理表を構成する工程であって、該論理表は、 複数の行であって、各該行は、各該行を同定するためのオブジェクト識別
    番号(OID)を含み、各該行は情報のレコードに対応する、行と、 該複数の行と交差して、基本的な格納単位である複数のセルを規定する複
    数の列であって、各該列を識別するOIDを含む、列と、 を含み、 少なくとも1つの行は、複数のラベル付きの列に関連を有するフィールドセ
    ルを含み、 該少なくとも1つのコンピュータ上の該論理表をパーティション化して、先
    ず、第1のパーティションを第1のユーザに提供して、該第1のユーザに対応す
    るファイルの更新情報を格納し、該論理表は該第2のユーザにとって少なくとも
    部分的にアクセス不可となる、工程と、 該少なくとも1つのコンピュータ上の該論理表をパーティション化して、第
    2のパーティションを該第2のユーザに提供して、該第2のユーザに対応するフ
    ァイルの更新情報を格納し、該論理表は第1のユーザにとって少なくとも部分的
    にアクセス不可となる、工程と、 該少なくとも1つのコンピュータ上の該論理表をパーティション化して、該
    第1および第2のユーザパーティションから選択された更新情報を格納して第1
    の共通パーティションを作成し、これにより、該第1位および第2のユーザは、
    それぞれ該第1および第2のパーティションを備える関連付けられたパーティシ
    ョンチェインおよび該共通パーティションを有する工程と、 共通データを変更せずに第1のユーザ更新データを該第1のパーティション
    に格納する工程であって、該第1のユーザが更新を行った日付は、該共通データ
    ファイルに対して該第1のユーザが行った変更に対応する、工程と、 共通データを変更せずに第2のユーザ更新データを該第2のパーティション
    に格納する工程であって、該第2のユーザが更新を行った日付は、該共通データ
    ファイルに対して該第2のユーザが行った変更に対応する、工程と、 該第1の共通パーティション中の該第1および第2のユーザパーティション
    から、所望の更新情報を選択的に格納する工程と、 該第1の共通パーティションへのアクセスを該第1および第2のユーザの各
    々に提供する工程と、 を包含する方法。
JP2000578750A 1998-08-04 1999-08-03 共用ファイル環境用の改良された情報格納および検索システムを有する物理格納アーキテクチャのための方法および装置 Pending JP2002528821A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/128,922 US6182121B1 (en) 1995-02-03 1998-08-04 Method and apparatus for a physical storage architecture having an improved information storage and retrieval system for a shared file environment
US09/128,922 1998-08-04
PCT/US1999/017551 WO2000025235A1 (en) 1996-04-10 1999-08-03 Method and apparatus for a physical storage architecture having an improved information storage and retrieval system for a shared file environment

Publications (1)

Publication Number Publication Date
JP2002528821A true JP2002528821A (ja) 2002-09-03

Family

ID=22437628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000578750A Pending JP2002528821A (ja) 1998-08-04 1999-08-03 共用ファイル環境用の改良された情報格納および検索システムを有する物理格納アーキテクチャのための方法および装置

Country Status (3)

Country Link
EP (1) EP1101176A1 (ja)
JP (1) JP2002528821A (ja)
AU (1) AU5463599A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020514899A (ja) * 2017-03-15 2020-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 最適化したビットマップ表現を用いる大規模の関連付けセットの管理

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020514899A (ja) * 2017-03-15 2020-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 最適化したビットマップ表現を用いる大規模の関連付けセットの管理
JP7030831B2 (ja) 2017-03-15 2022-03-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 最適化したビットマップ表現を用いる大規模の関連付けセットの管理
US11372831B2 (en) 2017-03-15 2022-06-28 International Business Machines Corporation Managing large scale association sets using optimized bit map representations

Also Published As

Publication number Publication date
AU5463599A (en) 2000-05-15
EP1101176A1 (en) 2001-05-23

Similar Documents

Publication Publication Date Title
US6182121B1 (en) Method and apparatus for a physical storage architecture having an improved information storage and retrieval system for a shared file environment
US5893087A (en) Method and apparatus for improved information storage and retrieval system
US5499359A (en) Methods for improved referential integrity in a relational database management system
US7076736B2 (en) Method and apparatus for sharing many thought databases among many clients
EP0451384B1 (en) Hypertext data processing system and method
US5790848A (en) Method and apparatus for data access and update in a shared file environment
US7305613B2 (en) Indexing structured documents
US6918096B2 (en) Method and apparatus for displaying a network of thoughts from a thought's perspective
US5991776A (en) Database system with improved methods for storing free-form data objects of data records
US7734577B2 (en) Composite user interface and framework
US6327593B1 (en) Automated system and method for capturing and managing user knowledge within a search system
US7797336B2 (en) System, method, and computer program product for knowledge management
US5010478A (en) Entity-attribute value database system with inverse attribute for selectively relating two different entities
US20040215600A1 (en) File system with access and retrieval of XML documents
EP1176523A2 (en) System for providing extended file attributes
WO1997038380A1 (en) Method and apparatus for a physical storage architecture for a shared file environment
KR20090028758A (ko) 정보 재사용 방법, 정보 제공 방법, 편집 가능한 문서, 및 문서 편집 시스템
US20040078355A1 (en) Information management system
US20020089551A1 (en) Method and apparatus for displaying a thought network from a thought's perspective
US7337187B2 (en) XML document classifying method for storage system
JPH0550774B2 (ja)
US8065605B2 (en) Indexing structured documents
JP2002528821A (ja) 共用ファイル環境用の改良された情報格納および検索システムを有する物理格納アーキテクチャのための方法および装置
KR100493399B1 (ko) 정보검색 관리시스템 및 그 방법
Abiteboul Object database support for digital libraries

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090514

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091014