Emacs org-mode is very powerful tool for personal knowledge management, but can be hard to learn, makes it hard to have the same content (notes) referenced in more than one place, and can be awkward for the hands.
Finding other tools inadequate for various reasons, I wrote OneModel to meet my own needs, and made it available. If you touch-type, it is extremely fast for to-do lists and notes of all kinds, and I generate the project web site from part of its data. It is much easier to learn and faster to navigate than emacs, and you can have the same content in as many places as desired, without duplication.
But it wants to be more: It uses an internal structure that has big future ideas for knowledge management, like embedding code within groups of entities, or linking across OneModel instances, so you can choose to share data from your personal organizer, or subscribe to (or copy) data from other instances: like a wikipedia but where the internal knowledge is structured so can be used for computation, rich queries etc. Imagine asking a system: what villages in history had economic improvements in a 4-year period, all external conditions being equal, and what do those cases all have in common?--that is the long-term vision of the system. The vision and internal structure are intended as be a prototype of a platform to manage all mankind's knowledge as a usefully computable whole.
The web site has a few screen shots (remember it's an ugly prototype but works well! -- I have my calendar/life notes/todos/contacts etc in it now) and a demo system to play with without installing anything.
(It is written in scala, using a simple/approachable coding style that should be readable by most programmers with just minutes of scala knowledge--I hope--and uses postgresql for the data.)
I frankly don't mind if someone else takes the ideas and does a better job with them: we can do better than managing mankind's knowledge in the form of huge sophisticated piles of words: words are not the real knowledge but a superstrate over it, and they are hard to compute well. Feedback welcome.
I share much of the same vision as you seem to have. I'm working on building my own system, which would best be described a an entire software stack along these lines.
- I definitely value ease of use- I definitely value programmability- I definitely value ad-hoc search- I definitely value data-driven relationships
With all that being said, I want to share a few areas where we part company, just because I feel you might benefit from the perspective:
- I don't currently value emacs (guess I found vim simpler)- I don't value keyboard bindings nearly so much (I prefer GUIs)- I echo some of the comments I've seen with regard to language in addition to data relationships; narrative flow matters (to humans), especially for documentation (hard to build into a data model)
You're right about GUIs: it's necessary (with mobile) to make software acceptable to most customers. I (or may I say we?) just haven't got far enough.
The bridge between data and narrative flow is important. I wish I had something smart to say about it. It will have to be resolved, perhaps by getting people used to the system. To me, it "just works" because the narrative flow goes entity to entity with a single keystroke, depending on what I want to see more about, next. And the UI presents relationships to entities or attributes. So there, charitably, is noun/verb/object. I also think that alternative presentations of the data are very important. Like, imagine (for data where it fits), auto-generating a mind map, image, or cartoon-like representations, or whatever mode is most useful depending on the context, device, user need, and available data.
So, I hope we could agree on all points, by saying that the narrative flow is a presentation mode based on the same data.
In fact, maybe that is what we do in our minds all the time: if one knows both Greek and Hindi, and looks at a flower pot, they know what will happen if they pick it up, or tip it over, because of experience. OM wants to represent *that*, at the lowest level. Putting that into words in either langage is the next, and frankly optional, step, because the words may differ but the knowledge is the same. OM wants to handle *that* too, and I think you're just making the excellent point that the humans really are key here, and we need to work with them in the right ways, by presenting data as narrative, or in whatever other way fits.
What do you think? I would love it if we could work together in ways that are good for all concerned. There's plenty of work to do, from about any angle you look at this problem, and probably we can do more good together than separate.