# # THIS IS A DRAFT VERSION OF THE mmDDL ... # # This is the version of the proposed mmDDL reflecting changes that were made # during the CIF Workshop in Brussels. # # This is being placed on the DDL mailing list for the purposes of # review and discussion only. # # ----------------------------------------------------------------------------- # # Macromolecular Structure Data Description Language # ----------------------------------------------------------- # DDL-MM 1.2.10 (post Brussels) # # ----------------------------------------------------------------------------- global_ data_ddl-mm _Dictionary.dictionaryName 'ddl-mm' _Dictionary.version '1.2.10' loop_ _DictionaryHistory.version _DictionaryHistory.updateYear _DictionaryHistory.updateMonth _DictionaryHistory.updateDay _DictionaryHistory.revisionDescription '1.1' 1994 07 25 ; DDL 1.1 from Syd Hall et. al. ; '1.2.1' 1994 09 18 ; Changes: (J. Westbrook) DDL with minimal category alterations and new attributes for the category level and subcategory level. In this variant there are no conventions placed on the attribute names. ; '1.2.2' 1994 09 22 ; Serious work on a compromise DDL begin with this version. The blame for this can be divided between Phil Bourne (PB) and John Westbrook (JW). Changes: (JW) + Enforce item naming convention. + Introduce global aliases for data item names. + Introduce the concept of virtual categories. These are combinations of base categories and virtual categories. + Replace the replaced old idea of list_reference data item with a placeholder for the key of the category. + Introduce many other new categories.. + Introduce cat_ and def_ into the DDL grammar. + Introduced but did not implement the idea of an implicit data item that obtains its value from context. This could be a useful device to reduce the complexity of a def_ or cat_ entry as the _Schema.itemName and _Schema.categoryName values can always be inferred from the name of the current section. Changes to data typing are NOT included in this version. Link relationships are incomplete at this point.. This has been proofread only very casually... ; '1.2.3' 1994 09 23 ; Changes: (JW) + Corrects to alias_ list and additions of some parent child relations. ; '1.2.4' 1994 09 27 ; Changes: (JW) + Added the correct compound key to the Siblings category. ; '1.2.5' 1994 09 28 ; Changes: (JW) + Reorganized attribute order to comply with category expression rules. These terse alias names make it easy to violate the rule that all of the members of a category should be declared in single block. + Split of any concatenated data item names into components. ; '1.2.6' 1994 09 30 ; Changes: (JW) + Added some subcategories and virtual categories in global_. ; '1.2.7' 1994 10 04 ; Changes: (JW) + Made data types extensible. Added types and type qualifiers in a new table which could be extended in a user dictionary. ; '1.2.8' 1994 10 05 ; Changes: (JW) + Removed category _Catagory.list and the Siblings category. + Added category TypeStructure and StructureTypes ; '1.2.9' 1994 10 05 ; Changes: (JW) + Removed redundant itemName and categoryName declarations that can be resolved implicitly. + Added missing connection between Dictionary and DictionaryHistory categories. ; '1.2.9' 1994 10 05 ; Changes: (JW) + Reflect the results of the Treaty of Brussels. ; # # These specifications are merely examples ... # loop_ _DataTypes.typeName _DataTypes.primitiveType _DataTypes.pattern 'char' 'char' '[A-Za-z0-9,.;:"&<>?/\{}`~!@#$%]*' 'text' 'char' '[A-Za-z0-9,.;:"&<>?/\{}`~!@#$%\n]*' 'int' 'int' '[0-9]+' 'name' 'char' '[A-Za-z]+' loop_ _Subcategory.subcategoryName _Subcategory.description 'Date' ; The collection of year, month, and day expressed as integers. For instance the following constitute a complete date '1994 09 30'. ; loop_ _VirtualCategory.virtualCategoryName _VirtualCategory.parentCategory _VirtualCategory.description 'DDLCategory' 'DDLCategory' ; Component categories of the macromolecular DDL ; 'CategoryLevel' 'DDLCategory' ; Categories that describe the characteristics of categories. ; 'ItemLevel' 'DDLCategory' ; Categories that describe the characteristics of data items. ; 'Dictionary' 'DDLCategory' ; Categories that describe the Dictionary.. ; # ----------------------------------------------------------------------- # DDL-MM category = 'Category' # save_Category _CategoryKey.keyName 'categoryName' _Category.mandatory 'no' _Category.description ; This category holds the characteristics that pertain to the entire category. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'CategoryLevel' save_Category.categoryName loop_ _Schema.itemName _Schema.categoryName _Schema.mandatory _Schema.parentCategory _Schema.parentItem 'categoryName' 'Category' 'implicit' 'Category' 'categoryName' 'categoryName' 'CategoryKey' 'implicit' 'Category' 'categoryName' 'categoryName' 'CategoryExamples' 'implicit' 'Category' 'categoryName' 'categoryName' 'Schema' 'implicit' 'Category' 'categoryName' 'categoryName' 'VirtualCategoryList' 'implicit' 'Category' 'categoryName' 'categoryName' 'Definition' 'implicit' 'Schema' 'categoryName' 'categoryName' 'Enumeration' 'implicit' 'Schema' 'categoryName' 'categoryName' 'ValueConstraints' 'implicit' 'Schema' 'categoryName' 'categoryName' 'DefaultValue' 'implicit' 'Schema' 'categoryName' 'categoryName' 'Examples' 'implicit' 'Schema' 'categoryName' 'categoryName' 'Method' 'implicit' 'Schema' 'categoryName' 'categoryName' 'Related' 'implicit' 'Schema' 'categoryName' 'categoryName' 'DataType' 'implicit' 'Schema' 'categoryName' 'categoryName' 'TypeStructure' 'implicit' 'Schema' 'categoryName' 'categoryName' 'TypeConditions' 'implicit' 'Schema' 'categoryName' 'categoryName' 'Units' 'implicit' 'Schema' 'categoryName' _DataType.typeName 'char' _Definition.definition ; A name which identifies the natural grouping of data items. If the data item belongs in a looped list then it may only be grouped with items from the same category. ; save_Category.description _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; Text description of a category ... ; save_Category.mandatory _Schema.mandatory 'yes' _DataType.typeName 'char' loop_ _Enumeration.enumeration _Enumeration.detail 'yes' 'This category must appear' 'no' 'This category is optional' _Definition.definition ; Specifies if the category must be specified ... ; save_Category.methodName # #-------------------------------------------------------------------------- # DDL-MM category = 'CategoryKey' # save_CategoryKey loop_ _CategoryKey.keyName 'categoryName' 'keyName' _Category.mandatory 'no' _Category.description ; This category holds a list of the data items names that uniquely identify the elements of the category. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'CategoryLevel' save_CategoryKey.categoryName save_CategoryKey.keyName _Schema.itemName 'keyName' _Schema.categoryName 'CategoryKey' _Schema.mandatory 'yes' _Schema.parentCategory 'Schema' _Schema.parentItem 'itemName' _DataType.typeName 'name' _Schema.mandatory 'yes' _Definition.definition ; The name of a data item within the category that serves as one of the 'key' identifiers for the category. (eg. a component of the primary key) ; # #-------------------------------------------------------------------------- # DDL-MM category = 'CategoryExamples' # save_CategoryExamples loop_ _CategoryKey.keyName 'categoryName' 'example' _Category.mandatory 'no' _Category.description ; This category holds a list of examples and associated descriptions for the category. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'CategoryLevel' save_CategoryExamples.categoryName save_CategoryExamples.example _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; An example pertaining to the entire category. ; save_CategoryExamples.detail _Schema.mandatory 'no' _DataType.typeName 'text' _Definition.definition ; A description of an example of the category... ; # # ----------------------------------------------------------------------- # # The following two categories provide for the declaration of the # characteristics that pertain to a subcategory ... # # DDL-MM category = 'Subcategory' # save_Subcategory _CategoryKey.keyName 'subcategoryName' _Category.mandatory 'no' _Category.description ; This category holds the characteristics pertaining to subcategories ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'SubcategoryLevel' save_Subcategory.subcategoryName loop_ _Schema.itemName _Schema.categoryName _Schema.mandatory _Schema.parentCategory _Schema.parentItem 'SubcategoryName' 'Subcategory' 'yes' 'Subcategory' 'subcategoryName' 'SubcategoryName' 'SubcategoryExamples' 'yes' 'Subcategory' 'subcategoryName' 'SubcategoryName' 'Schema' 'no' 'Subcategory' 'subcategoryName' _DataType.typeName 'name' _Definition.definition ; The name of the subcategory.. ; save_Subcategory.description _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; Text description of the subcategory ... ; save_Subcategory.methodName #-------------------------------------------------------------------------- # DDL-MM category = 'SubcategoryExamples' # save_SubcategoryExamples loop_ _CategoryKey.keyName 'subcategoryName' 'example' _Category.mandatory 'no' _Category.description ; This category provides examples and associated descriptions of subcategories... ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'SubcategoryLevel' save_SubcategoryExamples.subcategoryName save_SubcategoryExamples.example _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; A complete example pertaining to a subcategory .. ; save_SubcategoryExamples.detail _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; A description of an example value for the subcategory. ; # # ----------------------------------------------------------------------- # DDL-MM category = 'VirtualCategory' # save_VirtualCategory _CategoryKey.keyName 'virtualCategoryName' _Category.mandatory 'no' _Category.description ; This category provides a description of each virtual category. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'CategoryLevel' save_VirtualCategory.virtualCategoryName loop_ _Schema.itemName _Schema.categoryName _Schema.mandatory _Schema.parentCategory _Schema.parentItem 'virtualCategoryName' 'VirtualCategory' 'yes' 'VirtualCategory' 'virtualCategoryName' 'virtualCategoryName' 'VirtualCategoryList' 'yes' 'VirtualCategory' 'virtualCategoryName' _DataType.typeName 'name' _Definition.definition ; The name of a virtual category ... ; save_VirtualCategory.description _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; Text description of a virtual category ... ; save_VirtualCategory.parentCategory _Schema.mandatory 'no' _Schema.parentCategory 'VirtualCategory' _Schema.parentItem 'virtualCategoryName' _DataType.typeName 'name' _Definition.definition ; The name of the parent virtual category. ; # #-------------------------------------------------------------------------- # DDL-MM category = 'VirtualCategoryList' # save_VirtualCategoryList _CategoryKey.keyName 'categoryName' _Category.mandatory 'no' _Category.description ; Provides a list of virtual categories to which the base category belongs ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'CategoryLevel' save_VirtualCategoryList.categoryName save_VirtualCategoryList.virtualCategoryName # # ----------------------------------------------------------------------------- # DDL-MM category = 'Schema' # # Category has been expanded to include all attributes that pertain # specifying a data item's role in the schema... # save_Schema loop_ _CategoryKey.keyName 'itemName' 'categoryName' _Category.mandatory 'yes' _Category.description ; This category specifies the data item memberships within categories ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_Schema.itemName loop_ _Schema.itemName _Schema.categoryName _Schema.mandatory _Schema.parentCategory _Schema.parentItem 'itemName' 'Schema' 'implicit' 'Schema' 'itemName' 'itemName' 'Definition' 'implicit' 'Schema' 'itemName' 'itemName' 'Enumeration' 'implicit' 'Schema' 'itemName' 'itemName' 'DefaultValue' 'implicit' 'Schema' 'itemName' 'itemName' 'Examples' 'implicit' 'Schema' 'itemName' 'itemName' 'ValueConstraints' 'implicit' 'Schema' 'itemName' 'itemName' 'Related' 'implicit' 'Schema' 'itemName' 'itemName' 'DataType' 'implicit' 'Schema' 'itemName' 'itemName' 'TypeConditions' 'implicit' 'Schema' 'itemName' 'itemName' 'TypeStructure' 'implicit' 'Schema' 'itemName' 'itemName' 'Units' 'implicit' 'Schema' 'itemName' _DataType.typeName 'name' _Definition.definition ; The name of the defined item within the it's category. Must be unique within the category... ; save_Schema.categoryName save_Schema.subcategoryName save_Schema.parentCategory _Schema.mandatory 'no' _Schema.parentCategory 'Schema' _Schema.parentItem 'categoryName' _DataType.typeName 'name' _Definition.definition ; Identifies the category in which the parent of this data item resides. ; save_Schema.parentItem _Schema.mandatory 'no' _Schema.parentCategory 'Schema' _Schema.parentItem 'itemName' _DataType.typeName 'name' _Definition.definition ; Identifies the item name of the parent of this data item. ; save_Schema.mandatory _Schema.mandatory 'no' _DataType.typeName 'char' loop_ _Enumeration.enumeration _Enumeration.detail 'yes' 'required item in this category of looped list' 'no' 'optional item in this category of looped list' 'implicit' ; The value for this item is required but it can be determined from the current context. ; _DefaultValue.default 'no' _Definition.definition ; Signals if the defined item is mandatory for the proper description of its category. ; # ----------------------------------------------------------------------------- # DDL-MM category = 'Definition' # save_Definition loop_ _CategoryKey.keyName 'itemName' 'categoryName' _Category.mandatory 'no' _Category.description ; This category holds the definition for a data item. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_Definition.itemName save_Definition.categoryName save_Definition.definition _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; The text description of the defined item. ; # ----------------------------------------------------------------------------- # DDL-MM category = 'Enumeration' # save_Enumeration loop_ _CategoryKey.keyName 'itemName' 'categoryName' 'enumeration' _Category.mandatory 'no' _Category.description ; This category the permissible values for a data item and optional associated descriptions. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_Enumeration.itemName save_Enumeration.categoryName save_Enumeration.enumeration _Schema.mandatory 'yes' _DataType.typeName 'void' _Definition.definition ; A permissible value, character or number, for the defined item. ; save_Enumeration.detail _Schema.mandatory 'no' _DataType.typeName 'text' _Definition.definition ; A description of a permissible value for the defined item. ; # # --------------------------------------------------------------------------- # DDL category = 'ValueConstraints' # save_ValueConstraints loop_ _CategoryKey.keyName 'categoryName' 'itemName' _Category.mandatory 'no' _Category.description ; Specifies value constraints placed on the a data item. In the case where multiple constraints are specified they are interpreted sequentially using a logical OR. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_ValueConstraints.itemName save_ValueConstraints.categoryName save_ValueConstraints.minimumValue _Schema.mandatory 'no' _DataType.typeName 'void' _Definition.definition ; Minimum permissible value of a data item or the lower bound of a permissible range. ( minimumValue < data) ; save_ValueConstraints.maximumValue _Schema.mandatory 'no' _DataType.typeName 'void' _Definition.definition ; Maximum permissible value of a data item or the upper bound of a permissible range. ( maximumValue >= data) ; # #-------------------------------------------------------------------------- # DDL-MM category = 'DefaultValue' # save_DefaultValue loop_ _CategoryKey.keyName 'itemName' 'categoryName' _Category.mandatory 'no' _Category.description ; This category holds default values ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_DefaultValue.itemName save_DefaultValue.categoryName save_DefaultValue.default _Schema.mandatory 'yes' _DataType.typeName 'void' _Definition.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. ; # #-------------------------------------------------------------------------- # DDL-MM category = 'Examples' # save_Examples loop_ _CategoryKey.keyName 'itemName' 'categoryName' _Category.mandatory 'no' _Category.description ; This category holds examples and associated descriptions that pertain to data items. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_Examples.itemName save_Examples.categoryName save_Examples.example _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; A complete example for the defined data item. ; save_Examples.detail _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; A description of an example value for the defined item. ; # ---------------------------------------------------------------------------- # DDL-MM category = 'Method' # save_Method loop_ _CategoryKey.keyName 'itemName' 'categoryName' 'methodName' _Category.mandatory 'no' _Category.description ; This category holds the association between data items and methods. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_Method.itemName save_Method.categoryName save_Method.methodName # ---------------------------------------------------------------------------- # DDL-MM category = 'MethodList' # save_MethodList _CategoryKey.keyName 'methodName' _Category.mandatory 'no' _Category.description ; This category holds source text for validation and computational methods. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_MethodList.methodName loop_ _Schema.itemName _Schema.categoryName _Schema.mandatory _Schema.parentCategory _Schema.parentItem 'methodName' 'MethodList' 'yes' 'MethodList' 'methodName' 'methodName' 'Method' 'yes' 'MethodList' 'methodName' 'methodName' 'Category' 'no' 'MethodList' 'methodName' 'methodName' 'Subcategory' 'no' 'MethodList' 'methodName' _DataType.typeName 'char' _Definition.definition ; Method name associated with the data item. ; save_MethodList.method _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; Inline text of a method associated with the data item. ; save_MethodList.methodType _Schema.mandatory 'yes' _DataType.typeName 'char' loop_ _Enumeration.enumeration _Enumeration.detail 'calculation' 'method to calculate the item' 'verification' 'method to verify the data item' 'cast' 'method to provide cast conversion' 'addition' 'method to define item + item' 'division' 'method to define item / item' 'multiplication' 'method to define item * item' 'equivalence' 'method to define item = item' 'other' 'miscellaneous method' _DefaultValue.default 'no' _Definition.definition ; Purpose of the indicate method. ; save_MethodList.methodLanguage _Schema.mandatory 'yes' _DataType.typeName 'char' loop_ _Enumeration.enumeration 'BNF' 'C' 'C++' 'FORTRAN' 'LISP' 'PASCAL' 'PEARL' 'TCL' 'OTHER" _Definition.definition ; Language in which the method is expressed. ; # # ---------------------------------------------------------------------------- # DDL-MM category = 'Related' # save_Related loop_ _CategoryKey.keyName 'itemName' 'categoryName' 'relatedItemName' 'relatedItemCategory' _Category.mandatory 'no' _Category.description ; This table identifies various common relationships that may exist between data items. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_Related.itemName save_Related.categoryName save_Related.relatedItem _Schema.itemName 'relatedItem' _Schema.categoryName 'Related' _Schema.mandatory 'yes' _Schema.parentCategory 'Schema' _Schema.parentItem 'itemName' _DataType.typeName 'name' _Definition.definition ; Identifies a data item by name which is closely related to the defined data item by the manner described by relatedFunction. ; save_Related.relatedItemCategory _Schema.itemName 'relatedItemCategory' _Schema.categoryName 'Related' _Schema.mandatory 'yes' _Schema.parentCategory 'Schema' _Schema.parentItem 'categoryName' _DataType.typeName 'name' _Definition.definition ; Identifies a data item by name which is closely related to the defined data item by the manner described by relatedFunction. ; save_Related.relatedFunction _Schema.mandatory 'yes' _DataType.typeName 'char' loop_ _Enumeration.enumeration _Enumeration.detail 'alternate' 'alternate data item for referencing lists' 'convention' 'depends on defined convention' 'constant' 'related by a numerical conversion factor' 'replace' 'new definition replaces the current one' _Definition.definition ; Code for the type of relationship of the item identified by relatedItem and the defined item. 'alternate' signals that the item referred to in relatedItem is an alternate item in terms of its application and attributes to the item in this definition. 'convention' signals that the item referred to in relatedItem is an equivalent item in terms of its application and attributes to the item in this definition except for a predefined convention. 'constant' signals that the item referred to in relatedItem is an equivalent item in terms of its application and attributes to the item in this definition except for a numerical constant. 'replace' signals that the item referred to in relatedItem may replace the item in this definition. ; # # ------------------------------------------------------------------------- # DDL-MM category = 'DataType' # save_DataType loop_ _CategoryKey.keyName 'itemName' 'categoryName' _Category.mandatory 'yes' _Category.description ; This category holds data type information a data item. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_DataType.itemName save_DataType.categoryName save_DataType.typeName # # ------------------------------------------------------------------------- # DDL-MM category = 'DataTypes' # save_DataTypes loop_ _CategoryKey.keyName 'typeName' _Category.mandatory 'yes' _Category.description ; This category holds a description of each data type name. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_DataTypes.typeName loop_ _Schema.itemName _Schema.categoryName _Schema.mandatory _Schema.parentCategory _Schema.parentItem 'typeName' 'DataTypes' 'yes' 'DataTypes' 'typeName' 'typeName' 'DataType' 'yes' 'DataTypes' 'typeName' _DataType.typeName 'char' _Definition.definition ; The name of the data type that is associated with a data item. ; save_DataTypes.primitiveType _Schema.mandatory 'yes' _DataType.type 'char' loop_ _Enumeration.enumeration _Enumeration.detail 'float' 'floating point number' 'integer' 'integer number' 'char' 'character string' 'void' 'undefined type' _Definition.definition ; The primitive data type of this data type. ; save_DataTypes.pattern _Schema.mandatory 'yes' _DataType.type 'char' _Definition.definition ; The data pattern is a character string that can be interpreted as a regular expression (POSIX 1003.2). The regular expression defines the pattern in terms of the ASCII character set which must be matched by any valid data item of this type. ; # # ----------------------------------------------------------------------- # DDL category = 'TypeStructure' # # save_TypeStucture loop_ _CategoryKey.keyName 'itemName' 'categoryName' 'structureName' _Category.mandatory 'no' _Category.description ; This category holds the association between data items and named vector/matrix declarations. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_TypeStructure.itemName save_TypeStructure.categoryName save_TypeStructure.structureName save_TypeStructure.structureOrganization _Schema.mandatory 'yes' _DataType.type 'char' loop_ _Enumeration.enumeration _Enumeration.detail 'columnwise' 'column major order' 'rowwise' 'row major order' _Definition.definition ; Identifies if the structure is defined in column or row major order. ; # # ------------------------------------------------------------------------- # DDL-MM category = 'StructureTypes' # save_StructureTypes loop_ _CategoryKey.keyName 'structureName' _Category.mandatory 'no' _Category.description ; This category holds a description of each structure type name. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_StructureTypes.structureName loop_ _Schema.itemName _Schema.categoryName _Schema.mandatory _Schema.parentCategory _Schema.parentItem 'structureName' 'StructureTypes' 'yes' 'StructureTypes' 'structureName' 'structureName' 'TypeStructure' 'yes' 'StructureTypes' 'structureName' _DataType.typeName 'char' _Definition.definition ; The name of the matrix/vector structure declaration. ; save_StructureTypes.dimensionNumber _Schema.mandatory 'yes' _DataType.typeName 'int' _Definition.Definition ; Identifies the zero based index of a row/column of the structure. ; save_StructureTypes.dimensionValue _Schema.mandatory 'yes' _DataType.typeName 'int' _Definition.Definition ; Identifies the length of this row/column of the structure structure. ; # # ----------------------------------------------------------------------- # DDL category = 'TypeConditions' # # This is retained for CIF compliance... # save_TypeConditions loop_ _CategoryKey.keyName 'itemName' 'categoryName' 'typeConditions' _Category.mandatory 'no' _Category.description ; This category holds additional conditions associated with the data item. It is included only to support the esd extension used in CIF. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' 'Compliance' save_TypeConditions.itemName save_TypeConditions.categoryName save_TypeConditions.typeConditions _Schema.mandatory 'yes' _DataType.typeName 'char' loop_ _Enumeration.enumeration _Enumeration.detail 'none' 'no type conditions' 'esd' 'numbers may have esd's appended within ()' _Definition.definition ; Codes defining conditions on the _DataType.typeName specification. 'esd' permits a number string to contain an appended standard deviation number enclosed within parentheses. ; # # -------------------------------------------------------------------- # DDL-MM category = 'Units' # save_Units loop_ _CategoryKey.keyName 'itemName' 'categoryName' 'unitsExtension' _Category.mandatory 'no' _Category.description ; Conversion factors in other common systems of units ... ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'ItemLevel' save_Units.itemName save_Units.categoryName save_Units.unitsExtension _DataType.typeName 'char' _Schema.mandatory 'yes' _Definition.definition ; The data name extension code identifying the numerical units information given by _units_description and the conversion factor given by _units conversion. ; save_Units.unitsDescription _Schema.mandatory 'yes' _DataType.typeName 'char' _Definition.definition ; A description of the numerical units applicable to the defined item with the data name extension given by _units_extension. ; save_Units.unitsConversion _Schema.mandatory 'yes' _DataType.typeName 'char' _Definition.definition ; The arithmetic process for converting the defined item with an extension given by _units_extension. The format of the code is <operator><number>. Permissible operator codes are: * multiply / divide + add - subtract To convert a declared value into the default units: [value in default units] = [entered value]<operator><number> ; # # ----------------------------------------------------------------------------- # DDL-MM category = 'DictionaryHistory' # # save_DictionaryHistory _CategoryKey.keyName 'version' _Category.mandatory 'no' _Category.description ; This category holds the revision history records. The key for this category is data item 'version'. ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'Dictionary' save_DictionaryHistory.version loop_ _Schema.itemName _Schema.categoryName _Schema.mandatory _Schema.parentCategory _Schema.parentItem 'version' 'DictionaryHistory' 'yes' 'DictionaryHistory' 'version' 'version' 'Dictionary' 'yes' 'DictionaryHistory' 'version' _DataType.typeName 'char' _Definition.definition ; A unique version identifier for the dictionary revision. ; save_DictionaryHistory.updateDay _Schema.subcategoryName 'Date' _Schema.mandatory 'yes' _DataType.typeName 'int' _Definition.definition ; The day of which the update took place. ; save_DictionaryHistory.updateMonth _Schema.subcategoryName 'Date' _Schema.mandatory 'yes' _DataType.typeName 'int' _Definition.definition ; The month of which the update took place. ; save_DictionaryHistory.updateYear _Schema.subcategoryName 'Date' _Schema.mandatory 'yes' _DataType.typeName 'int' _Definition.definition ; The year in which the update took place. ; save_DictionaryHistory.revisionDescription _Schema.mandatory 'yes' _DataType.typeName 'text' _Definition.definition ; The text description of the revision ... ; # # ----------------------------------------------------------------------------- # DDL-MM category = 'Dictionary' # # More attributes for 'Dictionary' later... # save_Dictionary loop_ _CategoryKey.keyName 'name' 'version' _Category.mandatory 'yes' _Category.description ; This category holds characteristics that pertain to the entire dictionary. The key for this category is 'name' ; loop_ _VirtualCategoryList.virtualCategoryName 'DDLCategory' 'Dictionary' save_Dictionary.dictionaryName _Schema.mandatory 'yes' _DataType.typeName 'name' _Definition.definition ; The name code which identifies the dictionary application. ; save_Dictionary.version #-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof-eof **************************************************************************** * John Westbrook Ph: (908) 445-5156 * * Department of Chemistry Fax: (908) 445-5958 * * Rutgers University * * PO Box 939 e-mail: jwest@rutchem.rutgers.edu * * Piscataway, NJ 08855-0939 * ****************************************************************************