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 .
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.
python-odml is most conveniently installed via pip.
pip install odml
The Python installation features multiple convenience commandline scripts.
odmlconvert
: Converts odML files of previous file versions into the current one.odmltordf
: Converts odML files to the supported RDF version of odML.odmlview
: Render and browse local XML odML files without stylesheet in the webbrowser.All scripts provide detailed usage descriptions by adding the help
flag to the command.
odmlconvert -h
odmltordf -h
odmlview -h
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)
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