Chemical Data Object Programming Interface (CDOPI)

About the project

The Chemical Data Object Programming Interface is an abstract API that tells you how to store information into a chemical data objects (CDO).Every application needs to define its' own CDO and each CDO has to define an output interface itself as CDOPI does not do this (at this moment).

By defining an storage interface libraries can use this interface to pass information to the program without any knowledge on the program itself. An example is the use of CDOPI in the JCFL project. The programs that use the Java CML Filter Library (JCFL), need to define a CDO class that is passed to the import filter. The CDO is returned when the importing of the CML data has finished.

The 1.2 Interface

The interface has changed considerably. Version 1.2 of the JCFL implements v0.3 of the CDOInterface.java class. Note that all information is stored using the startObject/endObject/setObjectProperty procedures. Entities are the same as in v0.1 of the class.

The 1.0.1 Interface (Deprecated)

The interface is basically an event driven storage interface. This means that the start and end of an entity is messaged. Each entity has some abstract meaning. The current version of CDOPI (v0.1) defines the following entities:

Document
Abstract entity the holds all information to be stored
Molecule
You know... bunch of atoms :)
Fragment
A smaller set of atoms.
Atom
Smallest seperable part of a molecule (to chemists that is)

Some additional entities are defined to store reactions etc:

Animation
A set of frames.
Frame
A moment in time

Each entity has three precedure: a startEntity(), an endEntity() and a a setEntityProperty() procedure. Thus, for example, startAtom(), endAtom() and setAtomProperty(). The third procedure takes two arguments: setEntityProperty(String type, String value). The second argument is a textual representation of the value.

In version 0.1 of CDOPI the following types of properties are defined:

Document
no properties
Molecule
no properties
Fragment
no properties
Atom
type, x2, x3, y3, z3, charge, id
Animation
no properties
Frame
title

Work in Progress

Note that this is far from complete. This project is work in progress, though it is implemented in real, serious software. Any comment is welcomed, any discussion is appreciated. Additions ar also welcome, but consult me first, so we're not working in different directions.

Download

The software can be downloaded, distributed and used under the terms of the GNU Public License (GPL) here:

Software that uses CDOPI

Articles on CDOPI

Links


Last updated on January 6th 2000. Copyright © 1999 Egon Willighagen