Commits

petermr committed bb43937

Cleaned Weerpaong's dictionaries to validate

Comments (0)

Files changed (6)

dict/cmlcompAbstractPropertiesDict.xml

 <?xml version="1.0" encoding="UTF-8"?>
-<dictionary xmlns="http://www.xml-cml.org/schema" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:unit="http://www.xml-cml.org/dictionary/unit/" xmlns:unitType="http://www.xml-cml.org/dictionary/unitType/" xmlns:cmlx="http://www.xml-cml.org/schema/cmlx" convention="convention:dictionary" title="Computational chemistry concepts" namespace="http://www.xml-cml.org/dict/compchem/property/g03" dictionaryPrefix="cmlcomp">
-    <entry id="property" term="property" unitType="unitType:unknown" units="" cmlx:superclass="">
+<dictionary 
+      xmlns="http://www.xml-cml.org/schema" 
+      xmlns:xhtml="http://www.w3.org/1999/xhtml" 
+      xmlns:unit="http://www.xml-cml.org/dictionary/unit/" 
+      xmlns:unitType="http://www.xml-cml.org/dictionary/unitType/" 
+      xmlns:cmlx="http://www.xml-cml.org/schema/cmlx" 
+      xmlns:cml="http://www.xml-cml.org/dictionary/cml/" 
+      xmlns:convention="http://www.xml-cml.org/convention/" 
+      convention="convention:dictionary" 
+      title="Computational chemistry concepts" 
+      namespace="http://www.xml-cml.org/dict/compchem/property/" 
+      xmlns:dc="http://purl.org/dc/elements/1.1/" 
+      dictionaryPrefix="cmlcomp">
+        <description>
+            <xhtml:p>Toplevel dictionary for computational chemistry</xhtml:p>
+            <xhtml:p>Concepts in this dictionary are general throughout computational chemistry and
+            are likely to be referenced by two or more codes. Entries should be added
+            in response to discovery in a code (and preferably two or more). All entries should be interpretable without 
+            reference to a specific code.</xhtml:p>
+            <xhtml:p>It is likely that some entries are "superclasses" of entries in code-specific
+            dictionaries. The precise semantics have not yet been agreed.</xhtml:p>
+            <xhtml:p>Most entries will not carry specific units as these will be overridden by the 
+            code specific dictionaries. In some cases, however, the units are universal 
+            (e.g. molecular charges measured in electrons)</xhtml:p>
+        </description>
+        <dc:author>Weerapong Phadungsukanan</dc:author>
+        <dc:author>Peter Murray-Rust</dc:author>
+
+    <entry id="property" term="property" unitType="unitType:none" dataType="cml:property" 
+        units="unit:unknown" cmlx:superclass="">
         <definition>
             <xhtml:p>property of molecule or calculated result</xhtml:p>
         </definition>
             <xhtml:p>this can be either calculated property of molecule or calcualted results.</xhtml:p>
         </description>
     </entry>
-    <entry id="property.symbol" term="symbol" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cml:molecule">
+
+    <entry id="property.symbol" term="symbol" dataType="xsd:string" unitType="unitType:none" 
+        units="unit:none" cmlx:superclass="cml:molecule">
         <definition>
             <xhtml:p>symbol</xhtml:p>
         </definition>
         <description>
-            <xhtml:p>symbol</xhtml:p>
+            <xhtml:p>symbol TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:string"/>
         </cmlx:template>
     </entry>
-    <entry id="property.inchi" term="inchi" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cml:molecule">
+    <entry id="property.inchi" term="inchi" dataType="xsd:string" unitType="unitType:none" 
+        units="unit:none" cmlx:superclass="cml:molecule">
         <definition>
             <xhtml:p>InChi string</xhtml:p>
         </definition>
             <cmlx:scalar dataType="xsd:string"/>
         </cmlx:template>
     </entry>
-    <entry id="property.charge" term="charge" dataType="xsd:double" unitType="unitType:unknown" units="units:e" cmlx:superclass="cml:molecule">
+    
+    <entry id="property.charge" term="charge" dataType="xsd:double" unitType="unitType:charge" 
+        units="unit:e" cmlx:superclass="cml:molecule">
         <definition>
             <xhtml:p>Charge of molecule</xhtml:p>
         </definition>
         <description>
-            <xhtml:p>Charge of molecule (the negative of the electric charge carried by a single electron)</xhtml:p>
+            <xhtml:p>Charge of molecule (the negative of the electric charge carried by a single electron). 
+            As this is a formal parameter it exceptionally carries units.</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:e"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:e"/>
         </cmlx:template>
     </entry>
-    <entry id="property.spinMultiplicity" term="spinMultiplicity" dataType="xsd:integer" unitType="unitType:unknown" units="units:none" cmlx:superclass="cml:molecule">
+    
+    <entry id="property.spinMultiplicity" term="spinMultiplicity" dataType="xsd:integer" 
+      unitType="unitType:none" units="unit:none" >
         <definition>
             <xhtml:p>Spin multiplicity</xhtml:p>
         </definition>
             <xhtml:p>spin multiplicity of a molecule</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:integer" units="units:none"/>
+            <cmlx:scalar dataType="xsd:integer" units="unit:none"/>
         </cmlx:template>
     </entry>
-    <entry id="property.coord" term="coordinate" dataType="xsd:double" unitType="unitType:unknown" units="units:A" cmlx:superclass="cml:molecule">
+    
+    <entry id="property.coord" term="coordinate" dataType="xsd:double" unitType="unitType:none" 
+        units="unit:angstrom" cmlx:superclass="cml:molecule">
         <definition>
             <xhtml:p>coordinate</xhtml:p>
         </definition>
             <xhtml:p>coordinate</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:vector3 dataType="xsd:double" delimiter="" units="units:A"/>
+            <cmlx:vector3 dataType="xsd:double" units="unit:A"/>
         </cmlx:template>
     </entry>
-    <entry id="property.pointGroup" term="pointGroup" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cml:molecule">
+    <entry id="property.pointGroup" term="pointGroup" dataType="xsd:string" unitType="unitType:none" units="unit:none" cmlx:superclass="cml:molecule">
         <definition>
             <xhtml:p>Point group of a molecule</xhtml:p>
         </definition>
             <cmlx:scalar dataType="xsd:string"/>
         </cmlx:template>
     </entry>
-    <entry id="property.nsymrot" term="nsymrot" dataType="xsd:integer" unitType="unitType:unknown" units="units:none" cmlx:superclass="cml:molecule">
+    <entry id="property.nsymrot" term="nsymrot" dataType="xsd:integer" unitType="unitType:none" units="unit:none" cmlx:superclass="cml:molecule">
         <definition>
             <xhtml:p>number of rotational symmetry of a molecule</xhtml:p>
         </definition>
             <xhtml:p>needs a description</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:integer" units="units:none"/>
+            <cmlx:scalar dataType="xsd:integer" units="unit:none"/>
         </cmlx:template>
     </entry>
-    <entry id="property.stoichiometry" term="stoichiometry" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cml:molecule">
+    <entry id="property.stoichiometry" term="stoichiometry" dataType="xsd:string" unitType="unitType:none" units="unit:none" cmlx:superclass="cml:molecule">
         <definition>
             <xhtml:p>Stoichiometry of molecule</xhtml:p>
         </definition>
             <cmlx:scalar dataType="xsd:string"/>
         </cmlx:template>
     </entry>
-    <entry id="property.rotconstants" term="rotationalconstants" dataType="xsd:double" unitType="unitType:unknown" units="units:Hz" cmlx:superclass="property">
+    <entry id="property.rotconstants" term="rotationalconstants" dataType="xsd:double" unitType="unitType:none" units="unit:Hz" cmlx:superclass="property">
         <definition>
             <xhtml:p>Rotational constants of molecule</xhtml:p>
         </definition>
             <xhtml:p>needs a description</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="units:Hz"/>
+            <cmlx:array dataType="xsd:double" minLength="1" units="unit:Hz"/>
         </cmlx:template>
     </entry>
-    <entry id="property.freqmode" term="freqmode" dataType="xsd:double" unitType="unitType:unknown" units="units:cm-1" cmlx:superclass="property">
+    <entry id="property.freqmode" term="freqmode" dataType="xsd:double" unitType="unitType:none" units="unit:cm-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>A vibrational eigenfrequencies (cm^-1)</xhtml:p>
         </definition>
             <xhtml:p>need description</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="units:cm-1"/>
