This is an archive copy of the IUCr web site dating from 2008. For current content please visit https://www.iucr.org.
[IUCr Home Page] [CIF Home Page] [mmCIF Home Page]

Re: _item.mandatory_code can be undefined! (plus other development

Peter Keller (bsspak@bath.ac.uk)
Fri, 11 Aug 1995 16:54:09 +0100 (BST)


[masses of DDL verbiage deleted - many thanks to John for a lot of helpful
comments.]. 

> One the major reasons for making these optional was to avoid the
> the possibility of an inconsistent update in redundant data definitions.
> From my last look at the mmCIF dictionary it appears that most of these
> instances now include a complete respecification of at least the
> item category (which includes the mandatory code).  I would prefer if
> we could simply not include the redefinition of the item category
> if this were acceptable everyone 

My current thinking is that this would be the best solution, although I 
am ready to be persuaded otherwise. Paula said on mmciflist:

> I'm not going to go into a discussion of why we decided to carry _item.name
> and _item.mandatory_code in the stand-alone definitions for each of the data
> items that also definted as a child in a parent tree.  In fact, although I
> can remember the discussion about adding _item.name, I can't recall why it
> was necessary to add _item.mandatory_code.

In the light of your comments, I guess that given that _item.name has to
be there, _item.mandatory_code is necessary to avoid the possibility of
partial row updates. Since I wasn't around for the discussion I don't know
the arguments for re-specifying the ITEM category at all, and I find it
hard to see why it was thought necessary. If there is simply a requirement
for the data item's name to be repeated somewhere within the save frame,
it might be better to do this with _item_description.name, rather than
_item.name. This would then avoid the need to re-specify
_item.mandatory_code. Both the ITEM_DESCRIPTION category, and the
_item_description.description item, are mandatory anyway, so this would be
a good way to do it. (Making this change might seem to involve some hard
work at first sight, but I could kludge my own code to do it fairly
quickly, if necessary.)

> As I explained before, we are in a catch 22 situation here.  If we make this
> mandatory, then it must be respecified for each redundant item in the
> dictionary.  We very much wish to minimize this sort of redundancy as
> much is this is possible.   I appreciate the problems that this
> causes with respect to data type ..  What if we expand the enumeration
> for mandatory_code to include "mandatory/inherit" which formally specifies that
> an item is required and can inherit the property of a parent.  If there is no
> parent or the value is not specified then it there is clearly an error
> condition.  This would involve a rather small change to the DDL that
> would not require any changes in the mmCIF dictionary.

Personally I'd be very happy with that. I take it that you are suggesting
that _item.mandatory_code should be "inherit" for _item_type.code? From my
own work, I am starting to realise that these are the two items which are
really crucial in the handling of real data - if there are problems with
them, there is no way out. 

Am I right in thinking that the _category.mandatory_code item for the
ITEM_TYPE category should then also be changed to yes, since all of its
member items would have a mandatory code of implicit or inherit? I guess
that the likely impact on the dictionaries should be the main
consideration here. 

Regards,
Peter.

P.S. I have been wondering how many people read this list, and how many of
those are active developers. Does anyone know? 

========================================================================
Peter Keller.            \ "We kill the cows to make jackets out of 
Dept. of Biology and      \  them, and then we kill each other for the
    Biochemistry,          \  jackets we made out of the cows."
University of Bath,         \                   --- Denis Leary
Bath, BA2 7AY, UK.           \ 
------------------------------\-----------------------------------------
Tel. (+44/0)1225 826826 x 4302 | Email: P.A.Keller@bath.ac.uk (Internet)
Fax. (+44/0)1225 826449        |   P.A.Keller%bath.ac.uk@UKACRL (BITNET)
========================================================================