Those of you who want to take a look at the new namespace manager
(Special:Namespaces) and the associated functionality can now, thanks to
Avar, check out and install the WIKIDATA branch. You need a user with
bureaucrat rights to access [[Special:Namespaces]]. Pretty much all
operations there should work now, but I have not intensively debugged it
yet.
Aver has also adapted the update.php script. The web-installer upgrade
does not yet recognize customizations, but the command-line ugprade
should correctly import customized namespaces and settings into the new
system.
As noted before, the main user-visible changes are that
a) It will become trivial for any wiki community to maintain its own
namespaces,
b) Any namespace can have an arbitrary number of synonyms which redirect
all to a default name, allowing us, for example, to rename "Image:" to
"File:" and have "Image:" redirect there. Providing namespace names in
different languages on multi-language wikis would be another application.
c) Namespaces can have a default target (e.g. "Physics"), so that any
unprefixed link _from_ that namespace will be prefixed with that target.
This is primarily useful for Wikibooks. There's also an experimental
feature to hide namespaces from lists; I'm not sure yet if this is a
good idea.
From an implementation point of view, we can now also make sure that
all namespace operations are safe. I haven't finished debugging that
code yet, but the basic idea should be visible in the save() function in
Namespace.php. Try adding a few duplicate names to the namespace manager
and you'll see that quite a bit of error checking is done there already,
and no operation is executed unless all operations can be successful.
I'll have to spend a couple more days debugging and tweaking things
before we can start thinking seriously about integration into HEAD, but
I encourage you to give it a whirl if you want and report issues.
There's probably still some serious breakage in a few places, but I'm
looking into that. The other thing I want to do is cache the namespace
definitions in memcached, so they don't have to be loaded on every
pageview. Help is always welcome.
I'd also like to have a safer way to access the $wgNamespaces array;
perhaps overloading in PHP5 can be used for this. I'd prefer this to
using a static method to return namespace objects.
More on the next steps for Wikidata soon.
Erik