Kazuhiro's blog
ようこそ! Kazuhiro's blog
水曜日, 6月 29 2022 @ 12:52 午前 JST
 記事を友人にメールする 印刷用画面 

Britannica 2008購入

general

Encyclopædia Britannica Ultimate 2008を購入しました。 日本の公式サイトから買うとまだ古い(当時)うえに手間賃がかなりかかるようなので、直接通販か公式でない通販サイトを考えていましたが、結局アメリカに行ったついでに現地で買いました。 日本語の百科辞典ソフトを買ったことがない (正確には500円のマイペディアは買いましたが、変換してLookup経由でしか使っていないのでカウントしません) ので他との比較はできませんが、単体で使う分にもそれなりに便利に使えそうです。 また、フルインストールしてしまえばメディアが必要なくなる点は個人的には評価しています。

残念ながら英語をスラスラと読む力はありませんので気軽に読むというわけにはいきませんが、40USD程度で百科辞典が購入できるというのはありがたい話です。

ちなみに、コアな部分に関してはjavaっぽいので、javaを利用すれば他のプログラムからもひけるようになるかもしれません。 javaなんてPerl以上に知りませんけど。

タグ:Britannica

 記事を友人にメールする 印刷用画面 

FreePWINGで複数の副本を持つ書籍を作成する

general

現在、oald7-fpwを改造しています。 主な改造点の一つとして、一つの副本を持つ書籍を三つではなく、三つの副本を持つ一つの書籍を生成するようにしました。 FreePWINGはそのような複数の副本を持つ書籍を作る事も考慮されている事に今更ながら気付いたので、その手順を示したメモを公開します。

 記事を友人にメールする 印刷用画面 

さざなみフォントのGRAVE ACCENTについて

general

先程、mule-jaに「intlfontsに含まれているビットマップフォントのGRAVE ACCENT (U+0060)の字形がおかしい」という報告をしたのですが、実はさざなみフォントでもおかしいという話です。

左の図の上段はさざなみ明朝で4ポイントから順番に1ポイントずつ大きくしてGRAVE ACCENTを並べたものです。 表示はOpenOffice.org Writerでズームを100%にして行っています。 大雑把に3種類くらいの字形が含まれているのが分かると思います。 下段はさざなみゴシックで同じ事をしてみたものです。 明朝のように明らかに字形が変わったりはしませんが、字形がGRAVE ACCENTとはなっていない事が分かると思います。

最後に、IPA明朝で同じ事をしてみたものです。 こっちはちゃんとGRAVE ACCENTになっています。

 記事を友人にメールする 印刷用画面 

掲示板の復活

general

最近、ツールに関する質問を受けたりしていたので以前に削除された掲示板を復活させました。 本当はわざわざ掲示板を復活させるほどの分量ではなかったのですが、ない事によって情報が分散しそうな感じなので借り直すことにしました。

今度は消されないように気をつけますので、皆様もお気軽にご利用ください。

 記事を友人にメールする 印刷用画面 

OALD7の圧縮について

general

Oxford Advanced Learner's Dictionary, 7th Editionに付属するOxford Advanced Learner's Compassのデータのうち、圧縮部分に関するメモです。 基本的には先人による解析をトレースしただけです。 圧縮部分も含めて暗号化はされていないので、伸長できれば比較的容易に調べる事が可能だと思います。 ただし、いわゆるidm形式一般にあてはまるものかどうかは分かりません。

本文テキストを例に出します。CONTENT.tdaが圧縮されたデータになります。圧縮されたファイル名に拡張子tdzをつけたファイル名(この例ではCONTENT.tda.tdz)がそのインデックスになります。

圧縮されたデータは、ファイルの末尾にnull文字をつけたものをいくつか結合したもの(以下チャンクと呼びます)をdeflate圧縮し、それを更に結合させて作成されています。ファイル名は別ファイルに収録されます。

インデックスは8バイトが一組で収録されており、その8バイトのうち、先頭の4バイトに圧縮前のチャンクのサイズが、後半の4バイトに圧縮後のサイズがそれぞれリトルエンディアンで収録されています。

本文データのようなテキストファイルを前から順番に取り出すだけの場合、CONTENT.tda.tdzから8バイトずつ読み込み圧縮されたチャンクのサイズを得て、CONTENT.tdaから圧縮されたチャンクを取得します。圧縮されたチャンクはzlibのinflate関数にかけて展開、null文字を区切りとすることで個々のエントリを得ることができます。