+            <cmlx:array dataType="xsd:double" minLength="1" units="unit:cm-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.nfreqmode" term="nfreqmode" dataType="xsd:integer" unitType="unitType:unknown" units="units:none" cmlx:superclass="property">
+    <entry id="property.nfreqmode" term="nfreqmode" dataType="xsd:integer" unitType="unitType:none" units="unit:none" cmlx:superclass="property">
         <definition>
             <xhtml:p>The total number of molecular vibrational frequencies</xhtml:p>
         </definition>
             <xhtml:p>The total number of molecular vibrational frequencies</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:integer" units="units:none"/>
+            <cmlx:scalar dataType="xsd:integer" units="unit:none"/>
         </cmlx:template>
     </entry>
-    <entry id="property.reducedmass" term="reducedmass" dataType="xsd:double" unitType="unitType:unknown" units="units:amu" cmlx:superclass="property">
+    <entry id="property.reducedmass" term="reducedmass" dataType="xsd:double" unitType="unitType:none" units="unit:amu" cmlx:superclass="property">
         <definition>
             <xhtml:p>An effective mass of the molecular vibration</xhtml:p>
         </definition>
             <xhtml:p>The reduced mass associated with each vibrational mode of the molecule</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="units:amu"/>
+            <cmlx:array dataType="xsd:double" minLength="1" units="unit:amu"/>
         </cmlx:template>
     </entry>
-    <entry id="property.forceconstant" term="forceconstant" dataType="xsd:double" unitType="unitType:unknown" units="units:mDyne.A-1" cmlx:superclass="property">
+    <entry id="property.forceconstant" term="forceconstant" dataType="xsd:double" unitType="unitType:none" units="unit:mDyne.A-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>A vibrational force constant</xhtml:p>
         </definition>
             <xhtml:p>A force constant is the second derivative coefficient in an expansion of the molecular vibrational potential.</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="units:mDyne.A-1"/>
+            <cmlx:array dataType="xsd:double" minLength="1" units="unit:mDyne.A-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.irintensity" term="irintensity" dataType="xsd:double" unitType="unitType:unknown" units="units:KM.mol-1" cmlx:superclass="property">
+    <entry id="property.irintensity" term="irintensity" dataType="xsd:double" unitType="unitType:none" units="unit:KM.mol-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>IR intensity (infrared intensity??)</xhtml:p>
         </definition>
             <xhtml:p>need description</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="units:KM.mol-1"/>
+            <cmlx:array dataType="xsd:double" minLength="1" units="unit:KM.mol-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.freqmodeeigen" term="freqmodeeigen" dataType="xsd:double" unitType="unitType:unknown" units="units:A" cmlx:superclass="property">
+    <entry id="property.freqmodeeigen" term="freqmodeeigen" dataType="xsd:double" unitType="unitType:none" units="unit:A" cmlx:superclass="property">
         <definition>
             <xhtml:p>A vibrational eigenvector</xhtml:p>
         </definition>
             <xhtml:p>An eigenvector of vibrational eigenfrequency is associated with the atomic coordiates</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:matrix dataType="xsd:double" units="units:A"/>
+            <cmlx:matrix dataType="xsd:double" units="unit:A"/>
         </cmlx:template>
     </entry>
-    <entry id="property.temperature" term="temperature" dataType="xsd:double" unitType="unitType:unknown" units="units:K" cmlx:superclass="property">
+    <entry id="property.temperature" term="temperature" dataType="xsd:double" unitType="unitType:none" units="unit:K" cmlx:superclass="property">
         <definition>
             <xhtml:p>Temperature</xhtml:p>
         </definition>
             <xhtml:p>Temperature (K)</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:K"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:K"/>
         </cmlx:template>
     </entry>
-    <entry id="property.pressure" term="pressure" dataType="xsd:double" unitType="unitType:unknown" units="units:atm" cmlx:superclass="property">
+    <entry id="property.pressure" term="pressure" dataType="xsd:double" unitType="unitType:none" units="unit:atm" cmlx:superclass="property">
         <definition>
             <xhtml:p>Pressure</xhtml:p>
         </definition>
             <xhtml:p>Pressure</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:atm"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:atm"/>
         </cmlx:template>
     </entry>
-    <entry id="property.cv" term="cv" dataType="xsd:double" unitType="unitType:unknown" units="units:J.mol-1.K-1" cmlx:superclass="property">
+    <entry id="property.cv" term="cv" dataType="xsd:double" unitType="unitType:none" units="unit:J.mol-1.K-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>Molar heat capacity at constant volume</xhtml:p>
         </definition>
             <xhtml:p>Cv is calculated from the partition function in link ??</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:J.mol-1.K-1"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:J.mol-1.K-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.cp" term="cp" dataType="xsd:double" unitType="unitType:unknown" units="units:J.mol-1.K-1" cmlx:superclass="property">
+    <entry id="property.cp" term="cp" dataType="xsd:double" unitType="unitType:none" units="unit:J.mol-1.K-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>Molar heat capacity at pressure volume</xhtml:p>
         </definition>
             <xhtml:p>Cp is calculated from the partition function in link ??</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:J.mol-1.K-1"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:J.mol-1.K-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.h" term="enthalpy" dataType="xsd:double" unitType="unitType:unknown" units="units:J.mol-1" cmlx:superclass="property">
+    <entry id="property.h" term="enthalpy" dataType="xsd:double" unitType="unitType:none" units="unit:J.mol-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>Enthalpy</xhtml:p>
         </definition>
             <xhtml:p>Enthalpy of molecule at specific temperature and pressure</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:J.mol-1"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:J.mol-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.hf" term="hf" dataType="xsd:double" unitType="unitType:unknown" units="units:J.mol-1" cmlx:superclass="property">
+    <entry id="property.hf" term="hf" dataType="xsd:double" unitType="unitType:none" units="unit:J.mol-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>Enthalpy of formation at T K</xhtml:p>
         </definition>
             <xhtml:p>Enthalpy of formation at T K</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:J.mol-1"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:J.mol-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.hf298" term="hf298" dataType="xsd:double" unitType="unitType:unknown" units="units:J.mol-1" cmlx:superclass="property">
+    <entry id="property.hf298" term="hf298" dataType="xsd:double" unitType="unitType:none" units="unit:J.mol-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>Enthalpy of formation at 298.15 K</xhtml:p>
         </definition>
             <xhtml:p>Enthalpy of formation at 298.15 K</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:J.mol-1"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:J.mol-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.s" term="entropy" dataType="xsd:double" unitType="unitType:unknown" units="units:J.mol-1.K-1" cmlx:superclass="property">
+    <entry id="property.s" term="entropy" dataType="xsd:double" unitType="unitType:none" units="unit:J.mol-1.K-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>Entropy</xhtml:p>
         </definition>
             <xhtml:p>Entropy of molecule at specific temperature and pressure</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:J.mol-1.K-1"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:J.mol-1.K-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.scfenergy" term="scfenergy" dataType="xsd:double" unitType="unitType:unknown" units="units:hartree" cmlx:superclass="property">
+    <entry id="property.scfenergy" term="scfenergy" dataType="xsd:double" unitType="unitType:none" units="unit:hartree" cmlx:superclass="property">
         <definition>
             <xhtml:p>Self-consistent field energy of quantum calculation</xhtml:p>
         </definition>
             <xhtml:p>needs a description</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:hartree"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:hartree"/>
         </cmlx:template>
     </entry>
-    <entry id="property.totEE" term="totalelectronicenergy" dataType="xsd:double" unitType="unitType:unknown" units="units:hartree" cmlx:superclass="property">
+    <entry id="property.totEE" term="totalelectronicenergy" dataType="xsd:double" unitType="unitType:none" units="unit:hartree" cmlx:superclass="property">
         <definition>
             <xhtml:p>total electronic energy</xhtml:p>
         </definition>
             <xhtml:p>need description</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:hartree"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:hartree"/>
         </cmlx:template>
     </entry>
-    <entry id="property.totKE" term="totalkineticenergy" dataType="xsd:double" unitType="unitType:unknown" units="units:J.mol-1" cmlx:superclass="property">
+    <entry id="property.totKE" term="totalkineticenergy" dataType="xsd:double" unitType="unitType:none" units="unit:J.mol-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>total kinetic energy</xhtml:p>
         </definition>
             <xhtml:p>need description</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:J.mol-1"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:J.mol-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.totPE" term="totalpotentialenergy" dataType="xsd:double" unitType="unitType:unknown" units="units:J.mol-1" cmlx:superclass="property">
