[Wikipedia-l] No-subpage policy makes editing [[Middle Earth]] difficult

Jan Hidders hidders at uia.ua.ac.be
Tue Jan 29 19:08:08 UTC 2002


First let me apologize if this is not appropriate because I've only recently
subscribed again to this list and haven't thoroughly checked if  this was
discussed before.

I thought that the intention of namespaces was to disambiguate homonyms such
as Nirvana (Music and Mythology), function (Mathematics and Programming
Languages), ring (Mathematics and Common use) et cetera. But now it seems
that they are only used to distinguish between pages with different types of
functions.  I personally was planning to write some articles on database
normalization and there we have also a lot of terms (relation, key,
dependency, normal form) that have a very specific meaning there. If I now
see the problems that Uri Yanover mentions, then it seems to me that these
problems are very similar to those in Mathematics and Computer science (and
other fantasy worlds, :-)) and could also be solved by a general
user-definable hierarchical name space implementation. Let me make a
suggestion:

1. With every page a name space of the same name is associated. So with the
page "Middle_earth" there would be a name space "Middle_earth:" and with the
the page "Database_theory" there would be a name space "Database_theory:".

2. A page name would consist of (an optional) namespace, e.g.,
"relational_model:", and the basic page name, e.g., "first_normal_form". The
full page name would in this case be "relational_model:first_normal_form" or
for example "Middle_earth:Elrond". Since a name space corresponds with a
page name, a name space itself can also be qualified with another name
space, so you might have
"Computer_science:Database_theory:Relational_model:First_normal_form". (I
don't think the hierarchy will be that deep in practice, but you get the
point.)

3. The looking up/linking of page names that are not qualified with a
namespace is done by walking up to the root of the tree of name spaces. So a
link on the page for "first_normal_form" is first looked for in the name
space "First_normal_form:", then consecutively in "Relational_model:",
"Database_theory:", "Computer_science:" and finally the global name space
":"". For Uri's example this would mean that the look-up of "Elrond" would
start in the name space "Middle_earth:" if it appeared on the page
"Middle_earth".

4. If a page name is qualified then the look-up starts at the given name
space. So "Computer_science:relation" is looked up first in the name space
"Computer_science" even if it appears on a page with name space
"Database_theory".

5. If a page name belongs to a certain name space then it also belongs to
the name spaces higher up the name space hierarchy unless a conflict arises.

6. The looking up only happens when the page is submitted. After that the
unqalified page name is replaced with a fully qualified page name. That
prevents unneccesary processing and avoids problems with page names becoming
ambiguous because a new page with the same name is added in a sibling name
space.

7. If a page name is not found then a "creation link" is created and its
namespace is either the name space that was specified (if it exists) and if
no name space is specified then it is the local space name, i.e., the name
space of the page that the link is on. If the specified name space does not
exist already then an error is reported and no "creation link" is created.

8. Every page is presented with somewhere on the screen a link to the page
corresponding to its namespace.

That is about all. I know this looks very much like subpages on steroids
(Larry is probably foaming at the mouth right now :-)) and in some sense it
is, but I really think we need user-definable hierarchies of name spaces and
I don't see why we cannot trust the self-organization of Wikipedians on
this. I also realize that this is not easy to implement, to put it mildly,
but if you think it is a good idea then I would probably feel morally
obliged to help build it. I have a little PHP experience and have once
written patches for PhpWiki.

Btw. note how elegantly Talk-pages fit into this scheme; you just add a link
[[Talk]]. No further special arrangements necessary. On the down-side the
user now has the indicate explicitly that a page has to be put in the
highest name space by writing  for example [[:Wikipedia_talk]] where ":"
represents the root name space.

Kind regards,

-- Jan Hidders





More information about the Wikipedia-l mailing list