The Configuration File

The exact details of the run to be performed are contained within the configuration file (the file is not required to have an xml extension, but it is recommended for organizational purposes). Due to the relative complexity of this file compared to previous items in the guide, key lines will be explained in detail below. The exact format in which these lines should appear in the final file can be deduced easily by examining the configuration.xml file shipped with the product and located in the data folder.

The first two lines below are optional:

 

 

<threads value="1"/>

 

Specifies how many simultaneous execution threads should be used by the Data Source Connector to maximize performance. By default this is set to 4, but the appropriate value to use for each configuration is something that can only be identified through performance testing.

 

<run-limit value="2"/>

 

Specifies the number of “Data Sets” or “Assessments” that each thread should process before terminating. This element is designed for testing purposes, where it may not be practical to run the entire assessment. If omitted each thread will continue to run until the data source has been exhausted.

 

<tables type="csv" delimiter=',' sequential="false" include-headers="false">

 

Contains details which apply to all tables to be used. The “delimiter” attribute is specific to CSV tables that define which character is used in the table to separate each value on a line. Common values for this are “,” or “\t” for comma and tab separated files respectively.

 

<table location="..\data\parent.csv" />

 

Each table appears as a separate element, with it’s location appearing as an attribute within that element.

 

<rulebase location="..\rulebase\output\child_toy.xml" global-table="parent" set-uncertain="true" />

 

Specifies three items:

  1. “location”, tells the Data Source Connector where it can find the rulebase to be used.
  2. “globalTable”, tells the Data Source Connector which table is to be used as the “Global” entity. Each line in this table will therefore represent a separate assessment, and as such it is a requirement that such a table exist, even if it’s contents are not necessarily mapped to any attributes. (it will be required in a relationship mapping though, and as such needs a Primary Key at the least).
  3. “set-uncertain”, specifies whether or not an attributes value should be set to uncertain if no attribute value has been supplied within the current data set. Acceptable values are false (unknown attribute value) or true (uncertain attribute value). This is a global setting, and is designed to support legacy rulebases which have been authored to expect uncertain being passed. It is generally not recommended in rulebase design, and the default value of false should normally be used.



    <output type="csv" location="..\output" overwrite="true"/>

 

Details the output format of the evaluation run.

Currently the only supported output type is csv, with the “location” attribute specifying a pre-existing folder where the csv output files should be placed, and "overwrite" attribute specifying whether the csv output should be replaced or not.

 

<attribute type="text" source-field="name" target-attr="parent_name"

source-table="parent" target-entity="global" output="false" />



<attribute type="boolean" source-field="child_id" source-table="child"

target-entity="child" output="true" ordinality="1"/>

 

Shown above are two attribute mappings, the former specifying an input attribute, and the latter an “unmapped” (data only) output attribute.

In the case of the latter attribute, it is important to note that output attributes can be sourced directly from the input data where required, and the target attribute omitted. It is also essential that all output attributes have an ordinality.

Note, that it is legal for an output attribute with the same ordinality and entity to appear twice in a configuration. The last mapping will override any before it.

 

<relationship source-table="parent" target-table="child" source-entity="global"

target-entity="child" type="1m" source-key="id" target-key="parent" name="children"

reverse-name="parent" />

 

Relationship mappings, relate Primary/Foreign Key pairs to the appropriate entity relationships within the rulebase. It is important that the name and reverse-name are the relationship IDs sourced from the compiled rulebase itself.

Also note that multiple comma separated keys are supported where required, as shown above.

 

Go to:

Execution Specific Requirements  

Test Structure

CSV Descriptors