おなかが空きました

お風呂が沸きました

Notion(&Paperpile)で水平管理&ネットワーク構造を持つ研究環境をオンラインに作る

はじめに

読んだ文献をまとめ、自分の関心に沿うように別のページにまとめて…としていると、気づいたらどこに何があるかわからないし、書いたもの同士が結びつかない、というような悩みは勉強をしている人ならおそらく誰でもぶつかるものだと思います。

このブログ記事では、私が暫定的に見つけた最適解を共有することで、お悩みお助け隊をしつつ、改善策を募ることを目的にしています。

注意事項

Paperpileという文献管理ソフトを使っていることにより発生している問題(APIが叩けない!)や、逆にPaperpileだからできること(Google driveに文献が格納される)に大いに依存しています。他の文献管理ソフトを使っている人はごめんなさい、と言いたいところですが、即刻Paperpileに改宗しましょう。

(追記)Paperpileについてご存知ない方へ

月300円で完全クラウド型(Google drive)で文献を管理できる文献管理サービスです。Zoteroより可愛い見た目でZoteroより自由が効きません。ただ今後も改善されると思いますのでポチッと課金すると楽しい気持ちになれておすすめです。

基本的な考え方

私が自分の環境に求めていたことは以下の通りです。

  • 書きたい時に書くことに注力できる
    • 書いたものの格納場所を気にしなくて良い
  • 書いたもの同士がネットワーク化する
  • 管理・保守が後から自由に楽にできる
  • オンラインで使える
  • Markdownで書ける。数式もかける。

根本的な考え方である「量を書く」「書いたものが結びつく」は、ツェッテルカステンについての本を読んで、なんでも習慣化やな、と思ったところから来ています。本のリンクを貼っておきます。

 

また、Notionでこれを完全再現している人もいるのでその参考リンクも貼っておきます。

youtu.be

ただ、ノートの種類を分けることを考え始めると面倒になるので、よりシンプルに、より書くことへの障壁を下げる、ということを重視しました。

他のツールで考えるとスクラップボックスがこの考え方に向いたものです。しかし、使ってみて、レジュメを管理したり、レジュメは作らなかったが読んだ、みたいなものを自分の書いているメモと結びつける、という応用が難しく、データベースが強いNotionに移行しました。

(また、最近流行りのObsidianはオフライン管理らしいのでやめました)

Notionの基本構造

上に書いた考え方を踏まえ紆余曲折を経て作ったのは以下のような構造です。

  • メモのデータベースは1つにする
  • 階層ではなくタグで管理する
  • 文献管理ソフトの情報もまたデータベースでNotionに突っ込むことで読んだものと書いたものを結びつけやすくする

ページは1つにせよ- Home画面

まず、ページを1つにします。これが大事です。Notionの良いところは階層構造を作れることですが、このせいで、書くとき、書いたものを整理することに余計なコストが生まれます。ページを1つにし、メインのデータベースに全てのメモを集約することで管理コストを極限まで下げることができます。

Home画面の構成は以下の通りです。

  • INBOX:全てのメモを格納するデータベース(main)
  • Tag:タグのデータベース
  • Paperpile:Paperpileのデータを自動で読み込むデータベース

Tagはデータベースにせよ

これは以下の動画を参考にしています。

youtu.be

Notionにはデータベースをタグで管理するための「マルチセレクト」という機能が標準搭載されています。ただし、そのタグの一覧表示や編集、保守がかなりだるいです。そこで上の動画に従って、タグを別のデータベースで作成し、リレーションの形でタグ管理を実現しています。

タグのデータベースの様子

リレーションでタグのように使っている様子

それぞれのタグが何回ずつ使われているかわかるビューも作りました

文献データベースはめんどい、Paperpileのせいだ!

文献データベースは作った方が良い

これは最初迷いました。なぜならメインのデータベースは1つにすると豪語しているにも関わらず、メイン2のようなデータベースが作成されるからです。しかし、私の場合、管理を楽にするだけでなく、書いたもののネットワーク化を重視したかったこともありデータベースを新たに作成するに至りました。

文献データベースがない場合を考えます。Notionはページ間のリンクが簡単にできる(@+ページタイトル)のですが、これは裏を返すとページが存在していないものについてはリンクを作るのが比較的面倒ということです。

文献レビューをする時を考えると、大層じっくり読む論文と、Abstract + Introduction + 分析部少し、みたいな形で読むものが混在しています。つまり、レジュメや文献のメモを作るものとそうではないものが分かれるということです。

文献データベースが存在しない場合、文献メモを作成したものについてはリンクが作れますが、そうではないものはNotion上で忘却されます。流石にそれはまずいです。

従って、「メモは作っていないが読んだ」ようなものをリンクするために作ることにしました。(加えて最初メモを作るほどでもないと思ったものでも、後からメモを書いたりすることはあると思います。その場合も楽です)

