A discourse graph is a protocol for structuring and communicating arguments.
One of the fun things about a Discourse Graph is that it emphasizes discourse moves - the parts of a living conversation that we’re all familiar with, like
Questions
Claims
Evidence
And of course, that darling of the internet forum, the Source
These are our nodes.
The relations between these nodes — the edges of our graph — are the relationships between these discourse moves:
Evidence informs questions — which is how it works in the physical world — you notice something, say “hunh”, and ask a question. “Hunh, that’s weird…” is the precursor to many scientific discoveries.
Evidence can support or oppose a claim
Claims can support or oppose other claims
And new questions can be informed by existing claims
We can zoom in on the Discourse Graph datamodel to understand these relationships a bit better:
Question notes express an open research question
Claim notes synthesize data about specific observations into a single, generalized idea
Evidence notes express a single, highly contextualized and specific observation that can be combined with other observation notes to form the basis of a claim note
and Source notes are contextual snippets that help to ground and contextualize observation notes.
The discourse graph datamodel breaks the components of a research communication into its constituent conceptual building blocks.
So the build process for creating a discourse graph is to
1. Formulate a set of questions
2. Extract observations
(Sometimes — indeed often, these 2 steps are switched, especially in empirical work: you notice something specific, and then develop a question)
4. Synthesize these observations into claims
5. Compose the claims into arguments or theories
6. Find new questions or hypotheses to test
These graphs can be implemented in pretty much any client that supports backlinks or wikilinks: the most popular frontends to the system are software clients like Roam, Notion, Logseq, and Obsidian, but you could also make a Discourse graph out of paper and string, or a slip box!
You can read more about how to implement the protocol on this PubPub's Tutorials & Resources page.
The discourse graphs described so far largely follow the datamodel conventions proposed by researcher Joel Chan, but the discourse graph concept is not new, and several new variants have evolved in the wild over the years, adapted to different scholarly niches.
For example, biologist Matt Akamatsu's Results Graph adapts the discourse graph datamodel to reflect the terminology and activity of experimental science: the experiment contributes data both supporting or opposing particular conclusions and generating new hypotheses.
If we extend the model, we can see that new edges are possible: hypotheses motivate new experiments, and the conclusions of these experimental loops form and inform our scientific theories and world models.
This PubPub community is interested in exploring these synthesis loops.
Michael Gartner’s Discourse Graph template is a quickstart guide to creating Discourse Graphs using Roam Research.
Roam Research Discourse Graph extension documentation (contains additional useful links)
Knowledge synthesis: A conceptual model and practical guide by Joel Chan
Joel Chan on Scaling Synthesis
Matt Akamatsu on Open-sourcing scientific research with lab discourse graphs