2012年03月12日(月)
IEICEの2012年03月の総合大会のProceedingsをHack
# タイトルに「の」が連なっていて,Word君に怒られそうですが,とりあえずこのまま.
来週,岡山大学にて,電子情報通信学会(IEICE)の総合大会が開催されます.
前回のソサイエティ大会と同様に,Proceedingsを少し使いやすくするHackスクリプトを作りました.Proceedingsに含まれているHTMLが少し変わっていたため,多少変更を余儀なくされましたが,少しの修正で済みました.
このHackを動かすモチベーションとしては,前回の記事からの引用になりますが,以下のようなものです.
IEICEのソ大や総大のProceedingsは,著者名・所属機関・キーワード・セッションなど,様々な場所からPDFにリンクされているのですが,リンク先がPDFのため,逆方向のリンクが存在しません.(PDFからURLへのリンクは可能ですが,Proceedingsの場合は相対的なPATHで指定できないとうまく動きませんし,そもそも論文PDFの中にあれこれ追記するべきでもありませんしね)
そのため,非常に使いにくいです.たとえば,ある研究者の発表を聞きたいと思ったときには,「著者索引」から名前を見つけることができ,その論文PDFを参照することまではできます.
しかしながら,その発表を見に行くついでに,同じセッションにおもしろい発表でもあればそれも聞いてみようかな,論文PDFを確認してみるか,と思ったときに壁にぶち当たります.
現状のProceedingsでは,「著者索引」から辿り着いた研究者の名前が示された欄に付記されている「A-1-1」のような番号(ここでは仮に「論文番号」とします)を一度控え,次にトップページの「プログラム」から該当するソサイエティを選び,さらにセッションを選び,その中からさらに時間帯を探すことで,ようやく達成されます.
はっきり言って,使いにくいです.
そんなわけで,Proceedingsを少しでも使いやすくするために,今回もProceedingsを形成しているHTMLファイルを書き換えてしまいます.
HTMLファイルをどのように書き換えるかと言いますと,前回と同様,主に以下の2つです.
- HTMLの中で同じPDFにリンクしているところ同士を相互にリンクします.たとえば,「著者索引」からAさんを見つけたときに,Aさんが発表するセッションの発表一覧を,すぐに確認できるようになります.
- 上記の相互リンクに加えて,同じ部分に,時間割のような表になっている「講演日時・会場一覧」とのリンク(一部は相互リンク)も作成します.
具体的には,以下の2つのスクリプトによって実現します.スクリプトが2つに分かれているのは,段階的に作ったからで,1つのスクリプトにまとめることも可能です.が,面倒なので放置.
大まかに使い方を説明します.
- DVD-ROMのProceedingsの中身を,一度,HDDなどにコピーしてください.HTMLを書き換えるので,書き換え可能な領域にある必要があります.
- まず,1つめのシェルスクリプトを使います.
- まず,1つめのシェルスクリプトをダウンロードしてください.
- 次に,先ほどコピーしたProceedingsの「Settings」ディレクトリを,このシェルスクリプトの冒頭にある「ROOT_DIR」に指定してください.
- あと,処理中,一時ファイルを作成するので,その場所もこのシェルスクリプトの冒頭にある「TMP_DIR」に指定してください.
- シェルスクリプトを実行してください.そこそこ時間がかかるので注意してください.処理が完了するまで,論文を読むなり食事を摂るなりして,お待ちください.
- 次に,2つめのシェルスクリプトを使います.1つめのシェルスクリプトの処理が完了していない場合は,先に進まないでください.
- まず,2つめのシェルスクリプトをダウンロードしてください.
- 次に,このシェルスクリプトの冒頭にある「ROOT_DIR」に.1つめのシェルスクリプトで指定したのと同じディレクトリを,1つめのシェルスクリプトの処理が完了している状態で,指定してください.
- あと,処理中,一時ファイルを作成するので,その場所もこのシェルスクリプトの冒頭にある「TMP_DIR」に指定してください.
- シェルスクリプトを実行してください.そこそこ時間がかかるので注意してください.処理が完了するまで,論文を読むなり食事を摂るなりして,お待ちください.
- できあがりです.
今回のスクリプトの処理時間ですが,当方の環境が他の処理もしていたことも影響しているかもしれませんが,前回よりかなり時間がかかってしまいました.使われる方は,ご注意下さい.
追記:当方の環境では,1つめのスクリプトで40分前後,2つめのスクリプトで30分前後,それぞれかかりました.
ひとまず手元の Mac (Lion) で動作確認しております.
比較的標準的な UNIX 系(って言えば伝わります?)プログラムしか使っていないので,他の環境でも動作するのではないかと思います.Windows でも cygwin で使えるかもしれません(未確認).
あ,何カ所かで md5 を使っているので,md5sum な環境では修正が必要です.
なお,当スクリプトは全て自己責任においてご利用ください.当方は一切責任をとりません(とれません).
以上になります.できあがったProceedingsで,快適な総合大会をお楽しみください.
今年09月のソサイエティ大会の際には,このようなHackなしに,使いやすいProceedingsになっていることを祈ります.