Open Dynamic Concept-oriented Content Management
Introduction Applications Project Tasks Publications Related Technologies
Project Tasks: Asset Language ADL Compiler COCoMa System Architecture Modeling Tools

Project Tasks

This section lists the subprojects in which parts of the COCoMa environment are being built.

Asset Language

ADL, AQL, AML

Grammar...

Semantics...

ADL Compiler

The ADL compiler creates a COCoMaS from a user's asset definitions.

In contrast to traditional compilers the compiler for asset definitions constitutes a framework. It controls the generation of the various modules of a COCoMaS. Generators are developed using the compiler framwork.

Like a traditional compiler it is divided into frontend and backend. The frontend includes parsing and checking the asset definitions. The backend consists of module generators which generate the modules of a COCoMaS as described in the architecture documentation. Different backend configurations can be maintained to create different COCoMa systems.

There is one API generator which creates the uniform API of all modules. Module generators build implementations of this API.

Compiler Framework

The compiler framework is provided in Java.

Supervisor: Hans-Werner Sehring
Researcher: Hans-Werner Sehring
Ressources:
Java API Docs for the whole ADL framework
Slide set: Asset Compiler Framework and Generator Development Guide

Compiler Frontend

There are two noteworthy contributions in the frontend:

The ADL Grammar. The grammer describes the syntax of the asset language (definition, query, and manipulation language). It is written for the ANTLR parser generator which is used for the asset compiler.

Supervisor: Hans-Werner Sehring
Researcher: Hans-Werner Sehring
Ressources:
› Asset definition, query, and manipulation language report
ANTLR parser generator

Intermediate Asset Model. The parser produces an intermediate model of an asset definition file. This intermediate representation is passed to the generators.

Supervisor: Hans-Werner Sehring
Researcher: Hans-Werner Sehring
Ressources: › JavaDoc of the intermediate asset model, part of the JavaDoc for the whole ADL framework

Compiler Backend

The compiler backend mainly consists of generators. There is one API generator which defines the Java interfaces which all generated modules have to implement. There are generators for the various types of modules: client modules, adaptation modules, coordination modules, distribution modules, and server modules.

Look at the generator skeleton to get started with generator development.

API Generator. All modules follow a uniform API. This is generated by the API generator.

Supervisor: Hans-Werner Sehring
Researcher: Hans-Werner Sehring
Ressources: introductory slide set

Client Module Generators

So far, there are two generators being under construction:

Proposals for further client module generators are:

Client module generator for relational databases. SQL (JDBC).

Supervisor: Hans-Werner Sehring
Researcher: Hans-Werner Sehring
Ressources: -

Client module generator for XML databases. XML Schema.

Supervisor: Sebastian Bossung
Researcher: Sebastian Bossung
Ressources: -

Client module generator for the CMS of CoreMedia. The client module generator for the CMS of CoreMedia creates a module which stores assets in the repository of that platform.

Supervisor: Hans-Werner Sehring
Researcher: Hans-Werner Sehring
Ressources: -

Client module generator for the infoAsset Broker. The generator for client modules for the Broker of infoAsset creates a module which maps assets to ones in the notion of assets used in that platform.

Supervisor: Hans-Werner Sehring
Researcher: Gerald Mofor
Ressources: introductory slide set

Client module generator for email. POP SMTP IMAP WebDAV.

Supervisor: Hans-Werner Sehring
Researcher: -
Ressources: JavaMail (a mailing API for Java)
JDAVMail (a JavaMail implementation using WebDAV)

Client module generator for MS Exchange. SyncML.

Supervisor: Hans-Werner Sehring
Researcher: -
Ressources: Funambol (SyncML library for Java, formerly called Sync4j)

Service Interface Generators

Currently, two generators for service interfaces are under development:

Web Services Interface. This generator creates descriptions of the operations of a COCoMas in the Web Services Description Language (WSDL). This includes the standard operations (lookfor, create, modify, delete) with respect to the current asset class definitions.

Supervisor: Hans-Werner Sehring
Researcher: Paul Sentosa, Patrick Wai Un
Ressources: introductory slides
Web Services
Systinet (Web Services products)

GUI Engine. Open dynamic content management requires dynamically adaptable UIs. Like the domain model the presentation of assets has to be user-definable. To achieve this, we use assets to model the UI realm. It consists of two domains: one for (logical) UI components and one for presentation technologies.

Supervisor: Hans-Werner Sehring
Researcher: Fenfang Xu, Gerald Mofor
Ressources: SwiXml (a small GUI generating engine which renders Java applications and applets described in XML documents)
UIML (a user interface description language in XML)
XUL (a markup language for describing user interfaces)
JAXFront (XML rendering)

Compiler Framework

systems, components, modules, ...

Modeling Tools

Tools which help in creating asset models are under investigation:

An Eclipse Plug-in for the Asset Language

As a development tool to create COCoMaS there is a plug-in for the Eclipse tooling platform. It integrates the asset compiler and uses existing plug-ins which handle the files generated by the asset compiler.

Supervisor: Hans-Werner Sehring
Researcher: Mathias Freier
Ressources: introductory slides
Eclipse