ObsidianとZoteroで文献整理。

Obsidianとは

ObsidianはMarkdown形式でノートを取ることができるオープンソースのソフトウェアです。Markdownエディタとは違い、Markdown形式で書かれたノートをお互いにリンクさせることにより関連付けて知識を整理することができます。

同様のノート・アプリにNotion、EverNoteやGoodNoteなどがありますが、Obsidianはローカルにデータを保存することができます。また汎用性の高いMarkdown形式で記述するので、ノート・アプリがなくても通常のテキスト・エディタやブラウザで表示させることができます。

ZoteroとObsidianを連携させて文献整をする

以前Zoteroで文献管理の記事を書きましたが、最近ZoteroとObsidianを連携させて文献整理を始めました。Zoteroで文献管理を行い、Zoteroで作った文献ノートをObsidianにエクスポートして文献のデータベースを作り、文献をまとめて整理する事ができて便利です。Zoteroでは文献単位での整理には便利ですが、複数の文献をまとめて整理するのは難しいです。Obsidianはその点を補ってくれます。

Zotero/Obsidianの連携の流れ

  1. Zotero上での流れ
    1. 文献のPDFをウェッブサイトから取り込む。
    2. PDFにアノテーションをつける。
    3. 文献ノートを作成する。
    4. タグを設定する。
  2. Obsidian上での流れ
    1. Zoteroから文献ノートと文献のメタデータを取り込み文献ノートを作成する。
    2. 必要に応じて文献ノートを編集する。例えばテーブルに表示させる2−3行のサマリーを追加する。
    3. 文献ノートをフィルタリングしてテーブルので表示する。

写真は”ProstateCancer", "MRI", "DL", "WeaklySupervisedLearning"というタグから抽出した文献ノートをテーブルとして出版年・月に並べて表示させたものです。テーブルの情報を元にこれまでの研究の流れや論文の相互関係などの知識を整理しやすくなります。テーブルはマークダウンのノートに埋め込まれているので、その前後に自分のノートを書き込むことができます。テーブルにはそれぞれの文献ノートへのリンクが埋め込まれているので、クリックするとその文献ノートに飛ぶこともできます。テーブル自体の項目の編集も自由度が高く、例えばSynopsisやRatingは私が論文ノートに追加した内容を反映しています。

Zoteroの設定など

Zoteroのダウンロード、設定、プラグインの入れかた、PDFにアノテーションをてつけてノートに出力する方法はこちらの記事を参考にしてください。Zotero側でBetter BibTeXというプラグインが必要になりますので注意してください。

ここではノートに出力・保存に必要な特に重要な情報だけ記載します。

ノートの保存時にクォーテーション・マークを消す方法

保存されたノートはハイライトの区切り毎にクォーテーション・マーク(””)で囲まれています。これを消す方法は以下の通りです。

Preference/Advanced/Config Editor
extensions.zotero.annotations.noteTemplates.highlight を検索。

編集機能で以下のように太字の分を追加してください。

<p>{{highlight quotes='false'}} {{citation}} {{comment}}</p>

区切りごとにサイテーション(Cai et al 2022 p2)もついてくるが、これはノートの右上にある”・・・”をクリックして'hide annotation citation'を選ぶと消すことができます。

タグの編集

Zoteroではタグに単語間にスペースが使えますが、Obsidianでは使えません。スペースが入っているタグは”_”で置き換えるかCamel Caseなどに変更にしてください(例えばProstate CancerではなくProstate_CancerかProstateCancer)。Zoteroで左下にあるタグ一覧で編集すると全論文に適応されるので便利です。

Obsidianのダウンロード

Obsidianはホームページ からダウンロードできます。

Obsidianの使用環境とヴァージョン

私の使用環境は以下の通りです。

ObsidianからVaultを適当な名前で作って、その中に下準備として以下のようにフォルダを作ってください

Vault
  ├── Project 1
  ├── Literature
  │         └── Inbox      (論文ノートが保存されます)
  ├── Templates            (テンプレートを保存します)
  │         └── Scripts    (画像をノートに添付するスクリプトを保存します)
  └── Attachments          (画像が保存されます)