+    <entry id="property.totPE" term="totalpotentialenergy" dataType="xsd:double" unitType="unitType:none" units="unit:J.mol-1" cmlx:superclass="property">
         <definition>
             <xhtml:p>total potential energy</xhtml:p>
         </definition>
             <xhtml:p>total potential energy</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:J.mol-1"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:J.mol-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.totTE" term="thermalenergy" dataType="xsd:double" unitType="unitType:unknown" units="units:J" cmlx:superclass="property">
+    <entry id="property.totTE" term="thermalenergy" dataType="xsd:double" unitType="unitType:none" units="unit:J" cmlx:superclass="property">
         <definition>
             <xhtml:p>Thermal energy of a molecule at specific temperature and pressure</xhtml:p>
         </definition>
             <xhtml:p>Thermal energy is a form of energy that manifests itself as an increase of temperature.</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:J"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:J"/>
         </cmlx:template>
     </entry>
-    <entry id="property.zpve" term="zpve" dataType="xsd:double" unitType="unitType:unknown" units="molar_energy:unknown" cmlx:superclass="property">
+    <entry id="property.zpve" term="zpve" dataType="xsd:double" unitType="unitType:molar_energy" units="unit:unknown" cmlx:superclass="property">
         <definition>
             <xhtml:p>Zero-Point Vibrational Energy (ZPVE)</xhtml:p>
         </definition>
             <xhtml:p>The total sum of energies of all vibrational mode of a molecule at absolute zero (0 K).</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="molar_energy:unknown"/>
+            <cmlx:scalar dataType="xsd:double" units="molar_energy:none"/>
         </cmlx:template>
     </entry>
-    <entry id="property.polarizability" term="polarizability" dataType="xsd:float" unitType="unitType:unknown" units="units:unknown" cmlx:superclass="property">
+    <entry id="property.polarizability" term="polarizability" dataType="xsd:float" unitType="unitType:none" units="unit:unknown" cmlx:superclass="property">
         <definition>
             <xhtml:p>Polarizability</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:float" length="6" delimiter="" units="units:unknown"/>
+            <cmlx:array dataType="xsd:float" length="6" units="unit:none"/>
         </cmlx:template>
     </entry>
-    <entry id="property.dipole" term="dipole" dataType="xsd:float" unitType="unitType:unknown" units="units:unknown" cmlx:superclass="property">
+    <entry id="property.dipole" term="dipole" dataType="xsd:float" unitType="unitType:none" units="unit:none" cmlx:superclass="property">
         <definition>
             <xhtml:p>Dipole</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:vector3 dataType="xsd:float" delimiter="" units="units:unknown"/>
+            <cmlx:vector3 dataType="xsd:float" units="unit:none"/>
         </cmlx:template>
     </entry>
-    <entry id="property.diagvibpolar" term="diagonal vibrational polarizability" dataType="xsd:float" unitType="unitType:unknown" units="units:unknown" cmlx:superclass="property">
+    <entry id="property.diagvibpolar" term="diagonal vibrational polarizability" dataType="xsd:float" unitType="unitType:none" units="unit:none" cmlx:superclass="property">
         <definition>
             <xhtml:p>diagonal vibrational polarizability</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:vector3 dataType="xsd:float" delimiter="" units="units:unknown"/>
+            <cmlx:vector3 dataType="xsd:float" units="unit:none"/>
         </cmlx:template>
     </entry>
-    <entry id="property.pmoi" term="Principal moment of inertia" dataType="xsd:float" unitType="unitType:unknown" units="units:unknown" cmlx:superclass="property">
+    <entry id="property.pmoi" term="Principal moment of inertia" dataType="xsd:float" unitType="unitType:none" units="unit:none" cmlx:superclass="property">
         <definition>
             <xhtml:p>Principal moment of inertia</xhtml:p>
         </definition>
             <xhtml:p>Principal moment of inertia</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array length="3" dataType="xsd:float" delimiter="" units="units:unknown"/>
+            <cmlx:array length="3" dataType="xsd:float" units="unit:none"/>
         </cmlx:template>
     </entry>
-    <entry id="property.pmoiaxis" term="Principal moment of inertia axis" dataType="xsd:float" unitType="unitType:unknown" units="units:amu.bohr2" cmlx:superclass="property">
+    <entry id="property.pmoiaxis" term="Principal moment of inertia axis" dataType="xsd:float" unitType="unitType:none" units="unit:amu.bohr2" cmlx:superclass="property">
         <definition>
             <xhtml:p>Principal moment of inertia axis</xhtml:p>
         </definition>
             <xhtml:p>Principal moment of inertia axis</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:matrix dataType="xsd:float" rows="3" columns="3" delimiter="" units="units:amu.bohr2"/>
+            <cmlx:matrix dataType="xsd:float" rows="3" columns="3" units="unit:amu.bohr2"/>
         </cmlx:template>
     </entry>
+    
 </dictionary>

dict/cmlcompGaussian03PropertiesDict.xml

 <?xml version="1.0" encoding="UTF-8"?>
