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.
(Score: 4, Insightful) by requerdanos on Saturday April 23 2016, @11:31AM
I've used things like askSam [pcworld.com] (a document indexing system), Task Coach [taskcoach.org], and lots of things in between, for management of lists and information. And I see the room for improvement, and I see how I have had to change my workflow or even my data to fit it to a useful format for the software in use. I long for something that just takes my information, ideas, and data, and holds it in a way that's just right no matter what.
But...
After having spent 15 minutes or so following the links in TFA (the fine advertisement), I am no wiser than I was after simply reading the above buzzword-laden praise prose.
I guess I am saying that it doesn't help me a lot to know the philosophy of the program, or what it isn't, or how it aims to be an extensible flexible omniscient system for organization of the base atomic units of consciousness of the human race in computable form to capitalize on the synergy of etc. etc. etc....
What I was sort of hoping to learn was this: What does it actually do?
If that can't be explained from "selected data from the program" dumped to a web page (doesn't seem to be, anyway), how about something like a 4-5 minute video showing someone taking actual ideas and turning them into a "OneModel" fix-all do-all representation?
(Score: 2) by maxwell demon on Saturday April 23 2016, @11:41AM
I actually checked the public demo, and couldn't really figure out how to use it. All very confusing.
The Tao of math: The numbers you can count are not the real numbers.
(Score: 3, Funny) by RamiK on Saturday April 23 2016, @12:47PM
That's hardly fair. You could state the same regarding emacs in general.
compiling...
(Score: 0) by Anonymous Coward on Saturday April 23 2016, @12:53PM
emacs has history, heritage, infamy, buncha stuff like that. This thing got jack.
(Score: 2) by RamiK on Saturday April 23 2016, @01:08PM
Sure it has all the bells and whistles, but does it give you carpal tunnel syndrome?
Disclaimer: GuidSD user that edits his config with nano while installing until he can install vi like the good FSM intended. Well, vis actually. Vi \ vim makes me cry for all the poor children in Uganda and the poor developers forced to maintain that spaghetti code.
compiling...
(Score: 1) by lcall on Saturday April 23 2016, @01:40PM
Maybe this would help explain. Start at the top, or search for "gift ideas", for info on how I use OM and how that usage compares with emacs:
http://permalink.gmane.org/gmane.emacs.orgmode/104696 [gmane.org]
(Score: 2) by hendrikboom on Saturday April 23 2016, @11:59PM
That's exactly the kind of information that needs to be in the OM tutorial -- how to search.
(Score: 2) by maxwell demon on Saturday April 23 2016, @01:04PM
I disagree. While it takes some time to learn to use Emacs effectively, the basics are quite simple. I at least didn't have problems editing files with Emacs right from the beginning.
The Tao of math: The numbers you can count are not the real numbers.
(Score: 1) by lcall on Saturday April 23 2016, @01:47PM
I've noted elsewhere, but in case a direct reply helps: I've tried to compare/contrast it more thoroughly with emacs in this discussion:
http://permalink.gmane.org/gmane.emacs.orgmode/104696 [gmane.org]
(Score: 2) by requerdanos on Sunday April 24 2016, @02:26AM
Would it help to know that I have never, not once, used emacs?
(Score: 2) by hendrikboom on Sunday April 24 2016, @12:23PM
The only thing that made emacs usable for me is that for ordinary editing it used almost the same keystrokes as the PerfectWriter I used long ago on DOS. So I just went on using them when I moved to a better operating system. I regularly use maybe ten control character combinations when I use emacs. Most of its power is unused.
No, I don't think vim i any better in this respect.
Back on DOS, before hard drives, PerfectWriter was pretty neat. Not much better was available there back then.
I'm not looking forward to learning another set of unconscious keystrokes for OM.
Even emacs's infomode is beyond the pale.
-- hendrik
(Score: 2) by hendrikboom on Sunday April 24 2016, @12:26PM
Perhaps OM needs a different user interface.
(Score: 1) by lcall on Sunday April 24 2016, @02:01PM
Thanks for the question. Maybe I'm starting to see better why people think it's hard.
The thing with OM is:
1) everything is on the screen, and reading it should be all you need to do at any given time. There are only 10 things options didn't create yourself at any given time, and only about 2-4 you'd use often. 1 2 and 4 being the main ones. That's why I haven't made a "user manual" (yet anyway)--there isn't much to tell that one can't get by reading the screen and trying it (or so i have hoped). And,
2) everything else on the menu is something that was created and put there by the user, you, and arranged by you, and those get letters or other characters assigned dynamically. So if you create one entity, it is 'a', and you type a to go to it and do more with it. If you create a 2nd entity (sibling to a), it is b unless you reorder them with menu option 2. Next being 'c', and so on. If you create something new under 'a', it is 'a' when you are inside the first one. They are yours and you can make them however you want which is in effect making the keystrokes familiar. Sometimes I get mnemonics out of that ordering: I have one set of things (shown on the OM site also under getting started), one of my top menus or groupings I use , where I can remember what to type because mentally I associate them with letters of the alphabet and in that particular case it's handy. In other places I just get used to what I have put as 'a', 'b', 'c', 'd' etc.
It is really easy to use I think, once you do it for a little while.
Then maybe you can tell me what I need to say to new users to make the first couple of steps easier! :)
(Score: 1) by lcall on Monday April 25 2016, @05:12PM
(...is what I should have titled my previous reply, just above)
(Score: 1) by lcall on Saturday April 23 2016, @01:37PM
The idea is, if you read the screen and try what it says, it just works. Like:
In my OM instance, I can find my notes on a given topic, like gift ideas, for example, by simply typing "5gd" which jumps me to there. Or other combinations to find it on a different contextual path.
You can move an entry up 5 by typing 22, or down 20 by 26, or up a level with 28, or down a level with 7x (to select the target entry), then 27.
You can create relationships to other existing objects by typing 42, typing in a search string, and hitting x (or whatever letter from the search results).
It's all on the screen.
Maybe a demo video would be a better way to try to convey it.
(Score: 4, Interesting) by linuxrocks123 on Sunday April 24 2016, @05:17AM
I did something similar to what you did a while back, but kind of different, too. I wrote MailTask [github.com], which is an email manager, but contains within it a todo list as well, and the todo list is automatically populated with new or updated tasks when emails come in. I need to write docs for it, but it's definitely awesome, for me personally at least. Techies could probably get it working without docs if they really wanted to, hence the link
I'd love other people to use it ... and since your submission got accepted, after I write docs, I'll wait for the queue to be near-empty someday and a story on MailTask as well :) But, even if other people never do, it was still worth it for me to write it -- because I use it and like it.
I looked at OneModel and it doesn't look like it's for me; mind maps etc. were never something I found a lot of use for. But thanks for sharing.
And regarding some of the jerks who posted (I saw at least one), don't listen to them; there are always jerks. And, I hope you get some more users, but, even if no one else ever uses it, you wrote something useful to you. And that makes it worth it. Congratulations.
(Score: 1) by lcall on Monday April 25 2016, @06:00PM
Thanks. Best wishes! Feel free to stay in touch at onemodel.org if the mood ever strikes you. :)
(Score: 2, Interesting) by lcall on Saturday April 23 2016, @01:29PM
I guess I'm not good at making things clear; sorry about that. But I use it to organize all my thoughts, and to get around really efficiently because everything is basically a single keystroke (or a few) away. It is both, today, a more-efficient note-taking tool (collapsible outlines, textual mind maps), but has an internal structure to model knowledge more independently of the words. Wikipedia for example, has very many words. But is not very easily computable. OM is designed to be computable (that part is future, but that's the idea).
The philosophy of the program ... if the web site's explanations aren't enough, then I need to get a tech writer because I really put a lot in there. If you think of what an object model is (in a way: objects with names, relationships between them, attributes), that is what the app lets you create. And (though it's not fully working) assign classes to objects. Then, in the future, code to classes.
So it's an object model built on the fly. So now the app lets you not only create the equivalent of collapsible outlines (more efficiently than org-mode and letting you put the same thing in more than one place). But now we also have as a representation of knowledge, that really lets you store anything you want, even as complicated as "John is moody because he thinks Sally thinks he forgot their anniversary," not necessarily as words but as *data*: thoughts vs. expectations, relationships between people, dates, etc. The various attribute types assignable to entities, relationship types that can be created, etc., should all allow that, though it is not fully demonstrated. I guess I didn't make that clear. Maybe I should make videos and whitepapers.... We really hashed it out in some of the design discussions years ago, and I demonstrated it fully then I thought, but maybe I'm not explaining it well now.
Consider a simple pen on your desk. What you know about it can be expressed as numbers, relationships, and code: mass, owner, manufacturer, component parts, newtonian physics, etc. You may not choose to model all those things (= put them in OneModel) in some form, but you definitely could put in the parts about it that you desire. Then mentally extrapolate that to scale up to all the knowledge you care to express (ie, whatever you make notes about), in the single system (which I believe can handle it, especially with all the future features in place, but it can now too, really).
Then (this part isn't developed yet but is the real power that I envision), you have data and I have data that relates to each others' data. We can link those, like web pages or wikis link to topics. But we because it is an object model, and has a structure, the linking (or subscribing, copying, whatever fits) can be done in a way that is also structured, and can have code around it to make the pieces fit and work together well. Maybe I'm also not explaining that well.
But at that point, we have shared our knowledge with each other, in a structured way. We have integrated our two systems in a way that, unlike wikipedia, is highly computable. And unlike emacs, is easy to learn and use (or so I have thought), and more efficient (physically, for the hands and mind, for entry and navigation).
Now mentally add another feature (which like the sharing noted above, also isnt' there yet because there aren't enough users to warrant it): A given entity in the system is the same entity regardless of its name. Just like in the real world, a house can be a casa or a domo or whatever but its *data* is the same thing: it has the same numbers, relationships, and code. Thus, knowledge is independent of human language. We can share the same knowledge across cultures, if we choose to, because it really is the same thing regardless of the name you use for it.
I think the above, combined with the network effect, can allow us to organize mankind's knowledge as a whole. I'm sorry if I'm still not explaining it well. But I appreciate very much the chance to try.
I'm giving this away for free. I might sell binaries or hosting, but it's all there for free, with code. I think it is really useful. OTOH, maybe I wrote it too specifically to my own personal requirements or something.
I tried to explain these things in the web site in the various links under "vision"--but does the above do any better?
(Score: 0) by Anonymous Coward on Saturday April 23 2016, @01:42PM
Let me help you out. What does it do? How is it better than alternatives?
(Score: 1) by lcall on Saturday April 23 2016, @01:44PM
Today, it is like a collapsible outline, note-taking system, that is really efficient from the keyboard to navigate, and where you can link to any content from anywhere (unlike most anything with text files, AFAIK).
(Score: 1) by lcall on Saturday April 23 2016, @02:11PM
You can take notes with it. Rearrange them easily, up and down in a list, or up/down in the hierarchy. Link them to each other. Navigate across links with simple keypresses. Make deeply nested lists. Link lists to lists. Compose long paragraphs and attach them. Or do more complicated things if desired, by creating relationship types and using those.
It's better than the alternatives because the navigation takes fewer keystrokes, you don't have to read a manual (it's all on the screen, or so I thought), you can have the same thing in as many places as you want (unlike org-mode AFAIK), it is Free (some alternatives are, others are not), and it has immense future potential for becoming a better-structured wikipedia, if we work together.
Yah, needs a video.
(Score: 2) by hendrikboom on Saturday April 23 2016, @05:43PM
Just getting a tech writer isn't enough if the tech writer doesn't know what to write. The skill of a tech writer is in organising and presenting information clearly, not in figuring out what the information is.
Wandering around your website, it looks like a mind-map listing the things you'd like an information-organizing system to do. The kind of things a marketing manager would want customers to believe, not the kind of thing a technologically-inclined person would want to understand in depth.
It doesn't explain its architecture or its engineering except to mumble something vague about objects and relationships.
I did sign up for the mailing list, by the way, hoping I might end up learning something definite.
-- hendrik
(Score: 2, Informative) by lcall on Saturday April 23 2016, @06:14PM
Thanks, especially for your candor. I accept your comments about the site. Your being on the regular list (not just announcements) would let me ask if my later improvement efforts help enough. Feedback is something the project has really needed.
How is this for an initial description of the architecture (beyond the "About" page then "what it is today" link, which mentions simplified scala and postgres):
- everything is an "entity", represented by the entity table. An entity has a name (or in the future I hope, any number of names, with one chosen for display based on context or user preference). Names can be 160 characters long (it just "felt" right as the length for making & rearranging rough individual notes, without the note becoming a paragraph which goes in a TextAttribute). In addition to attributes, entities have a creation date (i'm thinking of adding an edited date), an "archived date" (which makes them hidden from most use, which I currently use to mark off done tasks or past calendar items; calendar items, BTW, I just write like a to-do entity, with a quick date in a list, and sort them, then ck it each day, which isn't ideal yet but works better than the other stuff I've tried). Entities also can be marked as public, non-public, or null (not specified), and data exports (to text outline or html) can filter on those values.
- entities have attributes, including:
- QuantityAttribute (per a Martin Fowler book), with number, unit and type: for example, 5 meters length. Meters and Length have to be defined as entities (not done automatically yet, nor made sharable...maybe should be as part of sharing, or user feedback). QuantityAttrs also have a date on which they are known valid, and a date on which they were observed, which the UI lets you use or ignore by just hitting Enter.
- DateAttributes have date and type, for example 2010-1-1 and "birth", where "birth" is an entity.
- BooleanAttribute similarly has a boolean and a type, and valid & observed dates.
- FileAttribute (lets you add blobs/whatever to entities) has file content and metadata, including the original path and md5sum, and other metadata.
- TextAttribute lets you put in arbitrary text, including very long, and I use it for paragraphs, quotes, or stack traces, but the original intent was more to put in something like a serial #. It also has valid/observed dates.
- RelationToEntity: link entities to each other. One can be specific and make types (...is child of, lives next to, owns, whatever kind of relationship...), or use the UI quick option which is just "has" (and comes predefined in the system).
- RelationToGroup: of debatable use now, but might become more useful when code is associated with classes. Today, groups of entities are created when importing data from a text outline. Groups can also have class uniformity optionally enforced.
Not many conveniences are there yet (sharing/distributed instances, and better UIs are obviously big), but I think with some thought when using OM, that should let one "model" just about any knowledge, at least as much as what one might ever personally enter into a system.
Details on the data are in this file: https://github.com/onemodel/onemodel/blob/master/src/main/scala/org/onemodel/database/PostgreSQLDatabase.scala [github.com]
What else about the architecture would help?
Do you think I should put material like in the "About" / "what it is today" / "internals" page, or refactor those & put it somewhere else, or neither?
(Score: 2) by hendrikboom on Sunday April 24 2016, @12:36PM
Yes, this presentation helps. It should be in the "about" page. It says what the conceptual model is. It could even be what everyone here is asking for. The demo version gives me not a clue what's going on. I think I need this information just to understand what the screenful of instructions mean.
-- hendrik
(Score: 0) by Anonymous Coward on Monday April 25 2016, @02:47AM
Personal pet peeve for information management systems like this:
Why must everything be named? Anonymous entities/content can sometimes be a godsend, especially when dealing with "indexed data" which only really differs by the index value.
(Score: 1) by lcall on Monday April 25 2016, @06:10PM
I agree. This probably should be accounted for in OM when there are use cases (with users) driving the priority.
Because all the conveniences aren't in OM yet, sometimes I cheat just by putting whatever is the info, in the entity name. But that doesn't lend itself to computability long-term and isn't a good practice once the ability to use code or have object templates is in place.
(Score: 0) by Anonymous Coward on Monday April 25 2016, @02:38AM
So, a lot of what you are describing as your vision sounds to me like the vision behind the Semantic Web. I feel you would be well advised to read up about the Semantic Web, and figure out how to leverage the existing information (especially ontologies) that is being developed toward that end. That would allow you to focus your efforts only at the remaining portions of your data model, which are the more subjective ones, which is probably what you really want to do anyway, I'm guessing.
Wikipedia even recognizes this to some degree. There is (or at least used to be--haven't checked in a while) a project called Semantic Wikipedia, to elicit structured data to undergird Wikipedia articles.
(Score: 1) by lcall on Monday April 25 2016, @06:22PM
Thanks for bringing that up.
1) I think the data model needs to evolve farther and faster than any individual or consensus will allow, so any ontology breaks down when trying to cope with our very-much-in-progress-for-a-long-time effort to understand reality and write what we learn.
2) That has the problem of being based on human language, which is fickle etc etc as I've tried to write somewhat on my web site, if you browse through the links under "vision" (which itself is buried under "More about..." or FAQs):
http://onemodel.org/1/e-9223372036854615514.html [onemodel.org]
...and under the FAQs where I mention the semantic web (currently the 5th bullet here):
http://onemodel.org/1/e-9223372036854624401.html [onemodel.org]
. If you have time to digest some of those things to see how the OM vision differs from anything that uses words at the lowest level, I'd be very interested in your feedback.
(Score: 1) by lcall on Saturday April 23 2016, @01:58PM
BTW, your suggestion is good. If you subscribe to the announcements list (on the web site under "community.."), and I make the video, I could let you know about it there.
(Score: 2) by requerdanos on Sunday April 24 2016, @12:23AM
Subscribed. And thanks. My frustration at my failure to understand are, of course just that: My frustration, and my failure. Thanks for the very constructive responses.