良い研究は良いサーベイにあり,故に快適なサーベイ環境を作る


はじめに

良い学術研究をするにはサーベイが重要であることは言うまでもないでしょう.しかし,自分が読んでいった論文を管理するのは難しいし,例えばいちいちダウンロードしてGoogle Driveにフォルダ分けしてアップロードして,というのは面倒です.そのため,最も効率的にかつ最もストレスがないであろうサーベイ環境の構築についてまとめます.

もっとも,このように形から入るのは二流で,究極的に言えば,読んだ論文の大まかな内容は全て頭の中に入っていて,自分の頭の中で検索ができるのが理想でしょう.形にだけ拘るよりも,自分の血肉になるほど読み漁った方がよっぽど自分のためになるものです.
しかし,快適なサーベイ環境があればそれに越したことはありません.電車の中やちょっとした隙間時間に論文を読めたり,一本の論文を読むのにかける時間を短縮できたりもするかもしれません.この記事では,その点だけにターゲットを絞っているということをご承知ください.

満たしたい要件

  • メタデータ(著者・年度・投稿先など)によってフォルダに分けて文献を整理したい
  • 色々なPC・スマホから同じ論文にアクセスしたい
  • 手書きで書き込みをしたい

ツール

全体像

Mendeley

Mendeleyというのは,研究者の間で広く使われている論文・文献管理ツールです.ダウンロードした論文から自動的にメタデータ(著者・年度・投稿先など)を抽出して(一部日本語論文などは手動で行う必要があるが),フォルダに分けて整理をすることができます.

東京大学にご所属であれば、学生・教職員を問わず、どなたでも無料で機関版を利用できます。2024年度末まで(予定)。

https://www.dl.itc.u-tokyo.ac.jp/gacos/faq/men.html
この記述にある通り,東大のメールで登録すれば機関版が利用できるようです.無料版と機関版の比較はこのページに載っていますが,機関版の最大のメリットはおそらくディスク容量が100GBまで使えるということでしょう.Mendeleyは読んだ論文のPDFデータオンライン上に保存して別端末からでもアクセスできるのですが,この容量が100GBもあるということです.個人用は2GBまでしか容量がありません.ちなみに,PDFデータではなくメタデータのみをアップロードすれば容量を圧迫しませんが,その場合は別端末から論文の中身を読むことはできません1PaperShipを用いてiPadから論文を読む場合は,PDFデータもアップロードするように設定しておく必要があります.

Mendeleyを使いこなすには,「Mendeley 活用術」などでググればたくさん出てきますし,東大のホームページにもスライドが載っています.

アカウント登録・Mendeley Desktopのインストール

まず,Webページにアクセスし,"Create a free account"から学内メールを使ってアカウント登録します.当たり前ですが,このメールを使わないと機関版がアクセスできません.
今回,メインPCのOSはUbuntuを想定しているのでこのページから64 Bit版をダウンロードして展開します.その他,サブとして使うPCやiPhoneにも,OSに応じてダウンロードしておきましょう.

Mendeleyの論文PDFをgoogle driveに保存する

初期設定では,MendeleyにPDFをインポートしてもMendeley内にPDFのコピーは作成されません.したがって,Mendeleyにインポートした後で元のPDFを削除すると,MendeleyからもPDFは削除されてしまいます.
そのため,Mendeley DesktopがインストールされているPCのうち最低1台は,ローカルにそのPDFファイルを保存しておく必要があります.

メインで使いたいPCのMendeley Desktopを開き,Tools->Options->File Organizerタブを開きます."Organize my files"をチェックすると,指定したフォルダにPDFがコピーされるようになります.その下の"Sort files into subfolders"や"Rename document files"にチェックを入れると整理して保存してくれるので便利です.

UbuntuにGoogle Driveをマウントする

しかし,ファイルをローカルに保存すると,ローカルPCの容量を圧迫してしまいます(さほど大きな容量ではなければ問題ないのかもしれませんが).また,PDFデータがGoogle Drive上にあれば,共有したり,パッとアクセスできたりと何かと便利なわけです.
そこで,保存先をクラウドストレージにしたいと思うわけです.
具体的には,Ubuntuのディスク上にGoogle Driveをマウントして,先程説明したFile Organizerの保存先をそのフォルダに設定します.

Google Driveのマウントには,google-drive-ocamlfuseを使います.google-drive-ocamlfuseとは,Ubuntu上のローカルフォルダとgoogle driveの内容を同期するアプリケーションです.Mac, WindowsでいうところのGoogle Drive for desktop,Drive File Streamのようなものです.さらに,以下にあるようにネットワークマウントによってドライブにアクセスし,ローカルのディスク容量を圧迫しません.

「google-drive-ocamlfuse」はGoogleドライブをLinux上でマウント出来るソフトウェア。
Googleドライブのデスクトップ向け公式ソフトウェアでは非同期になり、端末側にもデータを保存する容量を要求しますが、こちらのソフトウェアはネットワークマウントを行う。
そのため、少ないストレージ容量の端末でも容量を気にせず使用出来るというメリットがある。

