This is an example vault that illustrates potential usage of the discourse graph plugin to structure project/experiment management, and synthesis and reflection of results in conversation with prior literature towards new directions and contributions.
Bases: enables queries over discourse nodes, etc. - examples are in the vault
Backlinks (optional): nice to have references to a given note easily accessible at the bottom of the page
- BRAT: this is how we load our plugin at the moment
- Datacore : this is the query engine that underlies our plugin
- Discourse Graph (required): this is our plugin :)
- Tasks (recommended): makes it easier to create/query/manage todos
- Outliner (optional): makes it easier and nicer
The current structure is loosely based on existing lab discourse graphs workflows in Roam - we haven't actually observed or developed workflows in practice for labs in Obsidian/git yet. So this is definitely up for revision! We've tried to support reasoning about the folder structure with some rationales and marking where the existence of certain folders is important.
Bases/no particular reason that the.basefiles should all live in here. could easily see them living inside the respective content folders (e.g., aProjects.basein the Project folder)DiscourseGraph/not a bad idea to set a default location for new discourse nodesMeta/Attachments/usually it's good set a folder for attachments to go to, but it can be anywhereTemplates/the discourse nodes can be created based on a template. the plugin needs to be pointed to a folder that contains templates to use. templates in these folder can also be used for other notes, not just discourse nodesConventions.mdthis might be a good place to write down the conventions/workflows for your lab
Projects/pretty self-explanatory, and probably something you want to do to track projects.Protocols/optional, if you want to create and track specific protocols and link to them in your experiments, and what questions they can address
Annotated example
The structure of these pages enables you to
- Keep target question or hypothesis close by, to define the purpose of the experiment
- Keep an experiment log where you can reflect on observations, and (if appropriate) formalize these into hypotheses or results you want to share with others by creating discourse nodes
- Reflect on progress of the experiment by comparing tabulated results from the experiment against the target question
Key actions
- Set/change the target question by changing it in the
targetQuestionOrHypproperty for the page - Review progress by comparing the target question to the tabulated results so far. The
.basequery will auto-update
There is a template in the example vault that you can modify (in Meta/Templates/Experiment.md)
Annotated example
The structure of these pages enables you to
- Keep the broad target question(s) close by, provide space for reflecting on what has been learned from the experiments
- Consolidate key links/resources for the project
- Keep a log of project notes
Key actions
- Review progress by pulling in results from each experiment alongside the literature and your questions by placing them on the project canvas
- There is a template in the example vault that you can modify (in
Meta/Templates/Project.md)
Currently this can be done in three ways (see docs for more details)
- Using the command palette
- Convert existing text to node
- Suspect to start with, if you're migrating over a small project, you'll mostly be doing this
- List out all the questions/claims/evidence/etc., maybe in an outline
- And convert individual ones to nodes, put figures/other info inside as needed
- Suspect to start with, if you're migrating over a small project, you'll mostly be doing this
- Convert existing page to node
You can also set/create/edit templates to use for creating specific nodes (see docs for more details). For instance, you might want to ensure that a result page has a key figure and some details about the experimental method.
You can toggle a sidebar "discourse context" component that shows you any discourse relations you've created between a given node to other nodes (e.g., what claims inform this question, which evidence supports/opposes this claim)
See docs for more details
Currently this is done using the buttons in the discourse context component (see docs for more details)
This is new in Obsidian as of the last ~month or so. It enables you to create "databases" for your notes, which you can use to view/rank/sort projects, experiments, or other things you want to track in a live updated query. We find these queries to be quite useful in our labs so it will probably be useful here too. I've included some examples in the vault.
Please feel free to organize the vault's folders however you like! It sounds like Graham has very substantial Obsidian experience, + there may be organizational structure patterns that work well for your lab.
- Download this example vault (all plugin "batteries" are included already)
- Choose 1-2 projects that already have some questions/claims/evidence around them, maybe some sub-experiments too
- For each project
- Create the project and its container experiments
- Map out the key questions/claims/evidence for the project
- Maybe tabulate some logs for ongoing experiments in those projects
Here's a quick Loom on how this might go: https://www.loom.com/share/f80799f5d0f44a51b1951bc835e4fef7
Conceptually claims/hypotheses/conclusions are basically the same (generalized assertions about a phenomenon) and evidence/results are the same (contextualized descriptions of observations from a specific experiment).
If you'd like to iterate on this, we can discuss more, and/or you can explore the docs for how to define new types of nodes and new types of relations.
At the moment a lot of our lab processes are encoded in "smartblock" workflows and templates. For instance, we have meeting templates that focus attention on research questions, and workflows for creating new projects/experiments that encourage specification of target questions/hypotheses. You may want to start working in similar things to support sufficient (minimal) standardization and shared processes as you collaborate.
Our discourse plugin supports the use of templates when creating discourse nodes, but for more advanced workflow structuring, you might experiment with the Templater plugin:
Docs: https://silentvoid13.github.io/Templater/
Examples: https://github.com/SilentVoid13/Templater/discussions/categories/templates-showcase
In Roam in a collaborative setting, we often have personal home pages and sidebars where people can bookmark certain important pages for them and write any other unsorted notes they like. Like this:
This is a bit different from a usual single-player Obsidian pattern where you might just work in daily note pages, but might end up being useful in a lab/collaborative setting. So this isn't in the example vault in a formal way, though there is a small example in [[Rosalind Franklin]] page that could be a starting point for exploration of this pattern.
The example vault currently lacks an example of literature notes (e.g., a source page with associated claims or evidence).
If you're interested in this use case and would like to learn more, please reach out to talk more about this, especially once you've selected a couple starter projects and what the related literature is and what a useful workflow would be.
In a lab setting it can be useful to host meeting notes in the same vault: this allows you to structure your meetings around sharing/developing discourse nodes (e.g., hypotheses/results). The vault includes a simple example note ([[Lab Meeting Notes 2025]]) with links to experiments/results. Feel free to modify!


