2009-12-24
jeff_dickey
Many information architectures tend to become deeper (adding detail) faster than they become wider (covering more high-level subjects). Namespaces allow a Wiki's structure to reflect its semantics. However, this can cause issues as depth increases beyond 2-3 levels.
Example: I have a top-level namespace to collect all my different projects, whether they're for my own use, for paying clients, open source projects, whatever. Each of those projects has a fairly consistent top-level structure (relative to the per-project root node), acquiring depth in order to balance more detailed information against the imperative to have one concept displayable in one or at most two screens worth of browser space.
The logical outcome of this structure, eventually, is something like:
projects:sevensigma:nsbtrans:devlog:high-level_parsing:tests_for_item_parsing:feed_items:new_item_parent_class:querying_data_format_availability
Both the page title (what gets put into the ''title'' tag in the HTML header) and the page name (displayed at the top of the page) include the full and complete Wiki address of the page. This means, for example, that if two pages in closely-related namespaces are open in different tabs, it's impossible to look at the browser's tabs and tell which is which. The page name at the top of the page also becomes unwieldy.
In my opinion, these quirks detract from the usability of the namespace system as a whole.
One possible way to address this would be to introduce a new Boolean (checkmark) item in the ''$conf[]'' array, ''elide_namespace_display''. If this flag is not set (as in the default setting), the page title and page name would be constructed exactly as they are now. With that flag set, however, the Wiki page's path in the page title and page name would be set to something shorter; the above example might be rendered as
...new_item_parent:class:querying_data_format_availability
It might also be useful to add a second configuration setting, e.g., ''namespace_display_elision'' which defines how many (sub)namespaces are included in an elided name. A suggested default value of 3 would yield the rendering shown in the previous paragraph. A value smaller than 1 should not be accepted by the configuration manager.