Tuesday, April 19, 2005

ledgers--partness

Ledgers are another potential use of DataSet objects. They differ from pages only slightly, so it is important to clarify when ledgers and when sub-pages should be used. The distinction is all about partness.

Pages are whole things. A page is never a part of another page, but can be "in" more than one page--think of a page as having a collection of sub-topics, as a sub-topic can be in more than one collection.

In contrast, a ledger is a part of a page or a part of another ledger. Unlike pages, ledgers are organized into pure tree structures, with a page being the root. But like pages, comments can also be on a ledger. (Comments can be on/about anything!)

The page display lists pages it is in, comments, ledgers and sub-parts--making the structural relationships of the page visible.

And visible ledgers? They are not listed in the topics page, but rather in a ledgers page. When the context is a page, the top-level ledgers of the pages it is in (recursively) are visible. And when in a ledger, the child ledgers of the ledger it is in (recursively) are also visible.

One big gain here is that the ledgers, though referenceable from other pages, do not cluter the topics page. Between this and the structural (and applicative) restrictions on the visibility of topics, keeping the list of visible topics to a reasonable subset of the entire Wiki should be a managable task. And that is a very big benifit indeed.

Oh yes, nothing new on syntax. Qualified page names and ledger names all look the same. (Qualified comment names are not allowed.)

0 Comments:

Post a Comment

<< Home