Skip to content

Commit 22bf1e7

Browse files
jsmorabitographite-app[bot]trangdoan982
authored
[DIS-432] Revise README for Discourse Graphs plugin (#846)
* Revise README for Discourse Graphs plugin Updated instructions and added promo images * Update apps/obsidian/README.md Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * Update installation steps for DataCore plugin Reordered steps for installing DataCore plugin in README. * small fix * more grammar and inconsistencies fixes * Moved Documentation section further down Moved the documentation section towards the end since its basically for "I read all the above info and I would still like to learn more..." --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> Co-authored-by: Trang Doan <doantranghp2000@gmail.com>
1 parent 96169dc commit 22bf1e7

1 file changed

Lines changed: 119 additions & 116 deletions

File tree

apps/obsidian/README.md

Lines changed: 119 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -4,137 +4,140 @@
44
<img alt="Shows project promo image in light and dark mode">
55
</picture>
66

7-
# Discourse Graphs for Obsidian
7+
# Overview
88

9-
The Discourse Graph extension enables Obsidian users to seamlessly add additional semantic structure to their notes, including specified page types and link types that model scientific discourse, to enable more complex and structured knowledge synthesis work, such as a complex interdisciplinary literature review, and enhanced collaboration with others on this work.
9+
Break down the research process into atomic units to augment the knowledge synthesis process. Create distinct objects for questions, claims, evidence, hypotheses or choose your own to suit your specific needs. These objects can then be related, resurfaced, and reused throughout your research journey to help you efficiently build arguments and create new knowledge.
1010

11-
For more information about Discourse Graphs, check out our website at [https://discoursegraphs.com](https://discoursegraphs.com)
11+
# Installation
1212

13-
## Installation
13+
Follow the instructions below to install the plugin:
1414

15-
### Prerequisites
15+
## Install BRAT
1616

17-
#### Install BRAT (Beta Reviewer's Auto-update Tester)
17+
To use the plugin prior to its public release on Obsidian's community plugin browser, install BRAT (Beta Reviewer's Auto-update Tester).
1818

1919
1. Open Obsidian Settings
2020
2. Go to Community Plugins and disable Restricted Mode
2121
3. Click "Browse" and search for "BRAT"
22-
![BRAT](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2Faar5LKpLOk.png?alt=media&token=6f51ac48-19d3-4bb5-9a07-7b32cfa6afe6)
2322
4. Install BRAT and enable it
2423

25-
#### Install DataCore via BRAT
24+
## Install DataCore via BRAT
2625

27-
1. Open Obsidian Settings
28-
2. Go to "Community Plugins" → "BRAT"
29-
3. Click "Add Beta Plugin"
30-
![Add plugin](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FdMtstUHPXe.png?alt=media&token=3f139ab9-9802-404d-9554-4a63bac080c5)
31-
4. Enter the repository URL: `https://github.com/blacksmithgu/datacore` and choose "Latest version"
32-
![Add datacore](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FEY3vNGt1Rf.png?alt=media&token=32c60ff1-5272-4cde-8b5f-8f049fb2cf50)
33-
5. Check the box for "Enable after installing the plugin"
34-
6. Click "Add plugin"
26+
1. Add the DataCore plugin from the BRAT settings menu or run command "Add a beta plugin for testing"
27+
2. Enter the repository URL: `https://github.com/blacksmithgu/datacore` and choose "Latest version"
28+
3. Check the box for "Enable after installing the plugin"
29+
4. Click `Add plugin`
3530

36-
### Install Discourse Graphs
31+
## Install Discourse Graphs
3732

38-
1. Open Obsidian Settings
39-
2. Go to "Community Plugins" → "BRAT"
40-
3. Click "Add Beta Plugin"
41-
![Add plugin](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FdMtstUHPXe.png?alt=media&token=3f139ab9-9802-404d-9554-4a63bac080c5)
33+
1. Add the Discourse Graphs plugin from the BRAT settings menu or run command `Add a beta plugin for testing`
34+
2. Enter the repository URL: `https://github.com/DiscourseGraphs/discourse-graph-obsidian` and choose "Latest version"
35+
3. Check the box for "Enable after installing the plugin"
36+
4. Click `Add plugin`
4237

43-
4. Enter the repository URL: `https://github.com/DiscourseGraphs/discourse-graph-obsidian` and choose "Latest version"
44-
![Add discourse graph](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FSBCK-2lkcu.png?alt=media&token=0375c828-da4d-43b4-8f2c-e691692cb019)
45-
5. Check the box for "Enable after installing the plugin"
46-
6. Click "Add Plugin"
38+
# Getting started
4739

48-
## Creating Nodes and Relationships
40+
The Discourse Graphs plugin gives you the ability to add additional semantic structure to your notes via specified page types (nodes) and relation types that model scientific discourse and enable more complex and structured [knowledge synthesis work](https://oasislab.pubpub.org/pub/54t0y9mk/release/3).
4941

50-
### Configure Node and Relationship Types
42+
The plugin ships with several node types to provide a foundation for your scientific argumentation: Question, Claim, Evidence, and Source, as well as complementary relation types that can be used between them.
5143

52-
1. Open Obsidian Settings
53-
2. Navigate to the "Discourse Graphs" settings tab
54-
55-
#### Edit Node Types
56-
57-
- Under "Node Types," click "Add Node Type"
58-
- Enter a name for your node type (e.g., "Claim", "Evidence", "Question")
59-
- Add the format for your node type. eg a claim node will have page title "CLM - {content}"
60-
- **Template (Optional)**: Select a template from the dropdown to automatically apply template content when creating nodes of this type
61-
- Templates are sourced from Obsidian's core Templates plugin
62-
- Ensure you have the Templates plugin enabled and configured with a template folder
63-
- The dropdown will show all available template files from your configured template folder
64-
65-
![add node types with template](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FHMg_Tq6qiR.png?alt=media&token=69828bfc-c939-41b0-abd4-2cc8931c5a38)
66-
- Click "Save Changes"
67-
68-
- To create a new template:
69-
- Create new folder to store templates
70-
![new folder](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FyTtJ1a0iI2.png?alt=media&token=b5d09b10-f170-47cd-a239-ee5f7acd89dc)
71-
72-
- Specify template folder location in plugin settings menu
73-
![template](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FhzZg_GJXY9.png?alt=media&token=508c8d19-1f13-4fb3-adf1-898dcf694f08)
74-
75-
- Create new file in template folder (A) and add text to file (B)
76-
![create template file](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FtTr9vOnXnX.png?alt=media&token=dda1fe25-3ccf-42b4-8f3c-1cd29f82c3f7)
77-
78-
![add node types](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FYRZ6ocI_d-.png?alt=media&token=c623bec7-02bd-42b4-a994-cd1c40a54d82)
79-
- Click "Save Changes"
80-
81-
#### Edit Relation Types
82-
83-
- Under "Relation Types," click "Add Relationship Type"
84-
- A relation type is a kind of relationship that can exist between any two node types
85-
- Enter a name for your relationship (e.g., "supports", "contradicts")
86-
- Enter the complement label (e.g., "is supported by", "is contradicted by")
87-
![add relation type](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2Fjk367dcO_K.png?alt=media&token=22d74e9f-882c-434b-8b50-afd7a754fb2b)
88-
- Click "Save Changes"
89-
90-
#### Define possible relations between nodes
91-
92-
- Open the Discourse Relations tab in the Discourse Graph settings
93-
![discourse relation](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FNgm7Ha4Ul5.png?alt=media&token=a933bd3a-d9a6-42c1-9c6e-d779d41c7ebf)
94-
- Choose Source Node Type, Relation Type, and Target Node Type
95-
![choose relation](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FlflJBkfdaK.png?alt=media&token=5de9617c-6099-46e8-931f-feafc604cabb)
96-
- Once you see the source, relation, and target selected:
97-
![final relations](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FycPW-N-rY8.png?alt=media&token=54867be2-9030-4c6c-82d2-b96069e52d81)
98-
E.g: this means that _Claim_ nodes can supports _Questions_ nodes
99-
- Click "Save changes"
100-
101-
## Using Discourse Graphs
102-
103-
### Instantiate a Node
104-
105-
- Select the text you want to turn into a Discourse Node
106-
![select text](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FInIer-iPGs.png?alt=media&token=fad214f6-f426-4249-8b0a-d5a403894600)
107-
- There are two ways you can create a node from here:
108-
1. Using command keys: Cmd + \
109-
<br>
110-
- As you press these keys, the Node Menu will open up as a popup
111-
112-
![node menu](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FS6eU6y70eX.png?alt=media&token=00e61ddf-877b-4752-a65b-272e80a0a19c)
113-
- Select the node type you want to turn the text into
114-
- Voila, you've created a new discourse node
115-
![node created](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2F1VNkJC0aH8.png?alt=media&token=df9a26aa-997b-4b56-a307-87a80e350b28)
116-
2. Right-click menu:
117-
- Alternatively, you can right-click on the selected text
118-
![right click menu](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2F4UqeVkqLz7.png?alt=media&token=d2373152-d251-45fe-afb6-56373d6092aa)
119-
- Then choose a node type from the "Turn into discourse node" menu
120-
121-
### Open Discourse Context
122-
123-
- Click on the telescope icon on the left bar
124-
![open discourse context](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FE10krHZcDM.png?alt=media&token=c1796a9f-7e51-437f-913d-91f5433d9bab)
125-
- Alternatively, you can set a hotkey to toggle the Discourse Context view or access it via the Command Palette
126-
![command palette](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2F5ybScaQISO.png?alt=media&token=2b36f0e7-4247-47b7-a53d-c784dfd4609b)
127-
128-
### Instantiate a Relationship
129-
130-
1. Open a note that you want to create a relationship from
131-
2. Open the Discourse Context
132-
![open discourse context](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FE10krHZcDM.png?alt=media&token=c1796a9f-7e51-437f-913d-91f5433d9bab)
133-
3. Click "Add a new relation"
134-
4. The dropdown that shows Relationship Types will be all available relations that you have defined in the setings.
135-
<br> It will also show you what node type you can link with
136-
![add relation](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FXQsgznWuV2.png?alt=media&token=9442b9fa-0904-4847-8eb8-a5791705c4c5)
137-
5. Search the nodes you want to link with by the title
138-
![search](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2F4NW4UjYDrC.png?alt=media&token=bae307d0-ebec-4e6b-a03d-0943d9d03754)
139-
6. Click "Confirm", now a new relationship has been created
140-
![relationship created](https://firebasestorage.googleapis.com/v0/b/firescript-577a2.appspot.com/o/imgs%2Fapp%2Fdiscourse-graphs%2FK8XAhCqrUL.png?alt=media&token=a559c477-c7f6-4b3e-8b00-ece7da5d4fec)
44+
To see the default settings or begin adding your own node and relation types, open the Discourse Graphs plugin settings menu by navigating to it in Obsidian's settings menu or using the command: "Open Discourse Graphs settings"
45+
46+
## Defining node types
47+
48+
To define a new node type for use in your vault navigate to the Node Types menu and click `Add Node Type`. Doing so will take you to an editing menu where you can choose the details of your new node type including its title, a description, a template to use, a color to represent that type in your vault, and more.
49+
50+
## Defining relation types
51+
52+
The Discourse Graphs plugin ships with four default relation types: `supports`, `opposes`, `informs`, and `derivedFrom`. You can add your own in the Relation Types menu by clicking the `Add relation type` button and filling out the text fields that define your new type.
53+
54+
## Defining relations
55+
56+
With nodes and relation types ready, the last step is to connect them in the Discourse Relations menu. Click `Add Relation` then choose a source node, relation type, target node, and then click `Save Changes`. These relations are now ready to use in your notes and canvases.
57+
58+
# Usage
59+
60+
## In notes
61+
62+
<picture>
63+
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/85bfcced-5627-4e38-ac54-588bf37df2d4">
64+
<source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/f3e27e4a-d50e-4634-905c-32fbca6b4eac">
65+
<img alt="Shows project promo image in light and dark mode">
66+
</picture>
67+
68+
### Creating nodes
69+
70+
There are three ways to create nodes in a note:
71+
72+
_Turn text into a node with the node type selection menu_
73+
74+
1. Highlight the text that you want to turn into a node
75+
2. Use the hotkey `⌘ + \` to open the node type selection menu
76+
3. Choose your node type
77+
78+
_Turn text into a node from the right click menu_
79+
80+
1. Highlight the text that you want to turn into a node
81+
2. Right-click on the highlighted text and navigate to the menu option "Turn into discourse node"
82+
3. Choose your node type
83+
84+
_Create discourse node command_
85+
86+
1. Search for and select "Create discourse node" from the command palette
87+
2. In the node creation dialog, choose your node type and the title of your new node then click confirm
88+
3. Your new node is created and a link to it is added to the location of your cursor
89+
90+
### Creating relations
91+
92+
To create a relation between nodes:
93+
94+
1. Open the page of the node that you want to create the relation for
95+
2. Run the command "Toggle discourse context" which will open a widget in the right sidebar
96+
3. From there, click `Add a new relation`, choose the desired relation type and the node to link with, then click `Confirm`
97+
4. The relation is now created and can be viewed or removed from this Discourse Context panel
98+
99+
## On a canvas
100+
101+
<picture>
102+
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/48a3a4ae-ac47-4f8b-8288-1d1ba3377ef2">
103+
<source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/6234a38f-be4e-4a83-bfe6-2d22ea1293e1">
104+
<img alt="Shows project promo image in light and dark mode">
105+
</picture>
106+
107+
The Discourse Graphs plugin uses [tldraw](https://tldraw.dev/) to create canvases in Obsidian. To create a new canvas, run the command "Create new Discourse Graph Canvas".
108+
109+
### Creating nodes
110+
111+
1. Click on the Discourse Graphs icon-button located in the bottom toolbar of the canvas
112+
2. Drag the desired node type from the menu that appears in the top-right corner of the interface onto the canvas
113+
3. Search for or create a new node with the input field in the node creation modal
114+
4. Click `Confirm` to add this node to the canvas
115+
116+
### Creating relations
117+
118+
1. Click on the Discourse Graphs icon-button located in the bottom toolbar of the canvas to show a menu in the top right of the interface
119+
2. From the menu, select the desired relation type that you would like to draw between nodes
120+
3. With the relation type selected, click and drag from one node card to another to create a relation between those nodes
121+
122+
# Commands
123+
124+
| Name | Description |
125+
| ------------------------------------- | ------------------------------------------------------------------------------------------ |
126+
| Bulk identify discourse nodes | Scan vault to identify notes that follow the title pattern to be a node |
127+
| Create discourse node | Opens the node creation dialog modal |
128+
| Create new Discourse Graph canvas | Creates a tldraw canvas |
129+
| Open Discourse Graphs settings | Takes you to the plugin settings menu |
130+
| Open node type menu | Opens menu that allows you to choose the node type that you wish to apply to selected text |
131+
| Switch to Discourse Graph canvas view | Renders tldraw canvas if markdown is displayed |
132+
| Switch to discourse markdown edit | Displays markdown of a rendered tldraw canvas |
133+
| Toggle discourse context | Opens a widget in the sidebar which displays relations of the active node |
134+
135+
# Documentation
136+
137+
For more information about Discourse Graphs, check out [our website](https://discoursegraphs.com) and [documentation](https://discoursegraphs.com/docs/obsidian/getting-started).
138+
139+
# Get involved
140+
141+
1. Join our growing community of academics, researchers, and thinkers on [Slack 💬](https://join.slack.com/t/discoursegraphs/shared_invite/zt-37xklatti-cpEjgPQC0YyKYQWPNgAkEg)
142+
2. Are you a lab or researcher interested in piloting the plugin with some guidance from the team? Send us [an email](mailto:discoursegraphs@homeworld.bio) or DM on Slack!
143+
3. Discourse Graphs is [open source](https://en.wikipedia.org/wiki/Open_source) and open to contributions. If you have an idea for an improvement or identify a bug open an issue here on the repo to start the conversation.

0 commit comments

Comments
 (0)