Paperpileでもデータベース作成自動化はできる

ここで問題となってくるのが、Paperpileは独善的、ということです。類似サービスであるZoteroプラグインがとても優秀ですが、PaperpileはAPIが自由には叩けず大層苦労する羽目になりました。

しかし何事にも優秀で熱心な先人がいらっしゃるものです。Paperpileの文献はGoogle Drive上に保存されることに目をつけ、Google Drive経由でデータを取得してNotionにデータベース化するということをやってのける強者がいらっしゃいました。

参考リンクを貼っておきます。

note.com

基本的にはこの通りにデータベースを作成しましたが、1点工夫を施しました。先ほども述べたとおり、Notionのページリンクは@+ページタイトルで行うのですが、これをインラインで書くと、「アイコン+ページタイトル」の形でリンクが埋め込まれます。このページタイトルが論文名だとかなり長くなってしまい、可読性に乏しいです。

そこで「タイトル」プロパティの部分は「筆頭著者+出版年」にすることで、論文内で引用されるときと同じような体裁でリンクを貼れるようにしました。論文タイトルは、別に「テキスト」プロパティの形で読み込んでデータベース上には追加しています。(筆頭著者+出版年なので複数著者がいるときは面倒なのですが、そこはリンクを貼るときに自分で直しています。さしたる手間ではありません。やろうと思えばこれもjasonコードで自動化できるのではないでしょうか。)

(追記)一回やった後自動化できるのかという質問をいただきました。Gasのトリガーを設定すれば自動で更新してくれます。参考までに私は10分ごとに実行するよう設定しています。

出来上がったpaperpileデータベースが以下の通りです(SD停滞要因を調べていたのがバレる)。

Resumeの部分は、INBOXにリレーションしており、ここでページを作成すると、INBOX内(すなわちメインのデータベース)上にレジュメやメモが作成される仕組みです。また、Authorはマルチセレクトになっていて、同一著者の論文がソートできます。

なお、私はうまくいきませんでしたが、より直接的にはBibファイル経由でPaperpile → Git → Notionとする仕組みもあります。参考リンクを貼っておきます。うまくいったら教えてください。

github.com

Google drive経由である都合上、論文を保存してないと(書誌情報だけだと)漏れてしまいますが、理系分野だったり、社会科学系の分野は結構学内ネットワーク等を使えば論文+本共に落とせることが多いので、そんなに困ることはないです。

実際の使い方

以上でNotionでの環境の構築は終了です。以下では、どのように使っているかと簡単な便利Tipsをご紹介します。

全ての書き物を集約させる

Inboxには本当に、本当の意味で全ての書き物を集約させます。例えば、Paperpileデータベースにリレーションしている文献メモ、文献読みながら考えたノート、よりシステマティックに行ったレビュー、自分の研究のプロポーザル、他の人がゼミで発表した資料などなど、、。私の場合、計量的手法で政治学をやろうとしているので、Datasetについてまとめるページも作りました(実際にそのdatasetを使っている論文をリンクできるので非常に便利)

Notionはデータベース1つにつき、色々なViewを作成できます。例えば私はタグに沿って以下のようなビューを作成しています

  • InProgress:メインのビュー
    • 全部の書き物を放り込むなら、使わなくなったページを削除することも勿体無いので、そのような類のページはステータスを「Archive」にし、メインのビューでは「InProgress」ステータスのものだけ表示しています
  • Resume:論文メモ
  • Note:自分が考えたことをまとめたもの

新学期が始まるので、ゼミ用のビューを作成しようかな、など考えています。タグ管理のいいところは、このように後からタグを追加したり、タグに沿ってビューも自由に管理できる、要は1クリックでデータベースの「表示」を自由にいじれるところです。

論文メモを作成する

PaperpileのViewerで基本的に論文を読みます。その上で、以下の2つのフローでメモを作成しています。

理論的に重要等で本文の記述も記録しておきたい場合

この場合、Paperpileのannotation機能をフルに使います。Paperpileはannotationをexportする際にそのファイル形式を選べます。Notionは基本的にはMarkdownメモアプリであることを踏まえ、Markdownで出力した上で、Paperpileデータベース内、レジュメにリレーションしているところで新規メモを作成(こうするとInboxにレジュメが作成されます)し、全部をコピペします。すると、markdownの引用形式で全ての記述がコピーされます。これをいい感じに見出し構造等を加えれば即席英語レジュメが完成します(後でこれを同期ブロックで参照することが可能です。下に詳述します)

さらっと読んだがメモを残しておきたい場合

分析手法など論文の概要、気になったこと等をメモとして、これまたPaperpileデータベース内、レジュメにリレーションしているところで新規メモを作成してMarkdown記法で書き込みます。

