<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rule="http://www.swop-project.eu/ontologies/pmo/rule.owl#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:owl11="http://www.w3.org/2006/12/owl11#"
    xmlns:operation="http://www.swop-project.eu/ontologies/pmo/operation.owl#"
  xml:base="http://www.swop-project.eu/ontologies/pmo/rule.owl">
  <owl:Ontology rdf:about="">
    <owl:imports rdf:resource="http://www.swop-project.eu/ontologies/pmo/operation.owl"/>
  </owl:Ontology>
  <owl:Class rdf:ID="WhileLoop">
    <rdfs:subClassOf>
      <owl:Class rdf:ID="UnaryDerivation"/>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:ID="condition"/>
        </owl:onProperty>
        <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="BinaryDerivation">
    <rdfs:subClassOf>
      <owl:Class rdf:ID="Derivation"/>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:ID="domain_II"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:ID="domain_I"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="#Derivation">
    <owl:equivalentClass>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#BinaryDerivation"/>
          <owl:Class rdf:ID="NullaryDerivation"/>
          <owl:Class rdf:about="#UnaryDerivation"/>
        </owl:unionOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:subClassOf>
      <owl:Class rdf:ID="Rule"/>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:ID="next"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="Assertion">
    <owl:disjointWith rdf:resource="#Derivation"/>
    <rdfs:subClassOf>
      <owl:Class rdf:about="#Rule"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="Assignment">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:cardinality>
        <owl:onProperty>
          <owl:ObjectProperty rdf:ID="parameter"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:ID="rhs"/>
        </owl:onProperty>
        <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Class rdf:about="#NullaryDerivation"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="#NullaryDerivation">
    <rdfs:subClassOf rdf:resource="#Derivation"/>
  </owl:Class>
  <owl:Class rdf:ID="Call">
    <rdfs:subClassOf>
      <owl:Class rdf:about="#UnaryDerivation"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="Quit">
    <rdfs:subClassOf>
      <owl:Class rdf:about="#NullaryDerivation"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="#Rule">
    <owl:equivalentClass>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Assertion"/>
          <owl:Class rdf:about="#Derivation"/>
        </owl:unionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:ID="IfThenElse">
    <rdfs:subClassOf rdf:resource="#BinaryDerivation"/>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="#condition"/>
        </owl:onProperty>
        <owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="#UnaryDerivation">
    <rdfs:subClassOf rdf:resource="#Derivation"/>
    <owl:equivalentClass>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Call"/>
          <owl:Class rdf:about="#WhileLoop"/>
        </owl:unionOf>
      </owl:Class>
    </owl:equivalentClass>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="#domain_I"/>
        </owl:onProperty>
        <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
        >1</owl:maxCardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:ObjectProperty rdf:about="#rhs">
    <rdfs:range>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <rdf:Description rdf:about="http://www.swop-project.eu/ontologies/pmo/operation.owl#Operation"/>
          <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:range>
    <rdfs:domain rdf:resource="#Assignment"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#condition">
    <rdfs:range>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <rdf:Description rdf:about="http://www.swop-project.eu/ontologies/pmo/operation.owl#Operation"/>
          <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:range>
    <rdfs:domain>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#IfThenElse"/>
          <owl:Class rdf:about="#WhileLoop"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:domain>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:ID="logicalOperation">
    <rdfs:range rdf:resource="http://www.swop-project.eu/ontologies/pmo/operation.owl#Operation"/>
    <rdfs:domain rdf:resource="#Assertion"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#parameter">
    <rdfs:domain rdf:resource="#Assignment"/>
    <rdfs:range>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <rdf:Description rdf:about="http://www.swop-project.eu/ontologies/pmo/operation.owl#PartInstanceDatatypeProperty"/>
          <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:range>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#domain_I">
    <rdfs:domain>
      <owl:Class>
        <owl:unionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#BinaryDerivation"/>
          <owl:Class rdf:about="#UnaryDerivation"/>
        </owl:unionOf>
      </owl:Class>
    </rdfs:domain>
    <rdfs:range rdf:resource="#Derivation"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#next">
    <rdfs:range rdf:resource="#Derivation"/>
    <rdfs:domain rdf:resource="#Derivation"/>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#domain_II">
    <rdfs:range rdf:resource="#Derivation"/>
    <rdfs:domain rdf:resource="#BinaryDerivation"/>
  </owl:ObjectProperty>
</rdf:RDF>

<!-- Created with TopBraid Composer -->
