(57)【要約】複数の階層的レベルと階層的深度（204）を有し、個々のレコードが固有なタグを持つ階層的レコード集合の中でレコードを検索（202）するための方法、装置及びコンピュータ読み込み可能な記憶媒体であって、当該階層的レコード集合中の１つのレコードを同定すること、前記タグを修正することによりキーを作製すること、当該階層的レコード集合に一度だけインデックスを付し、それにより当該階層的レコード集合内にある１つもしくは複数のレコードを選択するものであって、その際、階層的レコード集合に一度だけインデックスを付すことで、当該階層的レコード集合に前記キーを適応（208）せしめること、及び選択されたレコードを取り出す（210）ことから構成される。
2005519370.tif 000002
【特許請求の範囲】
【請求項１】
複数の階層レベルと複数の階層的深度を持ち、個々のレコードがその階層的集合の中で固有のタグを有する階層的レコード集合においてレコードを検索する方法であって、同レコードを検索する方法は、
当該階層的レコード集合中の１つのレコードを同定し、
前記タグを修正することによりキーを作製し、
当該階層的レコード集合に一度だけインデックスを付与し、それにより当該階層的レコード集合内にある１つもしくは複数のレコードを選択するものであって、前記インデックスの付与は当該階層的レコード集合に前記キーを適用して行なわれ、さらに
前記選択されたレコードを取り出す
ことから構成される。
【請求項２】
キーの適用は、当該キーに対応するタグを有するレコードの階層的集合よりそれらのレコードを選択することからなる請求項１に記載のレコードを検索する方法。
【請求項３】
ある一つのレコードの同定は、ユーザーからのある一つのレコードの選択を受け、さらに当該ユーザーからのコマンドを受け、そして当該ユーザーからの前記コマンドに基づいて前記タグを修正することからなる請求項２に記載のレコードを検索する方法。
【請求項４】
個々のレコードが一つあるいはそれ以上のフィールドを有し、そしてさらに、検索されたレコードのすべてのフィールドをディスプレイ上で提示し、その際にディスプレイ上の各フィールドの位置が、その検索されたデータの階層的な深度とレベルに対応したものである請求項３に記載のレコードを検索する方法。
【請求項５】
タグが複数の桁をもつ数字であり、それぞれの桁が階層の深度を表し、かつその桁の数値が階層のレベルを表し、タグの修正は、ユーザーからの要求に応じて少なくとも一つの桁を選択し、さらにユーザーからの要求に応じてその選択された桁の数値を変えることからなる請求項２に記載のレコードを検索する方法。
【請求項６】
タグが複数の桁をもつ数字であり、それぞれの桁が階層の深度を表し、かつその桁の数値が階層のレベルを表し、さらに同定された一つのレコードの子レコードを検索するユーザーからの要求があり、タグの修正は、対応するレコードの階層深度に合致する一つの桁を選択し、そしてその桁の下位の桁の数値をワイルドカード値にセットすることからなる請求項２に記載のレコードを検索する方法。
【請求項７】
タグが複数の桁をもつ数字であり、それぞれの桁が階層の深度を表し、かつその桁の数値が階層のレベルを表し、さらに同定された一つレコードの親レコードを検索するユーザーからの要求があり、タグの修正は、対応するレコードの階層深度に合致する一つの桁を選択し、そしてその桁の数値をヌル値にすることからなる請求項２に記載のレコードを検索する方法。
【請求項８】
個々のレコードがメッセージ及びフォルダである請求項２に記載のレコードを検索する方法。
【請求項９】
複数の階層的深度と複数の階層的レベルを有し、個々のレコードがそのレコード集合内で固有のタグを有する階層的レコード集合に新たなレコードを付加する方法であって、同レコードを付加する方法は、
前記階層的レコード集合内の一つのレコードを、新たに付加されるレコードの親レコードとして同定し、
前記タグを修正することでキーを作製し、
新たに付加されたレコードにキーを付加し、さらに、
前記階層的レコード集合に一度だけインデックスを付け、そのことで階層的レコード集合に一つのレコードを付加し、前記インデックスの付与は、前記階層的レコード集合にキーを適用して行なうことから構成される。
【請求項１０】
一つのレコードの同定は、ユーザーによる一つのレコードの選択を受けることからなる請求項9に記載のレコードを付加する方法。
【請求項１１】
タグが複数の桁をもつ数字であり、それぞれの桁が階層の深度を表し、かつその桁の数値が階層のレベルを表し、同定されたレコードが一つのメッセージであり、前記レコードの同定は、ユーザーからの返信要求のある一つのメッセージを受信することからなり、
前記タグの修正は、同定されたレコードのタグの階層的深度を表す桁の一つ下の桁を選択して、その値をインクリメントすることからなる請求項10に記載のレコードを付加する方法。
【請求項１２】
キーの適用は、階層的レコード集合の中から当該キーに対応するタグを有するレコード群を選択することによって行われる請求項9に記載のレコードを付加する方法。
【請求項１３】
タグが複数の桁をもつ数字であり、それぞれの桁が階層の深度を表し、かつその桁の数値が階層のレベルを表すタグである請求項9に記載のレコードを付加する方法。
【請求項１４】
複数の階層的深度と複数の階層的レベルを有し、個々のレコードがそのレコード集合内で固有のタグを有する階層的レコード集合の中のレコードを選択する方法であり、その選択の方法は、
階層的レコード集合の中の一つのレコードを同定し、
タグを修正し、階層的レコード集合より一つ以上のレコードを選択し、その段階で階層的レコード集合に一度だけインデックスを付けて階層的レコード集合に修正されたタグを適用する、
レコードの選択方法。
【請求項１５】
タグが複数の桁をもつ数字であり、それぞれの桁が階層の深度を表し、かつその桁の数値が階層のレベルを表すタグである請求項14に記載のレコードの選択方法。
【請求項１６】
キーの適用は、階層的レコード集合の中から当該キーに対応するタグを有するレコード群を選択することによって行われる請求項14に記載のレコードの選択方法。
【請求項１７】
複数の階層的深度とレベルを有し、個々のレコードがそのレコード集合内で固有のタグを有する階層的レコード集合から、ある一つのレコードを検索するための処理を実行するようプログラムされた少なくとも一台のコンピュータであり、当該コンピュータのデータプロセッシングは、
前記階層的レコード集合の中から一つのレコードを同定し、
タグを修正することでキーを作製し、
前記階層的レコード集合に一度だけインデックスを付与することで階層的レコード集合より一つもしくはそれ以上のレコードを選択するもので、その際に階層的レコード集合に一度だけインデックスを付与することで階層的レコード集合にキーを適用し、さらに、
前記レコードを選択する、
操作ステップを実行するコンピュータ。
【請求項１８】
キーの適用は、階層的レコード集合より、当該キーに対応するタグを有するレコード群を選択することからなる請求項17に記載のコンピュータ。
【請求項１９】
ユーザーのレコードの選択に基づき、ユーザーからのコマンドを受け取り、そのユーザーからのコマンドに対応してタグを修正することによってレコードの１つの同定を行う請求項18に記載のコンピュータ。
【請求項２０】
レコードが一つおよびそれ以上のフィールドを有し、そしてコンピュータのデータプロセッシングが、個々の検索レコードのフィールドを画面上に表示し、その際にそのフィールドの個々のポジションが、その検索されたレコードの階層上の深度及びレベルを表しているものである請求項19に記載のコンピュータ。
【請求項２１】
複数の階層的深度とレベルを有し、個々のレコードがそのレコード集合内で固有のタグを有する階層的レコード集合で、ユーザーのコマンドに応じてタグの数値の一つの桁を選択し、そしてユーザーのコマンドに応じてその値を変化させることでタグを修正する請求項18に記載のコンピュータ。
【請求項２２】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、各桁の数値は階層的レベルの１つを表わしており、さらにユーザーからのコマンドは同定されたレコードの子レコードの検索を要求するものであって、さらに、前記タグの修正は、
前記同定されたレコードの階層深度に対応する前記桁の１つを選択し、
選択された桁に対応する階層深度より下位にある１つの階層深度に対応する各桁の数値をワイルドカード値にセットする、
ことからなる請求項18に記載のコンピュータ。
【請求項２３】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、各桁の数値は階層的レベルの１つを表わしており、さらにユーザーからのコマンドは同定されたレコードの親レコードの検索を要求するものであって、さらに、前記タグの修正は、
前記同定されたレコードの階層深度に対応する前記桁の１つを選択し、
選択された桁に対応する数値をヌル値にセットする、
ことからなる請求項18に記載のコンピュータ。
【請求項２４】
一つのレコードがメッセージそしてフォルダである請求項18に記載のコンピュータ。
【請求項２５】
複数の階層的深度とレベルを有し、個々のレコードがそのレコード集合内で固有のタグを有する階層的レコード集合に一つのレコードを付加するための処理を実行するようプログラムされた少なくとも一台のコンピュータであり、当該コンピュータのデータプロセッシングが、
前記階層的レコード集合の中から一つのレコードをその付加するレコードの親レコードとして同定し、
タグを修正することでキーを作製し、そして新しいレコードにそのキーを適用し、それによって階層的レコード集合に一度だけインデックスを付与することで階層的レコード集合に一つのレコードを付加し、その段階で階層的レコード集合に一度だけインデックスを付与することが階層的レコード集合にキーを適用することであり、そのことによってレコードを付加するという操作ステップを実行するコンピュータ。
【請求項２６】
ユーザーによる一つのレコードの選択を受けて、その一つのレコードを同定する請求項25に記載のコンピュータ。
【請求項２７】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、各桁の数値は階層的レベルの１つを表わしており、同定されたレコードはメッセージを表わしており、さらに、前記レコードの１つの同定は、
当該メッセージに対する返答を要求するユーザーからのコマンドを受信することからなり、さらに、前記タグの修正は、
前記同定されたレコードの階層深度の直ぐ下位にある階層深度に対応する前記桁の１つを選択し、
前記選択された桁の数値をインクリメントする、
ことからなる請求項26に記載のコンピュータ。
【請求項２８】
キーの適用は、階層的レコード集合より、当該キーに対応するタグを有するレコード群を選択することによって機能する請求項25に記載のコンピュータ。
【請求項２９】
タグが複数の桁をもつ数字であり、それぞれの桁が階層の深度を表し、かつその数値が階層のレベルを表すタグである請求項25に記載のコンピュータ。
【請求項３０】
複数の階層的深度と複数の階層的レベルを有し、個々のレコードがそのレコード集合内で固有のタグを有する階層的レコード集合からレコードを選択するための処理を実行するようプログラムされた少なくとも一台のコンピュータであり、当該コンピュータのデータプロセッシングは、
前記階層的レコード集合の中から一つのレコードを同定し、
タグを修正することでキーを作製し、
前記階層的レコード集合に一度だけインデックスを付与することで階層的レコード集合よりレコードを選択し、その段階で階層的レコード集合に一度だけインデックスを付与することで階層的レコード集合にキーを適用する、
操作ステップを実行するコンピュータ。
【請求項３１】
タグが複数の桁をもつ数字であり、それぞれの桁が階層の深度を表し、かつその数値が階層のレベルを表すタグである請求項30に記載のコンピュータ。
【請求項３２】
キーの適用は、階層的レコード集合の中の当該キーに対応するタグを有するレコード群を選択する請求項30に記載のコンピュータ。
【請求項３３】
複数の階層的深度と複数の階層的レベルを有し、個々のレコードがそのレコード集合内で固有のタグを有する階層的レコード集合から、ある一つのレコードを検索するための装置であり、当該装置は、
前記階層的レコード集合の中から一つのレコードを同定する手段と、
タグを修正することでキーを作製する手段と、
前記階層的レコード集合に一度だけインデックスを付与することで階層的レコード集合から一つもしくはそれ以上のレコードを選択する手段であって、前記インデックスの付与は、前記階層的レコード集合にキーを適用するものであり、さらに
前記レコードを選択する手段と、
からなる装置。
【請求項３４】
階層的レコード集合にキーを適用する手段は、階層的レコード集合より、当該キーに対応するタグを有するレコード群を選択する手段からなる請求項33に記載の装置。
【請求項３５】
レコード中の１つを同定する手段は、
ユーザーによる当該レコードの選択を受信する手段と、
当該ユーザーからのコマンドを受信し、且つ当該ユーザーからの前記コマンドに基づいてタグを修正する手段と、
からなる請求項34に記載の装置。
【請求項３６】
各レコードが一つ以上のフィールドを有する装置であって、
個々の検索されたレコードのフィールドを画面上に表示するものであって、当該画面上の当該フィールドの個々の位置が検索された１つのレコードに対応する階層上の深度及びレベルを表示する手段からなる請求項35に記載の装置。
【請求項３７】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、
さらに前記タグを修正する手段は、
ユーザーからのコマンドに従って少なくとも１つの前記桁を選択する手段と、
当該ユーザーからの前記コマンドに従い選択された桁の数値を変更する手段と、
からなる請求項34に記載の装置。
【請求項３８】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、各桁の数値は階層的レベルの１つを表わしており、さらにユーザーからのコマンドは同定されたレコードの子レコードの検索を要求するものであって、さらに、前記タグを修正する手段は、
前記同定されたレコードの階層深度に対応する前記桁の１つを選択する手段と、
選択された桁に対応する階層深度より下位にある１つの階層深度に対応する各桁の数値をワイルドカード値にセットする手段と、
からなる請求項34に記載の装置。
【請求項３９】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、各桁の数値は階層的レベルの１つを表わしており、さらにユーザーからのコマンドは同定されたレコードの親レコードの検索を要求するものであって、さらに、前記タグを修正する手段は、
前記同定されたレコードの階層深度に対応する前記桁の１つを選択する手段と、
選択された桁の数値をヌル値にセットする手段と、
からなる請求項34に記載の装置。
【請求項４０】
一つのレコードがメッセージ及びフォルダの１つである請求項34に記載の装置。
【請求項４１】
複数の階層的深度と複数の階層的レベルを有し、個々のレコードがそのレコード集合内で固有のタグを有する階層的レコード集合に新たなレコードを付加するための装置であって、当該装置は、
前記階層的レコード集合の中の一つのレコードを前記新たなレコードの親レコードとして同定する手段と、
タグを修正することでキーを作製する手段と、
前記新たなレコードに当該キーを付加する手段と、
前記階層的レコード集合に一度だけインデックスを付与することで階層的レコード集合に前記新たなレコードを付加する手段であって、前記インデックスを付与する手段は前記階層的レコード集合にキーを適用する手段である、
階層的レコード集合に新たなレコードを付加するための装置。
【請求項４２】
階層的レコード集合の中の一つのレコードを同定する手段は、ユーザーからのレコード中の１つのレコードの選択を受信する手段からなる請求項41に記載の新たなレコードを付加するための装置。
【請求項４３】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、各桁の数値は階層的レベルの１つを表わしており、同定されたレコードはメッセージを表わしており、さらに、前記レコードの１つを同定する手段は、当該メッセージに対する返答を要求するユーザーからのコマンドを受信する手段からなり、さらに、前記タグを修正する手段は、
前記同定されたレコードの階層深度の直ぐ下位にある階層深度に対応する前記桁の１つを選択する手段と、
前記選択された桁の数値をインクリメントする手段と、
からなる請求項42に記載の新たなレコードを付加するための装置。
【請求項４４】
階層的レコード集合にキーを適用する手段は、階層的レコード集合より、当該キーに対応するタグを有するレコード群を選択する手段からなる請求項41に記載の新たなレコードを付加するための装置。
【請求項４５】
タグが複数の桁を有しており、それぞれの桁が階層の深度の１つを表し、かつその数値が階層のレベルの１つを表すものである請求項41に記載の新たなレコードを付加するための装置。
【請求項４６】
複数の階層的深度と複数の階層的レベルを有し、個々のレコードがそのレコード集合内で固有のタグを有する階層的レコード集合において、あるレコードを選択するための装置であって、当該装置は、
前記階層的レコード集合の中から一つのレコードを同定する手段と、
タグを修正する手段と、
前記階層的レコード集合に一度だけインデックスを付与し、それにより階層的レコード集合内の１つ以上のレコードを選択する手段であって、前記インデックスを付与する手段は、前記階層的レコード集合に前記修正されたタグを適用する手段からなるレコードを選択するための装置。
【請求項４７】
タグが複数の桁を有し、それぞれの桁が階層の深度の１つを表し、かつその数値が階層のレベルの１つを表すものである請求項46に記載のレコードを選択するための装置。
【請求項４８】
階層的レコード集合に修正されたタグを適用する手段は、階層的レコード集合の中のキーに対応するタグを有するレコード群を選択する手段からなる請求項46に記載のレコードを選択するための装置。
【請求項４９】
複数の階層的レベルと複数の階層的深度を有し、個々のレコードが当該レコード集合内で固有のタグを有するような階層的レコード集合において、レコードを検索する方法を遂行するようコンピュータにより実行可能な命令を具現化した読み取り可能な記憶媒体であり、前記レコードを検索する方法は、
前記階層的レコード集合の中から一つのレコードを同定し、
タグを修正することでキーを作製し、
前記階層的レコード集合に一度だけインデックスを付与することで階層的レコード集合より一つ以上のレコードを選択し、
前記インデックスの付与は、前記階層的レコード集合にキーを適用することからなり、さらに、
前記選択されたレコードを検索する、
ことからなる。
【請求項５０】
階層的レコード集合へのキーの適用は、階層的レコード集合より、当該キーに対応するタグを有するレコード群を選択することからなる請求項49に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５１】
１つのレコード同定は、ユーザーからの当該１つのレコードの選択を受信し、さらに当該ユーザーからのコマンドを受信し且つ、当該ユーザーからの前記コマンドに対応してタグを修正することによって行なわれる請求項50に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５２】
各レコードが一つ以上のフィールドを有しており、さらに前記方法は、
個々の検索されたレコードのフィールドを画面上に表示し、
前記フィールドの個々のポジションが、前記検索されたレコードの対応する１つの階層上の深度及びレベルを表すものである請求項51に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５３】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、各桁の数値は階層的レベルの１つを表わしており、さらに前記タグの修正は、
ユーザーからのコマンドに従って少なくとも１つの前記桁を選択し、
当該ユーザーからの前記コマンドに従い当該選択された桁の数値を変更すること、
からなる請求項50に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５４】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、各桁の数値は階層的レベルの１つを表わしており、さらにユーザーからのコマンドは同定されたレコードの子レコードの検索を要求するものであって、さらに、前記タグの修正は、
前記同定されたレコードの階層深度に対応する前記桁の１つを選択し、
選択された桁に対応する階層深度より下位にある１つの階層深度に対応する各桁の数値をワイルドカード値にセットする、
ことからなる請求項50に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５５】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、各桁の数値は階層的レベルの１つを表わしており、さらにユーザーからのコマンドは同定されたレコードの親レコードの検索を要求するものであって、さらに、前記タグの修正は、
前記同定されたレコードの階層深度に対応する前記桁の１つを選択し、
選択された桁に対応する数値をヌル値にセットする、
ことからなる請求項50に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５６】
各レコードがメッセージ及びフォルダの１つである請求項50に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５７】
複数の階層的レベルと複数の階層的深度を有し、個々のレコードが当該レコード集合内で固有のタグを有する階層的レコード集合において、新たなレコードを付加する方法を遂行するようコンピュータにより実行可能な命令を具現化した読み取り可能な記憶媒体であり、前記新たなレコードを付加する方法は、
前記階層的レコード集合の中から一つのレコードを前記新たなレコードの親レコードとして同定し、
タグを修正することでキーを作製し、
当該キーを前記新たなレコードに付加し、
前記階層的レコード集合に一度だけインデックスを付与することで階層的レコード集合に新たなレコードを付加し、
前記インデックスの付与は、前記階層的レコード集合に前記キーを適用する、
ことからなるコンピュータ読み取り可能な記憶媒体。
【請求項５８】
一つのレコードの同定は、ユーザーによる一つのレコードの選択を受信することからなる請求項57のコンピュータ読み取り可能な記憶媒体。
【請求項５９】
各タグは複数の桁を有する数値であり、各桁の位置は階層的深度の１つを表しており、各桁の数値は階層的レベルの１つを表わしており、同定されたレコードはメッセージを表わしており、さらに、
前記レコードの１つの同定は、
当該メッセージに対する返答を要求するユーザーからのコマンドを受信することからなり、さらに、
前記タグの修正は、
前記同定されたレコードの階層深度の直ぐ下位にある階層深度に対応する前記桁の１つを選択し、
前記選択された桁の数値をインクリメントする、
ことからなる請求項58に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６０】
階層的レコード集合へのキーの適用は、階層的レコード集合より、当該キーに対応するタグを有するレコード群を選択することからなる請求項57に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６１】
タグが複数の桁を有しており、それぞれの桁が階層の深度を表し、かつその数値が階層のレベルを表すものである請求項57に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６２】
複数の階層的レベルと複数の階層的深度を有し、個々のレコードが当該レコード集合内で固有のタグを有する階層的レコード集合において、レコードを選択する方法を遂行するようコンピュータにより実行可能な命令を具現化した読み取り可能な記憶媒体であり、前記レコードを選択する方法は、
前記階層的レコード集合の中から一つのレコードを同定し、
タグを修正し、
前記階層的レコード集合に一度だけインデックスを付与することで階層的レコード集合内の１つ以上のレコードを選択し、
前記インデックスの付与は、前記階層的レコード集合に前記修正されたタグを適用する、
ことからなるコンピュータ読み取り可能な記憶媒体。
【請求項６３】
タグが複数の桁を有しており、それぞれの桁が階層の深度を表し、かつその数値が階層のレベルを表すものである請求項62に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６４】
階層的レコード集合への修正されたタグの適用は、階層的レコード集合の中のキーに対応するタグを有するレコード群を選択することからなる請求項62に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６５】
複数の階層的深度と複数の階層的レベルを有する階層的データ集合におけるデータにタグを付加する方法であって、前記データにタグを付加する方法は、
当該データの階層的レベルを決定し、
当該データの階層的深度を決定し、さらに
当該データにタグを割り当てることからなり、且つ、
当該タグの割り当ては、
当該データの直近の親データを決定し、
当該直近の親データのタグを選択するものであって、前記タグは複数の桁をもつ数値であり、それぞれの桁が階層の深度を表すものであり、さらに
当該データの階層的深度を表す選択されたタグの桁を選択し、
前記選択された桁に対し当該データの階層的レベルを表す数値を割り当てる、
ことからなる個々のデータにタグを付加する方法。
【請求項６６】
前記選択された桁への数値の割り当ては、
すでにタグの付けられたデータの直近の親データからみた子データの数を決定し、
当該子データの数をインクリメントすることでインクリメント数を得、さらに、
選択した桁の数値をそのインクリメントした数と同じ数値にセットする、
ことからなる請求項65に記載の個々のデータにタグを付加する方法。
【請求項６７】
個々のデータはメッセージを表しており、１つのデータの子データは、当該データにより表されたメッセージに対する返信メッセージであり、さらに、
１つのデータの親データは、メッセージを表しており、当該メッセージに対する返信メッセージが前記データにより表されることからなる請求項65に記載の個々のデータにタグを付加する方法。
【請求項６８】
個々のデータはコンテナを表しており、１つのデータの子データは、当該データによって表わされるコンテナの中に含まれる一つのコンテナであり、さらに、１つのデータの親データはコンテナであり、当該コンテナは前記データにより表されたコンテナを含むことからなる請求項65に記載の個々のデータにタグを付加する方法。
【請求項６９】
複数の階層的深度と複数の階層的レベルを有し、個々のデータがそのデータ集合内で固有のタグを有するような階層的データ集合において、ある一つのデータにタグを付加するための処理を実行するようにプログラムされた少なくとも一つのコンピュータであって、前記処理は、
当該データの階層レベルを決定し、
当該データの階層的深度を決定し、さらに、
当該データにタグを割り当て、且つ前記タグの割り当ては、
当該データの直近の親データを決定し、
当該データの直近の親データのタグを選択し、且つ前記タグの選択は、
当該タグが複数桁の数値からなり、且つ、その各桁は、階層的データ集合の階層の深度の１つを表しており、
当該データの階層深度を表す前記選択されたタグの桁を選択し、
当該データの階層レベルを表す数値を割り当てる、
ことからなる。
【請求項７０】
選択された桁への数値の割り当ては、
すでにタグの付けられたデータの直近の親データからみた子データの数を決定し、
当該子データの数をインクリメントすることでインクリメント数を得、さらに、
選択した桁の数値をそのインクリメントした数と同じ数値にセットする、
ことからなる、請求項69に記載のコンピュータ。
【請求項７１】
個々のデータはメッセージを表しており、１つのデータの子データは、当該データにより表されたメッセージに対する返信メッセージであり、さらに、
１つのデータの親データは、メッセージを表しており、当該メッセージに対する返信メッセージが前記データにより表されることからなる請求項69に記載のコンピュータ。
【請求項７２】
個々のデータはコンテナを表しており、１つのデータの子データは、当該データによって表わされるコンテナの中に含まれる一つのコンテナであり、さらに、１つのデータの親データはコンテナであり、当該コンテナは前記データにより表されたコンテナを含むことからなる請求項69に記載のコンピュータ。
【請求項７３】
複数の階層的深度と複数の階層的レベルを有する階層的データ集合におけるデータにタグを付加する装置であって、前記装置は、
当該データの階層的レベルを決定する手段と、
当該データの階層的深度を決定する手段と、さらに
当該データにタグを割り当てる手段とからなり、且つ、
当該タグの割り当て手段は、
当該データの直近の親データを決定する手段と、
当該直近の親データのタグを選択する手段であって、前記タグは複数の桁をもつ数値であり、それぞれの桁が階層の深度を表すものであり、さらに
当該データの階層的深度を表す選択されたタグの桁を選択する手段と、
当該データの階層的レベルを表す数値を前記選択された桁に割り当てる手段と、
からなる、個々のデータにタグを付加する装置。
【請求項７４】
選択された桁に数値を割り当てる手段は、
すでにタグの付けられたデータの直近の親データからみた子データの数を決定する手段と、
インクリメント数を得るべく前記子データの数をインクリメントする手段と、さらに、
選択された桁の数値を前記インクリメント数と同じ数値にセットする手段と、
からなる請求項73に記載の個々のデータにタグを付加する装置。
【請求項７５】
個々のデータはメッセージであり、１つのデータの子データは当該データにより表されたメッセージに対する返信メッセージであり、さらに、１つのデータの親データはメッセージであり、当該メッセージに対する返信メッセージは前記１つのデータにより表される請求項73に記載の個々のデータにタグを付加する装置。
【請求項７６】
個々のデータはコンテナを表しており、１つのデータの子データは、当該データによって表わされるコンテナの中に含まれる一つのコンテナであり、さらに、１つのデータの親データはコンテナであり、当該コンテナは前記データにより表されたコンテナを含むことからなる請求項73に記載の個々のデータにタグを付加する装置。
【請求項７７】
複数の階層的深度と複数の階層的レベルを有する階層的データ集合におけるデータにタグを付加する方法を遂行するようコンピュータにより実行可能な命令を具現化した読み取り可能な記憶媒体であって、前記データにタグを付加する方法は、
当該データの階層的レベルを決定し、
当該データの階層的深度を決定し、さらに
当該データにタグを割り当てることからなり、且つ、
当該タグの割り当ては、
当該データの直近の親データを決定し、
当該直近の親データのタグを選択するものであって、前記タグは複数の桁をもつ数値であり、それぞれの桁が階層の深度を表すものであり、さらに
当該データの階層的深度を表す選択されたタグの桁を選択し、
前記選択された桁に対し当該データの階層的レベルを表す数値を割り当てる、
ことからなる。
【請求項７８】
選択された桁に数値を割り当てる方法は、
すでにタグの付けられたデータの直近の親データからみた子データの数を決定し、
インクリメント数を得るべく前記子データの数をインクリメントし、さらに、
選択された桁の数値を前記インクリメント数と同じ数値にセットする、
ことからなる請求項77に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７９】
個々のデータはメッセージであり、１つのデータの子データは当該データにより表されたメッセージに対する返信メッセージであり、さらに、１つのデータの親データはメッセージであり、当該メッセージに対する返信メッセージは前記１つのデータにより表される請求項77に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８０】
個々のデータはコンテナを表しており、１つのデータの子データは、当該データによって表わされるコンテナの中に含まれる一つのコンテナであり、さらに、１つのデータの親データはコンテナであり、当該コンテナは前記データにより表されたコンテナを含むことからなる請求項77に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８１】
複数の階層的レベルと複数の階層的深度を有する階層的データ集合における１つのデータ用の固有のタグであって、
個々の桁が前記階層的データ集合の階層的深度の１つを表す複数の桁を持つ一つの数字からなり、
当該一つの数字においては、
非ゼロの数値を持つ最小桁の位置は当該データの階層的深度を表し、
非ゼロの数値を持つ最小桁の数値は当該データの階層的レベルを表し、さらに、
前記非ゼロの数値を持つ最小桁よりも大きい桁は、当該データの親データを表すものである、
前記階層的データ集合におけるデータ用の固有のタグ。
【請求項８２】
データ処理システムで遂行されるアプリケーションプログラムによるアクセスのためのデータを格納するメモリであって、
前記メモリ内に保存され、複数の階層的深度と複数の階層的レベルを有する階層的データ集合よりなるデータ構造からなり、
前記階層的データ集合は１つのデータ用に固有のタグを備えており、前記１つのデータは、
個々の桁が前記階層的データ集合の階層的深度の１つを表す複数の桁を持つ一つの数字からなり、当該一つの数字においては、
非ゼロの数値を持つ最小桁の位置は当該データの階層的深度を表し、
非ゼロの数値を持つ最小桁の数値は当該データの階層的レベルを表し、さらに、
前記非ゼロの数値を持つ最小桁よりも大きい桁は、当該データの親データを表す。
【発明の詳細な説明】
【背景技術】
【０００１】
本発明は一般にデータの管理、特に階層的に格納されたデータの管理に関する。
【０００２】
データの集まりを階層的に扱うことは有用であり、よく知られている。そのような階層的レコード集合は一般に複数のレコードから構成されている。レコードの階層的な集合において、ある１つのレコードは、当該レコードに関連付けられ且つ、より低いレベルの階層に存在する複数の「子」レコードを有することができる。そのようなレコードは、複数の子レコードに対して「親」レコードとして参照される。データベースのサイズに制限されないかぎり、１つのレコードの子レコードがさらに子レコードを持ち、以下同様・・・、といったことが可能である。単一のレコードからなる子レコードの集合の中では、１番目の子レコード、２番目の子レコード、以下同様・・・というように子レコードに順番をつけることは、しばしば有用である。
【０００３】
今迄のところ、このような階層的レコード集合の管理の有用性は、そのデータ管理ツールの効率性により制約を受けている。従来の階層的レコード集合のソーティング方法では、データベースの更新および／またはデータベース内でのレコード検索のためには、費用のかかる多数のコールやクエリーを必要とする。例えば、あるレコードからみて孫レコードの二番目を呼び出すためには、３つのクエリーが必要となる。すなわち最初のクエリーで当該レコードの子レコードを選択し、次のクエリーで、当該子レコード中の一番目の子レコードを選択し、そして次に当該子レコードの二番目の子レコードを選択する。
【発明の概要】
【０００４】
本発明は、一般には、その一実施態様として、複数の階層レベルと複数の階層的深度を持ち、個々のレコードがその階層的集合の中で固有のタグを有するような階層的レコード集合において、ある特定のレコードを検索するための方法、その装置およびコンピュータで読み取り可能な記憶媒体であることを特徴とする。それは、当該階層的レコード集合中の１つのレコードを同定すること、前記タグを修正することによりキーを作製すること、当該階層的レコード集合に一度だけインデックスを付し、それにより当該階層的レコード集合内にある１つもしくは複数のレコードを選択するものであって、その際、階層的レコード集合に一度だけインデックスを付すことで、当該階層的レコード集合に前記キーを適用せしめること、及び選択されたレコードを取り出すことから構成される。
【０００５】
特定の実施態様においては、以下のうち少なくとも一つ以上の特徴を有する。階層的レコード集合へのキーの適用は、階層的レコード集合の中からキーと対応するタグを持つレコードを選択することで行なわれる。レコード中の1つのレコードの同定は、ユーザーによる当該レコードの選択；すなわちそれはユーザーによるコマンドの選択によって行われ、その段階でのタグの修正はユーザーからのコマンドに基づくものである。各レコードには少なくとも1つ以上のフィールドがあり、この発明の実施では、ディスプレイ上に各々の検索されたレコードを表示することでなされ、そしてそのディスプレイ上での各フィールドの位置は、検索されたレコードの階層深度と階層レベルを表わしている。各タグは複数の桁からなる数字であり、この各桁の位置は階層深度を表し、また各桁の数値は階層レベルを表わし、そしてタグの修正は、ユーザーからのコマンドによって少なくとも１つの桁を選択することによって行われ、またユーザーのコマンドによって、その選択された桁の値を変更することによって成立する。各タグは複数の桁からなる数字であり、この各桁の位置は階層深度を表し、また各桁の数値は階層レベルを表わし、ユーザーのコマンドがあるレコードの子レコードの検索であって、そしてタグの修正は、選択されたレコードに対応する階層深度を表す桁を選び出し、そしてその選択された桁の下位の桁の値をワイルドカード値にセットすることで成立する。各タグは複数の桁からなる数字であり、この各桁の位置は階層的な深さを表し、また各桁の数値は階層レベルを表わし、ユーザーのコマンドがあるレコードの親レコードの検索であって、そしてタグの修正は、選択されたレコードに対応する階層的な深度に対応する桁を選び出し、その選択された桁の数値をヌル値に置き換えることで成立する。そして個々のレコードは、メッセージやフォルダである。
【０００６】
本発明は一般に、その一態様として、複数の階層レベルと複数の階層の深さを持ち、個々のレコードがその階層的集合の中で固有のタグを有するような階層的レコード集合に新たなレコードを付加する方法、その装置およびコンピュータで読み取り可能な記憶媒体であることを特徴とする。それは、階層的レコード集合の中の一つのレコードを選択して、それを親レコードとして同定することによって可能となり、すなわちそれはタグを修正してキーを作り、そのレコードにキー付加するものであり、すなわちそれは、一度だけ階層的レコード集合にインデックスを付け、それによって階層的レコード集合に新たなレコードを付加し、その際に階層的レコード集合に一度だけインデックスを付与することによって階層的レコード集合にキーを当てはめることからなる。
【０００７】
本発明の特定の実施態様は、以下のうち少なくとも一つ以上の特徴を有するものを挙げることができる。一つのレコードの同定は、ユーザーによるレコードの選択を受け付与することによって行われる。各タグは複数の桁からなる数字であり、この各桁の位置は階層深度を表し、また各桁の数値は階層レベルを表わし、そして選択されたレコードが一つのメッセージであり、一つのレコードの選択が、さらにユーザーのそのメッセージに対する返答を要求するようなコマンドを受け取ることを可能とし、そしてタグの修正が、選択されたレコードの直下位の階層深度の深度に対応する桁を選択することによってなされ、その選択された桁をインクリメントすることで成立する。キーの適用は、階層的レコード集合より当該キーにマッチするタグを有するそれらのレコードを選択することで行われる。各タグは複数の桁からなる数字であり、この各桁の位置は階層深度を表し、また各桁の数値は階層レベルを表わす。
【０００８】
本発明は一般に、その一つの態様として、複数の階層レベルと複数の階層深度を持ち、個々のレコードがその階層的集合の中で固有のタグを有するような階層的レコード集合において、ある特定のレコードを選択するための方法、その装置およびコンピュータで読み取り可能な記憶媒体であることを特徴とするものである。それは、階層的レコード集合の中の一つのレコードを選択して同定することによって行われ、すなわちそれはタグを修正し、一度だけ階層的レコード集合にインデックスを付け、それによって階層的レコード集合の中から一つもしくはそれ以上のレコードを選択し、そこでは階層的レコード集合に一度だけインデックスを付与することによって階層的レコード集合に修正したタグを当てはめるということからなる。
【０００９】
本発明の特定の実施態様は、下記のうち少なくとも一つ以上の特徴を有するものである。各タグは複数の桁からなる数字であり、当該桁の各位置は階層深度を表し、また当該各桁の数値は階層レベルを表わす。レコードの選択は、階層的レコード集合の中でキーに対応するタグをもつレコードを選択することによってなされる。
【００１０】
本発明の実施による効果は下記の通りである。すなわち本発明を実施することにより、インデントされたスレッドディスカッションのようなデータベースにおいて、たった一度だけアクセスすることで、データベースを操作することが可能となる。例えば、メッセージを付け加えたり、削除したり、また一回のデータベースへのアクセスでクエリーやコールのような検索が可能となる。
【００１１】
本発明のいくつかの態様の詳細については、添付図面ならびに下記に説明の中で述べる。本発明の他の特徴は、発明の詳細な説明、図面、ならびに請求項にて明らかにされる。
【００１２】
この明細書で用いられる個々の参照番号の最初の桁は、その参照番号が最初に明細書に記載された図面の番号を表す。
【発明の詳細な説明】
【００１３】
階層的レコード集合の一般的な一例として、インデントされたスレッドディスカッションがあげられる。それは、当初はインターネットのニュースグループなどで見られるにすぎなかったが、やがて複数の人間がディスカッションに参画するようになり、そしてこのような複数の参加者の間でのディスカッションを管理し、またそれらを表示する方法としてポピュラーなものとなってきた。そしてこのインデントされたスレッドディスカッションを管理するツールは、いまやメール・ソフトウェア・プログラムのような一般消費者向けの製品として流通するようにもなっている。
【００１４】
図１に、インデントされたスレッドディスカッションの画面を示す。インデントされたスレッドディスカッションは、まず１人のユーザーが、複数のユーザーが参加するフォーラムに、他のメッセージに対する返答ではない、ある一つのメッセージ、すなわちメッセージ102を投函することにより開始される。そのようなメッセージは、以下ディスカッションの起源メッセージと定義する。すべての起源メッセージは、スレッドのヘッドとなる。つまりこの場合のメッセージ102は、ディスカッションの起源メッセージであり、そしてスレッドのヘッドである。この起源メッセージに対する返信はすべてスレッドの一部分となる。もちろんフォーラムでは多数の異なるディスカッションが並行して行われている。
【００１５】
ユーザーがある一つのメッセージに返信する時、返信文は一般にそのメッセージの直下にインデント（字下げ）されて表示される。返信メッセージを有するあらゆるメッセージはスレッドのヘッドである。したがってディスカッションには多くのスレッドがあることになる。スレッドのヘッドはその返信に対して一段上にインデントされる。
【００１６】
メッセージ104は、メッセージ102に対する返信メッセージである。よって返信メッセージ104はメッセージ102の直下に表示される。そして図１に示したように１回インデントされて表示される。メッセージ106は、メッセージ104に対する返信メッセージであるために、さらにもう一回インデントされる。メッセージ108は、メッセージ104に対する返信メッセージであるメッセージ106への返信メッセージであるので、さらにもう１回インデントされて表示される。
【００１７】
ユーザーが、メッセージ102に対する別の返答110を返信すると、１回だけインデントされ、それはメッセージ104およびそれらの子レコード（孫レコード）である106と108の下に表示される。起源メッセージ102に対するその次の返信であるメッセージ112は、同様に１回だけインデントされ、メッセージ110の下に表示される。そしてメッセージ112に対する返信メッセージ114は２回インデントされ、メッセージ112の下に表示される。
【００１８】
図１に示したようなディスプレイの表示により、ユーザーは、ディスカッション全体のヒエラルキーの構造と各メッセージの階層上の位置付けを直ちに理解することができる。階層的集合内のメッセージの位置は、階層の２つの要因、すなわち階層のレベルと深度、から理解することが可能である。メッセージの深度は、そのメッセージを含むスレッドの数である。例えば、図１では、メッセージ108の深度は３であり、それはスレッドがメッセージ106、104、102をヘッドとして構成されているからである。起源メッセージであるメッセージ102の深度はゼロである。
【００１９】
ある特定の階層深度におけるメッセージのレベルは、その特定の階層深度においてそれ以前に存在していたメッセージの数によって決定される。例えば図１において、メッセージ112のレベルは３である。それは階層深度が１であり、かつ同じ階層深度１のレベルで、メッセージ112の以前にメッセージ110と104が存在するからである。個々の階層深度におけるメッセージの優先順位は、あらゆる数字の要素もしくはその組合せによって決定することができる。スレッドディスカッションのグループでは、その優先順位をそのメッセージが投函された時間と日による日付順によって決定する方式が一般に採用されている。もし階層的レコード集合内のレコードが例えばフォルダのようなコンテナであったときには、フォルダ名をアルファベット順に表示させることが可能である。さらに、ディスプレイのユーザーは、レコード中のあらゆるフィールドを選択することが可能であり、それによってそのフィールドの内容が優先順位を決定することもある。メッセージ102のような起源メッセージのレベルはゼロである。
【００２０】
再度図１を参照すると、メッセージ104、110、112のような同じ階層上にあるメッセージは日付順に表示されているが、一方で、あるメッセージの子メッセージは（すなわちそれは、メッセージに対する返答であり、そしてその返答に対する返答のような場合等にも該当するが）、当該メッセージの直下に表示されており、その親メッセージと同一階層上の他のメッセージの上に表示される。ユーザーに提示されているメッセージは、一般にある方式でソートされており、例えば表の形式で提示されている。表中の個々の行は一つのメッセージを表している。そして個々のメッセージには複数のフィールド、例えば標題、筆者、本文、投函日などがある。個々の列はフィールドを表している。
【００２１】
このようなインデントされたスレッドディスカッションを管理するための従来までのツールは、周知のごとく非効率的なシステムであった。通常は新しいメッセージが付加されることによって表中の多数の行が同時に更新されると共に、インデントされたスレッドを表示するために多数のクエリーが機能しなければならなかった。更新が必要となる行の数は、スレッドにおけるメッセージの数と同じ数になる。
【００２２】
本発明の実施とは、階層的レコード集合の中の各レコードに、固有のタグを関連付与することである。タグは一般的にレコード中の一つのフィールドに相当する。表１は発明の一態様に基づき、図１に示したディスカッションの一部を表示したものである。
【００２３】
【表１】
2005519370.tif 000003
【００２４】
個々のタグは複数の桁を有する数字であり、個々の桁は階層の深度を表している。表１のデータには４つの階層があり、したがって各タグは４桁の数字となっている。発明の一態様として、タグの桁は、最上位の桁の数字が階層での最初の深度（それは起源メッセージに相当する）、次の桁が階層の二番目の深さを表し、以降同様に次の桁が三番目の深度を表すように配列されている。ただし発明の他の態様においては他の方法で桁を配列させることも可能である。
【００２５】
各桁の数値は、階層上でのレベルを表す。仮に表１のデータが４つのレベルを有すると仮定する。そうすると各桁は0から3の数字になる。0という数値はそのメッセージが階層上で深度を持たないことを表す。もちろんレベルと深度を他の方法で配列させることも可能であり、それらはこの明細書を読んだ当業者であれば容易に見出すこともできると思われる。本発明の一実施態様としては、16レベルで16深度のデータベースを提供することができる。この実施例の場合、タグは「big  int」により表わされる１６桁からなる１６進数であり、符号付き６４ビット数は-263から263までの範囲で変動する。
【００２６】
個々のタグは、階層の中でのそのレコードの固有の位置を認識する。例えばタグ“3100”は、起源メッセージの3番目の子メッセージの第１番目の子メッセージであることを表す。
【００２７】
このようなタグを用いる利点の一つには、データベースにインデックスを付加することなく、タグを修正することで、各レコードのタグを即座に、かつ容易に設定することができる点である。
【００２８】
図２は、発明の一実施態様に基づいて、インデントされたスレッドディスカッションにおいてメッセージの親メッセージを検索する工程を示すフローチャートである。プロセス200において、ユーザーからコマンドを受け取る（ステップ202）。そのコマンドはメッセージ108を同定し、そしてメッセージ108の親メッセージを捜せ、というコマンドである。そしてコマンドはキーを作るためにメッセージ108のタグを修正する。このプロセスを実行するために、プロセス200はまずメッセージ108の階層的な深度と対応する桁を選択する（ステップ204）。表１において、メッセージ108の階層の深度は3である。よって工程200では、メッセージ108のタグの上から3番目の桁を選択する。各メッセージの階層上の深度は、表をソーティングすることなく、各桁によって表示される階層上の深度によってリアルタイムに決定される。表１のタグのように、階層中の深度が増えることによって変化する桁の部分で、単に最も小さな0以外の数字を選択することによって、そのメッセージの階層的な深度に対応する桁を選択することができる。
【００２９】
プロセス200は、次に選択された桁の数値をヌル値に変更する。表１においては、ヌル値は0である。もちろん他の値もヌル値として選択することもできる。結果として選択された数値は1100であり、これはメッセージ106、すなわちメッセージ108の親メッセージのタグの数値である。プロセス200は次に、データベースにキーを適用することによって一度だけデータベースにインデックスを付け（ステップ208）、それによってメッセージ106を選択する。そしてプロセス200はメッセージ106を取り出し、ディスプレイ上にメッセージ106を提示する(ステップ212)。
【００３０】
図３は、発明の一実施態様に基づいて、インデントされたスレッドディスカッションにおいてメッセージの子メッセージを検索する工程を示すフローチャートである。プロセス300において、ユーザーからコマンドを受け取る（ステップ302）。コマンドはメッセージ104を選択し、メッセージ104をヘッドとするすべてのメッセージを検索せよ、というものである。これらのメッセージはメッセージ104の子メッセージ、またはその子メッセージの孫メッセージなどに相当する。
【００３１】
その場合、プロセス300はキーを作製するためにメッセージ104のタグを修正する。この操作を実行するために、プロセス300は先ず初めにメッセージ104の階層的深度に相当する桁を選択する（ステップ304）。表１によれば、メッセージ104の階層深度は1である。よってプロセス304では、メッセージ104の最上位の桁が選択される。プロセス300では次に選択した桁よりも下位の桁の数値をワイルドカード値にする（ステップ308）。結果としてできるキーは、“1ＸＸＸ”となる。ここでの“Ｘ”はワイルドカード値であり、どのような数値も当てはめることができる。
【００３２】
発明の一態様として、キーをデータベースに適用することで、キーに対応するタグを有するレコードをすべて選択することが挙げられる。プロセス300はデータベースにキーを適用することで、一度だけデータベースにインデックスを付け（ステップ310）、それによってスレッドの中からメッセージ104をヘッドとするメッセージに対応するレコードを選択する。表１で見ると、キー“1ＸＸＸ”に対応するものは、メッセージ106と108に対応するレコードのタグである。そこでプロセス300はメッセージ106とメッセージ108を選択し（ステップ312）、そしてユーザーにメッセージ106とメッセージ108を提示する（ステップ314）。
【００３３】
プロセス300はまたメッセージを削除するのにも用いることができる。メッセージが削除される時、その子メッセージもすべて削除される。プロセス300はメッセージを選択し、同時にそのすべての子レコードも選択する。そしてその当該メーセージ群は消去される。
【００３４】
図４は、発明の一実施態様に基づいて、インデントされたスレッドディスカッションにおいてメッセージを付加する工程を示すフローチャートである。プロセス400において、ユーザーからコマンドを受け取る（ステップ402）。コマンドはメッセージ114を選択し、メッセージ114に対して返信せよ、というコマンドである。プロセス400は、キーを作製するために、メッセージ114のタグを修正する。その操作を実行するため、プロセス400は、初めにメッセージ114の階層深度の次の階層に対応する桁を選択する(ステップ404)。表１を見ると、メッセージ114の階層の深度は2である。したがってプロセス400は、メッセージ114のタグの上から３番目の桁を選択する。そしてプロセス400はその桁の数値をインクリメントする（ステップ406）。結果として‘3110’というキーができる。そしてプロセス400は、そのキーをタグとして有するレコードをデータベースに付け加えることによって、一度だけデータベースにインデックスを付与する。そのレコードは新たに付加されたメッセージに該当する。
【００３５】
本発明は、デジタル電子回路として実施したり、コンピュータハードウェア、ファームウェア、ソフトウェアとして、またそれらの組合せとして実施することができる。発明を実施する装置は、プログラム可能なプロセッサによって作製された読み取り可能な記憶媒体という形で明確に具現化されたコンピュータプログラム製品を用いることによって稼動させることができ、また本発明の方法部分は、プログラム可能なプロセッサによって作製された、データ入力や結果のアウトプット、といった形で発明の機能を実施するインストラクションプログラムによって実施することができる。またこの発明は、一つまたはそれ以上の、プログラム可能なシステム上で走るコンピュータプログラム上で命令されて機能するが、それは、少なくともデータを受け取り、またデータを送信し、またデータを保管することができるプログラム可能なシステムであり、さらに少なくとも一つのインプット装置、そして少なくとも一つのアウトプット装置を備えているものである。個々のコンピュータプログラムは、ハイレベルのプロシジャー言語、オブジェクトオリエンティッドなプログラム言語、さらにはアセンブリー言語や機械語によって作製することができるが、いずれの場合でも言語は、コンパイラ型またはインタープリタ型言語を用いることができる。好ましいプロセッサとしては、一例として、一般的な目的のマイクロプロセッサもしくは特定の目的のマイクロプロセッサを用いることができる。一般に、プロセッサは、読取専用メモリおよび／またはランダムアクセスメモリから指示およびデータを受け取る。そして一般にコンピュータは、データファイルを記録する一つまたはそれ以上の大量記憶装置、すなわちそれは、例えば内部ハードディスクやリムーバルディスクのような磁気ディスク、光磁気ディスクや光ディスクのようなものを備えている。コンピュータプログラムを確実に実行するのに適したデバイスとしては、あらゆるタイプの不揮発性のメモリーシステムであり、それらは一例をあげると、ＥＰＲＯＭやＥＥＰＲＯＭのような半導体・メモリー・デバイスであり、フラッシュメモリーデバイスであり、内部ハードディスクやリムーバルディスクのような磁気ディスク、光磁気ディスク、そしてＣＤ−ＲＯＭディスクなどである。上記の例はいずれも特定用途向け集積回路（ＡＳＩＣ）により付加され、組む込むことができる。
【００３６】
本発明の多くの実施態様を上記に示した。しかし、本発明の精神および技術的思想の範囲内で種々変形が可能であることが理解されるべきである。従って、他の実施態様も請求項の技術的範囲に含まれる。
【図面の簡単な説明】
【００３７】
【図１】インデントされたスレッドディスカッションの画面を示す。
【図２】本発明の一実施態様に基づいた、インデントされたスレッドディスカッションにおいてメッセージの親メッセージを検索する工程を示すフローチャートである。
【図３】本発明の一実施態様に基づいた、インデントされたスレッドディスカッションにおいてメッセージの子メッセージを検索する工程を示すフローチャートである。
【図４】本発明の一実施態様に基づいた、インデントされたスレッドディスカッションにおいてメッセージを付加する工程を示すフローチャートである。
【図１】
2005519370.tif 000004
【図２】
2005519370.tif 000005
【図３】
2005519370.tif 000006
【図４】
2005519370.tif 000007
【国際調査報告】
2005519370.tif 000008
2005519370.tif 000009