Personal tools
You are here: Home Tools api
 

CellML API

CellML API Index Page

Introduction


The CellML Application Programming Interface(API) provides a simple interface that applications can use to manipulate and process CellML documents. The interfaces are designed to be independent of any programming language, platform, or vendor, and are expressed in OMG Interface Definition Language(IDL). It addresses both CellML 1.0 and CellML 1.1. 

This page contains information about the defined interfaces, and also about implementations of it that are available.

The CellML API has been designed so that it can easily be adapted to work with various ways of parsing and representing XML documents. The University of Auckland implementation is built on top of a Document Object Model(DOM) representation of the XML. However, the CellML API does not expose the DOM to the application except in the cases where it cannot be avoided(these currently restricted to getting the initial Model object, manipulating extension elements, and manipulating RDF. In addition, see the comments about MathML elements below).

The CellML API provides access to the MathML via the World Wide Web Consortium(W3C) MathML DOM. The objects in this API extend from those defined by the DOM core.

The CellML API does not stipulate any RDF interface, other than fetching DOM elements for the RDF/XML representation, and fetching a string containing serialised RDF/XML. However, the CellML element interface has been designed so that additional methods for manipulating RDF can be added, when they become available, without changing the CellML element interface.

Interface definitions

An IDL file for the CellML API is available.This is currently the normative reference for the CellML API. The CellML team also plans to release a plain-English definition of the API semantics (this will probably look similar to the API specifications released by the W3C).

Implementations

An implementation of the CellML API is complete. See current and planned releases here. You can get the current development branch via Subversion, at https://svn.physiomeproject.org/svn/physiome/CellML_DOM_API/trunk/. See the build instructions for various platforms. This implementation is written in C++. However, it has been designed in such a way that automatic mappings to CORBA, or to other languages, can be easily added.

Testsuites

A testsuite, designed to test the C++ API, has also been developed, and is available at https://svn.physiomeproject.org/svn/physiome/CellML_DOM_API/trunk/tests/

Ongoing Work

Bugs and feature requests are put in the tracker. A wiki page drafting the milestones for the next release are available here.