-<dictionary xmlns="http://www.xml-cml.org/schema" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:unit="http://www.xml-cml.org/dictionary/unit/" xmlns:unitType="http://www.xml-cml.org/dictionary/unitType/" xmlns:cmlx="http://www.xml-cml.org/schema/cmlx" convention="convention:dictionary" title="Computational chemistry concepts for Gaussian 03" namespace="http://www.xml-cml.org/dict/compchem/property/g03/" dictionaryPrefix="cmlcomp">
-    <entry id="property.g03.rotconstants" term="" dataType="xsd:double" unitType="unitType:unknown" units="units:Hz" cmlx:superclass="property.rotconstants">
+<dictionary 
+    xmlns="http://www.xml-cml.org/schema" 
+    xmlns:xhtml="http://www.w3.org/1999/xhtml" 
+    xmlns:unit="http://www.xml-cml.org/dictionary/unit/" 
+    xmlns:unitType="http://www.xml-cml.org/dictionary/unitType/" 
+    xmlns:cmlx="http://www.xml-cml.org/schema/cmlx" 
+    convention="convention:dictionary" 
+    title="Computational chemistry concepts for Gaussian 03" 
+    namespace="http://www.xml-cml.org/dict/compchem/property/g03/" 
+    dictionaryPrefix="g03"
+    xmlns:cml="http://www.xml-cml.org/dictionary/cml/" 
+    xmlns:convention="http://www.xml-cml.org/convention/" 
+    xmlns:dc="http://purl.org/dc/elements/1.1/" 
+    >
+    
+    <dc:author>Weerapong Phadungsakanan</dc:author>    
+    <dc:author>Peter Murray-Rust</dc:author>
+    <description>
+        <xhtml:p>Dictionary terms created by W.P. as a result of parsing and interpreting
+        Gaussian logfiles</xhtml:p>
+    </description>
+    
+    <entry id="property.g03.rotconstants" term="Rotational constants" dataType="xsd:double" 
+        unitType="unitType:frequency" units="unit:Hz" cmlx:superclass="property.rotconstants">
+    <dc:author>Weerapong Phadungsakanan</dc:author>    
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="units:Hz"/>
+            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="unit:Hz"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.freqmode" term="" dataType="xsd:double" unitType="unitType:unknown" units="units:cm-1" cmlx:superclass="property.freqmode">
+    
+    <entry id="property.g03.freqmode" term="Frequency modes" dataType="xsd:double" 
+        unitType="unitType:unknown" units="unit:cm-1" cmlx:superclass="property.freqmode">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="units:cm-1"/>
+            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="unit:cm-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.reducedmass" term="" dataType="xsd:double" unitType="unitType:unknown" units="units:amu" cmlx:superclass="property.reducedmass">
+    
+    <entry id="property.g03.reducedmass" term="Reduced mass" dataType="xsd:double" 
+        unitType="unitType:unknown" units="unit:amu" cmlx:superclass="property.reducedmass">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="units:amu"/>
+            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="unit:amu"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.forceconstant" term="" dataType="xsd:double" unitType="unitType:unknown" units="units:mDyne.A-1" cmlx:superclass="property.forceconstant">
+    
+    <entry id="property.g03.forceconstant" term="Force constant" dataType="xsd:double" 
+        unitType="unitType:unknown" units="unit:mDyne.A-1" cmlx:superclass="property.forceconstant">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="units:mDyne.A-1"/>
+            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="unit:mDyne.A-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.irintensity" term="" dataType="xsd:double" unitType="unitType:unknown" units="units:KM.mol-1" cmlx:superclass="property.irintensity">
+    
+    <entry id="property.g03.irintensity" term="IR intensity" dataType="xsd:double" 
+        unitType="unitType:unknown" units="unit:KM.mol-1" cmlx:superclass="property.irintensity">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="units:KM.mol-1"/>
+            <cmlx:array dataType="xsd:double" minLength="1" delimiter="" units="unit:KM.mol-1"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.freqmodeeigen" term="" dataType="xsd:double" unitType="unitType:unknown" units="units:A" cmlx:superclass="property.freqmodeeigen">
+    
+    <entry id="property.g03.freqmodeeigen" term="Frequency mode eigen" dataType="xsd:double" 
+        unitType="unitType:unknown" units="unit:A" cmlx:superclass="property.freqmodeeigen">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:matrix dataType="xsd:double" units="units:A"/>
+            <cmlx:matrix dataType="xsd:double" units="unit:A"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.cv" term="" dataType="xsd:double" unitType="unitType:unknown" units="molar_heat_capacity:unknown" cmlx:superclass="property.cv">
+    
+    <entry id="property.g03.cv" term="Molar heat capacity constant volume" dataType="xsd:double" 
+        unitType="unitType:molar_heat_capacity" units="unit:unknown" cmlx:superclass="property.cv">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:double" units="molar_heat_capacity:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.cp" term="" dataType="xsd:double" unitType="unitType:unknown" units="molar_heat_capacity:unknown" cmlx:superclass="property.cp">
+    
+    <entry id="property.g03.cp" term="Molar heat capacity constant pressure" dataType="xsd:double" 
+       unitType="unitType:molar_heat_capacity" units="unit:unknown" cmlx:superclass="property.cp">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:double" units="molar_heat_capacity:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.h" term="" dataType="xsd:double" unitType="unitType:unknown" units="molar_enthalpy:unknown" cmlx:superclass="property.h">
+    
+    <entry id="property.g03.h" term="Molar enthalpy" dataType="xsd:double" 
+        unitType="unitType:molar_enthalpy" units="unit:unknown" cmlx:superclass="property.h">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
+        </description>
+        <cmlx:template>
+            <cmlx:scalar dataType="xsd:double" unitType="unitType:molar_enthalpy"/>
+        </cmlx:template>
+    </entry>
+    
+    <entry id="property.g03.hf" term="Molar enthalpy" dataType="xsd:double" 
+        unitType="unitType:molar_enthalpy" units="unit:unknown" cmlx:superclass="property.hf">
+        <definition>
+            <xhtml:p>TODO</xhtml:p>
+        </definition>
+        <description>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:double" units="molar_enthalpy:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.hf" term="" dataType="xsd:double" unitType="unitType:unknown" units="molar_enthalpy:unknown" cmlx:superclass="property.hf">
+    
+    <entry id="property.g03.hf298" term="Heat of formation 298 K" dataType="xsd:double" 
+        unitType="unitType:molar_enthalpy" units="unit:unknown" cmlx:superclass="property.hf298">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="molar_enthalpy:unknown"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:mo"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.hf298" term="" dataType="xsd:double" unitType="unitType:unknown" units="units:mo" cmlx:superclass="property.hf298">
+    
+    <entry id="property.g03.s298" term="entropy at 298 K" dataType="xsd:double" 
+        unitType="unitType:molar_entropy" units="unit:unknown" cmlx:superclass="property.s">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
-        </description>
-        <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:mo"/>
-        </cmlx:template>
-    </entry>
-    <entry id="property.g03.s298" term="" dataType="xsd:double" unitType="unitType:unknown" units="molar_entropy:unknown" cmlx:superclass="property.s">
-        <definition>
-            <xhtml:p/>
-        </definition>
-        <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:double" units="molar_entropy:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.scfenergy" term="" dataType="xsd:double" unitType="unitType:unknown" units="units:hartree" cmlx:superclass="property.scfenergy">
+    
+    <entry id="property.g03.scfenergy" term="SCF energy" dataType="xsd:double" 
+        unitType="unitType:energy" units="unit:hartree" cmlx:superclass="property.scfenergy">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:scalar dataType="xsd:double" units="units:hartree"/>
+            <cmlx:scalar dataType="xsd:double" units="unit:hartree"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.totEE" term="" dataType="xsd:double" unitType="unitType:unknown" units="molar_energy:unknown" cmlx:superclass="property.totEE">
+    
+    <entry id="property.g03.totEE" term="Total electronic energy" dataType="xsd:double" 
+        unitType="unitType:molar_energy" units="unit:unknown" cmlx:superclass="property.totEE">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:double" units="molar_energy:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.totKE" term="" dataType="xsd:double" unitType="unitType:unknown" units="molar_energy:unknown" cmlx:superclass="property.totKE">
+    
+    <entry id="property.g03.totKE" term="Total kinetic energy" dataType="xsd:double" 
+        unitType="unitType:molar_energy" units="unit:unknown" cmlx:superclass="property.totKE">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:double" units="molar_energy:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.totPE" term="" dataType="xsd:double" unitType="unitType:unknown" units="molar_energy:unknown" cmlx:superclass="property.totPE">
+    
+    <entry id="property.g03.totPE" term="Total potential energy" dataType="xsd:double" 
+        unitType="unitType:molar_energy" units="unit:unknown" cmlx:superclass="property.totPE">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:double" units="molar_energy:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.totTE" term="" dataType="xsd:double" unitType="unitType:unknown" units="molar_energy:unknown" cmlx:superclass="property.totTE">
+    
+    <entry id="property.g03.totTE" term="Total ? energy" dataType="xsd:double" unitType="unitType:molar_energy" 
+        units="unit:unknown" cmlx:superclass="property.totTE">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:double" units="molar_energy:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.zpve" term="" dataType="xsd:double" unitType="unitType:unknown" units="molar_energy:unknown" cmlx:superclass="property.zpve">
+    
+    <entry id="property.g03.zpve" term="Zero point vibrational energy" dataType="xsd:double" 
+        unitType="unitType:molar_energy" units="unit:unknown" cmlx:superclass="property.zpve">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:double" units="molar_energy:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.polarizability" term="" dataType="xsd:float" unitType="unitType:unknown" units="units:unknown" cmlx:superclass="property.polarizability">
+    
+    <entry id="property.g03.polarizability" term="Polarizability" dataType="xsd:float" 
+       unitType="unitType:polarizability" units="unit:unknown" cmlx:superclass="property.polarizability">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array dataType="xsd:float" length="6" delimiter="" units="units:unknown"/>
+            <cmlx:array dataType="xsd:float" length="6" delimiter="" units="unit:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.dipole" term="" dataType="xsd:float" unitType="unitType:unknown" units="units:debye" cmlx:superclass="property.dipole">
+    
+    <entry id="property.g03.dipole" term="Electric dipole" dataType="xsd:float" 
+        unitType="unitType:dipole" units="unit:debye" cmlx:superclass="property.dipole">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:vector3 dataType="xsd:float" delimiter="" units="units:debye"/>
+            <cmlx:vector3 dataType="xsd:float" delimiter="" units="unit:debye"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.diagvibpolar" term="" dataType="xsd:float" unitType="unitType:unknown" units="units:unknown" cmlx:superclass="property.diagvibpolar">
+    
+    <entry id="property.g03.diagvibpolar" term="Diag viv polar??" dataType="xsd:float" 
+        unitType="unitType:unknown" units="unit:unknown" cmlx:superclass="property.diagvibpolar">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:vector3 dataType="xsd:float" delimiter="" units="units:unknown"/>
+            <cmlx:vector3 dataType="xsd:float" delimiter="" units="unit:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.pmoi" term="" dataType="xsd:float" unitType="unitType:unknown" units="units:amu.A2" cmlx:superclass="property.pmoi">
+    
+    <entry id="property.g03.pmoi" term="Principal moments of interia" dataType="xsd:float" 
+        unitType="unitType:unknown" units="unit:amu.A2" cmlx:superclass="property.pmoi">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:array length="3" dataType="xsd:float" delimiter="" units="units:amu.A2"/>
+            <cmlx:array length="3" dataType="xsd:float" delimiter="" units="unit:amu.A2"/>
         </cmlx:template>
     </entry>
