私ごとですが、この春、大学院に進学しました。
学部は文系でしたので、晴れて理系の身になったわけですが、重要なのはそこではなく、読む論文が増えてきたことが眼前の問題でした。
世の中にはMendeleyやZoteroなどの論文管理ソフトがいくつかありますが、私はいずれに対しても不満がありました。モバイル版の廃止や同期速度の問題など、「論文管理のためだけにあるソフト」でありながら使い勝手が気になるのです。
Notionで管理したい
できることならその上でbib出力もしたい。doiやpdfからメタデータを抜き出せないのかな?と常々考えていましたが、アイディアを考えることに疲れ、GWも差し掛かった今日この頃まで論文管理ソフトの導入を先延ばしにしてきました。
ZoteroとNotionをリンクさせるサービスや、同じくMendeleyとの併用こそ、Qiitaにも投稿されていましたが、どうにか別途サービスを使わず完結させたい。そう考えていると、こんな記事がありました。
本稿はこの記事を参考にあくまで自分用に実現したものです。改善案お待ちしております。
どうやらpdf2doiを使ってpdfからメタデータを抽出しているようで、論文データベースへのアクセスはCrossrefのAPIを使っているようでした。この記事を見るまで私はCrossrefというサービスを知らず、ましてAPIを無料で取得できることを知らなかったので、渡りに船でした。
私の環境ではひとまずpdfから取得することは急務ではなかったので、これを省略し、doiからメタデータを取得することを考えました。
準備
コードはGithubにあげていますが、NotionDBやAPIなど、事前に必要な用意がありますので、その点はご自身でお調べください。
私が使っているNotionテンプレートはnotion-scholar1にて、公開されているBibliographyというテンプレートを利用しています。
構造
Crossrefではdoiがあれば論文情報をJSON形式で取得できるようです。(Crossref APIを使ったサービスの検索をかけていたらCR-Clickthrough-Client-Token
を使ってAPIキーを設定している方もいたのですが、それが何なのかよくわかりませんでした)
Webで論文探しや論文読みをしているとき、必ずdoiの記載がありますよね。そこから最短距離でNotionDBに保存するには、ブラウザの拡張機能として実装していくのが良さそうですが、それはおいおい。
というわけで、現状ではdoiやurlをコピーした状態でPythonを動かすと、メタデータを取得しPythonで扱えるよう変換した上でNotionに格納されるようになっています。
とは言っても現状では、エラー対策が何一つと言ってもいいほど済んでいません。何が原因でエラーを吐いているのかチェックする機構を追加していない現状ですので、これから改善していかなければなりません。
404が出た場合はCrossrefに当該論文データが存在しないことを暗示していると思って使っているような現状です(うまくコピーができていない可能性もあります)。
終わりに
前口上と言えるほど大層なものではありませんが、海外発サービスでの英文記事を読んでいると、自分の身の上話から始まることが多いように感じており、本稿ではそれを踏襲してみました笑
下書きこそあれど実際の公開記事は初めてだったので、至らぬところが多いことかと思います。後ほど時間がある時に変更する予定です。図やスクショを入れたりしたいです。
-
BibTexファイルからNotionDBに保存するサービス。 ↩