(57)【特許請求の範囲】
【請求項１】
データ及び該データに対するインデックスのデータの両方を複数の区間に分割し、該データ中の所定数の１６ビットコードを出現頻度順に選択し、選択されなかった残りの１６ビットコードを８ビットコードに分解し、該８ビットコードを出現頻度順に選択した結果に基づいて変換テーブルを作成し、該変換テーブルに基づいてデータ圧縮を行って圧縮ファイルを求めるステップと、
該圧縮ファイルを前記各区間の圧縮後のデータが格納されるアドレス情報と共に記憶媒体に格納するステップとを含む、ファイル処理方法。
【請求項２】
前記区間は固定長である、特許請求の範囲第１項記載のファイル処理方法。
【請求項３】
前記区間は可変長であり、前記格納するステップは、圧縮前のアドレス情報も前記記憶媒体に格納する、特許請求の範囲第１項記載のファイル処理方法。
【請求項４】
前記圧縮ファイルを前記区間毎に前記記憶媒体から読み出して伸長して、データ及びインデックスのデータを復元するステップを更に含む、特許請求の範囲第１項〜第３項のいずれか１項記載のファイル処理方法。
【請求項５】
復元されたデータ及びインデックスのデータを補助記憶装置に格納するステップを更に含む、特許請求の範囲第４項記載のファイル処理方法。
【請求項６】
前記圧縮するステップは、各区間毎のデータ及びインデックスのデータに共通な圧縮アルゴリズム及び圧縮パラメータを使用する、特許請求の範囲第１項〜第５項のいずれか１項記載のファイル処理方法。
【請求項７】
前記データは、辞書データである、特許請求の範囲第１項〜第６項のいずれか１項記載のファイル処理方法。
【請求項８】
データ及び該データに対するインデックスのデータの両方を複数の区間に分割し、該データ中の所定数の１６ビットコードを出現頻度順に選択し、選択されなかった残りの１６ビットコードを８ビットコードに分解し、該８ビットコードを出現頻度順に選択した結果に基づいて変換テーブルを作成し、該変換テーブルに基づいてデータ圧縮を行って求められた圧縮ファイルを前記各区間の圧縮後のデータが格納されるアドレス情報と共に前記区間毎に記憶媒体から読み出すステップと、
該変換テーブルに基づいてデータ伸長を行って該圧縮ファイルを伸長して、データ及びインデックスのデータを復元するステップとを含む、ファイル処理方法。
【請求項９】
復元されたデータ及びインデックスのデータを補助記憶装置に格納するステップを更に含む、特許請求の範囲第８項記載のファイル処理方法。
【請求項１０】
前記区間は固定長である、特許請求の範囲第８項又は第９項記載のファイル処理方法。
【請求項１１】
前記区間は可変長であり、圧縮前のアドレス情報も前記記憶媒体に格納されている、特許請求の範囲第８項〜第１０項のいずれか１項記載のファイル処理方法。
【請求項１２】
前記データは、辞書データである、特許請求の範囲第８項〜第１１項のいずれか１項記載のファイル処理方法。
【請求項１３】
データ及び該データに対するインデックスのデータの両方を複数の区間に分割し、該データ中の所定数の１６ビットコードを出現頻度順に選択し、選択されなかった残りの１６ビットコードを８ビットコードに分解し、該８ビットコードを出現頻度順に選択した結果に基づいて変換テーブルを作成し、該変換テーブルに基づいてデータ圧縮を行って各区間を圧縮して圧縮ファイルを求める手段と、
該圧縮ファイルを前記各区間の圧縮後のデータが格納されるアドレス情報と共に記憶媒体に格納する手段とを備えた、ファイル処理装置。
【請求項１４】
前記区間は固定長である、特許請求の範囲第１３項記載のファイル処理装置。
【請求項１５】
前記区間は可変長であり、前記格納する手段は、圧縮前のアドレス情報も前記記憶媒体に格納する、特許請求の範囲第１３項記載のファイル処理装置。
【請求項１６】
前記圧縮ファイルを前記区間毎に前記記憶媒体から読み出して伸長して、データ及びインデックスのデータを復元する手段を更に備えた、特許請求の範囲第１３項〜第１５項のいずれか１項記載のファイル処理装置。
【請求項１７】
復元されたデータ及びインデックスのデータを補助記憶装置に格納する手段を更に備えた、特許請求の範囲第１６項記載のファイル処理装置。
【請求項１８】
前記圧縮する手段は、各区間毎のデータ及びインデックスのデータに共通な圧縮アルゴリズム及び圧縮パラメータを使用する、特許請求の範囲第１３項〜第１７項のいずれか１項記載のファイル処理装置。
【請求項１９】
前記データは、辞書データである、特許請求の範囲第１３項〜第１８項のいずれか１項記載のファイル処理装置。
【請求項２０】
データ及び該データに対するインデックスのデータの両方を複数の区間に分割し、該データ中の所定数の１６ビットコードを出現頻度順に選択し、選択されなかった残りの１６ビットコードを８ビットコードに分解し、該８ビットコードを出現頻度順に選択した結果に基づいて変換テーブルを作成し、該変換テーブルに基づいてデータ圧縮を行って求められた圧縮ファイルを前記各区間の圧縮後のデータが格納されるアドレス情報と共に前記区間毎に記憶媒体から読み出す手段と、
該変換テーブルに基づいて該圧縮ファイルを伸長して、データ及びインデックスのデータを復元する手段とを備えた、ファイル処理装置。
【請求項２１】
復元されたデータ及びインデックスのデータを補助記憶装置に格納する手段を更に備えた、特許請求の範囲第２０項記載のファイル処理装置。
【請求項２２】
前記区間は固定長である、特許請求の範囲第２０項又は第２１項記載のファイル処理装置。
【請求項２３】
前記区間は可変長であり、圧縮前のアドレス情報も前記記憶媒体に格納されている、特許請求の範囲第２０項又は第２１項記載のファイル処理装置。
【請求項２４】
前記データは、辞書データである、特許請求の範囲第２０項〜第２３項のいずれか１項記載のファイル処理装置。
【請求項２５】
コンピュータで読み取り可能な情報を記憶した記憶媒体であって、
コンピュータに、データ及び該データに対するインデックスのデータの両方を複数の区間に分割し、該データ中の所定数の１６ビットコードを出現頻度順に選択し、選択されなかった残りの１６ビットコードを８ビットコードに分解し、該８ビットコードを出現頻度順に選択した結果に基づいて変換テーブルを作成し、該変換テーブルに基づいてデータ圧縮を行って求められた圧縮ファイルを前記各区間の圧縮後のデータが格納されるアドレス情報と共に前記区間毎に前記記憶媒体から読み出させる手段と、
コンピュータに、該変換テーブルに基づいて該圧縮ファイルを伸長して、データ及びインデックスのデータを復元させる手段とを備えたプログラムを格納する、記憶媒体。
【請求項２６】
コンピュータに、復元されたデータ及びインデックスのデータを補助記憶装置に格納させる手段を更に含む、特許請求の範囲第２５項記載の記憶媒体。
【請求項２７】
前記区間は固定長である、特許請求の範囲第２５項又は第２６項記載の記憶媒体。
【請求項２８】
前記区間は可変長であり、前記読み出させる手段は、圧縮前のアドレス情報も前記記憶媒体から読み出させる、特許請求の範囲第２５項又は第２６項記載の記憶媒体。
【請求項２９】
前記圧縮ファイルは、各区間毎のデータ及びインデックスのデータに共通な圧縮アルゴリズム及び圧縮パラメータを使用して圧縮されている、特許請求の範囲第２５項〜第２８項のいずれか１項記載の記憶媒体。
【請求項３０】
前記データは、辞書データである、特許請求の範囲第２５項〜第２９項のいずれか１項記載の記憶媒体。
【請求項３１】
コンピュータで読み取り可能な情報を記憶した記憶媒体であって、
データ及び該データに対するインデックスのデータの両方を複数の区間に分割し、該データ中の所定数の１６ビットコードを出現頻度順に選択し、選択されなかった残りの１６ビットコードを８ビットコードに分解し、該８ビットコードを出現頻度順に選択した結果に基づいて変換テーブルを作成し、該変換テーブルに基づいてデータ圧縮を行って求められた圧縮ファイルを前記各区間の圧縮後のデータが格納されるアドレス情報と共に格納しており、
該圧縮ファイルは、各区間毎のデータ及びインデックスのデータに共通な圧縮アルゴリズム及び圧縮パラメータを使用して圧縮されている、記憶媒体。
【請求項３２】
前記区間は固定長である、特許請求の範囲第３１項記載の記憶媒体。
【請求項３３】
前記区間は可変長であり、圧縮前のアドレス情報も格納している、特許請求の範囲第３１項記載の記憶媒体。
【請求項３４】
前記データは、辞書データである、特許請求の範囲第３１項〜第３３項のいずれか１項記載の記憶媒体。
【請求項３５】
コンピュータで読取可能な情報を記録した記憶媒体であって、
コンピュータに、
辞書データ及び該辞書データに対するインデックスのデータの両方を複数の区間に分割し、該辞書データ中の所定数の１６ビットコードを出現頻度順に選択し、選択されなかった残りの１６ビットコードを８ビットコードに分解し、該８ビットコードを出現頻度順に選択した結果に基づいて変換テーブルを作成し、該変換テーブルに基づいてデータ圧縮を行って圧縮辞書ファイルを求めさせる手順と、
該圧縮辞書ファイルを前記各区間の圧縮後のデータが格納されるアドレス情報と共に記憶媒体に格納させる手順とを実行させるためのプログラムを記録した記憶媒体。
【請求項３６】
前記区間は固定長である、特許請求の範囲第３５項記載の記憶媒体。
【請求項３７】
前記区間は可変長であり、前記読み出させる手段は、圧縮前のアドレス情報も前記記憶媒体から読み出させる、特許請求の範囲第３５項記載の記憶媒体。
【請求項３８】
前記圧縮辞書ファイルは、各区間毎の辞書データ及びインデックスのデータに共通な圧縮アルゴリズム及び圧縮パラメータを使用して圧縮されている、特許請求の範囲第３５項〜第３７項のいずれか１項記載の記憶媒体。
【請求項３９】
コンピュータに、前記圧縮辞書ファイルを前記区間毎に前記記憶媒体から読み出して伸長して、辞書データ及びインデックスのデータを復元させる手順を実行させるプログラムを更に記録した、特許請求の範囲第３５項〜第３８項のいずれか１項記載の記憶媒体。
【請求項４０】
コンピュータに、復元された辞書データ及びインデックスのデータを補助記憶装置に格納させる手順を実行させるプログラムを更に記録した、特許請求の範囲第３９項記載の記憶媒体。
【請求項４１】
圧縮ファイルを記録したコンピュータ読み取り可能な記録媒体であって、
前記圧縮ファイルは、辞書データ及び該辞書データに対するインデックスのデータの両方を複数の区間に分割して該辞書データ中の所定数の１６ビットコードを出現頻度順に選択し、選択されなかった残りの１６ビットコードを８ビットコードに分解し、該８ビットコードを出現頻度順に選択した結果に基づいて変換テーブルを作成し、該変換テーブルに基づいてデータ圧縮を行って各区間が圧縮された圧縮データを記録した圧縮データ領域と、
前記各区間の圧縮後の辞書データが格納されるアドレス情報を記録した格納アドレス情報領域と、前記圧縮の処理で用いた圧縮パラメータを記録した圧縮パラメータ領域を有する、圧縮ファイルを記録したコンピュータ読み取り可能な記録媒体。
【請求項４２】
前記圧縮パラメータは、前記辞書データ中の出現頻度順に選択した１６ビットコードおよびその出現頻度と、該選択されなかった残りの１６ビットコードを分割した８ビットコードから出現頻度順に選択した８ビットコードおよびその出現頻度である、特許請求の範囲第４１項に記載の記録媒体。
【発明の詳細な説明】
技術分野
本発明はファイル処理方法、データ処理装置及び記憶媒体に係り、特に１又は複数の辞書や百科辞典等に関する辞書ファイル等のファイルを圧縮して記憶媒体に格納して読み出すファイル処理方法及びデータ処理装置並びに圧縮された辞書ファイル等のファイルを格納する記憶媒体に関する。
近年、辞書や百科辞典等の情報を予めＣＤ−ＲＯＭ等の記憶媒体に格納しておき、コンピュータでＣＤ−ＲＯＭをアクセスすることにより、辞書や百科辞典等の情報を読み出して表示することが行われるようになった。これにより、辞書や百科辞典等の膨大な情報を非常にコンパクトな１枚のＣＤ−ＲＯＭに格納できる。又、コンピュータを使用中に辞書や百科辞典等を開いて必要な情報を入手する代わりに、ＣＤ−ＲＯＭから必要な情報を読み取れるので、必要な情報を入手する手間が大幅に軽減される。
背景技術
辞書や百科辞典等の情報を格納した従来のＣＤ−ＲＯＭでは、辞書ファイルが辞書データ及びインデックスのデータ（以下、インデックスデータと言う）からなる。例えば百科辞典の場合、辞書データには、語の意味を説明するテキストのデータ（以下、テキストデータと言う）、例えば語が動物であればその動物を示す画像のデータ（以下、画像データと言う）、例えば語が鳥であればその鳥の鳴き声を示す音声のデータ（以下、音声データと言う）等が含まれる。インデックスは、辞書ファイルから所望の辞書データを検索するために使用されるもので、辞書データに対して設けられており、キーワードと呼ばれることもある。インデックスデータには、見出しのポインタや項目のポインタ等が含まれる。見出しのデータには、見出し語が含まれる。又、項目のデータには、見出し語や解説文等が含まれる。
従来は、ＣＤ−ＲＯＭの記憶容量が比較的大きいため、テキストデータやインデックスデータは圧縮されずにＣＤ−ＲＯＭに格納されている。他方、画像データ及び音声データは、特に画像データの情報量が多いこともあり、夫々適切な圧縮方式で圧縮されてＣＤ−ＲＯＭに格納されている。
しかし、辞書毎や百科辞典毎に１枚のＣＤ−ＲＯＭを必要とするのでは、辞書データの使い勝手が悪い。そこで、１枚のＣＤ−ＲＯＭに複数の辞書や百科辞典等の情報を格納することが望ましいが、この場合、格納するべき情報量が、辞書データを圧縮しても１枚のＣＤ−ＲＯＭの記憶容量を越えてしまう可能性があるという問題があった。又、ＣＤ−ＲＯＭに格納するべき辞書ファイルが単一の辞書や百科辞典等のものであっても、辞書ファイルの情報量が増大すれば、辞書データを圧縮しても１枚のＣＤ−ＲＯＭの記憶容量を越えてしまう可能性もあった。
このため、辞書データだけでなく、インデックスデータを含む辞書ファイル全体を圧縮してＣＤ−ＲＯＭに格納することが考えられるが、比較的簡単な方法で効率良く辞書ファイル全体を圧縮すると共に、圧縮辞書ファイルを短時間で伸長可能な方法は提案されていない。特に辞書や百科辞典等の場合には、インデックスデータの情報量が多いため、辞書ファイルの伸長時にインデックスデータを復元する処理に時間がかかると、所望のインデックスデータ又は辞書データへのアクセス時間が長くなり、辞書や百科辞典等の使い勝手が悪くなってしまう。
又、例えば辞書データをインデックスの項目単位又は固定長単位で圧縮する場合、特に辞書や百科辞典等ではインデックスデータの情報量が多いため、上記と同様に辞書ファイルの伸長時の処理に時間がかかってしまい、辞書や百科辞典等の使い勝手が悪くなってしまう。例えば、特開平９−２６９６９号公報では、これに類似する方法を用いた電話帳検索システムが提案されているが、この提案方法では、インデックスデータは圧縮されない。これは、電話帳の場合、インデックスデータの情報量は、辞書データに対応する電話番号−姓、名、法人名、住所の情報量に比較すると小さく、圧縮しても全体としての情報圧縮効率があまり向上しないからである。このため、この提案方法を辞書や百科辞典等の情報を記憶媒体に格納する際に適用しても、辞書ファイル全体としての情報圧縮効率はあまり向上しない。
従って、従来は、辞書や百科辞典等のように、インデックスデータの情報量が辞書データの情報量と比較しても比較的大きい場合、辞書ファイルを効率良く圧縮して記憶媒体に格納すると共に、圧縮辞書ファイルを比較的簡単な処理により短時間でアクセスすることができないという問題があった。
発明の開示
そこで、本発明は、辞書や百科辞典等のように、インデックスデータの情報量が辞書データの情報量と比較しても比較的大きい場合でも、辞書ファイル等のファイルを効率良く圧縮して記憶媒体に格納すると共に、圧縮辞書ファイル等の圧縮ファイルを比較的簡単な処理により短時間でアクセス可能とするファイル処理方法、データ処理装置及び記憶媒体を提供することを目的とする。
本発明の目的は、データ及び該データに対するインデックスのデータを複数の区間に分割し、圧縮して圧縮ファイルを求めるステップと、該圧縮ファイルを前記区間の圧縮後のアドレス情報と共に記憶媒体に格納するステップとを含むファイル処理方法を提供することにある。本発明によれば、インデックスや各項目のテキスト等のデータにより構成される辞書ファイル等のファイルを効率良く圧縮して記憶媒体に格納することができ、又、圧縮ファイルの伸長を区間毎に行えば比較的簡単な処理でファイル検索を高速に行うことができる。
前記区間を固定長とすれば、圧縮前のアドレス情報を圧縮ファイルに含める必要がなく、データ圧縮効率を向上することができる。前記区間を可変長とし、前記格納するステップが、圧縮前のアドレス情報も前記記憶媒体に格納すれば、データの種別や区分に応じて適切な区間を設定することで、データ伸長を高速に行うことができる。
前記圧縮ファイルを前記区間毎に前記記憶媒体から読み出して伸長し、復元されたデータ及びインデックスのデータを補助記憶装置に格納するステップを更に含むようにすれば、高速データアクセスが可能な補助記憶装置を用いることにより、ファイル検索速度を向上することができる。
前記圧縮するステップが、各区間毎のデータ及びインデックスのデータに共通な圧縮アルゴリズム及び圧縮パラメータを使用するようにすれば、共通な圧縮アルゴリズム及び圧縮パラメータを使用することにより、データ圧縮処理及びデータ伸長時のデータ伸長処理を簡略化することができ、具体的な圧縮アルゴリズムとしてはハフマン符号やユニバーサル符号等を使用できる。
本発明の更に他の目的は、データ及び該データに対するインデックスのデータを複数の区間に分割し、圧縮して求められた圧縮ファイルを前記区間の圧縮後のアドレス情報と共に前記区間毎に記憶媒体から読み出すステップと、該圧縮ファイルを伸長して、データ及びインデックスのデータを復元するステップとを含むファイル処理方法を提供することにある。本発明によれば、圧縮辞書ファイル等の圧縮ファイルの伸長を区間毎に行うことにより比較的簡単な処理でファイル検索を高速に行うことができる。
本発明の他の目的は、データ及び該データに対するインデックスデータを複数の区間に分割し、圧縮して圧縮ファイルを求める手段と、該圧縮ファイルを前記区間の圧縮後のアドレス情報と共に記憶媒体に格納する手段とを備えたファイル処理装置を提供することにある。本発明によれば、インデックスや各項目のテキスト等のデータにより構成されるファイルを効率良く圧縮して記憶媒体に格納することができ、又、圧縮ファイルの伸長を区間毎に行えば比較的簡単な処理でファイル検索を高速に行うことができる。
本発明の更に他の目的は、データ及び該データに対するインデックスデータを複数の区間に分割し、圧縮して求められた圧縮ファイルを前記区間の圧縮後のアドレス情報と共に前記区間毎に記憶媒体から読み出す手段と、該圧縮ファイルを伸長して、データ及びインデックスデータを復元する手段とを備えたファイル処理装置を提供することにある。本発明によれば、圧縮ファイルの伸長を区間毎に行うことにより比較的簡単な処理でファイル検索を高速に行うことができる。
本発明の他の目的は、コンピュータで読み取り可能な情報を記憶した記憶媒体であって、コンピュータに、データ及び該データに対するインデックスのデータを複数の区間に分割し、圧縮して求められた圧縮ファイルを前記区間の圧縮後のアドレス情報と共に前記区間毎に前記記憶媒体から読み出させる手段と、コンピュータに、該圧縮ファイルを伸長して、データ及びインデックスのデータを復元させる手段とを備えたプログラムを格納する記憶媒体を提供することにある。本発明によれば、圧縮ファイルの伸長を区間毎に行うことにより比較的簡単な処理でファイル検索を高速に行うことができる。
本発明の更に他の目的は、コンピュータで読み取り可能な情報を記憶した記憶媒体であって、データ及び該データに対するインデックスのデータを複数の区間に分割し、圧縮して求められた圧縮ファイルを前記区間の圧縮後のアドレス情報と共に格納しており、該圧縮ファイルは、各区間毎のデータ及びインデックスのデータに共通な圧縮アルゴリズム及び圧縮パラメータを使用して圧縮されている記憶媒体を提供することにある。本発明によれば、効率良くファイルを圧縮して記憶媒体に格納することができ、又、圧縮ファイルの伸長を区間毎に行えば比較的簡単な処理でファイル検索を高速に行うことができる。
本発明の目的は、コンピュータで読取可能な情報を記録した記憶媒体であって、コンピュータに、辞書データ及び該辞書データに対するインデックスのデータを複数の区間に分割し、圧縮して圧縮辞書ファイルを求めさせる手順と、該圧縮辞書ファイルを前記区間の圧縮後のアドレス情報と共に記憶媒体に格納させる手順を実行させるためのプログラムを記録した記憶媒体を提供するにある。本発明によれば、比較的簡易な処理でファイル検索を高速に行うことができる。
本発明の更に他の目的は、圧縮ファイルを記録したコンピュータ読み取り可能な記録媒体であって、前記圧縮ファイルは、データ及び該データに対するインデックスのデータを複数の区間に分割して圧縮された圧縮データを記録した圧縮データ領域と、前記区間の圧縮後のアドレス情報を記録した格納アドレス情報領域と、前記圧縮の処理で用いた圧縮パラメータを記録した圧縮パラメータ領域を有する圧縮ファイルを記録したコンピュータ読み取り可能な記録媒体を提供するにある。本発明によれば、比較的簡易な処理でファイル検索を行うことができる。
従って、本発明によれば、辞書や百科辞典等のように、インデックスデータの情報量が辞書データの情報量と比較してもかなり大きい場合でも、辞書ファイル等のファイルを効率良く圧縮して記憶媒体に格納すると共に、圧縮辞書ファイル等のファイルを比較的簡単な処理により短時間でアクセス可能となる。
本発明の更に他の目的及び特長は、以下図面と共に述べる説明より明らかとなろう。
【図面の簡単な説明】
図１はファイル処理方法の実施例を採用したコンピュータシステムの概略構成を示すブロック図、
図２はＣＰＵが行う圧縮パラメータ演算処理を説明するフローチャート、
図３は圧縮パラメータのデータ構造を示す図、
図４はＣＰＵが行うデータ圧縮処理及びアドレス情報演算処理を説明するフローチャート、
図５はＣＰＵが行う圧縮ファイル合成処理及び圧縮ファイル格納処理を説明するフローチャート、
図６は圧縮ファイルの合成を説明する図、
図７はＣＰＵが行うインデックスリード処理を説明するフローチャート、
図８はＣＰＵが行うデータ伸長処理を説明するフローチャート、
図９はＣＰＵが行うテキストリード処理を説明するフローチャートである。
発明を実施するための最良の形態
本発明になるファイル処理方法及びデータ処理装置の一実施例を説明する。ファイル処理方法及びデータ処理装置の実施例は、本発明になる記憶媒体の一実施例を用いる。尚、記憶媒体の実施例では、本発明がＣＤ−ＲＯＭに適用されているが、記憶媒体自体はＣＤ−ＲＯＭに限定されず、本発明はＣＤ−ＲＯＭ以外の光学的情報記憶媒体、光磁気ディスク等の光磁気記憶媒体、フロッピーディスク等の磁気記憶媒体、各種半導体メモリデバイス等にも同様に適用可能であることは言うまでもない。
図１は、ファイル処理方法の実施例を採用したコンピュータシステムの概略構成を示すブロック図であり、データ処理装置の実施例に対応する。同図中、コンピュータシステムは、大略バス９により接続された中央処理装置（ＣＰＵ）１、ランダムアクセスメモリ（ＲＡＭ）等からなる主記憶装置２、ハードディスクドライブ等からなる補助記憶装置３、キーボードやマウス等からなる入力装置４、表示装置５及びＣＤ−ＲＯＭドライブ等からなるＣＤ−ＲＯＭ入出力装置６からなる。コンピュータシステムを構成する各要素自体は、周知の構成のもので構成することができる。
入力装置４は、ＣＰＵ１に指示やデータを入力するのに用いられ、ＣＰＵ１はこれらの指示やデータに基づいて補助記憶装置３に格納されたプログラムを実行することで、ユーザの要求する処理を行う。補助記憶装置３に格納されたプログラムは、予めインストールされていても、ＣＤ−ＲＯＭ入出力装置６にロードされたＣＤ−ＲＯＭ６ａからロードされても良い。主記憶装置２は、ＣＰＵ１が行う演算処理等の中間結果や演算に使用されるデータ等を一時的に格納するのに用いられる。表示装置５は、ＣＰＵ１が行った処理の結果やユーザに指示やデータの入力を促すメッセージを表示する。尚、表示装置５に代えて、又は、表示装置５に加えて、ＣＰＵ１が行った処理の結果等を印字するプリンタ（図示せず）をバス９に接続しても良い。
先ず、ＣＤ−ＲＯＭ入出力装置６にロードされたＣＤ−ＲＯＭ６ａに、辞書や百科辞典等の辞書ファイルを格納するファイル格納処理について説明する。ファイル格納処理は、大略圧縮パラメータ演算処理と、インデックスやテキスト等のデータ圧縮処理と、アドレス情報演算処理と、圧縮ファイル合成処理と、圧縮ファイル格納処理とからなる。本実施例では、説明の便宜上、ＣＤ−ＲＯＭ６ａはＣＰＵ１にファイル格納処理を行わせるプログラムが格納されており、ＣＰＵ１は周知の方法でこのプログラムをＣＤ−ＲＯＭ６ａから読み取って補助記憶装置３にロードするものとする。又、辞書や百科辞典等の辞書ファイルは、ホスト装置（図示せず）から転送されてバス９を介して補助記憶装置３に格納されているか、或いは、ＣＤ−ＲＯＭ入出力装置６によりＣＤ−ＲＯＭ６ａとは異なるＣＤ−ＲＯＭから読み取られてバス９を介して補助記憶装置３に格納されているものとする。
１ａ）圧縮パラメータ演算処理：
図２は、ＣＰＵ１が行う圧縮パラメータ演算処理を説明するフローチャートである。同図中、ステップＳ１は、補助記憶装置３をアクセスして辞書ファイルをオープンする。ステップＳ２は、辞書ファイルから１文字、即ち、例えば１６ビットコードを読み出す。ステップＳ３は、読み出した１６ビットコードの出現頻度をＣＰＵ１内の出現頻度カウンタでカウントする。ステップＳ４は、辞書ファイルの最終文字を処理したか否かを判定し、判定結果がＮＯであれば、処理はステップＳ２へ戻る。
他方、ステップＳ４の判定結果がＹＥＳの場合、ステップＳ５は、辞書ファイルをクローズする。ステップＳ６は、出現頻度順に１６ビットコードをソートし、ステップＳ７は、出現頻度順に例えば１０２４個の１６ビットコードを選択する。ステップＳ８は、選択されなかった残りの１６ビットコードを８ビットコードに分解し、８ビットコードの出現頻度を算出する。ステップＳ９は、８ビットコードの出現頻度を約１／２にし、１６ビットコードの出現頻度との補正を行う。
ステップＳ１０は、補助記憶装置３内に圧縮パラメータの退避ファイルをオープンする。ステップＳ１１は、１０２４個の１６ビットコードとこれらの出現頻度を圧縮パラメータの退避ファイルに書き込む。又、ステップＳ１２は、２５６個の８ビットコードとこれらの出現頻度を圧縮パラメータの退避ファイルに書き込む。ステップＳ１３は、圧縮パラメータの退避ファイルをクローズし、処理は終了する。
図３は、圧縮パラメータのデータ構造を示す図である。ハフマン符号による圧縮の場合、同図に示すように、圧縮パラメータは、例えば１０２４種の１６ビットコード毎の２５６種の出現頻度及び８ビットコード毎の２５６種の出現頻度からなる。これらの出現頻度は、ハフマン木の生成のためのデータとなる。尚、ユニバーサル符号による圧縮の場合の圧縮パラメータはトライの木もしくはそれを生成するための登録記号例とその参照番号等のデータで構成される。
１ｂ）データ圧縮処理及びアドレス情報演算処理：
図４は、ＣＰＵ１が行うデータ圧縮処理及びアドレス情報演算処理を説明するフローチャートである。同図中、ステップＳ２１は、８ビットコードの出現頻度及び１６ビットコードの出現頻度から変換テーブル、即ち、本実施例ではハフマン圧縮を行うのでハフマン木を作成する。ステップＳ２２は、補助記憶装置３内の辞書ファイルをオープンする。ステップＳ２３は、補助記憶装置３内に圧縮データの退避ファイル及びアドレス情報の退避ファイルをオープンする。
ステップＳ２４は、辞書ファイルから１区間を読み出す。この区間は、固定長であっても、可変長であっても良いが、本実施例では説明の便宜上固定長であるものとする。尚、上記区間は、ブロックと呼ばれることもある。ステップＳ２５は、ハフマン木を用いて１区間の圧縮データを演算する。ステップＳ２６は、１区間の終わりに終了符号を付加する。又、ステップＳ２７は、圧縮データを圧縮データの退避ファイルに書き込む。
ステップＳ２８は、該当区間が格納されるアドレス情報を演算する。例えば区間が固定長の場合、アドレス情報は各区間に付けられた区間番号に基づいて演算される。ステップＳ２９は、アドレス情報をアドレス情報の退避ファイルに書き込む。ステップＳ３０は、最終区間を処理したか否かを判定し、判定結果がＮＯであれば、処理はステップＳ２４へ戻る。最終区間を処理したか否かは、例えば区間番号や最終区間に付加された最終区間符号に基づいて判定することができる。
他方、ステップＳ３０の判定結果がＹＥＳの場合、ステップＳ３１は、圧縮データの退避ファイル及びアドレス情報の退避ファイルを夫々クローズする。又、ステップＳ３２は、辞書ファイルをクローズし、処理は終了する。
１ｃ）圧縮ファイル合成処理及び圧縮ファイル格納処理：
図５は、ＣＰＵ１が行う圧縮ファイル合成処理及び圧縮ファイル格納処理を説明するフローチャートである。同図中、ステップＳ４１は、補助記憶装置３内に圧縮ファイルをオープンする。ステップＳ４２は、補助記憶装置３内の圧縮パラメータの退避ファイルをオープンし、ステップＳ４３は、圧縮パラメータの退避ファイルの圧縮パラメータを圧縮ファイルに複写する。ステップＳ４４は、圧縮パラメータの退避ファイルをクローズする。
ステップＳ４５は、補助記憶装置３内のアドレス情報の退避ファイルをオープンし、ステップＳ４６は、アドレス情報の退避ファイルのアドレス情報を圧縮ファイルに複写する。ステップＳ４７は、アドレス情報の退避ファイルをクローズする。更に、ステップＳ４８は、補助記憶装置３内の圧縮データの退避ファイルをオープンし、ステップＳ４９は、圧縮データの退避ファイルの圧縮データを圧縮ファイルに複写する。ステップＳ５０は、圧縮データの退避ファイルをクローズする。ステップＳ５１は、圧縮ファイルをＣＤ−ＲＯＭ入出力装置６によりＣＤ−ＲＯＭ６ａに格納する。又、ステップＳ５２は、圧縮ファイルをクローズし、処理は終了する。
図６は、上記の如き１ａ）圧縮パラメータ演算処理、１ｂ）データ圧縮処理及びアドレス情報演算処理及び１ｃ）圧縮ファイル合成処理及び圧縮ファイル格納処理による圧縮ファイルの合成を説明する図である。同図中、（ａ）は圧縮パラメータを示し、本実施例ではハフマン符号による圧縮を行うための圧縮パラメータである。同図中、（ｂ）は辞書ファイルの区間を示し、本実施例では各区間が例えば２ｋｂｙｔｅであり、各区間は辞書データ及びインデックスデータからなる。例えば百科辞典の場合、辞書データには、語の意味を説明するテキストのテキストデータ、例えば語が動物であればその動物の示す画像データ、例えば語が鳥であればその鳥の鳴き声を示す音声データ等が含まれる。インデックスは、辞書ファイルから所望の辞書データを検索するために使用されるもので、辞書データに対して設けられており、キーワードと呼ばれることもある。インデックスデータには、見出しのポインタや項目のポインタ等が含まれる。見出しのデータには、見出し語が含まれる。又、項目のデータには、見出し語や解説文等が含まれる。
図６中、（ｃ）は圧縮データを示し、各区間が固定長又は可変長で圧縮されている状態を示す。又、同図中、（ｄ）は各区間に対して演算されたアドレス情報を示し、（ｅ）は圧縮パラメータと、アドレス情報と、圧縮データを合成して管理情報を先頭に付加することで得られる圧縮ファイルを示す。管理情報は、辞書ファイル名、辞書ファイルの種別、辞書ファイルの圧縮種別等の、圧縮ファイルを検索する際に使用される情報が含まれる。
次に、ＣＤ−ＲＯＭ入出力装置６にロードされたＣＤ−ＲＯＭ６ａに格納された圧縮ファイルを読み取って所望のデータを検索するファイル検索処理について説明する。ファイル検索処理は、大略インデックスリード処理と、テキストリード処理とからなり、データ伸長処理を呼び出して実行される。本実施例では、説明の便宜上、ＣＤ−ＲＯＭ６ａはＣＰＵ１にファイル検索処理を行わせるプログラムが格納されており、ＣＰＵ１は周知の方法でこのプログラム及び圧縮ファイルをＣＤ−ＲＯＭ６ａから読み取って補助記憶装置３にロードするものとする。
２ａ）インデックスリード処理：
図７は、ＣＰＵ１が行うインデックスリード処理を説明するフローチャートである。同図中、ステップＳ６１は、ユーザが入力装置４より入力したインデックスデータに基づいて、最上位インデックスのアドレス情報を設定する。ステップＳ６２は、伸長処理をコールし、補助記憶装置３内のファイル検索処理を行わせるプログラムから伸長処理を行わせるルーチンを読み出すことで、圧縮ファイル内の最上位インデックスのアドレスを伸長する。ステップＳ６３は、上記インデックスデータに基づき、最上位インデックスの頭文字である上位インデックスのアドレスを獲得する。ステップＳ６４は、伸長処理をコールし、圧縮ファイル内の上位インデックスのアドレスを伸長する。ステップＳ６５は、上記インデックスデータに基づき、次階層の下位インデックスのアドレスを獲得する。ステップＳ６６は、伸長処理をコールし、圧縮ファイル内の上記次階層の下位インデックスのアドレスを伸長する。ステップＳ６７は、最下位インデックスのアドレスの伸長が終了したか否かを判定し、判定結果がＮＯであれば、処理はステップＳ６５へ戻る。他方、ステップＳ６７の判定結果がＹＥＳの場合、処理は終了する。
２ｂ）データ伸長処理：
図８は、ＣＰＵ１が行うデータ伸長処理を説明するフローチャートである。データ伸長処理は、インデックスリード処理及びテキストリード処理により呼び出される。同図中、ステップＳ７１は、ユーザが入力装置４より入力したインデックスデータに基づいて、要求された伸長アドレス、データサイズや記憶領域を補助記憶装置３に記憶して、伸長されたデータサイズに対して充分な大きさの記憶領域を補助記憶装置３内に用意する。ステップＳ７２は、ＣＤ−ＲＯＭ６ａから読み取って補助記憶装置３にロードされた圧縮ファイルがオープンされているか否かを判定し、判定結果がＮＯであると、ステップＳ７３は補助記憶装置３内の圧縮ファイルをオープンする。ステップＳ７４は、圧縮ファイルから圧縮パラメータを読み取り、圧縮パラメータ内の８ビットコードの出現頻度及び１６ビットコードとその出現頻度を読み込む。ステップＳ７５は、８ビットコードの出現頻度及び１６ビットコードの出現頻度に基づき、ハフマン木を作成し、処理は後述するステップＳ７６へ進む。尚、ハフマン木の葉のデータには、８ビットコードか１６ビットコードかの判定用フラグが付加されている。
ステップＳ７２の判定結果がＹＥＳ又はステップＳ７５の後、ステップＳ７６は要求された伸長アドレスに対応するアドレス情報を圧縮ファイルから読み込む。ステップＳ７７は、アドレス情報に基づいて、圧縮ファイルから対応する圧縮データの区間を読み込む。ステップＳ７８は、ハフマン木により圧縮データの区間を伸長し、ステップＳ７９は、８ビットコードか１６ビットコードかの判定用フラグに基づいて、伸長されたデータを上記記憶領域に複写する。又、ステップＳ８０は、圧縮ファイルに対して要求されたデータサイズの伸長が完了したか否かを判定する。
ステップＳ８０の判定結果がＮＯの場合、ステップＳ８１は、次の区間の伸長アドレスに対応したアドレス情報を圧縮ファイルから読み込む。ステップＳ８１は、この次の区間の伸長アドレスに対応したアドレス情報に基づいて、圧縮ファイルから対応する圧縮データの区間を読み込み、処理はステップＳ７８へ戻る。他方、ステップＳ８０の判定結果がＹＥＳであると、処理は終了する。
２ｃ）テキストリード処理：
図９は、ＣＰＵ１が行うテキストリード処理を説明するフローチャートである。同図中、ステップＳ９１は、ユーザが入力装置４より入力したインデックスデータに基づいて、伸長されたデータ中、インデックスと一致する項目をカウントする。ステップＳ９２は、入力されたインデックスデータに基づいて、インデックスの項目ポインタの値をアドレスに設定する。ステップＳ９３は、伸長処理をコールし、補助記憶装置３内のファイル検索処理を行わせるプログラムから伸長処理を行わせるルーチンを読み出すことで、圧縮ファイル内の項目ポインタで示されるテキスト、即ち、辞書データを１区間分伸長する。
ステップＳ９４は、項目ポインタで示される辞書データが終了したか否かを判定し、判定結果がＮＯであると、ステップＳ９５は次の１区間のアドレスを設定する。又、ステップＳ９６は、伸長処理をコールして、圧縮ファイル内の項目ポインタで示される辞書データをこの次の１区間分伸長し、処理はステップＳ９４へ戻る。他方、ステップＳ９４の判定結果がＹＥＳの場合、ステップＳ９７は入力されたインデックスデータに基づいて、全ての項目についての処理が終了したか否かを判定し、判定結果がＮＯであると、処理はステップＳ９２へ戻る。ステップＳ９７の判定結果がＹＥＳであると、ステップＳ９８は全ての項目について伸長された辞書データを表示装置５に表示し、処理は終了する。
尚、ステップＳ９８は、ステップＳ９７の前に行うようにしても良い。この場合、ステップＳ９８は、各項目について伸長された辞書データをその都度表示装置５に表示する。
上記実施例では、説明の便宜上、区間が固定長であるものとした。この場合、データ圧縮効率が良く、又、区間の圧縮前のアドレス情報を圧縮ファイルに格納しておかなくてもアドレス情報を圧縮ファイルから復元可能である。これは、区間が固定長であり、各区間には区間番号が付加されているため、各区間の他の区間に対する相対位置が算出可能であることによる。
他方、上記区間を可変長とすると、データ伸長速度を向上することができる。これは、データの種別や区分に対応して適切な長さの区間を設定することができ、余分なデータを伸長する必要がないことによる。尚、区間を可変長とした場合には、区間の圧縮前のアドレス情報を圧縮ファイルに格納しておく必要がある。従って、区間を固定長とするか、可変長とするかは、データ圧縮率を優先するか、データ伸長速度を優先するかにより決定すれば良い。
又、ＣＤ−ＲＯＭ６ａに格納される辞書ファイルは１以上であれば良い。複数の辞書や百科辞典等に関する複数の辞書ファイルをＣＤ−ＲＯＭ６ａに格納した場合でも、図６中、（ｅ）に示す管理情報内の辞書ファイル名や辞書ファイルの種別から検索したい辞書ファイルを特定することができる。
更に、上記実施例では、データ圧縮にハフマン符号を用いたが、ユニバーサル符号等も使用でき、辞書データを各区間毎に共通な圧縮パラメータで効率良く圧縮できるデータ圧縮方式であれば、ハフマン符号に限定されるものではない。又、データ圧縮及び伸張の対象となるデータは、辞書データに限定されず、インデックスとデータとからなるデータベースのデータをも包含する。
又、上記実施例では、ファイル検索処理プログラムおよび圧縮ファイルを補助記憶装置３にコピーして検索処理を行う説明しているが、これらを補助記憶装置３にコピーせず、プログラムと圧縮ファイルを主記憶装置２に展開し、前述と同様の処理を行うようにしても良い。
尚、上記実施例で用いる圧縮アルゴリズムによって、通常の８ビットでのハフマン符号によるデータ圧縮処理により圧縮率が向上し、ＣＤ−ＲＯＭや補助記憶装置として説明したハードディスクなどの記憶媒体に記録される圧縮ファイルの領域は少なくなる。圧縮アルゴリズムによって圧縮率は向上するが、圧縮ファイルを伸長するための処理時間は通常のハフマン符号圧縮のときとほとんど変わらない。
検索処理にかかる時間は、読み取り装置（ドライブ）のシーク時間と圧縮ファイルのリード時間と伸長処理時間からなる。
上述のように、圧縮アルゴリズムにより圧縮率が向上したことにより、記憶媒体に記録される圧縮ファイルの記録領域が少なくなることから、検索プログラムの検索処理にかかる時間のシーク時間が減少し、その結果、検索速度が向上する。この効果はハードウェアの性能向上に伴い、さらに顕著になる。
以上、本発明を実施例により説明したが、本発明は本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図１】
0003770919.tif 000002
【図２】
0003770919.tif 000003
【図３】
0003770919.tif 000004
【図４】
0003770919.tif 000005
【図５】
0003770919.tif 000006
【図６】
0003770919.tif 000007
【図７】
0003770919.tif 000008
【図８】
0003770919.tif 000009
【図９】
0003770919.tif 000010