Note: Much of the content of this wiki is "science fiction" (ie, speculative design notes). It should therefore be regarded with extreme suspicion. See Examples, Status, and Wish List for details.

Ontiki

Ontiki (from Ontology and Wiki) is an experimental web application that Rich Morin and some friends are building. Basically, Ontiki is a structured wiki, backed by a server which allows scripting in an embeddable dynamic programming language (eRuby).

This language, in turn, provides access to both raw information (via a Git repository) and a knowledge base (eg, an RDF Triplestore). These resources are continuously updated by a back-end processing system, responsible for gathering raw information, extracting metadata, etc.

This combination allows Ontiki to store and index large amounts of content (eg, millions of documents). The embedded programming language supports the generation of ad hoc, arbitrarily complex dashboards and reports. Finally, because Ontiki is basically a wiki, any report can be annotated by users with comments, questions, etc.

Ontiki is intended to serve as both a useful platform and a testbed for experimentation in collaborative development. Because of its inherent extensibility, Ontiki should be capable of playing a variety of roles (eg, bug tracking system, content management system, corporate wiki, data mining and/or decision support system, documentation generator, management information system). Of course, each of these roles will require the creation of specialized support pages.

In the short term, Rich hopes to use Ontiki to document parts of the Ruby ecosystem (eg, Rails, Ruby, RubyGems); see PARSE for details. He is also interested in experimenting with existing ontologies. For more information on possible applications, see Use Cases.

Rationale

Conventional wikis are not well suited to handling the kinds of information (eg, classes, entities, relationships) used for building ontologies, supporting model-based documentation, etc. Although WikiMatrix lists hundreds of wikis, few have even minimal capabilities in this direction.

TWiki/Foswiki and Semantic MediaWiki, for example, support some page-level metadata and scripting. However, because these are not central to the wikis' designs, they are very limited in convenience and capabilities. In addition, the large code and user bases of these wikis tend to make large-scale changes impractical.

However, it's quite possible to augment a conventional wiki by means of a back-end server. In this scenario, the wiki only needs to generate URLs for the server, including any needed parameters, and "include" the resulting output. Even without plugin support, TWiki/Foswiki can do this.

Objectives

In addition to conventional wiki features, Ontiki should support:

  • dynamic use of external content

  • executable scripts within pages

  • fine-grained, flexible access controls (eg, ACLs)

  • arbitrary, structured metadata for (sets of) pages

  • powerful searching on content and metadata

These features combine to allow greatly increased levels of extensibility. For example, it should be possible to create "library pages", containing access and/or presentation methods. This code could then be included and used by other pages. Alternatively, any user could make a copy of a library page, edit it to taste, and use it for their own purposes.

Implementation

Rich is currently implementing Ontiki as batch-mode processing system, feeding Git and a Semantic Web server. A specialized "execution server" will retrieve pages from the wiki, load and execute them, and output the result for use (eg, inclusion, processing) by the requesting wiki page.

This wiki contains Rich's project notes, arranged in a reasonably hierarchical fashion. For additional information, see the TopicTree.


This wiki page is maintained by Rich Morin, an independent consultant specializing in software design, development, and documentation. Please feel free to email comments, inquiries, suggestions, etc!

Topic revision: r44 - 16 Sep 2009, RichMorin
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding CFCL Wiki? Send feedback