Battelle Logo

Using Dictionaries to Manage Data Within a Modeling Framework System


Title Page
Legal Notice
Summary
Table of Contents
Acknowledgments
Abbreviations and Acronyms
Glossary
Introduction
Background
Understanding Dictionaries
Creating Dictionaries
References
Further Reading
Appendix

Understanding Dictionaries

DICs start with a dataset.  Every component within a modeling system requires data to operate, whether it's the amount of annual rainfall in the Congo or the value of a stock portfolio.  Most models provide output in the form of numbers, but a number by itself can be meaningless if not placed within some context.  For example, the number 10 with no context tells the user nothing.  It could be the number of iterations for that model in a stochastic scenario or the number of years an organism is expected to live.  Simply adding a unit doesn't provide much more specificity.  Is it 10 seconds to impact or 10 seconds to run a model"

DIC files provide another layer of information about datasets.  DICs consist of the description and context of values that occur together in the real world.  DIC files also describe attributes of the actual data in the dataset.  Such attributes might include whether the particular variable is dependent upon another variable or if the dependent variable has one or more values.  This information is critical so that the system can convert units, transfer information, and provide meaningful results to the user.

For example, in an environmental assessment, the description of chemical concentration (the amount of a chemical), the location of the chemical (space), and the particular time provide the most meaning when used in concert.  In other words, knowing that trichloroethylene has entered the environment is far more meaningful if the analyst knows how much, where, and when.  Furthermore, while a model may only concern itself with concentration, the time and space associated with that concentration cannot be considered separate values.  This connection can be seen as analogous to a complex number (a + bi).  The real part (a) is meaningless without the imaginary part (b).  They together have meaning and use.  A DIC ensures that this type of connected information stays together as it is transferred through the system.

The following subsections describe the components of a DIC file and the general types of DIC files available in FRAMES.

Components of a Dictionary File

A DIC file is a comma-delimited text file (see Figure 5 for example).  This highly organized, structured design was chosen because it can be easily translated into a variety of other formats such as databases, html, xml, etc.  The design is also compact and efficient for modeling purposes.

DICs are expressed as html tables in this document for ease of viewing.  While DICs can be hand-coded, it is easiest for most users of FRAMES to build DIC files using the software tools provided with the system.  Table 1 provides an example DIC, in this case, a Chemical Water Concentration DIC, which describes the parameters associated with chemicals in water.  Note that this is the same DIC file shown in Figure 5.

Example of a Dictionary File as a Comma-Delimited Text File
(Chemical Water Concentration Dictionary)

  • Variable Count, Description, Name, Privilege, Version, Updated, Template
  • 3, Dissolved chemical concentrations, ChemWaterConc, 1, 1, 0
  • Dictionary Name, Dictionary Description, Dimension, DataType, PrimaryKey, Scalar, Minimum, Maximum, Measure, Unit, Stochastic, Preposition, Index 1, Index 2, Index 3, , , , ,
  • RunInfo, The set of strings that describe this dataset, 1, STRING, FALSE, FALSE, 0, 0, , , FALSE, , , , , , , , ,
  • TimePts, Concentration time point, 3, FLOAT, FALSE, FALSE, 0, 100000000, Time, yr, FALSE, , WaterConcLocation.Feature, ChemList.CASID, , , , , ,
  • WaterConc, The dissolve-phase concentration associated with water, 3, FLOAT, FALSE, TRUE, 0, 1.00E+30, Mass/Volume, mg/L, TRUE, , WaterConcLocation.Feature, ChemList.CASID, ChemWaterConc.TimePts, , , , ,
Table 1.  Example of a Dictionary File as html (Chemical Water Concentration Dictionary)

Name Description Unit Measure Type Range S D U K Prep Indices
RunInfo The set of strings that describe this dataset     STRING 0-80 N 0 N N    
TimePts Concentration time point yr Time FLOAT 0-100000000 N 0 N N  
WaterConcLocation.Feature
ChemList.CASID
WaterConc The dissolve-phase concentration associated with water mg/L Mass/Volume FLOAT 0-1E+30 Y 1 Y N  
WaterConcLocation.Feature
ChemList.CASID
TimePts
Legend
Column
Name
Meaning
S Scalar
D Dimensional size
U Can uncertainty apply (is it stochastic)
K Is the variable a key to others

