Refsort/Ruby v3.80 released
辞書参照型ソーティング・フィルタ Refsort/Ruby (新しいほうから *1 *2 *3 *4 *5 の改訂版 v3.80 をリリースしました.開発を休止して3年も経っていたのですが,今回は緊急のバグ修正です.
今回の修正内容は以下の通りです.
- 世界統一鳥類リスト AviList のマスターファイルには一例だけ記号 '#' を含むフィールドがあり,それから作成した辞書ファイルにおいて,この記号を Refsort がコメントと判断していることが発覚しました.具体的には各フィールドが,
0: Tityra leucura
というレコードの中の,第6フィールド(Refsort ではフィールド番号はゼロから始まります)の最後の方 “#1035” というのがそれです.このハッシュ記号は英米圏では number という意味で使われるので特に間違いというわけでもなく,今後もこのようなケースに遭遇する可能性は十分にあります.
1: White-tailed Tityra
2: オジロハグロドリ
3: "Pelzeln, A, 1868"
4: "Rio Madeira-Rio Tapajós interfluvium, south-central Brazil"
5:
6: "Tityra leucura is recognized as a valid species based on available evidence. Sometimes treated as a synonym of T. inquisitor, or considered to be of hybrid origin (inquisitor x albitorques), differences in plumage and bill size are more consistent with species status (Whittaker 2008). Genetic analysis of the type specimen would provide additional perspective on the species status of T. leucura. A recently photographed and videotaped individual summarized in SACC proposal #1035 strongly supports its specific status."
7: avibase-8B9C1238
これを救済できるよう苦肉の策でスクリプトを修正しました.辞書ファイル中,フィールド内部の記号 '#' をバックスラッシュでエスケープして '\#' とし,コメント記号と見なされないようにしました.そのフィールドを出力する場合にもエスケープしたまま '\#' と出力されますが,出力の再利用を考えるとその方が合理的なので,エスケープを解除してはいません.この手続きは入力にも適用されるので,入力中に '\#' が含まれていればそれもコメントとはみなされずそのまま出力されます. - この修正に関連して, AviList v2025b に対応した辞書ファイルも差し替えますので,今後は新しい辞書ファイルをお使いください.
- オプションの処理に関して細かな最適化を行いました.
このスクリプトは最新の Ruby 4.06 で動作することを確認しています.
Refsort/Ruby とそれに関連するコンテンツのアーカイブを Microsoft One Drive に置いています.画面右側コラムの Archive の中の Refsort/Ruby Archive をクリックしていただくと,私の OneDrive 上に設けたライブラリが開きますので,そこから過去分も含めてファイルをダウンロードすることができます. Refsort 本体の refsort.rb は refsort_v380.rb というファイル名でアップロードされていますので,ダウンロード後に refsort.rb に変更するとよいでしょう.改行コードは LF になっていますので適宜変更してお使いください.エンコーディングは純粋な US-ASCII ですので,そのままでよいでしょう.
なお Refsort の開発自体はすでに終了しており,今回のようにバグが見つかった場合にのみ修正版を出すことにしています.現在は IOC List や AviList などのデータに対して分類学上の Query (問い合わせ)を行えるようなツールの開発を進めており,ある程度目鼻が付いたら早いうちに紹介したいと考えています.





最近のコメント