自分のノートに論文メモや別のノートをリンクさせる

ここまではただ論文メモをNotionに保存しようねの回です。ここからがネットワーク構造化の方になります。Notionには、他のページの内容を参照する方法が2つあります

  1. ページリンク
  2. 同期ブロック

双方ともに読んだり考えたことを自分の中で結びつけることに相当使える機能です。以下使用例を記します。

ページリンクで参照文献を論文調に並べる

論文は基本的に「丸々と言われる(つらつら論文名)」と並んでいて、リサーチペイパーを書いてて思ったのですが、これを後から作ろうとすると相当だるいです。なるべく自分がメモとして考えている段階から楽に参照しておきたい。(清書はOverleafちゃんに任せれば良い)

これがPaperpileデータベースをページリンク、という形で実現可能、しかもPaperpileデータベースのタイトル部分を「著者+年」にしておくことで、論文内での引用と同等の効果が得られます。

リンクしたいときは先ほども述べたように「@+筆頭著者, 年」で検索をかけて予測を出してくれるのでそれをポチッとするだけです。resumeとの混同を防ぐために、文献メモの方は冒頭に「resume-」とつけるようにしています。

作業フローとしては以下の通りです。まず、何かノートを書きます、そこでPaperpileのタイトルをページリンクで参照します。もし文献メモを参照したいときは、ページリンクをクリック→そこにリレーションされている「resume-,,,」をクリックで飛べます。

少し面倒ではありますが、レジュメではなく文献データベースにリンクすることで、メモを作っていない文献も参照できるのがメリットです。

自分のノート間をページリンクで結びつける

ページリンクはNotionのページ間を結びつけるものなので、別に論文を並べるだけのためのものではありません。いろいろなメモやノート、ゼミ用のレジュメなどを、別の自分のノートに参照することができます。ページリンクを駆使することでノート間をネットワーク化することが可能になります(Scrapboxと同じです)

同期ブロックで引用をらくに

論文を参照する際、自分で意訳するだけでなく、論文本文を引用したい、執筆するときは意訳するけど、メモとしては引用しておきたい、ということがあります。そういう文献は大抵先の節で述べた文献メモの前半の方、すなわちPaperpileのannotationをコピーしていることが多いです。

文献メモ内にある論文の本文の一部をノートに貼りたい場合、基本的にはそのままコピペしたくなるところですが、Notionの場合、同期ブロックという機能を使えます。

同期ブロックについては以下のリンクを参考にしてください。

www.notion.so

要は、ブロックがもともと書いてあるページとコピペしたページの双方で同時表示・編集できるよという機能です。

これがあることで、文献メモのページから、その箇所を引用したい全てのページにネットワーク構造化した状態でコピペすることが可能です。文献の引用であれば、編集することはないとは思いますが、そのブロックは選択すると、それを同期ブロックとして扱っている全てのページをすぐ参照できるので便利です。

同期ブロックで考えをページ間共有

同期ブロックはページ間でブロックを同期させる仕組みなので論文の引用でなくても可能です。すなわち、自分がどこかしらのノートに書いた内容をそのまま同期することが可能です。ページリンクとして参照しても良いのですが、このページのこの場所!みたいな特定が可能でかつ、直接内容が参照・編集できるのが良いところです

(補足):ページリンクだけでなく、ページのブロックごとにリンクが設定されているので、ブロックのリンクも使えます。ただブロックリンクが必要な場合は同期ブロックで事足りることが多いです。

使用例を記しておきます。例えば1本論文を読み、それについてのコメントを文献メモに書いたとします。ただし、書いているうちに、その文献だけの問題ではなく、研究潮流全体への疑問とかをつらつら書いてしまうものです。そしたらその箇所をコピーして、新たに作成した(もしくは既にある)ノートに同期ブロックとしてペーストします。すると論文に対して作成した疑問が、自分の頭の中で別の文脈を持つ考えとして位置付けられるようになるわけです。

バックリンクは常に表示させる

以上で基本的な使い方はおしまいです。これ以降は便利tipsです(気づいたら追記予定)。Notionはページ設定で、バックリンクを常に表示させるかどうかを選択できます。バックリンクとは「このページがリンク『されている』ページ」を表示、すぐ飛べるようにする機能です。(Scrapboxがメイン機能として謳っています)

この仕組みこそがネットワーク構造を可視化させるものなので必ず常時表示の設定にしましょう。具体的にどうやるかは忘れました。

終わりに

仕組みを作ってから1ヶ月半は経つのですが、論文の読みっぱなし、考えたことを頭に放置しっぱなしということが少なくなった気がします。私も勉強頑張ります。改善策を教えてください。

 

追記

続きの記事を書きました。よろしければご覧ください

 

onakasuita-bot.hatenablog.com