Tuesday, June 21, 2005

Metadata for No Child Left Behind (NCLB)

For anyone in K-12 education today there is a lot of talk about the No Child Left Behind Act (NCLB). This act requires that each subgroup within a K-12 school or district (subgroups being groups of Asian, Black, Hispanic, special education or students with limited English skills) make adequate yearly progress. But in order to do this we require longitudinal data. Without good metadata definitions no state can really claim to be making good progress if they don't have consistent definitions over time and across organizations. Wouldn’t it be great if some federal agency published a set of NCLB metadata guidelines that could then directly load into cubes for doing the research on? How about in CWM format? But that would make our lives easier, wouldn't it?

Sample CWM Code for Data Warehoues of Student Testing

Dr. Data Dictionary Here is a sample of a CWM file for created for a cube from a set of relational database tables:
<?xml version="1.0" encoding="UTF-8"?>
<XMI xmi.version="1.1" timestamp="Jun 20 2005 09:35:52" xmlns:CWM="org.omg.CWM1.0" xmlns:CWMRDB="org.omg.CWM1.0/Relational" xmlns:CWMOLAP="Olap" xmlns:CWMTFM="Transformation">
 <XMI.header>
  <XMI.documentation>
   <XMI.exporter>Meta Integration Model Bridge</XMI.exporter>
   <XMI.exporterVersion>4.1.0 - Aug 16 2004 12:21:11</XMI.exporterVersion>
  </XMI.documentation>
  <XMI.metamodel xmi.name="CWM" xmi.version="1.0"/>
 </XMI.header>
 <XMI.content>
  <CWMRDB:Catalog xmi.id="_4" name="Model" visibility="public">
   <CWM:Namespace.ownedElement>
    <CWMOLAP:Schema xmi.id="_5" name="Logical" visibility="public" namespace="_4">
     <CWMOLAP:Schema.dimension>
      <CWMOLAP:Dimension xmi.id="_6" name="Assessment Summary" visibility="public" schema="_2">
       <CWM:Namespace.ownedElement>
        <CWMTFM:TransformationMap xmi.id="7" visibility="public" namespace="_6">
         <CWM:Namespace.ownedElement>
          <CWMTFM:ClassifierMap xmi.id="_8" name="unnamed_8" visibility="public" namespace="7" transformationMap="7">
           <CWMTFM:ClassifierMap.source>
            <CWM:Classifier xmi.idref="_9"/>
            <CWM:Classifier xmi.idref="_10"/>
            <CWM:Classifier xmi.idref="_11"/>
            <CWM:Classifier xmi.idref="_12"/>
            <CWM:Classifier xmi.idref="_13"/>
           </CWMTFM:ClassifierMap.source>
           <CWMTFM:ClassifierMap.target>
            <CWM:Classifier xmi.idref="_6"/>
           </CWMTFM:ClassifierMap.target>
           <CWMTFM:ClassifierMap.featureMap>