Note how various associated parameters are shown in the indices column in the above example.  An indexed parameter that occurs in another DIC is shown as a hyperlink, with the first part of the link (for example, WaterConcLocation) indicating the name of the DIC, and the second part of the link (after the period, in this case, Feature) indicating the parameter name.  An indexed parameter that occurs within the same DIC is not hyperlinked (for example, the indexed parameter TimePts in the last row of the DIC is a parameter listed in the third row of the DIC).

Note also that the example DIC includes a legend describing certain columns.  The information in these columns tells FRAMES how to handle the various types of data described in the DICs.  The scalar column (S) tells FRAMES whether one value (Y) or more than one value (N) is associated with a variable for a particular set of indices.  The dimensional size column (D) tells FRAMES the number of index values it takes to recall the parameter's value from the data.  The uncertainty column (U) tells FRAMES whether the parameter can be varied with a stochastic distribution (Yes or No).  The key column (K) tells FRAMES whether the parameter has been designated by the user through one of the system data management tools (Yes or No) as a key parameter.  A key parameter is one that is critical to the analysis, generally the issue around which the assessment strategy is built.  For example, in an ecological assessment, a criticalorganism might be the most important parameter in the analysis and all analysis variables would be based onorganism (in other words, have an index on organism).

As Table 1 above also shows, some DICs cross-reference others (as illustrated by the "See Also:" notation under the table's legend).  Cross-referencing indicates DICs with parameters that are heavily associated on each other, for example, a list of chemicals (ChemList) and chemical concentrations in water (ChemWaterConc, the dictionary shown in Table 1).

As seen in the example figure and table, the DIC files describe a variety of data types.  Table 2 provides definitions of various data fields associated with DIC files.

Table 2.  Definition of Data Fields Associated with a Dictionary

Field Name Data Type / [Value] Definition
Parameter PString The name of this parameter
Description String A short description of the parameter
Dimension [1 | 2 | 3 | 4 | 5 | 6] The number of dimensions on which this parameteris dependent
Data Type [ "String"  |
  "Integer"  
  "Float"  |
  "Logical" ]
The data type of this parameter
Primary Key Logical Flag indicating whether this variable"s values are user selectable from within the Data Client Editor (one of FRAMES software tools)
Scalar Logical Flag indicating whether this variable"s indices indicate multiple values or a single value
Minimum Integer If "Data Type" equals "String," the minimum inclusive length of the string
  Integer If "Data Type" equals "Integer," the lowest inclusive integer value
  Float If "Data Type" equals "Float" the lowest inclusive float value
  String If "Data Type" equals "Logical," the string to represent false
Maximum Integer If "Data Type" equals "String," the maximum inclusive length of the string
  Integer If "Data Type" equals "Integer," the highest inclusive integer value
  Float If "Data Type" equals "Float," the highest inclusive float value
  String If "Data Type" equals "Logical," the string to represent true
Measure String Description of unit"s measure (e.g., temperature, unit = oF)
Units String[32] The unit of measure for this parameter
Stochastic [T | F] Flag specifying if this parameter can be varied in a stochastic analysis
Preposition [at | for | from | ...] Used to precede this parameter"s values when generating a description
Index 1 String A parameter name that describes the corresponding index
Index 2 String A parameter name that describes the corresponding index
Index 3 String A parameter name that describes the corresponding index
Index 4 String A parameter name that describes the corresponding index
Index 5 String A parameter name that describes the corresponding index
Index 6 String A parameter name that describes the corresponding index
Index 7 String A parameter name that describes the corresponding index
Index 8 String A parameter name that describes the corresponding index
Index 9 String A parameter name that describes the corresponding index

Functions of Dictionaries

FRAMES' DICs serve three main functions: to describe the system or its components (system DICs), to provide data specific to a particular module (module-specific DICs), and to provide information to multiple modules or transfer information between components (boundary condition DICs).  Note that when FRAMES itself is used as part of a larger system, system DICs would be analogous to module-specific DICs.  For this reason, DICs provided in the appendix to this document are noted as being either module or boundary condition.  This notation is located above the html table as a privilege (the function the DIC plays in FRAMES).  The following subsections provide additional detail on the various functions of DICs.

System Dictionaries

System DICs describe the system or its components.  Such DICs are maintained by the system.

One critical system DIC is the start-up DIC.  This DIC describes the information necessary to set up the FRAMES user interface, including

  • System path and run name
  • Formatting information such as font, color, size, etc.
  • Screen and line colors for both background and foreground
  • Interface flags indicating items such as visible logo name, visible identification, etc.
  • Window size and location on the computer screen
  • Domain information (the type of problem being modeled).

The dataset for the start-up DIC is initially populated with default settings, as installed with FRAMES.  However, the user can modify many settings through the customize option in the user interface.  Table 3 shows an example start-up DIC.

Table 3.  Example System Dictionary: a Start-Up Dictionary

Name Description Unit Measure Type Range S D U K Prep Indices
AppPath Path to frames application     STRING 0-512 Y 1 N N    
ClassIcons Class icon path\filename     STRING 0-512 Y 1 N N  
DomainNames
ClassNames
ClassNames Class names     STRING 0-32 N 0 N N    
DataBackColor Background color of database connection     INTEGER   Y 1 N N    
DataForeColor Foreground color of database connection     INTEGER   Y 1 N N    
DataVisible Database connection visible flag     LOGICAL   Y 1 N N    
Dictionaries Path\filename of included dictionaries     STRING 0-512 N 0 N N    
DictionaryDir Destination directory for dictionary download     STRING 0-80 Y 1 N N    
DomainIcons Domain icon path\filename     STRING 0-512 Y 1 N N    
DomainNames Domain names     STRING 0-32 N 0 N N    
FontBold Font bold     LOGICAL   Y 1 N N    
FontColor Font color     INTEGER   Y 1 N N    
FontItalic Font italic     LOGICAL   Y 1 N N    
FontName Font name     STRING 0-512 Y 1 N N    
FontSize Font size     FLOAT 8-24 Y 1 N N    
GroupIcons Group icon path\filename     STRING 0-512 Y 1 N N  
DomainNames
ClassNames
GroupNames
GroupModules Group module names     STRING 0-32 N 0 N N  
DomainNames
ClassNames
GroupNames
GroupNames Group names     STRING 0-32 N 0 N N  
DomainNames
ClassNames
LinkageServerURL location of linkage server     STRING   Y 1 N N    
LogoFile Path\filename of logo image     STRING 0-512 Y 1 N N    
LogoVisible Logo image visible flag     LOGICAL   Y 1 N N    
ModBackColor Background color of model connection     INTEGER   Y 1 N N    
ModForeColor Foreground color of model connection     INTEGER   Y 1 N N    
ModIdVisible Module Id visible flag     LOGICAL   Y 1 N N    
ModuleDir Destination directory for module description downloads     STRING 0-80 Y 1 N N    
Modules Path\filename of included modules     STRING 0-512 N 0 N N    
ModVisible Model connection visible flag     LOGICAL   Y 1 N N    
NoticeVisible Notice visible flag     LOGICAL   Y 1 N N    
RecentFiles Recent simulation files     STRING 0-512 N 0 N N    
SubGrpIcons Sub-group icon path\filename     STRING 0-512 Y 1 N N  
DomainNames
ClassNames
GroupNames
SubGrpNames
SubGrpModules Sub-group module names     STRING 0-512 N 0 N N  
DomainNames
ClassNames
GroupNames
SubGrpNames
SubGrpNames Sub-group names     STRING 0-32 N 0 N N  
DomainNames
ClassNames
GroupNames
SysBackColor Background color of system connection     INTEGER   Y 1 N N    
SysForeColor Foreground color of system connection     INTEGER   Y 1 N N    
SystemUpdate Internal flag tracking if a module has been updated     LOGICAL 0-1 Y 1 N N    
SystemVersion       FLOAT 0-200000 Y 1 N N    
SysVisible System connection visible flag     LOGICAL   Y 1 N N    
WindowHeight Height of the window     INTEGER   Y 1 N N    
WindowPosX X Screen position of window     INTEGER   Y 1 N N    
WindowPosY Y Screen position of window     INTEGER   Y 1 N N    
WindowWidth Width of the window     INTEGER   Y 1 N N    
WorkBackColor Background color of workspace     INTEGER   Y 1 N N    
WorkForeColor Foreground color of workspace     INTEGER   Y 1 N N    
Legend
Column
Name
Meaning
S Scalar
D Dimensional size
U Can uncertainty apply (is it stochastic)
K Is the variable a key to others

Another type of system DIC is the simulation DIC, which contains the necessary information to reproduce a particular conceptual model (the picture of the real-world problem being modeled).  This information includes model names and identification, dataset names and locations, model and database status, linkages, model locking information, and simulation comments (see Table 4 for an example).

Table 4.  Example of a System Dictionary: a Simulation Dictionary

Name Description Unit Measure Type Range S D U K Prep Indices
ConDicName Consumer dictionary name     STRING   N 0 N N  
ModID
ConModID
ConModID Module's consumer module ID list     STRING   N 0 N N    
ConSetName Consumer data set name     STRING   Y 1 N N  
ModID
ConModID
ConDicName
LayoutProperties Layout properties for sizing panels     INTEGER   N 0 N N    
LockConnections Lock connections     LOGICAL   Y 1 N N    
LockModules Lock modules     LOGICAL   Y 1 N N    
LockPassword Lock password     STRING   Y 1 N N    
ModClass Module class name     STRING   Y 1 N N    
ModDomain Module domain name     STRING   Y 1 N N    
ModGlobal Module is global or local     LOGICAL   Y 1 N N    
ModGroup Module group name     STRING   Y 1 N N    
ModIcon Module icon     STRING   Y 1 N N    
ModID Module ID     STRING   N 0 N N    
ModLabel Module user label     STRING   Y 1 N N    
ModName Module name     STRING   Y 1 N N    
ModNote Module user note     STRING   Y 1 N N    
ModPosX X screen coordinate for module     INTEGER   Y 1 N N    
ModPosY Y screen coordinate for module     INTEGER   Y 1 N N    
ModScheme Module scheme     STRING   Y 1 N N    
ModScope Module scope     INTEGER 0-1 Y 1 N N    
ModState Module state     INTEGER 0-3 Y 1 N N    
ModSubGroup Module subgroup name     STRING   Y 1 N N    
ProDicName Producer dictionary name     STRING   N 0 N N  
ModID
ProModID
ProModID Module's producer module ID list     STRING   N 0 N N    
ProSetName Producer data set name     STRING   Y 1 N N  
ModID
ProModID
ProDicName
SDENote Simulation comment     STRING   Y 1 N N    
Legend
Column
Name
Meaning
S Scalar
D Dimensional size
U Can uncertainty apply (is it stochastic)
K Is the variable a key to others

Another type of system DIC is the conversion DIC, which allows units to be converted between modules in FRAMES.  Table 5 provides an example of a conversion DIC.

Table 5.  Example of a System Dictionary: a Conversion Dictionary

Name Description Unit Measure Type Range S D U K Prep Indices
BaseAbbr Measure base unit abbreviation     STRING 0-80 Y 1 N N for  
BaseName Measure base unit name     STRING 0-80 Y 1 N N for  
Measure Measure     STRING 0-80 N 0 N N of  
UnitAbbr Unit abbreviation     STRING 0-80 N 0 N N for  
UnitIntercept Unit Intercept     FLOAT -1.7E+307-1.7E+307 Y 1 N N for
Measure
UnitAbbr
UnitName Unit name     STRING 0-80 Y 1 N N for
Measure
UnitAbbr
UnitSlope Unit slope     FLOAT -1.7E+307-1.7E+307 Y 1 N N for
Measure
UnitAbbr
Legend
Column
Name
Meaning
S Scalar
D Dimensional size
U Can uncertainty apply (is it stochastic)
K Is the variable a key to others

Another type of system DIC is the module properties DIC, which describes data on the component and its supporting infrastructure.  Such data might include the point of contact for additional information, module-specific and boundary condition DICs consumed and produced, and how the module fits into a modeling scheme.  This DIC is maintained by the system, but the corresponding dataset is populated by the developer when initially incorporating a component into FRAMES (see Table 6 for an example).

Table 6.  Example of a System Dictionary: a Module Properties Dictionary

Name Description Unit Measure Type Range S D U K Prep Indices
Class Module class type     STRING   Y 1 N N    
ConSchemeDic Consumed dictionary names     STRING   N 0 N N    
DatabaseID Identification number for an online database     STRING   Y 1 N N    
Description Module description lines     STRING 0-4096 N 0 N N    
DescriptionCount       INTEGER   Y 1 N N    
Dictionary Id(name) and path of input dictionary     STRING 0-512 Y 1 N N    
DiskSpace Minimum required disk space     INTEGER 0-512 Y 1 N N    
Icon Name and path of display icon     STRING 0-512 Y 1 N N    
Login Login for model server     STRING 0-32 Y 1 N N    
ModelCmdLine Model command line switches     STRING 0-64 Y 1 N N    
ModelExe Name and path of Model executable     STRING 0-512 Y 1 N N    
ModelURL Remote model server URL     STRING 0-512 Y 1 N N    
Name Module name     STRING 0-512 Y 1 N N    
OperatingSystem Native operating system     STRING 0-64 Y 1 N N    
Password Password for model server     STRING 0-32 Y 1 N N    
POCAddress1 Point of contact first address     STRING 0-64 Y 1 N N    
POCAddress2 Point of contact second address     STRING 0-64 Y 1 N N    
POCCity Point of contact city     STRING 0-32 Y 1 N N    
POCCompany Point of contact company name     STRING 0-64 Y 1 N N    
POCContact Point of contact name     STRING 0-64 Y 1 N N    
POCCountry Point of contact country     STRING 0-32 Y 1 N N    
POCEmail Point of contact email address     STRING 0-64 Y 1 N N    
POCFax Point of contact fax telephone number     STRING 0-16 Y 1 N N    
POCPerson Point of contact person     STRING 0-64 Y 1 N N    
POCPhone Point of contact telephone number     STRING 0-16 Y 1 N N    
POCState Point of contact state     STRING 0-16 Y 1 N N    
POCUrl Point of contact web address     STRING 0-512 Y 1 N N    
POCZip Point of contact zip code     STRING 0-16 Y 1 N N    
Processor Minimum processor required     STRING 0-64 Y 1 N N    
ProSchemeDic Produced dictionary names     STRING   N 0 N N    
RAM Minimum required memory     INTEGER 0-512 Y 1 N N    
Reference Module reference lines     STRING 1-4096 N 0 N N    
ReferenceCount       INTEGER   Y 1 N N    
Scheme The name of a connection scheme     STRING   N 0 N N    
SystemUpdate Internal flag tracking if a module has been updated     LOGICAL   Y 1 N N    
SystemVersion Internal version of a module used by the system     INTEGER 0-200000 Y 1 N N    
Tool Launch from Tool menu if true     LOGICAL 0-1 Y 1 N N    
UICmdLine UI command line switches     STRING 0-64 Y 1 N N    
UIExe Name and path of UI executable     STRING 0-512 Y 1 N N    
Version Module version description     STRING 0-32 Y 1 N N    
Legend
Column
Name
Meaning
S Scalar
D Dimensional size
U Can uncertainty apply (is it stochastic)
K Is the variable a key to others

Module-Specific Dictionaries

Module-specific DICs consist of information describing data required by a specific module to operate.  For some modules, these are data to be analyzed.  For other module-specific DICs, the data described allow the analysis to occur in a specific fashion.  For example, a sensitivity/uncertainty module (which analyzes which parameters more heavily influence the results of an analysis) requires the use of iterator DICs.  Iterator DICs define statistical information associated with the stochastic data; that is, data that can be varied to determine a parameter"s sensitivity or uncertainty.  FRAMES uses five types of iterator DICs:

  • Seed DIC, which consists of information defining the starting seed number so that random numbers can be generated to allow the analysis to vary a parameter (Table 7).
  • Iteration DIC, which consists of information defining the current iteration of the simulation (Table 8).
  • Sampled Values DIC, which consists of information defining the inputs that are being sampled as stochastic and available for sampling (Table 9).
  • Summary Values DIC, which consists of information defining the outputs that are summarized as part of the statistical results (Table 10).
  • Stochastic DIC, which consists of information defining the distribution and attributes associated with the stochastic parameters (Table 11).

Boundary Condition Dictionaries

Boundary condition dictionaries provide information to multiple modules (see Table 12 for an example) or transfer information between components.  Two important types of boundary condition DICs are as follows:

  • Model DIC, which describes information that is passed from a producing model to a consuming model.  These DICs represent the output results from a model (see Table 13 for an example) and must be complete (i.e., no missing data).
  • Database DIC, which contains information associated with the mapping of data between a database and the system.  Note that a database DIC would look similar to a model DIC except that the dataset for a database DIC does not have to be complete (i.e., some data can be missing but a method must be supplied to allow the user to provide these data during analysis of the problem being modeled).

Home | Security and Privacy | Contact Us