data model for storing arbitrary metadata



odML (open metadata Markup Language) is a file format for storing arbitrary metadata. The underlying data model offers a way to store metadata in a structured human- and machine-readable way. Well organized metadata management is a key component to guarantee reproducibility of experiments and to track provenance of performed analyses.

python-odml is the python library for reading and writing odml metadata files. It is a registered research resource with the RRID:SCR_001376 .

The odML eco system




odML facilitates and encourages standardization by providing terminologies. An odml-file can be based on such a terminology. In that case one does not need to provide definitions since they are part of the linked terminology.

Existing terminologies can be browsed and imported from terminologies.g-node.org.


Templates are odML documents that can be re-used when collecting the same kind of information over the course of multiple identical experiments.

Templates that were created using the odML terminologies and are used to systematically collect metadata during scientific experiments can be found, discussed and shared at the templates github repository.

If you have created your own templates that others might find useful, you are encouraged to share your templates via this repository.

Currently available odML templates can be browsed and imported from templates.g-node.org.

Getting started


python-odml is most conveniently installed via pip.

pip install odml

Tutorial and examples

Python convenience scripts

The Python installation features multiple convenience commandline scripts.

All scripts provide detailed usage descriptions by adding the help flag to the command.

odmlconvert -h
odmltordf -h
odmlview -h

Browsing odML files

odML XML files can be saved with an included XSL stylesheet for convenient local viewing via a web browser. To use this option, save odML documents using the XMLWriter instead of odml.save():

XMLWriter(doc).write_file("filename.xml", local_style=True)

odML - NIX conversion script

You can also find a command line script for importing metadata from odML files into the second, more data centric, data format, NIX, or exporting metadata from a NIX file to a new odML file.

You can install the command line script via pip:

pip install nixodmlconverter

The script can then be run from the command line and provides a detailed usage description by adding the help flag to the command.

nixodmlconverter -h

The source code of the converter can be found on github.


If you experience problems using odml feel free to join our IRC channel #gnode at FreeNode or write an email to dev@g-node.org. If you find a bug please report it using the project issue tracker.


This project is open source published under an MIT license-like see license file for details.


If you use odml, it would be much appreciated if you would cite it in publications with its identifier RRID:SCR_001376 and/or the reference:

Grewe J., Wachtler T., and Benda J. (2011). A bottom-up approach to data annotation in neurophysiology. Front. Neuroinform. 5:16, doi:10.3389/fninf.2011.00016

Referenced By