</CWMTFM:ClassifierMap.featureMap>
          </CWMTFM:ClassifierMap>
         </CWM:Namespace.ownedElement>
        </CWMTFM:TransformationMap>
       </CWM:Namespace.ownedElement>
      </CWMOLAP:Dimension>
     </CWMOLAP:Schema.dimension>
    </CWMOLAP:Schema>
    <CWMRDB:Schema xmi.id="_14" name="Physical" visibility="public" namespace="_4">
     <CWM:Namespace.ownedElement>
      <CWMRDB:Table xmi.id="_15" name="Administration" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_16" name="administrationID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_15"/>
        <CWMRDB:Column xmi.id="_18" name="vendorSubmissionID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_15"/>
        <CWMRDB:Column xmi.id="_19" name="testID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_15"/>
        <CWMRDB:Column xmi.id="_20" name="gradeID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_15"/>
        <CWMRDB:Column xmi.id="_21" name="description" isNullable="columnNullable" visibility="public" length="200" type="_22" owner="_15"/>
       </CWM:Classifier.feature>
       <CWM:Namespace.ownedElement>
        <CWMRDB:ForeignKey xmi.id="_23" name="unnamed_23" visibility="public" namespace="_15" feature="_19" uniqueKey="_24"/>
       </CWM:Namespace.ownedElement>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_9" name="Document" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_25" name="documentID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_9"/>
        <CWMRDB:Column xmi.id="_26" name="administrationID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_9"/>
        <CWMRDB:Column xmi.id="_27" name="vendorDocumentID" isNullable="columnNullable" visibility="public" precision="4" type="_17" owner="_9"/>
        <CWMRDB:Column xmi.id="_28" name="marssNumber" isNullable="columnNullable" visibility="public" length="13" type="_29" owner="_9"/>
        <CWMRDB:Column xmi.id="_30" name="marssLocalUseData" isNullable="columnNullable" visibility="public" length="10" type="_31" owner="_9"/>
        <CWMRDB:Column xmi.id="_32" name="lastName" isNullable="columnNoNulls" visibility="public" length="40" type="_33" owner="_9"/>
        <CWMRDB:Column xmi.id="_34" name="firstName" isNullable="columnNoNulls" visibility="public" length="30" type="_35" owner="_9"/>
        <CWMRDB:Column xmi.id="_36" name="middleInitial" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_9"/>
        <CWMRDB:Column xmi.id="_38" name="birthDate" isNullable="columnNullable" visibility="public" length="10" type="_31" owner="_9"/>
        <CWMRDB:Column xmi.id="_39" name="gender" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_9"/>
        <CWMRDB:Column xmi.id="_40" name="testingSchoolID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_9"/>
       </CWM:Classifier.feature>
       <CWM:Namespace.ownedElement>
        <CWMRDB:PrimaryKey xmi.id="_41" name="Documentkey" visibility="public" namespace="_9" feature="_25">
         <CWM:UniqueKey.keyRelationship>
          <CWM:KeyRelationship xmi.idref="_42"/>
          <CWM:KeyRelationship xmi.idref="_43"/>
         </CWM:UniqueKey.keyRelationship>
        </CWMRDB:PrimaryKey>
        <CWMRDB:ForeignKey xmi.id="_44" name="unnamed_44" visibility="public" namespace="_9" feature="_40" uniqueKey="_45"/>
       </CWM:Namespace.ownedElement>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_46" name="Document Characteristic" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_47" name="documentID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_46"/>
        <CWMRDB:Column xmi.id="_48" name="testOptionalInformation" isNullable="columnNullable" visibility="public" length="10" type="_31" owner="_46"/>
        <CWMRDB:Column xmi.id="_49" name="unkFlag" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_46"/>
        <CWMRDB:Column xmi.id="_50" name="lepFlag" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_46"/>
        <CWMRDB:Column xmi.id="_51" name="speFlag" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_46"/>
        <CWMRDB:Column xmi.id="_52" name="frpFlag" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_46"/>
        <CWMRDB:Column xmi.id="_53" name="migFlag" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_46"/>
        <CWMRDB:Column xmi.id="_54" name="ethnicCode" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_46"/>
        <CWMRDB:Column xmi.id="_55" name="specialCode" isNullable="columnNullable" visibility="public" length="2" type="_56" owner="_46"/>
        <CWMRDB:Column xmi.id="_57" name="languageCode" isNullable="columnNullable" visibility="public" length="3" type="_58" owner="_46"/>
        <CWMRDB:Column xmi.id="_59" name="languageClassification" isNullable="columnNullable" visibility="public" length="3" type="_58" owner="_46"/>
        <CWMRDB:Column xmi.id="_60" name="october1school" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_46"/>
        <CWMRDB:Column xmi.id="_61" name="october1district" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_46"/>
        <CWMRDB:Column xmi.id="_62" name="homeSchoolIndicator" isNullable="columnNoNulls" visibility="public" length="1" type="_37" owner="_46"/>
        <CWMRDB:Column xmi.id="_63" name="newToCountry" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_46"/>
        <CWMRDB:Column xmi.id="_64" name="significantGap" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_46"/>
       </CWM:Classifier.feature>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_65" name="Grade" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_66" name="gradeID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_65"/>
        <CWMRDB:Column xmi.id="_67" name="gradeName" isNullable="columnNoNulls" visibility="public" length="6" type="_68" owner="_65"/>
        <CWMRDB:Column xmi.id="_69" name="description" isNullable="columnNullable" visibility="public" length="200" type="_22" owner="_65"/>
       </CWM:Classifier.feature>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_70" name="Primary Score" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_71" name="documentID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_70"/>
        <CWMRDB:Column xmi.id="_72" name="scoreLabelID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_70"/>
        <CWMRDB:Column xmi.id="_73" name="scoreCodeID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_70"/>
        <CWMRDB:Column xmi.id="_74" name="achievementLevel" isNullable="columnNullable" visibility="public" precision="2" type="_75" owner="_70"/>
        <CWMRDB:Column xmi.id="_76" name="formNumber" isNullable="columnNullable" visibility="public" precision="2" type="_75" owner="_70"/>
        <CWMRDB:Column xmi.id="_77" name="attemptLogicMet" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_70"/>
       </CWM:Classifier.feature>
       <CWM:Namespace.ownedElement>
        <CWMRDB:ForeignKey xmi.id="_78" name="unnamed_78" visibility="public" namespace="_70" feature="_72" uniqueKey="_79"/>
        <CWMRDB:ForeignKey xmi.id="_42" name="unnamed_42" visibility="public" namespace="_70" feature="_71" uniqueKey="_41"/>
       </CWM:Namespace.ownedElement>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_10" name="Score" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_80" name="documentID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_10"/>
        <CWMRDB:Column xmi.id="_81" name="scoreLabelID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_10"/>
        <CWMRDB:Column xmi.id="_82" name="score" isNullable="columnNullable" visibility="public" precision="8" type="_83" owner="_10"/>
        <CWMRDB:Column xmi.id="_84" name="characteristic" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_10"/>
        <CWMRDB:Column xmi.id="_85" name="maximum" isNullable="columnNullable" visibility="public" precision="8" type="_83" owner="_10"/>
        <CWMRDB:Column xmi.id="_86" name="minimum" isNullable="columnNullable" visibility="public" precision="8" type="_83" owner="_10"/>
        <CWMRDB:Column xmi.id="_87" name="lastUserModified" isNullable="columnNoNulls" visibility="public" length="100" type="_88" owner="_10"/>
        <CWMRDB:Column xmi.id="_89" name="lastDateModified" isNullable="columnNoNulls" visibility="public" length="8" type="_90" owner="_10"/>
       </CWM:Classifier.feature>
       <CWM:Namespace.ownedElement>
        <CWMRDB:PrimaryKey xmi.id="_91" name="Scorekey" visibility="public" namespace="_10">
         <CWM:UniqueKey.feature>
          <CWM:StructuralFeature xmi.idref="_80"/>
          <CWM:StructuralFeature xmi.idref="_81"/>
         </CWM:UniqueKey.feature>
        </CWMRDB:PrimaryKey>
        <CWMRDB:ForeignKey xmi.id="_92" name="unnamed_92" visibility="public" namespace="_10" feature="_81" uniqueKey="_79"/>
        <CWMRDB:ForeignKey xmi.id="_43" name="unnamed_43" visibility="public" namespace="_10" feature="_80" uniqueKey="_41"/>
       </CWM:Namespace.ownedElement>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_93" name="Score Code" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_94" name="scoreCodeID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_93"/>
        <CWMRDB:Column xmi.id="_95" name="scoreCode1" isNullable="columnNoNulls" visibility="public" length="6" type="_68" owner="_93"/>
        <CWMRDB:Column xmi.id="_96" name="isInAverage" isNullable="columnNullable" visibility="public" length="1" type="_37" owner="_93"/>
        <CWMRDB:Column xmi.id="_97" name="description" isNullable="columnNullable" visibility="public" length="200" type="_22" owner="_93"/>
       </CWM:Classifier.feature>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_11" name="Score Label" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_98" name="scoreLabelID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_11"/>
        <CWMRDB:Column xmi.id="_99" name="fiscalYear" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_11"/>
        <CWMRDB:Column xmi.id="_100" name="testID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_11"/>
        <CWMRDB:Column xmi.id="_101" name="subjectID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_11"/>
        <CWMRDB:Column xmi.id="_102" name="gradeID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_11"/>
        <CWMRDB:Column xmi.id="_103" name="number" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_11"/>
        <CWMRDB:Column xmi.id="_104" name="StrandAbbreviation" isNullable="columnNullable" visibility="public" length="4" type="_105" owner="_11"/>
        <CWMRDB:Column xmi.id="_106" name="StrandDescription" isNullable="columnNullable" visibility="public" length="200" type="_22" owner="_11"/>
       </CWM:Classifier.feature>
       <CWM:Namespace.ownedElement>
        <CWMRDB:PrimaryKey xmi.id="_79" name="ScoreLabelkey" visibility="public" namespace="_11" feature="_98">
         <CWM:UniqueKey.keyRelationship>
          <CWM:KeyRelationship xmi.idref="_78"/>
          <CWM:KeyRelationship xmi.idref="_92"/>
         </CWM:UniqueKey.keyRelationship>
        </CWMRDB:PrimaryKey>
        <CWMRDB:ForeignKey xmi.id="_107" name="unnamed_107" visibility="public" namespace="_11" feature="_101" uniqueKey="_108"/>
        <CWMRDB:ForeignKey xmi.id="_109" name="unnamed_109" visibility="public" namespace="_11" feature="_100" uniqueKey="_24"/>
       </CWM:Namespace.ownedElement>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_12" name="Subject" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_110" name="subjectID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_12"/>
        <CWMRDB:Column xmi.id="_111" name="subjectName" isNullable="columnNoNulls" visibility="public" length="2" type="_112" owner="_12"/>
        <CWMRDB:Column xmi.id="_113" name="description" isNullable="columnNullable" visibility="public" length="200" type="_22" owner="_12"/>
       </CWM:Classifier.feature>
       <CWM:Namespace.ownedElement>
        <CWMRDB:PrimaryKey xmi.id="_108" name="Subjectkey" visibility="public" namespace="_12" feature="_110" keyRelationship="_107"/>
       </CWM:Namespace.ownedElement>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_13" name="Test" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_114" name="testID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_13"/>
        <CWMRDB:Column xmi.id="_115" name="Test Name" isNullable="columnNoNulls" visibility="public" length="20" type="_116" owner="_13"/>
        <CWMRDB:Column xmi.id="_117" name="Test Description" isNullable="columnNullable" visibility="public" length="200" type="_22" owner="_13"/>
       </CWM:Classifier.feature>
       <CWM:Namespace.ownedElement>
        <CWMRDB:PrimaryKey xmi.id="_24" name="Testkey" visibility="public" namespace="_13" feature="_114">
         <CWM:UniqueKey.keyRelationship>
          <CWM:KeyRelationship xmi.idref="_23"/>
          <CWM:KeyRelationship xmi.idref="_109"/>
         </CWM:UniqueKey.keyRelationship>
        </CWMRDB:PrimaryKey>
        <CWM:Description xmi.id="_118" visibility="public" language="" type="definition" body="Test Description" namespace="_13" modelElement="_117"/>
       </CWM:Namespace.ownedElement>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_119" name="Testing School" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_120" name="testingSchoolID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_119"/>
        <CWMRDB:Column xmi.id="_121" name="districtNumber" isNullable="columnNoNulls" visibility="public" length="4" type="_105" owner="_119"/>
        <CWMRDB:Column xmi.id="_122" name="districtType" isNullable="columnNoNulls" visibility="public" length="2" type="_56" owner="_119"/>
        <CWMRDB:Column xmi.id="_123" name="schoolNumber" isNullable="columnNoNulls" visibility="public" length="3" type="_58" owner="_119"/>
        <CWMRDB:Column xmi.id="_124" name="schoolClassification" isNullable="columnNoNulls" visibility="public" length="2" type="_56" owner="_119"/>
       </CWM:Classifier.feature>
       <CWM:Namespace.ownedElement>
        <CWMRDB:PrimaryKey xmi.id="_45" name="TestingSchoolkey" visibility="public" namespace="_119" feature="_120" keyRelationship="_44"/>
       </CWM:Namespace.ownedElement>
      </CWMRDB:Table>
      <CWMRDB:Table xmi.id="_125" name="Vendor Submission" isSystem="false" isTemporary="false" visibility="public" namespace="_14">
       <CWM:Classifier.feature>
        <CWMRDB:Column xmi.id="_126" name="vendorSubmissionID" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_125"/>
        <CWMRDB:Column xmi.id="_127" name="fiscalYear" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_125"/>
        <CWMRDB:Column xmi.id="_128" name="vendor1" isNullable="columnNoNulls" visibility="public" length="100" type="_88" owner="_125"/>
        <CWMRDB:Column xmi.id="_129" name="submissionSequence" isNullable="columnNoNulls" visibility="public" precision="4" type="_17" owner="_125"/>
        <CWMRDB:Column xmi.id="_130" name="description" isNullable="columnNullable" visibility="public" length="200" type="_22" owner="_125"/>
       </CWM:Classifier.feature>
      </CWMRDB:Table>
      <CWMRDB:SQLIndex xmi.id="_131" name="unnamed_131" visibility="public" isUnique="true" namespace="_14" spannedClass="_9">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_132" visibility="public" feature="_25" index="_131"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
      <CWMRDB:SQLIndex xmi.id="_133" name="unnamed_133" visibility="public" namespace="_14" spannedClass="_9">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_134" visibility="public" feature="_28" index="_133"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
      <CWMRDB:SQLIndex xmi.id="_135" name="unnamed_135" visibility="public" namespace="_14" spannedClass="_9">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_136" visibility="public" feature="_40" index="_135"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
      <CWMRDB:SQLIndex xmi.id="_137" name="unnamed_137" visibility="public" isUnique="true" namespace="_14" spannedClass="_10">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_138" visibility="public" feature="_80" index="_137"/>
        <CWMRDB:SQLIndexColumn xmi.id="_139" visibility="public" feature="_81" index="_137"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
      <CWMRDB:SQLIndex xmi.id="_140" name="unnamed_140" visibility="public" isUnique="true" namespace="_14" spannedClass="_11">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_141" visibility="public" feature="_99" index="_140"/>
        <CWMRDB:SQLIndexColumn xmi.id="_142" visibility="public" feature="_100" index="_140"/>
        <CWMRDB:SQLIndexColumn xmi.id="_143" visibility="public" feature="_101" index="_140"/>
        <CWMRDB:SQLIndexColumn xmi.id="_144" visibility="public" feature="_102" index="_140"/>
        <CWMRDB:SQLIndexColumn xmi.id="_145" visibility="public" feature="_103" index="_140"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
      <CWMRDB:SQLIndex xmi.id="_146" name="unnamed_146" visibility="public" isUnique="true" namespace="_14" spannedClass="_11">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_147" visibility="public" feature="_98" index="_146"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
      <CWMRDB:SQLIndex xmi.id="_148" name="unnamed_148" visibility="public" isUnique="true" namespace="_14" spannedClass="_12">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_149" visibility="public" feature="_110" index="_148"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
      <CWMRDB:SQLIndex xmi.id="_150" name="unnamed_150" visibility="public" isUnique="true" namespace="_14" spannedClass="_13">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_151" visibility="public" feature="_114" index="_150"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
      <CWMRDB:SQLIndex xmi.id="_152" name="unnamed_152" visibility="public" isUnique="true" namespace="_14" spannedClass="_119">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_153" visibility="public" feature="_120" index="_152"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
      <CWMRDB:SQLIndex xmi.id="_154" name="unnamed_154" visibility="public" isUnique="true" namespace="_14" spannedClass="_119">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_155" visibility="public" feature="_121" index="_154"/>
        <CWMRDB:SQLIndexColumn xmi.id="_156" visibility="public" feature="_122" index="_154"/>
        <CWMRDB:SQLIndexColumn xmi.id="_157" visibility="public" feature="_123" index="_154"/>
        <CWMRDB:SQLIndexColumn xmi.id="_158" visibility="public" feature="_124" index="_154"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
      <CWMRDB:SQLIndex xmi.id="_159" name="unnamed_159" visibility="public" namespace="_14" spannedClass="_119">
       <CWM:Index.indexedFeature>
        <CWMRDB:SQLIndexColumn xmi.id="_160" visibility="public" feature="_121" index="_159"/>
        <CWMRDB:SQLIndexColumn xmi.id="_161" visibility="public" feature="_122" index="_159"/>
        <CWMRDB:SQLIndexColumn xmi.id="_162" visibility="public" feature="_123" index="_159"/>
        <CWMRDB:SQLIndexColumn xmi.id="_163" visibility="public" feature="_124" index="_159"/>
       </CWM:Index.indexedFeature>
      </CWMRDB:SQLIndex>
     </CWM:Namespace.ownedElement>
    </CWMRDB:Schema>
    <CWMOLAP:Schema xmi.id="_14" name="Physical" visibility="public" namespace="_4">
