############################################################################## # # # DDL CORE DICTIONARY # # # ############################################################################## data_on_this_dictionary _dictionary_name ddl_core.dic _dictionary_version 1.4 _dictionary_update 1995-05-16 _dictionary_history ; 1991-03-08 "Implementing SMD in STAR: Dictionary Definition Language" A F P Cook, ORAC Ltd., 8 March 1991. AFPC 1991-06-25 Adjustments and refinement for CIF applications. SRH 1991-09-02 Further refinements prior to "cifdic.c91". SRH 1993-05-10 Additions arising from discussions with Phil Bourne, Tony Cook, Brian McMahon. SRH 1993-05-11 Further adjustments and Cyclops tests. SRH 1993-05-14 Proposed additional changes. PEB 1993-05-17 Further adjustments. SRH 1993-06-01 Refinements and additions. SRH 1993-07-19 Some tidying up. SRH 1993-08-10 Final checks before Beijing. SRH 1993-12-12 Following the Cambridge meeting with FHA and AFPC. SRH 1993-12-16 Following discussions with Brian McMahon in Chester. SRH 1993-12-17 Further adjustments. SRH 1994-02-18 Add _include_file provisions. SRH 1994-08-08 Install _type_construct definitions and apply. SRH 1994-08-24 Adjustments following Brian McMahon's comments. SRH 1994-11-16 Changes following Brussels workshop. SRH 1995-05-16 Changes to _units definitions. SRH ; global_ _list no _list_mandatory no _list_level 1 _type_conditions none _type_construct .+ data_category _definition ; Character string which identifies the natural grouping of data items to which the specified data item belongs. If the data item belongs in a looped list then it must be grouped only with items from the same category, but there may be more than one looped list of the same category provided that each loop has its own independent reference item (see _list_reference). ; _name '_category' _category category _type char data_definition _definition ; The text description of the defined item. ; _name '_definition' _category definition _type char data_dictionary_history _definition ; A chronological record of the changes to the dictionary file containing the definition. Normally this item is stored in the separate data block labelled data_on_this_dictionary. ; _name '_dictionary_history' _category dictionary _type char data_dictionary_name _definition ; The name string which identifies the generic identity of dictionary. The standard construction for these names is _.dic Normally this item is stored in the separate data block labelled data_on_this_dictionary. ; _name '_dictionary_name' _category dictionary _type char loop_ _example ddl_core.dic cif_mm_core.dic data_dictionary_update _definition ; The date that the dictionary was last updated. Normally this item is stored in the separate data block labelled data_on_this_dictionary. ; _name '_dictionary_update' _category dictionary _type char _type_construct (_chronology_year)-(_chronology_month)-(_chronology_day) data_dictionary_version _definition ; The dictionary version number. Version numbers cannot decrease with updates. Normally this item is stored in the separate data block labelled data_on_this_dictionary. ; _name '_dictionary_version' _category dictionary _type numb data_enumeration _definition ; Permitted value(s) for the defined item. ; _name '_enumeration' _category enumeration _type char _list both _list_mandatory yes data_enumeration_default _definition ; The default value for the defined item if it is not specified explicitly. If a data value is not declared the default is assumed to be the "most-likely" or "natural" value. ; _name '_enumeration_default' _category enumeration_default _type char data_enumeration_detail _definition ; A description of a permitted value(s) for the defined item, as identified by _enumeration. ; _name '_enumeration_detail' _category enumeration _type char _list both _list_reference '_enumeration' data_enumeration_range _definition ; The range of values permitted for a defined item. This can apply to 'numb' or 'char' items which have a preordained sequence (e.g. numbers or alphabetic characters). If 'max' is omitted then the item can have any permitted value greater than or equal to 'min'. ; _name '_enumeration_range' _category enumeration_range _type char _type_construct (_sequence_minimum):((_sequence_maximum)?) loop_ _example -4:10 a:z B:R 0: data_example _definition ; An example value of the defined item. ; _name '_example' _category example _type char _list both _list_mandatory yes data_example_detail _definition ; A description of an example value for the defined item. ; _name '_example_detail' _category example _type char _list both _list_reference '_example' data_list _definition ; Signals if the defined item is declared in a looped list. ; _name '_list' _category list _type char loop_ _enumeration _enumeration_detail yes 'can only be declared in a looped list' no 'cannot be declared in a looped list' both 'declaration in a looped list optional' _enumeration_default no data_list_level _definition ; Specifies the level of the loop structure in which a defined item, with the attribute _list 'yes' or 'both', must be declared. ; _name '_list_level' _category list _type numb _enumeration_range 1: _enumeration_default 1 data_list_link_child _definition ; Identifies data item(s) by name which must have a value which matches that of the defined item. These items are referred to as "child" references because they depend on the existence of the defined item. ; _name '_list_link_child' _category list_link_child _type char _list both data_list_link_parent _definition ; Identifies a data item by name which must have a value which matches that of the defined item, and which must be present in the same data block as the defined item. This provides for a reference to the "parent" data item. ; _name '_list_link_parent' _category list_link_parent _type char _list both data_list_mandatory _definition ; Signals if the defined item must be present in the loop structure containing other items of the designated _category. This property is transferrable to another data item which is identified by _related_item and has _related_function set as 'alternate'. ; _name '_list_mandatory' _category list _type char loop_ _enumeration _enumeration_detail yes 'required item in this category of looped list' no 'optional item in this category of looped list' _enumeration_default no data_list_reference _definition ; Identifies the data item, or items, which must be present (collectively) in a looped list with the defined data item in order that the loop structure is valid. The data item(s) identified by _list_reference provides a unique access code to each loop packet. Note that this property may be trans- ferred to another item with '_related_function alternate'. ; _name '_list_reference' _category list_reference _type char _list both data_list_uniqueness _definition ; Identifies data items which, collectively, must have a unique values for the loop structure of the designated _category items to be deemed valid. This attribute is specified in the definition of a data item th _list_mandatory set to 'yes'. ; _name '_list_uniqueness' _category list_uniqueness _type char _list both data_name _definition ; The data name(s) of the defined item(s). If data items are closely related, or represent an irreducible set, their names may be declared as a looped sequence in the same definition. ; _name '_name' _category name _type char _list both loop_ _example '_atom_site_label' '_atom_attach_all _atom_attach_ring' '_index_h _index_k _index_l' '_matrix_11 _matrix_12 _matrix_21 _matrix_22' data_related_item _definition ; Identifies data item(s) which have a classified relationship to the defined data item. The nature of this relationship is specified by _related_function. ; _name '_related_item' _category related _type char _list both _list_mandatory yes data_related_function _definition ; Specifies the relationship between the defined item and the item specified by _related_item. The following classifications are recognised. 'alternate' signals that the item referred to in _related_item has attributes that permit it to be used alternately to the defined item for validation purposes. 'convention' signals that the item referred to in _related_item is equivalent to the defined item except for a predefined convention which requires a different _enumeration set. 'conversion' signals that the item referred to in _related_item is equivalent to the defined item except that different scaling or conversion factors are applied. 'replace' signals that the item referred to in _related_item may be used identically to replace the defined item. ; _name '_related_function' _category related _type char _list yes _list_reference '_related_item' loop_ _enumeration _enumeration_detail alternate 'used alternatively for validation tests' convention 'equivalent except for defined convention' conversion 'equivalent except for conversion factor' replace 'new definition replaces the current one' data_type _definition ; The type specification of the defined item. Type 'numb' identifies items which must have values that are identifiable numbers. The acceptable syntax for these numbers is application dependent, but the formats illustrated by the following identical numbers are considered to be interchangeable. 42 42.000 0.42E2 .42E+2 4.2E1 420000D-4 0.0000042D+07 Type 'char' identifies items which need not be interpretable numbers. The specification of these items must comply with the STAR syntax specification of either a 'contiguous single line string' bounded by blanks or blank-quotes, or a 'text string' bounded by semi-colons as first character of a line. Type 'null' identifies items which appear in the dictionary for data definition and descriptive purposes. These items serve no function outside of the dictionary files. ; _name '_type' _category type _type char loop_ _enumeration _enumeration_detail numb 'numberically-interpretable string' char 'character or text string' null 'for dictionary purposes only' data_type_conditions _definition ; Codes defining conditions on the _type specification. 'esd' permits a number string to contain an appended standard deviation number enclosed within parentheses. E.g. 4.37(5) 'seq' permits data to be declared as a sequence of values separated by a comma <,> or a colon <:>. * The sequence v1,v2,v3,. signals that v1, v2, v3, etc. are alternative values. * The sequence v1:v2 signals that v1 and v2 are the boundary values of a continuous range of values satisfying the requirements of _enumeration for the defined item. Combinations of alternate and range sequences are permitted. ; _name '_type_conditions' _category type_conditions _type char _list both loop_ _enumeration _enumeration_detail none 'no extra conditions apply to the defined _type' esd 'numbers *may* have esd's appended within ()' seq 'data may be declared as a permitted sequence' data_type_construct _definition ; String of characters specifying the construction of the data value for the defined data item. The construction is composed of two entities: (1) data names (2) construction characters The rules of construction conform to the the regular expression (REGEX) specificatiopns detailed in the IEEE document P1003.2 Draft 11.2 Sept 1991 (ftp file '/doc/POSIX/1003.2/p121-140'). ; _name '_type_construct' _category type_construct _type char _example (_year)-(_month)-(_day) _example_detail 'a typical construction for _date' data_units _definition ; A unique code which identifies the units of the defined data item. A description of the units is provided in _units_detail. ; _name '_units' _category units _type char loop_ _example _example_detail K 'degrees Kelvin' C 'degrees Celsius' rad 'radians of angle' e 'electrons' V 'volts' Dal 'Daltons' m 'metres' kg 'kilogrammes' s 'seconds' data_units_detail _definition ; A description of the numerical units applicable to the defined item and identified by the code _units. ; _name '_units_detail' _category units _type char #-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof