I have developed the following as part of research I've worked on


This is a model transformation from Eclipse Modelling Framework Core (ECore) to KodKod. ECore is a formalism used to describe modelling languages as meta models. The Java-based KodKod model finder from MIT analyses logical specifications to find instances, via a SAT solver. The EMF2KodKod translation creates a model generator from a meta model, whilst also considering the logical constraints of that meta model. The instances can then be used to validate model transformations. For example, given an input a meta model of the Java language, the output would be a generator that creates instances of the Java language. In other words, a program that creates Java programs, that can be used to test Java transformations.

EMF2KodKod Implementation overview

EMF2KodKod can be used to create test data that applies to itself. This is made possible because a) it is a model transformation and b) ECore is self defining (similar to string grammars). This makes EMF2KodKod a self hosting test case generator- a test case generator that can create a test cases for itself.

Contact me if you are interested in this project.


Sierra is an experimental system for the Disaster 2.0 research project that implements an online, decentralised and cooperative network of websites. A prototype network was built on top of Drupal. Each node in the network corresponds to a web application that is used by a single organisation to manage physical resources. Sierra defines a light-weight web-service (using semantic web principles) that allows multiple nodes to form a network and share information and resources with other nodes. The protocol allows allows nodes to make requests, and to send responses to those requests.

Through my work on Sierra and the D2.0 project, I became a member of the World Wide Web Consortium's (W3C) Emergency Information Community Group. The following video gives a 5-minute introduction to how this type of system can support disaster response:

Visit the Sierra website on Github.