[Vimoutliner] Extending VO
Steve Litt
slitt at troubleshooters.com
Thu Mar 27 12:40:06 EST 2008
On Wednesday 26 March 2008 21:57, Steve Litt wrote:
> On Wednesday 26 March 2008 20:22, Scott Scriven wrote:
> > * Steve Litt <slitt at troubleshooters.com> wrote:
> > > What's an object tree?
> >
> > In short, it's the name for the idea you described.
> >
> > It's a pretty generic term... a tree structure, where the nodes
> > are objects (as in object-oriented programming). It's one of the
> > most common structures in programming, along with lists and hash
> > tables.
> >
> > The word "tree" isn't exactly right though, since in most
> > languages the objects in are kept in a free-form graph instead...
> > leading to all sorts of complicated garbage collection and
> > reference counting. But at least in VO, the structure is pretty
> > close to a strict tree. (and on the filesystem, the structure is
> > also very tree-like)
> >
> > Storing the outline in the filesystem as you described is
> > basically an attempt to make a limited object database, except
> > using a standard filesystem instead of a custom database.
> >
> > http://en.wikipedia.org/wiki/Object_database
> >
> > > how about XML, or maybe Ruby YAML?
> >
> > Those lack many of the benefits of a filesystem, and XML also
> > lacks most of VO's current readability. However, XML is one of
> > very few choices for working, widely-available object
> > serialization. I expect, at least, that import/export options
> > for XML would be necessary, even if it's not the primary format.
>
> Hey Scott,
>
> Just for fun, look at my EMDL project, specifically, the EMDL
> specification:
>
> http://www.troubleshooters.com/projects/emdl/index.htm
>
> This is an outline form language for specifying menus, and it's VERY
> keystroke efficient and works great with VO. Perhaps there's a way you
> could make it more general so a "schema-file" would define what could go
> under what and could define fields and field abbreviations (like the one
> letter stuff I have that's followed with a colon in EMDL).
>
> Once you've defined that, converting it back and forth from XML is almost
> trivial, so you could use VO as an editor, but store it as XML (or not).
>
> SteveT
Thinking further about this, any hierarchical database could be created as an
outline with a separate "rules" file that has allowed fields and their
abbreviations, and rules about what can be under which, what has to be under
which, and the like. One could even have self-referential stuff, that would
simulate relational databases and even cloning.
A validator program could be written so that, with the "rules" defined
correctly, an outline could be validated by those rules. Another program
could be written to serve as a quick lookup for fields, based on the rules.
Of course, from the computer's viewpoint, this would be a partially crippled
XML. Its only benefit over XML would be an easy user interface (VimOutliner).
SteveT
Steve Litt
Author: Universal Troubleshooting Process books and courseware
http://www.troubleshooters.com/
More information about the VimOutliner
mailing list