<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
  <!ENTITY foaf "http://xmlns.com/foaf/0.1/" >
  <!ENTITY funding "http://www.mindswap.org/2004/owl/funding#">
  <!ENTITY swap "http://www.mindswap.org/2003/owl/mindswap#" >
  <!ENTITY oldswap "http://owl.mindswap.org/2003/ont/owlweb.rdf#" >
]>
<rdf:RDF
    xml:base="&swap;" 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:foaf="&foaf;"
    xmlns:funding="&funding;"
    xmlns:ms="&swap;"
    xmlns="&swap;"
>

<owl:Ontology rdf:about="">
  <owl:imports>
    <owl:Ontology rdf:about="http://www.mindswap.org/2003/owl/foaf"/>
  </owl:imports>
  <owl:imports>
    <owl:Ontology rdf:about="http://www.mindswap.org/2004/owl/funding"/>
  </owl:imports>
</owl:Ontology>

<!-- Mindswap Classes -->

<owl:Class rdf:ID="Swapper">
  <rdfs:label>MindSwapper</rdfs:label>
  <rdfs:subClassOf rdf:resource="&foaf;Person"/>
</owl:Class>

<owl:Class rdf:ID="Faculty" ms:priority="100">
  <rdfs:label>Mindswap Faculty</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Swapper"/>
</owl:Class>

<owl:Class rdf:ID="Staff" ms:priority="200">
  <rdfs:label>Mindswap Staff</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Swapper"/>
  <!--
  <owl:intersectionOf rdf:parseType="Collection">
    <owl:Class rdf:about="#Swapper"/>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&foaf;fundedBy"/>
      <owl:hasValue rdf:resource="#Mindswap"/>
    </owl:Restriction>
  </owl:intersectionOf>
  -->
</owl:Class>

<owl:Class rdf:ID="Researcher" ms:priority="210">
  <rdfs:label>Mindswap Researcher</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Staff"/>
</owl:Class>

<owl:Class rdf:ID="Programmer" ms:priority="220">
  <rdfs:label>Mindswap Programmer</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Staff"/>
</owl:Class>

<owl:Class rdf:ID="Student" ms:priority="300">
  <rdfs:label>Mindswap Student</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Swapper"/>
</owl:Class>

<owl:Class rdf:ID="UndergraduateStudent" ms:priority="320">
  <rdfs:label>Mindswap Undergraduate Student</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Student"/>
</owl:Class>

<owl:Class rdf:ID="GraduateStudent" ms:priority="320">
  <rdfs:label>Mindswap Graduate Student</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Student"/>
</owl:Class>

<owl:Class rdf:ID="Affiliate" ms:priority="400">
  <rdfs:label>Mindswap Affiliate</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Swapper"/>
</owl:Class>

<owl:Class rdf:ID="Alumni" ms:priority="500">
  <rdfs:label>Mindswap Alumni</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Swapper"/>
</owl:Class>

<owl:Class rdf:ID="Visitor" ms:priority ="450">
  <rdfs:label>Mindswap Visitor</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Swapper"/>
</owl:Class>

<!-- Mindswap Properties -->
<owl:AnnotationProperty rdf:ID="priority">
  <rdfs:label>Display Priority</rdfs:label>
  <rdfs:comment>This property is used to influence the display order of classes on the Mindswap website</rdfs:comment>
</owl:AnnotationProperty>

<owl:AnnotationProperty rdf:ID="label">
  <rdfs:label>Display Name</rdfs:label>
  <rdfs:comment>Overrides rdfs:label on the website.</rdfs:comment>
</owl:AnnotationProperty>

<!-- Modelling property that foaf is missing -->
<owl:ObjectProperty rdf:ID="memberOf">
  <rdfs:label>member of</rdfs:label>
  <owl:inverseOf rdf:resource="&foaf;member"/>
</owl:ObjectProperty>

<!-- Mindswap the organization -->
<foaf:Organization rdf:ID="Mindswap" rdfs:label="Mindswap">
  <rdf:type rdf:resource="&funding;Organization"/>
  <rdf:type>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&foaf;member"/>
      <owl:allValuesFrom rdf:resource="#Swapper"/>
    </owl:Restriction>
  </rdf:type>
  <foaf:homepage>
    <foaf:Document rdf:about="http://www.mindswap.org/"/>
  </foaf:homepage>
  <funding:homepage rdf:resource="http://www.mindswap.org/"/>
  <foaf:logo>
    <foaf:Image rdf:about="http://www.mindswap.org/images/jimsLogo.gif"/>
  </foaf:logo>
  <funding:logo rdf:resource="http://www.mindswap.org/images/jimsLogo.gif"/>
</foaf:Organization>

<foaf:Organization rdf:ID="Mindlab" rdfs:label="Mindlab">
  <rdf:type rdf:resource="&funding;Organization"/>
  <foaf:homepage>
    <foaf:Document rdf:about="http://www.mindlab.umd.edu/"/>
  </foaf:homepage>
  <funding:homepage rdf:resource="http://www.mindlab.umd.edu/"/>
  <foaf:logo>
    <foaf:Image rdf:about="http://www.mindlab.umd.edu/images/logo.gif"/>
  </foaf:logo>
  <funding:logo rdf:resource="http://www.mindlab.umd.edu/images/logo.gif"/>
</foaf:Organization>

<!-- Funder descriptons -->
<owl:Class rdf:ID="MindswapFunder" rdfs:label="Mindswap Funder">
  <rdfs:subClassOf rdf:resource="&funding;Funder"/>
  <!--
  <owl:intersectionOf rdf:parseType="Collection">
    <owl:Class rdf:about="&funding;Organization"/>
    <owl:Restriction>
      <owl:onProperty rdf:resource="&funding;funds"/>
      <owl:hasValue rdf:resource="#Mindswap"/>
    </owl:Restriction>
  </owl:intersectionOf>
  -->
</owl:Class>

<!-- Email Addresses -->
<owl:Class rdf:ID="EmailAddress" rdfs:label="Email Address">
  <owl:disjointWith rdf:resource="&foaf;Agent"/>
  <owl:disjointWith rdf:resource="&foaf;Document"/>
</owl:Class>

<owl:ObjectProperty rdf:about="&foaf;mbox">
  <rdfs:range rdf:resource="#EmailAddress"/>
</owl:ObjectProperty>


</rdf:RDF>
