# 辞書引きソフト
## こえどLUG 報告
Hiroshi Miura
11, Sep., 2021
slide https://hackmd.io/@miurahr/HklkshYfF
---
## 自己紹介
- 三浦 広志
- OpenStreetMap Foundation Japan 代表理事
- NTTDATAで基盤系 研究開発
- いろいろFreeSoftwareづくり
---
## 近況(1/3)
- EPWING のドライバ EB4Jのメンテ
- WeeklyOSMの翻訳チームに参加しはじめた
- 広辞苑第四版CDROMをヤフオク落札
---
## 近況(2/3)
- Qt非公式インストーラaqtinstallが貢献をうけて劇的に改善
- PythonのC拡張ガイドブックの翻訳開始
- SKKの絵文字辞書を利用開始
---
## 近況(3/3)
- 圧縮ライブラリPyPPMd をスレッド化して、producer-consumer問題を解決
- 圧縮解凍ライブラリ py7zr がConda-forgeに公開
---
# 辞書ひきソフト EBViewer
---
## 機能
とてもシンプルな、辞書検索アプリ
サポートする辞書フォーマット
- EPWING(w/ Graphics, Sounds and Movies)
- EPWING ebz compression (.ebz)
- LingvoDSL (.dsl)
- LingvoDSL dz compression (.dsl.dz)
- StarDict (.ifo .dict)
- StarDict (.dict.dz)
---
アプリのイメージ

---
## 開発の状況
- 言語: Java 11, 16
- ライブラリ: EB4J
- 外字マッピング: furoku-data project
- 開発期間: 2021年8月27日から9月11日
- 最新バージョン v0.4.0 11,Sep.
---
## 特徴: 外字処理
各種 拡張仕様をサポート
- libEB(C)互換付録データ、Unicode拡張
- EBWin互換Unicodeおきかえ
- 標準準拠外字イメージ
---
## EPWINGフォーマットとは
* 1980年代後半から2000年代前半にかけて普及
* CD-ROM辞書や電子書籍のフォーマット
* 文字コード JIS-X0208
* 広辞苑、研究社 英和中辞典など
* プロむけの辞書が現役(海野辞書など)
---
## EPWINGツール
* EBStudio2、EBWin
* Windowsオーサリングツール、ビューア
* EB4J
* Java実装ライブラリ、ツール、ビューア
---
## 外字のUnicode表示
* EBWinではUnicodeで外字を表示する機能あり
* EB4Jでも最新版で同様の機能を提供
---
## EBViewer 開発の動機
* 開発した外字表示機能の動作を確認したい
* マッピング作成を効率的にしたい
---
## 取り敢えず
* 翻訳支援ツール OmegaTのEPWINGプラグインのコードを再利用して簡易ビューア作成
---

---
## 付録データの作成
Target | Source
------------------------- | ---------
大修館ジーニアス英和辞典第5版 | genius.yml
ビジネス技術実用英語大辞典V6.02 | unno602.yml
岩波広辞苑第4版 第5版 | kojien.yml
---
## 付録定義
```
title: 大修館ジーニアス
type: EPWING
subbook:
# title: "ジーニアス英和大辞典"
- name: GENIUS
unicode: true
character-code: JISX0208
stop-code: 0x1f090001
narrow:
range:
start: 0xa121
end: 0xa528
map:
0xA121 : 'á'
0xA122 : 'à'
0xA123 : 'ɑ'
0xA124 : 'ɑ́'
```
---
## GraalVMの活用
- Oracle が開発した 多言語対応の仮想マシン
- JVM言語(Java, Scalaなど)のネイティブコンパイル対応
- 2019年に本番運用可能バージョンが公開された
---
## ツールバイナリの生成
- GraalVM の Native Image ツール
- JavaのCUIアプリがシングルバイナリになる
--
## Native Image
- JVM言語をAOT(Ahead of Time)コンパイル
- VMが組込まれておりスタンドアロン実行可能
- アプリ起動時に初期化処理が不要
- 高速起動
---
## GraalVM 利用の方針
- EB4J-TOOLS というCUIツールに適用
- GraalVMがGUIアプリ対応したら、辞書引きツールにも適用したい
---
## デモ
実際の動作デモをご覧ください
---
## 今後
- 一旦、ベータとしてリリース
- メンテナンスのモードにします
- 細かい不具合はすこしある
- 協力者はウエルカム
{"metaMigratedAt":"2023-06-16T10:09:12.371Z","metaMigratedFrom":"YAML","title":"Koedolug 20210911","breaks":true,"description":"View the slide with \"Slide Mode\".","contributors":"[{\"id\":\"a39fef58-9b07-42cd-973a-4a7e5bdc85cf\",\"add\":4056,\"del\":1382}]"}