Obsidianの設定とプラグ・インのインストール

Obsidianの設定は左下の歯車アイコンをクリックすると表示されます。設定画面のCommunity Plug-inのタブでRestricted Modeを解除してプラグ・インが使えるようにします。

Community Plug-inでBrowseで検索してインストールします。Zoteroとの連携・文献整理に必要なプラグ・インは以下の通りです。

プラグ・インをインストールすると、インストールしたプラグ・インが左側のパネルにリストアップされるので、歯車アイコンをクリックすることでそれぞれのプラグ・インの設定をすることができます。

Zotero Integrationの設定

Zotero Integrationの設定は以下の通りです。

Import Format
Name           (コマンド・パレットで呼び出す時に使う名前です。他の名前でも構いません)
  Import note from zotero
Output Path        (文献ノートの保存場所と保存名の形式を指定しています)
  Literature/Inbox/{{date | format("YYYY-MM")}} {{creators[0].lastName}} {{creators[0].firstName[0]}}.md
Image Output Path   (添付画像の保存先を指定しています)
  Attachments/{{date | format("YYYY-MM")}} {{creators[0].lastName}} {{creators[0].firstName[0]}}/
Template        (テンプレートファイルを指定しています)
  Template/Zotero_Template.md

下のテキストはテンプレートです。コピーしてZotero_Template.mdとして保存して、Templatesのフォルダに入れます。

---
category: literaturenote
tags: {% if allTags %}{{allTags}}{% endif %}
citekey: {{citekey}}
rating:
---
*{{publicationTitle}}*
{{title}}
# Summary

> [!My note]
> Synopsis::
# Methods

# Results
{% set annots = annotations %}
{%- for annot in annots -%}
{% if annot.type == "image" %} ![[{{annot.imageRelativePath}}]]
{% endif %}{% endfor %}

