[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ddlm-group] _enumerated_set.table_id

  • To: ddlm-group <ddlm-group@iucr.org>
  • Subject: [ddlm-group] _enumerated_set.table_id
  • From: James Hester <jamesrhester@gmail.com>
  • Date: Mon, 20 Apr 2015 12:45:22 +1000
  • DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;h=mime-version:date:message-id:subject:from:to:content-type;bh=KzvwMm+Q1k5wPX6pVmsmSflTu4e99u3af7U0ZDEaAoY=;b=IKp/uO4FzBi67SqOS/uysxt8lypFUc4GdF8YpznCkgsi7K4iKyDBAVvNej08icJKV+0yrikFY2FvogJ+a1KqkYyGK1kCAoxSCpkcH0dGhh2DQz7HXgCm6+u5/IJTSWgTLLsqbW+RbA8ljhwhLz07b87hpAc5wMuDhV2KxlGalq76b1ASi64h0yksGbqOvlCnjAyd5BlLPAveRb/lxhUBGLs5rk95bd13rVFJj3ha4NiJx1QamLLiLCe1OOWV4VK5wTN0r0kkt/f1S8bPd1xSR/e93h1Gbm1XYDdnIAffuNFvBUVKD2jBFqqfkQkU1synnnZrD9tRCjnA8aolNmmaKw==
Dear DDLm group,

(originally sent Feb 5th)

I have been going through ddl.dic with an eye to writing automated dictionary checking routines and came across _enumerated_set.table_id.  This attribute is used precisely once in all the draft DDLm dictionaries (which include all of the previous DDL1 dictionaries): and that is in ddl.dic itself in the definition for the DDLm _import.get attribute.   This attribute is intended to specify in a machine-readable way the possible values of CIF2 Table keys. In this particular case the CIF2 tables are themselves within a List:

    _type.purpose                Import
    _type.source                 Assigned
    _type.container              List
    _type.contents               Table(Code)
    _type.dimension              [{}]
    loop_
    _enumeration_set.state
    _enumeration_set.detail
    _enumeration_set.table_id
              1             'filename/URI of source dictionary'      file     
              2             'save framecode of source definition'    save     
              3             'mode for including save frames'         mode     
              4             'option for duplicate entries'   dupl   
              5             'option for missing duplicate entries'   miss
    loop_
    _method.purpose
    _method.expression
     Evaluation   
;
     With  i  as  import

    _import.get = [{"file":i.file_id, "save":i.frame_id, "mode":i.mode,
                    "dupl":i.if_dupl, "miss":i.if_miss}]
;


Because it is in the _enumerated_set category, the category key _enumerated_set.state must be present when listing these table keys, but instead of _enumerated_set.state listing the actual permitted values, it contains meaningless dummy values; table_id then lists table keys, not values, and so the restraints on the values of the keys are absent.  This looks like an abuse of the enumerated_set category when the natural solution as proposed by Doug du Boulay is to simply enhance _type.contents, i.e.

_type.contents = {"file":URL "save":Code "mode":Code "dupl":Code "miss":Code}

Note that _type.contents is implicitly interpreted (in the demonstration DDLm dictionaries) to describe the contents of Lists, not the whole list, so the above use is in line with this. I therefore suggest that we drop _enumerated_set.table_id from DDLm completely as there is no use case.

Are we in agreement on this?
James.
--
T +61 (02) 9717 9907
F +61 (02) 9717 3145
M +61 (04) 0249 4148
_______________________________________________
ddlm-group mailing list
ddlm-group@iucr.org
http://mailman.iucr.org/cgi-bin/mailman/listinfo/ddlm-group

Reply to: [list | sender only]