Cross-references

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Cross-references

Jean-Rene David-2
Is there an easy way to reference items? Example:

todo
   mow lawn
   walk dog
tobuy
   lawn mower [see todo::mow lawn]

Perhaps this could be enhanced with tags and
whatnot. Any way to do this with the current
version?

Thanks,

--
JR
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: Cross-references

Ben Armstrong
On Thu, 2005-11-24 at 08:59 -0500, Jean-Rene David wrote:

> Is there an easy way to reference items? Example:
>
> todo
>    mow lawn
>    walk dog
> tobuy
>    lawn mower [see todo::mow lawn]
>
> Perhaps this could be enhanced with tags and
> whatnot. Any way to do this with the current
> version?

Your example is broken.  Or at least if this is how it looks to the
user, it is.  The view of the linkage needs to be bidirectional.  When I
view "todo::mow lawn" I need to know that it is dependent upon
"tobuy::lawn mower".

Ben

_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: Cross-references

Jean-Rene David-2
* BG - Ben Armstrong <[hidden email]>:
> > todo
> >    mow lawn
> >    walk dog
> > tobuy
> >    lawn mower [see todo::mow lawn]
>
> Your example is broken.  Or at least if this is
> how it looks to the user, it is.

You're right. But I was just trying to illustrate
the idea. You obviously got it. :-)

Is there a way to do this?
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: Cross-references

Noel Henson
On Thursday 24 November 2005 06:36 am, Jean-Rene David wrote:

> * BG - Ben Armstrong <[hidden email]>:
> > > todo
> > >    mow lawn
> > >    walk dog
> > > tobuy
> > >    lawn mower [see todo::mow lawn]
> >
> > Your example is broken.  Or at least if this is
> > how it looks to the user, it is.
>
> You're right. But I was just trying to illustrate
> the idea. You obviously got it. :-)
>
> Is there a way to do this?
> _______________________________________________

There may be. Perhaps with a few functions and mappings. Maybe a ',,L'
would prompt for a link and create reciprocal links.

todo
  mow lawn
  walk dog
tobuy
  lawn mower

With the cursor on 'lawn mower' you could ',,L' enter '[todo::mow lawn] and
the link function would make these changes

todo
  mow lawn [tobuy::lawn mower]
  walk dog
tobuy
  lawn mower [todo::mow lawn]

if the target link existed.

We'd need to be sure of the syntax for the link so it didn't interfere with
any other plugins or reporing tools. Then we'd have to figure out how to
handle inter-outline linking as well.

All in all, it seems doable.

Noel

--

------------------------------------------------------------------
  Noel Henson
  www.noels-lab.com Chips, firmware and embedded systems
  www.vimoutliner.org Work fast. Think well.

_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: Cross-references

Steve Litt
In reply to this post by Jean-Rene David-2
On Thursday 24 November 2005 08:59 am, Jean-Rene David wrote:

> Is there an easy way to reference items? Example:
>
> todo
>    mow lawn
>    walk dog
> tobuy
>    lawn mower [see todo::mow lawn]
>
> Perhaps this could be enhanced with tags and
> whatnot. Any way to do this with the current
> version?
>
> Thanks,

Hi all,

Several years ago, Gabriel Horner came to my house (yes, in fact two VO people
HAVE met in person) and showed off a VO<->MySQL interface he had created.

The only theoretically valid application of an outline is a single parent
hierarchy. What JR suggests is not hierarchical, hence will not *easily* fit
into an outline.

Normally, that would be the end of the story -- use something besides an
outline. But VO is just so darned productive a front end, one is often
tempted to use it even for non-hierarchies. Enter Gabriel's work...

Relational databases were created specifically to work with non-hierarchical
relations like what JR mentioned. If one had a VO->MySQL (please make it
compatible with my favorite Postgres also) then a rather hokey tag on the
outline could be transformed into an elegant data relation in MySQL or
Postgres (or Oracle of MS SQL Server for that matter).

If we could find some way of using VO as a front end, or partial front end,
for a database, then things like JR's links or our long sought but never
found clones could be accomplished.

I'm not suggesting for a minute we make VO dependent on a database -- I'm just
saying that we could make an interface program between a tab indented outline
and a relational database.

SteveT



--
Steve Litt
Founder and acting president: GoLUG
http://www.golug.org
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner
Reply | Threaded
Open this post in threaded view
|

Re: Cross-references

Stefan Schmiedl
Steve,

hang on through the ranty bits until the good part .-)

Steve Litt (27.11. 15:10):

> Several years ago, Gabriel Horner came to my house (yes, in fact two
> VO people HAVE met in person) and showed off a VO<->MySQL interface he
> had created.
>
> The only theoretically valid application of an outline is a single
> parent hierarchy. What JR suggests is not hierarchical, hence will not
> *easily* fit into an outline.

I don't see why it is not hierarchical. It's just links between nodes of
a hierarchy. As a first step, we could even require "absolute paths"
starting from the top of the outline or even somewhere in the external
file system.

The main problem I'm seeing is that he wants to use *content* for
tagging, which would work in formally structured outlines like a
calendar. It would be very difficult to maintain with free-text
headings. Not impossible, but non-trivial to develop, as we'd be in deep
"do what I mean"-land then.

> Relational databases were created specifically to work with
> non-hierarchical relations like what JR mentioned.

Looking at relational databases, I see hierarchies everywhere. All they
support are 1:n-relationships, which are hierarchical in nature. The
problem is recursiveness, when you want to express that a child of one
relationship is a parent in another and all items are to be stored in
the same table.

> If one had a VO->MySQL (please make it
> compatible with my favorite Postgres also) then a rather hokey tag on the
> outline could be transformed into an elegant data relation in MySQL or
> Postgres (or Oracle of MS SQL Server for that matter).

I'm wondering why it has to be a *relational* database. That's quite a
heavy non-solution for the task at hand. You'll need a server process,
administrative skills, complex programming to get this roughly working.

So (and the good part is starting now) if you've already resigned to
using an external server process to maintain your data, why not just
use what is suited?

There is a perl script out there, gobbling up outlines and transforming
them into nodes. I suppose that Noel's otl2whatever.py does something
similar. So let them gobble the outline and keep the processes running.

Access those processes over a simple cvs-like interface
  - checkout outline,
  - work on it
  - checkin outline

If you'd like to use it in a multi-user setting, you'd have to
either implement locking or deal with some metadata.

The server process could store the outlines *as plain text* in
a normal version control system (even with appropriate checkin comments)
whenever a change is committed. Or just write to timestamped filenames.

>
> If we could find some way of using VO as a front end, or partial front end,
> for a database, then things like JR's links or our long sought but
> never found clones could be accomplished.
>
> I'm not suggesting for a minute we make VO dependent on a database --
> I'm just saying that we could make an interface program between a tab
> indented outline and a relational database.

We'd skip the database in favour of *one* external process.
And that one would not even have to be running on your system, either.
Heck, if I had the resources right now, I'd set it up as a web
application and charge you all for it :-)

s.

--
Stefan Schmiedl
+-------------------------------+----------------------------------------+
|Approximity GmbH               | EDV-Beratung Schmiedl                  |
|http://www.approximity.com     | Am Bräuweiher 4, 93499 Zandt, Germany  |
|mailto:[hidden email]  | Tel. (09944) 3068-98, Fax -97          |
+-------------------------------+----------------------------------------+
_______________________________________________
VimOutliner mailing list
[hidden email]
http://www.lists.vimoutliner.org/mailman/listinfo/vimoutliner