<?xml version="1.0" encoding="UTF-8"?>
<schema>
    <table type="object" name="NameValueType">
        <comment>Represents MAGE Class NameValueType</comment>
        <comment>A tuple designed to store data, keyed by a name and type.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_NameValueType1"/>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute NameValueType.name</comment>
            <comment>The name of the key.</comment>
        </column>
        <column name="Value" type="@varchar" length="255" required="false">
            <comment>MAGE attribute NameValueType.value</comment>
            <comment>The value of the name.</comment>
        </column>
        <column name="Type_" type="@varchar" length="255" required="false">
            <comment>MAGE attribute NameValueType.type</comment>
            <comment>The type of the key.</comment>
        </column>
        <column name="NameValueType_PropertySets" type="@wid" required="false">
            <comment>Represents 1..n association between NameValueType and NameValueType</comment>
            <comment>Allows nested specification of name/value pairs</comment>
            <foreignKey toColumn="WID" toTable="NameValueType" name="FK_NameValueType66"/>
        </column>
        <column name="OtherWID" type="@wid">
            <comment>WID of the object this NameValueType describes</comment>
        </column>
        <primaryKey column="WID" name="PK_NameValueType"/>
        <index name="NameValueType1" columns="DataSetWID"/>
        <index name="NameValueType2" columns="Name"/>
        <index name="NameValueType3" columns="Value"/>
        <index name="NameValueType4" columns="Type_"/>
        <index name="NameValueType5" columns="NameValueType_PropertySets"/>
        <index name="NameValueType6" columns="OtherWID"/>
    </table>
    <table type="object" name="Contact">
        <comment>Represents MAGE Class Contact</comment>
        <comment>A contact is either a person or an organization.</comment>
        <comment>Includes MAGE Class Organization</comment>
        <comment>Includes MAGE Class Person</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Contact1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="URI" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Contact.URI</comment>
        </column>
        <column name="Address" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Contact.address</comment>
        </column>
        <column name="Phone" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Contact.phone</comment>
        </column>
        <column name="TollFreePhone" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Contact.tollFreePhone</comment>
        </column>
        <column name="Email" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Contact.email</comment>
        </column>
        <column name="Fax" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Contact.fax</comment>
        </column>
        <column name="Parent" type="@wid" required="false">
            <comment>Represents n..1 association between Organization and Organization</comment>
            <comment>The containing organization (the university or business which a lab belongs to, etc.)</comment>
            <foreignKey toColumn="WID" toTable="Contact" name="FK_Contact3"/>
        </column>
        <column name="LastName" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Person.lastName</comment>
        </column>
        <column name="FirstName" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Person.firstName</comment>
        </column>
        <column name="MidInitials" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Person.midInitials</comment>
        </column>
        <column name="Affiliation" type="@wid" required="false">
            <comment>Represents n..1 association between Person and Organization</comment>
            <comment>The organization a person belongs to.</comment>
            <foreignKey toColumn="WID" toTable="Contact" name="FK_Contact4"/>
        </column>
        <primaryKey column="WID" name="PK_Contact"/>
        <index name="Contact1" columns="DataSetWID"/>
        <index name="Contact2" columns="MAGEClass"/>
        <index name="Contact3" columns="Identifier"/>
        <index name="Contact4" columns="Name"/>
        <index name="Contact5" columns="URI"/>
        <index name="Contact6" columns="Address"/>
        <index name="Contact7" columns="Phone"/>
        <index name="Contact8" columns="TollFreePhone"/>
        <index name="Contact9" columns="Email"/>
        <index name="Contact10" columns="Fax"/>
        <index name="Contact11" columns="Parent"/>
        <index name="Contact12" columns="LastName"/>
        <index name="Contact13" columns="FirstName"/>
        <index name="Contact14" columns="MidInitials"/>
        <index name="Contact15" columns="Affiliation"/>
    </table>
    <table type="object" name="ArrayDesign">
        <comment>Represents MAGE Class ArrayDesign</comment>
        <comment>Describes the design of an gene expression layout.  In some cases this might be virtual and, for instance, represent the output from analysis software at the composite level without reporters or features.</comment>
        <comment>Includes MAGE Class PhysicalArrayDesign</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ArrayDesign1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="Version" type="@varchar" length="255" required="false">
            <comment>MAGE attribute ArrayDesign.version</comment>
            <comment>The version of this design.</comment>
        </column>
        <column name="NumberOfFeatures" type="@int16" required="false">
            <comment>MAGE attribute ArrayDesign.numberOfFeatures</comment>
            <comment>The number of features for this array</comment>
        </column>
        <column name="SurfaceType" type="@wid" required="false">
            <comment>Represents 1..1 association between PhysicalArrayDesign and OntologyEntry</comment>
            <comment>The type of surface from a controlled vocabulary that would include terms such as non-absorptive, absorptive, etc.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_ArrayDesign3"/>
        </column>
        <primaryKey column="WID" name="PK_ArrayDesign"/>
        <index name="ArrayDesign1" columns="DataSetWID"/>
        <index name="ArrayDesign2" columns="MAGEClass"/>
        <index name="ArrayDesign3" columns="Identifier"/>
        <index name="ArrayDesign4" columns="Name"/>
        <index name="ArrayDesign5" columns="Version"/>
        <index name="ArrayDesign6" columns="NumberOfFeatures"/>
        <index name="ArrayDesign7" columns="SurfaceType"/>
    </table>
    <table type="object" name="DesignElementGroup">
        <comment>Represents MAGE Class DesignElementGroup</comment>
        <comment>The DesignElementGroup holds information on either features, reporters, or compositeSequences, particularly that information that is common between all of the DesignElements contained.</comment>
        <comment>Includes MAGE Class CompositeGroup</comment>
        <comment>Includes MAGE Class FeatureGroup</comment>
        <comment>Includes MAGE Class ReporterGroup</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_DesignElementGroup1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="ArrayDesign_FeatureGroups" type="@wid" required="false">
            <comment>Represents 1..n association between ArrayDesign and FeatureGroup</comment>
            <comment>The grouping of like Features together.  Typically for a physical array design, this will be a single grouping of features whose type might be PCR Product or Oligo.  If more than one technology type occurs on the array, such as the mixing of Cloned BioMaterial and Oligos, then there would be multiple FeatureGroups to segregate the technology types.</comment>
            <foreignKey toColumn="WID" toTable="ArrayDesign" name="FK_DesignElementGroup3"/>
        </column>
        <column name="DesignElementGroup_Species" type="@wid" required="false">
            <comment>Represents 1..1 association between DesignElementGroup and OntologyEntry</comment>
            <comment>The organism from which the biosequences of this group are from.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_DesignElementGroup4"/>
        </column>
        <column name="FeatureWidth" type="@real32" required="false">
            <comment>MAGE attribute FeatureGroup.featureWidth</comment>
            <comment>The width of the feature.</comment>
        </column>
        <column name="FeatureLength" type="@real32" required="false">
            <comment>MAGE attribute FeatureGroup.featureLength</comment>
            <comment>The length of the feature.</comment>
        </column>
        <column name="FeatureHeight" type="@real32" required="false">
            <comment>MAGE attribute FeatureGroup.featureHeight</comment>
            <comment>The height of the feature.</comment>
        </column>
        <column name="FeatureGroup_TechnologyType" type="@wid" required="false">
            <comment>Represents 1..1 association between FeatureGroup and OntologyEntry</comment>
            <comment>The technology type of this design.  By specifying a technology type, higher level analysis can use appropriate algorithms to compare the results from multiple arrays.  The technology type may be spotted cDNA or in situ photolithography.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_DesignElementGroup5"/>
        </column>
        <column name="FeatureGroup_FeatureShape" type="@wid" required="false">
            <comment>Represents 1..1 association between FeatureGroup and OntologyEntry</comment>
            <comment>The expected shape of the feature on the array: circular, oval, square, etc.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_DesignElementGroup6"/>
        </column>
        <column name="FeatureGroup_DistanceUnit" type="@wid" required="false">
            <comment>Represents 1..1 association between FeatureGroup and DistanceUnit</comment>
            <comment>The unit for the feature measures.</comment>
            <foreignKey toColumn="WID" toTable="Unit" name="FK_DesignElementGroup7"/>
        </column>
        <primaryKey column="WID" name="PK_DesignElementGroup"/>
        <index name="DesignElementGroup1" columns="DataSetWID"/>
        <index name="DesignElementGroup2" columns="MAGEClass"/>
        <index name="DesignElementGroup3" columns="Identifier"/>
        <index name="DesignElementGroup4" columns="Name"/>
        <index name="DesignElementGroup5" columns="ArrayDesign_FeatureGroups"/>
        <index name="DesignElementGroup6" columns="DesignElementGroup_Species"/>
        <index name="DesignElementGroup7" columns="FeatureWidth"/>
        <index name="DesignElementGroup8" columns="FeatureLength"/>
        <index name="DesignElementGroup9" columns="FeatureHeight"/>
        <index name="DesignElementGroup10" columns="FeatureGroup_TechnologyType"/>
        <index name="DesignElementGroup11" columns="FeatureGroup_FeatureShape"/>
        <index name="DesignElementGroup12" columns="FeatureGroup_DistanceUnit"/>
    </table>
    <table type="object" name="Zone">
        <comment>Represents MAGE Class Zone</comment>
        <comment>Specifies the location of a zone on an array.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Zone1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="Row_" type="@int16" required="false">
            <comment>MAGE attribute Zone.row</comment>
            <comment>row position in the ZoneGroup</comment>
        </column>
        <column name="Column_" type="@int16" required="false">
            <comment>MAGE attribute Zone.column</comment>
            <comment>column position in the ZoneGroup.</comment>
        </column>
        <column name="UpperLeftX" type="@real32" required="false">
            <comment>MAGE attribute Zone.upperLeftX</comment>
            <comment>Boundary vertical upper left position relative to (0,0).</comment>
        </column>
        <column name="UpperLeftY" type="@real32" required="false">
            <comment>MAGE attribute Zone.upperLeftY</comment>
            <comment>Boundary horizontal upper left position relative to (0,0).</comment>
        </column>
        <column name="LowerRightX" type="@real32" required="false">
            <comment>MAGE attribute Zone.lowerRightX</comment>
            <comment>Boundary vertical lower right position relative to (0,0).</comment>
        </column>
        <column name="LowerRightY" type="@real32" required="false">
            <comment>MAGE attribute Zone.lowerRightY</comment>
            <comment>Boundary horizontal lower right position relative to (0,0).</comment>
        </column>
        <column name="Zone_DistanceUnit" type="@wid" required="false">
            <comment>Represents 1..1 association between Zone and DistanceUnit</comment>
            <comment>Unit for the Zone attributes.</comment>
            <foreignKey toColumn="WID" toTable="Unit" name="FK_Zone3"/>
        </column>
        <column name="ZoneGroup_ZoneLocations" type="@wid" required="false">
            <comment>Represents 1..n association between ZoneGroup and Zone</comment>
            <comment>Describes the location of different zones within the array design.</comment>
            <foreignKey toColumn="WID" toTable="ZoneGroup" name="FK_Zone4"/>
        </column>
        <primaryKey column="WID" name="PK_Zone"/>
        <index name="Zone1" columns="DataSetWID"/>
        <index name="Zone2" columns="Identifier"/>
        <index name="Zone3" columns="Name"/>
        <index name="Zone4" columns="Row_"/>
        <index name="Zone5" columns="Column_"/>
        <index name="Zone6" columns="UpperLeftX"/>
        <index name="Zone7" columns="UpperLeftY"/>
        <index name="Zone8" columns="LowerRightX"/>
        <index name="Zone9" columns="LowerRightY"/>
        <index name="Zone10" columns="Zone_DistanceUnit"/>
        <index name="Zone11" columns="ZoneGroup_ZoneLocations"/>
    </table>
    <table type="object" name="ZoneGroup">
        <comment>Represents MAGE Class ZoneGroup</comment>
        <comment>Specifies a repeating area on an array.  This is useful for printing when the same pattern is repeated in a regular fashion.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ZoneGroup1"/>
        </column>
        <column name="PhysicalArrayDesign_ZoneGroups" type="@wid" required="false">
            <comment>Represents 1..n association between PhysicalArrayDesign and ZoneGroup</comment>
            <comment>In the case where the array design is specified by one or more zones, allows specifying where those zones are located.</comment>
            <foreignKey toColumn="WID" toTable="ArrayDesign" name="FK_ZoneGroup2"/>
        </column>
        <column name="SpacingsBetweenZonesX" type="@real32" required="false">
            <comment>MAGE attribute ZoneGroup.spacingsBetweenZonesX</comment>
            <comment>Spacing between zones, if applicable.</comment>
        </column>
        <column name="SpacingsBetweenZonesY" type="@real32" required="false">
            <comment>MAGE attribute ZoneGroup.spacingsBetweenZonesY</comment>
            <comment>Spacing between zones, if applicable.</comment>
        </column>
        <column name="ZonesPerX" type="@int16" required="false">
            <comment>MAGE attribute ZoneGroup.zonesPerX</comment>
            <comment>The number of zones on the x-axis.</comment>
        </column>
        <column name="ZonesPerY" type="@int16" required="false">
            <comment>MAGE attribute ZoneGroup.zonesPerY</comment>
            <comment>The number of zones on the y-axis.</comment>
        </column>
        <column name="ZoneGroup_DistanceUnit" type="@wid" required="false">
            <comment>Represents 1..1 association between ZoneGroup and DistanceUnit</comment>
            <comment>Unit for the ZoneGroup attributes.</comment>
            <foreignKey toColumn="WID" toTable="Unit" name="FK_ZoneGroup3"/>
        </column>
        <column name="ZoneGroup_ZoneLayout" type="@wid" required="false">
            <comment>Represents 1..1 association between ZoneGroup and ZoneLayout</comment>
            <comment>Describes the rectangular layout of features in the array design.</comment>
            <foreignKey toColumn="WID" toTable="ZoneLayout" name="FK_ZoneGroup4"/>
        </column>
        <primaryKey column="WID" name="PK_ZoneGroup"/>
        <index name="ZoneGroup1" columns="DataSetWID"/>
        <index name="ZoneGroup2" columns="PhysicalArrayDesign_ZoneGroups"/>
        <index name="ZoneGroup3" columns="SpacingsBetweenZonesX"/>
        <index name="ZoneGroup4" columns="SpacingsBetweenZonesY"/>
        <index name="ZoneGroup5" columns="ZonesPerX"/>
        <index name="ZoneGroup6" columns="ZonesPerY"/>
        <index name="ZoneGroup7" columns="ZoneGroup_DistanceUnit"/>
        <index name="ZoneGroup8" columns="ZoneGroup_ZoneLayout"/>
    </table>
    <table type="object" name="ZoneLayout">
        <comment>Represents MAGE Class ZoneLayout</comment>
        <comment>Specifies the layout of features in a rectangular grid.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ZoneLayout1"/>
        </column>
        <column name="NumFeaturesPerRow" type="@int16" required="false">
            <comment>MAGE attribute ZoneLayout.numFeaturesPerRow</comment>
            <comment>The number of features from left to right.</comment>
        </column>
        <column name="NumFeaturesPerCol" type="@int16" required="false">
            <comment>MAGE attribute ZoneLayout.numFeaturesPerCol</comment>
            <comment>The number of features from top to bottom of the grid.</comment>
        </column>
        <column name="SpacingBetweenRows" type="@real32" required="false">
            <comment>MAGE attribute ZoneLayout.spacingBetweenRows</comment>
            <comment>Spacing between the rows.</comment>
        </column>
        <column name="SpacingBetweenCols" type="@real32" required="false">
            <comment>MAGE attribute ZoneLayout.spacingBetweenCols</comment>
            <comment>Spacing between the columns.</comment>
        </column>
        <column name="ZoneLayout_DistanceUnit" type="@wid" required="false">
            <comment>Represents 1..1 association between ZoneLayout and DistanceUnit</comment>
            <comment>Unit of the ZoneLayout attributes.</comment>
            <foreignKey toColumn="WID" toTable="Unit" name="FK_ZoneLayout2"/>
        </column>
        <primaryKey column="WID" name="PK_ZoneLayout"/>
        <index name="ZoneLayout1" columns="DataSetWID"/>
        <index name="ZoneLayout2" columns="NumFeaturesPerRow"/>
        <index name="ZoneLayout3" columns="NumFeaturesPerCol"/>
        <index name="ZoneLayout4" columns="SpacingBetweenRows"/>
        <index name="ZoneLayout5" columns="SpacingBetweenCols"/>
        <index name="ZoneLayout6" columns="ZoneLayout_DistanceUnit"/>
    </table>
    <table type="object" name="ExperimentDesign">
        <comment>Represents MAGE Class ExperimentDesign</comment>
        <comment>The ExperimentDesign is the description and collection of ExperimentalFactors and the hierarchy of BioAssays to which they pertain.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ExperimentDesign1"/>
        </column>
        <column name="Experiment_ExperimentDesigns" type="@wid" required="false">
            <comment>Represents 1..n association between Experiment and ExperimentDesign</comment>
            <comment>The association to the description and annotation of the Experiment, along with the grouping of the top-level BioAssays.</comment>
            <foreignKey toColumn="WID" toTable="Experiment" name="FK_ExperimentDesign3"/>
        </column>
        <column name="QualityControlDescription" type="@wid" required="false">
            <comment>Represents 1..1 association between ExperimentDesign and Description</comment>
            <comment>Description of the quality control aspects of the Experiment.</comment>
        </column>
        <column name="NormalizationDescription" type="@wid" required="false">
            <comment>Represents 1..1 association between ExperimentDesign and Description</comment>
            <comment>Description of the normalization strategy of the Experiment.</comment>
        </column>
        <column name="ReplicateDescription" type="@wid" required="false">
            <comment>Represents 1..1 association between ExperimentDesign and Description</comment>
            <comment>Description of the replicate strategy of the Experiment.</comment>
        </column>
        <primaryKey column="WID" name="PK_ExperimentDesign"/>
        <index name="ExperimentDesign1" columns="DataSetWID"/>
        <index name="ExperimentDesign2" columns="Experiment_ExperimentDesigns"/>
        <index name="ExperimentDesign3" columns="QualityControlDescription"/>
        <index name="ExperimentDesign4" columns="NormalizationDescription"/>
        <index name="ExperimentDesign5" columns="ReplicateDescription"/>
    </table>
    <table type="object" name="ExperimentalFactor">
        <comment>Represents MAGE Class ExperimentalFactor</comment>
        <comment>ExperimentFactors are the dependent variables of an experiment (e.g. time, glucose concentration, ...).</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ExperimentalFactor1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="ExperimentDesign" type="@wid" required="false">
            <comment>Represents 1..n association between ExperimentDesign and ExperimentalFactor</comment>
            <comment>The description of the factors (TimeCourse, Dosage, etc.) that group the BioAssays.</comment>
            <foreignKey toColumn="WID" toTable="ExperimentDesign" name="FK_ExperimentalFactor3"/>
        </column>
        <column name="ExperimentalFactor_Category" type="@wid" required="false">
            <comment>Represents 1..1 association between ExperimentalFactor and OntologyEntry</comment>
            <comment>The category of an ExperimentalFactor could be biological (time, [glucose]) or a methodological factor (differing cDNA preparation protocols).</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_ExperimentalFactor4"/>
        </column>
        <primaryKey column="WID" name="PK_ExperimentalFactor"/>
        <index name="ExperimentalFactor1" columns="DataSetWID"/>
        <index name="ExperimentalFactor2" columns="Identifier"/>
        <index name="ExperimentalFactor3" columns="Name"/>
        <index name="ExperimentalFactor4" columns="ExperimentDesign"/>
        <index name="ExperimentalFactor5" columns="ExperimentalFactor_Category"/>
    </table>
    <table type="object" name="FactorValue">
        <comment>Represents MAGE Class FactorValue</comment>
        <comment>The value for a ExperimentalFactor</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_FactorValue1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="ExperimentalFactor" type="@wid" required="false">
            <comment>Represents 1..n association between ExperimentalFactor and FactorValue</comment>
            <comment>The pairing of BioAssay FactorValues with the ExperimentDesign ExperimentFactor.</comment>
            <foreignKey toColumn="WID" toTable="ExperimentalFactor" name="FK_FactorValue3"/>
        </column>
        <column name="ExperimentalFactor2" type="@wid" required="false">
            <comment>Represents n..1 association between FactorValue and ExperimentalFactor</comment>
            <comment>The pairing of BioAssay FactorValues with the ExperimentDesign ExperimentFactor.</comment>
            <foreignKey toColumn="WID" toTable="ExperimentalFactor" name="FK_FactorValue4"/>
        </column>
        <column name="FactorValue_Measurement" type="@wid" required="false">
            <comment>Represents 1..1 association between FactorValue and Measurement</comment>
            <comment>The measured value for this factor.</comment>
            <foreignKey toColumn="WID" toTable="Measurement" name="FK_FactorValue5"/>
        </column>
        <column name="FactorValue_Value" type="@wid" required="false">
            <comment>Represents 1..1 association between FactorValue and OntologyEntry</comment>
            <comment>Allows a more complex value to be specified for a FactorValue than a simple Measurement.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_FactorValue6"/>
        </column>
        <primaryKey column="WID" name="PK_FactorValue"/>
        <index name="FactorValue1" columns="DataSetWID"/>
        <index name="FactorValue2" columns="Identifier"/>
        <index name="FactorValue3" columns="Name"/>
        <index name="FactorValue4" columns="ExperimentalFactor"/>
        <index name="FactorValue5" columns="ExperimentalFactor2"/>
        <index name="FactorValue6" columns="FactorValue_Measurement"/>
        <index name="FactorValue7" columns="FactorValue_Value"/>
    </table>
    <table type="object" name="QuantitationType">
        <comment>Represents MAGE Class QuantitationType</comment>
        <comment>A method for calculating a single datum of the matrix (e.g. raw intensity, background, error).</comment>
        <comment>Includes MAGE Class SpecializedQuantitationType</comment>
        <comment>Includes MAGE Class StandardQuantitationType</comment>
        <comment>Includes MAGE Class ConfidenceIndicator</comment>
        <comment>Includes MAGE Class DerivedSignal</comment>
        <comment>Includes MAGE Class Error</comment>
        <comment>Includes MAGE Class ExpectedValue</comment>
        <comment>Includes MAGE Class Failed</comment>
        <comment>Includes MAGE Class MeasuredSignal</comment>
        <comment>Includes MAGE Class PValue</comment>
        <comment>Includes MAGE Class PresentAbsent</comment>
        <comment>Includes MAGE Class Ratio</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_QuantitationType1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="IsBackground" type="@boolean" required="false">
            <comment>MAGE attribute QuantitationType.isBackground</comment>
            <comment>Indicates whether the quantitation has been measured from the background or from the feature itself.</comment>
        </column>
        <column name="Channel" type="@wid" required="false">
            <comment>Represents n..1 association between QuantitationType and Channel</comment>
            <comment>The optional channel associated with the QuantitationType.</comment>
            <foreignKey toColumn="WID" toTable="Channel" name="FK_QuantitationType3"/>
        </column>
        <column name="QuantitationType_Scale" type="@wid" required="false">
            <comment>Represents 1..1 association between QuantitationType and OntologyEntry</comment>
            <comment>Indication of how to interpret the value.  From a suggested vocabulary of {LINEAR | LN | LOG2 |LOG10 | FOLD_CHANGE | OTHER}</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_QuantitationType4"/>
        </column>
        <column name="QuantitationType_DataType" type="@wid" required="false">
            <comment>Represents 1..1 association between QuantitationType and OntologyEntry</comment>
            <comment>The specific type for the quantitations.  From a controlled vocabulary of {float, int, boolean, etc.}</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_QuantitationType5"/>
        </column>
        <column name="TargetQuantitationType" type="@wid" required="false">
            <comment>Represents n..1 association between ConfidenceIndicator and QuantitationType</comment>
            <comment>The association between a ConfidenceIndicator and the QuantitationType its is an indicator for.</comment>
            <foreignKey toColumn="WID" toTable="QuantitationType" name="FK_QuantitationType6"/>
        </column>
        <primaryKey column="WID" name="PK_QuantitationType"/>
        <index name="QuantitationType1" columns="DataSetWID"/>
        <index name="QuantitationType2" columns="MAGEClass"/>
        <index name="QuantitationType3" columns="Identifier"/>
        <index name="QuantitationType4" columns="Name"/>
        <index name="QuantitationType5" columns="IsBackground"/>
        <index name="QuantitationType6" columns="Channel"/>
        <index name="QuantitationType7" columns="QuantitationType_Scale"/>
        <index name="QuantitationType8" columns="QuantitationType_DataType"/>
        <index name="QuantitationType9" columns="TargetQuantitationType"/>
    </table>
    <table type="object" name="Database_">
        <comment>Represents MAGE Class Database</comment>
        <comment>An address to a repository.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Database_1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="Version" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Database.version</comment>
            <comment>The version for which a DatabaseReference applies.</comment>
        </column>
        <column name="URI" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Database.URI</comment>
            <comment>The location of the Database.</comment>
        </column>
        <primaryKey column="WID" name="PK_Database_"/>
        <index name="Database_1" columns="DataSetWID"/>
        <index name="Database_2" columns="Identifier"/>
        <index name="Database_3" columns="Name"/>
        <index name="Database_4" columns="Version"/>
        <index name="Database_5" columns="URI"/>
    </table>
    <table type="object" name="Array_">
        <comment>Represents MAGE Class Array</comment>
        <comment>The physical substrate along with its features and their annotation</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Array_1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="ArrayIdentifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Array.arrayIdentifier</comment>
            <comment>An identifying string, e.g. a barcode.</comment>
        </column>
        <column name="ArrayXOrigin" type="@real32" required="false">
            <comment>MAGE attribute Array.arrayXOrigin</comment>
            <comment>This can indicate the x position on a slide, chip, etc. of the first Feature and is usually specified relative to the fiducial.</comment>
        </column>
        <column name="ArrayYOrigin" type="@real32" required="false">
            <comment>MAGE attribute Array.arrayYOrigin</comment>
            <comment>This can indicate the y position on a slide, chip, etc. of the first Feature and is usually specified relative to the fiducial.</comment>
        </column>
        <column name="OriginRelativeTo" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Array.originRelativeTo</comment>
            <comment>What the array origin is relative to, e.g. upper left corner, fiducial, etc.</comment>
        </column>
        <column name="ArrayDesign" type="@wid" required="false">
            <comment>Represents n..1 association between Array and ArrayDesign</comment>
            <comment>The association of a physical array with its array design.</comment>
            <foreignKey toColumn="WID" toTable="ArrayDesign" name="FK_Array_3"/>
        </column>
        <column name="Information" type="@wid" required="false">
            <comment>Represents n..1 association between Array and ArrayManufacture</comment>
            <comment>Association between the manufactured array and the information on that manufacture.</comment>
            <foreignKey toColumn="WID" toTable="ArrayManufacture" name="FK_Array_4"/>
        </column>
        <column name="ArrayGroup" type="@wid" required="false">
            <comment>Represents n..1 association between Array and ArrayGroup</comment>
            <comment>Association between an ArrayGroup and its Arrays, typically the ArrayGroup will represent a slide and the Arrays will be the manufactured so that they may be hybridized separately on that slide.</comment>
            <foreignKey toColumn="WID" toTable="ArrayGroup" name="FK_Array_5"/>
        </column>
        <primaryKey column="WID" name="PK_Array_"/>
        <index name="Array_1" columns="DataSetWID"/>
        <index name="Array_2" columns="Identifier"/>
        <index name="Array_3" columns="Name"/>
        <index name="Array_4" columns="ArrayIdentifier"/>
        <index name="Array_5" columns="ArrayXOrigin"/>
        <index name="Array_6" columns="ArrayYOrigin"/>
        <index name="Array_7" columns="OriginRelativeTo"/>
        <index name="Array_8" columns="ArrayDesign"/>
        <index name="Array_9" columns="Information"/>
        <index name="Array_10" columns="ArrayGroup"/>
    </table>
    <table type="object" name="ArrayGroup">
        <comment>Represents MAGE Class ArrayGroup</comment>
        <comment>An array package is a physical platform that contains one or more arrays that are separately addressable (e.g. several arrays that can be hybridized on a single microscope slide) or a virtual grouping together of arrays. The array package that has been manufactured has information about where certain artifacts about the array are located for scanning and feature extraction purposes.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ArrayGroup1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="Barcode" type="@varchar" length="255" required="false">
            <comment>MAGE attribute ArrayGroup.barcode</comment>
            <comment>Identifier for the ArrayGroup.</comment>
        </column>
        <column name="ArraySpacingX" type="@real32" required="false">
            <comment>MAGE attribute ArrayGroup.arraySpacingX</comment>
            <comment>If there exist more than one array on a slide or a chip, then the spacing between the arrays is useful so that scanning / feature extraction software can crop images representing 1 unique bioassay.</comment>
        </column>
        <column name="ArraySpacingY" type="@real32" required="false">
            <comment>MAGE attribute ArrayGroup.arraySpacingY</comment>
            <comment>If there exist more than one array on a slide or a chip, then the spacing between the arrays is useful so that scanning / feature extraction software can crop images representing 1 unique bioassay.</comment>
        </column>
        <column name="NumArrays" type="@int16" required="false">
            <comment>MAGE attribute ArrayGroup.numArrays</comment>
            <comment>This attribute defines the number of arrays on a chip or a slide.</comment>
        </column>
        <column name="OrientationMark" type="@varchar" length="255" required="false">
            <comment>MAGE attribute ArrayGroup.orientationMark</comment>
            <comment>For a human to determine where the top left side of the array is, such as a barcode or frosted side of the glass, etc.</comment>
        </column>
        <column name="OrientationMarkPosition" type="@varchar" length="25" required="false">
            <comment>MAGE attribute ArrayGroup.orientationMarkPosition</comment>
            <comment>One of top, bottom, left or right.</comment>
        </column>
        <column name="Width" type="@real32" required="false">
            <comment>MAGE attribute ArrayGroup.width</comment>
            <comment>The width of the platform</comment>
        </column>
        <column name="Length" type="@real32" required="false">
            <comment>MAGE attribute ArrayGroup.length</comment>
            <comment>The length of the platform.</comment>
        </column>
        <column name="ArrayGroup_SubstrateType" type="@wid" required="false">
            <comment>Represents 1..1 association between ArrayGroup and OntologyEntry</comment>
            <comment>Commonly, arrays will be spotted on 1x3 glass microscope slides but there is nothing that says this must be the case.  This association is for scanners to inform them on the possible different formats of slides that can contain arrays.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_ArrayGroup3"/>
        </column>
        <column name="ArrayGroup_DistanceUnit" type="@wid" required="false">
            <comment>Represents 1..1 association between ArrayGroup and DistanceUnit</comment>
            <comment>The unit of the measurement attributes.</comment>
            <foreignKey toColumn="WID" toTable="Unit" name="FK_ArrayGroup4"/>
        </column>
        <primaryKey column="WID" name="PK_ArrayGroup"/>
        <index name="ArrayGroup1" columns="DataSetWID"/>
        <index name="ArrayGroup2" columns="Identifier"/>
        <index name="ArrayGroup3" columns="Name"/>
        <index name="ArrayGroup4" columns="Barcode"/>
        <index name="ArrayGroup5" columns="ArraySpacingX"/>
        <index name="ArrayGroup6" columns="ArraySpacingY"/>
        <index name="ArrayGroup7" columns="NumArrays"/>
        <index name="ArrayGroup8" columns="OrientationMark"/>
        <index name="ArrayGroup9" columns="OrientationMarkPosition"/>
        <index name="ArrayGroup10" columns="Width"/>
        <index name="ArrayGroup11" columns="Length"/>
        <index name="ArrayGroup12" columns="ArrayGroup_SubstrateType"/>
        <index name="ArrayGroup13" columns="ArrayGroup_DistanceUnit"/>
    </table>
    <table type="object" name="ArrayManufacture">
        <comment>Represents MAGE Class ArrayManufacture</comment>
        <comment>Describes the process by which arrays are produced.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ArrayManufacture1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="ManufacturingDate" type="@varchar" length="255" required="false">
            <comment>MAGE attribute ArrayManufacture.manufacturingDate</comment>
            <comment>The date the arrays were manufactured</comment>
        </column>
        <column name="Tolerance" type="@real32" required="false">
            <comment>MAGE attribute ArrayManufacture.tolerance</comment>
            <comment>The allowable error of a feature printed to its intended position.</comment>
        </column>
        <primaryKey column="WID" name="PK_ArrayManufacture"/>
        <index name="ArrayManufacture1" columns="DataSetWID"/>
        <index name="ArrayManufacture2" columns="Identifier"/>
        <index name="ArrayManufacture3" columns="Name"/>
        <index name="ArrayManufacture4" columns="ManufacturingDate"/>
        <index name="ArrayManufacture5" columns="Tolerance"/>
    </table>
    <table type="object" name="ArrayManufactureDeviation">
        <comment>Represents MAGE Class ArrayManufactureDeviation</comment>
        <comment>Stores information of the potential difference between an array design and arrays that have been manufactured using that design (e.g. a tip failed to print several spots).</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ArrayManufactureDeviation1"/>
        </column>
        <column name="Array_" type="@wid" required="false">
            <comment>Represents 1..n association between Array and ArrayManufactureDeviation</comment>
            <comment>Association to classes to describe deviations from the ArrayDesign.</comment>
            <foreignKey toColumn="WID" toTable="Array_" name="FK_ArrayManufactureDeviation2"/>
        </column>
        <primaryKey column="WID" name="PK_ArrayManufactureDeviation"/>
        <index name="ArrayManufactureDeviation1" columns="DataSetWID"/>
        <index name="ArrayManufactureDeviation2" columns="Array_"/>
    </table>
    <table type="object" name="FeatureDefect">
        <comment>Represents MAGE Class FeatureDefect</comment>
        <comment>Stores the defect information for a feature.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_FeatureDefect1"/>
        </column>
        <column name="ArrayManufactureDeviation" type="@wid" required="false">
            <comment>Represents 1..n association between ArrayManufactureDeviation and FeatureDefect</comment>
            <comment>Description on features who are manufactured in a different location than specified in the ArrayDesign.</comment>
            <foreignKey toColumn="WID" toTable="ArrayManufactureDeviation" name="FK_FeatureDefect2"/>
        </column>
        <column name="FeatureDefect_DefectType" type="@wid" required="false">
            <comment>Represents 1..1 association between FeatureDefect and OntologyEntry</comment>
            <comment>Indicates the type of defect (e.g. a missing feature or a moved feature).</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_FeatureDefect3"/>
        </column>
        <column name="FeatureDefect_PositionDelta" type="@wid" required="false">
            <comment>Represents 1..1 association between FeatureDefect and PositionDelta</comment>
            <comment>How the feature deviates in position from the ArrayDesign.</comment>
            <foreignKey toColumn="WID" toTable="PositionDelta" name="FK_FeatureDefect4"/>
        </column>
        <column name="Feature" type="@wid" required="false">
            <comment>Represents n..1 association between FeatureDefect and Feature</comment>
            <comment>The feature that was manufactured defectively.</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_FeatureDefect5"/>
        </column>
        <primaryKey column="WID" name="PK_FeatureDefect"/>
        <index name="FeatureDefect1" columns="DataSetWID"/>
        <index name="FeatureDefect2" columns="ArrayManufactureDeviation"/>
        <index name="FeatureDefect3" columns="FeatureDefect_DefectType"/>
        <index name="FeatureDefect4" columns="FeatureDefect_PositionDelta"/>
        <index name="FeatureDefect5" columns="Feature"/>
    </table>
    <table type="object" name="Fiducial">
        <comment>Represents MAGE Class Fiducial</comment>
        <comment>A marking on the surface of the array that can be used to identify the array's origin, the coordinates of which are the fiducial's centroid.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Fiducial1"/>
        </column>
        <column name="ArrayGroup_Fiducials" type="@wid" required="false">
            <comment>Represents 1..n association between ArrayGroup and Fiducial</comment>
            <comment>Association to the marks on the Array for alignment for the scanner.</comment>
            <foreignKey toColumn="WID" toTable="ArrayGroup" name="FK_Fiducial3"/>
        </column>
        <column name="Fiducial_FiducialType" type="@wid" required="false">
            <comment>Represents 1..1 association between Fiducial and OntologyEntry</comment>
            <comment>A descriptive string that indicates the type of a fiducial (e.g. the chrome border on an Affymetrix array, a laser ablation mark).</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_Fiducial4"/>
        </column>
        <column name="Fiducial_DistanceUnit" type="@wid" required="false">
            <comment>Represents 1..1 association between Fiducial and DistanceUnit</comment>
            <comment>The units the fiducial is measured in.</comment>
            <foreignKey toColumn="WID" toTable="Unit" name="FK_Fiducial5"/>
        </column>
        <column name="Fiducial_Position" type="@wid" required="false">
            <comment>Represents 1..1 association between Fiducial and Position</comment>
            <comment>The position, relative to the upper left corner, of the fiducial</comment>
            <foreignKey toColumn="WID" toTable="Position_" name="FK_Fiducial6"/>
        </column>
        <primaryKey column="WID" name="PK_Fiducial"/>
        <index name="Fiducial1" columns="DataSetWID"/>
        <index name="Fiducial2" columns="ArrayGroup_Fiducials"/>
        <index name="Fiducial3" columns="Fiducial_FiducialType"/>
        <index name="Fiducial4" columns="Fiducial_DistanceUnit"/>
        <index name="Fiducial5" columns="Fiducial_Position"/>
    </table>
    <table type="object" name="ManufactureLIMS">
        <comment>Represents MAGE Class ManufactureLIMS</comment>
        <comment>Information on the physical production of arrays within the laboratory.</comment>
        <comment>Includes MAGE Class ManufactureLIMSBiomaterial</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ManufactureLIMS1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="ArrayManufacture_FeatureLIMSs" type="@wid" required="false">
            <comment>Represents 1..n association between ArrayManufacture and ManufactureLIMS</comment>
            <comment>Information on the manufacture of the features.</comment>
            <foreignKey toColumn="WID" toTable="ArrayManufacture" name="FK_ManufactureLIMS3"/>
        </column>
        <column name="Quality" type="@varchar" length="255" required="false">
            <comment>MAGE attribute ManufactureLIMS.quality</comment>
            <comment>A brief description of the quality of the array manufacture process.</comment>
        </column>
        <column name="Feature" type="@wid" required="false">
            <comment>Represents n..1 association between ManufactureLIMS and Feature</comment>
            <comment>The feature whose LIMS information is being described.</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_ManufactureLIMS4"/>
        </column>
        <column name="BioMaterial" type="@wid" required="false">
            <comment>Represents n..1 association between ManufactureLIMS and BioMaterial</comment>
            <comment>The BioMaterial used for the feature.</comment>
            <foreignKey toColumn="WID" toTable="BioSource" name="FK_ManufactureLIMS5"/>
        </column>
        <column name="ManufactureLIMS_IdentifierLIMS" type="@wid" required="false">
            <comment>Represents 1..1 association between ManufactureLIMS and DatabaseEntry</comment>
            <comment>Association to a LIMS data source for further information on the manufacturing process.</comment>
        </column>
        <column name="BioMaterialPlateIdentifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute ManufactureLIMSBiomaterial.bioMaterialPlateIdentifier</comment>
            <comment>The plate from which a biomaterial was obtained.</comment>
        </column>
        <column name="BioMaterialPlateRow" type="@varchar" length="255" required="false">
            <comment>MAGE attribute ManufactureLIMSBiomaterial.bioMaterialPlateRow</comment>
            <comment>The plate row from which a biomaterial was obtained.  Specified by a letter.</comment>
        </column>
        <column name="BioMaterialPlateCol" type="@varchar" length="255" required="false">
            <comment>MAGE attribute ManufactureLIMSBiomaterial.bioMaterialPlateCol</comment>
            <comment>The plate column from which a biomaterial was obtained.  Specified by a number.</comment>
        </column>
        <primaryKey column="WID" name="PK_ManufactureLIMS"/>
        <index name="ManufactureLIMS1" columns="DataSetWID"/>
        <index name="ManufactureLIMS2" columns="MAGEClass"/>
        <index name="ManufactureLIMS3" columns="ArrayManufacture_FeatureLIMSs"/>
        <index name="ManufactureLIMS4" columns="Quality"/>
        <index name="ManufactureLIMS5" columns="Feature"/>
        <index name="ManufactureLIMS6" columns="BioMaterial"/>
        <index name="ManufactureLIMS7" columns="ManufactureLIMS_IdentifierLIMS"/>
        <index name="ManufactureLIMS8" columns="BioMaterialPlateIdentifier"/>
        <index name="ManufactureLIMS9" columns="BioMaterialPlateRow"/>
        <index name="ManufactureLIMS10" columns="BioMaterialPlateCol"/>
    </table>
    <table type="object" name="PositionDelta">
        <comment>Represents MAGE Class PositionDelta</comment>
        <comment>The delta the feature was actually printed on the array from the position specified for the feature in the array design.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_PositionDelta1"/>
        </column>
        <column name="DeltaX" type="@real32" required="false">
            <comment>MAGE attribute PositionDelta.deltaX</comment>
            <comment>Deviation from the y coordinate of this feature's position.</comment>
        </column>
        <column name="DeltaY" type="@real32" required="false">
            <comment>MAGE attribute PositionDelta.deltaY</comment>
            <comment>Deviation from the y coordinate of this feature's position.</comment>
        </column>
        <column name="PositionDelta_DistanceUnit" type="@wid" required="false">
            <comment>Represents 1..1 association between PositionDelta and DistanceUnit</comment>
            <comment>The unit for the attributes.</comment>
            <foreignKey toColumn="WID" toTable="Unit" name="FK_PositionDelta2"/>
        </column>
        <primaryKey column="WID" name="PK_PositionDelta"/>
        <index name="PositionDelta1" columns="DataSetWID"/>
        <index name="PositionDelta2" columns="DeltaX"/>
        <index name="PositionDelta3" columns="DeltaY"/>
        <index name="PositionDelta4" columns="PositionDelta_DistanceUnit"/>
    </table>
    <table type="object" name="ZoneDefect">
        <comment>Represents MAGE Class ZoneDefect</comment>
        <comment>Stores the defect information for a zone.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ZoneDefect1"/>
        </column>
        <column name="ArrayManufactureDeviation" type="@wid" required="false">
            <comment>Represents 1..n association between ArrayManufactureDeviation and ZoneDefect</comment>
            <comment>Descriptions of how a Zone has been printed differently than specified in the ArrayDesign.</comment>
            <foreignKey toColumn="WID" toTable="ArrayManufactureDeviation" name="FK_ZoneDefect2"/>
        </column>
        <column name="ZoneDefect_DefectType" type="@wid" required="false">
            <comment>Represents 1..1 association between ZoneDefect and OntologyEntry</comment>
            <comment>Indicates the type of defect (e.g. a missing zone or a moved zone).</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_ZoneDefect3"/>
        </column>
        <column name="ZoneDefect_PositionDelta" type="@wid" required="false">
            <comment>Represents 1..1 association between ZoneDefect and PositionDelta</comment>
            <comment>How the zone deviates in position from the ArrayDesign.</comment>
            <foreignKey toColumn="WID" toTable="PositionDelta" name="FK_ZoneDefect4"/>
        </column>
        <column name="Zone" type="@wid" required="false">
            <comment>Represents n..1 association between ZoneDefect and Zone</comment>
            <comment>Reference to the Zone that was misprinted.</comment>
            <foreignKey toColumn="WID" toTable="Zone" name="FK_ZoneDefect5"/>
        </column>
        <primaryKey column="WID" name="PK_ZoneDefect"/>
        <index name="ZoneDefect1" columns="DataSetWID"/>
        <index name="ZoneDefect2" columns="ArrayManufactureDeviation"/>
        <index name="ZoneDefect3" columns="ZoneDefect_DefectType"/>
        <index name="ZoneDefect4" columns="ZoneDefect_PositionDelta"/>
        <index name="ZoneDefect5" columns="Zone"/>
    </table>
    <table type="object" name="SeqFeatureLocation">
        <comment>Represents MAGE Class SeqFeatureLocation</comment>
        <comment>The location of the SeqFeature annotation.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_SeqFeatureLocation1"/>
        </column>
        <column name="SeqFeature_Regions" type="@wid" required="false">
            <comment>Represents 1..n association between SeqFeature and SeqFeatureLocation</comment>
            <comment>Association to classes that describe the location with the sequence of the SeqFeature.</comment>
            <foreignKey toColumn="WID" toTable="Feature" name="FK_SeqFeatureLocation2"/>
        </column>
        <column name="StrandType" type="@varchar" length="255" required="false">
            <comment>MAGE attribute SeqFeatureLocation.strandType</comment>
            <comment>Indicates the direction and/or type of the SeqFeature, i.e. whether it is in the 5' or 3' direction, is double stranded, etc.</comment>
        </column>
        <column name="SeqFeatureLocation_Subregions" type="@wid" required="false">
            <comment>Represents 1..n association between SeqFeatureLocation and SeqFeatureLocation</comment>
            <comment>Regions within the SeqFeature.</comment>
            <foreignKey toColumn="WID" toTable="SeqFeatureLocation" name="FK_SeqFeatureLocation3"/>
        </column>
        <column name="SeqFeatureLocation_Coordinate" type="@wid" required="false">
            <comment>Represents 1..1 association between SeqFeatureLocation and SequencePosition</comment>
            <comment>At which base pairs or amino acid this SeqFeature begins and ends.</comment>
            <foreignKey toColumn="WID" toTable="SequencePosition" name="FK_SeqFeatureLocation4"/>
        </column>
        <primaryKey column="WID" name="PK_SeqFeatureLocation"/>
        <index name="SeqFeatureLocation1" columns="DataSetWID"/>
        <index name="SeqFeatureLocation2" columns="SeqFeature_Regions"/>
        <index name="SeqFeatureLocation3" columns="StrandType"/>
        <index name="SeqFeatureLocation4" columns="SeqFeatureLocation_Subregions"/>
        <index name="SeqFeatureLocation5" columns="SeqFeatureLocation_Coordinate"/>
    </table>
    <table type="object" name="SequencePosition">
        <comment>Represents MAGE Class SequencePosition</comment>
        <comment>Designates the position of the Feature in its BioSequence.</comment>
        <comment>Includes MAGE Class CompositePosition</comment>
        <comment>Includes MAGE Class ReporterPosition</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_SequencePosition1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Start_" type="@int16" required="false">
            <comment>MAGE attribute SequencePosition.start</comment>
            <comment>The location of the base, for nucleotides, that the SeqFeature starts.</comment>
        </column>
        <column name="End" type="@int16" required="false">
            <comment>MAGE attribute SequencePosition.end</comment>
            <comment>The location of the base, for nucleotides, that the SeqFeature ends.</comment>
        </column>
        <column name="CompositeCompositeMap" type="@wid" required="false">
            <comment>Represents 1..n association between CompositeCompositeMap and CompositePosition</comment>
            <comment>Association to the CompositeSequences that compose this CompositeSequence and where those CompositeSequences occur.</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_SequencePosition2"/>
        </column>
        <column name="Composite" type="@wid" required="false">
            <comment>Represents n..1 association between CompositePosition and CompositeSequence</comment>
            <comment>A source CompositeSequence that is part of a target CompositeSequence</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_SequencePosition3"/>
        </column>
        <column name="ReporterCompositeMap" type="@wid" required="false">
            <comment>Represents 1..n association between ReporterCompositeMap and ReporterPosition</comment>
            <comment>Association to the reporters that compose this CompositeSequence and where those reporters occur.</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_SequencePosition4"/>
        </column>
        <column name="Reporter" type="@wid" required="false">
            <comment>Represents n..1 association between ReporterPosition and Reporter</comment>
            <comment>A reporter that comprises part of a CompositeSequence.</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_SequencePosition5"/>
        </column>
        <primaryKey column="WID" name="PK_SequencePosition"/>
        <index name="SequencePosition1" columns="DataSetWID"/>
        <index name="SequencePosition2" columns="MAGEClass"/>
        <index name="SequencePosition3" columns="Start_"/>
        <index name="SequencePosition4" columns="End"/>
        <index name="SequencePosition5" columns="CompositeCompositeMap"/>
        <index name="SequencePosition6" columns="Composite"/>
        <index name="SequencePosition7" columns="ReporterCompositeMap"/>
        <index name="SequencePosition8" columns="Reporter"/>
    </table>
    <table type="object" name="DesignElement">
        <comment>Represents MAGE Class DesignElement</comment>
        <comment>An element of an array.  This is generally of type feature but can be specified as reporters or compositeSequence for arrays that are abstracted from a physical array.</comment>
        <comment>Includes MAGE Class CompositeSequence</comment>
        <comment>Includes MAGE Class Feature</comment>
        <comment>Includes MAGE Class Reporter</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_DesignElement1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="FeatureGroup_Features" type="@wid" required="false">
            <comment>Represents 1..n association between FeatureGroup and Feature</comment>
            <comment>The features that belong to this group.</comment>
            <foreignKey toColumn="WID" toTable="DesignElementGroup" name="FK_DesignElement3"/>
        </column>
        <column name="DesignElement_ControlType" type="@wid" required="false">
            <comment>Represents 1..1 association between DesignElement and OntologyEntry</comment>
            <comment>If the design element represents a control, the type of control it is (normalization, deletion, negative, positive, etc.)</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_DesignElement4"/>
        </column>
        <column name="Feature_Position" type="@wid" required="false">
            <comment>Represents 1..1 association between Feature and Position</comment>
            <comment>The position of the feature on the array, relative to the top, left corner.</comment>
            <foreignKey toColumn="WID" toTable="Position_" name="FK_DesignElement5"/>
        </column>
        <column name="Zone" type="@wid" required="false">
            <comment>Represents n..1 association between Feature and Zone</comment>
            <comment>A reference to the zone this feature is in.</comment>
            <foreignKey toColumn="WID" toTable="Zone" name="FK_DesignElement6"/>
        </column>
        <column name="Feature_FeatureLocation" type="@wid" required="false">
            <comment>Represents 1..1 association between Feature and FeatureLocation</comment>
            <comment>Location of this feature relative to a grid.</comment>
            <foreignKey toColumn="WID" toTable="FeatureLocation" name="FK_DesignElement7"/>
        </column>
        <column name="FeatureGroup" type="@wid" required="false">
            <comment>Represents n..1 association between Feature and FeatureGroup</comment>
            <comment>The features that belong to this group.</comment>
            <foreignKey toColumn="WID" toTable="DesignElementGroup" name="FK_DesignElement8"/>
        </column>
        <column name="Reporter_WarningType" type="@wid" required="false">
            <comment>Represents 1..1 association between Reporter and OntologyEntry</comment>
            <comment>Similar to failType but indicates a warning rather than a failure.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_DesignElement9"/>
        </column>
        <primaryKey column="WID" name="PK_DesignElement"/>
        <index name="DesignElement1" columns="DataSetWID"/>
        <index name="DesignElement2" columns="MAGEClass"/>
        <index name="DesignElement3" columns="Identifier"/>
        <index name="DesignElement4" columns="Name"/>
        <index name="DesignElement5" columns="FeatureGroup_Features"/>
        <index name="DesignElement6" columns="DesignElement_ControlType"/>
        <index name="DesignElement7" columns="Feature_Position"/>
        <index name="DesignElement8" columns="Zone"/>
        <index name="DesignElement9" columns="Feature_FeatureLocation"/>
        <index name="DesignElement10" columns="FeatureGroup"/>
        <index name="DesignElement11" columns="Reporter_WarningType"/>
    </table>
    <table type="object" name="FeatureInformation">
        <comment>Represents MAGE Class FeatureInformation</comment>
        <comment>As part of the map information, allows the association of one or more differences in the BioMaterial on a feature from the BioMaterial of the Reporter.  Useful for control purposes such as in Affymetrix probe pairs.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_FeatureInformation1"/>
        </column>
        <column name="Feature" type="@wid" required="false">
            <comment>Represents n..1 association between FeatureInformation and Feature</comment>
            <comment>The feature the FeatureInformation is supplying information for.</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_FeatureInformation2"/>
        </column>
        <column name="FeatureReporterMap" type="@wid" required="false">
            <comment>Represents 1..n association between FeatureReporterMap and FeatureInformation</comment>
            <comment>Typically, the features on an array that are manufactured with this reporter's BioSequence.</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_FeatureInformation3"/>
        </column>
        <primaryKey column="WID" name="PK_FeatureInformation"/>
        <index name="FeatureInformation1" columns="DataSetWID"/>
        <index name="FeatureInformation2" columns="Feature"/>
        <index name="FeatureInformation3" columns="FeatureReporterMap"/>
    </table>
    <table type="object" name="FeatureLocation">
        <comment>Represents MAGE Class FeatureLocation</comment>
        <comment>Specifies where a feature is located relative to a grid.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_FeatureLocation1"/>
        </column>
        <column name="Row_" type="@int16" required="false">
            <comment>MAGE attribute FeatureLocation.row</comment>
            <comment>row position in the Zone</comment>
        </column>
        <column name="Column_" type="@int16" required="false">
            <comment>MAGE attribute FeatureLocation.column</comment>
            <comment>column position in the Zone.</comment>
        </column>
        <primaryKey column="WID" name="PK_FeatureLocation"/>
        <index name="FeatureLocation1" columns="DataSetWID"/>
        <index name="FeatureLocation2" columns="Row_"/>
        <index name="FeatureLocation3" columns="Column_"/>
    </table>
    <table type="object" name="MismatchInformation">
        <comment>Represents MAGE Class MismatchInformation</comment>
        <comment>Describes how a reporter varies from its ReporterCharacteristics sequence(s) or how a Feature varies from its Reporter sequence.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_MismatchInformation1"/>
        </column>
        <column name="CompositePosition" type="@wid" required="false">
            <comment>Represents 1..n association between CompositePosition and MismatchInformation</comment>
            <comment>Differences in how the contained compositeSequence matches its target compositeSequence's sequence.</comment>
            <foreignKey toColumn="WID" toTable="SequencePosition" name="FK_MismatchInformation2"/>
        </column>
        <column name="FeatureInformation" type="@wid" required="false">
            <comment>Represents 1..n association between FeatureInformation and MismatchInformation</comment>
            <comment>Differences in how the feature matches the reporter's sequence, typical examples is the Affymetrix probe pair where one of the features is printed with a mismatch to the other feature's perfect match.</comment>
            <foreignKey toColumn="WID" toTable="FeatureInformation" name="FK_MismatchInformation3"/>
        </column>
        <column name="StartCoord" type="@int16" required="false">
            <comment>MAGE attribute MismatchInformation.startCoord</comment>
            <comment>Offset into the sequence that the mismatch occurs.</comment>
        </column>
        <column name="NewSequence" type="@varchar" length="255" required="false">
            <comment>MAGE attribute MismatchInformation.newSequence</comment>
            <comment>The sequence that replaces the specified sequence starting at start_coord.</comment>
        </column>
        <column name="ReplacedLength" type="@int16" required="false">
            <comment>MAGE attribute MismatchInformation.replacedLength</comment>
            <comment>Length of the original sequence that is replaced.  A deletion is specified when the length of the newSequence is less than the replacedLength.</comment>
        </column>
        <column name="ReporterPosition" type="@wid" required="false">
            <comment>Represents 1..n association between ReporterPosition and MismatchInformation</comment>
            <comment>Differences in how the reporter matches its compositeSequence's sequence.</comment>
            <foreignKey toColumn="WID" toTable="SequencePosition" name="FK_MismatchInformation4"/>
        </column>
        <primaryKey column="WID" name="PK_MismatchInformation"/>
        <index name="MismatchInformation1" columns="DataSetWID"/>
        <index name="MismatchInformation2" columns="CompositePosition"/>
        <index name="MismatchInformation3" columns="FeatureInformation"/>
        <index name="MismatchInformation4" columns="StartCoord"/>
        <index name="MismatchInformation5" columns="NewSequence"/>
        <index name="MismatchInformation6" columns="ReplacedLength"/>
        <index name="MismatchInformation7" columns="ReporterPosition"/>
    </table>
    <table type="object" name="Position_">
        <comment>Represents MAGE Class Position</comment>
        <comment>Specifies a position on an array.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Position_1"/>
        </column>
        <column name="X" type="@real32" required="false">
            <comment>MAGE attribute Position.x</comment>
            <comment>The horizontal distance from the upper left corner of the array.</comment>
        </column>
        <column name="Y" type="@real32" required="false">
            <comment>MAGE attribute Position.y</comment>
            <comment>The vertical distance from the upper left corner of the array.</comment>
        </column>
        <column name="Position_DistanceUnit" type="@wid" required="false">
            <comment>Represents 1..1 association between Position and DistanceUnit</comment>
            <comment>The units of the x, y positions.</comment>
            <foreignKey toColumn="WID" toTable="Unit" name="FK_Position_2"/>
        </column>
        <primaryKey column="WID" name="PK_Position_"/>
        <index name="Position_1" columns="DataSetWID"/>
        <index name="Position_2" columns="X"/>
        <index name="Position_3" columns="Y"/>
        <index name="Position_4" columns="Position_DistanceUnit"/>
    </table>
    <table type="object" name="BioEvent">
        <comment>Represents MAGE Class BioEvent</comment>
        <comment>An abstract class to capture the concept of an event (either in the laboratory or a computational analysis).</comment>
        <comment>Includes MAGE Class CompositeCompositeMap</comment>
        <comment>Includes MAGE Class FeatureReporterMap</comment>
        <comment>Includes MAGE Class ReporterCompositeMap</comment>
        <comment>Includes MAGE Class Map</comment>
        <comment>Includes MAGE Class BioAssayMap</comment>
        <comment>Includes MAGE Class DesignElementMap</comment>
        <comment>Includes MAGE Class QuantitationTypeMap</comment>
        <comment>Includes MAGE Class Transformation</comment>
        <comment>Includes MAGE Class Treatment</comment>
        <comment>Includes MAGE Class BioAssayCreation</comment>
        <comment>Includes MAGE Class BioAssayTreatment</comment>
        <comment>Includes MAGE Class FeatureExtraction</comment>
        <comment>Includes MAGE Class Hybridization</comment>
        <comment>Includes MAGE Class ImageAcquisition</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_BioEvent1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="CompositeSequence" type="@wid" required="false">
            <comment>Represents n..1 association between CompositeCompositeMap and CompositeSequence</comment>
            <comment>A map to the compositeSequences that compose this CompositeSequence.</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_BioEvent3"/>
        </column>
        <column name="Reporter" type="@wid" required="false">
            <comment>Represents n..1 association between FeatureReporterMap and Reporter</comment>
            <comment>Associates features with their reporter.</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_BioEvent4"/>
        </column>
        <column name="CompositeSequence2" type="@wid" required="false">
            <comment>Represents n..1 association between ReporterCompositeMap and CompositeSequence</comment>
            <comment>A map to the reporters that compose this CompositeSequence.</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_BioEvent5"/>
        </column>
        <column name="BioAssayMapTarget" type="@wid" required="false">
            <comment>Represents n..1 association between BioAssayMap and DerivedBioAssay</comment>
            <comment>The DerivedBioAssay that is produced by the sources of the BioAssayMap.</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioEvent6"/>
        </column>
        <column name="TargetQuantitationType" type="@wid" required="false">
            <comment>Represents n..1 association between QuantitationTypeMap and QuantitationType</comment>
            <comment>The QuantitationType whose value will be produced from the values of the source QuantitationType according to the Protocol.</comment>
            <foreignKey toColumn="WID" toTable="QuantitationType" name="FK_BioEvent7"/>
        </column>
        <column name="DerivedBioAssayDataTarget" type="@wid" required="false">
            <comment>Represents n..1 association between Transformation and DerivedBioAssayData</comment>
            <comment>The association between the DerivedBioAssayData and the Transformation event that produced it.</comment>
            <foreignKey toColumn="WID" toTable="BioAssayData" name="FK_BioEvent8"/>
        </column>
        <column name="QuantitationTypeMapping" type="@wid" required="false">
            <comment>Represents 1..1 association between Transformation and QuantitationTypeMapping</comment>
            <comment>The collection of mappings for the QuantitationTypes.</comment>
            <foreignKey toColumn="WID" toTable="QuantitationTypeMapping" name="FK_BioEvent9"/>
        </column>
        <column name="DesignElementMapping" type="@wid" required="false">
            <comment>Represents 1..1 association between Transformation and DesignElementMapping</comment>
            <comment>The collection of mappings for the DesignElements.</comment>
            <foreignKey toColumn="WID" toTable="DesignElementMapping" name="FK_BioEvent10"/>
        </column>
        <column name="Transformation_BioAssayMapping" type="@wid" required="false">
            <comment>Represents 1..1 association between Transformation and BioAssayMapping</comment>
            <comment>The collection of mappings for the BioAssays.</comment>
            <foreignKey toColumn="WID" toTable="BioAssayMapping" name="FK_BioEvent11"/>
        </column>
        <column name="BioMaterial_Treatments" type="@wid" required="false">
            <comment>Represents 1..n association between BioMaterial and Treatment</comment>
            <comment>This association is one way from BioMaterial to Treatment.  From this a BioMaterial can discover the amount and type of BioMaterial that was part of the treatment that produced it.</comment>
            <foreignKey toColumn="WID" toTable="BioSource" name="FK_BioEvent12"/>
        </column>
        <column name="Order_" type="@int16" required="false">
            <comment>MAGE attribute Treatment.order</comment>
            <comment>The chronological order in which a treatment occurred (in relation to other treatments).  More than one treatment can have the same chronological order indicating that they happened (or were caused to happen) simultaneously.</comment>
        </column>
        <column name="Treatment_Action" type="@wid" required="false">
            <comment>Represents 1..1 association between Treatment and OntologyEntry</comment>
            <comment>The event that occurred (e.g. grow, wait, add, etc...).  The actions should be a recommended vocabulary</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_BioEvent13"/>
        </column>
        <column name="Treatment_ActionMeasurement" type="@wid" required="false">
            <comment>Represents 1..1 association between Treatment and Measurement</comment>
            <comment>Measures events like duration, centrifuge speed, etc.</comment>
            <foreignKey toColumn="WID" toTable="Measurement" name="FK_BioEvent14"/>
        </column>
        <column name="Array_" type="@wid" required="false">
            <comment>Represents n..1 association between BioAssayCreation and Array</comment>
            <comment>The array used in the BioAssayCreation event.</comment>
            <foreignKey toColumn="WID" toTable="Array_" name="FK_BioEvent15"/>
        </column>
        <column name="PhysicalBioAssayTarget" type="@wid" required="false">
            <comment>Represents n..1 association between BioAssayCreation and PhysicalBioAssay</comment>
            <comment>The association between the BioAssayCreation event (typically Hybridization) and the PhysicalBioAssay and its annotation of this event.</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioEvent16"/>
        </column>
        <column name="PhysicalBioAssay" type="@wid" required="false">
            <comment>Represents n..1 association between BioAssayTreatment and PhysicalBioAssay</comment>
            <comment>The set of treatments undergone by this PhysicalBioAssay.</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioEvent17"/>
        </column>
        <column name="Target" type="@wid" required="false">
            <comment>Represents n..1 association between BioAssayTreatment and PhysicalBioAssay</comment>
            <comment>The PhysicalBioAssay that was treated.</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioEvent18"/>
        </column>
        <column name="PhysicalBioAssaySource" type="@wid" required="false">
            <comment>Represents n..1 association between FeatureExtraction and PhysicalBioAssay</comment>
            <comment>The PhysicalBioAssay used in the FeatureExtraction event.</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioEvent19"/>
        </column>
        <column name="MeasuredBioAssayTarget" type="@wid" required="false">
            <comment>Represents n..1 association between FeatureExtraction and MeasuredBioAssay</comment>
            <comment>The association between the MeasuredBioAssay and the FeatureExtraction Event.</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioEvent20"/>
        </column>
        <column name="PhysicalBioAssay2" type="@wid" required="false">
            <comment>Represents 1..n association between PhysicalBioAssay and BioAssayTreatment</comment>
            <comment>The set of treatments undergone by this PhysicalBioAssay.</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioEvent21"/>
        </column>
        <primaryKey column="WID" name="PK_BioEvent"/>
        <index name="BioEvent1" columns="DataSetWID"/>
        <index name="BioEvent2" columns="MAGEClass"/>
        <index name="BioEvent3" columns="Identifier"/>
        <index name="BioEvent4" columns="Name"/>
        <index name="BioEvent5" columns="CompositeSequence"/>
        <index name="BioEvent6" columns="Reporter"/>
        <index name="BioEvent7" columns="CompositeSequence2"/>
        <index name="BioEvent8" columns="BioAssayMapTarget"/>
        <index name="BioEvent9" columns="TargetQuantitationType"/>
        <index name="BioEvent10" columns="DerivedBioAssayDataTarget"/>
        <index name="BioEvent11" columns="QuantitationTypeMapping"/>
        <index name="BioEvent12" columns="DesignElementMapping"/>
        <index name="BioEvent13" columns="Transformation_BioAssayMapping"/>
        <index name="BioEvent14" columns="BioMaterial_Treatments"/>
        <index name="BioEvent15" columns="Order_"/>
        <index name="BioEvent16" columns="Treatment_Action"/>
        <index name="BioEvent17" columns="Treatment_ActionMeasurement"/>
        <index name="BioEvent18" columns="Array_"/>
        <index name="BioEvent19" columns="PhysicalBioAssayTarget"/>
        <index name="BioEvent20" columns="PhysicalBioAssay"/>
        <index name="BioEvent21" columns="Target"/>
        <index name="BioEvent22" columns="PhysicalBioAssaySource"/>
        <index name="BioEvent23" columns="MeasuredBioAssayTarget"/>
        <index name="BioEvent24" columns="PhysicalBioAssay2"/>
    </table>
    <table type="object" name="BioAssayData">
        <comment>Represents MAGE Class BioAssayData</comment>
        <comment>Represents the dataset created when the BioAssays are created.  BioAssayData is the entry point to the values.  Because the actual values are represented by a different object, BioDataValues, which can be memory intensive, the annotation of the transformation can be gotten separate from the data.</comment>
        <comment>Includes MAGE Class DerivedBioAssayData</comment>
        <comment>Includes MAGE Class MeasuredBioAssayData</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_BioAssayData1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="BioAssayDimension" type="@wid" required="false">
            <comment>Represents n..1 association between BioAssayData and BioAssayDimension</comment>
            <comment>The BioAssays of the BioAssayData.</comment>
            <foreignKey toColumn="WID" toTable="BioAssayDimension" name="FK_BioAssayData3"/>
        </column>
        <column name="DesignElementDimension" type="@wid" required="false">
            <comment>Represents n..1 association between BioAssayData and DesignElementDimension</comment>
            <comment>The DesignElements of the BioAssayData.</comment>
            <foreignKey toColumn="WID" toTable="DesignElementDimension" name="FK_BioAssayData4"/>
        </column>
        <column name="QuantitationTypeDimension" type="@wid" required="false">
            <comment>Represents n..1 association between BioAssayData and QuantitationTypeDimension</comment>
            <comment>The QuantitationTypes of the BioAssayData.</comment>
            <foreignKey toColumn="WID" toTable="QuantitationTypeDimension" name="FK_BioAssayData5"/>
        </column>
        <column name="BioAssayData_BioDataValues" type="@wid" required="false">
            <comment>Represents 1..1 association between BioAssayData and BioDataValues</comment>
            <comment>The data values of the BioAssayData.</comment>
            <foreignKey toColumn="WID" toTable="BioDataValues" name="FK_BioAssayData6"/>
        </column>
        <column name="ProducerTransformation" type="@wid" required="false">
            <comment>Represents 1..1 association between DerivedBioAssayData and Transformation</comment>
            <comment>The association between the DerivedBioAssayData and the Transformation event that produced it.</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_BioAssayData7"/>
        </column>
        <primaryKey column="WID" name="PK_BioAssayData"/>
        <index name="BioAssayData1" columns="DataSetWID"/>
        <index name="BioAssayData2" columns="MAGEClass"/>
        <index name="BioAssayData3" columns="Identifier"/>
        <index name="BioAssayData4" columns="Name"/>
        <index name="BioAssayData5" columns="BioAssayDimension"/>
        <index name="BioAssayData6" columns="DesignElementDimension"/>
        <index name="BioAssayData7" columns="QuantitationTypeDimension"/>
        <index name="BioAssayData8" columns="BioAssayData_BioDataValues"/>
        <index name="BioAssayData9" columns="ProducerTransformation"/>
    </table>
    <table type="object" name="BioAssayDimension">
        <comment>Represents MAGE Class BioAssayDimension</comment>
        <comment>An ordered list of bioAssays.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_BioAssayDimension1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <primaryKey column="WID" name="PK_BioAssayDimension"/>
        <index name="BioAssayDimension1" columns="DataSetWID"/>
        <index name="BioAssayDimension2" columns="Identifier"/>
        <index name="BioAssayDimension3" columns="Name"/>
    </table>
    <table type="object" name="BioAssayMapping">
        <comment>Represents MAGE Class BioAssayMapping</comment>
        <comment>Container of the mappings of the input BioAssay dimensions to the output BioAssay dimension.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_BioAssayMapping1"/>
        </column>
        <primaryKey column="WID" name="PK_BioAssayMapping"/>
        <index name="BioAssayMapping1" columns="DataSetWID"/>
    </table>
    <table type="object" name="BioAssayTuple">
        <comment>Represents MAGE Class BioAssayTuple</comment>
        <comment>Transformed container to specify a BioAssay and the Design Elements and their data for that BioAssay.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_BioAssayTuple1"/>
        </column>
        <column name="BioAssay" type="@wid" required="false">
            <comment>Represents n..1 association between BioAssayTuple and BioAssay</comment>
            <comment>The BioAssay associated with the value of the BioAssayDatum.</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioAssayTuple2"/>
        </column>
        <column name="BioDataTuples_BioAssayTuples" type="@wid" required="false">
            <comment>Represents 1..n association between BioDataTuples and BioAssayTuple</comment>
            <comment>Each BioAssayTuple contains the the Data for a BioAssay.</comment>
            <foreignKey toColumn="WID" toTable="BioDataValues" name="FK_BioAssayTuple3"/>
        </column>
        <primaryKey column="WID" name="PK_BioAssayTuple"/>
        <index name="BioAssayTuple1" columns="DataSetWID"/>
        <index name="BioAssayTuple2" columns="BioAssay"/>
        <index name="BioAssayTuple3" columns="BioDataTuples_BioAssayTuples"/>
    </table>
    <table type="object" name="BioDataValues">
        <comment>Represents MAGE Class BioDataValues</comment>
        <comment>The actual values for the BioAssayCube.</comment>
        <comment>Includes MAGE Class BioDataCube</comment>
        <comment>Includes MAGE Class BioDataTuples</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_BioDataValues1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Order_" type="@varchar" length="25" required="false">
            <comment>MAGE attribute BioDataCube.order</comment>
            <comment>The order to expect the dimension.  The enumeration uses the first letter of the three dimensions to represent the six possible orderings.</comment>
        </column>
        <column name="BioDataCube_DataInternal" type="@wid" required="false">
            <comment>Represents 1..1 association between BioDataCube and DataInternal</comment>
            <comment>Transformed class to associate white spaced delimited data to the BioAssayDataCube</comment>
            <foreignKey toColumn="WID" toTable="DataInternal" name="FK_BioDataValues2"/>
        </column>
        <column name="BioDataCube_DataExternal" type="@wid" required="false">
            <comment>Represents 1..1 association between BioDataCube and DataExternal</comment>
            <comment>Transformed class to associate external data to the BioAssayDataCube</comment>
            <foreignKey toColumn="WID" toTable="DataExternal" name="FK_BioDataValues3"/>
        </column>
        <primaryKey column="WID" name="PK_BioDataValues"/>
        <index name="BioDataValues1" columns="DataSetWID"/>
        <index name="BioDataValues2" columns="MAGEClass"/>
        <index name="BioDataValues3" columns="Order_"/>
        <index name="BioDataValues4" columns="BioDataCube_DataInternal"/>
        <index name="BioDataValues5" columns="BioDataCube_DataExternal"/>
    </table>
    <table type="object" name="DataExternal">
        <comment>Represents MAGE Class DataExternal</comment>
        <comment>Transformed class to associate external data to the BioAssayDataCube</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_DataExternal1"/>
        </column>
        <column name="DataFormat" type="@varchar" length="255" required="false">
            <comment>MAGE attribute DataExternal.dataFormat</comment>
            <comment>The format of the external file, whitespace delimited, tab delimited, netcdf, etc...</comment>
        </column>
        <column name="DataFormatInfoURI" type="@varchar" length="255" required="false">
            <comment>MAGE attribute DataExternal.dataFormatInfoURI</comment>
            <comment>Location for documentation on the data format</comment>
        </column>
        <column name="FilenameURI" type="@varchar" length="255" required="false">
            <comment>MAGE attribute DataExternal.filenameURI</comment>
            <comment>The name and location of the file containing the external data</comment>
        </column>
        <primaryKey column="WID" name="PK_DataExternal"/>
        <index name="DataExternal1" columns="DataSetWID"/>
        <index name="DataExternal2" columns="DataFormat"/>
        <index name="DataExternal3" columns="DataFormatInfoURI"/>
        <index name="DataExternal4" columns="FilenameURI"/>
    </table>
    <table type="object" name="DataInternal">
        <comment>Represents MAGE Class DataInternal</comment>
        <comment>Transformed class to associate whitespaced delimited data to the BioAssayDataCube</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_DataInternal1"/>
        </column>
        <primaryKey column="WID" name="PK_DataInternal"/>
        <index name="DataInternal1" columns="DataSetWID"/>
    </table>
    <table type="object" name="Datum">
        <comment>Represents MAGE Class Datum</comment>
        <comment>Transformed container to hold a value.  QuantitationType will determine the type of this value.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Datum1"/>
        </column>
        <column name="Value" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Datum.value</comment>
            <comment>Value for the BioAssay, DesignElement and QuantitationType specified by the parent tuple elements.</comment>
        </column>
        <primaryKey column="WID" name="PK_Datum"/>
        <index name="Datum1" columns="DataSetWID"/>
        <index name="Datum2" columns="Value"/>
    </table>
    <table type="object" name="DesignElementDimension">
        <comment>Represents MAGE Class DesignElementDimension</comment>
        <comment>An ordered list of designElements. It will be realized as one of its three subclasses.</comment>
        <comment>Includes MAGE Class CompositeSequenceDimension</comment>
        <comment>Includes MAGE Class FeatureDimension</comment>
        <comment>Includes MAGE Class ReporterDimension</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_DesignElementDimension1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <primaryKey column="WID" name="PK_DesignElementDimension"/>
        <index name="DesignElementDimension1" columns="DataSetWID"/>
        <index name="DesignElementDimension2" columns="MAGEClass"/>
        <index name="DesignElementDimension3" columns="Identifier"/>
        <index name="DesignElementDimension4" columns="Name"/>
    </table>
    <table type="object" name="DesignElementMapping">
        <comment>Represents MAGE Class DesignElementMapping</comment>
        <comment>Container of the mappings of the input DesignElement dimensions to the output DesignElement dimension.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_DesignElementMapping1"/>
        </column>
        <primaryKey column="WID" name="PK_DesignElementMapping"/>
        <index name="DesignElementMapping1" columns="DataSetWID"/>
    </table>
    <table type="object" name="DesignElementTuple">
        <comment>Represents MAGE Class DesignElementTuple</comment>
        <comment>Transformed container to specify a DesignElement and QuantitationTypes for that Element.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_DesignElementTuple1"/>
        </column>
        <column name="BioAssayTuple" type="@wid" required="false">
            <comment>Represents 1..n association between BioAssayTuple and DesignElementTuple</comment>
            <comment>DesignElement with the QuantitationTypes and their values for this BioAssay</comment>
            <foreignKey toColumn="WID" toTable="BioAssayTuple" name="FK_DesignElementTuple2"/>
        </column>
        <column name="DesignElement" type="@wid" required="false">
            <comment>Represents n..1 association between DesignElementTuple and DesignElement</comment>
            <comment>The DesignElement associated with the value of the BioAssayDatum.</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_DesignElementTuple3"/>
        </column>
        <primaryKey column="WID" name="PK_DesignElementTuple"/>
        <index name="DesignElementTuple1" columns="DataSetWID"/>
        <index name="DesignElementTuple2" columns="BioAssayTuple"/>
        <index name="DesignElementTuple3" columns="DesignElement"/>
    </table>
    <table type="object" name="QuantitationTypeDimension">
        <comment>Represents MAGE Class QuantitationTypeDimension</comment>
        <comment>An ordered list of quantitationTypes.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_QuantitationTypeDimension1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <primaryKey column="WID" name="PK_QuantitationTypeDimension"/>
        <index name="QuantitationTypeDimension1" columns="DataSetWID"/>
        <index name="QuantitationTypeDimension2" columns="Identifier"/>
        <index name="QuantitationTypeDimension3" columns="Name"/>
    </table>
    <table type="object" name="QuantitationTypeMapping">
        <comment>Represents MAGE Class QuantitationTypeMapping</comment>
        <comment>Container of the mappings of the input QuantitationType dimensions to the output QuantitationType dimension.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_QuantitationTypeMapping1"/>
        </column>
        <primaryKey column="WID" name="PK_QuantitationTypeMapping"/>
        <index name="QuantitationTypeMapping1" columns="DataSetWID"/>
    </table>
    <table type="object" name="QuantitationTypeTuple">
        <comment>Represents MAGE Class QuantitationTypeTuple</comment>
        <comment>Transformed container to specify a Quantitation Type and the value for that Type.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_QuantitationTypeTuple1"/>
        </column>
        <column name="DesignElementTuple" type="@wid" required="false">
            <comment>Represents 1..n association between DesignElementTuple and QuantitationTypeTuple</comment>
            <comment>A QuantitationType and the value associated with it</comment>
            <foreignKey toColumn="WID" toTable="DesignElementTuple" name="FK_QuantitationTypeTuple2"/>
        </column>
        <column name="QuantitationType" type="@wid" required="false">
            <comment>Represents n..1 association between QuantitationTypeTuple and QuantitationType</comment>
            <comment>The QuantitationType associated with the value of the BioAssayDatum.</comment>
            <foreignKey toColumn="WID" toTable="QuantitationType" name="FK_QuantitationTypeTuple3"/>
        </column>
        <column name="QuantitationTypeTuple_Datum" type="@wid" required="false">
            <comment>Represents 1..1 association between QuantitationTypeTuple and Datum</comment>
            <comment>The value to associate with the Quantitation Type.</comment>
            <foreignKey toColumn="WID" toTable="Datum" name="FK_QuantitationTypeTuple4"/>
        </column>
        <primaryKey column="WID" name="PK_QuantitationTypeTuple"/>
        <index name="QuantitationTypeTuple1" columns="DataSetWID"/>
        <index name="QuantitationTypeTuple2" columns="DesignElementTuple"/>
        <index name="QuantitationTypeTuple3" columns="QuantitationType"/>
        <index name="QuantitationTypeTuple4" columns="QuantitationTypeTuple_Datum"/>
    </table>
    <table type="object" name="BioMaterialMeasurement">
        <comment>Represents MAGE Class BioMaterialMeasurement</comment>
        <comment>A BioMaterialMeasurement is a pairing of a source BioMaterial and an amount (Measurement) of that BioMaterial.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_BioMaterialMeasurement1"/>
        </column>
        <column name="BioMaterial" type="@wid" required="false">
            <comment>Represents n..1 association between BioMaterialMeasurement and BioMaterial</comment>
            <comment>A source BioMaterial for a treatment.</comment>
            <foreignKey toColumn="WID" toTable="BioSource" name="FK_BioMaterialMeasurement2"/>
        </column>
        <column name="Measurement" type="@wid" required="false">
            <comment>Represents 1..1 association between BioMaterialMeasurement and Measurement</comment>
            <comment>The amount of the BioMaterial.</comment>
            <foreignKey toColumn="WID" toTable="Measurement" name="FK_BioMaterialMeasurement3"/>
        </column>
        <column name="Treatment" type="@wid" required="false">
            <comment>Represents 1..n association between Treatment and BioMaterialMeasurement</comment>
            <comment>The BioMaterials and the amounts used in the treatment</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_BioMaterialMeasurement4"/>
        </column>
        <column name="BioAssayCreation" type="@wid" required="false">
            <comment>Represents 1..n association between BioAssayCreation and BioMaterialMeasurement</comment>
            <comment>The BioSample and its amount used in the BioAssayCreation event.</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_BioMaterialMeasurement5"/>
        </column>
        <primaryKey column="WID" name="PK_BioMaterialMeasurement"/>
        <index name="BioMaterialMeasurement1" columns="DataSetWID"/>
        <index name="BioMaterialMeasurement2" columns="BioMaterial"/>
        <index name="BioMaterialMeasurement3" columns="Measurement"/>
        <index name="BioMaterialMeasurement4" columns="Treatment"/>
        <index name="BioMaterialMeasurement5" columns="BioAssayCreation"/>
    </table>
    <table type="object" name="CompoundMeasurement">
        <comment>Represents MAGE Class CompoundMeasurement</comment>
        <comment>A CompoundMeasurement is a pairing of a source Compound and an amount (Measurement) of that Compound.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_CompoundMeasurement1"/>
        </column>
        <column name="Compound_ComponentCompounds" type="@wid" required="false">
            <comment>Represents 1..n association between Compound and CompoundMeasurement</comment>
            <comment>The Compounds and their amounts used to create this Compound.</comment>
            <foreignKey toColumn="WID" toTable="Chemical" name="FK_CompoundMeasurement2"/>
        </column>
        <column name="Compound" type="@wid" required="false">
            <comment>Represents n..1 association between CompoundMeasurement and Compound</comment>
            <comment>A Compound to be used to create another Compound.</comment>
            <foreignKey toColumn="WID" toTable="Chemical" name="FK_CompoundMeasurement3"/>
        </column>
        <column name="Measurement" type="@wid" required="false">
            <comment>Represents 1..1 association between CompoundMeasurement and Measurement</comment>
            <comment>The amount of the Compound.</comment>
            <foreignKey toColumn="WID" toTable="Measurement" name="FK_CompoundMeasurement4"/>
        </column>
        <column name="Treatment_CompoundMeasurements" type="@wid" required="false">
            <comment>Represents 1..n association between Treatment and CompoundMeasurement</comment>
            <comment>The compounds and their amounts used in the treatment.</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_CompoundMeasurement5"/>
        </column>
        <primaryKey column="WID" name="PK_CompoundMeasurement"/>
        <index name="CompoundMeasurement1" columns="DataSetWID"/>
        <index name="CompoundMeasurement2" columns="Compound_ComponentCompounds"/>
        <index name="CompoundMeasurement3" columns="Compound"/>
        <index name="CompoundMeasurement4" columns="Measurement"/>
        <index name="CompoundMeasurement5" columns="Treatment_CompoundMeasurements"/>
    </table>
    <table type="object" name="BioAssay">
        <comment>Represents MAGE Class BioAssay</comment>
        <comment>An abstract class which represents both physical and computational groupings of arrays and biomaterials.</comment>
        <comment>Includes MAGE Class DerivedBioAssay</comment>
        <comment>Includes MAGE Class MeasuredBioAssay</comment>
        <comment>Includes MAGE Class PhysicalBioAssay</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_BioAssay1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="DerivedBioAssay_Type" type="@wid" required="false">
            <comment>Represents 1..1 association between DerivedBioAssay and OntologyEntry</comment>
            <comment>The derivation type, for instance collapsed spot replicate, ratio, averaged intensity, bioassay replicates, etc.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_BioAssay3"/>
        </column>
        <column name="FeatureExtraction" type="@wid" required="false">
            <comment>Represents 1..1 association between MeasuredBioAssay and FeatureExtraction</comment>
            <comment>The association between the MeasuredBioAssay and the FeatureExtraction Event.</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_BioAssay4"/>
        </column>
        <column name="BioAssayCreation" type="@wid" required="false">
            <comment>Represents 1..1 association between PhysicalBioAssay and BioAssayCreation</comment>
            <comment>The association between the BioAssayCreation event (typically Hybridization) and the PhysicalBioAssay and its annotation of this event.</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_BioAssay5"/>
        </column>
        <primaryKey column="WID" name="PK_BioAssay"/>
        <index name="BioAssay1" columns="DataSetWID"/>
        <index name="BioAssay2" columns="MAGEClass"/>
        <index name="BioAssay3" columns="Identifier"/>
        <index name="BioAssay4" columns="Name"/>
        <index name="BioAssay5" columns="DerivedBioAssay_Type"/>
        <index name="BioAssay6" columns="FeatureExtraction"/>
        <index name="BioAssay7" columns="BioAssayCreation"/>
    </table>
    <table type="object" name="Channel">
        <comment>Represents MAGE Class Channel</comment>
        <comment>A channel represents an independent acquisition scheme for the ImageAcquisition event, typically a wavelength.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Channel1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <primaryKey column="WID" name="PK_Channel"/>
        <index name="Channel1" columns="DataSetWID"/>
        <index name="Channel2" columns="Identifier"/>
        <index name="Channel3" columns="Name"/>
    </table>
    <table type="object" name="Image">
        <comment>Represents MAGE Class Image</comment>
        <comment>An image is created by an imageAcquisition event, typically by scanning the hybridized array (the PhysicalBioAssay).</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Image1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="URI" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Image.URI</comment>
            <comment>The file location in which an image may be found.</comment>
        </column>
        <column name="Image_Format" type="@wid" required="false">
            <comment>Represents 1..1 association between Image and OntologyEntry</comment>
            <comment>The file format of the image typically a TIF or a JPEG.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_Image3"/>
        </column>
        <column name="PhysicalBioAssay" type="@wid" required="false">
            <comment>Represents 1..n association between PhysicalBioAssay and Image</comment>
            <comment>The Images associated with this PhysicalBioAssay by ImageAcquisition.</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_Image4"/>
        </column>
        <primaryKey column="WID" name="PK_Image"/>
        <index name="Image1" columns="DataSetWID"/>
        <index name="Image2" columns="Identifier"/>
        <index name="Image3" columns="Name"/>
        <index name="Image4" columns="URI"/>
        <index name="Image5" columns="Image_Format"/>
        <index name="Image6" columns="PhysicalBioAssay"/>
    </table>
    <table type="object" name="BioAssayDataCluster">
        <comment>Represents MAGE Class BioAssayDataCluster</comment>
        <comment>A mathematical method of higher level analysis whereby BioAssayData are grouped together into nodes.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_BioAssayDataCluster1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="ClusterBioAssayData" type="@wid" required="false">
            <comment>Represents n..1 association between BioAssayDataCluster and BioAssayData</comment>
            <comment>The BioAssayData whose values were used by the cluster algorithm.</comment>
            <foreignKey toColumn="WID" toTable="BioAssayData" name="FK_BioAssayDataCluster3"/>
        </column>
        <primaryKey column="WID" name="PK_BioAssayDataCluster"/>
        <index name="BioAssayDataCluster1" columns="DataSetWID"/>
        <index name="BioAssayDataCluster2" columns="Identifier"/>
        <index name="BioAssayDataCluster3" columns="Name"/>
        <index name="BioAssayDataCluster4" columns="ClusterBioAssayData"/>
    </table>
    <table type="object" name="Node">
        <comment>Represents MAGE Class Node</comment>
        <comment>An individual component of a clustering.  May contain other nodes.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Node1"/>
        </column>
        <column name="BioAssayDataCluster_Nodes" type="@wid" required="false">
            <comment>Represents 1..n association between BioAssayDataCluster and Node</comment>
            <comment>The nodes of the cluster.</comment>
            <foreignKey toColumn="WID" toTable="BioAssayDataCluster" name="FK_Node3"/>
        </column>
        <column name="Node_Nodes" type="@wid" required="false">
            <comment>Represents 1..n association between Node and Node</comment>
            <comment>Nested nodes of the BioAssayDataCluster.</comment>
            <foreignKey toColumn="WID" toTable="Node" name="FK_Node4"/>
        </column>
        <primaryKey column="WID" name="PK_Node"/>
        <index name="Node1" columns="DataSetWID"/>
        <index name="Node2" columns="BioAssayDataCluster_Nodes"/>
        <index name="Node3" columns="Node_Nodes"/>
    </table>
    <table type="object" name="NodeContents">
        <comment>Represents MAGE Class NodeContents</comment>
        <comment>The contents of a node for any or all of the three Dimensions.  If a node only contained genes just the DesignElementDimension would be defined.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_NodeContents1"/>
        </column>
        <column name="Node_NodeContents" type="@wid" required="false">
            <comment>Represents 1..n association between Node and NodeContents</comment>
            <comment>The contents of the node, expressed as either a one, two or three dimensional object.</comment>
            <foreignKey toColumn="WID" toTable="Node" name="FK_NodeContents3"/>
        </column>
        <column name="BioAssayDimension" type="@wid" required="false">
            <comment>Represents n..1 association between NodeContents and BioAssayDimension</comment>
            <comment>The relevant BioAssays for this NodeContents from the BioAssayData.</comment>
            <foreignKey toColumn="WID" toTable="BioAssayDimension" name="FK_NodeContents4"/>
        </column>
        <column name="DesignElementDimension" type="@wid" required="false">
            <comment>Represents n..1 association between NodeContents and DesignElementDimension</comment>
            <comment>The relevant DesignElements for this NodeContents from the BioAssayData.</comment>
            <foreignKey toColumn="WID" toTable="DesignElementDimension" name="FK_NodeContents5"/>
        </column>
        <column name="QuantitationDimension" type="@wid" required="false">
            <comment>Represents n..1 association between NodeContents and QuantitationTypeDimension</comment>
            <comment>The relevant QuantitationTypes for this NodeContents from the BioAssayData.</comment>
            <foreignKey toColumn="WID" toTable="QuantitationTypeDimension" name="FK_NodeContents6"/>
        </column>
        <primaryKey column="WID" name="PK_NodeContents"/>
        <index name="NodeContents1" columns="DataSetWID"/>
        <index name="NodeContents2" columns="Node_NodeContents"/>
        <index name="NodeContents3" columns="BioAssayDimension"/>
        <index name="NodeContents4" columns="DesignElementDimension"/>
        <index name="NodeContents5" columns="QuantitationDimension"/>
    </table>
    <table type="object" name="NodeValue">
        <comment>Represents MAGE Class NodeValue</comment>
        <comment>A value associated with the Node that can rank it in relation to the other nodes produced by the clustering algorithm.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_NodeValue1"/>
        </column>
        <column name="Node_NodeValue" type="@wid" required="false">
            <comment>Represents 1..n association between Node and NodeValue</comment>
            <comment>Values or measurements for this node that may be produced by the clustering algorithm.  Typical are distance values for the nodes.</comment>
            <foreignKey toColumn="WID" toTable="Node" name="FK_NodeValue2"/>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute NodeValue.name</comment>
            <comment>The name for this value.</comment>
        </column>
        <column name="Value" type="@varchar" length="255" required="false">
            <comment>MAGE attribute NodeValue.value</comment>
            <comment>The value for this NodeValue.</comment>
        </column>
        <column name="NodeValue_Type" type="@wid" required="false">
            <comment>Represents 1..1 association between NodeValue and OntologyEntry</comment>
            <comment>The type of value, distance, etc.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_NodeValue3"/>
        </column>
        <column name="NodeValue_Scale" type="@wid" required="false">
            <comment>Represents 1..1 association between NodeValue and OntologyEntry</comment>
            <comment>The scale (linear, log10, ln, etc.) of the value.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_NodeValue4"/>
        </column>
        <column name="NodeValue_DataType" type="@wid" required="false">
            <comment>Represents 1..1 association between NodeValue and OntologyEntry</comment>
            <comment>The data type of the any element.</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_NodeValue5"/>
        </column>
        <primaryKey column="WID" name="PK_NodeValue"/>
        <index name="NodeValue1" columns="DataSetWID"/>
        <index name="NodeValue2" columns="Node_NodeValue"/>
        <index name="NodeValue3" columns="Name"/>
        <index name="NodeValue4" columns="Value"/>
        <index name="NodeValue5" columns="NodeValue_Type"/>
        <index name="NodeValue6" columns="NodeValue_Scale"/>
        <index name="NodeValue7" columns="NodeValue_DataType"/>
    </table>
    <table type="object" name="Measurement">
        <comment>Represents MAGE Class Measurement</comment>
        <comment>A Measurement is a quantity with a unit.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Measurement1"/>
        </column>
        <column name="Type_" type="@varchar" length="25" required="false">
            <comment>MAGE attribute Measurement.type</comment>
            <comment>The type of measurement, for instance if the measurement is five feet, it can be either absolute (five feet tall) or change (five feet further along).</comment>
        </column>
        <column name="Value" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Measurement.value</comment>
            <comment>The value of the measurement.  kindCV (and otherKind) determine with Unit the datatype of value.</comment>
        </column>
        <column name="KindCV" type="@varchar" length="25" required="false">
            <comment>MAGE attribute Measurement.kindCV</comment>
            <comment>One of the enumeration values to determine the controlled vocabulary of the value.</comment>
        </column>
        <column name="OtherKind" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Measurement.otherKind</comment>
            <comment>Name of the controlled vocabulary if it isn't one of the Unit subclasses.</comment>
        </column>
        <column name="Measurement_Unit" type="@wid" required="false">
            <comment>Represents 1..1 association between Measurement and Unit</comment>
            <comment>The Unit associated with the Measurement.</comment>
            <foreignKey toColumn="WID" toTable="Unit" name="FK_Measurement2"/>
        </column>
        <primaryKey column="WID" name="PK_Measurement"/>
        <index name="Measurement1" columns="DataSetWID"/>
        <index name="Measurement2" columns="Type_"/>
        <index name="Measurement3" columns="Value"/>
        <index name="Measurement4" columns="KindCV"/>
        <index name="Measurement5" columns="OtherKind"/>
        <index name="Measurement6" columns="Measurement_Unit"/>
    </table>
    <table type="object" name="Unit">
        <comment>Represents MAGE Class Unit</comment>
        <comment>The unit is a strict enumeration of types.</comment>
        <comment>Includes MAGE Class ConcentrationUnit</comment>
        <comment>Includes MAGE Class DistanceUnit</comment>
        <comment>Includes MAGE Class MassUnit</comment>
        <comment>Includes MAGE Class QuantityUnit</comment>
        <comment>Includes MAGE Class TemperatureUnit</comment>
        <comment>Includes MAGE Class TimeUnit</comment>
        <comment>Includes MAGE Class VolumeUnit</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Unit1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="UnitName" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Unit.unitName</comment>
            <comment>The name of the unit.</comment>
        </column>
        <column name="UnitNameCV" type="@varchar" length="25" required="false">
            <comment>MAGE attribute ConcentrationUnit.unitNameCV</comment>
        </column>
        <column name="UnitNameCV2" type="@varchar" length="25" required="false">
            <comment>MAGE attribute DistanceUnit.unitNameCV</comment>
        </column>
        <column name="UnitNameCV3" type="@varchar" length="25" required="false">
            <comment>MAGE attribute MassUnit.unitNameCV</comment>
        </column>
        <column name="UnitNameCV4" type="@varchar" length="25" required="false">
            <comment>MAGE attribute QuantityUnit.unitNameCV</comment>
        </column>
        <column name="UnitNameCV5" type="@varchar" length="25" required="false">
            <comment>MAGE attribute TemperatureUnit.unitNameCV</comment>
        </column>
        <column name="UnitNameCV6" type="@varchar" length="25" required="false">
            <comment>MAGE attribute TimeUnit.unitNameCV</comment>
        </column>
        <column name="UnitNameCV7" type="@varchar" length="25" required="false">
            <comment>MAGE attribute VolumeUnit.unitNameCV</comment>
        </column>
        <primaryKey column="WID" name="PK_Unit"/>
        <index name="Unit1" columns="DataSetWID"/>
        <index name="Unit2" columns="MAGEClass"/>
        <index name="Unit3" columns="UnitName"/>
        <index name="Unit4" columns="UnitNameCV"/>
        <index name="Unit5" columns="UnitNameCV2"/>
        <index name="Unit6" columns="UnitNameCV3"/>
        <index name="Unit7" columns="UnitNameCV4"/>
        <index name="Unit8" columns="UnitNameCV5"/>
        <index name="Unit9" columns="UnitNameCV6"/>
        <index name="Unit10" columns="UnitNameCV7"/>
    </table>
    <table type="object" name="Parameter">
        <comment>Represents MAGE Class Parameter</comment>
        <comment>A Parameter is a replaceable value in a Parameterizable class.  Examples of Parameters include: scanning wavelength, laser power, centrifuge speed, multiplicative errors, the number of input nodes to a SOM, and PCR temperatures.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Parameter1"/>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="Parameter_DefaultValue" type="@wid" required="false">
            <comment>Represents 1..1 association between Parameter and Measurement</comment>
            <comment>Allows the optional specification of a default values and the unit for the Parameter</comment>
            <foreignKey toColumn="WID" toTable="Measurement" name="FK_Parameter3"/>
        </column>
        <column name="Parameter_DataType" type="@wid" required="false">
            <comment>Represents 1..1 association between Parameter and OntologyEntry</comment>
            <comment>The type of data generated by the parameter i.e. Boolean, float, etc...</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_Parameter4"/>
        </column>
        <column name="Parameterizable_ParameterTypes" type="@wid" required="false">
            <comment>Represents 1..n association between Parameterizable and Parameter</comment>
            <comment>The description of the parameters for the Parameterizable class instance.</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_Parameter5"/>
        </column>
        <primaryKey column="WID" name="PK_Parameter"/>
        <index name="Parameter1" columns="DataSetWID"/>
        <index name="Parameter2" columns="Identifier"/>
        <index name="Parameter3" columns="Name"/>
        <index name="Parameter4" columns="Parameter_DefaultValue"/>
        <index name="Parameter5" columns="Parameter_DataType"/>
        <index name="Parameter6" columns="Parameterizable_ParameterTypes"/>
    </table>
    <table type="object" name="ParameterValue">
        <comment>Represents MAGE Class ParameterValue</comment>
        <comment>The value of a Parameter.</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ParameterValue1"/>
        </column>
        <column name="Value" type="@varchar" length="255" required="false">
            <comment>MAGE attribute ParameterValue.value</comment>
            <comment>The value of the parameter.  Will have the datatype of its associated Parameter.</comment>
        </column>
        <column name="ParameterType" type="@wid" required="false">
            <comment>Represents n..1 association between ParameterValue and Parameter</comment>
            <comment>The parameter this value is for.</comment>
            <foreignKey toColumn="WID" toTable="Parameter" name="FK_ParameterValue2"/>
        </column>
        <column name="ParameterizableApplication" type="@wid" required="false">
            <comment>Represents 1..n association between ParameterizableApplication and ParameterValue</comment>
            <comment>The parameter values for this Parameterizable Application.</comment>
            <foreignKey toColumn="WID" toTable="ParameterizableApplication" name="FK_ParameterValue3"/>
        </column>
        <primaryKey column="WID" name="PK_ParameterValue"/>
        <index name="ParameterValue1" columns="DataSetWID"/>
        <index name="ParameterValue2" columns="Value"/>
        <index name="ParameterValue3" columns="ParameterType"/>
        <index name="ParameterValue4" columns="ParameterizableApplication"/>
    </table>
    <table type="object" name="Parameterizable">
        <comment>Represents MAGE Class Parameterizable</comment>
        <comment>The Parameterizable interface encapsulates the association of Parameters with ParameterValues.</comment>
        <comment>Includes MAGE Class Hardware</comment>
        <comment>Includes MAGE Class Protocol</comment>
        <comment>Includes MAGE Class Software</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_Parameterizable1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="Identifier" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.identifier</comment>
            <comment>An identifier is an unambiguous string that is unique within the scope (i.e. a document, a set of related documents, or a repository) of its use.</comment>
        </column>
        <column name="Name" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Identifiable.name</comment>
            <comment>The potentially ambiguous common identifier.</comment>
        </column>
        <column name="URI" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Parameterizable.URI</comment>
            <comment>Where an instantiated Parameterizable is located.</comment>
        </column>
        <column name="Model" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Hardware.model</comment>
            <comment>The model (number) of a piece of hardware.</comment>
        </column>
        <column name="Make" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Hardware.make</comment>
            <comment>The make of the Hardware (its manufacturer).</comment>
        </column>
        <column name="Hardware_Type" type="@wid" required="false">
            <comment>Represents 1..1 association between Hardware and OntologyEntry</comment>
            <comment>The type of a piece of Hardware.  Examples include: scanner, wash station...</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_Parameterizable3"/>
        </column>
        <column name="Text" type="@varchar" length="1000" required="false">
            <comment>MAGE attribute Protocol.text</comment>
            <comment>The text description of the Protocol.</comment>
        </column>
        <column name="Title" type="@varchar" length="255" required="false">
            <comment>MAGE attribute Protocol.title</comment>
            <comment>The title of the Protocol</comment>
        </column>
        <column name="Protocol_Type" type="@wid" required="false">
            <comment>Represents 1..1 association between Protocol and OntologyEntry</comment>
            <comment>The type of a Protocol,  a user should provide/use a recommended vocabulary.  Examples of types include:  RNA extraction, array washing, etc...</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_Parameterizable4"/>
        </column>
        <column name="Software_Type" type="@wid" required="false">
            <comment>Represents 1..1 association between Software and OntologyEntry</comment>
            <comment>The type of a piece of Software.  Examples include: feature extractor...</comment>
            <foreignKey toColumn="WID" toTable="Term" name="FK_Parameterizable5"/>
        </column>
        <column name="Hardware" type="@wid" required="false">
            <comment>Represents n..1 association between Software and Hardware</comment>
            <comment>Associates Hardware and Software together.</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_Parameterizable6"/>
        </column>
        <primaryKey column="WID" name="PK_Parameterizable"/>
        <index name="Parameterizable1" columns="DataSetWID"/>
        <index name="Parameterizable2" columns="MAGEClass"/>
        <index name="Parameterizable3" columns="Identifier"/>
        <index name="Parameterizable4" columns="Name"/>
        <index name="Parameterizable5" columns="URI"/>
        <index name="Parameterizable6" columns="Model"/>
        <index name="Parameterizable7" columns="Make"/>
        <index name="Parameterizable8" columns="Hardware_Type"/>
        <index name="Parameterizable9" columns="Text"/>
        <index name="Parameterizable10" columns="Title"/>
        <index name="Parameterizable11" columns="Protocol_Type"/>
        <index name="Parameterizable12" columns="Software_Type"/>
        <index name="Parameterizable13" columns="Hardware"/>
    </table>
    <table type="object" name="ParameterizableApplication">
        <comment>Represents MAGE Class ParameterizableApplication</comment>
        <comment>The interface that is the use of a Parameterizable class.</comment>
        <comment>Includes MAGE Class HardwareApplication</comment>
        <comment>Includes MAGE Class ProtocolApplication</comment>
        <comment>Includes MAGE Class SoftwareApplication</comment>
        <column required="true" name="WID" type="@wid">
            <comment>Warehouse identifier for this entity</comment>
        </column>
        <column required="true" name="DataSetWID" type="@wid">
            <comment>Reference to the data set from which the entity came from</comment>
            <foreignKey toColumn="WID" toTable="DataSet" name="FK_ParameterizableApplicatio1"/>
        </column>
        <column required="true" name="MAGEClass" length="100" type="@varchar">
            <comment>Discriminator column specifies type of object this row represents</comment>
        </column>
        <column name="ArrayDesign" type="@wid" required="false">
            <comment>Represents 1..n association between ArrayDesign and ProtocolApplication</comment>
            <comment>Describes the application of any protocols, such as the methodology used to pick oligos, in the design of the array.</comment>
            <foreignKey toColumn="WID" toTable="ArrayDesign" name="FK_ParameterizableApplicatio3"/>
        </column>
        <column name="ArrayManufacture" type="@wid" required="false">
            <comment>Represents 1..n association between ArrayManufacture and ProtocolApplication</comment>
            <comment>The protocols followed in the manufacturing of the arrays.</comment>
            <foreignKey toColumn="WID" toTable="ArrayManufacture" name="FK_ParameterizableApplicatio4"/>
        </column>
        <column name="BioEvent_ProtocolApplications" type="@wid" required="false">
            <comment>Represents 1..n association between BioEvent and ProtocolApplication</comment>
            <comment>The applied protocols to the BioEvent.</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_ParameterizableApplicatio5"/>
        </column>
        <column name="SerialNumber" type="@varchar" length="255" required="false">
            <comment>MAGE attribute HardwareApplication.serialNumber</comment>
            <comment>Manufacturer's identifier for the Hardware.</comment>
        </column>
        <column name="Hardware" type="@wid" required="false">
            <comment>Represents n..1 association between HardwareApplication and Hardware</comment>
            <comment>The underlying hardware.</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_ParameterizableApplicatio6"/>
        </column>
        <column name="ActivityDate" type="@varchar" length="255" required="false">
            <comment>MAGE attribute ProtocolApplication.activityDate</comment>
            <comment>When the protocol was applied.</comment>
        </column>
        <column name="ProtocolApplication" type="@wid" required="false">
            <comment>Represents 1..n association between ProtocolApplication and HardwareApplication</comment>
            <comment>The use of hardware for the application of the protocol.</comment>
            <foreignKey toColumn="WID" toTable="ParameterizableApplication" name="FK_ParameterizableApplicatio7"/>
        </column>
        <column name="ProtocolApplication2" type="@wid" required="false">
            <comment>Represents 1..n association between ProtocolApplication and SoftwareApplication</comment>
            <comment>The use of software for the application of the protocol.</comment>
            <foreignKey toColumn="WID" toTable="ParameterizableApplication" name="FK_ParameterizableApplicatio8"/>
        </column>
        <column name="Protocol" type="@wid" required="false">
            <comment>Represents n..1 association between ProtocolApplication and Protocol</comment>
            <comment>The protocol that is being used.</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_ParameterizableApplicatio9"/>
        </column>
        <column name="Version" type="@varchar" length="255" required="false">
            <comment>MAGE attribute SoftwareApplication.version</comment>
            <comment>The version of the software.</comment>
        </column>
        <column name="ReleaseDate" type="@datetime" required="false">
            <comment>MAGE attribute SoftwareApplication.releaseDate</comment>
            <comment>When the software was released.</comment>
        </column>
        <column name="Software" type="@wid" required="false">
            <comment>Represents n..1 association between SoftwareApplication and Software</comment>
            <comment>The underlying software.</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_ParameterizableApplicatio10"/>
        </column>
        <primaryKey column="WID" name="PK_ParameterizableApplication"/>
        <index name="ParameterizableApplication1" columns="DataSetWID"/>
        <index name="ParameterizableApplication2" columns="MAGEClass"/>
        <index name="ParameterizableApplication3" columns="ArrayDesign"/>
        <index name="ParameterizableApplication4" columns="ArrayManufacture"/>
        <index name="ParameterizableApplication5" columns="BioEvent_ProtocolApplications"/>
        <index name="ParameterizableApplication6" columns="SerialNumber"/>
        <index name="ParameterizableApplication7" columns="Hardware"/>
        <index name="ParameterizableApplication8" columns="ActivityDate"/>
        <index name="ParameterizableApplication9" columns="ProtocolApplication"/>
        <index name="ParameterizableApplication10" columns="ProtocolApplication2"/>
        <index name="ParameterizableApplication11" columns="Protocol"/>
        <index name="ParameterizableApplication12" columns="Version"/>
        <index name="ParameterizableApplication13" columns="ReleaseDate"/>
        <index name="ParameterizableApplication14" columns="Software"/>
    </table>
    <table type="associative" name="ArrayDesignWIDReporterGroupWID">
        <comment>Represents n..n association between ArrayDesign and ReporterGroup</comment>
        <comment>The grouping of like Reporter together.  If more than one technology type occurs on the array, such as the mixing of Cloned BioMaterial and Oligos, then there would be multiple ReporterGroups to segregate the technology types.</comment>
        <column required="true" name="ArrayDesignWID" type="@wid">
            <comment>Reference to ArrayDesign</comment>
            <foreignKey toColumn="WID" toTable="ArrayDesign" name="FK_ArrayDesignWIDReporterGro1"/>
        </column>
        <column required="true" name="ReporterGroupWID" type="@wid">
            <comment>Reference to ReporterGroup</comment>
            <foreignKey toColumn="WID" toTable="DesignElementGroup" name="FK_ArrayDesignWIDReporterGro2"/>
        </column>
        <index name="ArrayDesignWIDReporterGrou1" columns="ArrayDesignWID"/>
        <index name="ArrayDesignWIDReporterGrou2" columns="ReporterGroupWID"/>
    </table>
    <table type="associative" name="ArrayDesignWIDCompositeGrpWID">
        <comment>Represents n..n association between ArrayDesign and CompositeGroup</comment>
        <comment>The grouping of like CompositeSequence together.  If more than one technology type occurs on the array, such as the mixing of Cloned BioMaterial and Oligos, then there would be multiple CompositeGroups to segregate the technology types.</comment>
        <column required="true" name="ArrayDesignWID" type="@wid">
            <comment>Reference to ArrayDesign</comment>
            <foreignKey toColumn="WID" toTable="ArrayDesign" name="FK_ArrayDesignWIDCompositeGr1"/>
        </column>
        <column required="true" name="CompositeGroupWID" type="@wid">
            <comment>Reference to CompositeGroup</comment>
            <foreignKey toColumn="WID" toTable="DesignElementGroup" name="FK_ArrayDesignWIDCompositeGr2"/>
        </column>
        <index name="ArrayDesignWIDCompositeGr1" columns="ArrayDesignWID"/>
        <index name="ArrayDesignWIDCompositeGr2" columns="CompositeGroupWID"/>
    </table>
    <table type="associative" name="ArrayDesignWIDContactWID">
        <comment>Represents n..n association between ArrayDesign and Contact</comment>
        <comment>The primary contact for information on the array design</comment>
        <column required="true" name="ArrayDesignWID" type="@wid">
            <comment>Reference to ArrayDesign</comment>
            <foreignKey toColumn="WID" toTable="ArrayDesign" name="FK_ArrayDesignWIDContactWID1"/>
        </column>
        <column required="true" name="ContactWID" type="@wid">
            <comment>Reference to Contact</comment>
            <foreignKey toColumn="WID" toTable="Contact" name="FK_ArrayDesignWIDContactWID2"/>
        </column>
        <index name="ArrayDesignWIDContactWID1" columns="ArrayDesignWID"/>
        <index name="ArrayDesignWIDContactWID2" columns="ContactWID"/>
    </table>
    <table type="associative" name="ComposGrpWIDComposSequenceWID">
        <comment>Represents n..n association between CompositeGroup and CompositeSequence</comment>
        <comment>The compositeSequences that belong to this group.</comment>
        <column required="true" name="CompositeGroupWID" type="@wid">
            <comment>Reference to CompositeGroup</comment>
            <foreignKey toColumn="WID" toTable="DesignElementGroup" name="FK_ComposGrpWIDComposSequenc1"/>
        </column>
        <column required="true" name="CompositeSequenceWID" type="@wid">
            <comment>Reference to CompositeSequence</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_ComposGrpWIDComposSequenc2"/>
        </column>
        <index name="ComposGrpWIDComposSequenc1" columns="CompositeGroupWID"/>
        <index name="ComposGrpWIDComposSequenc2" columns="CompositeSequenceWID"/>
    </table>
    <table type="associative" name="ReporterGroupWIDReporterWID">
        <comment>Represents n..n association between ReporterGroup and Reporter</comment>
        <comment>The reporters that belong to this group.</comment>
        <column required="true" name="ReporterGroupWID" type="@wid">
            <comment>Reference to ReporterGroup</comment>
            <foreignKey toColumn="WID" toTable="DesignElementGroup" name="FK_ReporterGroupWIDReporterW1"/>
        </column>
        <column required="true" name="ReporterWID" type="@wid">
            <comment>Reference to Reporter</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_ReporterGroupWIDReporterW2"/>
        </column>
        <index name="ReporterGroupWIDReporte1" columns="ReporterGroupWID"/>
        <index name="ReporterGroupWIDReporte2" columns="ReporterWID"/>
    </table>
    <table type="associative" name="ExperimentWIDContactWID">
        <comment>Represents n..n association between Experiment and Contact</comment>
        <comment>The providers of the Experiment, its data and annotation.</comment>
        <column required="true" name="ExperimentWID" type="@wid">
            <comment>Reference to Experiment</comment>
            <foreignKey toColumn="WID" toTable="Experiment" name="FK_ExperimentWIDContactWID1"/>
        </column>
        <column required="true" name="ContactWID" type="@wid">
            <comment>Reference to Contact</comment>
            <foreignKey toColumn="WID" toTable="Contact" name="FK_ExperimentWIDContactWID2"/>
        </column>
        <index name="ExperimentWIDContactWID1" columns="ExperimentWID"/>
        <index name="ExperimentWIDContactWID2" columns="ContactWID"/>
    </table>
    <table type="associative" name="ExperimWIDBioAssayDataClustWID">
        <comment>Represents n..n association between Experiment and BioAssayDataCluster</comment>
        <comment>The results of analyzing the data, typically with a clustering algorithm.</comment>
        <column required="true" name="ExperimentWID" type="@wid">
            <comment>Reference to Experiment</comment>
            <foreignKey toColumn="WID" toTable="Experiment" name="FK_ExperimWIDBioAssayDataClu1"/>
        </column>
        <column required="true" name="BioAssayDataClusterWID" type="@wid">
            <comment>Reference to BioAssayDataCluster</comment>
            <foreignKey toColumn="WID" toTable="BioAssayDataCluster" name="FK_ExperimWIDBioAssayDataClu2"/>
        </column>
        <index name="ExperimWIDBioAssayDataClus1" columns="ExperimentWID"/>
        <index name="ExperimWIDBioAssayDataClus2" columns="BioAssayDataClusterWID"/>
    </table>
    <table type="associative" name="ExperimentWIDBioAssayDataWID">
        <comment>Represents n..n association between Experiment and BioAssayData</comment>
        <comment>The collection of BioAssayDatas for this Experiment.</comment>
        <column required="true" name="ExperimentWID" type="@wid">
            <comment>Reference to Experiment</comment>
            <foreignKey toColumn="WID" toTable="Experiment" name="FK_ExperimentWIDBioAssayData1"/>
        </column>
        <column required="true" name="BioAssayDataWID" type="@wid">
            <comment>Reference to BioAssayData</comment>
            <foreignKey toColumn="WID" toTable="BioAssayData" name="FK_ExperimentWIDBioAssayData2"/>
        </column>
        <index name="ExperimentWIDBioAssayDat1" columns="ExperimentWID"/>
        <index name="ExperimentWIDBioAssayDat2" columns="BioAssayDataWID"/>
    </table>
    <table type="associative" name="ExperimentWIDBioAssayWID">
        <comment>Represents n..n association between Experiment and BioAssay</comment>
        <comment>The collection of BioAssays for this Experiment.</comment>
        <column required="true" name="ExperimentWID" type="@wid">
            <comment>Reference to Experiment</comment>
            <foreignKey toColumn="WID" toTable="Experiment" name="FK_ExperimentWIDBioAssayWID1"/>
        </column>
        <column required="true" name="BioAssayWID" type="@wid">
            <comment>Reference to BioAssay</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_ExperimentWIDBioAssayWID2"/>
        </column>
        <index name="ExperimentWIDBioAssayWID1" columns="ExperimentWID"/>
        <index name="ExperimentWIDBioAssayWID2" columns="BioAssayWID"/>
    </table>
    <table type="associative" name="ExperimentDesignWIDBioAssayWID">
        <comment>Represents n..n association between ExperimentDesign and BioAssay</comment>
        <comment>The organization of the BioAssays as specified by the ExperimentDesign (TimeCourse, Dosage, etc.)</comment>
        <column required="true" name="ExperimentDesignWID" type="@wid">
            <comment>Reference to ExperimentDesign</comment>
            <foreignKey toColumn="WID" toTable="ExperimentDesign" name="FK_ExperimentDesignWIDBioAss1"/>
        </column>
        <column required="true" name="BioAssayWID" type="@wid">
            <comment>Reference to BioAssay</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_ExperimentDesignWIDBioAss2"/>
        </column>
        <index name="ExperimentDesignWIDBioAssa1" columns="ExperimentDesignWID"/>
        <index name="ExperimentDesignWIDBioAssa2" columns="BioAssayWID"/>
    </table>
    <table type="associative" name="QuantTypeWIDConfidenceIndWID">
        <comment>Represents n..n association between QuantitationType and ConfidenceIndicator</comment>
        <comment>The association between a ConfidenceIndicator and the QuantitationType its is an indicator for.</comment>
        <column required="true" name="QuantitationTypeWID" type="@wid">
            <comment>Reference to QuantitationType</comment>
            <foreignKey toColumn="WID" toTable="QuantitationType" name="FK_QuantTypeWIDConfidenceInd1"/>
        </column>
        <column required="true" name="ConfidenceIndicatorWID" type="@wid">
            <comment>Reference to ConfidenceIndicator</comment>
            <foreignKey toColumn="WID" toTable="QuantitationType" name="FK_QuantTypeWIDConfidenceInd2"/>
        </column>
        <index name="QuantTypeWIDConfidenceIn1" columns="QuantitationTypeWID"/>
        <index name="QuantTypeWIDConfidenceIn2" columns="ConfidenceIndicatorWID"/>
    </table>
    <table type="associative" name="QuantTypeWIDQuantTypeMapWID">
        <comment>Represents n..n association between QuantitationType and QuantitationTypeMap</comment>
        <comment>The QuantitationType whose value will be produced from the values of the source QuantitationType according to the Protocol.</comment>
        <column required="true" name="QuantitationTypeWID" type="@wid">
            <comment>Reference to QuantitationType</comment>
            <foreignKey toColumn="WID" toTable="QuantitationType" name="FK_QuantTypeWIDQuantTypeMapW1"/>
        </column>
        <column required="true" name="QuantitationTypeMapWID" type="@wid">
            <comment>Reference to QuantitationTypeMap</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_QuantTypeWIDQuantTypeMapW2"/>
        </column>
        <index name="QuantTypeWIDQuantTypeMa1" columns="QuantitationTypeWID"/>
        <index name="QuantTypeWIDQuantTypeMa2" columns="QuantitationTypeMapWID"/>
    </table>
    <table type="associative" name="DatabaseWIDContactWID">
        <comment>Represents n..n association between Database and Contact</comment>
        <comment>Information on the contacts for the database</comment>
        <column required="true" name="DatabaseWID" type="@wid">
            <comment>Reference to Database</comment>
            <foreignKey toColumn="WID" toTable="Database_" name="FK_DatabaseWIDContactWID1"/>
        </column>
        <column required="true" name="ContactWID" type="@wid">
            <comment>Reference to Contact</comment>
            <foreignKey toColumn="WID" toTable="Contact" name="FK_DatabaseWIDContactWID2"/>
        </column>
        <index name="DatabaseWIDContactWID1" columns="DatabaseWID"/>
        <index name="DatabaseWIDContactWID2" columns="ContactWID"/>
    </table>
    <table type="associative" name="ArrayGroupWIDArrayWID">
        <comment>Represents n..n association between ArrayGroup and Array</comment>
        <comment>Association between an ArrayGroup and its Arrays, typically the ArrayGroup will represent a slide and the Arrays will be the manufactured so that they may be hybridized separately on that slide.</comment>
        <column required="true" name="ArrayGroupWID" type="@wid">
            <comment>Reference to ArrayGroup</comment>
            <foreignKey toColumn="WID" toTable="ArrayGroup" name="FK_ArrayGroupWIDArrayWID1"/>
        </column>
        <column required="true" name="ArrayWID" type="@wid">
            <comment>Reference to Array</comment>
            <foreignKey toColumn="WID" toTable="Array_" name="FK_ArrayGroupWIDArrayWID2"/>
        </column>
        <index name="ArrayGroupWIDArrayWID1" columns="ArrayGroupWID"/>
        <index name="ArrayGroupWIDArrayWID2" columns="ArrayWID"/>
    </table>
    <table type="associative" name="ArrayManufactureWIDArrayWID">
        <comment>Represents n..n association between ArrayManufacture and Array</comment>
        <comment>Association between the manufactured array and the information on that manufacture.</comment>
        <column required="true" name="ArrayManufactureWID" type="@wid">
            <comment>Reference to ArrayManufacture</comment>
            <foreignKey toColumn="WID" toTable="ArrayManufacture" name="FK_ArrayManufactureWIDArrayW1"/>
        </column>
        <column required="true" name="ArrayWID" type="@wid">
            <comment>Reference to Array</comment>
            <foreignKey toColumn="WID" toTable="Array_" name="FK_ArrayManufactureWIDArrayW2"/>
        </column>
        <index name="ArrayManufactureWIDArra1" columns="ArrayManufactureWID"/>
        <index name="ArrayManufactureWIDArra2" columns="ArrayWID"/>
    </table>
    <table type="associative" name="ArrayManufactureWIDContactWID">
        <comment>Represents n..n association between ArrayManufacture and Contact</comment>
        <comment>The person or organization to contact for information concerning the ArrayManufacture.</comment>
        <column required="true" name="ArrayManufactureWID" type="@wid">
            <comment>Reference to ArrayManufacture</comment>
            <foreignKey toColumn="WID" toTable="ArrayManufacture" name="FK_ArrayManufactureWIDContac1"/>
        </column>
        <column required="true" name="ContactWID" type="@wid">
            <comment>Reference to Contact</comment>
            <foreignKey toColumn="WID" toTable="Contact" name="FK_ArrayManufactureWIDContac2"/>
        </column>
        <index name="ArrayManufactureWIDContac1" columns="ArrayManufactureWID"/>
        <index name="ArrayManufactureWIDContac2" columns="ContactWID"/>
    </table>
    <table type="associative" name="CompositeSeqWIDBioSeqWID">
        <comment>Represents n..n association between CompositeSequence and BioSequence</comment>
        <comment>The annotation on the BioSequence this CompositeSequence represents.  Typically the sequences will be a Genes, Exons, or SpliceVariants.</comment>
        <column required="true" name="CompositeSequenceWID" type="@wid">
            <comment>Reference to CompositeSequence</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_CompositeSeqWIDBioSeqWID1"/>
        </column>
        <column required="true" name="BioSequenceWID" type="@wid">
            <comment>Reference to BioSequence</comment>
        </column>
        <index name="CompositeSeqWIDBioSeqWID1" columns="CompositeSequenceWID"/>
        <index name="CompositeSeqWIDBioSeqWID2" columns="BioSequenceWID"/>
    </table>
    <table type="associative" name="ComposSeqWIDRepoComposMapWID">
        <comment>Represents n..n association between CompositeSequence and ReporterCompositeMap</comment>
        <comment>A map to the reporters that compose this CompositeSequence.</comment>
        <column required="true" name="CompositeSequenceWID" type="@wid">
            <comment>Reference to CompositeSequence</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_ComposSeqWIDRepoComposMap1"/>
        </column>
        <column required="true" name="ReporterCompositeMapWID" type="@wid">
            <comment>Reference to ReporterCompositeMap</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_ComposSeqWIDRepoComposMap2"/>
        </column>
        <index name="ComposSeqWIDRepoComposMa1" columns="CompositeSequenceWID"/>
        <index name="ComposSeqWIDRepoComposMa2" columns="ReporterCompositeMapWID"/>
    </table>
    <table type="associative" name="ComposSeqWIDComposComposMapWID">
        <comment>Represents n..n association between CompositeSequence and CompositeCompositeMap</comment>
        <comment>A map to the compositeSequences that compose this CompositeSequence.</comment>
        <column required="true" name="CompositeSequenceWID" type="@wid">
            <comment>Reference to CompositeSequence</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_ComposSeqWIDComposComposM1"/>
        </column>
        <column required="true" name="CompositeCompositeMapWID" type="@wid">
            <comment>Reference to CompositeCompositeMap</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_ComposSeqWIDComposComposM2"/>
        </column>
        <index name="ComposSeqWIDComposComposMa1" columns="CompositeSequenceWID"/>
        <index name="ComposSeqWIDComposComposMa2" columns="CompositeCompositeMapWID"/>
    </table>
    <table type="associative" name="FeatureWIDFeatureWID">
        <comment>Represents n..n association between Feature and Feature</comment>
        <comment>Associates features with their control features.</comment>
        <column required="true" name="FeatureWID1" type="@wid">
            <comment>Reference to Feature</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_FeatureWIDFeatureWID1"/>
        </column>
        <column required="true" name="FeatureWID2" type="@wid">
            <comment>Reference to Feature</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_FeatureWIDFeatureWID2"/>
        </column>
        <index name="FeatureWIDFeatureWID1" columns="FeatureWID1"/>
        <index name="FeatureWIDFeatureWID2" columns="FeatureWID2"/>
    </table>
    <table type="associative" name="FeatureWIDFeatureWID2">
        <comment>Represents n..n association between Feature and Feature</comment>
        <comment>Associates features with their control features.</comment>
        <column required="true" name="FeatureWID1" type="@wid">
            <comment>Reference to Feature</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_FeatureWIDFeatureWID21"/>
        </column>
        <column required="true" name="FeatureWID2" type="@wid">
            <comment>Reference to Feature</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_FeatureWIDFeatureWID22"/>
        </column>
        <index name="FeatureWIDFeatureWID21" columns="FeatureWID1"/>
        <index name="FeatureWIDFeatureWID22" columns="FeatureWID2"/>
    </table>
    <table type="associative" name="ReporterWIDBioSequenceWID">
        <comment>Represents n..n association between Reporter and BioSequence</comment>
        <comment>The sequence annotation on the BioMaterial this reporter represents.  Typically the sequences will be an Oligo Sequence, Clone or PCR Primer.</comment>
        <column required="true" name="ReporterWID" type="@wid">
            <comment>Reference to Reporter</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_ReporterWIDBioSequenceWID1"/>
        </column>
        <column required="true" name="BioSequenceWID" type="@wid">
            <comment>Reference to BioSequence</comment>
        </column>
        <index name="ReporterWIDBioSequenceWID1" columns="ReporterWID"/>
        <index name="ReporterWIDBioSequenceWID2" columns="BioSequenceWID"/>
    </table>
    <table type="associative" name="ReporterWIDFeatureReporMapWID">
        <comment>Represents n..n association between Reporter and FeatureReporterMap</comment>
        <comment>Associates features with their reporter.</comment>
        <column required="true" name="ReporterWID" type="@wid">
            <comment>Reference to Reporter</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_ReporterWIDFeatureReporMa1"/>
        </column>
        <column required="true" name="FeatureReporterMapWID" type="@wid">
            <comment>Reference to FeatureReporterMap</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_ReporterWIDFeatureReporMa2"/>
        </column>
        <index name="ReporterWIDFeatureReporMa1" columns="ReporterWID"/>
        <index name="ReporterWIDFeatureReporMa2" columns="FeatureReporterMapWID"/>
    </table>
    <table type="associative" name="BioAssayDimensioWIDBioAssayWID">
        <comment>Represents n..n association between BioAssayDimension and BioAssay</comment>
        <comment>The BioAssays for this Dimension</comment>
        <column required="true" name="BioAssayDimensionWID" type="@wid">
            <comment>Reference to BioAssayDimension</comment>
            <foreignKey toColumn="WID" toTable="BioAssayDimension" name="FK_BioAssayDimensioWIDBioAss1"/>
        </column>
        <column required="true" name="BioAssayWID" type="@wid">
            <comment>Reference to BioAssay</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioAssayDimensioWIDBioAss2"/>
        </column>
        <index name="BioAssayDimensioWIDBioAssa1" columns="BioAssayDimensionWID"/>
        <index name="BioAssayDimensioWIDBioAssa2" columns="BioAssayWID"/>
    </table>
    <table type="associative" name="BioAssayMapWIDBioAssayWID">
        <comment>Represents n..n association between BioAssayMap and BioAssay</comment>
        <comment>The sources of the BioAssayMap that are used to produce a target DerivedBioAssay.</comment>
        <column required="true" name="BioAssayMapWID" type="@wid">
            <comment>Reference to BioAssayMap</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_BioAssayMapWIDBioAssayWID1"/>
        </column>
        <column required="true" name="BioAssayWID" type="@wid">
            <comment>Reference to BioAssay</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioAssayMapWIDBioAssayWID2"/>
        </column>
        <index name="BioAssayMapWIDBioAssayWID1" columns="BioAssayMapWID"/>
        <index name="BioAssayMapWIDBioAssayWID2" columns="BioAssayWID"/>
    </table>
    <table type="associative" name="BAssayMappingWIDBAssayMapWID">
        <comment>Represents n..n association between BioAssayMapping and BioAssayMap</comment>
        <comment>The maps for the BioAssays.</comment>
        <column required="true" name="BioAssayMappingWID" type="@wid">
            <comment>Reference to BioAssayMapping</comment>
            <foreignKey toColumn="WID" toTable="BioAssayMapping" name="FK_BAssayMappingWIDBAssayMap1"/>
        </column>
        <column required="true" name="BioAssayMapWID" type="@wid">
            <comment>Reference to BioAssayMap</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_BAssayMappingWIDBAssayMap2"/>
        </column>
        <index name="BAssayMappingWIDBAssayMa1" columns="BioAssayMappingWID"/>
        <index name="BAssayMappingWIDBAssayMa2" columns="BioAssayMapWID"/>
    </table>
    <table type="associative" name="ComposSeqDimensWIDComposSeqWID">
        <comment>Represents n..n association between CompositeSequenceDimension and CompositeSequence</comment>
        <comment>The CompositeSequences for this Dimension.</comment>
        <column required="true" name="CompositeSequenceDimensionWID" type="@wid">
            <comment>Reference to CompositeSequenceDimension</comment>
            <foreignKey toColumn="WID" toTable="DesignElementDimension" name="FK_ComposSeqDimensWIDComposS1"/>
        </column>
        <column required="true" name="CompositeSequenceWID" type="@wid">
            <comment>Reference to CompositeSequence</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_ComposSeqDimensWIDComposS2"/>
        </column>
        <index name="ComposSeqDimensWIDComposSe1" columns="CompositeSequenceDimensionWID"/>
        <index name="ComposSeqDimensWIDComposSe2" columns="CompositeSequenceWID"/>
    </table>
    <table type="associative" name="DesnElMappingWIDDesnElMapWID">
        <comment>Represents n..n association between DesignElementMapping and DesignElementMap</comment>
        <comment>The maps for the DesignElements.</comment>
        <column required="true" name="DesignElementMappingWID" type="@wid">
            <comment>Reference to DesignElementMapping</comment>
            <foreignKey toColumn="WID" toTable="DesignElementMapping" name="FK_DesnElMappingWIDDesnElMap1"/>
        </column>
        <column required="true" name="DesignElementMapWID" type="@wid">
            <comment>Reference to DesignElementMap</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_DesnElMappingWIDDesnElMap2"/>
        </column>
        <index name="DesnElMappingWIDDesnElMa1" columns="DesignElementMappingWID"/>
        <index name="DesnElMappingWIDDesnElMa2" columns="DesignElementMapWID"/>
    </table>
    <table type="associative" name="FeatureDimensionWIDFeatureWID">
        <comment>Represents n..n association between FeatureDimension and Feature</comment>
        <comment>The features for this dimension.</comment>
        <column required="true" name="FeatureDimensionWID" type="@wid">
            <comment>Reference to FeatureDimension</comment>
            <foreignKey toColumn="WID" toTable="DesignElementDimension" name="FK_FeatureDimensionWIDFeatur1"/>
        </column>
        <column required="true" name="FeatureWID" type="@wid">
            <comment>Reference to Feature</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_FeatureDimensionWIDFeatur2"/>
        </column>
        <index name="FeatureDimensionWIDFeatur1" columns="FeatureDimensionWID"/>
        <index name="FeatureDimensionWIDFeatur2" columns="FeatureWID"/>
    </table>
    <table type="associative" name="QuantTypeDimensWIDQuantTypeWID">
        <comment>Represents n..n association between QuantitationTypeDimension and QuantitationType</comment>
        <comment>The QuantitationTypes for this Dimension.</comment>
        <column required="true" name="QuantitationTypeDimensionWID" type="@wid">
            <comment>Reference to QuantitationTypeDimension</comment>
            <foreignKey toColumn="WID" toTable="QuantitationTypeDimension" name="FK_QuantTypeDimensWIDQuantTy1"/>
        </column>
        <column required="true" name="QuantitationTypeWID" type="@wid">
            <comment>Reference to QuantitationType</comment>
            <foreignKey toColumn="WID" toTable="QuantitationType" name="FK_QuantTypeDimensWIDQuantTy2"/>
        </column>
        <index name="QuantTypeDimensWIDQuantTyp1" columns="QuantitationTypeDimensionWID"/>
        <index name="QuantTypeDimensWIDQuantTyp2" columns="QuantitationTypeWID"/>
    </table>
    <table type="associative" name="QuantTypeMapWIDQuantTypeWID">
        <comment>Represents n..n association between QuantitationTypeMap and QuantitationType</comment>
        <comment>The QuantitationType sources for values for the transformation.</comment>
        <column required="true" name="QuantitationTypeMapWID" type="@wid">
            <comment>Reference to QuantitationTypeMap</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_QuantTypeMapWIDQuantTypeW1"/>
        </column>
        <column required="true" name="QuantitationTypeWID" type="@wid">
            <comment>Reference to QuantitationType</comment>
            <foreignKey toColumn="WID" toTable="QuantitationType" name="FK_QuantTypeMapWIDQuantTypeW2"/>
        </column>
        <index name="QuantTypeMapWIDQuantTyp1" columns="QuantitationTypeMapWID"/>
        <index name="QuantTypeMapWIDQuantTyp2" columns="QuantitationTypeWID"/>
    </table>
    <table type="associative" name="QuantTyMapWIDQuantTyMapWI">
        <comment>Represents n..n association between QuantitationTypeMapping and QuantitationTypeMap</comment>
        <comment>The maps for the QuantitationTypes.</comment>
        <column required="true" name="QuantitationTypeMappingWID" type="@wid">
            <comment>Reference to QuantitationTypeMapping</comment>
            <foreignKey toColumn="WID" toTable="QuantitationTypeMapping" name="FK_QuantTyMapWIDQuantTyMapWI1"/>
        </column>
        <column required="true" name="QuantitationTypeMapWID" type="@wid">
            <comment>Reference to QuantitationTypeMap</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_QuantTyMapWIDQuantTyMapWI2"/>
        </column>
        <index name="QuantTyMapWIDQuantTyMapWI1" columns="QuantitationTypeMappingWID"/>
        <index name="QuantTyMapWIDQuantTyMapWI2" columns="QuantitationTypeMapWID"/>
    </table>
    <table type="associative" name="ReporterDimensWIDReporterWID">
        <comment>Represents n..n association between ReporterDimension and Reporter</comment>
        <comment>The reporters for this dimension.</comment>
        <column required="true" name="ReporterDimensionWID" type="@wid">
            <comment>Reference to ReporterDimension</comment>
            <foreignKey toColumn="WID" toTable="DesignElementDimension" name="FK_ReporterDimensWIDReporter1"/>
        </column>
        <column required="true" name="ReporterWID" type="@wid">
            <comment>Reference to Reporter</comment>
            <foreignKey toColumn="WID" toTable="DesignElement" name="FK_ReporterDimensWIDReporter2"/>
        </column>
        <index name="ReporterDimensWIDReporte1" columns="ReporterDimensionWID"/>
        <index name="ReporterDimensWIDReporte2" columns="ReporterWID"/>
    </table>
    <table type="associative" name="TransformWIDBioAssayDataWID">
        <comment>Represents n..n association between Transformation and BioAssayData</comment>
        <comment>The BioAssayData sources that the Transformation event uses to produce the target DerivedBioAssayData.</comment>
        <column required="true" name="TransformationWID" type="@wid">
            <comment>Reference to Transformation</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_TransformWIDBioAssayDataW1"/>
        </column>
        <column required="true" name="BioAssayDataWID" type="@wid">
            <comment>Reference to BioAssayData</comment>
            <foreignKey toColumn="WID" toTable="BioAssayData" name="FK_TransformWIDBioAssayDataW2"/>
        </column>
        <index name="TransformWIDBioAssayDat1" columns="TransformationWID"/>
        <index name="TransformWIDBioAssayDat2" columns="BioAssayDataWID"/>
    </table>
    <table type="associative" name="BioSourceWIDContactWID">
        <comment>Represents n..n association between BioSource and Contact</comment>
        <comment>The BioSource's source is the provider of the biological material (a cell line, strain, etc...).  This could be the ATTC (American Tissue Type Collection).</comment>
        <column required="true" name="BioSourceWID" type="@wid">
            <comment>Reference to BioSource</comment>
            <foreignKey toColumn="WID" toTable="BioSource" name="FK_BioSourceWIDContactWID1"/>
        </column>
        <column required="true" name="ContactWID" type="@wid">
            <comment>Reference to Contact</comment>
            <foreignKey toColumn="WID" toTable="Contact" name="FK_BioSourceWIDContactWID2"/>
        </column>
        <index name="BioSourceWIDContactWID1" columns="BioSourceWID"/>
        <index name="BioSourceWIDContactWID2" columns="ContactWID"/>
    </table>
    <table type="associative" name="LabeledExtractWIDCompoundWID">
        <comment>Represents n..n association between LabeledExtract and Compound</comment>
        <comment>Compound used to label the extract.</comment>
        <column required="true" name="LabeledExtractWID" type="@wid">
            <comment>Reference to LabeledExtract</comment>
            <foreignKey toColumn="WID" toTable="BioSource" name="FK_LabeledExtractWIDCompound1"/>
        </column>
        <column required="true" name="CompoundWID" type="@wid">
            <comment>Reference to Compound</comment>
            <foreignKey toColumn="WID" toTable="Chemical" name="FK_LabeledExtractWIDCompound2"/>
        </column>
        <index name="LabeledExtractWIDCompoun1" columns="LabeledExtractWID"/>
        <index name="LabeledExtractWIDCompoun2" columns="CompoundWID"/>
    </table>
    <table type="associative" name="BioAssayWIDChannelWID">
        <comment>Represents n..n association between BioAssay and Channel</comment>
        <comment>Channels can be non-null for all subclasses.  For instance, collapsing across replicate features will create a DerivedBioAssay that will potentially reference channels.</comment>
        <column required="true" name="BioAssayWID" type="@wid">
            <comment>Reference to BioAssay</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioAssayWIDChannelWID1"/>
        </column>
        <column required="true" name="ChannelWID" type="@wid">
            <comment>Reference to Channel</comment>
            <foreignKey toColumn="WID" toTable="Channel" name="FK_BioAssayWIDChannelWID2"/>
        </column>
        <index name="BioAssayWIDChannelWID1" columns="BioAssayWID"/>
        <index name="BioAssayWIDChannelWID2" columns="ChannelWID"/>
    </table>
    <table type="associative" name="BioAssayWIDFactorValueWID">
        <comment>Represents n..n association between BioAssay and FactorValue</comment>
        <comment>The values that this BioAssay is associated with for the experiment.</comment>
        <column required="true" name="BioAssayWID" type="@wid">
            <comment>Reference to BioAssay</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_BioAssayWIDFactorValueWID1"/>
        </column>
        <column required="true" name="FactorValueWID" type="@wid">
            <comment>Reference to FactorValue</comment>
            <foreignKey toColumn="WID" toTable="FactorValue" name="FK_BioAssayWIDFactorValueWID2"/>
        </column>
        <index name="BioAssayWIDFactorValueWID1" columns="BioAssayWID"/>
        <index name="BioAssayWIDFactorValueWID2" columns="FactorValueWID"/>
    </table>
    <table type="associative" name="ChannelWIDCompoundWID">
        <comment>Represents n..n association between Channel and Compound</comment>
        <comment>The compound used to label the extract.</comment>
        <column required="true" name="ChannelWID" type="@wid">
            <comment>Reference to Channel</comment>
            <foreignKey toColumn="WID" toTable="Channel" name="FK_ChannelWIDCompoundWID1"/>
        </column>
        <column required="true" name="CompoundWID" type="@wid">
            <comment>Reference to Compound</comment>
            <foreignKey toColumn="WID" toTable="Chemical" name="FK_ChannelWIDCompoundWID2"/>
        </column>
        <index name="ChannelWIDCompoundWID1" columns="ChannelWID"/>
        <index name="ChannelWIDCompoundWID2" columns="CompoundWID"/>
    </table>
    <table type="associative" name="DerivBioAWIDDerivBioADataWID">
        <comment>Represents n..n association between DerivedBioAssay and DerivedBioAssayData</comment>
        <comment>The data associated with the DerivedBioAssay.</comment>
        <column required="true" name="DerivedBioAssayWID" type="@wid">
            <comment>Reference to DerivedBioAssay</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_DerivBioAWIDDerivBioAData1"/>
        </column>
        <column required="true" name="DerivedBioAssayDataWID" type="@wid">
            <comment>Reference to DerivedBioAssayData</comment>
            <foreignKey toColumn="WID" toTable="BioAssayData" name="FK_DerivBioAWIDDerivBioAData2"/>
        </column>
        <index name="DerivBioAWIDDerivBioADat1" columns="DerivedBioAssayWID"/>
        <index name="DerivBioAWIDDerivBioADat2" columns="DerivedBioAssayDataWID"/>
    </table>
    <table type="associative" name="DerivBioAssayWIDBioAssayMapWID">
        <comment>Represents n..n association between DerivedBioAssay and BioAssayMap</comment>
        <comment>The DerivedBioAssay that is produced by the sources of the BioAssayMap.</comment>
        <column required="true" name="DerivedBioAssayWID" type="@wid">
            <comment>Reference to DerivedBioAssay</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_DerivBioAssayWIDBioAssayM1"/>
        </column>
        <column required="true" name="BioAssayMapWID" type="@wid">
            <comment>Reference to BioAssayMap</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_DerivBioAssayWIDBioAssayM2"/>
        </column>
        <index name="DerivBioAssayWIDBioAssayMa1" columns="DerivedBioAssayWID"/>
        <index name="DerivBioAssayWIDBioAssayMa2" columns="BioAssayMapWID"/>
    </table>
    <table type="associative" name="ImageWIDChannelWID">
        <comment>Represents n..n association between Image and Channel</comment>
        <comment>The channels captured in this image.</comment>
        <column required="true" name="ImageWID" type="@wid">
            <comment>Reference to Image</comment>
            <foreignKey toColumn="WID" toTable="Image" name="FK_ImageWIDChannelWID1"/>
        </column>
        <column required="true" name="ChannelWID" type="@wid">
            <comment>Reference to Channel</comment>
            <foreignKey toColumn="WID" toTable="Channel" name="FK_ImageWIDChannelWID2"/>
        </column>
        <index name="ImageWIDChannelWID1" columns="ImageWID"/>
        <index name="ImageWIDChannelWID2" columns="ChannelWID"/>
    </table>
    <table type="associative" name="ImageAcquisitionWIDImageWID">
        <comment>Represents n..n association between ImageAcquisition and Image</comment>
        <comment>The images produced by the ImageAcquisition event.</comment>
        <column required="true" name="ImageAcquisitionWID" type="@wid">
            <comment>Reference to ImageAcquisition</comment>
            <foreignKey toColumn="WID" toTable="BioEvent" name="FK_ImageAcquisitionWIDImageW1"/>
        </column>
        <column required="true" name="ImageWID" type="@wid">
            <comment>Reference to Image</comment>
            <foreignKey toColumn="WID" toTable="Image" name="FK_ImageAcquisitionWIDImageW2"/>
        </column>
        <index name="ImageAcquisitionWIDImag1" columns="ImageAcquisitionWID"/>
        <index name="ImageAcquisitionWIDImag2" columns="ImageWID"/>
    </table>
    <table type="associative" name="MeasBAssayWIDMeasBAssayDataWID">
        <comment>Represents n..n association between MeasuredBioAssay and MeasuredBioAssayData</comment>
        <comment>The data associated with the MeasuredBioAssay.</comment>
        <column required="true" name="MeasuredBioAssayWID" type="@wid">
            <comment>Reference to MeasuredBioAssay</comment>
            <foreignKey toColumn="WID" toTable="BioAssay" name="FK_MeasBAssayWIDMeasBAssayDa1"/>
        </column>
        <column required="true" name="MeasuredBioAssayDataWID" type="@wid">
            <comment>Reference to MeasuredBioAssayData</comment>
            <foreignKey toColumn="WID" toTable="BioAssayData" name="FK_MeasBAssayWIDMeasBAssayDa2"/>
        </column>
        <index name="MeasBAssayWIDMeasBAssayDat1" columns="MeasuredBioAssayWID"/>
        <index name="MeasBAssayWIDMeasBAssayDat2" columns="MeasuredBioAssayDataWID"/>
    </table>
    <table type="associative" name="HardwareWIDSoftwareWID">
        <comment>Represents n..n association between Hardware and Software</comment>
        <comment>Associates Hardware and Software together.</comment>
        <column required="true" name="HardwareWID" type="@wid">
            <comment>Reference to Hardware</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_HardwareWIDSoftwareWID1"/>
        </column>
        <column required="true" name="SoftwareWID" type="@wid">
            <comment>Reference to Software</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_HardwareWIDSoftwareWID2"/>
        </column>
        <index name="HardwareWIDSoftwareWID1" columns="HardwareWID"/>
        <index name="HardwareWIDSoftwareWID2" columns="SoftwareWID"/>
    </table>
    <table type="associative" name="HardwareWIDContactWID">
        <comment>Represents n..n association between Hardware and Contact</comment>
        <comment>Contact for information on the Hardware.</comment>
        <column required="true" name="HardwareWID" type="@wid">
            <comment>Reference to Hardware</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_HardwareWIDContactWID1"/>
        </column>
        <column required="true" name="ContactWID" type="@wid">
            <comment>Reference to Contact</comment>
            <foreignKey toColumn="WID" toTable="Contact" name="FK_HardwareWIDContactWID2"/>
        </column>
        <index name="HardwareWIDContactWID1" columns="HardwareWID"/>
        <index name="HardwareWIDContactWID2" columns="ContactWID"/>
    </table>
    <table type="associative" name="ProtocolWIDHardwareWID">
        <comment>Represents n..n association between Protocol and Hardware</comment>
        <comment>Hardware used by this protocol.</comment>
        <column required="true" name="ProtocolWID" type="@wid">
            <comment>Reference to Protocol</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_ProtocolWIDHardwareWID1"/>
        </column>
        <column required="true" name="HardwareWID" type="@wid">
            <comment>Reference to Hardware</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_ProtocolWIDHardwareWID2"/>
        </column>
        <index name="ProtocolWIDHardwareWID1" columns="ProtocolWID"/>
        <index name="ProtocolWIDHardwareWID2" columns="HardwareWID"/>
    </table>
    <table type="associative" name="ProtocolWIDSoftwareWID">
        <comment>Represents n..n association between Protocol and Software</comment>
        <comment>Software used by this Protocol.</comment>
        <column required="true" name="ProtocolWID" type="@wid">
            <comment>Reference to Protocol</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_ProtocolWIDSoftwareWID1"/>
        </column>
        <column required="true" name="SoftwareWID" type="@wid">
            <comment>Reference to Software</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_ProtocolWIDSoftwareWID2"/>
        </column>
        <index name="ProtocolWIDSoftwareWID1" columns="ProtocolWID"/>
        <index name="ProtocolWIDSoftwareWID2" columns="SoftwareWID"/>
    </table>
    <table type="associative" name="ProtocolApplWIDPersonWID">
        <comment>Represents n..n association between ProtocolApplication and Person</comment>
        <comment>The people who performed the protocol.</comment>
        <column required="true" name="ProtocolApplicationWID" type="@wid">
            <comment>Reference to ProtocolApplication</comment>
            <foreignKey toColumn="WID" toTable="ParameterizableApplication" name="FK_ProtocolApplWIDPersonWID1"/>
        </column>
        <column required="true" name="PersonWID" type="@wid">
            <comment>Reference to Person</comment>
            <foreignKey toColumn="WID" toTable="Contact" name="FK_ProtocolApplWIDPersonWID2"/>
        </column>
        <index name="ProtocolApplWIDPersonWID1" columns="ProtocolApplicationWID"/>
        <index name="ProtocolApplWIDPersonWID2" columns="PersonWID"/>
    </table>
    <table type="associative" name="SoftwareWIDSoftwareWID">
        <comment>Represents n..n association between Software and Software</comment>
        <comment>Software packages this software uses, i.e. operating system, 3rd party software packages, etc.</comment>
        <column required="true" name="SoftwareWID1" type="@wid">
            <comment>Reference to Software</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_SoftwareWIDSoftwareWID1"/>
        </column>
        <column required="true" name="SoftwareWID2" type="@wid">
            <comment>Reference to Software</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_SoftwareWIDSoftwareWID2"/>
        </column>
        <index name="SoftwareWIDSoftwareWID1" columns="SoftwareWID1"/>
        <index name="SoftwareWIDSoftwareWID2" columns="SoftwareWID2"/>
    </table>
    <table type="associative" name="SoftwareWIDContactWID">
        <comment>Represents n..n association between Software and Contact</comment>
        <comment>Contact for information on the software.</comment>
        <column required="true" name="SoftwareWID" type="@wid">
            <comment>Reference to Software</comment>
            <foreignKey toColumn="WID" toTable="Parameterizable" name="FK_SoftwareWIDContactWID1"/>
        </column>
        <column required="true" name="ContactWID" type="@wid">
            <comment>Reference to Contact</comment>
            <foreignKey toColumn="WID" toTable="Contact" name="FK_SoftwareWIDContactWID2"/>
        </column>
        <index name="SoftwareWIDContactWID1" columns="SoftwareWID"/>
        <index name="SoftwareWIDContactWID2" columns="ContactWID"/>
    </table>
</schema>