まず,このサイトにあるように,以下のコマンドでインストールします.(ちなみに複数のgoogleアカウントをマウントして使い分けたい場合はこのようにします.)

install
$ sudo add-apt-repository ppa:alessandro-strada/ppa
$ sudo apt-get update
$ sudo apt-get install google-drive-ocamlfuse
$ google-drive-ocamlfuse # ブラウザが開くのでgoogleアカウントを選択して認証する

マウント先はどこでもいいですが,ここではホームディレクトリ直下のgoogle-driveというフォルダにします.

$ cd
$ mkdir ~/google-drive
$ google-drive-ocamlfuse ~/google-drive

試しに~/google-driveの中を除いてみると,自分のgoogle driveの中身と同期していることが分かります.

ex. 空でないディレクトリにマウント

マウント先は,普通は空のディレクトリを指定し,わざわざ中身があるフォルダを指定する必要はないと思いますが,もし空ではないディレクトリにマウントしようとすると,次のようなエラーが出ます.

$ mkdir ~/google-drive
$ touch ~/google-drive/hoge.txt
$ google-drive-ocamlfuse ~/google-drive
fuse: mountpoint is not empty
fuse: if you are sure this is safe, use the 'nonempty' mount option

これは,文字通りマウント先が空ではないというエラーですが,このissueにあるように-o nonemptyをつけるとそのフォルダにマウントできます.

$ google-drive-ocamlfuse ~/google-drive -o nonempty

ちなみに元々のファイルが上書きされてしまっているわけではありません.以下のようにアンマウントしてみると,元のファイルが残っていることがわかります.

$ fusermount -u ~/google-drive
$ ls ~/google-drive
hoge.txt

とはいえ,もっと複雑なフォルダの場合ではデータが消えるかもしれないため,わざわざ空でないディレクトリにマウントする必要はないでしょう.

Ubuntu起動時に自動でマウントする設定

google-drive-ocamlfuseによるマウントは,シャットダウン時に自動で切れてしまうので,PC起動時に何もしないとマウントがされません.先程Mendeleyのローカル同期先をマウントフォルダにしたので,マウント先が存在しない状況でMendeleyを開くと,フォルダが見つからないという不整合が起きます.
そこで,PC起動時に自動的にマウントをするような設定をする必要があります.

そこで,crontabによる自動起動を設定します.

$ crontab -e

ターミナルで上のように打ち込むと下のようにファイルが開くので,末尾に下のような記述を追記して保存します.これは文字通り,リブート時にマウントを実行するという意味です.

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line indicating
# with different fields when the task will be run and what command to
# run for the task
#

-----(略)-----

@reboot google-drive-ocamlfuse ~/google-drive -o nonempty

ちなみに,上のコマンドを初めて実行するときには,エディタを選択する画面が開きます.nano, vim, emacsなどが選べるが,何も選択せずにEnterを押すとnanoになります.
改めてエディタを変更したくなったら,このサイトにあるように,$ select-editorとコマンドを打てばいいです.

注意点

crontab -eで記述する場合,最後に改行を入れないと以下のようなエラーが出ます.

crontab: installing new crontab
new crontab file is missing newline before EOF, can't install.
Do you want to retry the same edit? (y/n) 

yを押して再度編集をして,改行入れるとエラーを吐かずにcrontabがインストールされます.

$ crontab -l

として先程のファイルが表示されればおk.

PaperShip

最後に,iPadで手書きをするためのアプリです.

Mendeleyは論文の管理には最適なのですが,手書きで文字を書き込んだりすることはできません.(メモ機能はあります)
そこで,iPadで論文に直接書き込みをしたいというニーズを叶えてくれるのが,PaperShipであるわけです.PaperShipは,Mendeleyのフォルダ構造などを完全に同期しながら,手書きで書き込みができるノートアプリです.同期しているので,書き込んだ内容はMendeleyにも反映されます.

PaperShipはApple Storeからインストールすることができます.2021/08/14現在で$9.99かかる有料アプリですが,課金の価値は十分にあるでしょう.
アプリを開いてMendeleyアカウントでログインすれば,自動的に同期されるようになります.あとは,Apple Pencilで書き込んだり,テキストボックスを入力することもできます.

(参考) 【iPad Pro ×PaperShip】Mendeley管理のPDF論文に快適に書き込む方法

Mendeley Webで確認

ちなみに,Mendeley Webで Settings->Third-Party Apps を開くとPaperShipが同期できているか確認でき,ここから同期を停止することもできます.


  1. デフォルトではPDFデータも自動でアップロードされるようになっています.もしメタデータのみに変更したければ,デスクトップ版の"My Library"欄で"All Documents"を選択した状態でその隣の"Edit Setting"をクリックし,適宜設定しましょう.