Chemical Markup Language
Chemical Markup Language (CML) is an XML language designed to facilitate the creation, interchange, and deposition of chemical information. CML has been developed over 13 years and covers many areas of mainstream chemistry including:
- Molecules - structures and properties
- Reactions, including properties and reaction schemes.
- Spectra, especially as found in chemical publications
- crystallography, especially the interplay of structure and chemistry
- computational chemistry
CML is designed to interoperate with other XML languages and thus avoids unnecessary and confusing duplication. In particular we work with:
- MathML
- SVG (graphics)
- ThermoML (thermochemistry)
- AnIML (analytical chemistry)
CML is accepted as a publication format by the American Chemical Society and other publishers (including the Royal Society of Chemistry). CML-aware software is widespread and found in computational chemistry, solid state, crystallography and QSAR/molecular properties.
CML consists of a large vocabulary expressed in XML Schema languages (XSD and Relax NG) and Schematron. Most chemical applications will only require a subset and it is possible to create "conventions" where CML elements are put together for a specific set of uses. These include CMLComp (computational chemistry), JSpecView (for chemical spectra), CMLReact (MaCiE) for enzyme reactions, and CMLLite (for publication of molecules and their properties). Communities using these conventions have written their own software (e.g. FoX and JSpecView) to support their applications. These applications use CML as the basis of a natural language for chemistry allowing chemists and other scientists to express themselves without the enforced restrictions of XML content models.
There is much software supporting CML. Jumbo is a complete Java library for all CML elements and attriutes and provides many additional functions. It acts as the reference for CML semantics. Many commercial programs emit CML and chemical Open Source universally interoperates with CML files and ojects.
CML schemas, designs and applications have been published in many places. The formal references are ...