n番目のエントリの位置は同じディレクトリのfiles.datに収録されています。テーブル構造は同じディレクトリのconfig.cftを参照して下さい。尚、エントリの位置は圧縮されたチャンクを伸長して結合した場合のオフセットを指しています。 任意のn番目のテキストを得る場合は、CONTENT.tda.tdzに収録された圧縮前のチャンクのデータサイズから目的のテキストが存在するチャンクを決定してデータを取り出します。チャンクをまたいで存在することは無いようです。 テキストの場合はnull文字に当たるまで読み込んでもよいですが、音声・画像のようなバイナリデータの場合は次のエントリのオフセットも取得して伸長後のデータサイズを決定する必要があります。 個々のバイナリデータのサイズは

(n+1)番目のオフセット - n番目のオフセット - 1

のようになります。最後の-1は末尾のnull文字を削る必要がある為です。また、最終エントリについては次のエントリのオフセットがないので例外処理が必要になると思われます。

タグ:OALD7

 記事を友人にメールする 印刷用画面 

oald7-fpwを公開

general

OALD7のCD-ROMを見ていましたが、どうも期待するようなインデックスは存在しないような気がしてきた(Jammingでもインデックスを作成しないといけないようだし)ので変換ツールをもうちょっとましにして公開してみました。こっちのサイトにはまだ準備していません。

といっても字下げやらを指定しやすくしただけで、あんまりちゃんと調整していません。本家のブラウザと比べてこう見えて欲しい等ありましたら、字下げとか改行に関してはある程度は対応できるかもしれません。それから、Lookupとeblookで使用する場合は20070806以降をお薦めします。

(追記) こっちのサイトにもページを用意しました

タグ:OALD7 FreePWING EPWING

 記事を友人にメールする 印刷用画面 

OALD7をFreePWINGで変換

general

できなくもなさそうという事で、とりあえずテキストだけやってみました。 書式はちょっとだけ整えましたが、ほとんどxmlのタグを取っ払っただけです。

画像がJPG、音声がMP3なので、この辺のデータも入れるのならFreePWINGよりはEBStudioでの変換を試みた方がよいと思います。

個人的には辞書の変換よりは直接ひく方に興味があるのですが、インデックスがなんだかよく分かりません。

タグ:OALD7 FreePWING EPWING

 記事を友人にメールする 印刷用画面 

OALD7について

general

勢いあまってOALD7を買ってしまいました。 付属のCD-ROMをインストールする前に少し調べてみましたが暗号化はされておらず、圧縮されている部分もすぐに (zlibで) 伸長できました。 少し腕に覚えがあればFreePWINGやEBStudio向けの変換ツールを作成する事もそれほど困難ではないと思われます (xmlの解釈が面倒そうですが)。 尚、私は腕に覚えはありません。

変換ツールの作製に興味はあるが、買ってみて変換できませんでしたじゃ困るという人達むけの情報でした。

タグ:OALD7

 記事を友人にメールする 印刷用画面 

wikipedia-fpwを公開

general

前回紹介したウィキペディア日本語版のダンプデータからJIS X 4081な書籍を作るツールの続きです。取り敢えず相互参照できるようになったので公開しました

まだまだ整形がおかしかったり、実体参照やそのままでは収録できない文字の変換テーブルも全然作っていないのですが、いつまでたっても終わらない気がしたので気がついたら修正していくことにします。

正直なところ、Perlを知らない人間が動けばよしで書いたコードです。 変換テーブルの追加や修正、ツール自体の修正等ありましたらお気軽にどうぞ。

タグ:Wikipedia FreePWING EPWING

 記事を友人にメールする 印刷用画面 

WikipediaのダンプデータをJIS X 4081に変換する

general

ウィキペディア日本語版のダンプデータをFreePWINGで処理してみました。 UTF-8な文字とか画像とか音声とか数式とか表とかは全てオミットして、何も考えずに表示できるテキストだけ抽出しています。 他項目へのリダイレクト等を省いて約43万弱の項目があり、HONMONファイルは約1.2GBになりました。

ちなみに、本当は英語版のウィキペディアに挑戦しようと思ったのですが、ダンプデータが圧縮した状態で2.5GBというのを見て一瞬で方針を変更しました。

やっつけっぷりのかなりひどいコードですが、相互参照を扱えるようにできれば一度公開してみようかと思います。

タグ:Wikipedia FreePWING EPWING