dsl-pkm

I want a DSL for PKM. I think. I don't really have a perfect idea of what either of those things are but I think a DSL is kinda like salesforce templates or something, where you get some of the advantages of a programming langauge like Python but with more restrictions to keep it simpler.

I think a PKM is something like a markdown editor like Obsidian but with more links and structure and an opinion about how to represent data, so it's not just a mess of markdown.

I like free-form journaling. Like this. Just writing text in an editor.

I also like structured data. I love making heatmaps of metrics, building sql queries in metabase to analyse trends over time, creating pivot tables and summary views and trying to understand something through numbers.

They often seem to pull in opposite directions. I randomly read a journal post from last year after writing one this year. I don't remember writing the year-old one at all, but it was nearly the same as the one I wrote this year. That helped me see some qualitiative patterns in my life, but I'd love a way to make it more quantitive too.

The pattern I see is that general systems are too flexible - you can add tags and links and define your own concepts, but it's easy to just make a mess of text and data and then never have time to go in and refine and understand everything you made. Some contraints are good.

But habit tracking apps and journals are too restrictive. My way of doing things doesn't fit into their way of how things should be done.

I also hate commercial cloud stuff. I want to own my data and not be locked into a proprietary system.

I don't have a good solution, but I'm imaginging something that has the characteristics of

  • jrnl.sh - simple markdown 'append only' log, so I can add stuff and it automatically records the date and lets me export it or view it or search entries and all that good stuff
  • LifeLab - lets me add images, publish to the web, be cross platform, and some schema stuff I don't understand yet but I think is part of what I want
  • Metabase - let me add dynamic dashboards that show graphs and other visualisation and that update as I add more data
  • A DSL - this is the missing bit - I want a way to turn hastily written qualitative text entries into structured data.

I'm going to focus on the last bit because it's the only thing I haven't seen a good example of (though it may exist).

I think it would make sense to have predefined concepts. These could be things like Person, Place, Feeling, Habit, and maybe some others. It might also make sense to just let users define their own, but I think it's nice to be opinionated and show people your system and they can adopt it if they like.

Then I could write stuff like

I met person@{John Smith} in place@{Cape Town} today. I traveled to place@{Joburg}. I ran habit@{2km in 12 minutes}. My friend person@{Tom} told me about his SaaS that is doing a bazillion dollars in revenue and he doesn't need to work any more and I felt feeling@{jealousy}.

Maybe these could be even shorter for easy of data entry, especially on mobile devices. So it could be p:JohnSmith or pl:CPT or something. I think with AI it would be easy to have a post processing step that cleaned up inconsistencies and matched different versions of the same name or habit to a single name in a database.

Or maybe even symbols like %CapeTown @TomSmith ^2km:12min. I don't know. The frontend/editor would probably also need some kind of autocomplete so you can do @To can query all the people I've mentioned in real time and show me a list of matches so I can select one and keep typing, or add one, use it immediately, and keep typing.

Then I have a free-form stream of consciousness journal entry, and something in the background reads that and turns it into a database. And maybe also creates weekly, monthly, and yearly summaries for me? I'd love a view of this where it could give me a one-line summary of a year, which I could expand and see 12 one-line summaries of each month, which I could expand to see 4-5 one-line summaries of each week, which I could expand to see a one-line summary of 7 days, which I could expand to read the entire entry. Or I could search by a person, place or habit, and see summaries of those days, which could be expanded into the full entries, etc.