PDIC/Unicode 開発メモ

英辞郎第11版発売中!

■Download

PDIC/Unicode Ver.5.14.18 試作版 2023/9/18

正式版はこちら

[PR] 全文インクリメンタルサーチソフト - PDICとは関係ありませんが、公開中。ソースコードの検索などに便利。英辞郎のような巨大テキストファイルをサクサク検索

■PDIC/Unicode 5.14予定

エラー時のレポート機能

これまではエラー発生時簡単なメッセージが出るだけでしたが、詳細なレポートを作成・送信する機能を追加してあります。(開発版のみ)

簡易HTMLの強化

ポップアップ検索ウィンドウの強化 【一部を除き済】 バグがとれない限り正式版では対応しない予定

チェコ語の変化形への対応 【済】

こちらに試用版の辞書が公開されています。活用形の多いチェコ語ですが、ポップアップ検索などで多くの単語がヒットするようになっています。
Ver.5.12.x, 5.10.x: 正式版のチェコ語辞書のみ対応
Ver.5.14.x: 正式版および試作版のチェコ語辞書に対応

ロシア語の変化形への対応 【済】

ドイツ語の変化形への対応 【対応中】

ファイルリンク

ポップアップ検索の強化・改善

検索機能の強化

内蔵ブラウザによるHTMLインライン表示

辞書設定ファイル(PDI)の機能強化

辞書ファイルにURL、著作権情報などの埋め込み

辞書ファイルには拡張ヘッダー部があり、ここに任意の様々なデータを埋め込むことができるようになって います。

ネット共有辞書の強化

単語テストの強化

その他

FAQ

■PDIC for Android!

Android版情報はこちらへ

■会議室

PDICの仕様に関する議論・要望など。

PDIC 開発会議室


以下、検討課題

英語版のリリース

英語版はこちら

アラビア語など、右→左言語対応(自動ON/OFF)

Unicode アラビア語フォント
Windows でアラビア語

ポップアップ検索の改善

RichHistory

表示改善

履歴情報の共有

→単純にファイルで共有する程度にとどめる

その他

Unicode の正規化
- 現状、正規化を必要とするケースは非常に少ない
- 正規化を伴う検索は遅くなる
- 多くの場合無駄な処理となるためオプション扱いにする必要がある。ユーザーにはわかりにくいオプションであり、必要なオプションであるかどうかほとんどの人は判断できな い。
- 検索時に正規化するのではなく辞書作成時に正規化すれば、検索も早くなる
ということで検索時にはUnicodeの正規化は不要、という結論です。
ただし、ポップアップ検索では対象となるテキストが必ずしも正規化されていないため、正規化したテキストでの検索などの工夫が必要ではないかと考えていま す。

■技術情報

[TechInfo] 辞書の仕様書

むか〜しの辞書形式も一緒に記述していたため混沌としてきました。→Unicode専用に書き直してい たのですが・・・誰か書き直してください。(笑)
辞書の仕様ページ

[TechInfo] ファイル経由によるDDEコマンド

FirePop!とのプロセス間通信として使用されています。
詳細はこちらへ

.ndファイルの仕様 - ネット共有辞書用の作業ファイル

見出語部 - LastWordId (10桁の整数)
訳語部 - 登録用見出語
用例部 - status \t 新しい見出語
発音記号部 - LastId
単語レベル - コマンド番号

拡張ヘッダーに記録される内容

.tsファイルの仕様 (Web辞書検索機能用のタイムスタンプ辞書)

見出し語 - そのまま見出し語
訳語 - time()関数と同じ時刻系(GMT)の数値(文字列) - 2038年問題有り。その頃はPDICなんて無くなっているでしょう。。

nkf

文字コード判別&文字コード変換。
NKFをDLLで使用するつもりですが、本家(?)に あるDLL wrapperは、かなり酷い作りになっているので作り直しました。

download nkfu-2.0.9.zip - 仮リリース・作成途中

C++Builder5がある場合は、nkfudll.bprを開いてbuild。
無ければ、nkfudll.cをメインファイルにして、必要なファイルをリンクしてできあがり。(要UNICODE define)
DLL consumerは、nkfu.h をincludeして利用してください。(nkf.hやnkf32.hではありません)

注意事項としては、APIが返してきたポインターを後生大事に保存してはいけません。
(今時そんなコード書く人はいないと思いますが)

DLLテストプログラム nkf-dlltest.zip - これもまだ作成中

Web辞書検索

