Wiki Namespaces

I think this would be a great idea for an extension to the Wiki Web system. The Wiki Web is likely to grow; there's a chance it will grow so large that millions of people will start contributing to it. There are lots of multi-word phrases that have different meanings in different contexts. Sooner or later, somebody will try to define a page and find out that it has already been defined - as something completely different.

Example: I might decide to write a whole set of pages about ImplementingScheme?, and in the process produce a page called ImplementingFundamentalDataTypes?. But somebody else might be WritingPerlInterpreters?, and will also want to produce a page called ImplementingFundamentalDataTypes?. Clash! Now, one or both of us has to rename our pages. This makes the names longer, as ImplementingFundamentalDataTypesInScheme? and ImplementingFundamentalDataTypesInPerl?.

Another alternative might be to introduce hierarchical namespaces to Wiki. Then if you visit my ImplementingScheme? page, links that went to ImplementingFundamentalDataTypes? would take you into the ImplementingScheme? namespace. So the real name of the page would be something like ImplementingScheme?::ImplementingFundamentalDataTypes?. But in many situations you might not have to type that much.

It's a thought. Maybe it would MakeTheWikiTooComplicated?. But maybe not.

-- EdwardKiser

I was also thinking about this, but found no real solution. Currently I think about -- HelmutLeitner

An existing example of something like this is the WikiClone DolphinWikiWeb from Object Arts (I'm running it on NT) which organizes into separate "wikis" by directory. Entities in one "wiki" can be linked to just like other WikiPages by including the "wiki" name with a colon in front. -- ClaudeMuncey

This is also possible in UseModWiki using an intersite map file. But this does neither help you know what pages exist in the different wikis nor does it create automatic links if you don't care. -- hl


One idea I had running through my head recently was that all the trouble with off-topic discussions and DifficultToWikifyNames? could be solved if this simple technique was followed: Essentially, a WikiLink is a WikiNamespace? followed by a colon, followed by a word. If the WikiNamespace? is missing, the default is the current namespace. If the colon is missing, but the word looks like a WikiName, then it is interpreted as a WikiLink. -- RobHarwood

Namespaces could be arranged hierarchically. Then there would be a reserved namespace named "top" or "root", and every namespace might be able to refer to its parent as "up", and you could have absolute paths and relative paths, just like files in a filesystem. A namespace could be differentiated from a regular name by the fact that a namespace ends with a colon. So you could have top:Namespace:NestedNamespace?:SomePageOrOther? as an absolute path, and up:OtherNamespace?:DifferentPage? as a relative path.

However, refactoring Wiki pages would become a lot more complicated. Since, now, nobody can rename a page once it has been created - in the future, no-one will be able to move a page in the hierarchy, or rename a namespace. Can you put a header on every page in a namespace, perhaps by editing the namespace? Then you can make one that says "This namespace has been moved..." -- EdwardKiser

I don't see why forward slashes / cannot be used. Simply emulate folders. So, the examples given initially could be Scheme/ImplementingFundamentalDataTypes? and Perl/ImplementingFundamentalDataTypes? simple. It transparently allows multiple levels (e.g. Perl/ImplementingFundamentalDataTypes?/Ints ). Then again, maybe on this Wiki it looks too much like FreeLinks ... -- Mr Harris.

EditText of this page (last edited August 19, 2011) or FindPage with title or text search