Tooling for a Personal Operating System
Share on Twitter
Any tool should provide these critical concepts for a user to have an effective personal operating system:
- Quick capture - a user must be able to easily capture the object with simplicity while also being able to make a capture more complex. As an example, I should be able to capture a simple daily log ("started working on a blog post") or capture a book (by its title) and easily input the author, my status of reading it and automatically capture that it is of a type (a reference to a Books object)
- Objects - An object is a "document" or "file". The important part is that it is abstract enough that it isn't required to have any special attributes for it to work.
- Properties - An object should be able to have properties: extra data that can be attached to the object. This extra data is the key to being able to easily filter and bucket objects. It lets a user see "what is alike, what is different and what is unique". For a book, a property could be author (and it's a reference to an author object) or topic (and its a reference to a topic object).
- Contexts - A context is the way a user thinks about their data. The flexibility of context is largely dependent on the flexibility of properties. As an example: A "book" is a context ("what is this?") and will have similar properties based on the fact that it is a book. Context can also be "what time of day is it?", "where am I?"
- Views - A view is a concrete way to view data (rather than organizing it). A view allows a user to say "I want to see all objects with these properties in these contexts". The view is the "focus mode" of a context. As an example, a view would allow me to say "I want to see all books that I read last year." And give me a list of the books that I read last year. I can add as much context and filter by as many properties as I'd like. The critical part here is that a view is an alternative to the need to organize to see things based on context.
- On Properties: Properties should reference other objects as much as possible, rather than being "plain-text" values. As an example, if I read a book by "Douglas Adams", the property should reference an object with the name of "Douglas Adams" that is its own document or file with its own data about "Douglas Adams". Within "Douglas Adams", because it's a reference, I could create a view that shows me results for every other object that references "Douglas Adams"
- If a tool provides these 4 concepts, it opens the doors for better capture, thinking and pattern recognition