The machine-readable tag–value pairs in these dictionaries describe conditions that each CIF data item should satisfy; for example, the DDL attributes for a particular data item may restrict values to positive integers, or allow this data item to occur only in a loop with another specific data item.
Programming libraries for working with CIF and STAR files (CIF syntax is a restricted form of STAR syntax) significantly ease the task of adding CIF functionality to software projects.
Such broad CIF support is generally lacking for interpreted languages, despite a number of advantages that these languages have over compiled languages.
These advantages include: an identical programming interface on a variety of the common desktop and mainframe platforms, allowing creation of portable programs with no additional effort from the programmer; dynamic typing and high-level constructs mean that similar programming tasks require significantly fewer lines of code than their C/Fortran equivalent, leading to better program maintainability; simple tasks can be accomplished using built-in interactive interpreters; and program distribution and installation is usually simpler for both author and installer.
Such advantages come at the cost of a much slower execution speed and larger memory footprint during execution.
is a general-purpose Python package providing a simple, powerful interface for working with CIF files.
Objects and methods are available for reading, writing and manipulating CIF files and dictionaries.
Comprehensive validation of CIF files and dictionaries against DDL1 or DDL2 dictionaries is also possible.is easily included in larger projects and is portable across a large number of platforms.Although written in an interpreted language, parsing and validation times are acceptable for most applications., 1991) for data archiving and exchange is well established in crystallography.An important feature of the CIF format is the availability of standard dictionaries which codify the meanings of discipline-specific sets of CIF data items in both human and machine-readable form.These dictionaries are written using a dictionary definition language (DDL) (Hall & Cook, 2005; Westbrook , 2005) which is itself simply a set of standard CIF tags.