ScheMol is a Domain Specific Language (DSL) tailored for extracting models out of a database. ScheMol is a joint work between ModelUm Research Group (University of Murcia) and Onekin Research Group (University of the Basque Country).
Oscar Díaz1, Gorka Puente1, Javier Luis Cánovas Izquierdo2 and Jesús García Molina2

ONEKIN Research Group1, University of the Basque Country and ModelUM Research Group2, University of Murcia e-mail:
{oscar.diaz,gorka.puente}@ehu.es1 {jlcanovas, jmolina}@um.es2

Data rather than functionality, is the source of competitive advantage for Web2.0 applications such as wikis, blog and tagging sites. This valuable information might need to be capitalized by third-party applications or be subject to migration or data analysis. Model-Driven Engineering (MDE) can be used for these purposes. However, this first requires obtaining models from the wiki/blog/tagging site database (a.k.a. model harvesting). This can be achieved through SQL scripts embedded into the code. However, this approach leads to laborious code that exposes the iterations and table joins that serve to build the model. By contrast, a Domain Specific Language (DSL) can hide these “how” concerns, leaving the designer to focus on the “what”: the mapping of database schemas to model classes. This paper introduces Schemol, a DSL tailored for extracting models out of databases which considers Web2.0 specifics. Web2.0 applications are often built on top of general frameworks (a.k.a. engines) that set the database schema (e.g., MediaWiki, Blojsom). Hence, table names offer little help in automating the extraction process. Additionally, Web2.0 data tends to be annotated. User-provided data (e.g., wiki articles, blog entries) might contain semantic markups which provide helpful hints for model extraction. Unfortunately, this data ends up being stored as opaque strings. Therefore, there exists a considerable conceptual gap between the source database and the target metamodel. Schemol offers extractive functions and view-like mechanisms to confront these issues. Examples using Blojsom as the blog engine are available for download.

Eskimo. Image made by Javier Luis Cánovas Izquierdo




How To

The examples come in eclipse projects "ScheMoL.University",  "ScheMoL.Wiki" and "ScheMoL.Blog".  The project is divided into:
Schemol definition (transformation rules).
/lib: In this folder are the ant, Gra2Mol and Emf required libraries.
This is the Schemol engine.
The target metamodel.
build.xml: Configuration file for launching the ant task to execute the Schemol transformation (see figure 6).
debug.txt: Schemol debug output.
result.ecore.xmi: Target model with the result of the Schemol transformation.
schemolModel.ecore: Schemol result model (generated by the Gra2Mol engine).

To execute the transformation launch the ant task "execute" in build.xml. Right mouse button -> Run as (separate JRE) -> Run execute

The databases in MySQL dumps (download section). To restore the database execute:
mysql -u userName -p schemaName < dumpFile.sql
mysql -u root -p university < university.sql
mysql -u root -p mediaWikiDB < mediaWiki.sql

If university schema does not exist create with:
CREATE DATABASE `university` /*!40100 DEFAULT CHARACTER SET latin1 */;
If mediaWikiDB schema does not exist create with:


Schemo configuration




Schemol last version 3th Jan, 2012

Eclipse Projects (alpha versions) - Download here university example, here wiki example and here blog to catalog example. Databases - Download here university database schema (with row data) and here blojsom (blog to catalog) (with row data)


Technical Trac

Please for Technical issues check this out! All bugs and problems are welcome, post your tickets!



Copyright Onekin Research Group and ModelUm Research Group. All rights reserved. Revised: Jan 3th, 2012.

Report questions/problems: Gorka Puente García && Javier Luis Cánovas Izquierdo

This prototype has not any associated publication.

This prototype has not any associated project.

This prototype has not any associated author.


University of the basque country