Get AI summaries of any video or article — Sign up free
Using Source Metadata in Roam Research thumbnail

Using Source Metadata in Roam Research

Cortex Futura·
5 min read

Based on Cortex Futura's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Copy roam metadataexport.js into Zotero’s translators folder and restart Zotero so the “Roam metadata export” format becomes available.

Briefing

The fastest way to turn Zotero libraries into a living reference graph inside Roam Research is to import source metadata with a dedicated Roam translator, then use Roam’s query-driven “citation graph” to automatically surface who cites what. Once set up, the workflow becomes a near one-keystroke operation: select a source in Zotero, copy its metadata, paste it into Roam, and get structured fields like the paper’s title, authors’ year, a link back to the Zotero item, topics, and reading status.

Setup matters because Roam can’t read Zotero metadata directly without a small bridge. The process starts by downloading a file named roam metadata export and copying roam metadataexport.js into Zotero’s translators folder. That folder location is found in Zotero Preferences → Advanced → Data directory location, where the translators folder sits. After restarting Zotero, the export settings are updated: under Preferences → Export, the default format is switched to “Roam metadata export.” With that in place, selecting a source in Zotero and using Command+Shift+C on macOS (Ctrl+Shift+C on Windows/Linux) prepares the metadata for Roam.

In Roam, pasting that exported content (Command+V) creates a top block that carries the source’s key details. The page name is tied to the paper’s site key, and the block includes a link to the paper’s site, the authors’ year, the title, and a link back to the Zotero item. It also includes fields for topics the source covers and the reading status, defaulting to “to read.” A key addition is an element called “citation graph,” which becomes useful once citations are represented in Roam.

The citation graph relies on Roam’s advanced query feature. The practical payoff is that citations become navigable: when other Roam pages contain quotes from a paper and each quote includes a “citing” attribute that links to the cited paper, Roam can automatically collect those quotes and display them on the cited paper’s page. In other words, the literature review context stays attached to the source itself. The transcript’s example uses multiple papers that cite a shared work on a topic (like totalitarianism). After the citing attributes and links are added under each quote, the cited paper’s page shows all those quoting blocks under the citation graph query—making it easy to see who is writing about the same core idea and how they frame it.

This also supports commentary. When a comment or indented note is placed under a citing block, it appears alongside the citation results, letting readers track how different sources treat the same work as they read. The recommended first action is simple: pick one paper, add the citing attribute with links to the cited sources under a couple of extracted quotes, and let the system accumulate over time so the reference network becomes more useful with every new citation you add.

Cornell Notes

Import Zotero source metadata into Roam using a dedicated Zotero translator (“Roam metadata export”), then paste the exported metadata into Roam with a keyboard shortcut. The pasted block includes structured fields (title, authors’ year, topics, reading status, and links back to Zotero) and adds a “citation graph” element. That citation graph is powered by Roam queries: when quotes in Roam include a “citing” attribute followed by a link to the cited paper’s site key, Roam automatically aggregates those quoting blocks on the cited paper’s page. This turns reading notes into a searchable map of who cites whom and how sources are discussed, with room for comments under each citing block.

What setup steps make Zotero metadata export work with Roam?

Download the file named roam metadata export and copy roam metadataexport.js into Zotero’s translators folder. Find the translators folder via Zotero Preferences → Advanced → Data directory location. After copying the file, quit and restart Zotero, then go to Preferences → Export and set the default format to “Roam metadata export.” Close preferences so the export format is active.

How does a user move metadata from Zotero into Roam quickly?

In Zotero, select a source and use Command+Shift+C on macOS (Ctrl+Shift+C on Windows/Linux). Switch to Roam and paste with Command+V. The resulting Roam block includes the paper’s site key as the page name, a link to the paper site, authors’ year, title, a link to the Zotero item, topics covered, and reading status (defaulting to “to read”).

What is the “citation graph” element, and what makes it populate automatically?

The “citation graph” is tied to Roam’s query feature. It becomes populated when other Roam pages contain quotes that cite a paper using a “citing” attribute. Each citing attribute is created by writing citing:: and then linking to the cited paper’s page (using the paper’s site key). Once those citing blocks exist, the cited paper’s page shows the related quotes under the citation graph query.

How do quotes and citing attributes work together in Roam?

When extracting quotes, the transcript describes indenting an attribute under the quote. The attribute format is citing:: followed by a link to the cited paper’s page. This requires the cited paper’s site key; if the paper isn’t already in Roam and/or Zotero, the workflow may require a “Google Scholar to Zotero” step to obtain the metadata and site key before linking.

Why does this approach help during literature review and note-taking?

Because the cited paper’s page automatically aggregates where it’s referenced, it becomes easier to track which researchers discuss a topic and in what context. Indented comments under citing blocks also appear alongside the citation results, making it straightforward to record how different sources treat the same work as reading progresses.

Review Questions

  1. What files and Zotero settings must be changed to enable “Roam metadata export,” and where are they located?
  2. Describe the exact structure needed under a quote in Roam to make the citation graph show up on the cited paper’s page.
  3. Why does linking require the paper’s site key, and what happens if the cited paper isn’t already in Roam/Zotero?

Key Points

  1. 1

    Copy roam metadataexport.js into Zotero’s translators folder and restart Zotero so the “Roam metadata export” format becomes available.

  2. 2

    Set Zotero Preferences → Export → Default format to “Roam metadata export” to ensure the correct export behavior.

  3. 3

    Use Command+Shift+C (macOS) or Ctrl+Shift+C (Windows/Linux) in Zotero, then paste into Roam with Command+V to create a structured source block.

  4. 4

    The pasted Roam block includes key metadata fields (site key/page name, authors’ year, title, Zotero link, topics, and reading status).

  5. 5

    The “citation graph” element populates through Roam queries once citing blocks are added under quotes.

  6. 6

    Add citations by placing citing:: under a quote and linking to the cited paper’s Roam page using its site key.

  7. 7

    Start small: pick one paper, add citing attributes under a couple of extracted quotes, and let the citation network grow over time.

Highlights

A single Zotero translator (“Roam metadata export”) turns source records into Roam blocks with structured metadata and links.
The citation graph is query-driven: it automatically aggregates quotes on a cited paper’s page when citing:: links are added under quotes.
Citing attributes require the cited paper’s site key, which may force a metadata-collection step if the source isn’t already present.
Indented comments under citing blocks become part of the same citation results, making comparative reading easier.

Topics