## PDF
{%- for attachment in attachments | filterby("path", "endswith", ".pdf") %}
[{{attachment.title}}](file://{{attachment.path | replace(" ", "%20")}}) {%- endfor -%}.
## Abstract
{%- if abstractNote %}
{{abstractNote}}
{%- endif -%}.
## Metadata
{% for type, creators in creators | groupby("creatorType") -%}
{%- for creator in creators -%}
**{{"First" if loop.first}}{{type | capitalize}}**::
{%- if creator.name %} {{creator.name}}
{%- else %} {{creator.lastName}}, {{creator.firstName}}
{%- endif %}
{% endfor %}
{%- endfor %}
**Title**:: {{title}}
**Year**:: {{date | format("YYYY-MM")}}
**Citekey**:: {{citekey}} {%- if itemType %}
**itemType**:: {{itemType}}{%- endif %}{%- if itemType == "journalArticle" %}
**Journal**:: *{{publicationTitle}}* {%- endif %}{%- if volume %}
**Volume**:: {{volume}} {%- endif %}{%- if issue %}
**Issue**:: {{issue}} {%- endif %}{%- if itemType == "bookSection" %}
**Book**:: {{publicationTitle}} {%- endif %}{%- if publisher %}
**Publisher**:: {{publisher}} {%- endif %}{%- if place %}
**Location**:: {{place}} {%- endif %}{%- if pages %}
**Pages**:: {{pages}} {%- endif %}{%- if DOI %}
**DOI**:: {{DOI}} {%- endif %}{%- if ISBN %}
**ISBN**:: {{ISBN}} {%- endif %}{%- if desktopURI %}
**DesktopURI**:: [zotero-link]({{desktopURI}}){%- endif %}

> **Related**:: {% for relation in relations | selectattr("citekey") %} [[@{{relation.citekey}}]]{% if not loop.last %}, {% endif%} {% endfor %}

> {%- if markdownNotes %}
> {{markdownNotes}}{%- endif -%}.
Dataviewの設定

特別な設定はないのでそのまま使えます。

Zotero Integrationの使い方

Zoteroの文献ノートのObsidianに取り込みの前に下準備としてZoteroの文献ノートを用意します。テストのため画像も入れておくといいです。タグもいくつかZotero上で入れておくと良いです。

Zoteroの文献ノートの取り込みは以下の操作で行います。

  1. コマンド・パレット(command/control-p)を開いてzotero integrationとタイプすると、”Import note from zotero”というオプションが出てくるので、それを選択。
  2. Zoteroの文献選択画面上で著者名などを入力して文献を選択。

ObsidianのLiterature/Inboxに文献ノートが保存されているのを確認してください。

文献ノートの一番上の部分(フロント・マターと呼ばれる部分)でタグなどのメタ情報を入れる部分です。タグはZoteroから入っているのを確認してください。ratingは論文の重要度を点数でいれるようにしています。

次にジャーナル名とタイトル。

その次にSummaryとSynopsis, Methods, Results のセクションが続きます。Results以外は空欄になっています。Zoteroから取り込んだノートはファイルの最後に添付されていますが、PDFからのアノテーションそのままで読みにくいので、ここにコピーしてマークダウン形式の読みやすい形にまとめています。SynopsisはSummaryよりさらに短く数行のまとめを書いています。後述しますが、Dataviewでテーブル形式にした時にSynopsisの内容を表示するようにしています。

ResultsのセクションにはZoteroでアノテーションした画像が添付されます。画像はAttachmentsの中にファイル名と同名のフォルダに保存されます。

その次にPDFのリンクとアブストラクトが続きます。PDFのリンクはローカルに保存してあるPDFを開くことができます。私はこのリンクは使わずにZotero経由でPDFを開くようにしています(後述のZotero URI)。アブストラクトはZoteroから取り込んだものです。

その下に論文のメタデータが続きます。著者名ほかジャーナル名などが続きます。メタデータの最後にはDesktop URI:zotero-linkとありますが、これはローカルのZoteroの当該論文のページへのリンクです。

その下にZoteroで作ったノートがコピーされます。私はこの部分をコピーしてMethods/Resultsのセクションに貼り付けて、読みやすい形に整形して使っています。

Zoteroから取り込んだ文献ノートは一旦Literature/Inboxに保存されるようにしています。Inboxにした理由としては、同じ文献を複数回取り込む可能性があるからです。例えばZotero上で画像を追加したりアノテーションを追加したりした場合、再度Obsidianにノートを取り込むことがあります。すでに取り込んでいたノートが上書きされないようにするためです。

ファイル名は出版年月と著者名にしていますが、2つの異なった論文で同じファイル名になる場合もまれにあり、その場合ファイルが置き換わってしまうリスクがあります。一旦Inboxに保存されて、手動でファイルをLiteratureのフォルダに移すことによってそのリスクが回避されます。その場合ファイルの末尾に数字が付けられます。

保存ファイル名の末尾にcitation keyを入れると重複のリスクを回避することができると思います。citation keyはZotero上で重複がないように設計されているため(重複があった場合にはアルファベットなどを付けてくれるのます)。それ以外に雑誌名・論文のタイトルの一部をファイル名に入れることでを重複のリスクを低減できると思います。必要ならOutput Pathのところで保存ファイル名を変更してください。

Dataviewの使い方

新しいマークダウンのノートを作って(例えばProject1のフォルダにliterature_review_prostateMR.md )、以下のテキストを貼りつけてください。

```dataview
TABLE
title as Title,
FirstAuthor as Author,
Journal,
Synopsis,
rating as Rating
From "Literature"
AND #tag1
AND #tag2
SORT file.name ASC
```

"tag1","tag2"は検索条件になるようなタグに変更してください。

```dataviewのの書き方は:

最後に

最近ZoteroとObsidianを連携させて文献整理を始めましたので紹介しました。Zoteroで足りないと思っていた複数の文献をまとめて整理できるのがObsidianのいい点です。良かったら試してみてください。

英語ですがこの記事 を参考にしました。

画像の添付は通常のTemplateではできないと思ってわざわざ自分でuser script書いてやっていたんですが、この記事を公開する直前にRedditに簡単な画像添付のしかたが紹介されていて愕然としました。折角なので、リンクを残しておきます。なにか自分でuser scriptを書く必要になった時に参考にしてください。

最終更新日:2025年3月16日