-    <entry id="property.g03.pmoiaxis" term="" dataType="xsd:float" unitType="unitType:unknown" units="units:none" cmlx:superclass="property.pmoiaxis">
+    
+    <entry id="property.g03.pmoiaxis" term="Principal moments of inertia axis??" dataType="xsd:float" 
+        unitType="unitType:unknown" units="unit:unknown" cmlx:superclass="property.pmoiaxis">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
-            <cmlx:matrix dataType="xsd:float" delimiter="" units="units:none"/>
+            <cmlx:matrix dataType="xsd:float" delimiter="" units="unit:none"/>
                 <!-- This ia a matrix of size 3x3-->
         </cmlx:template>
     </entry>
+    
 </dictionary>

dict/cmlcompSoftwareInstructionsDict.xml

 <?xml version="1.0" encoding="UTF-8"?>
-<dictionary xmlns="http://www.xml-cml.org/schema" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:unit="http://www.xml-cml.org/dictionary/unit/" xmlns:unitType="http://www.xml-cml.org/dictionary/unitType/" xmlns:cmlx="http://www.xml-cml.org/schema/cmlx" convention="convention:dictionary" title="Computational chemistry software instructions" namespace="http://www.xml-cml.org/dict/compchem/software/" dictionaryPrefix="cmlcomp">
-    <entry id="qm" term="QM parameters and methods" dataType="" unitType="unitType:unknown" units="" cmlx:superclass="">
+<dictionary 
+    xmlns="http://www.xml-cml.org/schema" 
+    xmlns:xhtml="http://www.w3.org/1999/xhtml" 
+    xmlns:unit="http://www.xml-cml.org/dictionary/unit/" 
+    xmlns:unitType="http://www.xml-cml.org/dictionary/unitType/" 
+    xmlns:cmlx="http://www.xml-cml.org/schema/cmlx" 
+    convention="convention:dictionary" 
+    xmlns:convention="http://www.xml-cml.org/convention/" 
+    title="Computational chemistry software instructions" 
+    namespace="http://www.xml-cml.org/dict/compchem/software/" 
+    dictionaryPrefix="cmlsoft"
+    xmlns:dc="http://purl.org/dc/elements/1.1/" 
+    xmlns:cml="http://www.xml-cml.org/dictionary/cml/" 
+    >
+
+    <dc:author>Weerapong Phadungsakanan</dc:author>    
+    <dc:author>Peter Murray-Rust</dc:author>
+    <description>
+        <xhtml:p>Dictionary terms created by W.P. as a result of parsing and interpreting
+        Gaussian logfiles</xhtml:p>
+        <xhtml:p>Toplevel dictionary for computational chemistry software concepts</xhtml:p>
+        <xhtml:p>Concepts in this dictionary are general throughout computational chemistry and
+        are likely to be referenced by two or more codes. Entries should be added
+        in response to discovery in a code (and preferably two or more). All entries 
+        should be interpretable without reference to a specific code.</xhtml:p>
+        <xhtml:p>It is likely that some entries are "superclasses" of entries in code-specific
+        dictionaries. The precise semantics have not yet been agreed.</xhtml:p>
+        <xhtml:p>Most entries will not carry specific units as these will be overridden by the 
+        code specific dictionaries. In some cases, however, the units are universal 
+        (e.g. molecular charges measured in electrons)</xhtml:p>
+    </description>
+    <dc:author>Weerapong Phadungsukanan</dc:author>
+    <dc:author>Peter Murray-Rust</dc:author>
+
+    <entry id="qm" term="QM parameters and methods" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="">
         <definition>
             <xhtml:p>Methods, parameters which descriobe and determine the QM aspects of the calculations</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
     </entry>
-    <entry id="cmd" term="command" dataType="" unitType="unitType:unknown" units="" cmlx:superclass="">
+    <entry id="cmd" term="command" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="">
         <definition>
             <xhtml:p>A user-controlled program operation</xhtml:p>
         </definition>
             <xhtml:p>The main oparations that the user wishes to carry out. Most commands will produce output, but the management of output is not normally a command. Many operations are represented by keywords in conventional input. Commands can be qualified, usually by parameters.</xhtml:p>
         </description>
     </entry>
-    <entry id="prog" term="The program" dataType="" unitType="unitType:unknown" units="" cmlx:superclass="">
+    <entry id="prog" term="The program" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
     </entry>
-    <entry id="md" term="metadata" dataType="" unitType="unitType:unknown" units="" cmlx:superclass="">
+    <entry id="md" term="metadata" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="">
         <definition>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
     </entry>
-    <entry id="md.subdate" term="date of submission" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="md">
+    <entry id="md.subdate" term="date of submission" dataType="xsd:string" 
+      unitType="unitType:unknown" units="unit:none" cmlx:superclass="md">
         <definition>
             <xhtml:p>the date on which the job was submitted for calculation</xhtml:p>
         </definition>
             <cmlx:scalar dataType="xsd:string"/>
         </cmlx:template>
     </entry>
-    <entry id="md.userid" term="The id of the user" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="md">
+    <entry id="md.userid" term="The id of the user" dataType="xsd:string" unitType="unitType:unknown"
+     units="unit:none" cmlx:superclass="md">
         <definition>
             <xhtml:p>The id of the person of process that prepared or submitted the job</xhtml:p>
         </definition>
             <cmlx:scalar dataType="xsd:string"/>
         </cmlx:template>
     </entry>
-    <entry id="md.jobid" term="Job Id" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="md">
+    <entry id="md.jobid" term="Job Id" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="md">
         <definition>
             <xhtml:p>a unique id given to the job by the user or submission system</xhtml:p>
         </definition>
             <cmlx:scalar dataType="xsd:string"/>
         </cmlx:template>
     </entry>
-    <entry id="md.maxmemory" term="Maximum memory" dataType="xsd:double" unitType="unitType:unknown" units="memory:unknown" cmlx:superclass="md">
+    <entry id="md.maxmemory" term="Maximum memory" dataType="xsd:double" unitType="unitType:unknown" 
+    units="unit:unknown" cmlx:superclass="md">
         <definition>
             <xhtml:p>maximum memory requested  to run the job</xhtml:p>
         </definition>
             <cmlx:scalar dataType="xsd:double" units="memory:unknown"/>
         </cmlx:template>
     </entry>
-    <entry id="md.machineid" term="Machine Id" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="md">
+    <entry id="md.machineid" term="Machine Id" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="md">
         <definition>
             <xhtml:p>a unique id given to the machine by the user or submission system</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:string"/>
         </cmlx:template>
     </entry>
-    <entry id="md.ncpu" term="Number of CPUs" dataType="xsd:integer" unitType="unitType:unknown" units="" cmlx:superclass="md">
+    <entry id="md.ncpu" term="Number of CPUs" dataType="xsd:integer" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="md">
         <definition>
             <xhtml:p>number of CPUs requested</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:integer"/>
         </cmlx:template>
     </entry>
-    <entry id="md.submitDate" term="Submission date" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="md">
+    <entry id="md.submitDate" term="Submission date" dataType="xsd:string" 
+    unitType="unitType:unknown" units="unit:none" cmlx:superclass="md">
         <definition>
             <xhtml:p>date of submission</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:string"/>
         </cmlx:template>
     </entry>
-    <entry id="qm.basis" term="basis" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="qm">
+    <entry id="qm.basis" term="basis" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="qm">
         <definition>
             <xhtml:p>The basis set without the method or diffuse function</xhtml:p>
         </definition>
             <cmlx:enumeration value="zdo" id="qm.basis.zdo" term="zdo"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="qm.method" term="method" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="qm">
+    <entry id="qm.method" term="method" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="qm">
         <definition>
             <xhtml:p>Quantum calculation method or functional</xhtml:p>
         </definition>
             <cmlx:enumeration value="uvsxc" id="qm.method.uvsxc" term="uvsxc"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="qm.polar" term="polarization function" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="qm">
