Semantic Wikis on Vicodin (Steroids)
Several Wiki extension projects use ontological background information to enhance the content within Wiki pages. In this predecessor of a fully semantic wiki the individual topics are blended with the information stored, say, in a topic map. When now Wiki topics are edited, not only the text content can be changed, but also how this topic is related to the themes within the map.
In one of the projects I am working on we take this a step further in that we use the ontological information within the topic map to derive certain privileges for the users relative to what they can do with topics, say, authorship. Accordingly, a person may only be allowed to edit a (Wiki) topic if that topic belongs to a certain theme (or a superclass of that theme) and the person has authorship privileges on that theme.
What belongs to means may depend on the community and context the system is used in. In Topic Maps terms there will have to be a certain path along assocations between the topic in question and a theme to determine the authorship privileges. Of course, this honors superclass/subclass relations.
In a corporate setting, for example, it allows to control loosely, but succinctly, who can contribute to a topic. This theme-based authorization is mostly intuitive as it follows the more or less realistic assumption that if someone is an expert in 'Finance' he might also be an expert in any of the subthemes thereof. YMMV.
It then takes only one more step to generalize the privileges themselves and put these into some order (partial ordering for the algebraist).
In our case we have
- read privileges for documents which have completely passed a workflow,
- read privileges for documents which are still within the editing process and have not yet been cleared,
- edit privileges for documents, and
- privileges to move the workflow.
If someone has edit privileges on a certain theme, then he also has read privileges on that theme and, again, on all topics which belong to that theme. Inside the topic map you would, for instance, say
PaulStrasser holds-authorship-of Finance .
Of course you may choose to keep the topic map and the privileges quasi-static, in that only a superuser may change them.
But imagine, how much fun you can get
- if everyone in the system who has a certain privilege on a theme can grant privileges (or sub-privileges) to that theme (or any subtheme thereof) to another person,
- if new themes can be created, and
- every topic is created along a workflow whereby certain movements through the workflow depend on the ownership of certain privileges.
If your mind is spinning and you feel a headache coming your way, Vicodin may be one option. Perl is mine :-)