I’ll throw in Scapple | Literature & Latte as another good example of this.

5 Likes

I really like this idea. Having concept maps would be super useful.

This is something Emile and I are considering already. The idea is to use the Juggl API to visualize the Breadcrumbs structure.

I am curious, doesnt Excalidraw allow you to do most of this? Iirc, you can add links in the drawing, so you have the freedom to create the map however you want, and can create links.
But this does have limitations too.

If this were an entirely new plugin, I don’t think storing the graph would be a problem.

5 Likes

I think something important is to keep using regular files, using markdown+metadata.

As an example you can look at the excalidraw plugin 1.2.0, it allows you to have links and the text is kept in markdown so it’s searchable, replaceable, etc.

1 Like

I do the same, also diagrams from software diagraming tools like Magicdraw or
Archimate. The problem is that suddenly we rename something and these changes are not reflected. We need a tool for thinking that helps to maintain our diagrams.

1 Like

This is a brilliant idea! And it’s great to hear that SkepticMystic and Emile are considering something like it.

I like the way CmapTools generates a text outline of the concept map. In that program, if the concept map has any circularity, the text outline can be expanded “infinitely”, but I think there would be a workable way to encode the concept map in a Markdown file. For example, if we say that * indicates a ‘card’ and - indicates a link, the Markdown text for @callan’s concept map could be something like the following:

* [[Co-design]]
  - is
    * A form of participatory design
      - with roots in
        * [[Scandinavian design]]
      - with roots in
        * Corporate and industrial design
      - that
        * Shares power
          - similar to
            * [[Action research]]
        * Involves non-designers in the design process
  - can be
    * Can be difficult for government to implement
      - because
        * Shares power

The parser would either need to recognize that lines with the same text should be the same card (both occurrences of “Shares power” in this example), or else there could be a way for the parser to work with block references, so that the second occurrence of “Shares power” would be a block reference of the first.

So, the hierarchy would simply be a way of encoding the relationships between linked cards, and it would not enforce a tree structure. (Map position and so forth would need to be encoded separately.)

Ideally, with this kind of approach, one could edit text either in the underlying Markdown file or in the WYSIWYG whiteboard.

(Is this sufficiently in keeping with the original idea?)

3 Likes