+    <entry id="qm.polar" term="polarization function" dataType="xsd:string" 
+        unitType="unitType:unknown" units="unit:none" cmlx:superclass="qm">
         <definition>
             <xhtml:p>Polarization function</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:string"/>
             <cmlx:enumeration value="\dd(\d[fgh]){0,3},\dp(\d[dfgh]){0,4}" id="qm.polar.dp"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="qm.integral" term="integral" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="qm">
+    <entry id="qm.integral" term="integral" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="qm">
         <definition>
             <xhtml:p>Integral grid type</xhtml:p>
         </definition>
             <cmlx:enumeration value="coarsegrid" id="qm.integral.coarsegrid" term="CoarseGrid"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="qm.integral.store" term="integral.store" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="qm">
+    <entry id="qm.integral.store" term="integral.store" dataType="xsd:string" 
+    unitType="unitType:unknown" units="unit:none" cmlx:superclass="qm">
         <definition>
             <xhtml:p>Integral grid type</xhtml:p>
         </definition>
             <cmlx:enumeration value="rys2e" id="qm.integral.rys2e" term="rys2e"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="qm.symm" term="symmetry of the wavefunction" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="qm">
+    <entry id="qm.symm" term="symmetry of the wavefunction" dataType="xsd:string" 
+    unitType="unitType:unknown" units="unit:none" cmlx:superclass="qm">
         <definition>
             <xhtml:p>symmetry of the wavefunction</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:string"/>
             <cmlx:enumeration value="none" id="qm.symm.none"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="qm.pop" term="population" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="qm">
+    <entry id="qm.pop" term="population" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="qm">
         <definition>
             <xhtml:p>population</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:string"/>
             <cmlx:enumeration value="output" id="qm.pop.output"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="cmd.freq" term="frequency" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cmd">
+    <entry id="cmd.freq" term="frequency" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="cmd">
         <definition>
             <xhtml:p>Frequency analysis</xhtml:p>
         </definition>
             <cmlx:enumeration value="vibrot" id="cmd.freq.vibrot" term="vibrot"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="cmd.input.check" term="input.chk" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cmd">
+    <entry id="cmd.input.check" term="input.chk" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="cmd">
         <definition>
             <xhtml:p>input method</xhtml:p>
         </definition>
             <cmlx:enumeration value="checkpoint" id="cmd.geom.checkpoint" term="checkpoint"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="cmd.geom" term="geom" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cmd">
+    <entry id="cmd.geom" term="geom" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="cmd">
         <definition>
             <xhtml:p>Geometry optimization</xhtml:p>
         </definition>
             <cmlx:enumeration value="modred" id="cmd.geom.modred" term="modred"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="cmd.output.geom" term="output.geom" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cmd">
+    <entry id="cmd.output.geom" term="output.geom" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="cmd">
         <definition>
             <xhtml:p>output commands</xhtml:p>
         </definition>
             <cmlx:enumeration value="print" id="cmd.geom.print" term="print"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="cmd.maxcyc" term="maxcycles" dataType="xsd:integer" unitType="unitType:unknown" units="" cmlx:superclass="cmd">
+    <entry id="cmd.maxcyc" term="maxcycles" dataType="xsd:integer" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="cmd">
         <definition>
             <xhtml:p>Maximum number of cycles</xhtml:p>
         </definition>
             <cmlx:scalar dataType="xsd:integer"/>
         </cmlx:template>
     </entry>
-    <entry id="cmd.maxstep" term="maxstep" dataType="xsd:integer" unitType="unitType:unknown" units="" cmlx:superclass="cmd">
+    <entry id="cmd.maxstep" term="maxstep" dataType="xsd:integer" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="cmd">
         <definition>
             <xhtml:p>needs a definition</xhtml:p>
         </definition>
             <cmlx:scalar dataType="xsd:integer"/>
         </cmlx:template>
     </entry>
-    <entry id="cmd.population" term="population" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cmd">
+    <entry id="cmd.population" term="population" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="cmd">
         <definition>
             <xhtml:p>needs a definition</xhtml:p>
         </definition>
             <cmlx:enumeration value="full" id="full" term="full"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="cmd.scf" term="scf" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cmd">
+    <entry id="cmd.scf" term="scf" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="cmd">
         <definition>
             <xhtml:p>needs a definition</xhtml:p>
         </definition>
             <cmlx:enumeration value="xqc" id="cmd.scf.xqc" term="xqc"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="cmd.scrf" term="scrf" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cmd">
+    <entry id="cmd.scrf" term="scrf" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="cmd">
         <definition>
             <xhtml:p>no idea</xhtml:p>
         </definition>
             <cmlx:enumeration value="usemo" id="cmd.scrf.usemo" term="usemo"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="cmd.unknown" term="unknownjob" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="cmd">
+    <entry id="cmd.unknown" term="unknownjob" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="cmd">
         <definition>
             <xhtml:p>no idea</xhtml:p>
         </definition>
             <cmlx:scalar dataType="xsd:string"/>
         </cmlx:template>
     </entry>
-    <entry id="prog.version" term="version" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="prog">
+    <entry id="prog.version" term="version" dataType="xsd:string" unitType="unitType:unknown" 
+      units="unit:none" cmlx:superclass="prog">
         <definition>
-            <xhtml:p>Version of quantum chemistry program/software package. There is no controlled vocabulary. Some examples:</xhtml:p>
+            <xhtml:p>Version of quantum chemistry program/software package. 
+            There is no controlled vocabulary. Some examples:</xhtml:p>
         </definition>
         <description>
-            <xhtml:p/>
+            <xhtml:p>TODO</xhtml:p>
         </description>
         <cmlx:template>
             <cmlx:scalar dataType="xsd:string"/>
             <cmlx:enumeration value="x86-Linux-G98RevA.9" id="x86-Linux-G98RevA.9" term="x86-Linux-G98RevA.9"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="md.unit" term="unit" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="md">
+    <entry id="md.unit" term="unit" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="md">
         <definition>
             <xhtml:p>unit</xhtml:p>
         </definition>
             <cmlx:enumeration value="K" id="md.unit.k" term="K"/>
         </cmlx:enumerations>
     </entry>
-    <entry id="prog.guess" term="prog.guess" dataType="xsd:string" unitType="unitType:unknown" units="" cmlx:superclass="prog">
+    <entry id="prog.guess" term="prog.guess" dataType="xsd:string" unitType="unitType:unknown" 
+    units="unit:none" cmlx:superclass="prog">
         <definition>
             <xhtml:p>HF initial guess method</xhtml:p>
         </definition>

src/main/resources/units/allUnits.xml

-<unitList id="atomic" namespace="http://www.xml-cml.org/units/atomic"
-  title="Atomic-scale units dictionary" siNamespace="http://www.xml-cml.org/units/siUnits"
-  xmlns="http://www.xml-cml.org/schema" xsi:schemaLocation="http://www.xml-cml.org/schema ../../schema.xsd"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:h="http://www.w3.org/1999/xhtml"
-  xmlns:dc="http://www.xml-cml.org/dict/dcDict" xmlns:siUnits="http://www.xml-cml.org/units/siUnits"
-  xmlns:unitType="http://www.xml-cml.org/units/unitTypes">
+<unitList id="allUnits" 
+  namespace="http://www.xml-cml.org/units/allUnits/"
+  title="Aggregated units dictionary" 
+  siNamespace="http://www.xml-cml.org/units/siUnits/"
+  xmlns="http://www.xml-cml.org/schema"
+  xmlns:h="http://www.w3.org/1999/xhtml"
+  xmlns:dc="http://www.xml-cml.org/dict/dcDict" 
+  xmlns:siUnits="http://www.xml-cml.org/units/siUnits/"
+  xmlns:unitType="http://www.xml-cml.org/unit/unitType/"
+  >
 
   <description>
     <h:p>
       </h:p>
     </description>
   </unit>
+  
+  <!--  
+  referenced from elsewhere in Weerapong's dictionaries
+  
+      unit/A
+      unit/amu
+      unit/amu.bohr2
+      unit/amu.A2
+      unit/atm
+      unit/cm-1
+      unit/debye
+      unit/e
+      unit/hartree
+      unit/Hz
+      unit/J
+      unit/J.mol-1
+      unit/J.mol-1.K-1
+      unit/KM.mol-1
+      unit/K
+      unit/mDyne.A-1
+      
+      unit/none
+      unit/unknown
+  -->
 
 </unitList>

src/main/resources/units/siUnitsDict.xml

     </h:p>
   </description>
 
