-- Write the following COD CIF check procedures:
   cif_check_symmetry
	o check spacegroup operator syntax
	o check spacegroup symbol presence and syntax
	o check whether symbols can be found in a table
	o check whether symbols derived from the symmetry operators
	  and the ones recored in the CIF file are the same
	o check whether the IT number is present and if its, whether
          it corresponds to ths spacegroup derived from the symmetry
	  operators
    cif_check_cell
        o check whether cell constants are present, or can be restored
          from the spacegroup information.
	o if all cell constants are present, check if they are
          compatible with the spacegroup (either derived from the
          symmetry operators or given as a Hall symbol, H-M symbol or
          ITC number)
    cif_check_bibliography
        o check whether journal, year, volume, page is present
        o alternatively, check whether this is a "personal
          communication to COD", or structre on hold
        o check wheter the journal name is in the list; restore the
          full "canonical" journal name
        o check whether author list is present
        o if a link to a journal's web site or a bibliographic database
          (Medline?) can be established, check whether such reference
	  exists and whether it is the same as recorded
    cif_check_authors
        o check wheter the author list is present
        o check whether authors' name syntax corresponds the one
          mandated by BibTex, 'Name Name Surname' or
          'von Surname Surname, Jr., Name Name Name'
        o check capitalisation of names and surnames
    cif_check_chemical_formula
	o check the _chemical_formula_{sum,structural,moiety,iupac}
          syntax
        o (?)check whether the moiety and structural formulae agree with
          the _chemical_formula_sum and with each other
	o check whether atoms from the formula are in the periodic
          table
        o check whether all atoms and only they are present in the CIF
          file coordinates and atoms part
        o check if molecular weight given in the CIF file agrees with the
          one calculated from the summary formula
        o (?) check whether the formula derived from the coordinate
          section agrees with the formula given in the _chemical_formula_sum
        o check/compute the Z value
    cif_check_packing
        o check crystal density from the AU atomic contents
        o make checks like in AMCSD
        o check spere contacs (VdW radii, packing voids)
    ... more checks as described in the IUCr page ...
    cif_check_dictionary
        + read CIF files one-by-one, don't try to read-in all at once
        + check against multiple dictionaries
        + check if tags names are in dictionaries, issue warnings if
          they are not
        + check if tags are marked as replaced (deprecated)
        + check if numeric values are well-formatted
        + check if enumerator values are within dictionary list
        o check other possible data syntax restrictions, if possible
          (e.g. int vs. float if dictionaries allow to draw such
          distinction)
        o check against dictionary-provided regular expressions, if
          and when such are provided
        + check if mandatory loop category items are present within
          loops
        + check if tags are correctly used within loops (i.e. match
          prescriptions of _list yes/no and _list_mandatory yes/no
          dictionary tags).

-- Consider using Unicode numeric subscripts and superscripts for CIF
   markup subscripts and superscripts. Alternatively, consider using
   XML/HTML-like markup for indicating sub- and superscripts in titles
   and formulas.

++ Handle "dotless i" correctly in the CIF markup.

++ Transform 'text', 'title', and other text fields into utf8 from CIF
   markup.

++ Correctly compute the 'nel' (number of elements) field.

++ Check internal formatting of chemical formula, correct whenever
   possible or report an error.

++ Add chemical formula into the output table, report error if none
   is present (so far, no error is reported but a question mark ("?")
   is printed in the output).

++ Check all symmetry sources, report error if none is present.

++ Try to estimate a cannonical H-M spacegroup name.
