Tsunami Information Management Engine
Tsunami is system for storing, manipulating, and finding information. It is like a wiki
, but with a crucial difference: there is more than just text and links to connect and describe information. In particular, it is possible to describe why
one piece of information links to another. In addition, tags
are an option for a first-pass, categorization of content.
Patterns, Differences, & Learning
From what I have figured out, my brain is incessantly discovering patterns and/or comparing patterns and discovering differences in them. I want to try to structure information so that these patterns (and/or the prerequisite data) can be codified, so that algorithms can be used for pattern discovery and for performing difference operations.
The next step is to allow other people to easily input into the system what they know. Then tsunami will take what they know, what they need to know, and perform a difference operation. Theoretically, this is absolutely crucial information for teaching that person new things. Hopefully, it is the most efficient way.
Worse is Better
This phrase comes from an attempt to differentiate two methods of software design
: people who follow this philosophy tend to err on the side of simplicity so that incorrectness is not introduced to the system. (See the link for a fuller description.) I believe that tsunami needs to break out of this idea, and strive for excellence in every aspect of its design. The code base must be [relatively] spotless, the documentation must be excellent, the user interface must be excellent, and the typography & layout must be excellent. Competence in all areas is crucial, because of this: I want TIME to help others be competent, do their jobs well, and do it with less stress. If I cannot dog-food this idea, then the idea is probably wrong and worthless.
Possibly obsoletetaming the tsunami of information
capturing and crystallizing knowledge
Information is everywhere, in myriad places, in innumerable formats. It is the job of knowledge workers to transform information from one form to another, moving it from system to [incompatible] system. I believe that this process has many inefficiencies, inefficiences that few people are addressing in any standard, unified way. I think software can be used much more effectively in connecting and presenting this information in a way that lets people do more with it in less time.
I envision TIME as a way to unify information or, more correctly, provide a unified method for accessing
information. Currently, it is a sort of wiki
with lightweight text markup
. It has tags
and fancy relationships
that allow one to connect one item to another via a third
. Ultimately, it will allow viewing of structured information (such as accounting information), as well as "unstructured text" (like this text here).
For the nerds out there, TIME is a directed graph with weighted edges that can themselves be nodes.
Interested? I would love feedback
The key is that any piece of information can be linked to other pieces of information with an intelligent link: one that contains information on why
the link exists. Instead of only knowing that a page contains a given tag/phrase, you can know which meaning of the tag/phrase was meant and why the page contains it. If the tag is "programming", does the page mention it with respect to jobs? With respect to configuring your DVR? Or perhaps with respect to the art of writing text that instructs a computer on exactly what to do? TIME gives you this power.
TIME depends on people to enter information, as opposed to processing text with linguistics algorithms. It is my firm belief that, if used to its full potential, the power that TIME could provide will dwarf that of any algorithm that is short of a true AI
. Clearly, TIME will not be used to its full potential by most people. The question is then this: at what point do linguistics algorithms gain us more than human-entered information? I believe the only way to answer this question is to try it.
TIME draft materialTIME
is meant to either store or link to all digital information one needs. Examples:
- contact info
- source control folders/files (link these to documentation)
- random notes
- calendar events/appointments/etc.
It will start out as a very limited version of this; right now it only stores flat text with markup syntax
that is supposed to be easier than writing raw HTML. Right now, TIME makes it easy to document features of programming languages, gotchas, etc. Ultimately, I want it to store project documentation with links to who is on the project, the events related to the project, the notes associated with the project, and any relevant calendar events. If there are several websites for the project, they can all be bookmarks to it.
The key is that all of these pieces of information are strongly linked to each other, and aren't just duplicate information. Maybe there are ten "John Smith"s in a large corporation, but the way TIME works, the link between pieces of data is unambiguous (for the database people, think of surrogate keys
I, Luke Breuer, know of no information systems which make the above possible. Moreover, if there are any, these information systems are probably specifically designed for project management. What if I want the same sort of linkage in a to-do list, or a help desk ticket, or for meeting agendas/minutes? As far as I know, nobody does this.
What is lost is the ability to run powerful queries. With which projects is John L. Smith III associated? What are his to-do items? What tickets has he submitted? In what meetings has he participated recently? All of these are useful questions; most systems make it extraordinarily hard to ask all of these questions efficiently. In fact, in most companies, multiple systems
have to be queried to answer the above questions. I want a single, easily usable system. That system, I hope, is/will be TIME.