Structured data in Joplin - does someone do this? How?

I'll start by outlining what I mean by the title; then my question is, does somebody do something like this? How/with what tools?

Motivation: I try to keep my notes 'orderly'. That is, for instance: whenever I add a new note for a book, I try to keep the same structure and headers where applicable. That would let me query all my book notes for just the ones that have a Goodreads review, for example.

However, that is not great for more structured data, or smaller pieces of it. If I'd like to keep a name of the series the book is a part of, or the year where I'd read that book, I can put it in the text body, but it's rather unwieldy. At first I wondered about having some sort of 'note metadata', but in the end it would be better to have the data directly in the note where it is visible.

Using yaml frontmatter seems to be a popular way of going about this, even though I'm not a fan of having a big blob of machine-readable text at the top of my notes.

For Obsidian, there also is a plugin called Dataview that lets users display results of queries over data contained in such md+frontmatter files in tables, so it's possible to do things like 'show me a table of books from 2021 that have a review and are not a part of a series'. (The plugin also seems to support various other cool things.)

I have looked, but haven't found anything similar in Joplin. Anybody got anything similar working?


Theoretically, it is completely possible, and the database is joplin.

1 Like

Dataview looks cool. I don't have a lot of experience with this, but your example sounds like it can be achieved with the Note Overview plugin, along with a tagging system of your own design (for example: #book, #gr_review, #series, #read_2021) and some text in the body of notes (author, all related names and titles, perhaps the year it was read too, etc.). It cannot extract the metadata and display it as neatly as in Dataview, but you'll get a nice table that matches your query and automatically gets updated.

Here's an example of a Note Overview header that mixes free text and tags in the search query:

<!-- note-overview-plugin
search: "year read: 2021 tag:book tag:gr_review -tag:series"
fields: created_time, title, tags, excerpt
alias: created_time AS Date, title AS Title
sort: created_time DESC

Yeah, I do use Note Overview and I like it. (Even though I've completely messed up my notes and Joplin a few times with it. :rofl:)

Your idea does have some merit, though it wouldn't work well with the rest of my flow, so for now I won't be going with it. We'll see.

Thanks! :heart:

I'm working my way up toward this level of note-taking, since I've only just began recently, but this is something I'd like to work with as well.

Anytype is designed around making "universal" data that gets structured with "Types" and sorted in "Sets", using "Relations" to connect the data together.

  • The app is in the Alpha phase and you have to sign up to a waiting list to use it, but they're doing on-boarding sessions pretty frequently so its not a long wait..

This app is rediculously open-ended that my novice mind can't even fathom actually using it yet. I figure, once my note-taking skills improve, it'll be easier to understand. Maybe this supports what you're trying to do?

Perhaps, investigating how this app structures data could result in a new Joplin plugin :thought_balloon:

Well, I wonder where your journey takes you. I will definitely not be using that app; while I am interested in knowing how other apps work, I concentrate all of my notes and various other things into Joplin. I may end up attempting a plugin like this, but I would have to finish my other side-projects and overcome my dislike of javascript, first. :grin:

Hello, I am not completely sure I understood what you are looking for, but can't the templates be a possible solution? You can create templates with predefined variables, and when you insert a template into a post you'll get a pop-up asking what are those variables.

Of course, this would add all the content as visible plain-text in the note, but it would let you share then same format/structure without having to copy-paste/repeat every time.