Scoping a Semantic Wiki
One of the reasons I’m implementing my own wiki instead of sticking with MediaWiki is that I hate PHP. Another, more valid reason is that I want to experiment with better approaches to dealing with structured information.
I picked Django for my implementation, because most of the code I’m going to integrate (such as sparta) is already in Python. I also think the model closely fits what I want to do.
Here’s some samples to help make it clear what types of things I want to do.
Normal XHTML wiki stuff - for starters, we can just do the normal wiki magic. Some subset of this stuff will also work for other mime types but the focus is on text.
- /pageName
- /pageName/+edit
- /pageName/history
Structured document export formats - It won’t be perfect until we modify the input language, but we can get something quite reasonable in most cases.
- /pageName/format/odt
- /pageName/format/DocBook
- /pageName/format/pdf
RDF - Of course, this is the real motivation. Here we’re dealing with all the abitrary RDF you want to provide. The first one will be an XHTML page displaying the data; the others will be served with more appropriate mime-types.
- /pageName/metadata
- /pageName/metadata/rdf
- /pageName/metadata/n3
- /pageName/metadata/+edit
- /pageName/metadata/history
Explicitly supported subsets - This is the kicker. We explicitly provide display and edit support for specific ontologies (especially ones that are easy to implement).
- /pageName/metadata/foaf/
- /pageName/metadata/DublinCore/+edit
I’m still ramping up on Django, so I’m still looking at the basic XHTML stuff, but already I have XHTML strict output for straightfoward MediaWiki markup, including tables, and tomorrow I hope to have the full page lifecycle implemented.
I’m also very much cheating by just grabbing some MediaWiki output and using that as the basis for my initial templates; that way I have something familiar-looking to experiment with.