</CWMOLAP:Schema>
   </CWM:Namespace.ownedElement>
  </CWMRDB:Catalog>
  <CWMRDB:SQLSimpleType xmi.id="_37" name="VARCHAR2" visibility="public" characterMaximumLength="1" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_29" name="VARCHAR2" visibility="public" characterMaximumLength="13" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_31" name="VARCHAR2" visibility="public" characterMaximumLength="10" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_105" name="VARCHAR2" visibility="public" characterMaximumLength="4" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_56" name="VARCHAR2" visibility="public" characterMaximumLength="2" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_58" name="VARCHAR2" visibility="public" characterMaximumLength="3" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_88" name="VARCHAR2" visibility="public" characterMaximumLength="100" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_33" name="VARCHAR2" visibility="public" characterMaximumLength="40" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_35" name="VARCHAR2" visibility="public" characterMaximumLength="30" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_22" name="VARCHAR2" visibility="public" characterMaximumLength="200" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_112" name="VARCHAR2" visibility="public" characterMaximumLength="2" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_116" name="VARCHAR2" visibility="public" characterMaximumLength="20" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_68" name="VARCHAR2" visibility="public" characterMaximumLength="6" characterOctetLength="1" typeNumber="12"/>
  <CWMRDB:SQLSimpleType xmi.id="_90" name="TIMESTAMP" visibility="public" dateTimePrecision="8" typeNumber="93"/>
  <CWMRDB:SQLSimpleType xmi.id="_83" name="FLOAT" visibility="public" numericPrecision="8" typeNumber="6"/>
  <CWMRDB:SQLSimpleType xmi.id="_17" name="NUMBER" visibility="public" numericPrecision="4" typeNumber="4"/>
  <CWMRDB:SQLSimpleType xmi.id="_75" name="NUMBER" visibility="public" numericPrecision="2" typeNumber="4"/>
 </XMI.content>
