Thursday, August 28, 2008

OmegaWiki goes Squeak

OmegaWiki was implemented in MediaWiki as an extension during its first iteration. At that time this was a great decision. It provided us with a lot of great functionality and it was the environment that we knew. MediaWiki is a wonderful collaborative application. In OmegaWiki mark II we are looking for other things; this has led to making OmegaWiki independent from MediaWiki.

OmegaWiki intended to do everything in one database. This meant that it was problematic to use our data for other purposes. We also had a situation where different applications wanted their specific data included in the database and needed control of the data involved. This could not be done in the first iteration of OmegaWiki so we had to rethink our ways.

As data may be connected and often will be shared, a peering model is required. Data will be used by many applications and consequently the data needs to be provided in a way that allows for many applications. For the data we will have one interface that uses a standard XML interface to provide the data. This will allow for many applications to use the same data and it will prevent the mixing of data and user interface elements as we saw in the past.

There will no longer be only one database; there will be many. The central or “global” database will provide basic information that will be CC-by licensed. This will allow anybody to have their own “regional” or “local” data and refer to shared concepts for instance for sharing or mapping purposes.

Regional and local databases can be licensed and maintained in a manner that makes sense to the people involved. They can include data that is not really acceptable from a pure linguistic point of view, for instance MALARIA as a synonym for malaria. They can include all kinds of relations between concepts, relations that may be really specialised or that require particular validations before they are published.

Another application that we have always wanted to give our data was was the OLPC and equivalent networks. This means that our database has to be able to function stand alone and be synchronised and share improved data when a connection becomes available.

As a consequence of all these considerations, we have been looking for the best technology that will serve our purpose; MySQL 5.1 will provide us with new functionality that makes an important difference. Squeak is a programming platform that we think will provide us with the tools to build the rich environment that we dream of having.

As the OLPC project also uses Squeak, it will allow us to bring our information to this great educational project, and in return we hope that people will find OmegaWiki an environment to contribute their Squeak work to and help us build dictionaries in the many languages spoken and written where the OLPC will become available.