Wednesday, December 24, 2003

XML + Wiki = ??

Dear PWSTM (People Way Smarter Than Me), 

As I've gotten used to using my blog over the last year, I've been thinking more about managing my personal information. Lately, I've been pondering Wikis, a topic about which I know little more than the basics. 

On the one hand, I like the idea of a Wiki for storing notes and ideas. In theory, it makes it easy to maintain relationships amongst various nuggets of information. 

But in practice (the other hand), all the Wiki software I've seen has two drawbacks: 

  1. It's presented as a set of web pages, which means (for me) using it sucks compared to something with a rich user interface, accelerator keys, etc.
  2. The native storage mechanism is HTML. Meaning that there's no way to have typed information, in the sense that it would be difficult for a machine to determine that one page describes a C# class, and another page describes a Weblog entry.

It seems to me that there's a sweet spot somewhere at the intersection of Wikis and XML. What I envision is an app that lets me specify a mapping between some piece of UI editing code (a form, generally), and an XML type. What I'd want is an app that lets me create new instances of those XML types, editing each one with the appropriate UI and then somehow linking them together, in the same way that a Wiki lets you link together HTML documents. If I could somehow get the version control that many Wikis offer, that would be really nice, too.

The advantage of this XML/Wiki hybrid is that it would lend itself very nicely to use for many purposes. Because of the reliance on XML rather than HTML as the fundamental thing that you're storing and editing, it would be fairly easy to have both a web and a rich interface for editing. Or a rich interface for editing, and a transform to produce static HTML read-only copies. And - done right - the mapping between XML types and UI that knows how to edit that type could make the whole thing pretty darn extensible.

As I've been running this idea through my head, I'm wondering if there's already something that does exactly what I want. A few things on my list of stuff that I don’t know enough about, but that might help or solve the problem, and that I really ought to look into:

1)      There's already some Wiki software out there that does exactly this.

2)      InfoPath already does exactly this.

3)      Some other app already does exactly this.

4)      Somehow some app that uses RDF solves this problem.

5)      One of the above comes close, and could be made to do what I want with some tweaks to existing software.

6)      I write my own when days finally have 26 hours. 

I'm planning to look into InfoPath at some point in the near future (as soon as I install it again). But I'm hoping that one of you will be able to shed some light on this for me.


  1. Check out OpenWiki:

    Also, as far as I know most of the wikis store data in WikiText, not HTML.

  2. Check out

  3. Maybe this is what Ward Cunningham will be working on now that he's at Microsoft?

  4. That would be great. :) But I also have high hopes for FlexWiki, which appears to have the important parts of what I need. It's still unstructured data, but I'm starting to think that might be good enough most of the time.

  5. Another project which takes a stab at this is Semantic MediaWiki: This uses a database and a rather unique data language. As a programmer, I like the fact that I can manage loops in a roundabout way.