2011年09月14日(水)
IEICEの2011年度ソサイエティ大会のProceedingsをHack
現在,北海道大学にて,電子情報通信学会(IEICE)のソサイエティ大会が開催されています.
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」に指定してください.
- シェルスクリプトを実行してください.そこそこ時間がかかる(僕の環境だと30分くらい)ので注意してください.処理が完了するまでお待ちください.
- 次に,2つめのシェルスクリプトを使います.1つめのシェルスクリプトの処理が完了していない場合は,先に進まないでください.
- まず,2つめのシェルスクリプトをダウンロードしてください.
- 次に,このシェルスクリプトの冒頭にある「ROOT_DIR」に.1つめのシェルスクリプトで指定したのと同じディレクトリを,1つめのシェルスクリプトの処理が完了している状態で,指定してください.
- あと,処理中,一時ファイルを作成するので,その場所もこのシェルスクリプトの冒頭にある「TMP_DIR」に指定してください.
- シェルスクリプトを実行してください.そこそこ時間がかかる(僕の環境だと20分くらい)ので注意してください.処理が完了するまでお待ちください.
- できあがりです.
ひとまず手元の Mac (Snow Leopard) で動作確認しております.
比較的標準的な UNIX 系(って言えば伝わります?)プログラムしか使っていないので,他の環境でも動作するのではないかと思います.Windows でも cygwin で使えるかもしれません(未確認).
あ,何カ所かで md5 を使っているので,md5sum な環境では修正が必要です.
なお,当スクリプトは全て自己責任においてご利用ください.当方は一切責任をとりません(とれません).
以上になります.できあがったProceedingsで,快適なソサイエティ大会をお楽しみください.
来年03月の総合大会の際には,このようなHackなしに,使いやすいProceedingsになっていることを祈ります.