Draft Version of Macromolecular DDL (V 1.2.10)
John Westbrook (jwest@wormhole)
Sun, 16 Oct 94 16:48:25 -0400
#
# 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 *
****************************************************************************