Web辞書検索・ダウンロード
Web辞書検索モジュールの開発方法

WinInetの制約

・同時に複数のスレッドからHTTP requestを発行する場合はINTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE が必要かもしれない。
・同時に同じサーバーへは2つの接続まで。INTERNET_OPTION_MAX_CONNS_PER_SERVER | _MAX_CONNS_PER_1_0_SERVER を使用する。
それよりもWinHTTPを使った方が良いだろう。→WinInet to WInHttp porting
出 典 出典

WInInetとWinHttpは似ているが、ProxyはInternet Explorerの設定を引き継がない、などの問題があり、簡単にはportingできなさそう。

RTL - アラビア語などの右→左言語

HTML に関して

フリー素材

http://sozai.7gates.net/

■実現予定の機能概要

RichHistory

rich history+bookmark+word test+highlight marking+browser
検索結果表示のブラウザーによる表示の可能性について
利点:
・ブラウザの持つ表現力を利用でき、それを生かした見やすい検索結果の表示ができる
・ブラウザが対応しているデータならどんなものでも表示可能

欠点:
・従来の単語単位の無限スクロールができなくなる(ページ単位のスクロール)
・基本的にマウス操作(キーボード処理を補完する仕組みが別途必要)

履歴情報の機能性向上 - rich history
ポップアップ検索した単語は忘れやすい。検索した単語を含む文の意味が理解できると、検索した単語はそ の時点で忘れている。

そのために考えられる対策:履歴閲覧機能の拡充

 - 履歴情報にdate,action情報を追加(タブ区切り形式)
 - 辞書にない単語はgray表示
 - 辞書にない単語のみを選択

履歴情報の共有機能

普段は自分のPCでPDICを使ってwebサイトやWordドキュメントや色んな文書を検索して読む。
PDICでマークした暗記必須単語や、検索履歴を学習サイトに情報をアップ。
それを元にした単語テストや、関連するテストをwebサイトで実施。PDICでやるよりずっとユーザーフレンドリーで学習が出来る。
webサイト側では学習に使っている単語をキーワードにして広告を出すなり、何か面白い情報を出せば楽しく学習が出来る。

要件
・辞書情報の共有はグループ単位で設定。グループには自由参加、承認必要など設定が可能
・登録された情報は登録ユーザーであれば自由にweb上で閲覧可能
・その人専用の辞書共有アカウントも可能
・1つの共有辞書ファイルで複数のサーバーと共有

利点:
・リアルタイムで他人と履歴を共有できる(何のため?)
・・・あまり利点が無さそうなので却下

現在のステータス:
散在している自分の検索履歴を一つにまとめられるのはいいと思う。が、必ずしもそれが必要だとは思わない。
他人と履歴を共有、というのもある程度条件がないとあまり意味がないだろう。(昔のブックマーク公開が流行ったのと同じで最初だけ)
ということで、保留気味。

「検索ランキングに参加しますか?」でOKした人は履歴内容をサーバーにアップ。ランキング見たって何も面白くな い。。
それより、それぞれの検索語に対してどういうWebサイトで検索したとか、検索に付随する情報のほうが面白いけど、それは難しいな。。
検索履歴はとても有益な情報なのに、有効に利用する方法が見つからない。。(現状単語テストだけ)

辞書設定ファイルの仕様改善

同一辞書グループにインストールできるように

・UpgradeKeyはカンマ区切りで複数保存可能
・インストール先を各辞書設定ファイルごとに選べる(そうしないと危険)
・万が一pdsetup.iniがすでにあった場合→UpgradeKeyをみて確認→異なる場合変更せよmsg

次の理由から却下

・辞書グループ共通の設定で不一致が発生し、混乱を与えやすい。(フォント設定、言語プロセッサID不一致などなど)
・現状のレジストリ構成では対応でき無さそう。
・PDIが普及して使われ方によって対応を考えることにする

言語プロセッサ

現状のPDICでは英語に特化した作りになっていますが、この仕組みにより様々な言語の検索が適切に、 便利に行えるようになります。

言語プロセッサ(別ページを用意)

辞書編集Undo機能

辞書ファイル名+.undo というファイルを作成。
PDIC上で行った一連の編集作業(ネット共有辞書からの更新も含む)を保存し、過去へ戻れる。
万が一辞書破壊が発生しても、履歴に残っている情報なら戻せる。
履歴を閲覧し、特定の単語だけ過去に戻せる。

連絡先: