[IUCr Home Page] [CIF Home Page]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Neutron diffraction experiments



I worry about the drift towards assigning arbitrary (or at least variable)
units to defined CIF quantities. There is a conflict between the human
interpretation of the contents of a CIF (indirectly what Syd refers to as
'wisdom') and the desire to make the data file interpretable by generic
software applications. The need is to make the definitions 'precise', not
only in the sense that they can be clearly understood, but that they supply
to an analysis program all the information that is required to manipulate
the data fully.

Certainly it is not difficult to write a few lines of code to interpret the
units conditional upon the existence and content of some other data item, so
far as this particular data item is concerned; but "special casing" and
"special coding" multiplied a hundred or a thousandfold as the number of
data items grows ever larger makes it much much harder to write general CIF
applications that can handle any arbitrary file.

In either case the complexity of the application increases, but the
challenges for the application writer come down to:

(1) be aware that for this particular data name _refine_diff_density_
    one must search for the existence of another name,
    _diffrn_radiation_probe, interpret its value (and make some other 
    assessment of what it should be if it is absent from the file), and
    then interpret the units of _refine_diff_density_ according to a set of
    criteria listed in some human-readable form (perhaps in the _definition
    text);

(2) search for a particular data name (_refine_neutron_residual_density_ or
    whatever), look up its _units and interpret the value thus.  The careful 
    introduction of a separate category (call it refine_neutron, say) could
    provide a key to the existence of an entire class of definitions specific
    to a particular radiation type.

I feel the approach (2) scales better, albeit at the cost of additional data
items.

One other option, that Peter Murray-Rust suggested some while ago, is to add
attributes to CIF data names that modify their standard or default
behaviour. In an SGML type coding, one could write something like 
   <REFINE><DIFF_DENSITY units=fm/A^3^></DIFF_DENSITY></REFINE>
In CIF one would need some other syntactic device, e.g.
   _refine_diff_density(units=fm/A^3^)   0.903
But recall that we have trodden this path many times before (e.g. COMCIFS 34:
http://www.iucr.org/iucr-top/cif/comcifs/minutes/msg00034.html), and the
previous units modifiers were unanimously thrown out.

Regards
Brian


[Send comment to list secretary]
[Reply to list (subscribers only)]


Copyright © International Union of Crystallography

IUCr Webmaster