model
Quantity
unit
value
Length
Angle
Unit
name
symbol
dimensions
conversionFactors
isRatioScaled
true
isBaseUnit
false
isDerivedUnit
false
isCoherentDerivedUnit
false
isIntervalScaled
Mass
Time
ElectricCurrent
ThermodynamicTemperature
AmountOfSubstance
LuminousIntensity
LengthUnit
MassUnit
TimeUnit
ElectricCurrentUnit
ThermodynamicTemperatureUnit
AmountOfSubstanceUnit
LuminousIntensityUnit
AngleUnit
SystemOfUnits
units
name
standardizationBody
Dimension
exponent
1
LengthDimension
ConversionFactor
baseUnit
multiplicator
1
offset
0
MassDimension
TimeDimension
ElectricCurrentDimension
ThermodynamicTemperatureDimension
AmountOfSubstanceDimension
LuminousIntensityDimension
AngleDimension
QuantityValue
uncertainty
value
MeasurementUncertainty
information
standardUncertainty
DataStorageCapacity
Entropy
TrafficIntensity
Level
DataStorageCapacityUnit
EntropyUnit
TrafficIntensityUnit
LevelUnit
DataStorageCapacityDimension
EntropyDimension
TrafficIntensityDimension
LevelDimension
LengthConversionFactor
MassConversionFactor
TimeConversionFactor
ElectricCurrentConversionFactor
ThermodynamicTemperatureConversionFactor
AmountOfSubstanceConversionFactor
LuminousIntensityConversionFactor
AngleConversionFactor
DataStorageCapacityConversionFactor
EntropyConversionFactor
TrafficIntensityConversionFactor
LevelConversionFactor
NormalDistribution
meanValue
standardDeviation
Interval
lowerEndpoint
upperEndpoint
MeasurementUncertaintyInformation
Sampling
samples
measurementProcedure
Sample
quantity
BaseQuantity
DerivedQuantity
BaseQuantityUnit
DerivedQuantityUnit
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://www.modelexecution.org/quantities" nsPrefix="model">
  <eAnnotations source="http://www.eclipse.org/OCL/Import">
    <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
  </eAnnotations>
  <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
    <details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
    <details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
    <details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" name="Quantity" abstract="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="unit" lowerBound="1" eType="#//Unit"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//QuantityValue"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Length" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="LengthRequiresLengthUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="LengthRequiresLengthUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: A length needs a lenght unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(LengthUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Angle" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="AngleRequiresAngleUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="AngleRequiresAngleUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: An angle needs an angle unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(AngleUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Unit" abstract="true">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="LengthDimensionRequiresLengthConversionFactor MassDimensionRequiresMassConversionFactor TimeDimensionRequiresTimeConversionFactor ElectricCurrentDimensionRequiresElectricCurrentConversionFactor ThermodynamicTemperatureDimensionRequiresThermodynamicTemperatureConversionFactor AmountOfSubstanceDimensionRequiresAmountOfSubstanceConversionFactor LuminousIntensityDimensionRequiresLuminousIntensityConversionFactor AngleDimensionRequiresAngleConversionFactor DataStorageCapacityDimensionRequiresDataStorageCapacityConversionFactor EntropyDimensionRequiresEntropyConversionFactor TrafficIntensityDimensionRequiresTrafficIntensityConversionFactor LevelDimensionRequiresLevelConversionFactor LengthConversionFactorNotAllowedWithoutLengthDimension MassConversionFactorNotAllowedWithoutMassDimension TimeConversionFactorNotAllowedWithoutTimeDimension ElectricCurrentConversionFactorNotAllowedWithoutElectricCurrentDimension ThermodynamicTemperatureConversionFactorNotAllowedWithoutThermodynamicTemperatureDimension AmountOfSubstanceConversionFactorNotAllowedWithoutAmountOfSubstanceDimension LuminousIntensityConversionFactorNotAllowedWithoutLuminousIntensityDimension AngleConversionFactorNotAllowedWithoutAngleDimension DataStorageCapacityConversionFactorNotAllowedWithoutDataStorageCapacityDimension EntropyConversionFactorNotAllowedWithoutEntropyDimension TrafficIntensityConversionFactorNotAllowedWithoutTrafficIntensityDimension LevelConversionFactorNotAllowedWithoutLevelDimension AtMostOneLengthConversionFactor AtMostOneMassConversionFactor AtMostOneTimeConversionFactor AtMostOneElectricCurrentConversionFactor AtMostOneThermodynamicTemperatureConversionFactor AtMostOneAmountOfSubstanceConversionFactor AtMostOneLuminousIntensityConversionFactor AtMostOneAngleConversionFactor AtMostOneDataStorageCapacityConversionFactor AtMostOneEntropyConversionFactor AtMostOneTrafficIntensityConversionFactor AtMostOneLevelConversionFactor AtMostOneLengthDimension AtMostOneMassDimension AtMostOneTimeDimension AtMostOneElectricCurrentDimension AtMostOneThermodynamicTemperatureDimension AtMostOneAmountOfSubstanceDimension AtMostOneLuminousIntensityDimension AtMostOneAngleDimension AtMostOneDataStorageCapacityDimension AtMostOneEntropyDimension AtMostOneTrafficIntensityDimension AtMostOneLevelDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="LengthDimensionRequiresLengthConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'A length conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;((self.dimensions->select(d | d.oclIsKindOf(LengthDimension))->notEmpty())) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.conversionFactors->select(f | f.oclIsKindOf(LengthConversionFactor))->notEmpty()) else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="MassDimensionRequiresMassConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'A mass conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(MassDimension))->notEmpty()) then self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;| f.oclIsKindOf(MassConversionFactor))->notEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="TimeDimensionRequiresTimeConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'A time conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(TimeDimension))->notEmpty()) then self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;| f.oclIsKindOf(TimeConversionFactor))->notEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="ElectricCurrentDimensionRequiresElectricCurrentConversionFactor"
          value="Tuple {&#xA;&#x9;message : String = 'An electric current conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(ElectricCurrentDimension))->notEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(ElectricCurrentConversionFactor))->notEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="ThermodynamicTemperatureDimensionRequiresThermodynamicTemperatureConversionFactor"
          value="Tuple {&#xA;&#x9;message : String = 'A thermodynamic temperature conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(ThermodynamicTemperatureDimension))->notEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(ThermodynamicTemperatureConversionFactor))->notEmpty() else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="AmountOfSubstanceDimensionRequiresAmountOfSubstanceConversionFactor"
          value="Tuple {&#xA;&#x9;message : String = 'An amount of substance conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(AmountOfSubstanceDimension))->notEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(AmountOfSubstanceConversionFactor))->notEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="LuminousIntensityDimensionRequiresLuminousIntensityConversionFactor"
          value="Tuple {&#xA;&#x9;message : String = 'A luminous intensity conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(LuminousIntensityDimension))->notEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(LuminousIntensityConversionFactor))->notEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="AngleDimensionRequiresAngleConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'An angle conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(AngleDimension))->notEmpty()) then self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;| f.oclIsKindOf(AngleConversionFactor))->notEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="DataStorageCapacityDimensionRequiresDataStorageCapacityConversionFactor"
          value="Tuple {&#xA;&#x9;message : String = 'A data storage capacity conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(DataStorageCapacityDimension))->notEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(DataStorageCapacityConversionFactor))->notEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="EntropyDimensionRequiresEntropyConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'An entropy conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(EntropyDimension))->notEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(EntropyConversionFactor))->notEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="TrafficIntensityDimensionRequiresTrafficIntensityConversionFactor"
          value="Tuple {&#xA;&#x9;message : String = 'A traffic intensity conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(TrafficIntensityDimension))->notEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(TrafficIntensityConversionFactor))->notEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="LevelDimensionRequiresLevelConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'A level conversion factor has to be defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(LevelDimension))->notEmpty()) then self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;| f.oclIsKindOf(LevelConversionFactor))->notEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="LengthConversionFactorNotAllowedWithoutLengthDimension" value="Tuple {&#xA;&#x9;message : String = 'A length conversion factor cannot be defined, since no length dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;((self.dimensions->select(d | d.oclIsKindOf(LengthDimension))->isEmpty())) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.conversionFactors->select(f | f.oclIsKindOf(LengthConversionFactor))->isEmpty()) else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="MassConversionFactorNotAllowedWithoutMassDimension" value="Tuple {&#xA;&#x9;message : String = 'A mass conversion factor cannot be defined, since no mass dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(MassDimension))->isEmpty()) then self.conversionFactors->select(f |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;f.oclIsKindOf(MassConversionFactor))->isEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="TimeConversionFactorNotAllowedWithoutTimeDimension" value="Tuple {&#xA;&#x9;message : String = 'A time conversion factor cannot be defined, since no time dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(TimeDimension))->isEmpty()) then self.conversionFactors->select(f |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;f.oclIsKindOf(TimeConversionFactor))->isEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="ElectricCurrentConversionFactorNotAllowedWithoutElectricCurrentDimension"
          value="Tuple {&#xA;&#x9;message : String = 'An electric current conversion factor cannot be defined, since no electric current dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(ElectricCurrentDimension))->isEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(ElectricCurrentConversionFactor))->isEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="ThermodynamicTemperatureConversionFactorNotAllowedWithoutThermodynamicTemperatureDimension"
          value="Tuple {&#xA;&#x9;message : String = 'A thermodynamic temperature conversion factor cannot be defined, since no thermodynamic temperature dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(ThermodynamicTemperatureDimension))->isEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(ThermodynamicTemperatureConversionFactor))->isEmpty() else&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="AmountOfSubstanceConversionFactorNotAllowedWithoutAmountOfSubstanceDimension"
          value="Tuple {&#xA;&#x9;message : String = 'An amount of substance conversion factor cannot be defined, since no amount of substance dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(AmountOfSubstanceDimension))->isEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(AmountOfSubstanceConversionFactor))->isEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="LuminousIntensityConversionFactorNotAllowedWithoutLuminousIntensityDimension"
          value="Tuple {&#xA;&#x9;message : String = 'A luminous intensity conversion factor cannot be defined, since no luminous intensity dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(LuminousIntensityDimension))->isEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(LuminousIntensityConversionFactor))->isEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="AngleConversionFactorNotAllowedWithoutAngleDimension" value="Tuple {&#xA;&#x9;message : String = 'An angle conversion factor cannot be defined, since no angle dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(AngleDimension))->isEmpty()) then self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;| f.oclIsKindOf(AngleConversionFactor))->isEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="DataStorageCapacityConversionFactorNotAllowedWithoutDataStorageCapacityDimension"
          value="Tuple {&#xA;&#x9;message : String = 'A data storage capacity conversion factor cannot be defined, since no data storage capacity dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(DataStorageCapacityDimension))->isEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(DataStorageCapacityConversionFactor))->isEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="EntropyConversionFactorNotAllowedWithoutEntropyDimension" value="Tuple {&#xA;&#x9;message : String = 'An entropy conversion factor cannot be defined, since no entropy dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(EntropyDimension))->isEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(EntropyConversionFactor))->isEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="TrafficIntensityConversionFactorNotAllowedWithoutTrafficIntensityDimension"
          value="Tuple {&#xA;&#x9;message : String = 'A traffic intensity conversion factor cannot be defined, since no traffic intensity dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(TrafficIntensityDimension))->isEmpty()) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;self.conversionFactors->select(f | f.oclIsKindOf(TrafficIntensityConversionFactor))->isEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="LevelConversionFactorNotAllowedWithoutLevelDimension" value="Tuple {&#xA;&#x9;message : String = 'A level conversion factor cannot be defined, since no level dimension is defined.',&#xA;&#x9;status : Boolean = if&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(self.dimensions->select(d | d.oclIsKindOf(LevelDimension))->isEmpty()) then self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;| f.oclIsKindOf(LevelConversionFactor))->isEmpty() else true&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif&#xA;}.status"/>
      <details key="AtMostOneLengthConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one length conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(LengthConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneMassConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one mass conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(MassConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneTimeConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one time conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(TimeConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneElectricCurrentConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one electric current conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(ElectricCurrentConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneThermodynamicTemperatureConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one thermodynamic temperature conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(ThermodynamicTemperatureConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneAmountOfSubstanceConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one amount of substance conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(AmountOfSubstanceConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneLuminousIntensityConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one luminous intensity conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(LuminousIntensityConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneAngleConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one angle conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(AngleConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneDataStorageCapacityConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one data storage capacity conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(DataStorageCapacityConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneEntropyConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one entropy conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(EntropyConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneTrafficIntensityConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one traffic intensity conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(TrafficIntensityConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneLevelConversionFactor" value="Tuple {&#xA;&#x9;message : String = 'At most one level conversion factor may be defined',&#xA;&#x9;status : Boolean = self.conversionFactors->select(f&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: ConversionFactor | f.oclIsKindOf(LevelConversionFactor))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneLengthDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one length dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension | d.oclIsKindOf(LengthDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneMassDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one mass dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension | d.oclIsKindOf(MassDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneTimeDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one time dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension | d.oclIsKindOf(TimeDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneElectricCurrentDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one electric current dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | d.oclIsKindOf(ElectricCurrentDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneThermodynamicTemperatureDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one thermodynamic temperature dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | d.oclIsKindOf(ThermodynamicTemperatureDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneAmountOfSubstanceDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one amount of substance dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | d.oclIsKindOf(AmountOfSubstanceDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneLuminousIntensityDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one luminous intensity dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | d.oclIsKindOf(LuminousIntensityDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneAngleDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one angle dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension | d.oclIsKindOf(AngleDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneDataStorageCapacityDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one data storage capacity dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | d.oclIsKindOf(DataStorageCapacityDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneEntropyDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one entropy dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension | d.oclIsKindOf(EntropyDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneTrafficIntensityDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one traffic intensity dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | d.oclIsKindOf(TrafficIntensityDimension))->size() &lt;= 1&#xA;}.status"/>
      <details key="AtMostOneLevelDimension" value="Tuple {&#xA;&#x9;message : String = 'At most one level dimension may be defined',&#xA;&#x9;status : Boolean = self.dimensions->select(d :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension | d.oclIsKindOf(LevelDimension))->size() &lt;= 1&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="symbol" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dimensions" upperBound="-1"
        eType="#//Dimension" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="conversionFactors" upperBound="-1"
        eType="#//ConversionFactor" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRatioScaled" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" changeable="false"
        defaultValueLiteral="true" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="self.conversionFactors->forAll(f : ConversionFactor | f.offset = 0.0)"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isBaseUnit" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" changeable="false"
        defaultValueLiteral="false" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="self.conversionFactors->size() = 1 and self.conversionFactors->asOrderedSet()->first().multiplicator = 1.0 and self.conversionFactors->asOrderedSet()->first().offset = 0.0 and self.dimensions->size() = 1 and self.dimensions->asOrderedSet()->first().exponent = 1"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerivedUnit" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" changeable="false"
        defaultValueLiteral="false" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="not self.isBaseUnit"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isCoherentDerivedUnit"
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        changeable="false" defaultValueLiteral="false" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="not self.isBaseUnit and self.conversionFactors->forAll(f : ConversionFactor |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;f.multiplicator = 1.0 and f.offset = 0.0)"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isIntervalScaled" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" changeable="false"
        derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="self.conversionFactors->exists(f : ConversionFactor | f.offset &lt;> 0.0)"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Mass" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="MassRequiresMassUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="MassRequiresMassUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: A mass needs a mass unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(MassUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Time" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="TimeRequiresTimeUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="TimeRequiresTimeUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: A time needs a time unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(TimeUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ElectricCurrent" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="ElectricCurrentRequiresElectricCurrentUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="ElectricCurrentRequiresElectricCurrentUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: An electric current needs an electric current unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(ElectricCurrentUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ThermodynamicTemperature" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="ThermodynamicTemperatureRequiresThermodynamicTemperatureUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="ThermodynamicTemperatureRequiresThermodynamicTemperatureUnit"
          value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: A thermodynamic temperature needs a thermodynamic temperature unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(ThermodynamicTemperatureUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AmountOfSubstance" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="AmountOfSubstanceRequiresAmountOfSubstanceUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="AmountOfSubstanceRequiresAmountOfSubstanceUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: An amount of substance needs an amount of substance unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(AmountOfSubstanceUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LuminousIntensity" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="LuminousIntensityRequiresLuminousIntensityUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="LuminousIntensityRequiresLuminousIntensityUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: A luminous intensity needs a luminous intensity unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(LuminousIntensityUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LengthUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="LengthUnitRequiresLengthDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="LengthUnitRequiresLengthDimension" value="Tuple {&#xA;&#x9;message : String = 'A length unit needs to define exactly one length dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(LengthDimension))->size() = 1 and self.dimensions->select(dim : Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(LengthDimension))->asOrderedSet()->first().oclAsType(LengthDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MassUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="MassUnitRequiresMassDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="MassUnitRequiresMassDimension" value="Tuple {&#xA;&#x9;message : String = 'A mass unit needs to define exactly one mass dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(MassDimension))->size() = 1 and self.dimensions->select(dim : Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(MassDimension))->asOrderedSet()->first().oclAsType(MassDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TimeUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="TimeUnitRequiresTimeDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="TimeUnitRequiresTimeDimension" value="Tuple {&#xA;&#x9;message : String = 'A time unit needs to define exactly one time dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(TimeDimension))->size() = 1 and self.dimensions->select(dim : Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(TimeDimension))->asOrderedSet()->first().oclAsType(TimeDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ElectricCurrentUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="ElectricCurrentUnitRequiresElectricCurrentDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="ElectricCurrentUnitRequiresElectricCurrentDimension" value="Tuple {&#xA;&#x9;message : String = 'An electric current unit needs to define exactly one electric current dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(ElectricCurrentDimension))->size() = 1 and self.dimensions->select(dim :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(ElectricCurrentDimension))->asOrderedSet()->first().oclAsType(ElectricCurrentDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ThermodynamicTemperatureUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="ThermodynamicTemperatureUnitRequiresThermodynamicTemperatureDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="ThermodynamicTemperatureUnitRequiresThermodynamicTemperatureDimension"
          value="Tuple {&#xA;&#x9;message : String = 'A thermodynamic temperature unit needs to define exactly one thermodynamic temperature dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(ThermodynamicTemperatureDimension))->size() = 1 and self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(ThermodynamicTemperatureDimension))->asOrderedSet()->first().oclAsType(ThermodynamicTemperatureDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AmountOfSubstanceUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="AmountOfSubstanceUnitRequiresAmountOfSubstanceDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="AmountOfSubstanceUnitRequiresAmountOfSubstanceDimension" value="Tuple {&#xA;&#x9;message : String = 'An amount of substance unit needs to define exactly one amount of substance dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(AmountOfSubstanceDimension))->size() = 1 and self.dimensions->select(dim :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(AmountOfSubstanceDimension))->asOrderedSet()->first().oclAsType(AmountOfSubstanceDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LuminousIntensityUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="LuminousIntensityUnitRequiresLuminousIntensityDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="LuminousIntensityUnitRequiresLuminousIntensityDimension" value="Tuple {&#xA;&#x9;message : String = 'A luminous intensity unit needs to define exactly one luminous intensity dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(LuminousIntensityDimension))->size() = 1 and self.dimensions->select(dim :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(LuminousIntensityDimension))->asOrderedSet()->first().oclAsType(LuminousIntensityDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AngleUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="AngleUnitRequiresAngleDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="AngleUnitRequiresAngleDimension" value="Tuple {&#xA;&#x9;message : String = 'An angle unit needs to define exactly one angle dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(AngleDimension))->size() = 1 and self.dimensions->select(dim : Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(AngleDimension))->asOrderedSet()->first().oclAsType(AngleDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SystemOfUnits">
    <eStructuralFeatures xsi:type="ecore:EReference" name="units" upperBound="-1"
        eType="#//Unit" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="standardizationBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Dimension" abstract="true">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="exponent" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="1"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LengthDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="ConversionFactor" abstract="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="baseUnit" lowerBound="1"
        eType="#//Unit" changeable="false" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="if (self.oclIsKindOf(LengthConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(LengthUnit) and u.isBaseUnit)->size() = 1) then SystemOfUnits.allInstances().units->select(u :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Unit | u.oclIsKindOf(LengthUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(TimeConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(TimeUnit) and u.isBaseUnit)->size() = 1) then SystemOfUnits.allInstances().units->select(u :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Unit | u.oclIsKindOf(TimeUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(MassConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(MassUnit) and u.isBaseUnit)->size() = 1) then SystemOfUnits.allInstances().units->select(u :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Unit | u.oclIsKindOf(MassUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(ElectricCurrentConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(ElectricCurrentUnit) and u.isBaseUnit)->size() = 1) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(ElectricCurrentUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(ThermodynamicTemperatureConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(ThermodynamicTemperatureUnit) and u.isBaseUnit)->size() = 1) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(ThermodynamicTemperatureUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(AmountOfSubstanceConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(AmountOfSubstanceUnit) and u.isBaseUnit)->size() = 1) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(AmountOfSubstanceUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(LuminousIntensityConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(LuminousIntensityUnit) and u.isBaseUnit)->size() = 1) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(LuminousIntensityUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(AngleConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(AngleUnit) and u.isBaseUnit)->size() = 1) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(AngleUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(DataStorageCapacityConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(DataStorageCapacityUnit) and u.isBaseUnit)->size() = 1) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(DataStorageCapacityUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(EntropyConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(EntropyUnit) and u.isBaseUnit)->size() = 1) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(EntropyUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(TrafficIntensityConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(TrafficIntensityUnit) and u.isBaseUnit)->size() = 1) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(TrafficIntensityUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else if (self.oclIsKindOf(LevelConversionFactor))&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;then if (SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(LevelUnit) and u.isBaseUnit)->size() = 1) then&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;SystemOfUnits.allInstances().units->select(u : Unit |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.oclIsKindOf(LevelUnit) and u.isBaseUnit)->asOrderedSet()->first() else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif else null&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;endif endif endif endif endif endif endif endif endif endif endif endif"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicator" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="1"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MassDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="TimeDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="ElectricCurrentDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="ThermodynamicTemperatureDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="AmountOfSubstanceDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="LuminousIntensityDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="AngleDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="QuantityValue">
    <eStructuralFeatures xsi:type="ecore:EReference" name="uncertainty" lowerBound="1"
        eType="#//MeasurementUncertainty" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MeasurementUncertainty">
    <eStructuralFeatures xsi:type="ecore:EReference" name="information" eType="#//MeasurementUncertaintyInformation"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="standardUncertainty" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataStorageCapacity" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="DataStorageCapacityRequiresDataStorageCapacityUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="DataStorageCapacityRequiresDataStorageCapacityUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: A data storage capacity needs a data storage capacity unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(DataStorageCapacityUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Entropy" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="EntropyRequiresEntropyUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="EntropyRequiresEntropyUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: An entropy needs an entropy unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(EntropyUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TrafficIntensity" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="TrafficIntensityRequiresTrafficIntensityUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="TrafficIntensityRequiresTrafficIntensityUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: A traffic intensity needs a traffic intensity unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(TrafficIntensityUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Level" eSuperTypes="#//BaseQuantity">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="LevelRequiresLevelUnit"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="LevelRequiresLevelUnit" value="Tuple {&#xA;&#x9;message : String = 'Invalid unit: A level needs a level unit.',&#xA;&#x9;status : Boolean = self.unit.oclIsKindOf(LevelUnit)&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataStorageCapacityUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="DataStorageCapacityUnitRequiresDataStorageCapacityDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="DataStorageCapacityUnitRequiresDataStorageCapacityDimension" value="Tuple {&#xA;&#x9;message : String = 'A data storage capacity unit needs to define exactly one data storage capacity dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(DataStorageCapacityDimension))->size() = 1 and self.dimensions->select(dim :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(DataStorageCapacityDimension))->asOrderedSet()->first().oclAsType(DataStorageCapacityDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EntropyUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="EntropyUnitRequiresEntropyDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="EntropyUnitRequiresEntropyDimension" value="Tuple {&#xA;&#x9;message : String = 'An entropy unit needs to define exactly one entropy dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(EntropyDimension))->size() = 1 and self.dimensions->select(dim : Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(EntropyDimension))->asOrderedSet()->first().oclAsType(EntropyDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TrafficIntensityUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="TrafficIntensityUnitRequiresTrafficIntensityDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="TrafficIntensityUnitRequiresTrafficIntensityDimension" value="Tuple {&#xA;&#x9;message : String = 'A traffic intensity unit needs to define exactly one traffic intensity dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(TrafficIntensityDimension))->size() = 1 and self.dimensions->select(dim :&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(TrafficIntensityDimension))->asOrderedSet()->first().oclAsType(TrafficIntensityDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LevelUnit" eSuperTypes="#//BaseQuantityUnit">
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="LevelUnitRequiresLevelDimension"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="LevelUnitRequiresLevelDimension" value="Tuple {&#xA;&#x9;message : String = 'A level unit needs to define exactly one level dimension with exponent 1.0.',&#xA;&#x9;status : Boolean = self.dimensions->select(dim&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;: Dimension | dim.oclIsKindOf(LevelDimension))->size() = 1 and self.dimensions->select(dim : Dimension |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;dim.oclIsKindOf(LevelDimension))->asOrderedSet()->first().oclAsType(LevelDimension).exponent = 1.0 and self.dimensions->size() = 1&#xA;}.status"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DataStorageCapacityDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="EntropyDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="TrafficIntensityDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="LevelDimension" eSuperTypes="#//Dimension"/>
  <eClassifiers xsi:type="ecore:EClass" name="LengthConversionFactor" eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="MassConversionFactor" eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="TimeConversionFactor" eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="ElectricCurrentConversionFactor" eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="ThermodynamicTemperatureConversionFactor"
      eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="AmountOfSubstanceConversionFactor" eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="LuminousIntensityConversionFactor" eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="AngleConversionFactor" eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="DataStorageCapacityConversionFactor"
      eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="EntropyConversionFactor" eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="TrafficIntensityConversionFactor" eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="LevelConversionFactor" eSuperTypes="#//ConversionFactor"/>
  <eClassifiers xsi:type="ecore:EClass" name="NormalDistribution" eSuperTypes="#//MeasurementUncertaintyInformation">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="meanValue" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="QuantityValue.allInstances()->select(v |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;v.uncertainty = (MeasurementUncertainty.allInstances()->select(u |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.information = self)->asOrderedSet()->first()))->asOrderedSet()->first().value"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="standardDeviation" lowerBound="1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" derived="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
        <details key="derivation" value="MeasurementUncertainty.allInstances()->select(u |&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;u.information = self)->asOrderedSet()->first().standardUncertainty"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Interval" eSuperTypes="#//MeasurementUncertaintyInformation">
    <eStructuralFeatures xsi:type="ecore:EReference" name="lowerEndpoint" lowerBound="1"
        eType="#//Quantity" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="upperEndpoint" lowerBound="1"
        eType="#//Quantity" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MeasurementUncertaintyInformation" abstract="true"/>
  <eClassifiers xsi:type="ecore:EClass" name="Sampling" eSuperTypes="#//MeasurementUncertaintyInformation">
    <eStructuralFeatures xsi:type="ecore:EReference" name="samples" upperBound="-1"
        eType="#//Sample" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="measurementProcedure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Sample">
    <eStructuralFeatures xsi:type="ecore:EReference" name="quantity" upperBound="-1"
        eType="#//Quantity" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="BaseQuantity" abstract="true" eSuperTypes="#//Quantity"/>
  <eClassifiers xsi:type="ecore:EClass" name="DerivedQuantity" abstract="true" eSuperTypes="#//Quantity"/>
  <eClassifiers xsi:type="ecore:EClass" name="BaseQuantityUnit" abstract="true" eSuperTypes="#//Unit"/>
  <eClassifiers xsi:type="ecore:EClass" name="DerivedQuantityUnit" abstract="true"
      eSuperTypes="#//Unit"/>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":"model","nsURI":"http://www.modelexecution.org/quantities","name":"model","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Quantity","instanceClass":null,"abstract":true,"id":1,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Length","instanceClass":null,"abstract":false,"id":2,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Angle","instanceClass":null,"abstract":false,"id":3,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Unit","instanceClass":null,"abstract":true,"id":4,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Mass","instanceClass":null,"abstract":false,"id":5,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Time","instanceClass":null,"abstract":false,"id":6,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ElectricCurrent","instanceClass":null,"abstract":false,"id":7,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ThermodynamicTemperature","instanceClass":null,"abstract":false,"id":8,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AmountOfSubstance","instanceClass":null,"abstract":false,"id":9,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LuminousIntensity","instanceClass":null,"abstract":false,"id":10,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LengthUnit","instanceClass":null,"abstract":false,"id":11,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MassUnit","instanceClass":null,"abstract":false,"id":12,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TimeUnit","instanceClass":null,"abstract":false,"id":13,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ElectricCurrentUnit","instanceClass":null,"abstract":false,"id":14,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ThermodynamicTemperatureUnit","instanceClass":null,"abstract":false,"id":15,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AmountOfSubstanceUnit","instanceClass":null,"abstract":false,"id":16,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LuminousIntensityUnit","instanceClass":null,"abstract":false,"id":17,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AngleUnit","instanceClass":null,"abstract":false,"id":18,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SystemOfUnits","instanceClass":null,"abstract":false,"id":19,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Dimension","instanceClass":null,"abstract":true,"id":20,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LengthDimension","instanceClass":null,"abstract":false,"id":21,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConversionFactor","instanceClass":null,"abstract":true,"id":22,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MassDimension","instanceClass":null,"abstract":false,"id":23,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TimeDimension","instanceClass":null,"abstract":false,"id":24,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ElectricCurrentDimension","instanceClass":null,"abstract":false,"id":25,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ThermodynamicTemperatureDimension","instanceClass":null,"abstract":false,"id":26,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AmountOfSubstanceDimension","instanceClass":null,"abstract":false,"id":27,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LuminousIntensityDimension","instanceClass":null,"abstract":false,"id":28,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AngleDimension","instanceClass":null,"abstract":false,"id":29,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"QuantityValue","instanceClass":null,"abstract":false,"id":30,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MeasurementUncertainty","instanceClass":null,"abstract":false,"id":31,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DataStorageCapacity","instanceClass":null,"abstract":false,"id":32,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Entropy","instanceClass":null,"abstract":false,"id":33,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TrafficIntensity","instanceClass":null,"abstract":false,"id":34,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Level","instanceClass":null,"abstract":false,"id":35,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DataStorageCapacityUnit","instanceClass":null,"abstract":false,"id":36,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EntropyUnit","instanceClass":null,"abstract":false,"id":37,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TrafficIntensityUnit","instanceClass":null,"abstract":false,"id":38,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LevelUnit","instanceClass":null,"abstract":false,"id":39,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DataStorageCapacityDimension","instanceClass":null,"abstract":false,"id":40,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EntropyDimension","instanceClass":null,"abstract":false,"id":41,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TrafficIntensityDimension","instanceClass":null,"abstract":false,"id":42,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LevelDimension","instanceClass":null,"abstract":false,"id":43,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LengthConversionFactor","instanceClass":null,"abstract":false,"id":44,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MassConversionFactor","instanceClass":null,"abstract":false,"id":45,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TimeConversionFactor","instanceClass":null,"abstract":false,"id":46,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ElectricCurrentConversionFactor","instanceClass":null,"abstract":false,"id":47,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ThermodynamicTemperatureConversionFactor","instanceClass":null,"abstract":false,"id":48,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AmountOfSubstanceConversionFactor","instanceClass":null,"abstract":false,"id":49,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LuminousIntensityConversionFactor","instanceClass":null,"abstract":false,"id":50,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AngleConversionFactor","instanceClass":null,"abstract":false,"id":51,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DataStorageCapacityConversionFactor","instanceClass":null,"abstract":false,"id":52,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EntropyConversionFactor","instanceClass":null,"abstract":false,"id":53,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TrafficIntensityConversionFactor","instanceClass":null,"abstract":false,"id":54,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LevelConversionFactor","instanceClass":null,"abstract":false,"id":55,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NormalDistribution","instanceClass":null,"abstract":false,"id":56,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Interval","instanceClass":null,"abstract":false,"id":57,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MeasurementUncertaintyInformation","instanceClass":null,"abstract":true,"id":58,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Sampling","instanceClass":null,"abstract":false,"id":59,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Sample","instanceClass":null,"abstract":false,"id":60,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"BaseQuantity","instanceClass":null,"abstract":true,"id":61,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DerivedQuantity","instanceClass":null,"abstract":true,"id":62,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"BaseQuantityUnit","instanceClass":null,"abstract":true,"id":63,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DerivedQuantityUnit","instanceClass":null,"abstract":true,"id":64,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"unit","changeable":true,"resolveProxies":true,"lowerBound":1,"id":65,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"resolveProxies":true,"lowerBound":1,"id":66,"derived":false},{"id":67,"eClass":"EGenericType"},{"id":68,"eClass":"EGenericType"},{"id":69,"eClass":"EGenericType"},{"id":70,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":1,"iD":false,"id":71,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"symbol","changeable":true,"lowerBound":1,"iD":false,"id":72,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"dimensions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":73,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"conversionFactors","changeable":true,"resolveProxies":true,"lowerBound":0,"id":74,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":true,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":"true","unsettable":false,"transient":false,"unique":true,"name":"isRatioScaled","changeable":false,"lowerBound":1,"iD":false,"id":75,"derived":true},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":"false","unsettable":false,"transient":false,"unique":true,"name":"isBaseUnit","changeable":false,"lowerBound":1,"iD":false,"id":76,"derived":true},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":"false","unsettable":false,"transient":false,"unique":true,"name":"isDerivedUnit","changeable":false,"lowerBound":1,"iD":false,"id":77,"derived":true},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":"false","unsettable":false,"transient":false,"unique":true,"name":"isCoherentDerivedUnit","changeable":false,"lowerBound":1,"iD":false,"id":78,"derived":true},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"isIntervalScaled","changeable":false,"lowerBound":1,"iD":false,"id":79,"derived":true},{"id":80,"eClass":"EGenericType"},{"id":81,"eClass":"EGenericType"},{"id":82,"eClass":"EGenericType"},{"id":83,"eClass":"EGenericType"},{"id":84,"eClass":"EGenericType"},{"id":85,"eClass":"EGenericType"},{"id":86,"eClass":"EGenericType"},{"id":87,"eClass":"EGenericType"},{"id":88,"eClass":"EGenericType"},{"id":89,"eClass":"EGenericType"},{"id":90,"eClass":"EGenericType"},{"id":91,"eClass":"EGenericType"},{"id":92,"eClass":"EGenericType"},{"id":93,"eClass":"EGenericType"},{"id":94,"eClass":"EGenericType"},{"id":95,"eClass":"EGenericType"},{"id":96,"eClass":"EGenericType"},{"id":97,"eClass":"EGenericType"},{"id":98,"eClass":"EGenericType"},{"id":99,"eClass":"EGenericType"},{"id":100,"eClass":"EGenericType"},{"id":101,"eClass":"EGenericType"},{"id":102,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"units","changeable":true,"resolveProxies":true,"lowerBound":0,"id":103,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":1,"iD":false,"id":104,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"standardizationBody","changeable":true,"lowerBound":0,"iD":false,"id":105,"derived":false},{"id":106,"eClass":"EGenericType"},{"id":107,"eClass":"EGenericType"},{"id":108,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":1.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":"1","unsettable":false,"transient":false,"unique":true,"name":"exponent","changeable":true,"lowerBound":1,"iD":false,"id":109,"derived":false},{"id":110,"eClass":"EGenericType"},{"id":111,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"baseUnit","changeable":false,"resolveProxies":true,"lowerBound":1,"id":112,"derived":true},{"ordered":true,"upperBound":1,"defaultValue":1.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":"1","unsettable":false,"transient":false,"unique":true,"name":"multiplicator","changeable":true,"lowerBound":1,"iD":false,"id":113,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":"0","unsettable":false,"transient":false,"unique":true,"name":"offset","changeable":true,"lowerBound":1,"iD":false,"id":114,"derived":false},{"id":115,"eClass":"EGenericType"},{"id":116,"eClass":"EGenericType"},{"id":117,"eClass":"EGenericType"},{"id":118,"eClass":"EGenericType"},{"id":119,"eClass":"EGenericType"},{"id":120,"eClass":"EGenericType"},{"id":121,"eClass":"EGenericType"},{"id":122,"eClass":"EGenericType"},{"id":123,"eClass":"EGenericType"},{"id":124,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"uncertainty","changeable":true,"resolveProxies":true,"lowerBound":1,"id":125,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"lowerBound":1,"iD":false,"id":126,"derived":false},{"id":127,"eClass":"EGenericType"},{"id":128,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"information","changeable":true,"resolveProxies":true,"lowerBound":0,"id":129,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"standardUncertainty","changeable":true,"lowerBound":1,"iD":false,"id":130,"derived":false},{"id":131,"eClass":"EGenericType"},{"id":132,"eClass":"EGenericType"},{"id":133,"eClass":"EGenericType"},{"id":134,"eClass":"EGenericType"},{"id":135,"eClass":"EGenericType"},{"id":136,"eClass":"EGenericType"},{"id":137,"eClass":"EGenericType"},{"id":138,"eClass":"EGenericType"},{"id":139,"eClass":"EGenericType"},{"id":140,"eClass":"EGenericType"},{"id":141,"eClass":"EGenericType"},{"id":142,"eClass":"EGenericType"},{"id":143,"eClass":"EGenericType"},{"id":144,"eClass":"EGenericType"},{"id":145,"eClass":"EGenericType"},{"id":146,"eClass":"EGenericType"},{"id":147,"eClass":"EGenericType"},{"id":148,"eClass":"EGenericType"},{"id":149,"eClass":"EGenericType"},{"id":150,"eClass":"EGenericType"},{"id":151,"eClass":"EGenericType"},{"id":152,"eClass":"EGenericType"},{"id":153,"eClass":"EGenericType"},{"id":154,"eClass":"EGenericType"},{"id":155,"eClass":"EGenericType"},{"id":156,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"meanValue","changeable":true,"lowerBound":1,"iD":false,"id":157,"derived":true},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"standardDeviation","changeable":true,"lowerBound":1,"iD":false,"id":158,"derived":true},{"id":159,"eClass":"EGenericType"},{"id":160,"eClass":"EGenericType"},{"id":161,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"lowerEndpoint","changeable":true,"resolveProxies":true,"lowerBound":1,"id":162,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"upperEndpoint","changeable":true,"resolveProxies":true,"lowerBound":1,"id":163,"derived":false},{"id":164,"eClass":"EGenericType"},{"id":165,"eClass":"EGenericType"},{"id":166,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"samples","changeable":true,"resolveProxies":true,"lowerBound":0,"id":167,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"measurementProcedure","changeable":true,"lowerBound":0,"iD":false,"id":168,"derived":false},{"id":169,"eClass":"EGenericType"},{"id":170,"eClass":"EGenericType"},{"id":171,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"quantity","changeable":true,"resolveProxies":true,"lowerBound":0,"id":172,"derived":false},{"id":173,"eClass":"EGenericType"},{"id":174,"eClass":"EGenericType"},{"id":175,"eClass":"EGenericType"},{"id":176,"eClass":"EGenericType"},{"id":177,"eClass":"EGenericType"}],"links":[{"source":0,"target":1},{"source":0,"target":2},{"source":0,"target":3},{"source":0,"target":4},{"source":0,"target":5},{"source":0,"target":6},{"source":0,"target":7},{"source":0,"target":8},{"source":0,"target":9},{"source":0,"target":10},{"source":0,"target":11},{"source":0,"target":12},{"source":0,"target":13},{"source":0,"target":14},{"source":0,"target":15},{"source":0,"target":16},{"source":0,"target":17},{"source":0,"target":18},{"source":0,"target":19},{"source":0,"target":20},{"source":0,"target":21},{"source":0,"target":22},{"source":0,"target":23},{"source":0,"target":24},{"source":0,"target":25},{"source":0,"target":26},{"source":0,"target":27},{"source":0,"target":28},{"source":0,"target":29},{"source":0,"target":30},{"source":0,"target":31},{"source":0,"target":32},{"source":0,"target":33},{"source":0,"target":34},{"source":0,"target":35},{"source":0,"target":36},{"source":0,"target":37},{"source":0,"target":38},{"source":0,"target":39},{"source":0,"target":40},{"source":0,"target":41},{"source":0,"target":42},{"source":0,"target":43},{"source":0,"target":44},{"source":0,"target":45},{"source":0,"target":46},{"source":0,"target":47},{"source":0,"target":48},{"source":0,"target":49},{"source":0,"target":50},{"source":0,"target":51},{"source":0,"target":52},{"source":0,"target":53},{"source":0,"target":54},{"source":0,"target":55},{"source":0,"target":56},{"source":0,"target":57},{"source":0,"target":58},{"source":0,"target":59},{"source":0,"target":60},{"source":0,"target":61},{"source":0,"target":62},{"source":0,"target":63},{"source":0,"target":64},{"source":1,"target":0},{"source":1,"target":65},{"source":1,"target":66},{"source":65,"target":4},{"source":65,"target":67},{"source":65,"target":1},{"source":67,"target":4},{"source":66,"target":30},{"source":66,"target":68},{"source":66,"target":1},{"source":68,"target":30},{"source":2,"target":0},{"source":2,"target":61},{"source":2,"target":69},{"source":69,"target":61},{"source":3,"target":0},{"source":3,"target":61},{"source":3,"target":70},{"source":70,"target":61},{"source":4,"target":0},{"source":4,"target":71},{"source":4,"target":72},{"source":4,"target":73},{"source":4,"target":74},{"source":4,"target":75},{"source":4,"target":76},{"source":4,"target":77},{"source":4,"target":78},{"source":4,"target":79},{"source":71,"target":80},{"source":71,"target":4},{"source":72,"target":81},{"source":72,"target":4},{"source":73,"target":20},{"source":73,"target":82},{"source":73,"target":4},{"source":82,"target":20},{"source":74,"target":22},{"source":74,"target":83},{"source":74,"target":4},{"source":83,"target":22},{"source":75,"target":84},{"source":75,"target":4},{"source":76,"target":85},{"source":76,"target":4},{"source":77,"target":86},{"source":77,"target":4},{"source":78,"target":87},{"source":78,"target":4},{"source":79,"target":88},{"source":79,"target":4},{"source":5,"target":0},{"source":5,"target":61},{"source":5,"target":89},{"source":89,"target":61},{"source":6,"target":0},{"source":6,"target":61},{"source":6,"target":90},{"source":90,"target":61},{"source":7,"target":0},{"source":7,"target":61},{"source":7,"target":91},{"source":91,"target":61},{"source":8,"target":0},{"source":8,"target":61},{"source":8,"target":92},{"source":92,"target":61},{"source":9,"target":0},{"source":9,"target":61},{"source":9,"target":93},{"source":93,"target":61},{"source":10,"target":0},{"source":10,"target":61},{"source":10,"target":94},{"source":94,"target":61},{"source":11,"target":0},{"source":11,"target":63},{"source":11,"target":95},{"source":95,"target":63},{"source":12,"target":0},{"source":12,"target":63},{"source":12,"target":96},{"source":96,"target":63},{"source":13,"target":0},{"source":13,"target":63},{"source":13,"target":97},{"source":97,"target":63},{"source":14,"target":0},{"source":14,"target":63},{"source":14,"target":98},{"source":98,"target":63},{"source":15,"target":0},{"source":15,"target":63},{"source":15,"target":99},{"source":99,"target":63},{"source":16,"target":0},{"source":16,"target":63},{"source":16,"target":100},{"source":100,"target":63},{"source":17,"target":0},{"source":17,"target":63},{"source":17,"target":101},{"source":101,"target":63},{"source":18,"target":0},{"source":18,"target":63},{"source":18,"target":102},{"source":102,"target":63},{"source":19,"target":0},{"source":19,"target":103},{"source":19,"target":104},{"source":19,"target":105},{"source":103,"target":4},{"source":103,"target":106},{"source":103,"target":19},{"source":106,"target":4},{"source":104,"target":107},{"source":104,"target":19},{"source":105,"target":108},{"source":105,"target":19},{"source":20,"target":0},{"source":20,"target":109},{"source":109,"target":110},{"source":109,"target":20},{"source":21,"target":0},{"source":21,"target":20},{"source":21,"target":111},{"source":111,"target":20},{"source":22,"target":0},{"source":22,"target":112},{"source":22,"target":113},{"source":22,"target":114},{"source":112,"target":4},{"source":112,"target":115},{"source":112,"target":22},{"source":115,"target":4},{"source":113,"target":116},{"source":113,"target":22},{"source":114,"target":117},{"source":114,"target":22},{"source":23,"target":0},{"source":23,"target":20},{"source":23,"target":118},{"source":118,"target":20},{"source":24,"target":0},{"source":24,"target":20},{"source":24,"target":119},{"source":119,"target":20},{"source":25,"target":0},{"source":25,"target":20},{"source":25,"target":120},{"source":120,"target":20},{"source":26,"target":0},{"source":26,"target":20},{"source":26,"target":121},{"source":121,"target":20},{"source":27,"target":0},{"source":27,"target":20},{"source":27,"target":122},{"source":122,"target":20},{"source":28,"target":0},{"source":28,"target":20},{"source":28,"target":123},{"source":123,"target":20},{"source":29,"target":0},{"source":29,"target":20},{"source":29,"target":124},{"source":124,"target":20},{"source":30,"target":0},{"source":30,"target":125},{"source":30,"target":126},{"source":125,"target":31},{"source":125,"target":127},{"source":125,"target":30},{"source":127,"target":31},{"source":126,"target":128},{"source":126,"target":30},{"source":31,"target":0},{"source":31,"target":129},{"source":31,"target":130},{"source":129,"target":58},{"source":129,"target":131},{"source":129,"target":31},{"source":131,"target":58},{"source":130,"target":132},{"source":130,"target":31},{"source":32,"target":0},{"source":32,"target":61},{"source":32,"target":133},{"source":133,"target":61},{"source":33,"target":0},{"source":33,"target":61},{"source":33,"target":134},{"source":134,"target":61},{"source":34,"target":0},{"source":34,"target":61},{"source":34,"target":135},{"source":135,"target":61},{"source":35,"target":0},{"source":35,"target":61},{"source":35,"target":136},{"source":136,"target":61},{"source":36,"target":0},{"source":36,"target":63},{"source":36,"target":137},{"source":137,"target":63},{"source":37,"target":0},{"source":37,"target":63},{"source":37,"target":138},{"source":138,"target":63},{"source":38,"target":0},{"source":38,"target":63},{"source":38,"target":139},{"source":139,"target":63},{"source":39,"target":0},{"source":39,"target":63},{"source":39,"target":140},{"source":140,"target":63},{"source":40,"target":0},{"source":40,"target":20},{"source":40,"target":141},{"source":141,"target":20},{"source":41,"target":0},{"source":41,"target":20},{"source":41,"target":142},{"source":142,"target":20},{"source":42,"target":0},{"source":42,"target":20},{"source":42,"target":143},{"source":143,"target":20},{"source":43,"target":0},{"source":43,"target":20},{"source":43,"target":144},{"source":144,"target":20},{"source":44,"target":0},{"source":44,"target":22},{"source":44,"target":145},{"source":145,"target":22},{"source":45,"target":0},{"source":45,"target":22},{"source":45,"target":146},{"source":146,"target":22},{"source":46,"target":0},{"source":46,"target":22},{"source":46,"target":147},{"source":147,"target":22},{"source":47,"target":0},{"source":47,"target":22},{"source":47,"target":148},{"source":148,"target":22},{"source":48,"target":0},{"source":48,"target":22},{"source":48,"target":149},{"source":149,"target":22},{"source":49,"target":0},{"source":49,"target":22},{"source":49,"target":150},{"source":150,"target":22},{"source":50,"target":0},{"source":50,"target":22},{"source":50,"target":151},{"source":151,"target":22},{"source":51,"target":0},{"source":51,"target":22},{"source":51,"target":152},{"source":152,"target":22},{"source":52,"target":0},{"source":52,"target":22},{"source":52,"target":153},{"source":153,"target":22},{"source":53,"target":0},{"source":53,"target":22},{"source":53,"target":154},{"source":154,"target":22},{"source":54,"target":0},{"source":54,"target":22},{"source":54,"target":155},{"source":155,"target":22},{"source":55,"target":0},{"source":55,"target":22},{"source":55,"target":156},{"source":156,"target":22},{"source":56,"target":0},{"source":56,"target":58},{"source":56,"target":157},{"source":56,"target":158},{"source":56,"target":159},{"source":157,"target":160},{"source":157,"target":56},{"source":158,"target":161},{"source":158,"target":56},{"source":159,"target":58},{"source":57,"target":0},{"source":57,"target":58},{"source":57,"target":162},{"source":57,"target":163},{"source":57,"target":164},{"source":162,"target":1},{"source":162,"target":165},{"source":162,"target":57},{"source":165,"target":1},{"source":163,"target":1},{"source":163,"target":166},{"source":163,"target":57},{"source":166,"target":1},{"source":164,"target":58},{"source":58,"target":0},{"source":59,"target":0},{"source":59,"target":58},{"source":59,"target":167},{"source":59,"target":168},{"source":59,"target":169},{"source":167,"target":60},{"source":167,"target":170},{"source":167,"target":59},{"source":170,"target":60},{"source":168,"target":171},{"source":168,"target":59},{"source":169,"target":58},{"source":60,"target":0},{"source":60,"target":172},{"source":172,"target":1},{"source":172,"target":173},{"source":172,"target":60},{"source":173,"target":1},{"source":61,"target":0},{"source":61,"target":1},{"source":61,"target":174},{"source":174,"target":1},{"source":62,"target":0},{"source":62,"target":1},{"source":62,"target":175},{"source":175,"target":1},{"source":63,"target":0},{"source":63,"target":4},{"source":63,"target":176},{"source":176,"target":4},{"source":64,"target":0},{"source":64,"target":4},{"source":64,"target":177},{"source":177,"target":4}],"multigraph":true}