+  <unit title="unknown" id="unknown" symbol="unknown" parentSI="siUnits:unknown"
+    unitType="unitType:unknown">
+    <dc:creator>Peter Murray-Rust</dc:creator>
+    <definition>
+      <h:p>
+      Fictional unit for a quantity whose units are unknown
+    </h:p>
+    </definition>
+    <description>
+      <h:p>
+      Many programs emit numeric quantities without units and "unknown" signifies this. It should not
+      be used lazily to avoid working out the real units.
+      </h:p>
+    </description>
+  </unit>
+
+
+  <unit title="dimensionless" id="dimensionless" symbol="dimensionless" parentSI="siUnits:dimensionless"
+    unitType="unitType:dimensionless">
+    <dc:creator>Peter Murray-Rust</dc:creator>
+    <definition>
+      <h:p>
+      Unit for a quantity whose units are dimensionless. 
+    </h:p>
+    </definition>
+    <description>
+      <h:p>
+      This should not be confalted with percentage or ppm or other ratios of quanties with units
+      but this us yet to be worked out.
+      </h:p>
+    </description>
+  </unit>
+
+  <unit title="none" id="none" symbol="none" parentSI="siUnits:none"
+    unitType="unitType:none">
+    <dc:creator>Peter Murray-Rust</dc:creator>
+    <definition>
+      <h:p>
+      Fictional unit for a quantity which carries no units
+    </h:p>
+    </definition>
+    <description>
+      <h:p>
+      Many concepts in dictionaries do not have units 
+      and this unit will make that clear and prevent unresolved references.
+      </h:p>
+    </description>
+  </unit>
+
   <!-- The SEVEN BASE UNITS - (id in brackets) kilogram - mass (kg) second 
     - time (s) metre - length (m) ampere - electrical current (ampere) kelvin 
     - temperature (k) mole - amount of substance (mol) candela - luminous intensity 

src/main/resources/units/unitTypeDict.xml

-<unitTypeList namespace="http://www.xml-cml.org/units/unitTypes"
-  title="unit type dictionary" siNamespace="http://www.xml-cml.org/units/siUnits"
-  xmlns="http://www.xml-cml.org/schema" xsi:schemaLocation="http://www.xml-cml.org/schema ../../schema23/schema.xsd"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<unitTypeList 
+    namespace="http://www.xml-cml.org/unit/unitType/"
+    title="unit type dictionary"
+    siNamespace="http://www.xml-cml.org/unit/si/"
+    xmlns:h="http://www.w3.org/1999/xhtml"
+    xmlns:dc="http://purl.org/dc/elements/1.1/"
+    xmlns="http://www.xml-cml.org/schema"
+  >
+    <dc:contributor>J A Townsend</dc:contributor>
+    <dc:contributor>Peter Murray-Rust</dc:contributor>
+    <dc:contributor>Jim Downing</dc:contributor>
+    <dc:contributor>Sam Adams</dc:contributor>
+
     <description>
