May 20th, 2006


Consulting the Noosphere: Wiki Tech

So I've come to have mixed feelings about ProWiki. On the one hand, the concept has proven itself admirably -- a property-based wiki is just plain more powerful and useful than a conventional text-based one. That said, I'm hitting irritating limitations with the program itself. It was based on UseMod, which was a nicely simple technology base, but is turning out to be distressingly primitive. It's missing many of the features that are assumed to be part of a "real" wiki nowadays, has a thoroughly mediocre look-and-feel, isn't very efficient, and frankly is pretty crappy Perl code.

Couple that with the fact that I want to move the ideas to the next level, and I think it's time for a ground-up rewrite. I'm beginning work on Querki, which is intended to be the true successor to ProWiki, more fully-developed, stable, efficient and powerful. (The name change is because someone else already is using "ProWiki", and they got cranky at me about it. Fine -- I'm wedded to the concept, not the name.) The notion is that Querki is (roughly) to the Semantic Web as an ordinary wiki is to the ordinary Web, adding enough basic structure that the thing becomes far more useful.

That said, I have no screaming need to write the whole thing from scratch, and that's where y'all come in. I'm doing a survey of existing wiki technologies, to figure out which one(s) I am going to use as the baseline for Querki. I'm looking for a well-written system that's modular enough that I can rip it apart easily -- whichever tech I use, Querki is going to require ripping out its guts and dramatically rewriting them, so I want to start with better code than UseMod. I'm also looking for a system that is powerful to begin with, with a good UI, so that I have a strong enough baseline that my result is going to be genuinely interesting.

So I throw out the question: what wiki technologies do you like, and why? Note that I do not care in the slightest about the content of a wiki -- what I care about is how well it works, and in which ways. (For example, I'm not looking for opinions about Wikipedia, I'm looking for opinions about the Mediawiki technology that it's based on.) And what do you not like about those wikis -- what mistakes should I avoid?

On top of that, I'm looking for ideas about what should be in this thing. I've put together an initial list of requirements, as well as some initial architectural notes. What else do you think should be there? If you had a wiki system that was semantically rich, what sorts of things would you like to do with it?

Any and all opinions are solicited here: please chime in, especially if you've got any real wiki programming experience. I'm open to opinions about any and all technologies, regardless of things like programming language. It's entirely possible that I will wind up stealing chunks of code from a variety of different systems (especially if I wind up working in Perl, which has a number of different codebases), so fine-grained opinions about which features you do and don't like about particular systems would be great. Spread the word to others who might be interested.

And for the programmers out there -- if you're interested in playing in this new sandbox, please mention that as well. I have very strong opinions about this sucker, but it's a big project, and I could use help. I'm considering sourceforging the thing, and I'm more likely to do so if there is serious interest in collaborating...