<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF [
  <!ENTITY SemWeb07 "http://www.uni-koblenz.de/FB4/Institutes/IFI/AGStaab/Teaching/WS0708/SemWeb07#">
  <!ENTITY owl "http://www.w3.org/2002/07/owl#">
  <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#">
  <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#">
]>
<rdf:RDF xml:base="http://www.uni-koblenz.de/FB4/Institutes/IFI/AGStaab/Teaching/WS0708/SemWeb07"
         xmlns:SemWeb07="&SemWeb07;"
         xmlns:owl="&owl;"
         xmlns:rdf="&rdf;"
         xmlns:rdfs="&rdfs;">

<!-- Ontology Information -->
  <owl:Ontology rdf:about=""/>

<!-- Classes -->
  <owl:Class rdf:about="#DBServer">
    <rdfs:subClassOf rdf:resource="#Server"/>
  </owl:Class>

  <owl:Class rdf:about="#Hiwi">
    <rdfs:subClassOf rdf:resource="#Student"/>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hatZugriff"/>
        <owl:someValuesFrom rdf:resource="#WebDAV"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:disjointWith rdf:resource="#Teilnehmer"/>
  </owl:Class>

  <owl:Class rdf:about="#Server"/>
  <owl:Class rdf:about="#Student">
    <rdfs:subClassOf rdf:resource="&owl;Thing"/>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
        <owl:onProperty rdf:resource="#hatMatnr"/>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>

  <owl:Class rdf:about="#Teilnehmer">
    <rdfs:subClassOf rdf:resource="#Student"/>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:hasValue rdf:resource="#WebDAV_15"/>
        <owl:onProperty rdf:resource="#hatZugriff"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
        <owl:onProperty rdf:resource="#mitgliedInGruppe"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#hatZugriff"/>
        <owl:someValuesFrom>
          <rdf:Description>
            <owl:oneOf rdf:parseType="Collection">
              <rdf:Description rdf:about="#DBServer_12"/>
              <rdf:Description rdf:about="#DBServer_13"/>
            </owl:oneOf>
          </rdf:Description>
        </owl:someValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
        <owl:onProperty rdf:resource="#gehtZu"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <owl:disjointWith rdf:resource="#Hiwi"/>
  </owl:Class>

  <owl:Class rdf:about="#TeilnehmerGruppe"/>
  <owl:Class rdf:about="#Uebungsstunde"/>
  <owl:Class rdf:about="#WebDAV">
    <rdfs:subClassOf rdf:resource="#Server"/>
  </owl:Class>

<!-- Datatypes -->
  <rdfs:Datatype rdf:about="&xsd;int"/>
  <rdfs:Datatype rdf:about="&xsd;string"/>

<!-- Datatype Properties -->
  <owl:DatatypeProperty rdf:about="#hatMatnr">
    <rdf:type rdf:resource="&owl;FunctionalProperty"/>
    <rdfs:domain rdf:resource="#Student"/>
    <rdfs:range rdf:resource="&xsd;int"/>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:about="#hatPort">
    <rdfs:domain rdf:resource="#Server"/>
    <rdfs:range rdf:resource="&xsd;int"/>
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:about="#hatURI">
    <rdf:type rdf:resource="&owl;FunctionalProperty"/>
    <rdfs:domain rdf:resource="#Server"/>
    <rdfs:range rdf:resource="&xsd;string"/>
  </owl:DatatypeProperty>

<!-- Object Properties -->
  <owl:ObjectProperty rdf:about="#besuchtVon">
    <owl:inverseOf rdf:resource="#gehtZu"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:about="#gehtZu">
    <rdfs:domain rdf:resource="#Teilnehmer"/>
    <rdfs:range rdf:resource="#Uebungsstunde"/>
    <owl:inverseOf rdf:resource="#besuchtVon"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:about="#hatHiwiZugriff"/>
  <owl:ObjectProperty rdf:about="#hatZugriff">
    <rdfs:domain rdf:resource="#Student"/>
    <rdfs:range rdf:resource="#Server"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:about="#mitgliedInGruppe">
    <rdfs:domain rdf:resource="#Teilnehmer"/>
    <rdfs:range rdf:resource="#TeilnehmerGruppe"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:about="&rdf;first"/>
  <owl:ObjectProperty rdf:about="&rdf;rest"/>
  <owl:ObjectProperty rdf:about="&owl;oneOf"/>

<!-- Instances -->
  <SemWeb07:DBServer rdf:about="#DBServer_12">
    <SemWeb07:hatPort rdf:datatype="&xsd;int">1234</SemWeb07:hatPort>
    <SemWeb07:hatURI rdf:datatype="&xsd;string">DBServer_12_uri</SemWeb07:hatURI>
  </SemWeb07:DBServer>

  <SemWeb07:DBServer rdf:about="#DBServer_13">
    <SemWeb07:hatPort rdf:datatype="&xsd;int">1234</SemWeb07:hatPort>
    <SemWeb07:hatURI rdf:datatype="&xsd;string">DBServer_13_uri</SemWeb07:hatURI>
  </SemWeb07:DBServer>

  <SemWeb07:DBServer rdf:about="#DBServer_14">
    <SemWeb07:hatPort rdf:datatype="&xsd;int">1234</SemWeb07:hatPort>
    <SemWeb07:hatURI rdf:datatype="&xsd;string">DBServer_14_uri</SemWeb07:hatURI>
  </SemWeb07:DBServer>

  <SemWeb07:WebDAV rdf:about="#WebDAV_15">
    <SemWeb07:hatPort rdf:datatype="&xsd;int">1234</SemWeb07:hatPort>
    <SemWeb07:hatURI rdf:datatype="&xsd;string">WebDAV_15_uri</SemWeb07:hatURI>
  </SemWeb07:WebDAV>

  <owl:Thing rdf:about="&rdf;nil"/>
  <owl:AllDifferent>
    <owl:distinctMembers>
      <rdf:Description>
        <rdf:first rdf:resource="#DBServer_12"/>
        <rdf:rest>
          <rdf:Description>
            <rdf:first rdf:resource="#DBServer_13"/>
            <rdf:rest rdf:parseType="Collection"/>
          </rdf:Description>
        </rdf:rest>
      </rdf:Description>
    </owl:distinctMembers>
  </owl:AllDifferent>

  <owl:Thing/>
  <owl:AllDifferent>
    <owl:distinctMembers>
      <rdf:Description>
        <rdf:first rdf:resource="#DBServer_12"/>
        <rdf:rest>
          <rdf:Description>
            <rdf:first rdf:resource="#DBServer_14"/>
            <rdf:rest rdf:parseType="Collection"/>
          </rdf:Description>
        </rdf:rest>
      </rdf:Description>
    </owl:distinctMembers>
  </owl:AllDifferent>

  <owl:AllDifferent>
    <owl:distinctMembers>
      <rdf:Description>
        <rdf:first rdf:resource="#DBServer_13"/>
        <rdf:rest>
          <rdf:Description>
            <rdf:first rdf:resource="#DBServer_14"/>
            <rdf:rest rdf:parseType="Collection"/>
          </rdf:Description>
        </rdf:rest>
      </rdf:Description>
    </owl:distinctMembers>
  </owl:AllDifferent>
</rdf:RDF>