</XMI>

Vendors import but don't export metadata

Dr. Data Dictionary I have found there are serverl vendors that import metadata such as the CWM format but I have not found a lot of vendors that export metadata. Anyone have experience with this? Is this a "lock-in" strategy that vendors use? What tools to people use to manage metadata that comply with ISO 11179?

National Information Exchange Model (NIEM)

How many people out there have heard of the NIEM? It is the national informaiton exchange model. A wonderful goal - to have a metadata standard for exchanging data between organizations. Finally we can agree that it is PersonBirthDate and not DOB or BirthDate or birthData or DateOfBirth etc. What should the role be of federal agencies in helping us adopt these standards. Check out the NIEM web site:

Metadata Quotes

Here are some of my favorite quotes about metadata:
Metadata is gaining mainstream acceptance. Business managers realize that they want to treat data as a strategic asset....Managers increasingly recognize that applications must revolve around the data, not the other way around...This is a shift of Copernican magnitude." Michael Daconta, NIEM Program Manager
Only if every user has a common and exact understanding of the data can it be exchanged trouble-free. ISO/IEC 11179 Metadata Registry Specification
To maximize success in service oriented development of applications and enterprise wide sharing and reuse initiatives (such as data warehousing), a well-scoped and focused function to manage key metadata artifacts is cost-effective and critical. Gartner Group
If software is ever going to be able to effectively inter-operate (in ways that were not explicitly preconceived and engineered), it will be because applications share enough of the semantics of their data elements. But one of the most misunderstood and frankly ironic things about "semantics" is that it means different things to different people. Doug Lenat, Cycorp

Ontology Web Language (OWL)

I have been using the OWL format to publish my data dictionary. The format built on top of RDF but I have found that it is very difficult to represent non-sequential ranges in OWL. This is much easier to do with XML Schemas enumerations.

Common Warehouse Metadata (CWM)

I have been attempting to publish education metdata data in Common Warehouse Metadata CWM format. This is one of the only formats I can find that has standards for expressing Cube Dimensions. I am not finding a lot of CWM example out there. If you know of any, please let me know. If not perhaps I will publish a few of them.