JPH0756955A - 圧縮データをサーチする方法及びシステム - Google Patents

圧縮データをサーチする方法及びシステム

Info

Publication number
JPH0756955A
JPH0756955A JP6146536A JP14653694A JPH0756955A JP H0756955 A JPH0756955 A JP H0756955A JP 6146536 A JP6146536 A JP 6146536A JP 14653694 A JP14653694 A JP 14653694A JP H0756955 A JPH0756955 A JP H0756955A
Authority
JP
Japan
Prior art keywords
compressed
code
document
length
inquiry request
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.)
Granted
Application number
JP6146536A
Other languages
English (en)
Other versions
JP3234104B2 (ja
Inventor
Marlin J Eller
ジェイ エラー マーリン
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JPH0756955A publication Critical patent/JPH0756955A/ja
Application granted granted Critical
Publication of JP3234104B2 publication Critical patent/JP3234104B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • 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/33Querying
    • G06F16/3331Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

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

Abstract

(57)【要約】 【目的】 圧縮されたデータを効率良くサーチすること
のできるコンピュータ方法及びシステムを提供する。 【構成】 圧縮文書に記憶された複数のキャラクタスト
リングが圧縮コードで記憶されている間に圧縮文書をサ
ーチする方法及びシステムが提供される。問い合わせ要
求が受け取られ、その問い合わせ要求が圧縮コードに変
換されそしてその変換された問い合わせ要求が、圧縮文
書に記憶された圧縮コードと比較される。次いで、その
問い合わせ要求の開始者に、比較結果について通知され
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にコンピュータにお
いてデータをサーチするためのコンピュータ方法及びシ
ステムに係る。
【0002】
【従来の技術】情報の電子的な収集及び記憶は多くの環
境において問題を生じる。例えば、データが情報サービ
スから遠隔コンピュータにダウンロードされるときに
は、膨大な量のデータが短いインターバルで転送され
る。遠隔コンピュータは、通常は、このデータを後で処
理するためにコンピュータメモリに記憶する。情報サー
ビスによって転送されるデータの量、遠隔コンピュータ
によって記憶されるデータの量、及びデータの転送に必
要な時間を減少するために、情報サービスは、通常、デ
ータを遠隔コンピュータへ送信する前にデータを圧縮す
る。
【0003】圧縮方法は、一般に、固定長さの圧縮方法
と、可変長さの圧縮方法の2つの分類に分けられる。固
定長さの圧縮方法は、同じ数のビットにより各記号を表
す。例えば、ジブ−レンペル(Ziv-Lempel)コード化のL
Z78形式は、固定長さの圧縮方法である。可変長さの
圧縮方法は、可変数のビットによって各記号を表す。可
変長さの圧縮方法は、通常、より頻繁に使用される記号
に短いコードを指定する。例えば、良く知られたモース
コードは、可変長さの圧縮方法である。
【0004】
【発明が解決しようとする課題】既存のシステムは、デ
ータを表す圧縮コードをその非圧縮形態に変換して戻し
そしてデータを通してサーチすることが所望される場合
にその非圧縮データを処理する。これは、時間のかかる
圧縮解除段階を必要とする。
【0005】そこで、圧縮されたデータを効率良くサー
チすることのできるサーチ方法をもつことが要望され
る。
【0006】
【課題を解決するための手段】本発明は、圧縮文書に記
憶された複数のキャラクタストリングが圧縮コードで記
憶されている間に圧縮文書をサーチする方法及びシステ
ムを提供する。本発明は、問い合わせ要求を受け取り、
その問い合わせ要求を本発明の圧縮コードに変換しそし
てその変換された問い合わせ要求を圧縮文書に記憶され
た圧縮コードと比較する。次いで、本発明は、その問い
合わせ要求の開始側に比較結果について知らせる。
【0007】
【実施例】図1に示すように、本発明は、コンピュータ
システム10及びこのコンピュータシステムで実行され
る方法において実施され、非圧縮文書101のキャラク
タストリングを非圧縮コードから圧縮コードに変換し、
ユーザ要求に応答してそれらの圧縮コードのキャラクタ
ストリングを圧縮文書103に記憶し、そしてキャラク
タストリングが圧縮コードで記憶されたままである間に
その圧縮文書103におけるキャラクタストリングをサ
ーチする。
【0008】システム:コンピュータシステム100
は、ホストコンピュータキーボード105と、ホストコ
ンピュータマウス107と、ホストコンピュータ109
と、遠隔コンピュータキーボード111と、遠隔コンピ
ュータマウス113と、遠隔コンピュータ115と、ホ
ストコンピュータ109と遠隔コンピュータ115との
間でデータを送信するための通信チャンネル117とを
備えている。ホストコンピュータ109においては、文
書をそれらの非圧縮形態で記憶することができ、遠隔コ
ンピュータ115によって要求されたときに、文書を圧
縮して、通信チャンネル117を経て遠隔コンピュータ
115へ送信することができる。遠隔コンピュータ11
5においては、文書に対する問い合わせを処理できる前
に文書を圧縮解除する必要はない。
【0009】ホストコンピュータ109は、更に、中央
処理ユニット119と、入力/出力ユニット121と、
ホストコンピュータメモリ123とを備えている。更
に、ホストコンピュータメモリ123は、ディクショナ
リ(辞書)125と、非圧縮文書101と、中央処理ユ
ニット119で実行するときのパーザ127と、圧縮エ
ンジン129と、圧縮文書103とを記憶している。パ
ーザ127は、非圧縮文書101からキャラクタストリ
ングを検索する。非圧縮文書101から検索されたキャ
ラクタストリングは非圧縮コードである。典型的な非圧
縮コードは、各キャラクタを0と1の8ビットストリン
グとして表すASCIIコードである。圧縮エンジン1
29は、中央処理ユニット119において実行するとき
に、非圧縮キャラクタストリングを、ディクショナリ1
25を用いて圧縮キャラクタストリングに変換する。1
つの実施例では、圧縮キャラクタストリングは、16ビ
ットの固定長さの圧縮コードとして表される。別の実施
例では、圧縮キャラクタストリングは、可変長さの圧縮
コードとして表される。圧縮エンジン129は、中央処
理ユニット119において実行するときには、圧縮キャ
ラクタストリングを圧縮文書103に記憶する。
【0010】ディクショナリ125は、好ましくは、キ
ャラクタストリングを非圧縮コードでROMに記憶しそ
して各キャラクタストリングに独特のコード(典型的に
圧縮コード)を関連させる。好ましい実施例において
は、ディクショナリ125のサイズは64Kであり、各
キャラクタストリングに関連される独特のコード(即ち
圧縮コード)は16ビットメモリアドレスであって、こ
れは、ディクショナリ125の各キャラクタストリング
に対するメモリ位置を表している。
【0011】好ましい実施例では、ディクショナリ12
5は、ワードセクション131と、対セクション133
と、ASCIIセクション135と、フォーマット化及
び句読点キャラクタセクション137とを備えている。
ワードセクション131は、キャラクタストリング「文
書」のような全ワードを記憶する。対セクション133
は、キャラクタストリング「AA」又は「ZZ」のよう
なレターの対と、キャラクタストリング「16」又は
「88」のような数字の対を記憶する。フォーマット化
及び句読点キャラクタセクション137は、「、」及び
「?」のような句読点キャラクタを記憶すると共に、
「キャリッジリターンラインフィード」のような共通の
フォーマットパターンを記憶する。ASCIIセクショ
ン135は、ASCIIキャラクタを記憶し、好ましい
実施例では、完全なASCIIキャラクタセットを記憶
する。好ましい実施例では、本発明の「圧縮」16ビッ
トコードは、実際に、ASCIIセクション135にお
ける各キャラクタの「非圧縮」8ビットASCIIコー
ドに及ぶ。ディクショナリ125の各セクションは。ア
ルファベット順に保持されるのが好ましい。図2は、典
型的なディクショナリ125を示している。
【0012】通信チャンネル117は、ホストコンピュ
ータ109と遠隔コンピュータ115との間でデータを
送信する。ホストコンピュータ109から受け取ったデ
ータを処理するために、遠隔コンピュータ115は、入
力/出力ユニット139と、中央処理ユニット141
と、遠隔コンピュータメモリ143とを備えている。更
に、遠隔コンピュータメモリ143は、ディクショナリ
145と、問い合わせエンジン147と、圧縮文書14
9とを備えている。ディクショナリ145は、ワードセ
クション151と、対セクション153と、ASCII
セクション155と、フォーマット化及び句読点キャラ
クタセクション157とを有している。好ましい実施例
では、ディクショナリ145は、遠隔コンピュータメモ
リ143のROMに記憶され、ホストコンピュータメモ
リ123に記憶されたディクショナリ125と同じであ
る。好ましい実施例では、遠隔コンピュータメモリ14
3に記憶された圧縮文書149は、ホストコンピュータ
メモリ123に記憶された圧縮文書103と同じであ
る。
【0013】問い合わせエンジン147は、中央処理ユ
ニット141で実行するときには、ディクショナリ14
5を用いて圧縮文書149におけるサーチを実行し、圧
縮文書149に関する情報を検索する。問い合わせエン
ジン147は、中央処理ユニット141で実行するとき
には、サーチプログラム159と、変換プログラム16
1とを備えている。問い合わせエンジン147は、遠隔
コンピュータキーボード111又は遠隔コンピュータマ
ウス113のいずれかに入力された問い合わせ要求に含
まれたサーチ基準に基づいて、サーチプログラム159
を呼び出して、圧縮文書149をサーチする。問い合わ
せ要求のサーチ基準は、非圧縮コードで受け取られる。
問い合わせエンジン147は、中央処理ユニット141
で実行するときには、変換プログラム161を呼び出し
て、サーチ基準を、非圧縮コードから、ディクショナリ
145を用いて本発明の圧縮コードに変換する。
【0014】コンピュータシステム100(図1)の一
般的な動作の例は、キャラクタストリングが本発明の圧
縮コードで記憶されている間に遠隔コンピュータ115
において圧縮文書149のキャラクタストリングを本発
明によりいかにサーチするかを示すものである。
【0015】一般的な動作:最初に、ホストコンピュー
タ109又は遠隔コンピュータ115のユーザは、非圧
縮文書101をホストコンピュータ109から遠隔コン
ピュータ115へ転送する要求を入力する。このユーザ
要求に応答して、ホストコンピュータ109は、非圧縮
文書101から圧縮文書103への変換を管理する圧縮
エンジン129を呼び出す。好ましい実施例では、圧縮
エンジン129は、図4について以下に詳細に示す方法
「Compress(圧縮)」の段階を実行する。
【0016】非圧縮文書101を圧縮文書103に変換
するために、圧縮エンジン129はパーザ127を呼び
出し、これは、非圧縮文書101に記憶された非圧縮キ
ャラクタストリングをパージングし、そしてそのパージ
ングされたキャラクタストリングを圧縮エンジン129
へ返送する。
【0017】圧縮エンジン129は、パージングされた
キャラクタストリングをパーザ127から受け取り、そ
してそのパージングされたキャラクタストリングをその
最初の非圧縮コード、例えば、ASCIIコードから、
本発明の圧縮コードに変換する。ディクショナリから圧
縮コードを検索する公知のいかなる技術を使用すること
もできる。例えば、図4に示されて以下に詳細に述べる
方法「圧縮」を使用して、ディクショナリ125から圧
縮コードを検索することができる。圧縮コードが検索さ
れると、本発明では、次いで、パージングされたキャラ
クタストリングが圧縮コードで圧縮文書103に記憶さ
れる。
【0018】典型的な文書における最も一般的なキャラ
クタはスペースキャラクタであるから、単一のスペース
をできるだけ少ないビットで表すことが重要である。い
かなる2つの隣接ワードも単一のスペースで分離される
と仮定することにより、本発明は、典型的なスペースキ
ャラクタをエンコードするのに全く無コードを使用する
ことができる。ワード間のスペースキャラクタを仮定す
る一般的なルールには例外があるので、本発明は、コー
ドスペースのセクションを、スペースの仮定を中断する
ワードとしてマークする(例えば、全ワードは1000
未満を示す)のが好ましい。更に、好ましいディクショ
ナルリ125は、RunOnキャラクタストリングを含
み、その唯一の目的は、デフォールト挿入スペースキャ
ラクタをオーバーライドすることである。
【0019】非圧縮文書101からの各キャラクタスト
リングが本発明の圧縮コードに変換されそして圧縮文書
103に記憶された後に、ホストコンピュータ109
は、その圧縮文書103をホストコンピュータ109か
ら通信チャンネル117を経て遠隔コンピュータ115
へ転送し、そこで、遠隔コンピュータ115は、圧縮文
書103を遠隔コンピュータメモリ143に圧縮文書1
49として記憶する。
【0020】遠隔コンピュータ115のユーザは、典型
的に、遠隔コンピュータキーボード111又は遠隔コン
ピュータマウス113のいずれかを用いて問い合わせ要
求を入力し、圧縮文書149からの情報を検索する。遠
隔コンピュータ115は、その問い合わせ要求を問い合
わせエンジン147に転送し、この問い合わせエンジン
は、問い合わせ要求に含まれたサーチ基準に基づいて圧
縮文書149をサーチする。好ましい実施例では、問い
合わせエンジン147は、図15について以下で詳細に
説明する方法「Query(問い合わせ)」の段階を実
行する。
【0021】問い合わせ要求を受け取ると、問い合わせ
エンジン147は、変換プログラム161を呼び出し、
これは、問い合わせ要求からサーチ基準を検索し、そし
てその検索したサーチ基準を、ディクショナリ145を
用いて、その非圧縮コードから本発明の圧縮コードへ変
換する。好ましい実施例では、変換プログラム161
は、図4に示されて以下で詳細に説明する方法「圧縮」
の段階を実行する。
【0022】検索したサーチ基準の変換が完了すると、
問い合わせエンジン147は、サーチプログラム159
を呼び出す。このサーチプログラム159は、サーチ基
準を圧縮コードで受け取り、圧縮文書をサーチ基準の発
生についてサーチする。次いで、サーチプログラム15
9は、遠隔コンピュータ115のユーザにサーチの結果
を知らせる。好ましい実施例では、サーチプログラム1
59は、図16、17に示されて以下に詳細に説明する
方法「SearchForMatch(一致のサー
チ)」の段階を実行する。
【0023】フローチャート:図4は、非圧縮文書10
1の非圧縮コードを圧縮文書103へと変換する方法
「圧縮」のフローチャートである。方法「圧縮」は、非
圧縮文書101から非レターキャラクタの1つのグルー
プをパージングした後に、そのパージングしたレター
が、受け入れられるキャピタライゼーションクラスであ
るNocap(無キャピタル)、Firstcap(第
1キャピタル)又はAllcap(全キャピタル)の1
つに適合する間に、非圧縮文書101からレターキャラ
クタの1つのグループをパージングすることにより、こ
の変換を実行する。この方法「圧縮」は、変数Capf
lagを用いて、キャピタライゼーションのタイプを指
示し、このタイプは、非圧縮文書101から検索されて
L$と称する変数(以下で詳細に述べる)に記憶される
レターキャラクタのストリングに存在するものである。
値Nocapは、変数L$に記憶されたキャラクタのス
トリングがキャピタル化されないことを指示する。値F
irstcapは、変数L$に記憶されたキャラクタの
ストリングの第1キャラクタのみがキャピタル化される
ことを指示する。値Allcapは、変数L$に記憶さ
れた全てのキャラクタがキャピタル化されることを指示
する。
【0024】方法「圧縮」がレターキャラクタのグルー
プ及び非レターキャラクタのグループのパージングを終
了しそして変数Capflagを適当なキャピタライゼ
ーションクラスにセットし終えると、方法「圧縮」は、
レターキャラクタのグループ及び非レターキャラクタの
グループを表す圧縮コードをディクショナリ125から
検索する。方法「圧縮」が完了すると、非圧縮文書10
1は、圧縮文書103に変換されている。
【0025】好ましい実施例では、圧縮エンジン129
(図1)が、方法「圧縮」(図4)の段階を実行する。
ステップ301では、方法「圧縮」は、変数Capfl
agを値Nocapに等しくセットする。ステップ30
3では、方法「圧縮」は、変数Lastout(最後の
出力)を値Notwholeword(全ワードではな
い)に初期化する。変数Lastoutは、非圧縮文書
101から検索されて変数L$に記憶されたキャラクタ
のストリングが、ディクショナリ125から検索された
単一の圧縮コードによって表されるか又はディクショナ
リ125から検索された多数の圧縮コードによって表さ
れるかを指示する。キャラクタのストリングが単一の圧
縮コードによって表された場合には、変数Lastou
tに値Wholeword(全ワード)が指定される。
キャラクタのストリングが多数の圧縮コードによって表
された場合には、変数Lastoutに値Notwho
lewordが指定される。
【0026】方法「圧縮」が、ステップ305におい
て、非圧縮文書101に未処理のキャラクタがまだある
と決定した場合に、方法「圧縮」は、ステップ307に
おいて方法「Parse(パージング)」を呼び出す。
この方法「パージング」は、非圧縮文書101から非レ
ターの1つのグループをパージングした後に、Allc
ap、Firstcap又はNocapの受け入れられ
るキャピタライゼーションクラスの1つにレターが適合
する間に、非圧縮文書101からレターの1つのグルー
プをパージングする。方法「パージング」は、図5、6
について以下に詳細に述べる。
【0027】ステップ307が終了すると、方法「圧
縮」は、変数Capflagの値を変数State(状
態)の値に等しくセットする。この変数Stateは、
ステップ307の方法「パージング」によって非圧縮文
書101から検索されて変数L$に記憶されたレターの
グループのキャピタライゼーションクラスを指示する。
変数Stateに指定される値は、Nocao、All
cap又はFirstcapのいずれかである。
【0028】ステップ311では、方法「圧縮」は、方
法「OutputNonLetterCompress
edCode(非レター圧縮コードの出力)」を呼び出
す。この方法「OutputNonLetterCom
pressedCode」は、方法「パージング」によ
って非圧縮文書101から検索された非レターのグルー
プを表す圧縮コード(1つ又は複数)をディクショナリ
125から検索する。方法「OutputNonLet
terCompressedCode」は、次いで、そ
の検索された圧縮コードを圧縮文書103に記憶する。
方法「OutputNonLetterCompres
sedCode」は、図7について以下に詳細に説明す
る。
【0029】ステップ311が完了すると、方法「圧
縮」は、ステップ313において、方法「Output
LetterCode(レターコードの出力)」を呼び
出す。この方法「OutputLetterCode」
は、方法「パージング」により非圧縮文書101から検
索されたレターのグループを表す圧縮コード(1つ又は
複数)をディクショナリ125から検索する。方法「O
utputLetterCode」は、次いで、その検
索された圧縮コードを圧縮文書103に記憶する。方法
「OutputLetterCompressedCo
de」は、図8について以下で詳細に説明する。
【0030】ステップ313が完了すると、方法「圧
縮」は、ステップ305で処理を続ける。ステップ30
5において、方法「圧縮」は、非圧縮文書101の全て
のキャラクタが処理されたと決定し、次いで、ステップ
315において、方法「圧縮」は、非圧縮文書101に
おけるデータの処理を終了する。しかしながら、ホスト
コンピュータ109は、非圧縮文書101に関連しない
他のデータの処理を続ける。
【0031】図5及び図6は、非レターキャラクタの1
つのグループ(このグループはゼログループでよい)を
パージングした後に、Allcap、Firstcap
又はNocapの受け入れられるキャピタライゼーショ
ンクラスの1つにレターが適合する場合に(図4の方法
「圧縮」について上記したように)レターキャラクタの
1つのグループ(このグループはゼログループでよい)
をパージングする方法「パージング」のフローチャート
である。レターキャラクタと、非レターキャラクタとの
区別は、典型的に、そのキャラクタを表しているコード
の値がレターキャラクタによって占有された値の範囲内
に入るか、又はコードの値が非レターキャラクタによっ
て占有された値に範囲に入るかを決定することにより行
われる。非レターのパージングされたグループがゼロで
あるか又はレターのパージングされたグループがゼロで
あることは、典型的に、非圧縮文書101の開始部又は
非圧縮文書101の終了部をパージングする間に生じる
ことに注意されたい。又、このようにゼロのことは、キ
ャピタライゼーションが典型的でないような非圧縮文書
101の他の点でも起こり得る。例えば、ストリング
「123ThisThing」が非圧縮文書101に記
憶されていた場合に、方法「パージング」は、非レター
キャラクタ「123」のグループをパージングし、そし
てレターキャラクタ「This」のグループをFirs
tcapキャピタライゼーションクラスをもつレターの
グループへとパージングする。この方法「パージング」
の次の繰り返しの間に、ストリング「Thing」がゼ
ロの非レターグループへとパージングし、その後、ワー
ド「Thing」より成るレターグループへとパージン
グする。
【0032】方法「パージング」の段階を説明する前
に、この方法の段階に使用される幾つかの変数、値及び
データ構造を最初に定義するのが有用であろう。好まし
い実施例では、データ構造NL$は、非圧縮文書101
から検索された非レターのグループを記憶する。データ
構造L$は、非圧縮文書101から検索されたレターの
グループを記憶するのが好ましい。変数Stateは、
方法「パージング」によって現在処理されているキャラ
クタのグループを分類する。変数Stateは、データ
構造NL$に記憶された非レターが処理されるときに値
Non−letterにセットされる。データ構造L$
に記憶されたレターが処理されるときは、変数Stat
eの値が、Cap1、Nocap、Firstcap又
はAllcapのいずれかとなる。値Cap1は、L$
に記憶された第1レターがキャピタルレターであること
を指示する。変数Stateには、値Cap1が一時的
にのみ指定される。付加的なレターが非圧縮文書101
から検索されてデータ構造L$に記憶されるときには、
変数Stateの値が値Firstcapに変更され
る。好ましい実施例では、方法「パージング」は、パー
ザ(図1)によって実行される。
【0033】図5のステップ401では、方法「パージ
ング」は、変数Stateを値Non−letterに
等しくセットする。ステップ403では、変数Exit
を値Falseに等しくセットし、これにより、変数E
xitを初期化する。ステップ405では、変数NL$
を値ゼロに等しくセットし、これにより、変数NL$を
初期化する。ステップ407では、変数L$を値ゼロに
等しくしセットし、これにより、変数L$を初期化す
る。ステップ409では、方法「パージング」が変数E
xitがTrueに等しくない(即ち、変数Exitが
値Falseにセットされた)と決定した場合に、ステ
ップ411において、非圧縮文書101から第1の未処
理キャラクタを検索する。ステップ413において、こ
の方法は、データ構造L$を、L$の手前の値と検索し
たキャラクタとの和に等しくセットする。ステップ41
5において、この方法「パージング」は、変数Stat
eが値non−letterに等しいと決定した場合
に、方法「ProcessNonLetterStat
e」を呼び出す。この方法「ProcessNonLe
tterState」は、検索したレターキャラクタを
受け取るまで、検索した非レターキャラクタをNL$に
記憶する。レターキャラクタが検索されると、この方法
「ProcessNonLetterState」は、
検索したレターキャラクタをL$に記憶し、そして変数
Stateを、検索したレターのキャピタライゼーショ
ンクラスに等しくセットする。方法「ProcessN
onLetterState」は、図9について詳細に
説明する。ステップ417が完了すると、プロセスはス
テップ409へ続く。
【0034】ステップ415の説明に戻ると、方法「パ
ージング」において、変数Stateが値Non−le
tterにセットされないと判断した場合に、ステップ
419において、検索したキャラクタが非レターである
かどうかの判断がなされる。レターキャラクタと、非レ
ターキャラクタとの区別は、典型的に、そのキャラクタ
を表しているコードの値がレターキャラクタによって占
有された値の範囲内に入るか又はコードの値が非レター
キャラクタによって占有された値に範囲に入るかを決定
することにより行われる。検索したキャラクタが非レタ
ーでない(即ちレターである)場合には、ステップ42
1において、変数Stateが値Cap1にセットされ
るかどうか判断される。変数Stateが値Cap1に
セットされる場合には、ステップ423において、方法
「パージング」は、方法「ProcessCap1St
ate(キャピタル1状態の処理)」を呼び出す。この
方法「ProcessCap1State」は、値Al
lcap又は値Firstcapを、ステップ411に
おいて非圧縮文書101から検索されたキャラクタのキ
ャピタライゼーションクラスに基づいて変数State
に指定する。この方法「ProcessCap1Sta
te」は、図10について以下に詳細に説明する。ステ
ップ423が完了すると、プロセスは、ステップ409
に続く。
【0035】ステップ421の説明に戻ると、方法「パ
ージング」において、変数Stateが値Cap1にセ
ットされないと判断されると、ステップ425におい
て、変数Stateが値Nocapにセットされるかど
うか判断される。変数Stateが値Nocapにセッ
トされる場合には、ステップ427において、方法「パ
ージング」は、方法「ProcessNoCapsSt
ate(無キャピタル状態の処理)」を呼び出す。この
方法「ProcessNoCapsState」は、ス
テップ411において非圧縮文書101から検索したキ
ャラクタがキャピタルレターである場合に、変数Exi
tを値Trueにセットする。方法「ProcessN
oCapsState」は、図11に関し以下で詳細に
説明する。ステップ427が完了すると、プロセスはス
テップ409に続く。
【0036】ステップ425の説明に戻ると、方法「パ
ージング」において、変数Stateが値Nocapに
セットされないと判断されると、ステップ429におい
て、変数Stateが値Firstcapにセットされ
るかどうか判断される。変数Stateが値First
capにセットされる場合には、ステップ431におい
て、方法「パージング」は、方法「ProcessFi
rstCapState(第1キャピタル状態の処
理)」を呼び出す。この方法「ProcessFirs
tCapState」は、ステップ411において非圧
縮文書101から検索したキャラクタがキャピタルレタ
ーである場合には変数Exitを値Trueにセットす
る。方法「ProcessFirstCap」は、図1
2に関し以下で詳細に説明する。ステップ431が完了
すると、プロセスはステップ409に続く。
【0037】ステップ429の説明に戻ると、方法「パ
ージング」において、変数Stateが値Firstc
apにセットされないことが決定されると、ステップ4
33において、変数Stateが値Allcapにセッ
トされるかどうかの判断がなされる。変数Stateが
値Allcapにセットされている場合には、ステップ
435において、方法「パージング」は、方法「Pro
cessAllCapsState(全キャピタル状態
の処理)」を呼び出す。この方法「ProcessAl
lCapsState」は、ステップ411において非
圧縮文書101から検索されたキャラクタが小文字レタ
ーである場合に、変数Exitを値Trueにセットす
る。この方法「ProcessAllCapsStat
e」は、図13について以下に詳細に説明する。ステッ
プ435が完了すると、プロセスはステップ409に続
く。
【0038】ステップ433の説明に戻ると、方法「パ
ージング」において、変数Stateが値Allcap
にセットされないと判断された場合には、ステップ43
7において、データ構造L$から最後のキャラクタが除
去されそしてそれが非圧縮文書101に記憶されて戻さ
れる。ここに示す例では、L$からキャラクタを除去し
て、その除去されたキャラクタを各々非圧縮文書101
に記憶することについて述べるが、前方又は後方に移動
される非圧縮文書101内の特定位置に対するポインタ
を用いてプロセスを実施できることも当業者に理解され
よう。ステップ439において、変数Stateが値C
ap1にセットされたことが方法「パージング」で決定
されると、ステップ441において、この方法「パージ
ング」は変数Stateを値Allcapに等しくセッ
トする。ステップ443では、方法「パージング」は、
処理制御を方法「圧縮」(図4)に復帰させる。ステッ
プ439の説明に戻ると、方法「パージング」におい
て、変数Stateが値Cap1にセットされないと判
断されると、ステップ443において、方法「パージン
グ」は、処理制御を方法「圧縮」(図4)に復帰させ
る。
【0039】ステップ419の説明に戻ると、方法「パ
ージング」において、検索したキャラクタが非レターで
あることが決定されると、ステップ437ないし443
が実行される。ステップ437において、方法「「パー
ジング」は、データ構造L$から最後のキャラクタを除
去し、そしてそれを非圧縮文書101に記憶する。ステ
ップ439において、変数Stateが値Cap1にセ
ットされたことが方法「パージング」で決定されると、
変数Stateを値Allcapに等しくセットする。
ステップ443において、方法「パージング」は、処理
制御を方法「圧縮」(図4)に戻す。ステップ439の
説明に戻ると、方法「パージング」において、変数St
ateが値cap1にセットされないと決定されると、
ステップ443において、方法「パージング」は、処理
制御を方法「圧縮」(図4)に戻す。
【0040】ステップ409の説明に戻ると、方法「パ
ージング」において、変数Exitが値Trueにセッ
トされたと決定されると、ステップ437ないし443
が実行される。ステップ437において、方法「パージ
ング」は、データ構造L$から最後のキャラクタを除去
し、そしてそれを非圧縮文書101に記憶して戻す。ス
テップ439において、変数Stateが値Cap1に
セットされたことが方法「パージング」により決定され
ると、ステップ441において、方法「パージング」
は、変数Stateを値Allcapに等しくセットす
る。ステップ443において、方法「パージング」は、
処理制御を方法「圧縮」(図4)に戻す。ステップ43
9の説明に戻ると、方法「パージング」において、変数
Stateが値Cap1にセットされないことが決定さ
れると、ステップ443において、方法「パージング」
は、処理制御を方法「圧縮」(図4)に復帰させる。
【0041】図7は、方法「OutputNonLet
terCompressedCode(非レター圧縮コ
ードの出力)」のフローチャートであり、この方法は、
非圧縮文書101から検索された非レターキャラクタの
グループを表す単一圧縮コード又は多数の圧縮コードを
圧縮文書103に記憶するものである。方法「Outp
utNonLetterCompressedCod
e」は、非圧縮文書101から検索された非レターキャ
ラクタのグループから、ディクショナリ125のエント
リーに一致する非レターキャラクタの最も長いセットを
見つけることによって、非レターキャラクタのグループ
を圧縮コードに変換する。方法「OutputNonL
etterCompressedCode」は、次い
で、非レターキャラクタの一致したセットに対し圧縮コ
ードを検索する。このプロセスは、非レターキャラクタ
の全グループが圧縮コードに変換されてしまうまで繰り
返される。方法「OutputNonLetterCo
mpressedCode」は、非圧縮文書101から
検索された非レターキャラクタのグループにおける少な
くとも第1の非レターキャラクタに常に一致することが
できる。というのは、各ASCIIキャラクタが好まし
くはディクショナリ125のASCIIセクション13
5に記憶されるからである。好ましい実施例では、方法
「OutputNonLetterCompresse
dCode」は、圧縮エンジン129によって実行され
る。
【0042】ステップ501において、方法「Outp
utNonLetterCompressedCod
e」により、NL$がスペースキャラクタのみを含み且
つ変数Lastoutが値Wholewordに等しく
セットされそして変数Capflagが値Nocapに
等しくセットされたことが決定されると、ステップ50
3において、この方法「OutputNonLette
rCompressedCode」は、処理制御を方法
「圧縮」(図4)に戻す。このように、本発明では、ス
テップ501に示された条件を満足するときにスペース
キャラクタを圧縮文書103に記憶するのを回避するこ
とができる。
【0043】ステップ501の説明に戻ると、方法「O
utputNonLetterCompressedC
ode」により、NL$がスペースキャラクタ以上のも
のを含んでいることが決定されるか、又は変数Last
outが値Wholewordに等しくセットされない
と決定されるか、或いは変数Capflagが値Noc
apに等しくセットされないと決定されると、ステップ
505において、この方法は、変数Xをデータ構造NL
$に記憶されたキャラクタの数に等しくセットする。ス
テップ507において、この方法は、NL$の第1のX
キャラクタがディクショナリ125に記憶されたかどう
かを決定する。この方法により、NL$の第1のXキャ
ラクタがディクショナリ125に記憶されていないと決
定された場合には、ステップ509において、この方法
は、Xの値を減少する。ステップ509が完了すると、
プロセスはステップ507に続く。このように、この方
法「OutputNonLetterCompress
edCode」は、ディクショナリ125に記憶された
NL$からのキャラクタの最も長いグループを見つけ
る。
【0044】ステップ507の説明に戻ると、この方法
により、NL$の第1のXキャラクタがディクショナリ
125に記憶されたと決定された場合には、ステップ5
11において、この方法は、NL$から第1のXキャラ
クタを除去する。ステップ513において、NL$が現
在空でない場合には、ステップ515において、この方
法は、NL$から除去された第1のXキャラクタに関連
した圧縮コードをディクショナリ125から検索する。
次いで、ステップ517において、この方法はその検索
された圧縮コードを圧縮文書103に記憶する。ステッ
プ517が完了すると、この方法「OutputNon
LetterCompressedCode」は、ステ
ップ503において、処理制御を方法「圧縮」(図4)
に復帰させる。
【0045】ステップ513の説明に戻ると、この方法
において、NL$が現在空であると決定された場合に、
ステップ519において、方法「OutputNonL
etterCompressedCode」は、方法
「OutputLast」を呼び出す。この方法「Ou
tputLast」は、NL$から除去された最後のキ
ャラクタを表す単一の圧縮コード又は多数の圧縮コード
を出力する。方法「OutputLast」は、図14
について以下で詳細に説明する。ステップ519が完了
すると、方法「OutputNonLetterCom
pressedCode」は、処理制御を方法「圧縮」
(図4)へ復帰させる。
【0046】図8は、非圧縮文書101から検索されて
データ構造L$に記憶されたレターのグループを表す単
一の圧縮コード又は多数の圧縮コードを圧縮文書103
に記憶する方法「OutputLetterCompr
essedCode(レター圧縮コードの出力)」のフ
ローチャートである。この方法「OutputLett
erCompressedCode」は、非圧縮文書1
01から検索されたレターキャラクタのグループから、
ディクショナリ125のエントリに一致するレターキャ
ラクタの最も長いセットを見つけることにより、レター
キャラクタのグループを本発明の圧縮コードに変換す
る。次いで、この方法「OutputLetterCo
mpressedCode」は、レターキャラクタの一
致したセットに対する圧縮コードを検索する。このプロ
セスは、レターキャラクタの全グループが圧縮コードに
変換されてしまうまで繰り返される。この方法「Out
putLetterCompressedCode」
は、非圧縮文書101から検索されたレターキャラクタ
のグループにおいて少なくとも第1のレターキャラクタ
に常に一致することができる。というのは、各ASCI
Iキャラクタが好ましくはディクショナリ125のAS
CIIセクション135に記憶されるからである。好ま
しい実施例では、方法「OutputLetterCo
mpressedCode」は、圧縮エンジン129に
よって実行される。
【0047】ステップ601において、この方法は、L
$に記憶された全てのレターキャラクタと、ディクショ
ナリ125のエントリとの間に一致があるかどうかを決
定する。L$に記憶された全てのレターキャラクタと、
ディクショナリ125のエントリとの間に一致がある場
合には、ステップ603において、この方法は、L$の
全てのキャラクタを表す圧縮コードをディクショナリ1
25から検索する。ステップ605において、この方法
は、その検索した圧縮コードを圧縮文書103に記憶す
る。ステップ607において、この方法は、変数Las
toutを値Wholewordに等しくセットする。
ステップ609において、この方法「OutputLe
tterCompressedCode」は、処理制御
を方法「圧縮」(図4)に復帰させる。
【0048】ステップ601の説明に戻ると、方法「O
utputLetterCompressedCod
e」において、L$の全てのキャラクタとディクショナ
リ125のエントリとの間に一致がないと決定された場
合には、ステップ611において、この方法は、L$に
2つ以上のキャラクタが残っているかどうか判断する。
L$に2つ以上のキャラクタが残っている場合には、ス
テップ613において、この方法は、L$から最初の2
つのキャラクタを除去する。ステップ615において、
この方法は、L$から除去された2つのキャラクタに一
致する圧縮コードをディクショナリ125から検索す
る。ステップ617において、この方法は、その検索さ
れた圧縮コードを圧縮文書103に記憶する。ステップ
617が完了すると、処理はステップ611に続く。
【0049】ステップ611の説明に戻ると、この方法
により、L$に2つ以上のキャラクタが残っていないと
決定されると、ステップ619において、この方法は、
L$の最後のキャラクタに一致する圧縮コードをディク
ショナリ125から検索する。ステップ621におい
て、この方法は、その検索した圧縮コードを圧縮文書1
03に記憶する。ステップ623において、この方法
は、変数Lastoutを値Notwholeword
に等しくセットする。ステップ623の完了時に、方法
「OutputLetterCompressedCo
de」は、ステップ609において、処理制御を方法
「圧縮」(図4)に復帰させる。
【0050】図9は、非圧縮文書101から検索された
非レターキャラクタをデータ構造NL$に記憶する方法
「ProcessNonLetterState(非レ
ター状態の処理)」のフローチャートである。この方法
「ProcessNonLetterState」は、
検索されたキャラクタをデータ構造L$に記憶すること
により開始する。検索されたキャラクタが非レターキャ
ラクタである場合は、NL$がNL$+L$に等しくセ
ットされる。次いで、L$はゼロ(nil)にセットさ
れる。非レターキャラクタをNL$に記憶しそしてL$
の値を初期化するこのプロセスは、レターキャラクタが
検索されるまで続けられる。レターキャラクタの検索に
応答して、変数State(以下で詳細に述べる)の値
は、検索されたレターがキャピタルレターである場合は
Cap1にセットされ、或いは検索されたレターが小文
字レターである場合はNocapにセットされる。好ま
しい実施例では、この方法「ProcessNonLe
tterState」は、パーザ127(図1)によっ
て実行される。
【0051】ステップ701において、この方法は、方
法「パージング」(図5、6)のステップ411で非圧
縮文書101から検索されてデータ構造L$に現在記憶
されている未処理のキャラクタが非レターキャラクタで
あるかどうか判断する。L$に現在記憶されている検索
された未処理のキャラクタが非レターキャラクタである
場合には、次いで、ステップ703において、この方法
は、データ構造NL$の現在値をNL$+L$に等しく
セットする。ステップ705において、この方法は、L
$の値を値ゼロに等しくセットする。ステップ707に
おいて、この方法「ProcessNonLetter
State」は、処理制御を方法「パージング」(図
5、6)に復帰させる。
【0052】ステップ701の説明に戻ると、L$に現
在記憶されている検索された未処理のキャラクタがレタ
ーキャラクタであることがこの方法により決定される
と、ステップ709において、この方法は、レターキャ
ラクタがキャピタルレターであるかどうかを判断する。
検索された未処理のキャラクタがキャピタルレターであ
ることがこの方法により決定されると、次いで、ステッ
プ711において、この方法は、変数Stateを値C
ap1に等しくセットする。ステップ711の完了時
に、この方法「ProcessNonLetterSt
ate」は、ステップ707において、処理制御を方法
「パージング」(図5、6)へ戻す。
【0053】ステップ709の説明に戻ると、方法「P
rocessNonLetterState」におい
て、検索された未処理のキャラクタがキャピタルレター
でないことが決定されると、ステップ713において、
この方法は、その検索された未処理のキャラクタが小文
字レターであるかどうか判断する。検索された未処理の
キャラクタが小文字レターであることがこの方法により
決定されると、ステップ715において、この方法は、
変数Stateを値Nocapに等しくセットする。ス
テップ715が完了すると、方法「ProcessNo
nLetterState」は、処理制御を方法「パー
ジング」(図5、6)へ戻す。
【0054】ステップ713の説明に戻ると、検索され
た未処理のキャラクタが小文字レターでないことがこの
方法により決定されると、ステップ717において、こ
の方法は、エラー処理を実行する。ステップ717の完
了時に、方法「ProcessNonLetterSt
ate」は、処理制御を方法「パージング」(図5、
6)へ戻す。
【0055】図10は、方法「ProcessCap1
State(キャピタル1状態の処理)」のフローチャ
ートである。該方法「ProcessCap1Stat
e」が処理を開始するときは、方法「パージング」(図
5、6)が非圧縮文書101(図1)からレターキャラ
クタを既に検索しておりそしてそのレターキャラクタが
キャピタルレターであるかどうかを決定している。レタ
ーのグループの中の最初のレターがキャピタルレターで
あるとすると、レターのグループのキャピタライゼーシ
ョンクラスは、レターのグループの第2のレターが小文
字レターである場合はFirstCapでなければなら
ず、或いはレターのグループの第2のレターがキャピタ
ルレターである場合にはAllCapでなければならな
い。好ましい実施例では、方法「ProcessCap
1State」は、パーザ127(図1)によって実行
される。ステップ801において、方法「Proces
sCap1State」により、検索された未処理のキ
ャラクタがキャピタルレターであると決定された場合に
は、ステップ803において、この方法は、変数Sta
teを値Allcapに等しくセットする。ステップ8
03の完了時に、方法「ProcessCap1Sta
te」は、ステップ809において、処理制御を方法
「パージング」(図5、6)へ戻す。
【0056】ステップ801の説明に戻ると、検索され
た未処理のキャラクタがキャピタルレターでないことが
この方法により決定されると、ステップ805におい
て、この方法は、検索された未処理のキャラクタが小文
字レターであるかどうかを決定する。検索された未処理
のキャラクタが小文字レターである場合には、ステップ
807において、この方法は、変数Stateを値Fi
rstcapに等しくセットする。ステップ807の完
了時に、方法「ProcessCap1State」
は、ステップ809において、処理制御を方法「パージ
ング」(図5、6)へ戻す。
【0057】ステップ805の説明に戻ると、検索され
た未処理のキャラクタが小文字レターでない場合には、
ステップ811において、この方法は、エラー処理を実
行する。ステップ811の完了時に、この方法「Pro
cessCap1State」は、ステップ809にお
いて、処理制御を方法「パージング」(図5、6)へ戻
す。
【0058】図11は、方法「ProcessNoCa
psState(無キャピタル状態の処理)」のフロー
チャートである。この方法「ProcessNoCap
sState」が処理を開始するときには、方法「パー
ジング」(図5、6)が非圧縮文書101(図1)から
レターキャラクタを既に検索しておりそしてそのレター
キャラクタが小文字レターであるかどうかを決定してい
る。レターのグループの中の最初のレターが小文字レタ
ーであるとすると、レターのグループのキャピタライゼ
ーションクラスは、Nocapでなければならない。そ
れ故、方法「ProcessNoCapsState」
は、キャピタルレターに遭遇するまで検索されたレター
キャラクタの処理を続ける。キャピタルレターに遭遇し
たときには、変数Exitが値Trueに等しくセット
され、これにより、NoCapキャピタライゼーション
クラスのレターのグループを検索する処理が完了したこ
とを方法「パージング」(図5及び6)に知らせる。好
ましい実施例では、方法「ProcessNoCaps
State」は、パーザ127(図1)によって実行さ
れる。この方法のステップ901において、方法「パー
ジング」(図5及び6)のステップ411で検索された
未処理のキャラクタがキャピタルレターであると決定さ
れた場合には、ステップ903において、この方法は、
変数Exitを値Trueに等しくセットする。ステッ
プ903が完了すると、方法「ProcessNoCa
psState」は、ステップ905において、処理制
御を方法「パージング」(図5及び6)に復帰させる。
【0059】ステップ901の説明に戻ると、検索され
た未処理のキャラクタがキャピタルレターでないことが
この方法によって決定されると、ステップ905におい
て、方法「ProcessNoCapsState」
は、処理制御を方法「パージング」(図5及び6)に復
帰させる。
【0060】図12は、方法「ProcessFirs
tCapState(第1キャピタル状態の処理)」の
フローチャートである。この方法「ProcessFi
rstCapState」が処理を開始するときには、
方法「パージング」(図5、6)がレターのグループを
既に検索しており、このグループの最初のキャラクタは
キャピタルレターであり、そしてこのグループの残りの
レターは小文字レターである。レターのグループのキャ
ピタライゼーションクラスはFirstCapでなけれ
ばならないので、この方法「ProcessFirst
CapState」は、キャピタルレターに遭遇するま
でレターキャラクタの処理を続ける。キャピタルレター
に遭遇したときには、変数Exitが値Trueに等し
くセットされ、従って、FirstCapキャピタライ
ゼーションクラスのレターのグループを検索するプロセ
スが完了したことを方法「パージング」(図5、6)に
指示する。好ましい実施例では、この方法「Proce
ssFirstCapState」は、パーザ127
(図1)によって実行される。ステップ1001におい
て、この方法により、方法「パージング」(図5、6)
のステップ411で検索された未処理のキャラクタがキ
ャピタルレターであると決定された場合には、ステップ
1003において、この方法は、変数Exitを値Tr
ueに等しくセットする。ステップ1003の完了時
に、方法「ProcessFirstCapStat
e」は、ステップ1005において、処理制御を方法
「パージング」(図5、6)へ戻す。
【0061】ステップ1001の説明に戻ると、検索さ
れた未処理のキャラクタがキャピタルレターでない場合
には、方法「ProcessFirstCapStat
e」は、ステップ1005において、処理制御を方法
「パージング」(図5、6)へ戻す。
【0062】図13は、方法「ProcessAllC
apsState(全てキャピタルの状態の処理)」の
フローチャートである。この方法「ProcessAl
lCapsState」が処理を開始するときは、方法
「パージング」(図5、6)が、全てキャピタルレター
であるレターのグループを既に検索している。これらレ
ターのグループのキャピタライゼーションクラスはAl
lcapでなければならないので、方法「Proces
sAllCapsState」は、小文字レターに遭遇
するまでレターキャラクタの処理を続ける。小文字レタ
ーに遭遇したときには、変数Exitが値Trueに等
しくセットされ、従って、Allcapキャピタライゼ
ーションクラスのレターのグループを検索するプロセス
が完了したことを方法「パージング」(図5、6)へ指
示する。好ましい実施例では、方法「ProcessA
llCapsState」は、パーザ127(図1)に
よって実行される。ステップ1101において、検索さ
れた未処理のキャラクタが小文字のキャラクタであるこ
とがこの方法によって決定された場合には、ステップ1
103において、この方法は、変数Exitを値Tru
eに等しくセットする。ステップ1103の完了時に、
方法「ProcessAllCapsState」は、
ステップ1105において、処理制御を方法「パージン
グ」(図5、6)へ戻す。
【0063】ステップ1101の説明に戻ると、検索さ
れた未処理のキャラクタが小文字レターでないことがこ
の方法によって決定された場合は、この方法「Proc
essAllCapsState」は、ステップ110
5において、処理制御を方法「パージング」(図5、
6)へ戻す。
【0064】図14は、データ構造NL$における残り
のキャラクタと、変数Capflagのキャピタライゼ
ーションクラスとを表す単一の圧縮コード又は多数の圧
縮コードを圧縮文書103に記憶する方法「Outpu
tLast(最後の出力)」のフローチャートである。
この方法「OutputLast」は、先ず、データ構
造NL$における残りのキャラクタ及び変数Capfl
agのキャピタライゼーションクラスの両方を表す単一
の圧縮コードをディクショナリ125が含んでいるかど
うか決定する。例えば、NL$の残りのキャラクタがP
eriod(ピリオド)でありそして変数Capfla
gのキャピタライゼーションクラスがFirstCap
である場合には、この方法「OutputLast」
は、エントリPeriod−Firstcapに関連し
た圧縮コード0111 01010011 0111を
ディクショナリ125から検索する。次いで、この方法
「OutputLast」は、その圧縮コードを圧縮文
書103に記憶する。しかしながら、NL$における残
りのキャラクタ及び変数Capflagのキャピタライ
ゼーションクラスの両方を表す単一の圧縮コードがなけ
れば、この方法「OutputLast」は、NL$に
おける残りのキャラクタと、Capflagに等しいキ
ャピタライゼーションクラスを有するゼロストリングと
に対して個別の圧縮コードをディクショナリ125から
検索する。例えば、NL$における残りのキャラクタが
Question Mark(クエスチョンマーク)で
ありそして変数Capflagのキャピタライゼーショ
ンクラスがFirstCapである場合には、この方法
「OutputLast」は、エントリQuestio
n Markに関連した圧縮コード0111 0101
0011 1000をディクショナリ125から検索
すると共に、エントリNil String−Firs
tCapに対する圧縮コード0111 0101 00
11 0100を検索する。次いで、この方法「Out
putLast」は、両方の圧縮コードを圧縮文書10
3に記憶する。好ましい実施例では、この方法「Out
putLast」は、圧縮エンジン129(図1)によ
って実行される。
【0065】ステップ1201において、この方法「O
utputLast」は、NL$における残りのキャラ
クタに一致する単一の圧縮コードであって、キャピタラ
イゼーションクラスが変数Capflagのキャピタラ
イゼーションクラスに等しいような単一の圧縮コードが
ディクショナリ125にあるかどうかを判断する。NL
$における残りのキャラクタに一致する圧縮コードであ
って、キャピタライゼーションクラスが変数Capfl
agのキャピタライゼーションクラスに等しいような圧
縮コードがディクショナリ125にあることがこの方法
によって決定された場合には、ステップ1203におい
て、この方法は、ディクショナリ125から圧縮コード
を検索する。ステップ1205において、この方法は、
検索された圧縮コードを圧縮文書103に記憶する。ス
テップ1205の完了時に、この方法「OutputL
ast」は、ステップ1207において、処理制御を方
法「OutputNonLetterCompress
edCode」(図7)へ戻す。
【0066】ステップ1201の説明に戻ると、NL$
における残りのキャラクタに一致する単一の圧縮コード
であって、キャピタライゼーションクラスが変数Cap
flagのキャピタライゼーションクラスに等しいよう
な単一の圧縮コードがディクショナリ125にないこと
がこの方法により決定されると、ステップ1209にお
いて、この方法は、NL$における残りのキャラクタに
一致する圧縮コードをディクショナリ125から検索す
る。ステップ1211において、この方法は、ゼロスト
リングを表す圧縮コードであって、そのキャピタライゼ
ーションクラスがCapflagに記憶されたキャピタ
ライゼーションクラスに等しいような圧縮コードをディ
クショナリ125から検索する。ステップ1211を完
了したときに、この方法「OutputLast」は、
ステップ1207において、処理制御を方法「Outp
utNonLetterCompressedCod
e」(図7)へ戻す。
【0067】図15は、遠隔コンピュータ115のユー
ザからの問い合わせ要求に基づき、遠隔コンピュータ1
15の遠隔コンピュータメモリ143に記憶された圧縮
文書149から情報を検索する方法「Query(問い
合わせ)」のフローチャートである。この方法「問い合
わせ」は、問い合わせ要求を受け取り、キャラクタスト
リングをサーチのためにパージングし、そしてパージン
グされたキャラクタストリングを本発明の圧縮コードに
変換する。方法「問い合わせ」は、次いで、遠隔コンピ
ュータメモリ143に記憶された圧縮文書149を、そ
の問い合わせ要求からパージングされたキャラクタスト
リングを表す圧縮コードとの一致に対してサーチする。
一致が見つかった場合には、方法「問い合わせ」は、関
連情報を質問要求の開始側へ送り、さもなくば、方法
「問い合わせ」は、質問要求の開始側へ一致が見つから
ないことを知らせる。好ましい実施例では、質問エンジ
ン147(図1)がこの方法「問い合わせ」の段階を実
行する。
【0068】ステップ1301において、この方法は、
遠隔コンピュータキーボード111又は遠隔コンピュー
タマウス113のいずれかにおいて遠隔コンピュータ1
15のユーザによる問い合わせ要求入力を受け取る。ス
テップ1303において、この方法は、サーチのための
キャラクタストリングをその問い合わせ要求から検索す
る。例えば、問い合わせ要求が、文書にワード「rea
dy(準備)」が含まれるかどうかを尋ねる場合には、
この方法は、キャラクタストリング「ready」をそ
の問い合わせ要求から検索する。ステップ1305にお
いて、方法「問い合わせ」は、方法「圧縮」を呼び出
し、これは、問い合わせ要求から検索されたキャラクタ
ストリングを本発明の圧縮コードに変換する。方法「圧
縮」は、図4について上記で詳細に説明した。
【0069】ステップ1305が完了すると、方法「問
い合わせ」は、方法「SearchForMatch
(一致の探索)」を呼び出し、これは、遠隔コンピュー
タ143に記憶された圧縮文書149を、問い合わせ要
求から検索されたキャラクタストリングに関連した方法
「圧縮」から検索された圧縮コード(1つ又は複数)を
用いてサーチする。この方法「SearchForMa
tch」は、図18について以下に詳細に述べる。
【0070】ステップ1307が完了したときに、方法
「問い合わせ」は、問い合わせ要求から検索されたキャ
ラクタストリングに関連した圧縮コード(1つ又は複
数)と圧縮文書149の圧縮コード(1つ又は複数)と
の間に一致が見つかったかどうかを判断するステップ1
309を実行する。一致が見つかった場合は、ステップ
1311において、方法「問い合わせ」は、問い合わせ
要求の開始側(例えば、遠隔コンピュータ115のユー
ザ)へ関連情報を送信する。ステップ1313におい
て、方法「問い合わせ」は、問い合わせ要求に関連した
処理を終了する。しかしながら、問い合わせ要求に関連
しないデータ処理が遠隔コンピュータ115において続
けられる。
【0071】ステップ1309の説明に戻ると、問い合
わせ要求から検索されたキャラクタストリングに対する
圧縮コードと、圧縮文書149における圧縮コードの1
つとの間に一致が見つからないことがこの方法で決定さ
れると、ステップ1315において、この方法「問い合
わせ」は、問い合わせ要求の開始側に一致が見つからな
かったことを知らせる。ステップ1315の完了時に、
方法「問い合わせ」は、ステップ1313において、問
い合わせ要求に関連した処理を終了する。しかしなが
ら、問い合わせ要求に関連しないデータ処理が遠隔コン
ピュータ115において続けられる。
【0072】図16、17は、問い合わせ要求から検索
されたキャラクタストリングに関連した圧縮コード(1
つ又は複数)と、圧縮文書149の圧縮コードとの間の
一致をサーチする方法「SearchForMatch
(一致のサーチ)」のフローチャートである。問い合わ
せ要求から検索されたキャラクタストリングを表す圧縮
コードが1つしかない場合には、この方法「Searc
hForMatch」は、圧縮文書149をサーチし
て、その圧縮文書149に記憶された圧縮コードの1つ
との一致を見つける。一致が見つかった場合には、Fo
und(見つかった)という名前のブール変数が値Tr
ueにセットされる。
【0073】問い合わせ要求から検索されたキャラクタ
ストリングを表す圧縮コードが2つ以上ある場合には、
方法「SearchForMatch」は、問い合わせ
要求から検索されたキャラクタストリングを表す圧縮コ
ードが、(1)圧縮文書149に、(2)適切な順序
で、そして(3)論理的に連続する記憶位置に記憶され
ているかどうかを判断しなければならない。
【0074】これら3つの全ての条件が満足されるよう
確保するために、方法「SearchForMatc
h」は、処理されている圧縮文書149における現在圧
縮コードを指示するための「Match−Ptr」とい
う名前のインジケータ(例えばポインタ)を形成して維
持する。方法「SearchForMatch」は、M
atchPointer(一致ポインタ)の位置を増加
し、このMatchPointerにより指示された圧
縮コードを、問い合わせ要求からのキャラクタストリン
グを表す第1の圧縮コードと、位置が見つかるまで比較
する。次いで、方法「SearchForMatch」
は、問い合わせ要求からの全ての圧縮コードに対する一
致が見つかるか、又は問い合わせ要求から圧縮コードの
1つがMatchPointerにより指示された圧縮
コード一致しなくなるまで、MatchPointer
を増加する。このように、方法「SearchForM
atch」は、問い合わせ要求からのキャラクタストリ
ングが、文書145に存在する場合に、見つかるよう確
保する。
【0075】これら3つの条件がないと、方法「Sea
rchForMatch」は、問い合わせ要求からのキ
ャラクタストリングを表す圧縮コードに対する一致を、
論理的に一緒にグループ構成にされた圧縮コードとして
ではなく、個々のエントリとして見つけることになる。
例えば、方法「SearchForMatch」は、
「a driver can enter an intersection to turn if th
e traffic signal is green (交通信号が緑であれば、
運転者は交差点に入って曲がることができる)」という
文章を含む文書内で、ワード「turn」に対する圧縮コー
ドと、ワード「signal」に対する別の圧縮コードとで表
されたキャラクタストリング「turn signal 」をサーチ
するものと仮定する。上記した3つの条件がないと、方
法「SearchForMatch」は、個々のワード
「turn」と個々のワード「signal」に対する圧縮コード
を、句「turn signal 」に対する一致と間違えるおそれ
がある。好ましい実施例では、問い合わせエンジン14
7のサーチプログラム159が、方法「SearchF
orMatch」の段階を実行する。
【0076】ステップ1401において、方法「Sea
rchForMatch」は、方法「圧縮」から戻され
た圧縮コード(1つ又は複数)であって、問い合わせ要
求から検索されたキャラクタストリングを表す圧縮コー
ドを検索する。ステップ1403において、この方法に
より、問い合わせ要求から検索されたキャラクタストリ
ングを表す圧縮コードが1つしかないと決定された場合
に、ステップ1407において、この方法は、ブール変
数「Found」を値Falseに等しくセットする。
ステップ1409において、この方法は、検索された圧
縮コードを圧縮文書149における圧縮コードと比較す
る。好ましい実施例において、検索された圧縮コードと
圧縮文書149における圧縮コードとの比較は、16ビ
ット整数比較コマンド、例えば、インテルx86マイク
ロプロセッサのための16ビット整数比較コマンドを用
いて実行される。ステップ1411において、この方法
により、検索された圧縮コードと圧縮文書149におけ
る圧縮コードとの一致がないと判断された場合には、ス
テップ1413において、方法「SearchForM
atch」は、処理制御を方法「問い合わせ」(図1
5)へ戻す。
【0077】ステップ1411の説明に戻ると、この方
法により、検索された圧縮コードと圧縮文書149にお
ける圧縮コードとの一致があったと判断された場合に
は、この方法は、ステップ1415において、ブール変
数「Found」を値Trueに等しくセットする。ス
テップ1415の完了時に、方法「SearchFor
Match」は、ステップ1413において、処理制御
を方法「問い合わせ」(図15)へ戻す。
【0078】ステップ1405の説明に戻ると、方法
「SearchForMatch」により、方法「圧
縮」から戻された圧縮コードであって、問い合わせ要求
から検索されたキャラクタストリングを表す圧縮コード
が2つ以上あることが決定された場合には、ステップ1
417において、この方法は、Match−Ptrと称
するインジケータ(例えば、ポインタ)を圧縮文書14
9の最初の圧縮コードに等しくセットする。ステップ1
419において、この方法は、ブール変数「Foun
d」を値Falseに等しくセットする。ステップ14
21において、この方法は、Match−Ptrが圧縮
文書149のファイルの終わりを指すかどうか判断す
る。Match−Ptrがファイルの終わりを指さない
場合には、ステップ1423において、この方法は、方
法「圧縮」から戻された全ての圧縮コードが処理された
かどうかそしてブール変数「Found」がTrueに
等しいかどうかを判断する。方法「圧縮」から戻された
全ての圧縮コードが処理されていないか、又はブール変
数「Found」がFalseに等しい場合には、この
方法はステップ1425において処理を続ける。
【0079】ステップ1425において、この方法によ
り、ブール変数「Found」がFalseに等しいと
決定された場合には、ステップ1427において、この
方法「SearchForMatch」は、方法「Se
archForInitialMatch(最初の一致
をサーチする)」を呼び出す。この方法「Search
ForInitialMatch」は、方法「圧縮」か
ら戻された圧縮コードの第1コードを検索し、そしてそ
の検索された圧縮コードが圧縮文書149に記憶されて
いるかどうか判断する。この方法「SearchFor
InitialMatch」は、図19について以下に
詳細に説明する。ステップ1427が完了すると、方法
「SearchForMatch」は、ステップ142
1で処理を続ける。
【0080】ステップ1425の説明に戻ると、この方
法により、変数「Found」がTrueに等しいと決
定された場合に、ステップ1429において、方法「S
earchForMatch」は、方法「Search
ForSubsequentMatch(その後の一致
をサーチする)」を呼び出す。この方法「Search
ForSubsequentMatch」は、方法「S
earchForInitialMatch」によって
位置決めされた圧縮コードの直後に圧縮文書149に記
憶された圧縮コードが、方法「圧縮」から戻されたまだ
処理されていない圧縮コードに等しいかどうか判断す
る。例えば、問い合わせがワード「confirmation(確
認)」のサーチを要求した場合に、方法「Search
ForSubsequentMatch」を呼び出すこ
とにより、レター「co」の最初に一致したストリングの
直後にキャラクタストリング「nfirmation」が記憶され
るよう確保される。方法「SearchForSubs
equentMatch」は、図19を参照して以下に
詳細に説明する。ステップ1429が完了すると、方法
「SearchForMatch」は、ステップ142
1に続く。
【0081】ステップ1423の説明に戻ると、この方
法により、方法「圧縮」から戻された全ての圧縮コード
が処理されそしてブール変数「Found」がTrue
に等しいと決定されると、次いで、ステップ1413に
おいて、方法「SearchForMatch」は、処
理制御を方法「問い合わせ」(図15)へ戻す。
【0082】ステップ1421の説明に戻ると、この方
法により、Match−Ptrが圧縮文書149のファ
イルの終わりを指すと決定されると、ステップ1431
において、この方法は、方法「圧縮」から戻された全て
の圧縮コードが処理されたかどうかを判断する。Mat
ch−Ptrが圧縮文書149のファイルの終わりを指
しそして方法「圧縮」から戻された全ての圧縮コードが
処理されていない場合には、ステップ1433におい
て、この方法は、変数「Found」をFalseに等
しくセットする。このように、この方法は、サーチされ
るキャラクタストリングのサブセットが圧縮文書149
に記憶された最後のキャラクタストリングである場合を
適切に処理する。例えば、問い合わせがワード「confir
mation」のサーチを要求しそして圧縮文書149に記憶
された最後のワードがワード「confirmation」であった
場合には、ステップ1421、1431及び1433に
おいて、ブール変数「Found」がFalseにセッ
トされるよう確保し、ワード「confirmation」が圧縮文
書149に見つからなかったことを指示する。ステップ
1433の完了時に、方法「SearchForMat
ch」は、ステップ1413において、処理制御を方法
「問い合わせ」(図15)へ戻す。
【0083】ステップ1431の説明に戻ると、この方
法により、Match−Ptrが圧縮文書149のファ
イルの終わりを指しそして方法「圧縮」から戻された全
ての圧縮コードが処理されたと決定されると、ステップ
1413において、方法「SearchForMatc
h」は、処理制御を方法「問い合わせ」(図15)へ戻
す。
【0084】図18は、方法「圧縮」から戻された圧縮
コードの第1コードを検索しそしてその検索された圧縮
コードが圧縮文書149に記憶されているかどうかを判
断する方法「SearchForInitialMat
ch」のフローチャートである。この方法「Searc
hForInitialMatch」が処理を開始する
ときには、方法「圧縮」(図4)が方法「問い合わせ」
によって既に呼び出されて、問い合わせ要求からパージ
ングされたキャラクタストリングを単一の圧縮コード又
は多数の圧縮コードに変換している。又、この方法「S
earchForInitialMatch」は、問い
合わせ要求からパージングされたキャラクタストリング
に対する単一の圧縮コード又は多数の圧縮コードを、圧
縮文書149に記憶された圧縮コードと比較する。一致
が見つかった場合には、Match−Ptrという名前
のインジケータが、一致が生じた位置に等しくセットさ
れる。好ましい実施例では、この方法「SearchF
orInitialMatch」は、問い合わせエンジ
ン147のサーチプログラム159によって実行され
る。
【0085】ステップ1501において、方法「Sea
rchForInitialMatch」は、方法「圧
縮」から戻された圧縮コードの第1コードを検索する。
ステップ1503において、この方法は、その検索され
た圧縮コードを、Match−Ptrにより現在指示さ
れている圧縮コードの後に記憶された圧縮文書149内
の圧縮コードと比較する。ステップ1505において、
この方法により、検索された圧縮コードと、Match
−Ptrにより現在指示されている圧縮コードの後に記
憶された圧縮文書149内の圧縮コードとの間に一致が
あったと決定された場合には、ステップ1507におい
て、この方法は、ブール変数「Found」をTrue
に等しくセットする。ステップ1509において、この
方法は、Match−Ptrを、一致が生じた圧縮文書
149内の圧縮コードの位置に等しくセットする。この
ように、この方法は、圧縮文書149内のどのキャラク
タストリングが未処理のままであるかを追跡する。ステ
ップ1611において、方法「SearchForIn
itialMatch」は、処理制御を方法「Sear
chForMatch」(図16、17)へ戻す。
【0086】ステップ1505の説明に戻ると、この方
法において、検索された圧縮コードと、Match−P
trにより現在指示されている圧縮コードの後に記憶さ
れた圧縮文書149内の圧縮コードとの間に一致がなか
ったと決定された場合には、ステップ1511におい
て、方法「SearchForInitialMatc
h」は、処理制御を方法「SearchForMatc
h」(図16、17)へ戻す。
【0087】図19は、方法「SearchForSu
bsequentMatch」のフローチャートであ
る。この方法「SearchForSubsequen
tMatch」は、方法「SearchForInit
ialMatch」により位置決めされた圧縮コードの
直後に圧縮文書149に記憶された圧縮コードが、方法
「圧縮」から戻されたまだ処理されていない圧縮コード
に等しいかどうかを判断する。
【0088】ステップ1601において、この方法は、
Match−Ptrにより現在指示されている圧縮コー
ドの直後に記憶された圧縮コードを指すようにMatc
h−Ptrを増加する。ステップ1603において、こ
の方法は、方法「圧縮」から戻された第1の未処理の圧
縮コードを検索する。ステップ1605において、Ma
tch−Ptrにより指示された圧縮文書149の圧縮
コードがその検索された第1の未処理の圧縮コードに一
致することがこの方法で決定されると、ステップ160
7において、この方法は、ブール変数「Found」を
Trueに等しくセットする。ステップ1609におい
て、この方法「SearchForSubsequen
tMatch」は、処理制御を方法「SearchFo
rMatch」(図16、17)に戻す。
【0089】ステップ1605の説明に戻ると、Mat
ch−Ptrにより指示された圧縮文書の圧縮コードが
その検索された第1の未処理の圧縮コードに一致しない
ことがこの方法で決定されると、ステップ1611にお
いて、この方法は、ブール変数「Found」をFal
seに等しくセットする。ステップ1611の完了時
に、この方法は、ステップ1609において、処理制御
を方法「SearchForMatch」(図16、1
7)に戻す。
【0090】特定例:固定長さの圧縮コードを用いた実
施例について述べる。図20ないし28を用いた特定例
は、固定長さの圧縮データをサーチするための好ましい
方法及びシステムを説明する助けとなろう。典型的に、
遠隔コンピュータ115(図1)のユーザは、非圧縮文
書101をホストコンピュータ109から遠隔コンピュ
ータ115へ転送する要求を入力する。図20は、ホス
トコンピュータのディスプレイデバイス163に表示さ
れた非圧縮文書101を示している。図21は、ホスト
コンピュータメモリ123に記憶されたときの非圧縮文
書101を示している。
【0091】転送要求に応答して、ホストコンピュータ
109は、圧縮エンジン129を呼び出し、これは、非
圧縮文書101を、固定長さの圧縮コードを含む圧縮文
書103に変換する。非圧縮文書101を圧縮文書10
3に変換するために、圧縮エンジン129は、パーザ1
27を呼び出し、これは、非圧縮文書101に記憶され
た非圧縮キャラクタストリングをパージングしそしてそ
のパージングされたキャラクタストリングを圧縮エンジ
ン129に返送する。
【0092】圧縮エンジン129は、パーザ127か
ら、パージングされたキャラクタストリングを非圧縮コ
ードで受け取る。次いで、圧縮エンジン129は、ディ
クショナリ125において非圧縮コードに対する一致を
見つけ、その一致した非圧縮コードに関連した固定長さ
の圧縮コードをディクショナリ125から検索する。更
に、圧縮エンジン129は、ディクショナリ125から
検索された固定長さの圧縮コードを圧縮文書103に記
憶する。
【0093】非圧縮文書101からの各キャラクタスト
リングが本発明の固定長さの圧縮コードに変換されて、
圧縮文書103に記憶された後に、ホストコンピュータ
109は、その圧縮文書103をホストコンピュータ1
09から通信チャンネル117を経て遠隔コンピュータ
115へ転送し、そこで、圧縮文書149として記憶さ
れる。図22は、遠隔コンピュータメモリ143に記憶
されるときの圧縮文書149を示している。
【0094】遠隔コンピュータ115のユーザは、典型
的に、圧縮文書149に関する情報を検索するための問
い合わせを入力する。図23は、遠隔コンピュータキー
ボード111に入力されて遠隔コンピュータメモリ14
3に後で記憶された典型的な問い合わせ要求165を示
している。この問い合わせ要求165は、「どの文書が
ワード「ready 」を含むか」を尋ねている。問い合わせ
要求165を受け取るのに応答して、遠隔コンピュータ
115は、問い合わせエンジン147を呼び出す。問い
合わせエンジン147は、問い合わせ要求165からサ
ーチのためのワードを検索し、この場合は、問い合わせ
エンジン147は、問い合わせ要求165からワード
「ready 」を検索する(図24)。
【0095】次いで、問い合わせエンジン147は、変
換プログラム161を呼び出し、これは、ワード「read
y 」を本発明の固定長さの圧縮コードに変換する。変換
プログラム161は、ディクショナリ145(図3)を
サーチし、ワード「ready 」との一致があるかどうかを
調べる。変換プログラム161は、ディクショナリ14
5がワード「ready 」を含んでいないと決定すると、ワ
ード「ready 」の最初の2つのキャラクタ、即ちキャラ
クタストリング「re」に対してディクショナリ145を
サーチする。変換プログラム161は、キャラクタスト
リング「re」がディクショナリ145の対セクション1
53に記憶されていると決定すると、そのキャラクタス
トリング「re」に関連した圧縮コード0111 011
0 1101 0110を検索する。次いで、変換プロ
グラム161は、その検索された圧縮コードを遠隔コン
ピュータメモリ143に記憶する(図25)。
【0096】次いで、変換プログラム161は、最初の
2つの未処理のキャラクタ、即ちキャラクタストリング
「ad」をワード「ready 」から除去する。変換プログラ
ム161は、キャラクタストリング「ad」がディクショ
ナリ145の対セクション153に記憶されていると決
定すると、キャラクタストリング「ad」に関連した圧縮
コード0111 0101 0011 1110を返送
する。次いで、変換プログラム161は、その検索され
た圧縮コードを遠隔コンピュータメモリ143に記憶す
る(図25)。
【0097】更に、変換プログラム161は、1つの未
処理のキャラクタ、即ちキャラクタ「y 」のみがワード
「ready 」に残っていることを決定する。変換プログラ
ム161は、ディクショナリ145のASCIIセクシ
ョン155に記憶されたキャラクタ「y 」に関連した圧
縮コード1111 1111 1111 0100を検
索する。次いで、変換プログラム161は、その検索さ
れた圧縮コードを遠隔コンピュータメモリ143に記憶
する(図25)。
【0098】ワード「ready 」が本発明の固定長さの圧
縮コードに変換されてしまうと、問い合わせエンジン1
47がサーチプログラム159を呼び出し、これは、ワ
ード「ready 」を表す圧縮コードの発生に対して圧縮文
書149をサーチする。サーチプログラム159は、最
初に、キャラクタストリング「re」に対する圧縮コード
を検索する(図25)。次いで、サーチプログラム15
9は、Match−Ptrという名前のインジケータ
を、圧縮文書149における第1の固定長さ圧縮コード
にセットする。サーチプログラム159は、Match
−Ptrにより指示された固定長さの圧縮コードを、キ
ャラクタストリング「re」に対する固定長さの圧縮コー
ドと比較する。図26は、文書149の第1の圧縮コー
ドがキャラクタストリング「re」に対する圧縮コードに
一致しないことを示している。それ故、サーチプログラ
ム159は、Match−Ptrを増加し続け、一致が
見つかるまで、固定長さの圧縮コードを比較する。図2
6は、キャラクタストリング「re」に対する圧縮コード
との一致が生じたときの圧縮文書149内のMatch
−Ptrの位置を示している。
【0099】サーチプログラム159は、次いで、Ma
tch−Ptrを増加し、そしてこのMatch−Pt
rによって指示された圧縮文書149内の固定長さの圧
縮コード(図27)を、キャラクタストリング「ad」に
対する固定長さの圧縮コード(図25)と比較する。一
致が生じるので、サーチプログラム159は、Matc
h−Ptrを増加し、そしてこのMatch−Ptrに
よって指示された圧縮文書149内の固定長さの圧縮コ
ード(図27)をキャラクタストリング「y 」に対する
固定長さの圧縮コード(図25)と比較する。一致が生
じるので、問い合わせエンジン147は、圧縮文書14
9がワード「ready 」を含んでいることをその要求の開
始側に知らせる。
【0100】本発明の別の実施例は、非圧縮文書101
のキャラクタストリングを非圧縮コードから可変長さの
圧縮コードに変換し、それらの可変長さの圧縮コードの
キャラクタストリングを圧縮文書103’に記憶し、そ
してキャラクタストリングが可変長さの圧縮コードに保
持される間に圧縮文書103’においてキャラクタスト
リングをサーチする。図29は、長さインジケータ26
01及び圧縮コード2603を含む本発明の好ましい可
変長さの圧縮コードを示している。長さインジケータ2
601は、圧縮コード2603におけるビット数を指示
する。例えば、図29に示された長さインジケータ26
01は、10進値の3に等しい2進数を含んでおり、図
29に示された圧縮コード2603が3ビットの長さで
あることを指示している。
【0101】特定例:可変長さの圧縮コードを用いた実
施例を説明する。図20及び21、図23及び24そし
て図29ないし37を用いた特定例は、圧縮文書10
3’の可変長さの圧縮コードをサーチする好ましい方法
及びシステムを説明する上で助けとなろう。一般に、遠
隔コンピュータ115のユーザは、非圧縮文書101を
ホストコンピュータ109から遠隔コンピュータ115
へ転送する要求を入力する。図20は、ホストコンピュ
ータのディスプレイデバイス163に表示された非圧縮
文書101を示している。図21は、ホストコンピュー
タメモリ123に記憶されたときの非圧縮文書101を
示している。
【0102】転送要求に応答して、ホストコンピュータ
109は、圧縮エンジン129を呼び出し、これは、非
圧縮文書101を、可変長さの圧縮コードを含む圧縮文
書103’に変換する。非圧縮文書101を圧縮文書1
03’に変換するために、圧縮エンジン129は、パー
ザ127を呼び出し、これは、非圧縮文書101に記憶
された非圧縮キャラクタストリングをパージングしそし
てそのパージングされたキャラクタストリングを圧縮エ
ンジン129に返送する。
【0103】圧縮エンジン129は、パーザ127か
ら、パージングされたキャラクタストリングを非圧縮コ
ードで受け取る。次いで、圧縮エンジン129は、ディ
クショナリ125’(図30)において非圧縮コードに
対する一致を見つけ、その一致した非圧縮コードに関連
した可変長さの圧縮コードをディクショナリ125’か
ら検索する。更に、圧縮エンジン129は、ディクショ
ナリ125’から検索された可変長さの圧縮コードを圧
縮文書103’に記憶する。
【0104】非圧縮文書101からの各キャラクタスト
リングが本発明の可変長さの圧縮コードに変換されて、
圧縮文書103’に記憶された後に、ホストコンピュー
タ109は、その圧縮文書103’をホストコンピュー
タ109から通信チャンネル117を経て遠隔コンピュ
ータ115へ転送し、そこで、圧縮文書149’として
記憶される。図32は、遠隔コンピュータメモリ143
に記憶されるときの圧縮文書149’を示している。
【0105】遠隔コンピュータ115のユーザは、典型
的に、圧縮文書149’に関する情報を検索するための
問い合わせを入力する。図23は、遠隔コンピュータキ
ーボード111に入力されて遠隔コンピュータメモリ1
43に後で記憶された典型的な問い合わせ要求165を
示している。この問い合わせ要求165は、「どの文書
がワード「ready 」を含むか」を尋ねている。問い合わ
せ要求165を受け取るのに応答して、遠隔コンピュー
タ115は、問い合わせエンジン147を呼び出す。問
い合わせエンジン147は、問い合わせ要求165から
サーチのためのワードを検索し、この場合は、問い合わ
せエンジン147は、問い合わせ要求165からワード
「ready 」を検索する(図24)。
【0106】次いで、問い合わせエンジン147は、変
換プログラム161を呼び出し、これは、ワード「read
y 」を本発明の可変長さの圧縮コードに変換する。変換
プログラム161は、ディクショナリ145’をサーチ
して、ワード「ready 」との一致があるかどうか調べ
る。変換プログラム161は、ディクショナリ145’
がワード「ready 」を含んでいないと決定すると、ワー
ド「ready 」の最初の2つのキャラクタ、即ちキャラク
タストリング「re」に対してディクショナリ145’を
サーチする。変換プログラム161は、キャラクタスト
リング「re」がディクショナリ145’の対セクション
153’に記憶されていると決定すると、そのキャラク
タストリング「re」に関連した圧縮コード011000
0010を検索する。次いで、変換プログラム161
は、その検索された圧縮コードを遠隔コンピュータメモ
リ143に記憶する(図33)。
【0107】次いで、変換プログラム161は、最初の
2つの未処理のキャラクタ、即ちキャラクタストリング
「ad」をワード「ready 」から除去する。変換プログラ
ム161は、キャラクタストリング「ad」がディクショ
ナリ145’の対セクション153’に記憶されている
と決定すると、キャラクタストリング「ad」に関連した
圧縮コード10100000000010を返送する。
次いで、変換プログラム161は、その検索された圧縮
コードを遠隔コンピュータメモリ143に記憶する(図
33)。
【0108】更に、変換プログラム161は、1つの未
処理のキャラクタ、即ちキャラクタ「y 」のみがワード
「ready 」に残っていることを決定する。変換プログラ
ム161は、ディクショナリ145’のASCIIセク
ション155’に記憶された圧縮コード1111000
000000000100を検索する。次いで、変換プ
ログラム161は、その検索された圧縮コードを遠隔コ
ンピュータメモリ143に記憶する(図33)。
【0109】ワード「ready 」が本発明の可変長さの圧
縮コードに変換されてしまうと、問い合わせエンジン1
47がサーチプログラム159を呼び出し、これは、ワ
ード「ready 」を表す圧縮コードの発生に対して圧縮文
書149’をサーチする。サーチプログラム159は、
最初に、キャラクタストリング「re」に対する圧縮コー
ドを検索する(図33)。次いで、サーチプログラム1
59は、キャラクタストリング「re」に対する圧縮コー
ド2901の長さを、キャラクタストリング「re」に対
する長さインジケータ2903の値から決定する。この
場合、長さインジケータ2903は、圧縮コード290
1が6ビットの長さであることを指示する。次いで、サ
ーチプログラム159は、Match−Ptrという名
前のインジケータを、圧縮文書149’における第1の
可変長さの圧縮コードにセットする(図34)。
【0110】圧縮コード2901の長さを決定すること
により、サーチプログラム159は、圧縮コード290
1を、圧縮文書149’内の同じ長さの圧縮コードに対
して比較するだけでよい。サーチプログラム159は、
次いで、キャラクタストリング「Firstcap」に
対する長さインジケータ3001の値を、キャラクタス
トリング「re」に対する長さインジケータ2903の値
と比較する。長さインジケータ2903の値は6に等し
くそして長さインジケータ3001の値は12に等しい
ので、サーチプログラム159は、圧縮コード2901
が圧縮コード3003に対して一致しないと決定する。
それ故、サーチプログラム159は、Match−Pt
rを増加し、一致が見つかるまで、キャラクタストリン
グ「re」の長さインジケータ2903を、Match−
Ptrにより指示されたキャラクタストリングの長さイ
ンジケータと比較する。図35は、キャラクタストリン
グ「re」に対して長さインジケータ2903との一致が
生じたときの圧縮文書149’内のMatch−Ptr
の位置を示している。
【0111】次いで、サーチプログラム159は、キャ
ラクタストリング「re」に対する圧縮コード2901
を、Match−Ptrにより指示されたキャラクタス
トリングに対する圧縮コード3103と比較し、そして
一致が見つかったことを決定する。
【0112】ここで、キャラクタストリング「re」に対
する一致が見つかり、サーチプログラム159は、圧縮
文書149’に記憶された次の2つの可変長さの圧縮コ
ードがキャラクタストリング「ad」及びキャラクタスト
リング「y 」に各々一致するかどうか決定する。サーチ
プログラム159は、Match−Ptrを増加し、キ
ャラクタストリング「ad」に対する長さインジケータ2
905(図33)を、Match−Ptrにより指示さ
れたキャラクタストリングに対する長さインジケータ3
201(図36)と比較する。長さインジケータ290
5の値は長さインジケータ3201の値に等しいので、
サーチプログラム159は、キャラクタストリング「a
d」の圧縮コード2907を、Match−Ptrによ
り指示されたキャラクタストリングに対する圧縮コード
3203と比較する。
【0113】これらの圧縮コード間に一致が生じるの
で、サーチプログラム159は、Match−Ptrを
増加し、そしてキャラクタストリング「y 」の長さイン
ジケータ2909を、Match−Ptrによって指示
されたキャラクタストリングに対する長さインジケータ
3301と比較する(図37)。キャラクタストリング
「y 」に対する長さインジケータ2909の値は、Ma
tch−Ptrによって指示されたキャラクタストリン
グに対する長さインジケータ3301の値に等しいの
で、サーチプログラム159は、キャラクタストリング
「y 」に対する圧縮コード2911を、Match−P
trによって指示されたキャラクタストリングに対する
圧縮コード3303と比較する。一致が生じるので、問
い合わせエンジン147は、圧縮文書149’がワード
「ready 」を含むことを要求の開始側に知らせる。
【0114】当業者であれば、上記した本発明の方法を
実施するのに他のシステムアーキテクチャを使用するこ
とができ、これは、非圧縮文書を圧縮しそしてその圧縮
文書のサーチを実行するスタンドアローンコンピュータ
を含むが、これに限定されるものではないことが理解さ
れよう。
【0115】本発明の典型的な商業用途は、記憶された
ニュースを、安価な8086ベースのプロセッサで動作
するハンドヘルド型コンピュータへダウンロードするこ
とである。8086プロセッサのインテル整数比較コマ
ンドを使用することにより、16ビットの問い合わせ要
求と、圧縮文書149における16ビット圧縮コードの
1つとの各比較を、1命令(3クロックチック)で実行
することができる。従って、安価な装置において多量の
データを迅速にサーチすることができる。サーチ速度を
最適化するために、他のチップアーキテクチャが異なる
長さの圧縮コードを使用してもよいことが当業者に明ら
かであろう。
【0116】又、本発明の方法及び装置は、他の圧縮方
法に関連して使用できることも当業者に理解されよう。
例えば、非圧縮文書のキャラクタストリングを本発明の
16ビット圧縮コードに変換し、次いで、更に可変長さ
コード(例えば、ハフマンコード)に変換した後に、遠
隔コンピュータへ送信し、そこで、キャラクタストリン
グを本発明の16ビット圧縮コードに変換して戻し、上
記のように処理することもできる。
【0117】説明上、本発明の特定の実施例を詳細に述
べたが、本発明の精神及び範囲内で種々の変更がなされ
得ることが明らかであろう。従って、本発明は、特許請
求の範囲のみによって限定されるものとする。
【図面の簡単な説明】
【図1】キャラクタストリングが圧縮コードで記憶され
る間に圧縮文書内のキャラクタストリングをサーチする
ための本発明によるシステムのブロック図である。
【図2】図1のシステムのホストコンピュータのための
固定長さの圧縮コードをもつディクショナリのブロック
図である。
【図3】図1のシステムの遠隔コンピュータのための固
定長さの圧縮コードをもつディクショナリのブロック図
である。
【図4】図1のシステムにより使用される方法「圧縮」
のフローチャートである。
【図5】図1のシステムによって使用される方法「パー
ジング」のフローチャートである。
【図6】図1のシステムによって使用される方法「パー
ジング」のフローチャートである。
【図7】図1のシステムによって使用される方法「Ou
tputNonLetterCompressedCo
de」のフローチャートである。
【図8】図1のシステムによって使用される方法「Ou
tputLetterCompressedCode」
のフローチャートである。
【図9】図1のシステムによって使用される方法「Pr
ocessNonLetterState」のフローチ
ャートである。
【図10】図1のシステムにより使用される方法「Pr
ocessCap1State」のフローチャートであ
る。
【図11】図1のシステムによって使用される方法「P
rocessNoCapsState」のフローチャー
トである。
【図12】図1のシステムによって使用される方法「P
rocessFirstCapState」のフローチ
ャートである。
【図13】図1のシステムによって使用される方法「P
rocessAllCapsState」のフローチャ
ートである。
【図14】図1のシステムによって使用される方法「P
utputLast」のフローチャートである。
【図15】図1のシステムによって使用される方法「問
い合わせ」のフローチャートである。
【図16】図1のシステムによって使用される方法「S
earchForMatch」のフローチャートであ
る。
【図17】図1のシステムによって使用される方法「S
earchForMatch」のフローチャートであ
る。
【図18】図1のシステムによって使用される方法「S
earchForInitialMatch」のフロー
チャートである。
【図19】図1のシステムによって使用される方法「S
earchForSubsequentMatch」の
フローチャートである。
【図20】サンプル文書のブロック図である。
【図21】サンプル文書の非圧縮コードのブロック図で
ある。
【図22】サンプル文書の固定長さの圧縮コードのブロ
ック図である。
【図23】図1のシステムのディスプレイデバイスに表
示される問い合わせ要求のブロック図である。
【図24】問い合わせ要求からパージングされたキャラ
クタストリングのブロック図である。
【図25】問い合わせ要求からのキャラクタストリング
を表す固定長さの圧縮コードのブロック図である。
【図26】固定長さの圧縮コードにおいて問い合わせ要
求をサーチするところを示したブロック図である。
【図27】固定長さの圧縮コードにおいて問い合わせ要
求をサーチするところを示したブロック図である。
【図28】固定長さの圧縮コードにおいて問い合わせ要
求をサーチするところを示したブロック図である。
【図29】図1のシステムのための可変長さの圧縮コー
ドのブロック図である。
【図30】図1のシステムのホストコンピュータのため
の可変長さの圧縮コードをもつディクショナリのブロッ
ク図である。
【図31】図1のシステムの遠隔コンピュータのための
可変長さの圧縮コードをもつディクショナリのブロック
図である。
【図32】図1のシステムのメモリに記憶されたときの
可変長さの圧縮コードの圧縮文書を示すブロック図であ
る。
【図33】問い合わせ要求からのキャラクタストリング
を表す可変長さの圧縮コードのブロック図である。
【図34】可変長さの圧縮コードにおいて問い合わせ要
求をサーチするところを示すブロック図である。
【図35】可変長さの圧縮コードにおいて問い合わせ要
求をサーチするところを示すブロック図である。
【図36】可変長さの圧縮コードにおいて問い合わせ要
求をサーチするところを示すブロック図である。
【図37】可変長さの圧縮コードにおいて問い合わせ要
求をサーチするところを示すブロック図である。
【符号の説明】
100 コンピュータシステム 101 非圧縮文書 103、149 圧縮文書 105 ホストコンピュータキーボード 107 ホストコンピュータマウス 109 ホストコンピュータ 111 遠隔コンピュータキーボード 113 遠隔コンピュータマウス 115 遠隔コンピュータ 117 通信チャンネル 119、141 中央処理ユニット 121、139 入力/出力ユニット 123 ホストコンピュータメモリ 125、145 ディクショナリ 127 パーザ 129 圧縮エンジン 131、151 ワードセクション 133、153 対セクション 135、155 ASCIIセクション 137、157 フォーカット化及び句読点キャラクタ
セクション 143 遠隔コンピュータメモリ 147 問い合わせエンジン 159 サーチプログラム 161 変換プログラム

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 非圧縮文書を表す複数の固定長さの圧縮
    コードより成る圧縮文書をサーチする装置において、 問い合わせ要求を非圧縮コードで受け取る手段と、 上記問い合わせ要求を非圧縮コードから、固定長さの圧
    縮コードの変換された問い合わせ要求へと変換するため
    の手段と、 上記変換された問い合わせ要求を上記圧縮文書の固定長
    さの圧縮コードと比較して、上記圧縮文書のどの固定長
    さの圧縮コードが上記変換された問い合わせ要求に一致
    するかを判断するための手段と、 上記圧縮文書の固定長さの圧縮コードと上記変換された
    問い合わせ要求との間に一致があるという判断に応答す
    る手段と、を具備することを特徴とする装置。
  2. 【請求項2】 上記圧縮文書に記憶された複数のキャラ
    クタストリングは、キャピタライゼーションクラスをも
    つレターのキャラクタストリングを含み、上記キャピタ
    ライゼーションクラスは、キャラクタストリングの各レ
    ターがキャピタルレターである全キャピタルのキャピタ
    ライゼーションクラスと、キャラクタストリングの第1
    レターのみがキャピタル化された第1キャピタルのキャ
    ピタライゼーションクラスと、キャラクタストリングの
    全てのレターが小文字レターである無キャピタルのキャ
    ピタライゼーションクラスとを備えており、上記の変換
    手段は、 上記問い合わせ要求から、レターキャラクタに遭遇する
    まで非レターキャラクタのセットを検索すると共に、そ
    の検索されたレターキャラクタが上記キャピタライゼー
    ションクラスの1つに属する間にレターキャラクタのセ
    ットを検索するためのパージング手段と、 上記非キャラクタの検索されたセットを固定長さの圧縮
    コードに変換するための第1手段と、 上記レターの検索されたセットを、そのレターの検索さ
    れたセットのキャピタライゼーションクラスの表示を含
    む固定長さの圧縮コードに変換するための第2手段とを
    備えている請求項1に記載の装置。
  3. 【請求項3】 上記変換手段は、更に、キャラクタスト
    リングを表すコードを記憶するためのディクショナリを
    備え、上記変換された問い合わせ要求の固定長さの圧縮
    コードはこのディクショナリから検索され、上記ディク
    ショナリは、 複数の非圧縮コード及びそれに関連した固定長さの圧縮
    コードを記憶するワードセクションであって、各々の非
    圧縮コードとそれに関連した圧縮コードが1つのワード
    を表すようなワードセクションと、 種々の非圧縮コード及びそれに関連した固定長さの圧縮
    コードを記憶する対セクションであって、各々の非圧縮
    コードとそれに関連した圧縮コードが一対のレターを表
    すような対セクションと、 複数の非圧縮コード及びそれに関連した固定長さの圧縮
    コードを記憶するフォーマット化及び句読点セクション
    であって、各々の非圧縮コードとそれに関連した圧縮コ
    ードが句読点キャラクタ及びフォーマット化パターンの
    1つを表すようなフォーマット化及び句読点セクション
    と、 複数の非圧縮コード及びそれに関連した固定長さの圧縮
    コードを記憶するASCIIセクションであって、各々
    の非圧縮コードとそれに関連した圧縮コードがASCI
    Iキャラクタを表すようなASCIIセクションとを備
    えている請求項1に記載の装置。
  4. 【請求項4】 上記変換手段は、問い合わせ要求を単一
    の固定長さの圧縮コードに変換し、これにより、上記比
    較手段は、上記変換された問い合わせ要求が上記圧縮文
    書に記憶された固定長さの圧縮コードの1つに一致した
    後に比較を終了することができる請求項1に記載の装
    置。
  5. 【請求項5】 データを検索する装置において、 圧縮コードで各々記憶された複数のキャラクタストリン
    グを含んでいる圧縮文書と、 問い合わせ要求を受け取る手段と、 上記圧縮文書に記憶された複数のキャラクタストリング
    が圧縮コードで記憶されている間に上記圧縮文書におい
    て問い合わせ要求をサーチする手段と、を備えたことを
    特徴とする装置。
  6. 【請求項6】 非圧縮文書を表す複数の可変長さの圧縮
    コードより成る圧縮文書をサーチする装置において、 問い合わせ要求を非圧縮コードで受け取る手段と、 上記問い合わせ要求を非圧縮コードから、可変長さの圧
    縮コードの変換された問い合わせ要求へと変換するため
    の手段と、 上記変換された問い合わせ要求を上記圧縮文書の可変長
    さの圧縮コードと比較して、上記圧縮文書の可変長さの
    圧縮コードが上記変換された問い合わせ要求に一致する
    かどうかを判断するための手段と、 上記圧縮文書の可変長さの圧縮コードと上記変換された
    問い合わせ要求との間に一致があるという判断に応答す
    る手段と、を具備することを特徴とする装置。
  7. 【請求項7】 各可変長さの圧縮コードは、可変長さの
    圧縮コードの長さを指示する長さインジケータを含む請
    求項6に記載の装置。
  8. 【請求項8】 上記変換された問い合わせ要求の長さを
    決定する手段を更に備えた請求項7に記載の装置。
  9. 【請求項9】 上記比較手段は、上記変換された問い合
    わせ要求を、決定された長さがその変換された問い合わ
    せ要求の長さに等しい可変長さの圧縮コードと比較する
    だけである請求項8に記載の装置。
  10. 【請求項10】 圧縮文書に記憶された複数のキャラク
    タストリングが固定長さの圧縮コードで記憶されている
    間に圧縮文書をサーチする方法において、 問い合わせ要求を非圧縮コードで受け取り、この非圧縮
    コードは、複数のビットを用いて問い合わせ要求を表す
    ものであり、 上記問い合わせ要求を非圧縮コードから、固定長さの圧
    縮コードの変換された問い合わせ要求へと変換し、 上記変換された問い合わせ要求を、上記圧縮文書に記憶
    された複数の固定長さの圧縮コードと比較して、その圧
    縮文書からのどの固定長さの圧縮コードが上記変換され
    た問い合わせ要求に一致するかを判断し、そして上記圧
    縮文書の固定長さの圧縮コードと上記変換された問い合
    わせ要求との間に一致があるという判断に応答する、と
    いう段階を備えたことを特徴とする方法。
  11. 【請求項11】 上記圧縮文書に記憶された複数のキャ
    ラクタストリングはキャピタライゼーションクラスをも
    つレターのキャラクタストリングを含み、上記キャピタ
    ライゼーションクラスは、キャラクタストリングの各レ
    ターがキャピタルレターである全キャピタルのキャピタ
    ライゼーションクラスと、キャラクタストリングの第1
    レターのみがキャピタル化された第1キャピタルのキャ
    ピタライゼーションクラスと、キャラクタストリングの
    全てのレターが小文字レターである無キャピタルのキャ
    ピタライゼーションクラスとを備えており、上記の変換
    段階は、 上記問い合わせ要求から、レターキャラクタに遭遇する
    まで非レターキャラクタのセットを検索し、 その検索されたレターキャラクタが上記キャピタライゼ
    ーションクラスの1つに属する間にレターキャラクタの
    セットを検索し、 上記非キャラクタの検索されたセットを固定長さの圧縮
    コードに変換し、 上記レターの検索されたセットを、そのレターの検索さ
    れたセットのキャピタライゼーションクラスの表示を含
    む固定長さの圧縮コードに変換する、という段階を備え
    た請求項10に記載の方法。
  12. 【請求項12】 上記変換段階は、問い合わせ要求を単
    一の固定長さの圧縮コードに変換し、これにより、上記
    比較手段は、上記変換された問い合わせ要求が上記圧縮
    文書に記憶された複数の固定長さの圧縮コードの1つに
    一致した後に上記変換された問い合わせ要求と上記複数
    の固定長さの圧縮コードとの比較を終了する請求項10
    に記載の方法。
  13. 【請求項13】 データを検索する方法において、 固定長さの圧縮コードで記憶された複数のキャラクタス
    トリングを含む圧縮文書を用意し、 固定長さの圧縮コードの問い合わせ要求を与え、そして
    圧縮文書に記憶された複数のキャラクタストリングが固
    定長さの圧縮コードで記憶されている間に圧縮文書にお
    いて問い合わせ要求をサーチする、という段階を備えた
    ことを特徴とする方法。
  14. 【請求項14】 非圧縮文書を表す複数の可変長さの圧
    縮コードより成る圧縮文書をサーチする方法において、 問い合わせ要求を非圧縮コードで受け取り、 上記問い合わせを非圧縮コードから、可変長さの圧縮コ
    ードの変換された問い合わせ要求へと変換し、 上記変換された問い合わせ要求を上記圧縮文書の可変長
    さの圧縮コードと比較して、上記圧縮文書のどの可変長
    さの圧縮コードが上記変換された問い合わせ要求に一致
    するかを判断し、そして上記圧縮文書の可変長さの圧縮
    コードと上記変換された問い合わせ要求との間に一致が
    あるという判断に応答する、という段階を備えたことを
    特徴とする方法。
  15. 【請求項15】 各可変長さの圧縮コードは、その可変
    長さの圧縮コードの長さを指示するサイズコードを含む
    請求項14に記載の方法。
  16. 【請求項16】 上記変換された問い合わせ要求の長さ
    を決定する段階を更に備えた請求項14に記載の方法。
  17. 【請求項17】 上記比較段階は、上記変換された問い
    合わせ要求を、決定された長さがその変換された問い合
    わせ要求の長さに等しい可変長さの圧縮コードと比較す
    るだけである請求項14に記載の方法。
JP14653694A 1993-06-30 1994-06-28 圧縮データをサーチする方法及びシステム Expired - Lifetime JP3234104B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8548193A 1993-06-30 1993-06-30
US08/085481 1993-06-30

Publications (2)

Publication Number Publication Date
JPH0756955A true JPH0756955A (ja) 1995-03-03
JP3234104B2 JP3234104B2 (ja) 2001-12-04

Family

ID=22191893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14653694A Expired - Lifetime JP3234104B2 (ja) 1993-06-30 1994-06-28 圧縮データをサーチする方法及びシステム

Country Status (5)

Country Link
US (1) US5737733A (ja)
EP (1) EP0633537B1 (ja)
JP (1) JP3234104B2 (ja)
CA (1) CA2125337A1 (ja)
DE (1) DE69421966T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185231A (ja) * 1997-09-11 1999-03-30 Fuji Electric Co Ltd データ転送装置

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625711A (en) * 1994-08-31 1997-04-29 Adobe Systems Incorporated Method and apparatus for producing a hybrid data structure for displaying a raster image
US7362775B1 (en) * 1996-07-02 2008-04-22 Wistaria Trading, Inc. Exchange mechanisms for digital information packages with bandwidth securitization, multichannel digital watermarks, and key management
US5613004A (en) 1995-06-07 1997-03-18 The Dice Company Steganographic method and device
US7664263B2 (en) * 1998-03-24 2010-02-16 Moskowitz Scott A Method for combining transfer functions with predetermined key creation
US6205249B1 (en) 1998-04-02 2001-03-20 Scott A. Moskowitz Multiple transform utilization and applications for secure digital watermarking
US7346472B1 (en) 2000-09-07 2008-03-18 Blue Spike, Inc. Method and device for monitoring and analyzing signals
US7177429B2 (en) 2000-12-07 2007-02-13 Blue Spike, Inc. System and methods for permitting open access to data objects and for securing data within the data objects
US7095874B2 (en) * 1996-07-02 2006-08-22 Wistaria Trading, Inc. Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data
US7159116B2 (en) 1999-12-07 2007-01-02 Blue Spike, Inc. Systems, methods and devices for trusted transactions
US5889868A (en) * 1996-07-02 1999-03-30 The Dice Company Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data
US7457962B2 (en) * 1996-07-02 2008-11-25 Wistaria Trading, Inc Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data
US5893102A (en) * 1996-12-06 1999-04-06 Unisys Corporation Textual database management, storage and retrieval system utilizing word-oriented, dictionary-based data compression/decompression
US7730317B2 (en) * 1996-12-20 2010-06-01 Wistaria Trading, Inc. Linear predictive coding implementation of digital watermarks
US5946692A (en) * 1997-05-08 1999-08-31 At & T Corp Compressed representation of a data base that permits AD HOC querying
US6105021A (en) * 1997-11-21 2000-08-15 International Business Machines Corporation Thorough search of document database containing compressed and noncompressed documents
JP2000201080A (ja) * 1999-01-07 2000-07-18 Fujitsu Ltd 付加コ―ドを用いたデ―タ圧縮/復元装置および方法
US7664264B2 (en) 1999-03-24 2010-02-16 Blue Spike, Inc. Utilizing data reduction in steganographic and cryptographic systems
US6665838B1 (en) 1999-07-30 2003-12-16 International Business Machines Corporation Web page thumbnails and user configured complementary information provided from a server
US6405192B1 (en) 1999-07-30 2002-06-11 International Business Machines Corporation Navigation assistant-method and apparatus for providing user configured complementary information for data browsing in a viewer context
US6356908B1 (en) 1999-07-30 2002-03-12 International Business Machines Corporation Automatic web page thumbnail generation
US7475246B1 (en) 1999-08-04 2009-01-06 Blue Spike, Inc. Secure personal content server
US20040102197A1 (en) * 1999-09-30 2004-05-27 Dietz Timothy Alan Dynamic web page construction based on determination of client device location
US20040243540A1 (en) * 2000-09-07 2004-12-02 Moskowitz Scott A. Method and device for monitoring and analyzing signals
US7127615B2 (en) 2000-09-20 2006-10-24 Blue Spike, Inc. Security based on subliminal and supraliminal channels for data objects
US6649567B2 (en) * 2001-10-11 2003-11-18 Isp Investments Inc. Controlled release microbiocide for porous surfaces
US7275115B2 (en) * 2000-10-11 2007-09-25 Broadcom Corporation Cable modem system and method for supporting packet PDU compression
JP3729759B2 (ja) * 2001-08-07 2005-12-21 株式会社ルネサステクノロジ 圧縮された命令コードを読み出すマイクロコントローラ、命令コードを圧縮して格納するプログラムメモリ
US6909384B2 (en) * 2002-01-31 2005-06-21 Microsoft Corporation Generating and searching compressed data
US7287275B2 (en) 2002-04-17 2007-10-23 Moskowitz Scott A Methods, systems and devices for packet watermarking and efficient provisioning of bandwidth
US20040111410A1 (en) * 2002-10-14 2004-06-10 Burgoon David Alford Information reservoir
US7310769B1 (en) 2003-03-12 2007-12-18 Adobe Systems Incorporated Text encoding using dummy font
US6980949B2 (en) * 2003-03-14 2005-12-27 Sonum Technologies, Inc. Natural language processor
US7430560B1 (en) * 2005-07-22 2008-09-30 X-Engines, Inc. Multi-level compressed lock-up tables formed by logical operations to compress selected index bits
US20070067155A1 (en) * 2005-09-20 2007-03-22 Sonum Technologies, Inc. Surface structure generation
WO2008016742A1 (en) * 2006-08-01 2008-02-07 Topix Llc Cap-sensitive text search for documents
US7730088B2 (en) * 2006-09-14 2010-06-01 International Business Machines Corporation Queriable hierarchical text data
US7827218B1 (en) 2006-11-18 2010-11-02 X-Engines, Inc. Deterministic lookup using hashed key in a multi-stride compressed trie structure
US8166041B2 (en) * 2008-06-13 2012-04-24 Microsoft Corporation Search index format optimizations
DE102010006931A1 (de) * 2010-02-04 2011-08-04 Bienert, Jörg, 50354 Verfahren zur Verarbeitung von Datensammlungen, insbesondere in Datenbanksystemen
CN105893337B (zh) * 2015-01-04 2020-07-10 伊姆西Ip控股有限责任公司 用于文本压缩和解压缩的方法和设备
US10140033B2 (en) * 2015-06-15 2018-11-27 Xitore, Inc. Apparatus, system, and method for searching compressed data
JP6737117B2 (ja) * 2016-10-07 2020-08-05 富士通株式会社 符号化データ検索プログラム、符号化データ検索方法および符号化データ検索装置
JP6931442B2 (ja) * 2017-05-16 2021-09-08 富士通株式会社 符号化プログラム、インデックス生成プログラム、検索プログラム、符号化装置、インデックス生成装置、検索装置、符号化方法、インデックス生成方法および検索方法
US10528556B1 (en) * 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
WO2020180790A1 (en) * 2019-03-01 2020-09-10 Cyborg Inc. System and method for statistics-based pattern searching of compressed data and encrypted data
US11636100B2 (en) * 2020-11-27 2023-04-25 Verizon Patent And Licensing Inc. Systems and methods for compression-based search engine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58184646A (ja) * 1982-04-22 1983-10-28 Kokusai Denshin Denwa Co Ltd <Kdd> メツセ−ジ通信方式
JPH0546675A (ja) * 1991-08-12 1993-02-26 Mitsubishi Electric Corp 情報圧縮・検索方式
JPH05324730A (ja) * 1992-05-27 1993-12-07 Hitachi Ltd 文書情報検索装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3593309A (en) * 1969-01-03 1971-07-13 Ibm Method and means for generating compressed keys
US3651483A (en) * 1969-01-03 1972-03-21 Ibm Method and means for searching a compressed index
US3643226A (en) * 1969-06-26 1972-02-15 Ibm Multilevel compressed index search method and means
US4617663A (en) * 1983-04-13 1986-10-14 At&T Information Systems Inc. Interface testing of software systems
EP0160672A4 (en) * 1983-10-19 1986-05-12 Text Sciences Corp METHOD AND DEVICE FOR COMPRESSING DATA.
US4701851A (en) * 1984-10-24 1987-10-20 International Business Machines Corporation Compound word spelling verification
US4650927A (en) * 1984-11-29 1987-03-17 International Business Machines Corporation Processor-assisted communication system using tone-generating telephones
US4843389A (en) * 1986-12-04 1989-06-27 International Business Machines Corp. Text compression and expansion method and apparatus
CA1341310C (en) * 1988-07-15 2001-10-23 Robert Filepp Interactive computer network and method of operation
DE4031421C2 (de) * 1989-10-05 1995-08-24 Ricoh Kk Musteranpassungssystem für eine Spracherkennungseinrichtung
US5274805A (en) * 1990-01-19 1993-12-28 Amalgamated Software Of North America, Inc. Method of sorting and compressing data
US5276868A (en) * 1990-05-23 1994-01-04 Digital Equipment Corp. Method and apparatus for pointer compression in structured databases
US5333313A (en) * 1990-10-22 1994-07-26 Franklin Electronic Publishers, Incorporated Method and apparatus for compressing a dictionary database by partitioning a master dictionary database into a plurality of functional parts and applying an optimum compression technique to each part
US5253341A (en) * 1991-03-04 1993-10-12 Rozmanith Anthony I Remote query communication system
US5163094A (en) * 1991-03-20 1992-11-10 Francine J. Prokoski Method for identifying individuals from analysis of elemental shapes derived from biosensor data
US5414838A (en) * 1991-06-11 1995-05-09 Logical Information Machine System for extracting historical market information with condition and attributed windows
FR2681966A1 (fr) * 1991-09-27 1993-04-02 Euro Cp Sarl Procede de compression-decompression de donnees textuelles dans un reseau domotique.
US5337233A (en) * 1992-04-13 1994-08-09 Sun Microsystems, Inc. Method and apparatus for mapping multiple-byte characters to unique strings of ASCII characters for use in text retrieval
US5325091A (en) * 1992-08-13 1994-06-28 Xerox Corporation Text-compression technique using frequency-ordered array of word-number mappers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58184646A (ja) * 1982-04-22 1983-10-28 Kokusai Denshin Denwa Co Ltd <Kdd> メツセ−ジ通信方式
JPH0546675A (ja) * 1991-08-12 1993-02-26 Mitsubishi Electric Corp 情報圧縮・検索方式
JPH05324730A (ja) * 1992-05-27 1993-12-07 Hitachi Ltd 文書情報検索装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185231A (ja) * 1997-09-11 1999-03-30 Fuji Electric Co Ltd データ転送装置

Also Published As

Publication number Publication date
DE69421966D1 (de) 2000-01-13
DE69421966T2 (de) 2000-04-27
EP0633537A3 (en) 1995-08-23
EP0633537A2 (en) 1995-01-11
EP0633537B1 (en) 1999-12-08
JP3234104B2 (ja) 2001-12-04
US5737733A (en) 1998-04-07
CA2125337A1 (en) 1994-12-31

Similar Documents

Publication Publication Date Title
JP3234104B2 (ja) 圧縮データをサーチする方法及びシステム
US5721899A (en) Retrieval apparatus using compressed trie node and retrieval method thereof
EP0293161B1 (en) Character processing system with spelling check function
EP0510634B1 (en) Data base retrieval system
US5872530A (en) Method of and apparatus for compressing and decompressing data and data processing apparatus and network system using the same
US5893102A (en) Textual database management, storage and retrieval system utilizing word-oriented, dictionary-based data compression/decompression
US5854597A (en) Document managing apparatus, data compressing method, and data decompressing method
JP2001345710A (ja) データ圧縮装置および方法
JPH0855008A (ja) システム生成辞書を用いたデータ圧縮のための方法及びシステム
US6094634A (en) Data compressing apparatus, data decompressing apparatus, data compressing method, data decompressing method, and program recording medium
JP2004537910A (ja) 高速最長一致探索方法及び装置
US5815096A (en) Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure
JP2000201080A (ja) 付加コ―ドを用いたデ―タ圧縮/復元装置および方法
JPH10261969A (ja) データ圧縮方法および装置
JP2729416B2 (ja) テキストデータの復元方法
JP4726046B2 (ja) 文字列検索装置及びコンピュータプログラム及び文字列検索方法
JP3728264B2 (ja) インデックス作成装置、検索システム、及び制御方法
JP2016149160A (ja) 情報生成方法、およびインデックス情報
JPH0546358A (ja) テキストデータの圧縮方法
US20020116358A1 (en) Method to reduce storage requirements when storing semi-redundant information in a database
JPH07182354A (ja) 電子文書の作成方法
JPH06168097A (ja) データ符号化方式及びデータ復元方式
JP2772125B2 (ja) 辞書検索方式
JP3236747B2 (ja) データ伸長方式
JPH05181913A (ja) 昇順整数列データの圧縮および復号システム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010820

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

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

Free format text: PAYMENT UNTIL: 20080921

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080921

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090921

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 12

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term