[Pmwiki-users] Re: Functionality of groups (was: Why groups?)

Christian Ridderström chr
Sun Jun 13 04:16:14 CDT 2004


On Sat, 12 Jun 2004, Patrick R. Michaud wrote:

> On Sat, Jun 12, 2004 at 06:27:50PM +0200, Christian Ridderstr?m wrote:
> > On Fri, 11 Jun 2004, Steven Leite wrote:
> > > 
> > > I'm particularly fond of the way I can create a template or new config
> > > file on a perGroup or perPage basis.
> > 
> > I also like the ability to do per-group customization, but I wonder if we 
> > aren't letting the current implementation steer us here. What is it really 
> > that we want to accomplish?
> 
> I have to disagree with the notion that we may be "letting the
> current implementation steer us (or at least me) here."

I didn't mean to offend, just to keep us from being too focused on how it 
currently works, which might prevent us from seeing other solutions.

> The current group implementation wasn't chosen arbitrarily or programmed
> by accident it was what I came up with after examining and deliberately
> rejecting a number of organizational schemes, including both single and
> hierarchical namespaces.  The one-level grouping scheme that PmWiki uses
> now wasn't chosen because it makes the programming simple--it was
> designed to make things understandable/accessible to a wider group of
> users (PmWiki.Audiences). Indeed, I knew at the time that I would
> eventually get some grief for not going with a hierarchical scheme, but
> to me the simplicity of a one-level group scheme outweighed the
> potential benefits of a hierarchical approach.

Ok, thanks for the clarification (I actually remembered something like
this from some old discussion, probably on hiearchical groups, but a
reminder was due).

I never got around to sending in the text below, but since I'm 
startiing to feel it's needed I'm just going to paste it:

	The length of a link, i.e. ''link length'', is the number of 
	components in a page path. Some examples should clarify this:
	[[A]]	- link length is 1
	[[A/B]] - link length is 2
	[[/A]]  - link length is 2 (there's an implicit 'root' before '/')

	A ''unit link'' is a link of length one and the ''link distance'' 
	between two pages is the link length of the shortest link between 
	the two pages.

And while I'm at it, I'm going to use the term "sibling" to refer to a
page that belongs to the same group (PmWiki 0.6), or has the same parent
page (PmWiki 2.0 ?).

> So, in terms of what I want to accomplish-
>   - the link/page reference syntax needs to be fairly easy to understand
>   - authors should be able to create new "collections" (groups, subpages,
>     classes, categories, whatever) of related pages
>   - pages within a collection should be able to link to each other
>     using simple wikiwords or free links (i.e., no path separators)
>   - it should be easy to assign shared attributes such as passwords
>     and permissions to all of the pages in the collection
>   - collections should be customizable at the administrator (local/)
>     and author (GroupHeader,GroupFooter) levels

I agree with all of the above. Another advantage with a collection is that 
it can be used to limit a search.

We can take your second item and define a collection as follows:

	A collection is a set of pages where each page can link to any
	other page in the collection using a unit link.

>From the definition we get that two pages can't have the same name (if
they had, a unit link couldn't be resolved). A collection therefore also
constitutes a namespace.

Note that the definition does not preclude unit links pointing to pages
outside the collection. An example of this situation in PmWiki 0.6 is 
when you write the name of another group, e.g. "PmWiki".

> A system with no groups makes it difficult to organize pages into 
> collections.  A system with a purely hierarchical organization 
> complicates the linking syntax (so far) and the ability to understand 
> how attributes such as passwords and headers/footers are shared within
> the (nested) collections.

I'm working on a suggestion for the link semantics. As for complicating
how attributes are shared, I don't think that will be much of a problem
for normal users, since I expect most pages will remain within relatively
simple hiearchies.

> Again, I'm only thinking about usability issues here.  From a
> programming/ technical perspective I think we could implement just about
> anything that we come up with that is workable.

Great, we're thinking the same way then (although I sometimes can't help 
myself and start thinking of speed issues).

/Christian

-- 
Christian Ridderstr?m                           http://www.md.kth.se/~chr






More information about the pmwiki-users mailing list