<?xml version="1.0" encoding="ISO-8859-1"?>
<xmi:XMI 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">
  <ecore:EPackage name="KM3OWL2">
    <eSubpackages name="KM3">
      <eClassifiers xsi:type="ecore:EClass" name="Enumeration" eSuperTypes="/0/OCL/Types/Classifier">
        <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1" eType="/0/KM3/EnumLiteral" containment="true" eOpposite="/0/KM3/EnumLiteral/enum"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter" eSuperTypes="/0/OCL/Types/Classifier"/>
      <eClassifiers xsi:type="ecore:EClass" name="StructuralFeature" eSuperTypes="/0/KM3/TypedElement /0/KM3/KM3OCL/Feature">
        <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false" lowerBound="1" eType="/0/OCL/Types/Classifier" eOpposite="/0/OCL/Types/Classifier/structuralFeatures"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="subsetOf" ordered="false" upperBound="-1" eType="/0/KM3/StructuralFeature" eOpposite="/0/KM3/StructuralFeature/derivedFrom"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="derivedFrom" ordered="false" upperBound="-1" eType="/0/KM3/StructuralFeature" eOpposite="/0/KM3/StructuralFeature/subsetOf"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Reference" eSuperTypes="/0/KM3/StructuralFeature">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="isContainer" ordered="false" unique="false" lowerBound="1" eType="/1/Boolean"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" ordered="false" eType="/0/KM3/Reference"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="/0/KM3/ModelElement">
        <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1" eType="/0/KM3/ModelElement" containment="true" eOpposite="/0/KM3/ModelElement/package"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="metamodel" ordered="false" lowerBound="1" eType="/0/KM3/Metamodel" eOpposite="/0/KM3/Metamodel/contents"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Metamodel" eSuperTypes="/0/KM3/LocatedElement">
        <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1" eType="/0/KM3/Package" containment="true" eOpposite="/0/KM3/Package/metamodel"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="TypedElement" eSuperTypes="/0/KM3/ModelElement">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false" unique="false" lowerBound="1" eType="/1/Integer"/>
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false" unique="false" lowerBound="1" eType="/1/Integer"/>
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false" unique="false" lowerBound="1" eType="/1/Boolean"/>
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false" unique="false" lowerBound="1" eType="/1/Boolean"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1" eType="/0/OCL/Types/Classifier"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="/0/KM3/TypedElement">
        <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false" lowerBound="1" eType="/0/KM3/Operation" eOpposite="/0/KM3/Operation/parameters"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ModelElement" abstract="true" eSuperTypes="/0/KM3/LocatedElement">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false" lowerBound="1" eType="/0/KM3/Package" eOpposite="/0/KM3/Package/contents"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="LocatedElement" abstract="true">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="commentsBefore" unique="false" upperBound="-1" eType="/1/String"/>
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="commentsAfter" unique="false" upperBound="-1" eType="/1/String"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="/0/OCL/Types/Classifier">
        <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" eType="/0/KM3/TemplateParameter" containment="true"/>
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false" unique="false" lowerBound="1" eType="/1/Boolean"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="supertypes" ordered="false" upperBound="-1" eType="/0/KM3/Class"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="/0/OCL/Types/Classifier"/>
      <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="/0/KM3/TypedElement /0/KM3/KM3OCL/Feature">
        <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false" lowerBound="1" eType="/0/OCL/Types/Classifier" eOpposite="/0/OCL/Types/Classifier/operations"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" eType="/0/KM3/Parameter" containment="true" eOpposite="/0/KM3/Parameter/owner"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/owningOperation"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="EnumLiteral" eSuperTypes="/0/KM3/ModelElement">
        <eStructuralFeatures xsi:type="ecore:EReference" name="enum" ordered="false" lowerBound="1" eType="/0/KM3/Enumeration" eOpposite="/0/KM3/Enumeration/literals"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Attribute" eSuperTypes="/0/KM3/StructuralFeature">
        <eStructuralFeatures xsi:type="ecore:EReference" name="initExpression" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/owningAttribute"/>
      </eClassifiers>
      <eSubpackages name="KM3OCL">
        <eClassifiers xsi:type="ecore:EClass" name="OclFeatureDefinition" eSuperTypes="/0/KM3/LocatedElement">
          <eStructuralFeatures xsi:type="ecore:EReference" name="feature" ordered="false" lowerBound="1" eType="/0/KM3/KM3OCL/Feature" containment="true" eOpposite="/0/KM3/KM3OCL/Feature/definition"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="context_" ordered="false" eType="/0/KM3/KM3OCL/OclContextDefinition" containment="true" eOpposite="/0/KM3/KM3OCL/OclContextDefinition/definition"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="OclContextDefinition" eSuperTypes="/0/KM3/LocatedElement">
          <eStructuralFeatures xsi:type="ecore:EReference" name="definition" ordered="false" lowerBound="1" eType="/0/KM3/KM3OCL/OclFeatureDefinition" eOpposite="/0/KM3/KM3OCL/OclFeatureDefinition/context_"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="context_" ordered="false" lowerBound="1" eType="/0/OCL/Types/Classifier" containment="true" eOpposite="/0/OCL/Types/Classifier/definitions"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="/0/KM3/LocatedElement">
          <eStructuralFeatures xsi:type="ecore:EReference" name="definition" ordered="false" eType="/0/KM3/KM3OCL/OclFeatureDefinition" eOpposite="/0/KM3/KM3OCL/OclFeatureDefinition/feature"/>
        </eClassifiers>
      </eSubpackages>
    </eSubpackages>
    <eSubpackages name="OWL2">
      <eClassifiers xsi:type="ecore:EClass" name="Assertion" abstract="true" eSuperTypes="/0/OWL2/Axiom"/>
      <eClassifiers xsi:type="ecore:EClass" name="Axiom" abstract="true">
        <eStructuralFeatures xsi:type="ecore:EReference" name="axiomAnnotations" ordered="false" upperBound="-1" eType="/0/OWL2/Annotation"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Annotation">
        <eStructuralFeatures xsi:type="ecore:EReference" name="annotationProperty" ordered="false" lowerBound="1" eType="/0/OWL2/AnnotationProperty"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="AnnotationProperty" eSuperTypes="/0/OWL2/Entity"/>
      <eClassifiers xsi:type="ecore:EClass" name="Entity" abstract="true">
        <eStructuralFeatures xsi:type="ecore:EReference" name="entityURI" ordered="false" lowerBound="1" eType="/0/OWL2/URI"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="URI">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Constant">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="lexicalValue" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false" lowerBound="1" eType="/0/OWL2/OWLDatatype"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="OWLDatatype" eSuperTypes="/0/OWL2/DataRange /0/OWL2/Entity"/>
      <eClassifiers xsi:type="ecore:EClass" name="DataRange" abstract="true">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="arity" ordered="false" unique="false" lowerBound="1" eType="/1/Integer"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataPropertyAxiom" abstract="true" eSuperTypes="/0/OWL2/Axiom"/>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectPropertyAxiom" abstract="true" eSuperTypes="/0/OWL2/Axiom"/>
      <eClassifiers xsi:type="ecore:EClass" name="ClassExpression" abstract="true"/>
      <eClassifiers xsi:type="ecore:EClass" name="ClassAxiom" abstract="true" eSuperTypes="/0/OWL2/Axiom"/>
      <eClassifiers xsi:type="ecore:EClass" name="DataPropertyExpression" abstract="true"/>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectPropertyExpression" abstract="true"/>
      <eClassifiers xsi:type="ecore:EClass" name="AsymmetricObjectProperty" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectProperty" eSuperTypes="/0/OWL2/Entity /0/OWL2/ObjectPropertyExpression"/>
      <eClassifiers xsi:type="ecore:EClass" name="InverseObjectProperty" eSuperTypes="/0/OWL2/ObjectPropertyExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectProperty" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectProperty"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="OWLClass" eSuperTypes="/0/OWL2/Entity /0/OWL2/ClassExpression"/>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectIntersectionOf" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="classExpressions" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/ClassExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectUnionOf" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="classExpressions" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/ClassExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectOneOf" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="individuals" ordered="false" lowerBound="1" upperBound="-1" eType="/0/OWL2/Individual"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Individual" abstract="true"/>
      <eClassifiers xsi:type="ecore:EClass" name="NamedIndividual" eSuperTypes="/0/OWL2/Entity /0/OWL2/Individual"/>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectSomeValuesFrom" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="classExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectAllValuesFrom" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="classExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectExistsSelf" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectHasValue" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="individual" ordered="false" lowerBound="1" eType="/0/OWL2/Individual"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectMinCardinality" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="cardinality" ordered="false" unique="false" lowerBound="1" eType="/1/Integer"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="classExpression" ordered="false" eType="/0/OWL2/ClassExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectMaxCardinality" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="cardinality" ordered="false" unique="false" lowerBound="1" eType="/1/Integer"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="classExpression" ordered="false" eType="/0/OWL2/ClassExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataSomeValuesFrom" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataRange" ordered="false" lowerBound="1" eType="/0/OWL2/DataRange"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpressions" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataProperty" eSuperTypes="/0/OWL2/Entity /0/OWL2/DataPropertyExpression"/>
      <eClassifiers xsi:type="ecore:EClass" name="DataOneOf" eSuperTypes="/0/OWL2/DataRange">
        <eStructuralFeatures xsi:type="ecore:EReference" name="constants" ordered="false" lowerBound="1" upperBound="-1" eType="/0/OWL2/Constant"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DatatypeRestriction" eSuperTypes="/0/OWL2/DataRange">
        <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false" lowerBound="1" eType="/0/OWL2/OWLDatatype"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="restrictions" ordered="false" upperBound="-1" eType="/0/OWL2/FacetConstantPair"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="FacetConstantPair">
        <eStructuralFeatures xsi:type="ecore:EReference" name="constant" ordered="false" lowerBound="1" eType="/0/OWL2/Constant"/>
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="facet" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataAllValuesFrom" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataRange" ordered="false" lowerBound="1" eType="/0/OWL2/DataRange"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpressions" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataHasValue" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="constant" ordered="false" lowerBound="1" eType="/0/OWL2/Constant"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataMinCardinality" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="cardinality" ordered="false" unique="false" lowerBound="1" eType="/1/Integer"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataRange" ordered="false" eType="/0/OWL2/DataRange"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataMaxCardinality" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="cardinality" ordered="false" unique="false" lowerBound="1" eType="/1/Integer"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataRange" ordered="false" eType="/0/OWL2/DataRange"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataExactCardinality" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="cardinality" ordered="false" unique="false" lowerBound="1" eType="/1/Integer"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataRange" ordered="false" eType="/0/OWL2/DataRange"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="NegativeDataPropertyAssertion" eSuperTypes="/0/OWL2/Assertion">
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="targetValue" ordered="false" lowerBound="1" eType="/0/OWL2/Constant"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="sourceIndividual" ordered="false" lowerBound="1" eType="/0/OWL2/Individual"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataPropertyDomain" eSuperTypes="/0/OWL2/DataPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="domain" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataPropertyRange" eSuperTypes="/0/OWL2/DataPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="range" ordered="false" lowerBound="1" eType="/0/OWL2/DataRange"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DifferentIndividuals" eSuperTypes="/0/OWL2/Assertion">
        <eStructuralFeatures xsi:type="ecore:EReference" name="differentIndividuals" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/NamedIndividual"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DisjointClasses" eSuperTypes="/0/OWL2/ClassAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="disjointClassExpressions" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/ClassExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DisjointDataProperties" eSuperTypes="/0/OWL2/DataPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpressions" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DisjointObjectProperties" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpressions" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DisjointUnion" eSuperTypes="/0/OWL2/ClassAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="unionClass" ordered="false" lowerBound="1" eType="/0/OWL2/OWLClass"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="disjointClassExpressions" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/ClassExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="EquivalentClasses" eSuperTypes="/0/OWL2/ClassAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="equivalentClassExpressions" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/ClassExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="EquivalentDataProperties" eSuperTypes="/0/OWL2/DataPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpressions" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="FunctionalDataProperty" eSuperTypes="/0/OWL2/DataPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="EquivalentObjectProperties" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpressions" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="FunctionalObjectProperty" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="InverseFunctionalObjectProperty" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectPropertyAssertion" eSuperTypes="/0/OWL2/Assertion">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="sourceIndividual" ordered="false" lowerBound="1" eType="/0/OWL2/Individual"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="targetIndividual" ordered="false" lowerBound="1" eType="/0/OWL2/Individual"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="NegativeObjectPropertyAssertion" eSuperTypes="/0/OWL2/Assertion">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="sourceIndividual" ordered="false" lowerBound="1" eType="/0/OWL2/Individual"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="targetIndividual" ordered="false" lowerBound="1" eType="/0/OWL2/Individual"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectPropertyDomain" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="domain" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="SymmetricObjectProperty" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ReflexiveObjectProperty" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="SubDataPropertyOf" eSuperTypes="/0/OWL2/DataPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="superDataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="subDataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="SameIndividual" eSuperTypes="/0/OWL2/Assertion">
        <eStructuralFeatures xsi:type="ecore:EReference" name="sameIndividuals" ordered="false" lowerBound="2" upperBound="-1" eType="/0/OWL2/NamedIndividual"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="SubObjectPropertyOf" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="superObjectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="subObjectPropertyExpressions" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectComplementOf" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EReference" name="classExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Ontology">
        <eStructuralFeatures xsi:type="ecore:EReference" name="ontologyAnnotations" ordered="false" upperBound="-1" eType="/0/OWL2/Annotation"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="axioms" ordered="false" upperBound="-1" eType="/0/OWL2/Axiom"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="importedOntologies" ordered="false" upperBound="-1" eType="/0/OWL2/Ontology"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="ontologyURI" ordered="false" eType="/0/OWL2/URI"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="versionURI" ordered="false" eType="/0/OWL2/URI"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectPropertyRange" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="range" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataPropertyAssertion" eSuperTypes="/0/OWL2/Assertion">
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="targetValue" ordered="false" lowerBound="1" eType="/0/OWL2/Constant"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="sourceIndividual" ordered="false" lowerBound="1" eType="/0/OWL2/Individual"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ClassAssertion" eSuperTypes="/0/OWL2/Assertion">
        <eStructuralFeatures xsi:type="ecore:EReference" name="individual" ordered="false" lowerBound="1" eType="/0/OWL2/NamedIndividual"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="classExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="IrreflexiveObjectProperty" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectExactCardinality" eSuperTypes="/0/OWL2/ClassExpression">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="cardinality" ordered="false" unique="false" lowerBound="1" eType="/1/Integer"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="classExpression" ordered="false" eType="/0/OWL2/ClassExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="DataComplementOf" eSuperTypes="/0/OWL2/DataRange">
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataRange" ordered="false" lowerBound="1" eType="/0/OWL2/DataRange"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="SubClassOf" eSuperTypes="/0/OWL2/ClassAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="subClassExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="superClassExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="SubObjectProperty"/>
      <eClassifiers xsi:type="ecore:EClass" name="TransitiveObjectProperty" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="EntityAnnotation" eSuperTypes="/0/OWL2/Axiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="entity" ordered="false" lowerBound="1" eType="/0/OWL2/Entity"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="entityAnnotations" ordered="false" lowerBound="1" upperBound="-1" eType="/0/OWL2/Annotation"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="FullURI">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="iri" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="AbbreviatedURI">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="localName" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="InverseObjectProperties" eSuperTypes="/0/OWL2/ObjectPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="inverseObjectProperties" ordered="false" lowerBound="2" upperBound="2" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="AnnotationByConstant" eSuperTypes="/0/OWL2/Annotation">
        <eStructuralFeatures xsi:type="ecore:EReference" name="annotationValue" ordered="false" lowerBound="1" eType="/0/OWL2/Constant"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="AnnotationByEntity" eSuperTypes="/0/OWL2/Annotation">
        <eStructuralFeatures xsi:type="ecore:EReference" name="annotationValue" ordered="false" lowerBound="1" eType="/0/OWL2/Entity"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="AnnotationByAnonymousIndividual" eSuperTypes="/0/OWL2/Annotation">
        <eStructuralFeatures xsi:type="ecore:EReference" name="annotationValue" ordered="false" lowerBound="1" eType="/0/OWL2/AnonymousIndividual"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="AnonymousIndividual" eSuperTypes="/0/OWL2/Individual">
        <eStructuralFeatures xsi:type="ecore:EAttribute" name="nodeID" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="Declaration" eSuperTypes="/0/OWL2/Axiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="entity" ordered="false" lowerBound="1" eType="/0/OWL2/Entity"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="ObjectAndDataPropertyAxiom" abstract="true" eSuperTypes="/0/OWL2/Axiom"/>
      <eClassifiers xsi:type="ecore:EClass" name="KeyFor" eSuperTypes="/0/OWL2/ObjectAndDataPropertyAxiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="classExpression" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="dataPropertyExpressions" ordered="false" upperBound="-1" eType="/0/OWL2/DataPropertyExpression"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="objectPropertyExpressions" ordered="false" upperBound="-1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="AnonymousIndividualAnnotation" eSuperTypes="/0/OWL2/Axiom">
        <eStructuralFeatures xsi:type="ecore:EReference" name="anonymousIndividual" ordered="false" lowerBound="1" eType="/0/OWL2/AnonymousIndividual"/>
        <eStructuralFeatures xsi:type="ecore:EReference" name="anonymousIndiviudalAnnotations" ordered="false" lowerBound="1" upperBound="-1" eType="/0/OWL2/Annotation"/>
      </eClassifiers>
    </eSubpackages>
    <eSubpackages name="OCL">
      <eSubpackages name="Expressions">
        <eClassifiers xsi:type="ecore:EClass" name="OclExpression" abstract="true" eSuperTypes="/0/KM3/LocatedElement">
          <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="/0/OCL/Types/Classifier" containment="true" eOpposite="/0/OCL/Types/Classifier/oclExpression"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="ifExp3" ordered="false" eType="/0/OCL/Expressions/IfExp" eOpposite="/0/OCL/Expressions/IfExp/elseExpression"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="appliedProperty" ordered="false" eType="/0/OCL/Expressions/PropertyCallExp" eOpposite="/0/OCL/Expressions/PropertyCallExp/source"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="collection" ordered="false" eType="/0/OCL/Expressions/CollectionExp" eOpposite="/0/OCL/Expressions/CollectionExp/elements"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="letExp" ordered="false" eType="/0/OCL/Expressions/LetExp" eOpposite="/0/OCL/Expressions/LetExp/in_"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="loopExp" ordered="false" eType="/0/OCL/Expressions/LoopExp" eOpposite="/0/OCL/Expressions/LoopExp/body"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="parentOperation" ordered="false" eType="/0/OCL/Expressions/OperationCallExp" eOpposite="/0/OCL/Expressions/OperationCallExp/arguments"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="initializedVariable" ordered="false" eType="/0/OCL/Expressions/VariableDeclaration" eOpposite="/0/OCL/Expressions/VariableDeclaration/initExpression"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="ifExp2" ordered="false" eType="/0/OCL/Expressions/IfExp" eOpposite="/0/OCL/Expressions/IfExp/thenExpression"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="owningOperation" ordered="false" eType="/0/KM3/Operation" eOpposite="/0/KM3/Operation/body"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="ifExp1" ordered="false" eType="/0/OCL/Expressions/IfExp" eOpposite="/0/OCL/Expressions/IfExp/condition"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="owningAttribute" ordered="false" eType="/0/KM3/Attribute" eOpposite="/0/KM3/Attribute/initExpression"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="VariableExp" eSuperTypes="/0/OCL/Expressions/OclExpression">
          <eStructuralFeatures xsi:type="ecore:EReference" name="referredVariable" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/VariableDeclaration" eOpposite="/0/OCL/Expressions/VariableDeclaration/variableExp"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="SuperExp" eSuperTypes="/0/OCL/Expressions/OclExpression"/>
        <eClassifiers xsi:type="ecore:EClass" name="PrimitiveExp" abstract="true" eSuperTypes="/0/OCL/Expressions/OclExpression"/>
        <eClassifiers xsi:type="ecore:EClass" name="StringExp" eSuperTypes="/0/OCL/Expressions/PrimitiveExp">
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="stringSymbol" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="BooleanExp" eSuperTypes="/0/OCL/Expressions/PrimitiveExp">
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="booleanSymbol" ordered="false" unique="false" lowerBound="1" eType="/1/Boolean"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="NumericExp" abstract="true" eSuperTypes="/0/OCL/Expressions/PrimitiveExp"/>
        <eClassifiers xsi:type="ecore:EClass" name="RealExp" eSuperTypes="/0/OCL/Expressions/NumericExp">
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="realSymbol" ordered="false" unique="false" lowerBound="1" eType="/1/Double"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="IntegerExp" eSuperTypes="/0/OCL/Expressions/NumericExp">
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="integerSymbol" ordered="false" unique="false" lowerBound="1" eType="/1/Integer"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="CollectionExp" abstract="true" eSuperTypes="/0/OCL/Expressions/OclExpression">
          <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/collection"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="BagExp" eSuperTypes="/0/OCL/Expressions/CollectionExp"/>
        <eClassifiers xsi:type="ecore:EClass" name="OrderedSetExp" eSuperTypes="/0/OCL/Expressions/CollectionExp"/>
        <eClassifiers xsi:type="ecore:EClass" name="SequenceExp" eSuperTypes="/0/OCL/Expressions/CollectionExp"/>
        <eClassifiers xsi:type="ecore:EClass" name="SetExp" eSuperTypes="/0/OCL/Expressions/CollectionExp"/>
        <eClassifiers xsi:type="ecore:EClass" name="TupleExp" eSuperTypes="/0/OCL/Expressions/OclExpression">
          <eStructuralFeatures xsi:type="ecore:EReference" name="tuplePart" upperBound="-1" eType="/0/OCL/Expressions/TuplePart" containment="true" eOpposite="/0/OCL/Expressions/TuplePart/tuple"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="TuplePart" eSuperTypes="/0/OCL/Expressions/VariableDeclaration">
          <eStructuralFeatures xsi:type="ecore:EReference" name="tuple" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/TupleExp" eOpposite="/0/OCL/Expressions/TupleExp/tuplePart"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="MapExp" eSuperTypes="/0/OCL/Expressions/OclExpression">
          <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1" eType="/0/OCL/Expressions/MapElement" containment="true" eOpposite="/0/OCL/Expressions/MapElement/map"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="MapElement" eSuperTypes="/0/KM3/LocatedElement">
          <eStructuralFeatures xsi:type="ecore:EReference" name="map" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/MapExp" eOpposite="/0/OCL/Expressions/MapExp/elements"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="key" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/OclExpression" containment="true"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/OclExpression" containment="true"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="EnumLiteralExp" eSuperTypes="/0/OCL/Expressions/OclExpression">
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="OclUndefinedExp" eSuperTypes="/0/OCL/Expressions/OclExpression"/>
        <eClassifiers xsi:type="ecore:EClass" name="PropertyCallExp" abstract="true" eSuperTypes="/0/OCL/Expressions/OclExpression">
          <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/appliedProperty"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="NavigationOrAttributeCallExp" eSuperTypes="/0/OCL/Expressions/PropertyCallExp">
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="OperationCallExp" eSuperTypes="/0/OCL/Expressions/PropertyCallExp">
          <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/parentOperation"/>
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="operationName" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="OperatorCallExp" eSuperTypes="/0/OCL/Expressions/OperationCallExp"/>
        <eClassifiers xsi:type="ecore:EClass" name="CollectionOperationCallExp" eSuperTypes="/0/OCL/Expressions/OperationCallExp"/>
        <eClassifiers xsi:type="ecore:EClass" name="LoopExp" abstract="true" eSuperTypes="/0/OCL/Expressions/PropertyCallExp">
          <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/loopExp"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="iterators" ordered="false" lowerBound="1" upperBound="-1" eType="/0/OCL/Expressions/Iterator" containment="true" eOpposite="/0/OCL/Expressions/Iterator/loopExpr"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="IterateExp" eSuperTypes="/0/OCL/Expressions/LoopExp">
          <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/VariableDeclaration" containment="true" eOpposite="/0/OCL/Expressions/VariableDeclaration/baseExp"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="IteratorExp" eSuperTypes="/0/OCL/Expressions/LoopExp">
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="LetExp" eSuperTypes="/0/OCL/Expressions/OclExpression">
          <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/VariableDeclaration" containment="true" eOpposite="/0/OCL/Expressions/VariableDeclaration/letExp"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="in_" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/letExp"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="IfExp" eSuperTypes="/0/OCL/Expressions/OclExpression">
          <eStructuralFeatures xsi:type="ecore:EReference" name="thenExpression" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/ifExp2"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="condition" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/ifExp1"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="elseExpression" ordered="false" lowerBound="1" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/ifExp3"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="VariableDeclaration" eSuperTypes="/0/KM3/LocatedElement">
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" ordered="false" unique="false" eType="/1/String"/>
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="varName" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="/0/OCL/Types/Classifier" containment="true" eOpposite="/0/OCL/Types/Classifier/variableDeclaration"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="initExpression" ordered="false" eType="/0/OCL/Expressions/OclExpression" containment="true" eOpposite="/0/OCL/Expressions/OclExpression/initializedVariable"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="letExp" ordered="false" eType="/0/OCL/Expressions/LetExp" eOpposite="/0/OCL/Expressions/LetExp/variable"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="baseExp" ordered="false" eType="/0/OCL/Expressions/IterateExp" eOpposite="/0/OCL/Expressions/IterateExp/result"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="variableExp" ordered="false" upperBound="-1" eType="/0/OCL/Expressions/VariableExp" eOpposite="/0/OCL/Expressions/VariableExp/referredVariable"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="Iterator" eSuperTypes="/0/OCL/Expressions/VariableDeclaration">
          <eStructuralFeatures xsi:type="ecore:EReference" name="loopExpr" ordered="false" eType="/0/OCL/Expressions/LoopExp" eOpposite="/0/OCL/Expressions/LoopExp/iterators"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="ParameterVariableDeclaration" eSuperTypes="/0/OCL/Expressions/VariableDeclaration">
          <eStructuralFeatures xsi:type="ecore:EReference" name="representedParameter" ordered="false" eType="/0/KM3/Parameter"/>
        </eClassifiers>
      </eSubpackages>
      <eSubpackages name="Types">
        <eClassifiers xsi:type="ecore:EClass" name="CollectionType" eSuperTypes="/0/OCL/Types/Classifier">
          <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" ordered="false" lowerBound="1" eType="/0/OCL/Types/Classifier" containment="true" eOpposite="/0/OCL/Types/Classifier/collectionTypes"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="Classifier" eSuperTypes="/0/KM3/ModelElement">
          <eStructuralFeatures xsi:type="ecore:EReference" name="structuralFeatures" upperBound="-1" eType="/0/KM3/StructuralFeature" containment="true" eOpposite="/0/KM3/StructuralFeature/owner"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="operations" upperBound="-1" eType="/0/KM3/Operation" containment="true" eOpposite="/0/KM3/Operation/owner"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="definitions" ordered="false" eType="/0/KM3/KM3OCL/OclContextDefinition" eOpposite="/0/KM3/KM3OCL/OclContextDefinition/context_"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="oclExpression" ordered="false" eType="/0/OCL/Expressions/OclExpression" eOpposite="/0/OCL/Expressions/OclExpression/type"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="mapType2" ordered="false" eType="/0/OCL/Types/MapType" eOpposite="/0/OCL/Types/MapType/valueType"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="mapType" ordered="false" eType="/0/OCL/Types/MapType" eOpposite="/0/OCL/Types/MapType/keyType"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="collectionTypes" ordered="false" eType="/0/OCL/Types/CollectionType" eOpposite="/0/OCL/Types/CollectionType/elementType"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="tupleTypeAttribute" ordered="false" eType="/0/OCL/Types/TupleTypeAttribute" eOpposite="/0/OCL/Types/TupleTypeAttribute/type"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="variableDeclaration" ordered="false" eType="/0/OCL/Expressions/VariableDeclaration" eOpposite="/0/OCL/Expressions/VariableDeclaration/type"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" abstract="true" eSuperTypes="/0/OCL/Types/Classifier"/>
        <eClassifiers xsi:type="ecore:EClass" name="StringType" eSuperTypes="/0/OCL/Types/PrimitiveType"/>
        <eClassifiers xsi:type="ecore:EClass" name="BooleanType" eSuperTypes="/0/OCL/Types/PrimitiveType"/>
        <eClassifiers xsi:type="ecore:EClass" name="NumericType" abstract="true" eSuperTypes="/0/OCL/Types/PrimitiveType"/>
        <eClassifiers xsi:type="ecore:EClass" name="IntegerType" eSuperTypes="/0/OCL/Types/NumericType"/>
        <eClassifiers xsi:type="ecore:EClass" name="RealType" eSuperTypes="/0/OCL/Types/NumericType"/>
        <eClassifiers xsi:type="ecore:EClass" name="BagType" eSuperTypes="/0/OCL/Types/CollectionType"/>
        <eClassifiers xsi:type="ecore:EClass" name="OrderedSetType" eSuperTypes="/0/OCL/Types/CollectionType"/>
        <eClassifiers xsi:type="ecore:EClass" name="SequenceType" eSuperTypes="/0/OCL/Types/CollectionType"/>
        <eClassifiers xsi:type="ecore:EClass" name="SetType" eSuperTypes="/0/OCL/Types/CollectionType"/>
        <eClassifiers xsi:type="ecore:EClass" name="OclAnyType" eSuperTypes="/0/OCL/Types/Classifier"/>
        <eClassifiers xsi:type="ecore:EClass" name="TupleType" eSuperTypes="/0/OCL/Types/Classifier">
          <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1" eType="/0/OCL/Types/TupleTypeAttribute" containment="true" eOpposite="/0/OCL/Types/TupleTypeAttribute/tupleType"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="TupleTypeAttribute" eSuperTypes="/0/KM3/LocatedElement">
          <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1" eType="/0/OCL/Types/Classifier" containment="true" eOpposite="/0/OCL/Types/Classifier/tupleTypeAttribute"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="tupleType" ordered="false" lowerBound="1" eType="/0/OCL/Types/TupleType" eOpposite="/0/OCL/Types/TupleType/attributes"/>
          <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false" lowerBound="1" eType="/1/String"/>
        </eClassifiers>
        <eClassifiers xsi:type="ecore:EClass" name="MapType" eSuperTypes="/0/OCL/Types/Classifier">
          <eStructuralFeatures xsi:type="ecore:EReference" name="valueType" ordered="false" lowerBound="1" eType="/0/OCL/Types/Classifier" containment="true" eOpposite="/0/OCL/Types/Classifier/mapType2"/>
          <eStructuralFeatures xsi:type="ecore:EReference" name="keyType" ordered="false" lowerBound="1" eType="/0/OCL/Types/Classifier" containment="true" eOpposite="/0/OCL/Types/Classifier/mapType"/>
        </eClassifiers>
      </eSubpackages>
    </eSubpackages>
    <eSubpackages name="TwoUse">
      <eClassifiers xsi:type="ecore:EClass" name="TUClass" eSuperTypes="/0/KM3/Class">
        <eStructuralFeatures xsi:type="ecore:EReference" name="owlClass" ordered="false" lowerBound="1" eType="/0/OWL2/ClassExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="TUDataType" eSuperTypes="/0/KM3/DataType">
        <eStructuralFeatures xsi:type="ecore:EReference" name="owlDataType" ordered="false" lowerBound="1" eType="/0/OWL2/OWLDatatype"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="TUReference" eSuperTypes="/0/TwoUse/TUStructuralFeature">
        <eStructuralFeatures xsi:type="ecore:EReference" name="owlObjectDatatype" ordered="false" lowerBound="1" eType="/0/OWL2/ObjectPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="TUPackage" eSuperTypes="/0/KM3/Package">
        <eStructuralFeatures xsi:type="ecore:EReference" name="owlOntology" ordered="false" lowerBound="1" eType="/0/OWL2/Ontology"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="TUAttribute" eSuperTypes="/0/TwoUse/TUStructuralFeature">
        <eStructuralFeatures xsi:type="ecore:EReference" name="owlDatatypeProperty" ordered="false" lowerBound="1" eType="/0/OWL2/DataPropertyExpression"/>
      </eClassifiers>
      <eClassifiers xsi:type="ecore:EClass" name="TUStructuralFeature" eSuperTypes="/0/KM3/StructuralFeature"/>
    </eSubpackages>
  </ecore:EPackage>
  <ecore:EPackage name="PrimitiveTypes">
    <eClassifiers xsi:type="ecore:EDataType" name="Boolean"/>
    <eClassifiers xsi:type="ecore:EDataType" name="Double"/>
    <eClassifiers xsi:type="ecore:EDataType" name="Integer"/>
    <eClassifiers xsi:type="ecore:EDataType" name="String"/>
  </ecore:EPackage>
</xmi:XMI>

