<?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:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns="http://www.ontoclean.org/ontoclean-dl-v1.owl#"
  xml:base="http://www.ontoclean.org/ontoclean-dl-v1.owl">
  <owl:Ontology rdf:about="">
    <owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >1.0</owl:versionInfo>
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >The DL part of the OntoClean metaproperty ontology.  Developed by Chris Welty, March, 2006.</rdfs:comment>
  </owl:Ontology>
  <owl:Class rdf:ID="AntiRigidClass">
    <rdfs:subClassOf>
      <owl:Class rdf:ID="NonRigidClass"/>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="#NonRigidClass">
    <rdfs:subClassOf>
      <owl:Class rdf:ID="Class">
        <owl:equivalentClass>
          <owl:Class>
            <owl:intersectionOf rdf:parseType="Collection">
              <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                  <owl:Class rdf:about="#NonRigidClass"/>
                  <owl:Class rdf:ID="RigidClass"/>
                </owl:unionOf>
              </owl:Class>
              <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                  <owl:Class rdf:ID="NonDependentClass"/>
                  <owl:Class rdf:ID="DependentClass"/>
                </owl:unionOf>
              </owl:Class>
              <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                  <owl:Class rdf:ID="SortalClass"/>
                  <owl:Class rdf:ID="NonSortalClass"/>
                </owl:unionOf>
              </owl:Class>
              <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                  <owl:Class rdf:ID="UnityClass"/>
                  <owl:Class rdf:ID="NonUnityClass"/>
                </owl:unionOf>
              </owl:Class>
            </owl:intersectionOf>
          </owl:Class>
        </owl:equivalentClass>
      </owl:Class>
    </rdfs:subClassOf>
    <owl:disjointWith>
      <owl:Class rdf:about="#RigidClass"/>
    </owl:disjointWith>
  </owl:Class>
  <owl:Class rdf:about="#NonUnityClass">
    <owl:disjointWith>
      <owl:Class rdf:about="#UnityClass"/>
    </owl:disjointWith>
    <rdfs:subClassOf rdf:resource="#Class"/>
  </owl:Class>
  <owl:Class rdf:about="#DependentClass">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:allValuesFrom rdf:resource="#DependentClass"/>
        <owl:onProperty>
          <owl:ObjectProperty rdf:ID="hasSubClass"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf rdf:resource="#Class"/>
    <owl:disjointWith>
      <owl:Class rdf:about="#NonDependentClass"/>
    </owl:disjointWith>
  </owl:Class>
  <owl:Class rdf:about="#SortalClass">
    <owl:disjointWith>
      <owl:Class rdf:about="#NonSortalClass"/>
    </owl:disjointWith>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="#hasSubClass"/>
        </owl:onProperty>
        <owl:allValuesFrom rdf:resource="#SortalClass"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf rdf:resource="#Class"/>
  </owl:Class>
  <owl:Class rdf:about="#UnityClass">
    <owl:disjointWith rdf:resource="#NonUnityClass"/>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:TransitiveProperty rdf:ID="subClassOf">
            <owl:inverseOf>
              <owl:ObjectProperty rdf:about="#hasSubClass"/>
            </owl:inverseOf>
            <rdfs:range rdf:resource="#Class"/>
            <rdfs:domain rdf:resource="#Class"/>
          </owl:TransitiveProperty>
        </owl:onProperty>
        <owl:allValuesFrom>
          <owl:Class>
            <owl:complementOf>
              <owl:Class rdf:ID="AntiUnityClass"/>
            </owl:complementOf>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf rdf:resource="#Class"/>
  </owl:Class>
  <owl:Class rdf:about="#AntiUnityClass">
    <rdfs:subClassOf rdf:resource="#NonUnityClass"/>
  </owl:Class>
  <owl:Class rdf:about="#NonSortalClass">
    <rdfs:subClassOf rdf:resource="#Class"/>
    <owl:disjointWith rdf:resource="#SortalClass"/>
  </owl:Class>
  <owl:Class rdf:about="#NonDependentClass">
    <rdfs:subClassOf rdf:resource="#Class"/>
    <owl:disjointWith rdf:resource="#DependentClass"/>
  </owl:Class>
  <owl:Class rdf:about="#RigidClass">
    <owl:disjointWith rdf:resource="#NonRigidClass"/>
    <rdfs:subClassOf rdf:resource="#Class"/>
    <owl:equivalentClass>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#subClassOf"/>
        <owl:allValuesFrom>
          <owl:Class>
            <owl:complementOf rdf:resource="#AntiRigidClass"/>
          </owl:Class>
        </owl:allValuesFrom>
      </owl:Restriction>
    </owl:equivalentClass>
  </owl:Class>
  <owl:ObjectProperty rdf:about="#hasSubClass">
    <rdfs:range rdf:resource="#Class"/>
    <owl:inverseOf rdf:resource="#subClassOf"/>
    <rdfs:domain rdf:resource="#Class"/>
  </owl:ObjectProperty>
</rdf:RDF>

<!-- Created with Protege (with OWL Plugin 2.2, Build 304)  http://protege.stanford.edu -->

