JP4805315B2 - データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法 - Google Patents

データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法 Download PDF

Info

Publication number
JP4805315B2
JP4805315B2 JP2008193807A JP2008193807A JP4805315B2 JP 4805315 B2 JP4805315 B2 JP 4805315B2 JP 2008193807 A JP2008193807 A JP 2008193807A JP 2008193807 A JP2008193807 A JP 2008193807A JP 4805315 B2 JP4805315 B2 JP 4805315B2
Authority
JP
Japan
Prior art keywords
node
tree
child
index
rank
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.)
Expired - Fee Related
Application number
JP2008193807A
Other languages
English (en)
Other versions
JP2008299867A (ja
Inventor
ラサール,エドモンド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
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
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of JP2008299867A publication Critical patent/JP2008299867A/ja
Application granted granted Critical
Publication of JP4805315B2 publication Critical patent/JP4805315B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、とりわけ辞書のようなデータ集合の編成を示す有向ツリーの電子化データアレイに関する。また本発明は、前記電子化されたデータアレイに前記有向ツリーを符号化する方法に関する。また本発明は、前記データ集合に属するデータエントリを、前記電子化されたデータアレイのインデックスに符号化する方法に関する。さらに本発明は、前記電子化されたデータアレイのインデックスを基準として、対応する前記データを取り出すことが可能な復号化方法に関する。
技術状況を論じる前に、これから先に用いる幾つかの用語を定義する。
有向グラフ(以下、単に「グラフ」という)は、ペアG=(S,A)を示すもので、Sは頂点(以下、これも「ノード(節)」という)の集合,Aは「アーク(弧)集合」と呼ばれるS×S個のサブ集合である。
グラフ内のパス(経路)は、(sl-1,sl)がl=1…nに対するアークとなるような、順序付けられた頂点の連続(s0,s1,…s)である。ここで、sn=s0(但し、n≧1)であれば、このパスは「回路」若しくは「サイクル」と呼ばれる。仮にあるグラフにおける2つの任意のノードが、1つのパスによってリンクされている場合、そのグラフは「関連された」ものと呼ばれる。
ツリー(木)は、非回路の関連されたグラフとして定義される。これは、2つの任意の頂点が、唯一のパスによってリンクされるものとしても示される。木は特別な頂点Rを備えており、この特別な頂点Rと異なるあらゆる頂点sが、パスによって頂点Rの後ろにリンクされるようになっている。こうした特別な頂点Rは、ツリーの「根(ルート)」と呼ばれる。
特定の頂点Sに対し、頂点Sから頂点sdへの間にパスが存在するようなツリーのあらゆる頂点sdが、頂点Sの子孫(descendant)となる。逆に特定の頂点sに対し、頂点Sから特定の頂点sへの間にパスが存在するようなツリーのあらゆる頂点Sが、頂点sの祖先(ancestor)となる。頂点Sにつながる「頂点の子(offspring)」は、(S,sf)∈Aのような頂点sの子孫sfである。ツリーのあらゆる頂点sにとって、sのサブツリーはsの全ての子孫を含んだ根sのツリーである。
最後に、「葉(リーフ)」とは子孫の存在しない全てのツリー頂点である。
多くのデータ処理方法が、特に情報のクラス化,圧縮若しくは保存の手順において、枝分かれした木構造のデータアレイを用いている。
考慮中のアプリケーションについて言えば、データは文字,連続する音素,波形,或いは輝度/クロミナンスパターンなどの繋がり(鎖)でもよい。
一般的に先入観がなければ、以下に説明するデータは、初歩的な構成要素やキャラクタ(例えば、文字,表意文字,数字,英数字記号)の繋がりによって構成されるであろう。こうした利用可能なキャラクタの集合は、一つのアルファベットを構成する。ここでは、前記アルファベットが「アルファベット順」と呼ばれる完全な順序関係を持っていると仮定する。
「サーチエンジン」,「辞書検索」,「電話帳検索」などのような多くのアプリケーションでは、特にオンラインのアクセスに際して、実際の動作状態に厳しい制約を伴いながら、非常に大容量のデータを保存し、アクセス可能にしなければならない。
大掛りな計算能力を必要とせずに、全データを素早くアクセスできるようにしなければならない。さらには、アクセス時間を減らすために、中央メモリに大きなデータ容量を持ち続けなければならない。このメモリのサイズが極度に肥大化するのを防ぐのに、事前にデータを頻繁に圧縮する必要がある。好ましくは、解凍を行なう必要なしに、データをアクセスできるようにすべきであって、これによりアクセス時間がさらに低下するであろう。
上述のアプリケーションに関して言えば、データが非対称的に処理されてもよい。データの圧縮段階は、比較的長時間で複雑な処理を含んでもよいため、逆にデータアクセス時の検索段階は簡素で且つ高速でなければならない。従ってデータは、固定の圧縮されたフォームでメモリに保存されてもよく、データの更新はそのデータがオンラインで逆戻りする前に行なわれる。
データ編成した幾何学構造は、その一つが上記定義されたツリーでもあるが、圧縮を行うのにとりわけ都合がよい。この幾何学構造は、特に辞書若しくは電話帳に存在する。ワード(語)の共通な認識において、辞書は「入力」とも呼ばれるデータファイルであって、各々のデータは一連のアルファベットキャラクタからなり、このアルファベットキャラクタの繋がりはツリー幾何学構造で編成される。
実際の電子化されたデータアレイで、全ての辞書データはインデックスと関連付けられている。辞書内のキャラクタ(若しくはワード)の繋がりを検索することは、それに対応するワードのインデックスを確認することを意味する。従って、頭文字を表記するよりもデータ処理に適合した一続きのインデックスにより、テキストが表現されてもよい。
従来技術において、様々な種類の表現やアレイ(配列)が、とりわけZiv-Lempel圧縮を利用した二分テーブルの形式や、ハッシュテーブルの形式や、構文的(レクシカル)ツリーの形式で提案されている。
完全アクセスの場合には、上記様々な種類の表現が同等のパフォーマンスを提供する。ここでいう「完全アクセス」とは、エラーや変更を無視して、解析すべきワードに一致する辞書内の正確なつながりのキャラクタを検索するためのアクセスモードのことである。
構文的ツリーの形式によるデータアレイは、一連のキャラクタの分析(例えば、構文解析)を想定している。図1は、次の辞書Δ(Δ={"abolish","abolition","appeal","attorney","bar","barrister","bench","case","court","crime"})に対する構文的ツリーの例を示している。
この構文的ツリーでは、辞書の各ワードにおけるキャラクタに対して、前記アークが関連付けられることに留意されたい。より具体的には、それぞれのツリーアークにタグが関連付けられており、それぞれのタグは、タグとして機能するキャラクタと適合する。構文的ツリーは、辞書内の一つのワードに骨格が一致する全てのパスの接合からなる。パスの「骨格(スケルトン)」は、このパスの構成要素となるアークタグのキャラクタの繋がりである。辞書のワードは、辞書「入力」とも呼ばれる。
さらに、構文的ツリーの各リーフは白抜き円で示されているのに対し、それ以外の頂点は塗潰し円で示されていることに留意されたい。このツリーの根は、「R」として示されている。
ここでのツリーは、インデックス化されているものと見なす。すなわち、一つのインデックスは各々の頂点と関連付けられている。構文的ツリーにおける一つの基本的な動作は、与えられたワードに基づき、これに対応する辞書入力のインデックスに対して検索を行なうことにある。この動作は、連続するキャラクタによりタグ付けられたアークに沿って、ツリーのトラバース(移動処理)が必要となる。
より具体的には、検索アルゴリズムは、辞書入力の値[associated-index(s)]が存在するならば、この辞書入力の値としてインデックスを戻し、さもなければデフォルトでは識別できないコード{unknown-word-index}を戻す"AnalyzeWord"関数を実行する。以後、前記値はC言語の擬似コードにて、次のように表現される。
上記"s = corresponding-descendant(s)"なる命令によるトラバースは、構文的ツリーの電子化されたデータアレイが利用可能であることを前提としている。
一般に、電子化されたツリーのデータアレイは、簡単にそのツリーをトラバースし、利用して変更することが必要とされる。
初期に知られた電子化データアレイでは、メモリに記憶され、(si,sj)∈Aのときにmij=1となる隣接テーブル(adjacency Table)M=(mij)(但し、i=0,…,n ;j=0,…,n)によって、ツリーが表現される。
また、最近の電子化データアレイでは、連続するポインタとしてツリーが示されている。図2Aに示す第1に知られた変形例では、各々のノードが値(若しくはインデックス)と、その子ノードを指し示すポインタのテーブルとにより表現される。テーブルのサイズは、あるツリーのノードが保有することができる子の最大数(k)に一致する(この場合のツリーを、「k-ツリー」という)。図2Aに示す変形例は、3−ツリーを示している。
ポインタのテーブルによって子ノードを符号化すると、多くの数の子ノードを持った少ない数のノードと、僅かな数の子ノードしか持たないその他多くの数のノードとを、ツリーが保有した時点で既に、多くのメモリ空間を必要とする欠点を引き起こす。第2に知られたアレイの変形例では、与えられたノードに対し、「年長の子」と呼ばれる子ノードの一つに向けて指し示すポインタと、「年長の子」からその兄弟の繋がったリストに向けてのポインタとを利用することで、この困難さが改善される。図2Bは、こうした第2の変形例としての5−ツリー表現を示している。
ポインタはツリーの幾何学的構造を素早く改変させることができる反面、相対的にかなり大きなメモリを必要とする。さらに、ノード間での子孫の検出は迅速でない。こうした検出は、2つのノードをリンクするパスを解明するものと考えられるので、ポインタによる表現の範囲内では、かなりの電子化リソースが必要となる。ツリーの過渡的な閉鎖(closing)を保存することで、演算処理量を相当に減らすことができ、この場合はノードがそれぞれの子孫を指し示すであろう。しかし、後者の選択では比較的多くのメモリ空間を占有する。
本発明の目的は、僅かなメモリ空間だけを必要とし、しかも前記空間を簡単にトラバースでき、且つ簡単な手法で改変できる電子化データアレイを生成することにある。
上記目的は、辞書データのようなデータ集合の編成を表した木からなり、各々のデータが前記ツリーの固有ノードと関連付けられ、メモリに保存された値からなるテーブルを備えており、前記値は、第1の全体的な順序関係に基づき順序付けられた前記ツリーのノードランクを示すと共に、前記値が保存されるアドレスが、第2の全体的な順序関係に基づき順序付けられた前記ツリーのノードランクを示す電子化データアレイによって達成される。
好ましくは、前記第1の全体的な順序関係は、ノードをその子孫に関連して順序付ける子孫の順序関係と、与えられたノードからの各子ノードを順序付ける長子の順序関係とを組み合わせたものからなる。
本発明の第1実施例では、第2のノードが第1のノードの子孫であるか、さもなければ第1のノードが第1の子の子孫または第1の子と同化し、且つ第2のノードが第2の子の子孫または第2の子と同化し、これらの第1の子と第2の子を、第1のノードおよび第2のノードに共通の祖先が有すると共に、前記長子の順序関係に基づき前記第1の子が前記第2の子よりも下位にあれば、前記第1の全体的な順序関係に基づき、ツリーの第1のノードがツリーの第2のノードよりも下位にある。
本発明の第2実施例では、第2のノードが第1のノードの子孫であるか、さもなければ第1のノードが第1の子の子孫または第1の子と同化し、且つ第2のノードが第2の子の子孫または第2の子と同化し、これらの第1の子と第2の子を、第1のノードおよび第2のノードに共通の祖先が有すると共に、前記長子の順序関係に基づき前記第1の子が前記第2の子よりも下位にあれば、前記第1の全体的な順序関係に基づき、リーの第1のノードがツリーの第2のノードよりも上位にある。
好ましくは、前記第2の全体的な順序関係は、前記子孫の順序関係と前記長子の順序関係とを逆にした順序関係を組み合わせたものからなる。
本発明の第1変形例では、第1のノードが第2のノードからの子孫であるか、或いは第1のノードが第1の子の子孫または第1の子と同化し、第2のノードが第2の子の子孫または第2の子と同化し、これらの第1の子と第2の子を、第1のノードおよび第2のノードに共通の祖先が有すると共に、前記長子の順序関係に基づき前記第1の子が前記第2の子よりも下位にあれば、前記第2の全体的な順序関係に基づき、ツリーの第1のノードがツリーの第2のノードよりも下位にある。
本発明の第2変形例では、第1のノードが第2のノードからの子孫であるか、或いは第1のノードが第1の子の子孫または第1の子と同化し、第2のノードが第2の子の子孫または第2の子と同化し、これらの第1の子と第2の子を、第1のノードおよび第2のノードに共通の祖先が有すると共に、前記長子の順序関係に基づき前記第1の子が前記第2の子よりも下位にあれば、前記第2の全体的な順序関係に基づき、ツリーの第1のノードがツリーの第2のノードよりも上位にある。
仮に、前記データがアルファベット順をなす一続きのアルファベットキャラクタであり、前記ツリーの各アークが少なくとも一つのデータ入力のキャラクタと関連付けられれば、前記ノードとその2つの子との間の各アークと関連付けられたキャラクタ間における前記アルファベット順の関係によって、同一ノードから2つの子の間における長子の順序関係を決定してもよい。
本発明はさらに、辞書のようなデータ集合の編成を表した有向ツリーがあって、前記集合の各データ項目がそれぞれ前記ツリーの固有ノードと関連付けられており、第1のインデックスと第2のインデックスが前記ツリーの各ノードにそれぞれ与えられ、前記第1のインデックスは、前記ツリーの各ノードを順序付ける第1の全体的な順序関係に基づいたノードランクを示しており、前記第2のインデックスは、第2の全体的な順序関係に基づいたノードランクを示しており、前記第1の全体的な順序関係が、ノードをその子孫に関連して順序付ける子孫の順序関係と、一つ且つ同一ノードからの各子ノードを順序付ける長子の順序関係とを組み合わせてなり、前記第2の全体的な順序関係が、前記子孫の順序関係と前記長子の順序関係とを逆にした順序関係を組み合わせてなる有向ツリーの符号化方法に関する。
好ましくは、当該符号化方法は、あらゆる任意のツリーノードに対して、前記ノードから生じるサブツリーのサイズを明らかにする計算ステップの再帰の呼出しを含んでいる。
親ノードと呼ばれる一つ且つ同一ノードからの第1の子と第2の子に関し、前記子が前記長子の順序関係に基づき順序付けられた子のリストに近接すると、前記計算ステップは、第1の子の第1インデックスと、第1の子から生じるサブツリーのサイズを基にして、第2の子の第1インデックスを決定すると共に、第1の子の第2インデックスと、第2の子から生じるサブツリーのサイズを基にして、第2の子の第2インデックスを決定する。
前記計算ステップは、前記親ノードの第1インデックスと、前記リストの最後となるように分類された子の第2インデックスを基にした前記親ノードの第2インデックスとから、前記リストの最初となるように分類された子の第1インデックスを決定する。
さらにこの計算ステップは、前記親ノードの子から生じるサブツリーのサイズの合計に基づき、前記親ノードから生じるサブツリーのサイズを決定する。
好ましくは、与えられたノードに対して、第1のポインタ種が前記子孫の順序関係に基づき子ノードを提供すると共に、第2のポインタ種がそれ以外の子ノードのリストを提供するようなポインタを利用して、前記符号化方法が前記ツリーの第1の表現上で動作する。
また本発明は、辞書データのような有向ツリーに基づき編成されたデータ集合に属する入力データ項目に関し、前記データはアルファベット順で提供された一続きのアルファベットキャラクタからなり、それぞれのデータ項目が前記ツリーの与えられたノードと、キャラクタに関連付けられた前記ツリーの各アークに関連付けられているものにおいて、前記ツリーが上述の電子化表現によって表され、前記ツリーは、根から開始してパスに沿ってノードからノードへと横断されると共に、前記入力データ項目はキャラクタ毎に分析され、前記パスの現在のノードに続く次のノードが現在のノードの子のなかから選択され、この選択が一連の比較ステップによって実行され、それぞれの比較ステップでは、入力した前記入力データ項目における現在のキャラクタと、現在のノードをその子の一つにリンクするアークに関連付けられたキャラクタとを比較し、前記入力データ項目が完全に分析された後にのみ前記トラバースが中断されると共に、前記入力データ項目の符号化された値をインデックスの形態で取得し、このインデックスが、前記パスの最後のノードを表わす前記電子化表現のアレイのアドレスに関係する入力データ項目の符号化方法によって定義される。
さらに本発明は、辞書データのような有向ツリーに配列されたデータ集合に属するデータ項目を示すインデックスに関し、それぞれのデータ項目が前記ツリーの固有ノードと、キャラクタに関連付けられた前記ツリーの各アークとに関連付けられているものにおいて、前記ツリーが上述の電子化表現によって表され、前記ツリーが根から開始してパスに沿ってトラバースされ、前記パスの現在のノードに続くノードが現在のノードの子のなかから選択され、この選択が一連の比較ステップによって実行され、それぞれの比較ステップでは、前記インデックスと、前記電子化表現にて前記子の一つを示すインデックスとを比較し、前記パスを構成するアークと関連付けられたキャラクタチェインを提供するインデックスの復号化方法により定義される。
上述した本発明の特徴は、他の特徴と共に、以下に示す幾つかの実施例において、添付図面と関連付けて説明される。
本発明の基本的な概念は、ノード間の依存関係を翻訳する全体的な順序関係に基づいて、新規なツリーによる電子化データアレイを生成することにある。
ノードの相互依存関係は、ツリーの各ノード群に影響を及ぼす部分的な順序付け関係を引き起こす。例えば、2つのツリーノードs1,s2に対し、s1>s2であると仮定して、s2がs1の子孫であれば、順序付けの関係が必ず存在する。しかし、このツリーの全てのノードが、このような手法で比較されるとは限らないので(例えば、同一ノードからの子のように)、当該順序付けは単に部分的なものでしかない。
一つのノードから子をどのように順序付けるのかがわかっている場合には、ツリーの各ノードに関係して全体的な順序関係を構築してもよい。同一ノードの子を位置付け(ランク)するための順序付けは、便宜的に「長子」の順序付けと呼ぶものとする。アークタグがアルファベットキャラクタを含んでいる構文的ツリーについて言えば、もしアーク(S,s1)と関連付けられたタグのキャラクタが、アーク(S,s2)と関連付けられたタグのキャラクタに先行して位置するならば、一つのノードSからの2つの子s1,s2が、s1>s2なる関係を満足すべきことを認めてもよい。そうでなければ、参照ラベルタグにおけるアルファベット順序が、同一ノードからの各子ノード上で、「長子」の順序付けを生じさせる。
部分的な子孫の順序関係(以下、これを数1のようにあらわす)と、「長子」の順序関係(以下、これを数2のようにあらわす)とを組み合わせると、全てのノード群に対する全体的な順序関係を実現できる。
この組み合わせを、次のような別の方法で実現してもよい。
−前置(prefix)順序関係(便宜的に数4によって示される。):
但し、a’とb’は、aがa’の子孫であり、またはa’と同化し、bがb’の子孫であり、またはb’と同化するような、aとbの共通の祖先の子孫である。
数3を言い換えれば、もしbがaの子孫であるか、さもなければa’がb’の年長の兄であるならば、前置順序の観点でノードaがノードbよりも下位にある。
−逆前置(inverse prefix)順序関係(便宜的に数6によって示される。):
−逆後置(inverse postfix)順序関係(便宜的に数8によって示される。):
数7を言い換えれば、もしaがbの子孫であるか、a’がb’の年長の兄であるならば、後置順序の観点でノードaがノードbよりも下位にある。
−逆後置(inverse postfix)順序関係(便宜的に数10によって示される。):
2つの任意のツリーノードがお互いに子孫であるか、或いは共通の祖先の子孫であるため、上述の順序関係は全体的な順序関係を示すものとなる。したがって、上記数4(または数6)、および数8(または数10)の順序関係は、ツリーが持つノードS全体の順序付けを完全に可能にする。すなわち、[0,n]におけるSの「ランキング(順位付け)」関数は、上記のそれぞれの順序関係と関連付けることができる。
例えば、Prefix(s1)Rank<Prefix(s2)Rankのとき且つその時に限り、次の数11となるようなものが、PrefixRank:S→[0,n]である。
Postfix(s1)Rank<Postfix(s2)Rankのとき且つその時に限り、次の数12となるようなものが、PostfixRank:S→[0,n]である。
PrefixRank(前置ランク)およびPostfixRank(後置ランク)は、順序付けられた群のモルフィズム(写像)である。「ランキング」関数であるInversePrefixRank(逆前置ランク)およびInversePostfixRank(逆後置ランク)も、順序関係を用いて、同様の手法で定義することができる。
InversePrefix(s1)Rank<InversePrefix(s2)Rankのとき、且つその時に限り、次の数13となるようなものが、InversePrefixRank:S→[0,n]である。
InversePostfix(s1)Rank<InversePostfix(s2)Rankのとき、且つその時に限り、次の数14となるようなものが、InversePostfixRank:S→[0,n]である。
第1実施態様において、次の数15で定義される[0,n]に対する[0,n]の双射(bijection)が、電子化されたデータアレイを構築するのに用いられる(ここで、oは写像の合成を表わす)。
双射T−1は、この第1実施態様の変形に利用される。
同様の手法で、本発明の別な各実施態様では、InversePostfixRank o Prefix-1Rank,PostfixRank o InversePrefix-1Rank,またはInversePostfixRank o InversePrefix-1Rankの合成を基にした双射を利用してもよく、さらにこれらの実施形態の変形で、各々の双射の逆を利用してもよい。
単純化するために、本発明の議論では双射TおよびT−1の利用を制限するが、これは他の双射でも等しく適用できるものと理解されたい。
前記双射Tは、メモリ内に保存される第1のテーブル値の形態で電子的に表現してもよく、ノードの後置ランク(PostfixRank)は、このノードの前置ランク(PrefixRank)を示すアドレスに保存される。
同様に、前記双射T−1は、メモリ内に保存される第2のテーブル値の形態で電子的に表現してもよく、ノードの前置ランクは、このノードの前置ランクを示すアドレスに保存される。
一つの例では、これらの双射の重要性と利用をより明確にするであろう。
図3は、各ノードが(太字と下線で示される)前置ランクと、(イタリック体で示される)後置ランクによってインデックス化されたツリーを表している。例えば構文的ツリーの場合に、ラベルタグのアルファベット順序により引き起こされる「長子」の順序関係は、便宜的に左から右に増加して示される。この手法では、各々のノードsが、一つの対(Prefix(s)rank,Postfix(s)Rank)で関連付けられる。好ましくは、図3Bに示す双射Tまたは図3Cに示す双射T−1によって、これらのペアがテーブルに保存される。
図3Bでは、後置ランクの値が、対応する前置ランクの値により指示されたアドレスに記憶される。その逆に、前置ランクの値は、対応する後置ランクの値により指示されたアドレスに記憶される。
本発明によるツリー状電子化データアレイの第1の利点は、従来のポインタによる表記が2倍のメモリ空間を必要とするのに対して、(n+1)ツリーのサイズのメモリ空間だけを占有することにある。
また、このツリー状電子化データアレイの本質的な第2の利点は、2つのノード間の依存(従属)関係を、非常に簡単な手法にできることにある。例えば、ノードsがノードsに依存するか否かを決めるのに、一方でsの前置ランクPrefix(s1)rankと、sの前置ランクPrefix(s2)rankとを比較し、他方でsの後置ランクPostfix(s2)Rankと、sの後置ランクPostfix(s2)Rankとを比較すれば、それ以外に必要なものはない。つまり、Prefix(s2)Rank>Prefix(s1)RankおよびPostfix(s2)Rank<Postfix(s1)Rankのとき、且つその時に限り、ノードsがノードsに依存する。
従って、図3Aに関し、ペア(PrefixRank,PostfixRank)=(,1)で表現されるノードは、ペア(PrefixRank,PostfixRank)=(,5)で表現されるノードには依存するが、ペア(PrefixRank,PostfixRank)=(22,21)で表現されるノードには依存しない。
同様の手法で図3Bのテーブルを利用すると、与えられたノードの子孫あるいは祖先が簡単に決定される。例えば、ノード(,12)の子孫リストを決定するためには、アドレスから開始して、アドレスを増加する方向にテーブルを分析し、後置ランク12よりも小さい値の保存データ(この場合は、6,10,11,7,8,9)の中を検索すれば十分である。これらの値は、該ノードの子孫の後置ランクを意味するものとなる。また、ノード(,12)の祖先リストを確定するには、アドレスから開始して、アドレスを減少する方向にテーブルを分析し、後置ランク12よりも大きい値の保存データ(ここでは、19,22)の中を検索すれば十分であろう。これらの値は、当該ノードの祖先の後置ランクを意味するものとなる。
図3Cのテーブルは、二重の手続きに利用される。前述の例に戻ると、アドレス12から開始して、アドレスを減少する方向にテーブルを分析し、前置ランクよりも高い値の保存データ(この場合は、1410131211)の中を検索するだけで、子孫のリストを決定してもよい。これらの値は、該ノードの子孫の前置ランクを意味するものとなる。また、ノード(,12)の祖先リストを確定するには、アドレス12から開始して、アドレスを増加する方向にテーブルを分析し、前置ランクに満たない値の保存データ(ここでは、)の中を検索すれば十分であろう。これらの値は、当該ノードの祖先の前置ランクを意味するものとなる。
本発明の電子化データアレイにより提供された第3の利点とは、例えば構文的ツリーを利用して、キャラクタ(ワード)の繋がりを分析する際に、根から葉に向けて、さもなければ葉から根に向けて、ツリーを簡単にトラバース(移動処理)できることにある。このトラバースは、例えばノード自身のインデックスからキャラクタの繋がりを生成する際に実行される。
根から葉に向けてのトラバースは、与えられたノードの子を決定するためのノウハウを推定する。ここで示すように、図3Bまたは図3Cのテーブルは、前記子の検索を簡単に可能にする。
ナビゲーションアルゴリズムが、ノード(12,)の子を検索していると推定される一方で、図3Bに示すテーブルが考慮される。アドレスから開始して、アドレスが増加する方向にテーブルが分析される。上述した同様の手法で、12に満たないテーブルデータが検索される。12に満たないデータエントリxを保持すると、xに満たない次のデータは考えに入れない。言い換えるならば、xよりも大きな(但し、初期値12よりは小さい)データエントリx’が見つかるまで、テーブルはさらに分析されることになる。この手続きは、テーブルの終点まで繰り返される。従って本例では、最初の値6に出会うと、この値が12より小さいということで保持され(<12)、その後、値10も6より大きく12より小さいということで保持される(6<10<12)。後に続く値7,8,9は保持されないが、その理由はこれらが12より小さいものの、他方では最後に保持された値10を越えないからである。次の値11は、10より大きく12より小さいということで保持されるが(10<11<12)、それ以降の各値は12よりも大きいということで保持されない。
図3Cのテーブルは、二重のアプローチに用いられる。前述の例を利用すると、アドレス12から開始して、アドレスが減少する方向にテーブルが分析される。上述の手法で、より大きい前置ランクを備えた保存データが検索される。よりも大きなデータエントリに出会うと、それに続くより大きなデータは無視されることになる。言い換えるならば、に満たない(但し、初期値よりも大きい)データエントリが見つかるまで、テーブルはさらに分析される。この手続きは、テーブルの開始点に到達するまで繰り返される。従って本例では、最初の値14に出会うと、この値がより大きいということで保持され(>)、その後、値10より大きく14より小さいということで保持される(1014)。後に続く値111213は、よりも大きいものの無視されるが、その理由はこれらが最後に保持された値10を上回るからである。次の値は、より大きく10より小さいということで保持されるが(10)、それ以降の各値はよりも小さいということで保持されない。
与えられたノードの子を決定するこうした方法は、小さなツリーに対してのみ適応する。以下に示すが、大きなツリーに関しては、前記子の前置/後置ランクが直接的な手法でより高速に算出できる。
双射TおよびT−1に基づいて構築されたテーブルに代わって、InversePostfixRanko Prefix-1Rank,PostfixRank o InversePrefix-1Rank,またはInversePostfixRank o InversePrefix-1Rankの双射を基にして、さらにはこれらの双射の逆を基にして、テーブルが構築されるならば、場合によっては分析の方向を変更したり、および/または不等式の方向を変更したりするのと引換えにではあるが、与えられたノードの子を同様の手法で決定することが可能になる。
同様に、葉から根へのツリーのトラバースは、与えられたノードの父親を決定できることが前提である。ここではナビゲーションアルゴリズムが、ノード(12,)の父親を検索することが想定され、最初に図3Bのテーブルが考慮されるようになる。アドレスから開始して、アドレスが減少する方向にテーブルが分析される。12よりも大きい最初のデータエントリに出会うと、このデータエントリは適用可能なノードの父親の後置インデックスを提供する(ここでは19となる)。
勿論、図3Cにおいて二重の手続きが実行される。本例では、アドレス12から開始して、アドレスが減少する方向にテーブルが分析される。よりも小さい最初のデータエントリに出会うと、このデータエントリは適切なノードの父親の前置インデックスを提供する(ここではとなる)。
「ツリー符号化」という動作であって、任意のツリーを電子化されたデータアレイに変換するために、ノードのインデックス化を最初に行なわなければならない。本発明における電子化データアレイの形態にツリーを符号化するためには、前置ランク(PrefixRank)および後置ランク(PostfixRank)の各関数(あるいは、上述した他の関数でもよい)によって、各ノードをインデックス化する必要がある。ここでは一般論を失わずに、上記2つの関数に制限して、本発明におけるインデックス化の方法を説明することにする。
当該インデックス化の方法は、図2Bに示す手法のポインタを利用した従来の電子化データアレイ上で動作する。従来のデータアレイは、辞書入力のファイルから開始して、既知の手法で入手される。縦方向のポインタの繋がりは、各辞書入力の入力関係に対応している。一つのノードにおける兄弟の横方向の繋がりは、ラベルタグを分類することにより受け継がれるような、「長子」の順序に基づき行なわれる。
根自身の前置ランクは0に初期化されると共に、ツリーはその後、この根から年長の子からのポインタに沿って葉に達するまで(従来モードによれば、最も左側にあるもの)、トラバースされる。この葉の後置ランクは0に初期化される。
図4に示すように、ツリーのノードSが、増加する「長子」の順序に配列された子S0,S1,…Spを有する(すなわち、子は横方向の繋がりに順序付けられる)ものと仮定する。次の関係が続いて起こる。
但し、Γ(s)は、sから生じたサブツリーのサイズである。前置ランクおよび後置ランクによるインデックス化は、与えられた頂点sに対し、ツリーから生じたサブツリーのサイズΓ(s)を戻す関数を再帰呼出しすることで、そのツリーの根から一方向に実行される。この関数は、C言語の擬似コードにて、次のように記載される。
上記プログラムにおいて、SubTreeSize 変数は、現在の瞬間的な子(offspring)ノード(s)から生じたサブツリーのサイズであり、OffspringSubTreesSize関数は、既に分析された子ノードから生じたサブツリーのサイズの累積値である。
EncodingTree 関数は、図3Bに示す種類のインデックステーブルの形態に、電子化データアレイを直接生成すると共に、メモリ内に保存される。この電子化データアレイが一度生成されれば、初期のポインタアレイはもはや必要なくなり、除外されることとなる。
以下、議論を単純化するために、構文的ツリーとして体系化された辞書を取り上げると、各々の辞書のデータ入力はツリーの一つの葉に一致する。上述のように、ツリーと同じサイズを有するテーブルの形態をなす電子化データアレイは、本発明の符号化方法によって実現できる。
この電子化データアレイは、好ましくは与えられたキャラクタの繋がりに基づいて、それに一致する辞書入力を検索するのに利用されるであろう。インデックスは、葉自身の前置ランク(あるいは、葉自身の逆前置ランクが選択されることもある)のような従来の手法で取得される。根から葉に向けてツリーをトラバースするために、本発明における第1の方法をインデックス検索が利用する。
逆に電子化データアレイは、好ましくは辞書入力のインデックスに基づき、それに一致するキャラクタの繋がり(チェイン)を生成するのに利用される。根から葉に向けてツリーをトラバースするために、本発明における第2の方法を、このキャラクタチェインの生成が利用する。
最初に、キャラクタチェインCに対するインデックス検索の場合を考えることにする。ツリーは、タグが連続するCのキャラクタを保有するアークに沿って、根からトラバースされる。
好ましくは、根から葉に向けてツリーをトラバースする本発明による第1の方法は、次の手法で動作する。ノードSの第1の子sに達すると、次のように初期化される。
また、第1の子sから生じるサイズΓ(s0)は、次のようにして計算される。
但し、LastPostfix は、サブツリーのトラバースが中断された最後の子の後置ランク(言い換えれば、トラバース中に最後に切り取られたサブツリーにおける、根の後置ランク)である。例えば、根にリンクするアークと、図3Aにおける後置ランク5のノードが、検索するキャラクタを持たないという理由で、当該ノードが保持されなかった場合は、lこのノードから生じるサブツリーはトラバースされず、LastPostfix=5になるであろう。その後、後置ランクが19であるノード、上手く行けば後置ランクが12であるノードに至るまで、トラバースが継続する。このノード(後置ランク19のノードSの最初の子s)から生じるサブツリーのサイズは、事実上7である。
次に、ノードSの連続するそれぞれの子sの前置ランクが、次の再帰関係を利用して決定される。
それぞれの分析された子sに対して、キャラクタチェインCにおける進行中のキャラクタ(Character in Progress)cが、ノードSを子sに連結するアークのタグにより提示されたキャラクタと等しいか否かのテストが行なわれる。もし等しくなければ、次の子si+1と分析を続け、以下同様に進行中のキャラクタが見つかるか、ノードSの全ての子が分析されるまで、テストが行なわれる。
与えられたノードSに到達した時点では、そのノードSにどの程度の数の子がいるのか予め判らない。この目的を達成するために、好ましくは前記ノードSから生じたサブツリーのサイズΓ(S)が、保存されるべきである。次に、子sを連続的に検討したときに、OffspringSubTreesSize変数は次のように更新されることとなる。
さらには、OffspringSubTreesSize = Γ(S)−1のときに、ノードSにおける全ての子sが分析されたことを理解するであろう。
進行中のキャラクタが見つからずに、全ての子が分析された場合、(キャラクタチェインCの一部を含んでいるかもしれないが、)キャラクタチェインCは完全には辞書入力に一致しないものとなる。もし、進行中のキャラクタが子sの一つに見つかったら、S=sとし、次のキャラクタで検索サイクルが再び開始する。この手続きは、ツリーの葉に到達するまで繰り返される。検索されたインデックスは、この葉の前置ランクである。好ましくは、例えば図1の"bar"と"barrister"のような、前置がお互いに共通するワードを検索できるようにするために、それぞれのワードの終わりに、例えばスペース(空白)のキャラクタのような、ワード終了を示すマーカーを加えてもよい。この場合は、ツリーの全ての葉が、ワード終了のマーカーを保有する。
本手法では、キャラクタの繋がりすなわちAnalyzeWordに基づいて、移動処理(トラバース)の終わりに到達した葉の前置ランクを戻すTreeTraversal 関数を定義してもよい。この関数は、本発明における電子化データアレイを利用する。そのC言語の擬似コードは、次のように記載される。
逆に、インデックスI(ツリー葉の前置ランクに等しいものと仮定する)から始まる辞書入力に一致して、キャラクタチェインの生成を望むならば、本発明における第2のトラバース方法が利用されるであろう。前記第2の方法は、検索されたインデックスIに対して子ノードの前置ランクを比較することで、当該子ノードの選択が、それ以降決定されるような第1の方法とは異なる。より詳しくは、Prefix(si+1)Rank>1なる関係が確認されれば、子ノードsがすぐに選択される。したがって、分析された各ノードの前置ランク値を増加させることで、インデックスIに近づいてゆく。
第2の方法では、それぞれのサブツリーのサイズΓ(s)から開始して、与えられたノードSの子の前置ランクを同一に相互計算する。さらに、与えられたノードSの子sの分析を止める基準は、ノードSから生じるサイズΓ(S)と、既に分析された子のサイズΓ(s)の合計に基づいている。
ここでは、PrefixGuide なるインデックスから開始し、一致するキャラクタチェインを戻す GenerateWord関数を定義してもよい。この GenerateWord 関数も、本発明のツリーにおける電子化データアレイを利用する。そのC言語の擬似コードは、次のように記載される。
構文的ツリーの一例を示す図である 第1のポインタを用いたツリーによる電子化されたデータアレイの図である。 第2のポインタを用いたツリーによる電子化されたデータアレイの図である。 本発明の第1実施例におけるツリーの符号化方法をあらわした図である。 図3Aのツリーによる電子化されたデータアレイの第1変形例を示す図である。 図3Aのツリーによる電子化されたデータアレイの第2変形例を示す図である。 前置ランクおよび後置ランクによりインデックス化される前のツリー部分を示す図である。

Claims (7)

  1. データ集合の編成を表した有向ツリーの符号化のためのコンピュータが実行する情報処理方法であって、前記集合の各データ項目がそれぞれ前記ツリーの固有ノードと関連付けられているものにおいて、
    前記ツリーの各ノードを順序付ける第1の全体的な順序関係に基づいたノードランクを示す第1インデックスと、第2の全体的な順序関係に基づいたノードランクを示す第2インデックスとが前記ツリーの各ノードにそれぞれ与える手順、および、
    前記ツリーの各ノードにおける前記第1インデックスを示す値を、前記ツリーの各ノードにおける前記第1インデックスを示すアドレスに配列させてメモリに記憶させる手順からなり、
    前記第1の全体的な順序関係が、ノードをその子孫に関連して順序付ける子孫の順序関係と、一つ且つ同一ノードからの子の各ノードを順序付ける長子の順序関係とを組み合わせたものであり、
    前記第2の全体的な順序関係が、前記子孫の順序関係を逆にした順序関係と前記長子の順序関係を逆にした順序関係とを組み合わせたものであることを特徴とする情報処理方法。
  2. ツリーの任意のノードに対し、与えられた頂点に対し、ツリーから生じるサブツリーのサイズを提供するため関数の再帰呼出しを行なう手順をさらに備えることを特徴とする請求項1記載の情報処理方法。
  3. 親ノードと呼ばれる一つ且つ同一ノードからの第1の子と第2の子に関し、前記第1の子と第2の子とが前記長子の順序関係に基づき順序付けられた子のリストで隣接しており、前記関数により、第1の子の第1インデックスと、第1の子から生じるサブツリーのサイズを基にして、第2の子の第1インデックスを決定すると共に、第1の子の第2インデックスと、第2の子から生じるサブツリーのサイズを基にして、第2の子の第2インデックスを決定する手順をさらに備えることを特徴とする請求項2記載の情報処理方法。
  4. 前記関数により、前記親ノードの第1インデックスに基いて、前記リストの最後となるように分類された子の第2インデックスを基にした前記親ノードの第2インデックスとから、前記リストの最初となるように分類された子の第1インデックスを決定することを特徴とする請求項3記載の情報処理方法。
  5. 前記計算ステップは、前記親ノードの子から生じるサブツリーのサイズの合計に基づき、前記親ノードから生じるサブツリーのサイズを決定することを特徴とする請求項2〜4のいずれか一つに記載の情報処理方法。
  6. 与えられたノードに対して、第1のポインタ種が前記子孫の順序関係に基づき子ノードを提供すると共に、第2のポインタ種がそれ以外の子ノードのリストを提供するようなポインタによって表現される前記ツリーを利用することを特徴とする請求項1〜5のいずれか一つに記載の情報処理方法。
  7. 前記ツリーの各ノードにおける前記第2インデックスを示す値を、前記ツリーの各ノードにおける前記第1インデックスを示すアドレスに配列させるアレイを提供することを特徴とする請求項1〜5のいずれか一つに記載の情報処理方法。
JP2008193807A 2002-02-27 2008-07-28 データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法 Expired - Fee Related JP4805315B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0202664A FR2836573A1 (fr) 2002-02-27 2002-02-27 Representation informatique d'une structure de donnees arborescente et methodes de codage/decodage associees
FR02/02664 2002-02-27

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003571942A Division JP2005525625A (ja) 2002-02-27 2003-02-21 データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法

Publications (2)

Publication Number Publication Date
JP2008299867A JP2008299867A (ja) 2008-12-11
JP4805315B2 true JP4805315B2 (ja) 2011-11-02

Family

ID=27676213

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003571942A Pending JP2005525625A (ja) 2002-02-27 2003-02-21 データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法
JP2008193807A Expired - Fee Related JP4805315B2 (ja) 2002-02-27 2008-07-28 データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2003571942A Pending JP2005525625A (ja) 2002-02-27 2003-02-21 データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法

Country Status (9)

Country Link
US (1) US7882109B2 (ja)
EP (1) EP1483693B1 (ja)
JP (2) JP2005525625A (ja)
AT (1) ATE403907T1 (ja)
AU (1) AU2003222939A1 (ja)
DE (1) DE60322678D1 (ja)
ES (1) ES2311699T3 (ja)
FR (1) FR2836573A1 (ja)
WO (1) WO2003073320A2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037102B2 (en) 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
US9646107B2 (en) 2004-05-28 2017-05-09 Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust Method and/or system for simplifying tree expressions such as for query reduction
US7620632B2 (en) 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
EP1635273A1 (fr) * 2004-09-10 2006-03-15 France Telecom Construction informatique d'un arbre lexical
US7627591B2 (en) 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7801923B2 (en) 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US7636727B2 (en) 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7681177B2 (en) 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
US8356040B2 (en) * 2005-03-31 2013-01-15 Robert T. and Virginia T. Jenkins Method and/or system for transforming between trees and arrays
US7899821B1 (en) 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
US8015061B2 (en) * 2005-10-21 2011-09-06 Sap Ag File export channel
US7801136B2 (en) * 2006-02-15 2010-09-21 Ericsson Ab Source routed multicast LSP
CN100445987C (zh) * 2006-09-15 2008-12-24 北京北大方正电子有限公司 一种表格的可变数据排版的方法
US10411975B2 (en) 2013-03-15 2019-09-10 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with multi-tier deployment policy
US9489647B2 (en) 2008-06-19 2016-11-08 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with self-service portal for publishing resources
US20140201218A1 (en) * 2008-06-19 2014-07-17 Servicemesh, Inc. Systems and methods for providing ranked deployment options
US8514868B2 (en) 2008-06-19 2013-08-20 Servicemesh, Inc. Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US8645350B2 (en) * 2008-07-11 2014-02-04 Adobe Systems Incorporated Dictionary compilations
DE102008038509A1 (de) 2008-08-20 2010-02-25 Daimler Ag Verfahren zum Betrieb einer Verbrennungskraftmaschine eines Fahrzeuges und Fahrzeug mit einer Verbrennungskraftmaschine
TW201013433A (en) * 2008-09-19 2010-04-01 Esobi Inc Filtering method for the same or similar documents
US20110314028A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Presenting display characteristics of hierarchical data structures
US8392433B2 (en) * 2011-04-14 2013-03-05 Amund Tveit Self-indexer and self indexing system
US9904721B1 (en) * 2013-01-25 2018-02-27 Gravic, Inc. Source-side merging of distributed transactions prior to replication
AU2014215745A1 (en) * 2013-02-08 2015-07-30 Contentmap International Ab Method and device for handling data containers
US9063916B2 (en) * 2013-02-27 2015-06-23 Oracle International Corporation Compact encoding of node locations
RU2640322C2 (ru) * 2014-01-30 2017-12-27 Общество с ограниченной ответственностью "Аби Девелопмент" Способы и системы эффективного автоматического распознавания символов
JP2020004132A (ja) * 2018-06-28 2020-01-09 エヌ・ティ・ティ・コミュニケーションズ株式会社 検索装置、検索方法、プログラム、及び記録媒体
US11263195B2 (en) * 2020-05-11 2022-03-01 Servicenow, Inc. Text-based search of tree-structured tables
FR3120718B1 (fr) * 2021-03-09 2023-02-10 Commissariat Energie Atomique Procédé d’exécution d’un programme d’ordinateur par un appareil électronique
CN114025024B (zh) * 2021-10-18 2023-07-07 中国银联股份有限公司 一种数据传输方法及装置
CN117355827A (zh) * 2022-03-16 2024-01-05 库尔马甘贝托夫·阿努阿尔·莱哈诺维奇 一种在应用程序的非结构化数据库中组织文档搜索的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2117846C (en) * 1993-10-20 2001-02-20 Allen Reiter Computer method and storage structure for storing and accessing multidimensional data
JP2683870B2 (ja) * 1994-05-23 1997-12-03 日本アイ・ビー・エム株式会社 文字列検索システム及び方法
US5893100A (en) * 1996-11-27 1999-04-06 Teralogic, Incorporated System and method for tree ordered coding of sparse data sets
EP1039646A1 (en) * 1999-03-05 2000-09-27 Mitsubishi Electric France Interleaver device and method for interleaving a data set
US6813611B1 (en) * 1999-06-08 2004-11-02 International Business Machines Corporation Controlling, configuring, storing, monitoring and maintaining accounting of bookkeeping information employing trees with nodes having embedded information
US7235358B2 (en) * 2001-06-08 2007-06-26 Expression Diagnostics, Inc. Methods and compositions for diagnosing and monitoring transplant rejection
US6839005B1 (en) * 2003-11-07 2005-01-04 Broadcom Corporation Low memory and MIPS efficient technique for decoding Huffman codes using multi-stage, multi-bits lookup at different levels

Also Published As

Publication number Publication date
ATE403907T1 (de) 2008-08-15
FR2836573A1 (fr) 2003-08-29
JP2008299867A (ja) 2008-12-11
DE60322678D1 (de) 2008-09-18
AU2003222939A1 (en) 2003-09-09
ES2311699T3 (es) 2009-02-16
JP2005525625A (ja) 2005-08-25
US20050149471A1 (en) 2005-07-07
WO2003073320A2 (fr) 2003-09-04
EP1483693A2 (fr) 2004-12-08
WO2003073320A3 (fr) 2004-04-01
US7882109B2 (en) 2011-02-01
EP1483693B1 (fr) 2008-08-06

Similar Documents

Publication Publication Date Title
JP4805315B2 (ja) データ構造によるコンピュータ表現及びそれに関連する符号化/復号化方法
US8095526B2 (en) Efficient retrieval of variable-length character string data
Bille et al. Random access to grammar-compressed strings and trees
Bille et al. Random access to grammar-compressed strings
CN107153647B (zh) 进行数据压缩的方法、装置、系统和计算机程序产品
Barbay et al. On compressing permutations and adaptive sorting
US20060036627A1 (en) Method and apparatus for a restartable hash in a trie
JP2009259284A (ja) 圧縮データの構造を問い合わせる方法
Ferragina et al. On the bit-complexity of Lempel--Ziv compression
Navarro Document listing on repetitive collections with guaranteed performance
Prezza Optimal rank and select queries on dictionary-compressed text
Jansson et al. Linked dynamic tries with applications to LZ-compression in sublinear time and space
Takagi et al. Linear-size CDAWG: New repetition-aware indexing and grammar compression
Claude et al. Document listing on versioned documents
Akagi et al. Grammar index by induced suffix sorting
He et al. Data structures for path queries
Bille et al. Finger search in grammar-compressed strings
CN110362669B (zh) 一种适用于关键字快速检索的方法
CN113961568A (zh) 基于区块链的链式数据结构的区块快速查找方法
Daciuk et al. Natural Language Dictionaries Implemented as Finite Automata.
EP0649105B1 (en) Word/number and number/word mapping
CN111222020A (zh) 一种对检索结果的知识演进算法
JPH10149367A (ja) テキスト蓄積検索装置
US20030187843A1 (en) Method and system for searching for a list of values matching a user defined search expression
Tounsi et al. A compression method for natural language automata

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110628

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110719

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110810

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees