Of course, there is a lot of pun intended here. We (zAgile) recently added semantic capabilities to Atlassian's Confluence wiki and are quite excited about its impact to a very popular yet traditional wiki.
In my earlier blogs, I had been talking about my quest for semantic wikis. Wikis provide an easy way for teams to produce and organize content--creating very effective central repositories, often used for cross-departmental collaboration and information exchange. The problems arise when all this statically organized content becomes unwieldy in terms of maintenance, and more importantly access. You end up spending lots of time in wildcard searches across all this content, repetitively navigating complex hierarchical page structures and constantly maintaining links across wiki pages to keep the content credible and current.
Semantic capabilities make wikis a dynamic application. Addressing the problems noted above, they allow for content to be 'semantically' annotated with the annotations stored in semantic repositories, therefore, the meaning is captured in a machine-processable way and is more directly searchable, shareable and accessible across applications not just from within the wiki itself.
To 'semantically' enable Confluence, we have taken the following steps:
- Provided support for SPARQL in Confluence. Analogous to SQL, you can embed SPARQL queries anywhere in a page and the data may be retrieved from semantic repositories anywhere on the web. This allows for auto integration/incorporation of data from external systems into the wiki. These queries can also provide a mechanism for dynamically organizing more readily addressable wiki content.
- Provide Semantic Forms in the wiki which allow users to create 'structured' or semantically annotated content. The data and object attributes associated with a page created using such a form are captured in the semantic repository while the page maintains a composite of both semantic and unstructured content. We have used such forms to create Feature/Requirements Documents on a wiki page. Since the page is annotated using Requirements ontology, this provides a very effective approach to link requirements to projects, tasks, bugs, test cases, etc. in a software engineering lifecycle -- all data that exists in tools external to the wiki.
- Provide macros that allow users to annotate any existing page on a wiki based on the available set of ontologies (Project, Person, Document, Process, etc.). Again, semantic annotations provide a deeper and more structured mechanism than just metadata tags for capturing relevant information from each page and organizing it within the wiki in a more meaningful way as well as integrating it with external applications.
And lastly, this semantic capability can now be added to any extensible wiki -- to make it wiki'd semart and sparql'ing :)
-Sanjiva, Orinda, October '08