Some ideas here from me:

  1. I like the idea of having nodes that are not notes in your vault. Indeed, for things like ‘arguments’ or things that clearly aren’t ‘entities’, I’d not create a note either. The challenge is in representing this in data, as you mention. That is, where to store the text on a node? Should it be in some file that links to it? But some nodes (such as ‘Involes non-designers in the design process’) does not have any incoming links from a wikilink! So I like @lucasd’s idea, but I don’t see where to store this if you were to create this in a WYSIWYG sense.
  2. Storing a graph with positional information and hidden nodes is already possible in Juggl, but not in a Markdown-like format. This sounds really hard to do, and I doubt it’d be useful in any sense (it’d just be a huge list of coordinates and links to nodes…). I think storing it as a regular data/.json file should be enough there.
  3. WYSIWYG for Juggl is somewhat in the plans (see https://github.com/HEmile/juggl/issues/30 and https://github.com/HEmile/juggl/issues/71), however writing text on a node like in Miro could be challenging. I think it might be possible there, though!

If you don’t need to explore the graph like in a graph view, I do wonder how Excalidraw would not work here, as others have mentioned :slight_smile:

2 Likes

I hadn’t tried Excalidraw for this. I have been giving it a shot this week. It nearly works for it. Or, should I say it does work, but it feels pretty clunky. The main issues for me are text and boxes (cards) are treated separately, rather than text within a box. Same with labels on arrows, so once you start getting a larger concept map it can be pretty fiddly to move things around. I know this sounds like a bit of a petty gripe, but when you are trying to get flow and map out ideas having to constantly fix the styling really breaks your flow and you end up fighting against the software rather than mapping.

I think the way Excalidraw tracks text elements eg ^m4TvMX0P could be useful though?

I have had good success adding CMAP concept maps to JIRA and CONFLUENCE by

  1. rendering the image of the concept map to .PDF (cmaptool does this)
  2. embedding the “.cmap” file as data within the .PDF (mupdf can do this)
  3. adding the .PDF to the JIRA issue or Confluence page (normal .pdf add)

The same idea can work here with Obsidian.

  1. Obsidian can store and view .PDF
  2. .PDF can contain binary data and hence store the .cmap source
  3. Plugin can retrieve .cmap source, manipulate/query as desired with cmaptool, and pass information to Obsidian.
3 Likes

I came after reading about this in Obsidian Roundup, and wanted to make this idea more rigorous and general as it is in my head: think of the “WYSIWYG editor” as having these different types of views:

  1. Lists/Outline
  2. Kanban
  3. Calendar
  4. Concept-map (as told by OP, I just called them mind-maps though)
  5. Timeline
  6. Table
  7. Draw (freehand, shapes)
  • The “views” 1, 2, 3, 5 and 6 are available in Notion and we have 1, 2, 6 and 7 in Obsidian itself now.
  • These “create notes” from themselves, as opposed to Graph view, Calendar community Mind-map community plugin, etc. making use of available notes to create a “pre-view” of them.
  • A simpler example (1): working in an unordered list we “Outline” the information and adding a [[ ]] creates a potential note from that list itself.
  • Next up we have Kanban (2) that creates a visual “board” for the information.
  • (6) is partly available in two ways: Dataview or making a simple table itself (and that in my opinion is a superpower!)
  • I would really love all the others too be available in Obsidian too~!
1 Like

You can do this with Excalidraw, though its not quite as seamless as I’d like.

Here’s an example of a new app that puts these spatial whiteboards/surfaces front and center alongside docs/notes. It’s a really nice UX. https://cloverapp.co/

I don’t know if juggle needs it, but the markdown-like format helps to keep consistency through all apps: Lists/Outline. Kanban, Calendar, Concept-map, etc. It enables ‘refactor’ and keeping names and links consistent.

A good example of such diagraming tools is the ones dedicated to software architecture… .(magicdraw, archimate, etc)

I believe this is useful in setups where you have several diagrams with few nodes each (<100), interconnected through links

This is a great idea — drawing concept maps where each “card” or node is a note in the obsidian vault.

I posted a request similar to this one:

Developing ideas by working with notes on a canvas

Not sure if this adds anything useful to the conversation, but one idea I played with (and am still considering) for the Kanban plugin is doing something like this to store arbitrary data:

- Card one ^id1
- Card two ^id2



...at the bottom of the file...

```kanban:data
{
	id1: { ...whatever },
	id2: { ...whatever },
}
```
3 Likes

Fair enough, and I think in your example that makes a lot of sense (especially since each note clearly represents a unique Kanban). But for Juggl, those would be like 500kb json files, that are only going to be interpretable by Juggl. I’m not really comfortable appending those to user files I think.

1 Like

Something like that would be great

Are you and @Emile still considering something like this? :grinning:

This looks similar to Argdown or flowchart.fun

Argdown

Flowchart.fun

I’m right up there with you on this. I’ll also add, having consistent shapes and colors that represent those notes. I imagine this might have been what you were getting at with:

To the first point, here’s a couple of github threads where they discuss possible changes in the core of Excalidraw, that could one day then come to the Obsidian plugin. If you are interested:

Sticky notes · Issue #1428 · excalidraw/excalidraw
Link the text inside a shape to the shape · Issue #1010 · excalidraw/excalidraw

To both the second and the first, I think it may be possible to use QuickAdd to achieve this. It’s on my todo list to explore soon.

Here’s a Youtube Video of a similar walkthrough / example of QuickAdd + Excalidraw

Other Note / Concept Map Examples

4 Likes

Does anybody know the Post-it Android app by 3M. It allows you to capture your post-it notes board into the app and work on them. It also integrates with Trello and Miro.

I would add draw.io open-source diagramming and mapping tool to the list of suggestions.