next up previous contents
Next: ITEM_ALIASES Up: DDL Definitions Describing Previous: DDL Definitions Describing

ITEM

 

The item category is used to assign membership of data items to categories. This category forms the bridge between the category and data item levels of abstraction. The key data item in this category is the full STAR data item name, _item.name. This name contains both the category and data item identifiers, and is thus a unique identifier for the data item. The category identifier, _item.category_id, is included in this category as a separate mandatory data item. This has been done to provide an explicit reference to those categories that use the category identifier as a basis.

One could alternatively use the category and item identifiers as the basis for this category rather than the full STAR name, and thus eliminate the redundant specification of the category identifier. The full STAR name has been used here in order to provide compatibility with existing applications.

The item category also includes a code to indicate if a data item is mandatory in a category and therefore must be included in any tuple in the category. This code, _item.mandatory_code, may have three values: yes, no and implicit. The latter value indicates that the item is mandatory, but that the value of this item may be derived from context. In the case of an item name or a category identifier, these values can be obtained from the current save frame name. Implicit specification dramatically simplifies the appearance of each dictionary definition because it avoids the repetitive declaration of item names and category identifiers which are basis components for most categories.

The item category is presented in the next section of DDL. In this section, the definition of _item.name illustrates an important design feature of this DDL. Although the data item _item.name is the basis for all of the item level categories, its definition and properties need only be specified at a single point. Here, the data items that occur in multiple categories are defined only in the parent category. In certain situations, a child data item may be used in a manner which requires a description distinct from the parent data item. For instance, _item_linked.parent_name and _item_linked.child_name are both data item names as well as children of _item.name, but clearly the manner in which these items are used in the item_linked category (Section gif) requires additional description. It is important to note that although the design of this DDL supports the definition of data items in multiple categories within the parent category, it is also possible to provide separate complete definitions within each category.

The DDL for the item category is given in the following section.

save_ITEM

    _category.description
;
     Attributes which describe the characteristics of a data item.       
;
    _category.id                         item
    _category.mandatory_code             no
    _category_key.name                 '_item.name'
     loop_
    _category_group.id                  'ddl_group'
                                        'item_group'
     save_


save__item.name

    _item_description.description
;
     Data name of the defined item.
;
     _item_type.code                          name 

      loop_
     _item.name                        
     _item.category_id                 
     _item.mandatory_code              
          '_item.name'                      item                      implicit
          '_category_key.name'              category_key              yes
          '_item_aliases.name'              item_aliases              implicit
          '_item_default.name'              item_default              implicit
          '_item_dependent.name'            item_dependent            implicit
          '_item_dependent.dependent_name'  item_dependent            yes
          '_item_description.name'          item_description          implicit
          '_item_enumeration.name'          item_enumeration          implicit
          '_item_examples.name'             item_examples             implicit
          '_item_linked.child_name'         item_linked               yes
          '_item_linked.parent_name'        item_linked               implicit
          '_item_methods.name'              item_methods              implicit
          '_item_range.name'                item_range                implicit
          '_item_related.name'              item_related              implicit
          '_item_related.related_name'      item_related              yes
          '_item_type.name'                 item_type                 implicit
          '_item_type_conditions.name'      item_type_conditions      implicit
          '_item_structure.name'            item_structure            implicit
          '_item_sub_category.name'         item_sub_category         implicit
          '_item_units.name'                item_units                implicit

      loop_
     _item_linked.child_name 
     _item_linked.parent_name   
          '_category_key.name'              '_item.name'
          '_item_aliases.name'              '_item.name'
          '_item_default.name'              '_item.name' 
          '_item_dependent.name'            '_item.name'
          '_item_dependent.dependent_name'  '_item.name'
          '_item_description.name'          '_item.name'
          '_item_enumeration.name'          '_item.name'
          '_item_examples.name'             '_item.name' 
          '_item_linked.child_name'         '_item.name'
          '_item_linked.parent_name'        '_item.name'
          '_item_methods.name'              '_item.name'
          '_item_range.name'                '_item.name' 
          '_item_related.name'              '_item.name'
          '_item_related.related_name'      '_item.name'
          '_item_type.name'                 '_item.name'
          '_item_type_conditions.name'      '_item.name'
          '_item_structure.name'            '_item.name'
          '_item_sub_category.name'         '_item.name'
          '_item_units.name'                '_item.name'

     save_


save__item.mandatory_code

    _item_description.description
;
     Signals if the defined item is mandatory for the proper description
     of its category.
;
    _item.name                         '_item.mandatory_code'   
    _item.category_id                    item
    _item.mandatory_code                 yes
    _item_type.code                      code 
     loop_ 
    _item_enumeration.value         
    _item_enumeration.detail
            yes      'required item in this category'
            no       'optional item in this category'
            implicit 'required item but may be determined from context'
     save_



next up previous contents
Next: ITEM_ALIASES Up: DDL Definitions Describing Previous: DDL Definitions Describing



John Westbrook
Thu Apr 11 06:25:55 EDT 1996