Data items in the VARIANT category record
the details about sets of variants of data items.
There is sometimes a need to allow for multiple versions of the
same data items in order to allow for refinements and corrections
to earlier assumptions, observations and calculations. In order
to allow data sets to contain more than one variant of the same
information, an optional *.variant data item as a pointer to
_variant.variant has been added to the key of every category,
as an implicit data item with a null (empty) default value.
All rows in a category with the same variant value are considered
to be related to one another and to all rows in other categories
with the same variant value. For a given variant, all such rows
are also considered to be related to all rows with a null variant
value, except that a row with a null variant value for which all
other components of its key are identical to those entries in
another row with a non-null variant value is not related the
the rows with that non-null variant value. This behaviour is
similar to the convention for identifying alternate conformers
in an atom list.
An optional role may be specified for a variant as the value of
_variant.role. Possible roles are null, 'preferred',
'raw data', 'unsuccessful trial'.
variants may carry an optional timestamp as the value of
_variant.timestamp.
variants may be related to other variants from which they were
derived by the value of _variant.variant_of.
Further details about the variant may be specified as the value
of _variant.details.
In order to allow variant information from multiple datasets to
be combined, _variant.diffrn_id and/or _variant.entry_id may
be used.