
英語の語彙定義をデータベース辞書化
masa英文法が満足いくレベルに到達できたため、英語の語彙をどのように定義していくか、自分の中で決めることができました。
今は、複数のメモアプリに、その時思いついた定義が散り散りに、フリーフォーマットで記述し残してあります。ただ、語彙定義も進化するため、古い定義から最新の定義と混在して自分でもわからなくなってきました。
(古い定義が多くて要見直しが大半です)
以前、Excelなどの表計算アプリでまとめたりもしたのですが、
視認性や使い勝手がシックリこなくて使わなくなります。
結局、メモ帳アプリが一番使い勝手が良くて多用しています。
だから、メモ帳アプリで自分ルールに沿って語彙定義を書いて、データベースに登録していくことにしました(先日からの流れでデータベース熱が続いていました)。つまり、「自分のための辞書」をしっかり作ります。
語彙定義に限らず、例文も残したいのですが、
Excelのように、定型一覧にはしたくありません。
(列の幅が例文の幅となるのは避けたいのです)
一語の定義のように短いものは、横に並べて書いたり、
例文の定義は長いから、縦に並べて書いたり、
要は、画面内に多くの情報が収まるように視認性を確保しながら入力したいのです。
少し心配だったプログラム開発も、最低限欲しいところまでは出来ました。
プログラム勘が衰えているため、初歩的なところでつまづきましたが、
それほど難しいことはしていないため、所要時間は5〜6時間でしょうか。
それよりもiPadでもWindowsでも可能な仕組みを整えるのが大変でした。
でも一番の問題だったのは、メモ帳アプリでの語彙定義の書き方を決める作業でした。ストレスにならない程度の入力ルールにし、ある程度そのままでも語彙定義が見やすい書き方にする。これまで何度もチャレンジして挫折してきた難関でしたが、ようやく使えそうなものが出来た予感がします。
まだ改善の余地がありますが一先ずは。
これで安心して語彙定義をまとめていけます。
しばらくは、フリーフォーマットのデータを見直しながら移行する作業です。
以下参考までに、データベース化して使う流れです。ざっくりした内容ですが。
プログラム開発は10年以上まともにやっていないため、今後のメンテナンスを考えて、開発部分は必要最小限に留めています。使いやすそうなPythonも、少し試した程度の初心者なため、メンテナンスを考えると不安があり避けました。
PythonやWindowsのPowerShellを見ていると、テキストの主流が「BOMなしUTF-8」エンコードになっていると感じます。それでもまだ、改行コードもエンコードも独自路線のWindowsには気を使いますね。過渡期だからか混在しているから余計に。。。
【対応したい環境】
・Windows10/11
・iPadOS18
【必要なアプリ】
・メモ帳(エンコードutf8形式でテキストファイル作成)
Windows: サクラエディタ
iPad: LiquidLogic
・SQLite through CUI (sqliteコマンド)
・SQLite through GUI
Windows: DB Browser for SQLite
iPad: SQLite Mobile Client
・Windows/iPadでのコマンド実行環境
Windows:コマンドプロンプト/ubuntuシェル
iPad: iSH (based on Alpine Linux)
・gawkコマンド
・grepコマンド(メモ帳アプリのgrep機能でもよい)
【作成必要なプログラム】
・テキストファイルからimportファイルへの変換 with gawk
・DataBaseテーブル作成/検索SQL文 on SQLite/SQLite Viewer
・バッチプログラム/Shellスクリプト
(gawk実行し、複数importファイルも1つのimportファイルへ)
【手順】
①SQLiteで語彙定義テーブルを作成
→ 必要なデータ項目を決定しDataBaseファイルが出来る
②決めたルールに従い、メモ帳アプリで語彙定義を入力
→テキストファイルが出来る
③gawkを使って、テキストファイルからSQLite へ向けて変換
→ 複数importファイルが出来る
④全importファイルの統合
→ 1つのimportファイルが出来る
⑤SQLiteのDataBaseファイルに、④で作ったファイルをimport
→ DataBaseファイルに全語彙定義を登録(データベース化)
⑥SQLiteのDataBaseファイルに対して、作ったSQL文で検索
→自分のデータベース(辞書)から語彙を調べる
※テキストファイル1つにimportファイル1つを対応させる。
※DataBaseへは直接語彙定義の追加や変更は行わずimportと検索のみ。
importの都度、DataBaseは一旦全削除し、作り直す。
※マスターファイルはテキストファイルとし、保存管理する。
importファイルは作業用の中間ファイルですが、このimportファイルにgrepやgawkで検索できるから、それで十分ならSQLiteのデータベースは不要なため、②③だけの手順があればよい(私が今作れているのはこの部分のみ)。
ただし、grepは列検索には向かない。
gawkは検索用にプログラムが必要(列検索くらいなら簡単)。
検索結果を見やすく整形するなら、gawk が良さそうです。
私は、SQL文で検索した結果を、gawk で整形して出力する方向でいきそうかな。だから①〜⑥+gawk整形出力の手順になりそうです(SQLite through GUI を使わない方向)。
【語彙定義データ項目 for DataBase】
Excelの一覧イメージで、1行に1つの語彙定義です。
1つの語彙定義には、以下8項目(8列)の情報を持ちます。
定義の取りこぼしを避けるために、必須なのは ⑤words/e.g.くらいで、
それも重複があっても構わない。かなりゆるい制約です。
-----------------------------------------------------------------
①定義年月日: 新旧を判断できるよう参考情報として
②出典: 自分の場合にも使う(最新定義はmasa, 旧定義はmasa-old)
③分類: 他の語彙定義と紐付けるための関連キー(完全一致検索用)
→「例文」という分類を作るつもり
④検索キー: 他の語彙定義と紐付けるための緩い関連キー(あいまい検索用)
⑤words/e.g.:1語、定型フレーズ、例文など
⑥直訳: 辞書で可能としている品詞情報をここに含めるつもり
⑦意訳
⑧補足
-----------------------------------------------------------------
項目数がありすぎても語彙入力が面倒だったため、最小限にしました。
⑤〜⑧の情報が主体で、①〜④が付加情報(無くても構わない)です。
①定義年月日と②出典と⑤words/e.g.の3項目で一意キーになりそうですが、特にチェックしません。もし余分があっても検索時に排除するだけ、という考え方です。データが増えていけば改善するかも。
出典のmasaを増やしていくのが最終目標ですが、自分の定義になる前の情報も登録できるように考えました。そして古い情報も念のため残していくことで、後で何かの気づきを得る可能性を残しています。
見たくなければ検索で絞れますから、先ずはデータを増やしていくことを優先します。
ちなみに、以下 iPad アプリは有料版もありますが、無料である程度使えます。
*LiquidLogic (メモ帳)
同時に開けるファイル数とファイルサイズに制限あり。
サブスク版で1年間使ってみて、無料版に戻しています。
ファイルを沢山開けても閉じる操作が大変で。あとはファイルサイズ次第。
*SQLite Mobile Client
SQL文を実行して、作ったり表示したりだけなら無料で十分使えるはず。
Shortcutアプリでのactionアイテムが必要なら有料版です。
買い切りだったため有料版にしました。