BINFS : StarDOM : TechInfo

Technical information

What is StarDOM?

StarDOM is a software package to transform data given in the STAR format into XML. This is achieved by transferring the data tree inherent in a STAR file to a
Document Object Model. So far , the main application has been to mirror NMR data deposited at the BioMagResBank.

Further information

Have a look at our overview page about STAR and XML in general.

An article describing StarDOM has been published as
J. P. Linge, M. Nilges and L. Ehrlich (1999), Journal of Biomolecular NMR, 13, 51 - 59..

An overview presentation can be found here.

Implementation details

The core functionality of StarDOM is implemented in a package written in the Python programming language. It relies on an implementation of the Document Object Model (DOM). Currently, there are two DOM implementations freely availabe for noncommercial purposes: 4DOM is the implementation of FourThought which adheres closely to the W3C DOM recommendation, whereas the implementation provided by the Python XML-special interest group (XML-SIG) lends itself to easier programmatic manipulation of the DOM objects.

StarDOM is written in a way which allows the use of either package. As the 4DOM implementation can be used to access DOM objects as CORBA servers, the additional effort in programming might be worth it if you plan to create distributed data repositories.


Right now, the current implementation has the following limitations:

  • Frame codes are not yet supported in the XML conversion process. A $ prefix is considered part of the name string right now. This might change as we consider the use of XLinks here which enable consistent referencing of internal or external document fragments.
  • Conversion speed might be an issue when large mmCIF should be transformed. Currently, for each data element in a nested loop, a single object is created.

Visual data representation and editing editing

With the advent of next generation web browsers or dedicated XML viewers/editors, the data can be navigated and edited by directly manipulating the inherent treelike structure. For some example screenshots of using the Xeena editor, please look here.

Jens Linge, Lutz Ehrlich