-      <h:p>Type of each unit. In general there is one SI unit for each type.</h:p>
+      <h:p>Type of each unit. In general there is one SI unit for each <tt>unitType</tt>.</h:p>
+      <h:p>The term maps closely onto <a href="http://en.wikipedia.org/wiki/Quantity">Quantity</a>. However there can be many quantities
+      which share the same <tt>unitType</tt>. Thus enthalpy and free energy are distinct concepts and quantities
+      but shae the same unitType (<a href="#energy">energy</a>)  <tt>unitType</tt> represents a computable quantity and
+      should not be used loosely for quantity. <tt>unitType</tt> does not currently point to the 
+      corresponding SI unit, but every SI unit MUST have a <tt>unitType</tt> from which a mapping could be
+      devised.</h:p>
+      <h:p>In many cases unitTypes have well-used terms (e.g. "mass", "velocity") but some unitTypes arise from combination
+      of simpler concepts and no not have well defined terms. Examples occur in high powers of dimensions (e.g. in Virial
+      coefficients or high order rate constants). In these cases there is no meaningful natural language term
+      and we use a combination of dimensions (e.g. "ML-5T-5". The reason for including these in dictionaries is to
+      force the inclusion of units in documents and dictionaries.  </h:p>
+      <h:p>Some unitTypes may have the same dimensions but represent different mathematical quantities. Thus energy and torque both 
+      have dimension ML2T-2 but represent the scalar (dot) and vector (cross) products respcetively.
+      Some units are formed by ratios or multiplication. Thus energy-per-mass (various "specific heats") have the units 
+      ML2T-2.M-1 => L2T-2 , i.e. velocity-squared. However we may provide separate entries for these, while we do not
+      provide different forms of energy. </h:p>
+      <h:p><tt>unitType</tt> MUST not be used to define quantities or other concepts. Thus entropy and specific heat have the same 
+      unitType but may be thought of as separate quantities. Heat and work (free energy) are similar.</h:p>
+      <h:p><tt>unitType</tt> provides <tt>dimension</tt>s and this can be used for dimensional analysis and unit conversion.</h:p>
+      <h:p>THIS DICTIONARY IS NOT COMPLETE or validated. There may be duplicate entries and some may be wrong.</h:p>
+      <h:p>PLEASE CONTRIBUTE TO THIS DICTIONARY, e.g. by transcribing or linkg Wikipedia, and adding your own comments</h:p>
     </description>
 
   <!--CML unitTypes -->
   <unitType id="unknown" name="Unknown" title="Unknown">
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>An unreported unit</h:p>
     </definition>
     <description>
-      <h:p>TODO</h:p>
+      <h:p>Used when a document has failed to provide units but where it is clear that there should be some sort of units. 
+      It is sometimes very difficult to work out the units, but <tt>unknown</tt> should not be used as an excuse for 
+      not trying. By contrast <a href="#none">none</a> means that the concept does not carry units.</h:p>
+      <h:p>Cannot be used in units algebra.</h:p>
     </description>
+    <dc:source>Peter Murray-Rust</dc:source>
   </unitType>
 
   <unitType id="dimensionless" name="Dimensionless" title="Dimensionless">
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>A quantity without an associated physical dimension</h:p>
     </definition>
     <description>
-      <h:p>TODO</h:p>
+      <h:p>This is a difficult concept and users should read the Wikipedia article and further references. 
+      <tt>dimensionless</tt> can be used for numeric quantities which formally have no units such as 
+      dimensionless constants. It can also be used for ratios of quantities with units (e.g. mg/kg). Cancelling
+      units loses semantic information and we shall try in CML to avoid this if possible. </h:p>
+      <h:p><tt>dimensionless</tt> MUST not be used for concepts which are not numeric (e.g. algorithms) or pure numbers
+      and <a href="#none">none</a> SHOULD be used.</h:p>
+      <h:p><a href="http://en.wikipedia.org/wiki/Dimensionless_quantity">Dimensionless</a> in Wikipedia</h:p>
     </description>
+    <dc:source>Peter Murray-Rust</dc:source>
+    <dc:source>Wikipedia</dc:source>
   </unitType>
 
   <unitType id="none" name="None" title="None">
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>A term signifying that the concept cannot carry units.</h:p>
     </definition>
     <description>
-      <h:p>TODO</h:p>
+      <h:p>Use for dictionary concepts that cannot carry units. These include methods, names of programs, authors. 
+      <tt>none</tt> MUST not be used for concepts which should carry units or which can be formally classified as
+      <a href="#dimensionless">dimensionless</a>. </h:p>
+      <h:p>See also <a href="#dimensionless">dimensionless</a>.</h:p>
     </description>
+    <dc:source>Peter Murray-Rust</dc:source>
   </unitType>
 
   <!--SI base units -->
   <unitType id="mass" name="Mass" title="Mass">
     <dimension name="mass" power="1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Mass used as a type of unit corresponding to dimension <tt><b>M</b></tt>.</h:p>
     </definition>
     <description>
-      <h:p>TODO</h:p>
+      <h:p>Mass is a difficult concept. In Chemistry the three types of mass (inertial mass, active gravitational mass, 
+      and passive gravitational mass) are generally used interchangeably. Here <tt>mass</tt> is used as the type of the 
+      unit and can be linked to the fundamental <b>M</b> dimension.</h:p>
+      <h:p>Mass should never be used as a synonym for weight.</h:p>
+      <h:p>see <a href="http://en.wikipedia.org/wiki/Mass">Mass</a> in Wikipedia</h:p>
+    <dc:source>Peter Murray-Rust</dc:source>
     </description>
   </unitType>
 
     </description>
   </unitType>
 
-  <unitType id="luminous_intensity" name="Luminous intensity"
-    title="Luminous intensity">
+  <unitType id="luminous_intensity" name="Luminous intensity" title="Luminous intensity">
     <dimension name="luminous_intensity" power="1" />
     <definition>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="solid_angle" name="Solid ngle" title="solid_angle">
+  <unitType id="solid_angle" name="Solid angle" title="solid angle">
     <dimension name="solid_angle" power="1" />
     <definition>
       <h:p>TODO</h:p>
     <dimension name="mass" power="1" />
     <dimension name="time" power="-3" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>the rate at which work is performed or energy is converted</h:p>
     </definition>
     <description>
-      <h:p>TODO</h:p>
+      <h:p>TODO - http://en.wikipedia.org/wiki/Power</h:p>
     </description>
   </unitType>
 
     </description>
   </unitType>
 
-  <unitType id="electric_potential_difference" name="Electromotive force"
+  <unitType id="electric_potential_difference" name="Electromotive force" 
     title="Electrical potential difference, Electromotive force">
     <dimension name="length" power="2" />
     <dimension name="mass" power="1" />
     </description>
   </unitType>
 
-  <unitType id="electric_resistance" name="Resistance"
-    title="Resistance, reactance, impedance">
+  <unitType id="electric_resistance" name="Resistance" title="Resistance, reactance, impedance">
     <dimension name="length" power="2" />
     <dimension name="mass" power="1" />
     <dimension name="time" power="-3" />
     </description>
   </unitType>
 
-  <!-- <unitType id="impedance" name="Impedance" title="Impedance"> <dimension 
+  <!-- <unitType id="impedance" name="impedance" title="impedance" name="Impedance" title="Impedance"> <dimension 
     name="length" power="2"/> <dimension name="mass" power="1"/> <dimension name="time" 
     power="-3"/> <dimension name="current" power="-2"/> <definition><h:p>TODO</h:p></definition> 
     </unitType> -->
 
-  <unitType id="electric_capacitance" name="Electric capacitance"
-    title="Electric capacitance">
+  <unitType id="electric_capacitance" name="Electric capacitance"  title="Electric capacitance">
     <dimension name="length" power="-2" />
     <dimension name="mass" power="-1" />
     <dimension name="time" power="4" />
     </description>
   </unitType>
 
-  <unitType id="electric_conductance" name="Electric conductance"
-    title="Electric conductance">
+  <unitType id="electric_conductance" name="Electric conductance" title="Electric conductance">
     <dimension name="length" power="-2" />
     <dimension name="mass" power="-1" />
     <dimension name="time" power="3" />
     </description>
   </unitType>
 
-  <unitType id="radioactivity" name="Radioactivity"
-    title="Radioactivity (decay per unit time)">
+  <unitType id="radioactivity" name="Radioactivity" title="Radioactivity ">
     <dimension name="time" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>decay per unit time</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="radioactive_absorbed_dose" name="absorbed dose"
-    title="absorbed dose (of ionising radiation)">
+  <unitType id="radioactive_absorbed_dose" name="absorbed dose" title="absorbed dose (of ionising radiation)">
     <dimension name="length" power="2" />
     <dimension name="time" power="-2" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>TODO L2T-2</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="radioactive_equivalent_dose" name="equivalent dose"
-    title="equivalent dose (of ionising radiation)">
-    <dimension name="length" power="2" />
-    <dimension name="time" power="-2" />
+  <unitType id="catalytic_activity" name="Catalytic activity" title="Catalytic activity">
+    <dimension name="time" power="-1" />
+    <dimension name="amount" power="1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Amount per time T-1A</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="catalytic_activity" name="Catalytic activity"
-    title="Catalytic activity">
-    <dimension name="time" power="-1" />
+  <unitType id="molarity" name="Molarity" title="molar concentration" >
+    <dimension name="length" power="-3" />
     <dimension name="amount" power="1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>moles of substance per volume of solution</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="molarity" name="Concentration"
-    title="Concentration (moles of substance per volume of solution)">
-    <dimension name="length" power="-3" />
-    <dimension name="amount" power="1" />
-    <definition>
-      <h:p>TODO</h:p>
-    </definition>
-    <description>
-      <h:p>TODO</h:p>
-    </description>
-  </unitType>
-
-  <unitType id="molality" name="Concentration"
-    title="Concentration (moles of substance per mass of solution)">
+  <unitType id="molality" name="molality" title="molality">
     <dimension name="mass" power="-1" />
     <dimension name="amount" power="1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>moles of substance per mass of solution</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
   <unitType id="area" name="Area" title="Area">
     <dimension name="length" power="2" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>area or squared length</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
   <unitType id="volume" title="Volume" name="Volume">
     <dimension name="length" power="3" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Volume or cubic length</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     <dimension name="length" power="1" />
     <dimension name="time" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Rate of change of length or position</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     <dimension name="length" power="1" />
     <dimension name="time" power="-2" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Rate of change of velocity</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     name="Angular velocity">
     <dimension name="time" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Rate of change of angle</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     <dimension name="length" power="1" />
     <dimension name="time" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>mass times velocity</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     <dimension name="length" power="2" />
     <dimension name="time" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>mass times angular velocity</h:p>
     </definition>
     <description>
-      <h:p>TODO</h:p>
+      <h:p>TODO - is this right?</h:p>
     </description>
   </unitType>
 
     <dimension name="length" power="2" />
     <dimension name="time" power="-2" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>cross product of length and force</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
   <unitType id="wavenumber" name="Wavenumber" title="Wavenumber">
     <dimension name="length" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>A unit of energy in spectroscopy</h:p>
     </definition>
     <description>
-      <h:p>TODO</h:p>
+      <h:p>TODO should we include this?</h:p>
     </description>
   </unitType>
 
     <dimension name="mass" power="1" />
     <dimension name="length" power="-3" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>mass per unit volume</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     <dimension name="mass" power="-1" />
     <dimension name="length" power="3" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Volume per unit mass</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="amount_concentration" name="amount concentration"
-    title="amount (-of-substance) concentration">
+  <unitType id="amount_concentration" name="Amount concentration"  title="amount (-of-substance) concentration">
     <dimension name="length" power="-3" />
     <dimension name="amount" power="1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Amount per unit volume</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="molar_volume" name="molar volume" title="molar volume">
+  <unitType id="molar_volume" name="Molar volume" title="Molar volume">
     <dimension name="length" power="3" />
     <dimension name="amount" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Volume per mole</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     <dimension name="time" power="-2" />
     <dimension name="temp" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Energy per unit temperature</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="molar_heat_capacity" name="molar heat capacity"
-    title="molar heat capacity">
+  <unitType id="molar_heat_capacity" name="molar heat capacity" title="molar heat capacity or molar entropy">
     <dimension name="mass" power="1" />
     <dimension name="length" power="2" />
     <dimension name="time" power="-2" />
     <dimension name="temp" power="-1" />
     <dimension name="amount" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Energy per mole per unit temperature change or molar Entropy</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="molar_entropy" name="molar entropy" title="molar entropy">
-    <dimension name="mass" power="1" />
+  <unitType id="specific_heat_capacity" name="Specific heat capacity" title="Specific heat capacity">
     <dimension name="length" power="2" />
     <dimension name="time" power="-2" />
     <dimension name="temp" power="-1" />
-    <dimension name="amount" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Heat capacity or entropy per unit mass</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="specific_heat_capacity" name="Specific_heat_capacity"
-    title="Specific heat capacity">
+  <unitType id="molar_energy" title="Molar energy" name="Molar energy">
+    <dimension name="mass" power="1" />
     <dimension name="length" power="2" />
     <dimension name="time" power="-2" />
-    <dimension name="temp" power="-1" />
+    <dimension name="amount" power="-1" />
     <definition>
-      <h:p>TODO</h:p>
+      <h:p>Energy or work per mole</h:p>
     </definition>
     <description>
       <h:p>TODO</h:p>
     </description>
   </unitType>
 
-  <unitType id="specific_entropy" name="Specific entropy"
-    title="Specific entropy">
+  <unitType id="specific_energy" name="Specific energy" title="Specific energy">