Please advise regarding a design of CIF dictionaries for material properties

David Brown idbrown at
Wed Sep 28 17:07:30 BST 2011

Dear Saulius,

I would echo Herbert's advice.  It is important to keep everything in 
the right place even if it does increase the size of the dictionary.  In 
particular it is important to make sure that the transformation to DDLm 
will create no problems.  DDL1 took some shortcuts before we realized 
the importance of avoiding them.

I have more comments below.

Saulius Grazulis wrote:

>Dear COMCIFS members,
>I have a question about the design of domain-specific CIF dictionaries
>and would like to ask for your advise (and please accept my apologies
>and let me know if there is a better mailing list to ask for such
>I am currently participating in the design of CIF dictionary for the
>Material Properties Open Database (MPOD) that intends to store all
>published experimentally measured crystal properties, such as elasticity
>tensors, dielectric permeability and so forth. All in all there should
>be about 50 different tensors.
>Each tensor can be measured at different temperatures or pressures. To
>preset data convenietly, for both humans and computers, we curretnly
>plan to put each tensors' measurements into a separate loop. Since tag
>names may not be repeated int the same data block, we will have to
>define similar measurement condition tags for each tensor:
>(_prop_ is a prefix registered for MPOD in the IUCr prefix list).
>Now, although this is only a small overhead in CIFs, it would be an
>overkill to specify all these tags separately in a dictionary. Thus, I
>would like to "contract" the definition of all
>_prop_<property>_temperature tags into one dictionary datablock:
>_name '_prop_elastic_stiffness_temperature'
>      '_prop_piezoelectric_temperature'
>      # Other names will follow and may be added in the future releases
>      # of the dictionary
>_type             numb
>_type_conditions  esd
>_category         prop # or prop_temperature ? or prop_elastic?
>_list             both
>   Specifies measurement temperature of a property in Kelvins.
>   Please see below in this mail...
>Now, my questions are -- is there a problem if:
>a) tags of the same property are split into several loops in data CIFs?
Although temperature is a single property, the temperatures at which 
different properties are measured are in principle different 
temperatures.  They will appear in different loops, but they are not the 
same property.  The description should be more specific in the example 
above, e.g.,

   Specifies temperature in Kelvin at which the peozoelectric tensor was measured. 

>b) one dictionary data block describes names that are potentially in
>different categories (but otherwise have the same characteristics)? For
>example, would the dictionary entry above be considered correct if we
>declare _prop_elastic_stiffness_temperature to be in
>'prop_elastic_stiffness' category, and _prop_piezoelectric_temperature
>to be in 'prop_piezoelectric' category, and still have one dictionary
>datablock to specify their properties?
This should be avoided.  It has been used in DDL1, but is not allowed in 
DDLm.  Yes, it makes the dictionary larger, but it keeps everything in 
the right place.  In DDLm the duplication is minimized by the ability to 
insert the same common description of temperature into many different 
definitions in the dictionary.

>b') or the category is so inclusive that it describes data spanning
>several loops (like '_prop_' category in the above example)?
>c) data_... block name in the dictionary no longer matches tag name. I
>guess this should not be a problem... Is it?
It is not a problem in DDLm, I am not sure about DDL1, but it could be 
confusing.  Best avoided.

>d) would it break anything if category name is not the prefix of the tag
>(e.g. declaring _prop_piezoelectric_temperature to have category
>_prop_temperature, to describe all temperature tags in one data block)?
In DDL1 this sometimes happens.  In DDLm the name is constructed out of 
he category and the item name which might make transformation to DDLm 
problematic.  Best avoided.

End of my comments

David Brown

>e) Any other anticipated problems?
>Sincerely yours,
>PS. We have toyed with two other representations, one putting all
>tensors into one loop, but they seem much worse (would require lots of
>'.' fields and would result in severely denormalised relational tables).
>PPS: data examples with the proposed tags:
>>The CIF would look like
>>Copper  273  375.1  -48.5  -48.5  375.1   -48.5  375.1  101.4   101.4 101.4
>>Copper  293  375.1  -48.5  -48.5  375.1   -48.5  375.1  101.4   101.4 101.4
>>Copper  313  375.1  -48.5  -48.5  375.1   -48.5  375.1  101.4   101.4 101.4
>>PIN-PMN-PT 100.0 ? 2190 1022 511
>>PIN-PMN-PT 100.0 ? 2190 1022 511
>>PIN-PMN-PT 100.0 ? 2190 1022 511
>>and so on.

-------------- next part --------------
An HTML attachment was scrubbed...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: idbrown.vcf
Type: text/x-vcard
Size: 298 bytes
Desc: not available
Url : 

More information about the comcifs mailing list