Mentat containers

For pretty much a year, i.e. the point at which Mentat became an app that you could run and create Things, the model of containment was very simple: you had Workspaces and workspaces contained Things. The end.

This had the benefit of being simple but it chafed. I had been pondering adding layers as a way of hiding Things that you didn’t want to work with. In trying to implement this I realised that I was skirting around the fact that I needed nested containment. And I was skirting around it because I thought it would be hard to retro-fit.

As it happens it was not as hard as I imagined and it lead to a great simplification of the model. Things can now contain Things and Workspaces are now Things, that contain Things (but not other Workspaces). At some point Workspace is going to be renamed Application which more suits the concept I originally had in mind.

Now I have nested containers implemented and a more consistent data model, which is good. The UI needs to catch up but that will come soon.

Containment was the last of the big ticket items from the original 1.0 roadmap. And so I get closer to a (private) release.

Database for life

How much information have I acquired in my life? Where is most of it? The answer to the former I don’t want to think about too much. The answer to the latter is “lost or locked away”.

I’ve long had the notion that I needed to build a ‘database for life’ in which I could store the information I acquire and want to use. That it should not get locked into silo’s but be available for new purposes and applications.

This is why I have tried to build a Mentat-like application about 4 or 5 times since about 1996. I want to “own” my information. That is, I want to know what I have, I want to build the new on top of the old, I want to relate things together, discover new things. And then I want to make use of it all.

In my concept of Mentat, it is able to grow alongside my information and use cases.

Introducing Mentat

Mentat is something I am going to be talking about on this blog so I guess I should introduce it so here it is…

The Mentat “System” workspace contains useful objects for building applications.

Doesn’t look like much, does it? Nevertheless, it is the culmination of over a year (I broke ground on 6th March 2018 at which point it was called “Codename: Galois”) of stolen evenings and weekends working on it.

In simple terms, Mentat is a tool for storing and manipulating knowledge to create new relationships and new forms. In this, is my response to the likes of Evernote, Tinderbox, and TheBrain.

While I have a lot of respect for each of these applications (I’ve been an Evernote & TheBrain user since the early 2000s) they all fall short of my vision of such an application. Here is a summary of why:

  • They are focused on notes and text. While it is important to be able to take notes, much information requires structure to be useful. Headings are not enough. Mentat represents concepts as a set of typed attributes. So, while Mentat is perfectly capable of being a “note taking” app it is designed to represent and work with structured information (essentially a note is a type of attribute it can work with).
  • They are not scriptable. Okay, this is certainly a lie as Tinderbox does have scripting support. But it uses its own, homegrown and rather quirky, scripting language which I could never get on with. I suspect a lot of Tinderbox power users are not programmers. Mentat uses Javascript and is gradually exposing a sane and consistent API to scripts.
  • They are not customisable or hard to customise. By which I mean you cannot turn them into other applications. They do what they do and it’s very hard to change their form or function. I give credit to Tinderbox that it tries to offer a lot of things people will want.
  • They do not see the world in terms of APIs. The ability to access data from other sources and to work with APIs is paramount to solving real problems. Mentat is designed to have 1st class support for talking to APIs.
  • They are silos. What I mean by this is that they are designed mostly to store and search for information. This is no doubt very useful. But I want to be able to synthesize new information and I want a tool that makes this easy(ier). Mentat is designed at the outset to let you create new Things and export them in different forms.
  • They do not facilitate a collaborative environment. Sure you can share folders and notes but this is very coarse-grained (not to mention a recipe for synchronisation errors). What if we could share particular objects of knowledge and their relationships and act on those as others change them? Mentat doesn’t do anything like this right now but its certainly an aim.
  • They do not fit me. They don’t work the way I want to work. This is a classic problem for all programmers. Being able to code means you can scratch any itch you like. It is also a curse because you keep wanting to scratch itches that you probably shouldn’t. This particular itch has been with me for over 20 years (this is at least my 4th attempt to solve this problem) so I guess I can claim I am justified on this one. While it may fit no-one else, Mentat will fit me!
Mentat represents concepts (which it calls ‘Things’) as a set of typed attributes.

A number of straws broke the camels back to set me off on building Mentat. They were the three, in some senses quite trivial, workflows that chafed a lot. The first was my ASPECT cards. I built these in Adobe InDesign using its ‘Data Merge’ facility. This takes a template representing a card and merges data from a CSV to create a set of card fronts or card backs. It’s pretty cool.

But the information that goes on those cards does not properly live in a CSV file. I tried many approaches to representing it. A structured note in Evernote, AirTable, linked thoughts in TheBrain. Nothing worked. In many cases, the problem got worse when I wanted to get updated questions or different sets of questions into a new CSV file.

The second problem was my database of quotations. I have collected quotations over many years and ended up storing them in a big note in Evernote. I could have broken them up into separate notes and tagged them but it always felt clunky to do so. Even properly organised though, Evernote didn’t let me do anything with them. At the end of the day, the only thing I can do is copy and paste somewhere else.

Lastly I collect questions generally. I want to make sets of these and turn them into “packages of knowledge”. No tool I could find would allow me to represent a ‘package of knowledge’ with questions, concepts, answers, systems, theories and so forth. Nor would they let me share these in any meaningful way.

Mentat started life to answer these three use-cases along with many others that came out of the woodwork once it became a “real” application and I could start playing with what I had made.

I had planned to release Mentat 1.0 on 6th March 2019. A year after breaking ground. Realistically, although it always seemed ‘close’, it wasn’t ready even for me to start using so how much less anyone else.

I recently discovered that Evernote spent 2 years (and with a team working on it) in private development. I realised my “one-year anniversary” thing was arbitrary & putting me under a lot of pressure so I dropped it. So Mentat 1.0 will be released approximately when I am happy with it. That might be towards the end of 2019, or maybe the first half of 2020.

Technical details. Mentat is a macOS application written in Objective-C. Most of it should be broadly portable to iOS and that got a lot more important when I discovered how much I love my 12.7″ iPad Pro. But an iOS release is a very secondary objective at this point.

If you are at all interested or have any questions please leave a comment or ask for an invite to the Brain Tools slack.

As a footnote, Mentat is also, to some extent, a homage to Dave Winer‘s Radio Userland. Sadly departed Radio was a wonderful environment because it treated users like grownups. That was something that, however much Dave’s personal choices chafed, I respected. So, like Radio, Mentat is quirky and opinionated. Like Radio, Mentat is designed to let you get under the hood and tinker. Like Radio, Mentat has a purpose but you can change that purpose to make it closer to your own. Like Radio, Mentat has a few bugs 🙂