[Pmwiki-users] Hierarchical groups
Patrick R. Michaud
pmichaud
Tue Jun 8 18:52:14 CDT 2004
On Wed, Jun 09, 2004 at 12:04:23PM +1200, Britta wrote:
> The problems I see are from a user point: how difficult this gets for
> non-techie/inexperienced users and how much of a muddle they're therefore
> likely to make of it <g>.
Exactly. I try (and sometimes succeed) to keep the non-techie perspective
paramount.
> > The first is to only allow absolute group names--i.e., all group names
> > start from the top. I personally don't have a problem with this, but
> > I suspect people will have issues with the lack of a way to do relative
> > group references...
>
> and I guess inexperienced users might get frustrated at having to check and
> re-trace the group/page paths ...?
No, I just think that authors would get annoyed at having to retype
full group names--they'll think there ought to be a shorter mechanism.
But see "A Possible Solution" below...
> > The other approach is to use the first component as a relative anchor
> > if it occurs in the current group name. Thus, in the page Alpha.Beta.Gamma,
> > the link [[Beta.Zeta]] would refer to Alpha.Beta.Zeta,
>
> I really like this one ... I think it might be easy/transparent enough even
> for inexperienced users ...
>
> > But this can also get confusing, because [[Alpha.Delta.Epsilon]]
> > and [[Delta.Epsilon]] refer to different pages,
>
> you've lost me here :0
> Why do they refer to different pages?
> I thought it would be the same as :
> > even though
> > [[Alpha.Beta.Zeta]] and [[Beta.Zeta]] refer to the same page.
>
> I obviously missed something! LOL
Thanks for proving my point about it being confusing! It's worth a
bit of a better explanation...
If one starts from the page Alpha.Beta.Gamma, and uses the link
reference [[Beta.Zeta]], then the system sees that "Beta" is a parent of
Alpha.Beta.Gamma and so it uses Alpha.Beta as the common reference point,
thus Alpha.Beta.Zeta.
Starting from Alpha.Beta.Gamma again, and using a link [[Alpha.Beta.Zeta]],
"Alpha" becomes the common reference point, and again we have a link
to Alpha.Beta.Zeta. So [[Beta.Zeta]] and [[Alpha.Beta.Zeta]] both
refer to Alpha.Beta.Zeta.
The same is true for Alpha.Beta.Gamma and a link of [[Alpha.Delta.Epsilon]]:
"Alpha" is the common reference point, so the link would go to
Alpha.Delta.Epsilon.
But if the page Alpha.Beta.Gamma has a link reference of
[[Delta.Epsilon]], "Delta" isn't any part of the current page name,
so we start at the top and end up with a reference to "Delta.Epsilon".
Thus, inside of Alpha.Beta.Gamma, [[Alpha.Beta.Zeta]] and [[Beta.Zeta]]
both refer to Alpha.Beta.Zeta, but [[Delta.Epsilon]] and
[[Alpha.Delta.Epsilon]] differ. Note that the situation is reversed
if we happen to be in a page called Alpha.Delta.Mu (why is left
as an exercise for the reader... :-)
How often is this likely to occur or conflict in practice? Probably
not often. But when/if it does occur, it's likely to be *very* confusing.
For those who might propose that a link [[Delta.Epsilon]] should search
each parent group for a page named "Delta" and start from there to resolve
the link--just don't go there. This would have the very undesirable effect
that simply adding a page into a hierarchy could change the target of
large numbers of links.
A Possible Solution
-------------------
One solution might be to introduce a markup (I suggest "...") that says
to use the first element of the link as an ancestor group instead of
a top-level group. I.e., in Alpha.Beta.Gamma one would use [[...Beta.Zeta]]
as a relative link to Alpha.Beta.Zeta, while [[Beta.Zeta]] would always be
an absolute link to Beta.Zeta. In this sense the "..." acts as a
"wildcard prefix", saying to use all of the current group name up to
the "Beta" portion.
And yes, I did consider the possibility of using an asterisk, as in
[[*.Beta.Zeta]], but I think this also implies that one could write
something like [[Alpha.*.Zeta]], and I really don't want to go there. :-)
Pm
More information about the pmwiki-users
mailing list