<?xml version="1.0"?>

<!-- This ontology is a compilation of the following three ontologies
	  http://cicho0.tripod.com/cs_Courses_ont
	  http://cicho0.tripod.com/cs_LecturingStaff_ont
	  http://cicho0.tripod.com/cs_Staff_ont
	  These ontologies may be accessed directly by going through hyperdaml at www.daml.org/ontologies
	  -->
	
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
		xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
		xmlns:daml="http://www.daml.org/2001/03/daml+oil#" 
		xmlns="http://www.atl.lmco.com/projects/ontology/ontologies/comsci/csB.rdf#">

 <daml:Ontology rdf:about="">
  <daml:versionInfo>$ Computer Science dep.ontology data:13/10/01 time:11.25 $</daml:versionInfo> 
  <rdfs:comment>An ontology created for testing purposes</rdfs:comment> 
  <daml:imports rdf:resource="http://www.daml.org/2001/03/daml+oil"/> 
 </daml:Ontology>

 <daml:Class rdf:ID="Literal">
  <daml:equivalentTo rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> 
 </daml:Class>

 <daml:Class rdf:ID="Department">
  <rdfs:label>Department</rdfs:label>
  <rdfs:comment>Class representing the Department </rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.daml.org/2001/03/daml+oil#Thing"/>
 </daml:Class>
 
 <daml:Class rdf:ID="Staff">
  <rdfs:comment>This class is representative of the department's Staff</rdfs:comment>
  <rdfs:subClassOf rdf:resource="#Department"/>  
 </daml:Class>

 <daml:ObjectProperty rdf:ID="hasStaff">
  <rdfs:comment>This property states that the department has staff personnel</rdfs:comment>
  <rdfs:domain rdf:resource="#Department"/>
 </daml:ObjectProperty>

 <daml:ObjectProperty rdf:ID="hasCourses">
  <rdfs:comment>This property states that the department has a number of courses</rdfs:comment>
  <rdfs:domain rdf:resource="#Department"/>
  <rdfs:range rdf:resource="#Course"/>
 </daml:ObjectProperty>

 <daml:ObjectProperty rdf:ID="hasURL">
  <rdfs:comment>The Department has its website URL</rdfs:comment>
  <rdfs:domain rdf:resource="#Department"/>
  <rdfs:range rdf:resource="#Literal"/>
 </daml:ObjectProperty>
 
  <daml:Class rdf:ID="Lecturing-Staff">
  <rdfs:label>Lecturing-Staff</rdfs:label>
  <rdfs:comment>represents the lecturing staff of the department</rdfs:comment>
  <rdfs:subClassOf rdf:resource="#Staff"/>
 </daml:Class>

 <daml:Class rdf:ID="Administrative-Staff">
  <rdfs:label>Administrative-Staff</rdfs:label>
  <rdfs:comment>represents the administrative staff of the department</rdfs:comment>
  <rdfs:subClassOf rdf:resource="#Staff"/>
 </daml:Class>

 <daml:Class rdf:about="#Staff">
  <daml:disjointUnionOf rdf:parseType="daml:collection">
   <daml:Class rdf:about="#Lecturing-Staff"/>
   <daml:Class rdf:about="#Administrative-Staff"/>
  </daml:disjointUnionOf>
 </daml:Class>

 <daml:Class rdf:ID="Lecturer">
  <rdfs:label>Lecturer</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Lecturing-Staff"/>
 </daml:Class>

 <daml:Class rdf:ID="Assistant-Lecturer">
  <rdfs:label>Assistant-Lecturer</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Lecturing-Staff"/>
 </daml:Class>

 <daml:Class rdf:ID="Research-Assistant">
  <rdfs:label>Research-Assistant</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Lecturing-Staff"/>
 </daml:Class>

 <daml:Class rdf:ID="Office-Staff">
  <rdfs:label>Office-staff</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Administrative-Staff"/>
 </daml:Class>

 <daml:Class rdf:ID="Technical-Staff">
  <rdfs:label>Technical-Staff</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Administrative-Staff"/>
 </daml:Class>

 <daml:Class rdf:ID="Support-Staff">
  <rdfs:label>Support-Staff</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Administrative-Staff"/>
 </daml:Class>

 <daml:Class rdf:ID="Executive-Officer">
  <rdfs:label>Executive-Officer</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Office-Staff"/>
 </daml:Class>

 <daml:Class rdf:ID="Clerk">
  <rdfs:label>Clerk</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Office-Staff"/>
 </daml:Class>

 <daml:Class rdf:ID="Systems-Administrator">
  <rdfs:label>Systems-Administrator</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Technical-Staff"/>
 </daml:Class>

 <daml:Class rdf:ID="Messanger">
  <rdfs:label>Messanger</rdfs:label>
  <rdfs:subClassOf rdf:resource="#Support-Staff"/>
 </daml:Class>
 
 <daml:Class rdf:ID="Member">
  <rdfs:label>Member</rdfs:label>
  <rdfs:comment>represents a member of the lecturing staff</rdfs:comment>
  <rdfs:subClassOf rdf:resource="http://www.daml.org/2001/03/daml+oil-ex#Person"/>
  <rdfs:subClassOf rdf:resource="#Lecturing-Staff"/>
  <rdfs:subClassOf>
   <daml:Restriction daml:maxCardinality="1">
    <daml:onProperty rdf:resource="#hasOffice"/>
   </daml:Restriction>
  </rdfs:subClassOf>
 </daml:Class>

 <daml:Class rdf:ID="Office">
  <rdfs:label>Office</rdfs:label>
  <rdfs:comment>represents an office for each member</rdfs:comment>
 </daml:Class>

 <daml:Class rdf:ID="Interests">
  <rdfs:label>Interests</rdfs:label>
  <rdfs:comment>represents the subject interests for each member</rdfs:comment>
 </daml:Class>

 <daml:Class rdf:ID="Publication">
  <rdfs:label>Publications</rdfs:label>
  <rdfs:comment>represents the publications made by a member</rdfs:comment>
  <daml:sameClassAs rdf:resource="http://www.daml.ri.cmu.edu/ont/homework/atlas-publications.daml#Publication"/>
 </daml:Class>

 <daml:DatatypeProperty rdf:ID="name">
  <rdf:type rdf:resource="http://www.daml.org/2001/03/daml+oil#UniqueProperty"/>
  <rdfs:domain rdf:resource="#Member"/>
  <rdfs:range rdf:resource="#Literal"/>
 </daml:DatatypeProperty> 

 <daml:DatatypeProperty rdf:ID="email">
  <rdfs:domain rdf:resource="#Member"/>
  <rdfs:range rdf:resource="#Literal"/>
 </daml:DatatypeProperty>

 <daml:DatatypeProperty rdf:ID="webPage">
  <rdfs:domain rdf:resource="#Member"/>
  <rdfs:range rdf:resource="#Literal"/>
 </daml:DatatypeProperty>

 <daml:DatatypeProperty rdf:ID="phone">
  <rdfs:domain rdf:resource="#Member"/>
  <rdfs:range rdf:resource="http://www.w3.org/2000/10/XMLSchema#nonNegativeInteger"/>
 </daml:DatatypeProperty>

 <daml:DatatypeProperty rdf:ID="qualification">
  <rdfs:comment>represents the qualifications of a member</rdfs:comment>
  <rdfs:domain rdf:resource="#Member"/>
  <rdfs:range rdf:resource="#Literal"/>
 </daml:DatatypeProperty>

 <daml:ObjectProperty rdf:ID="hasOffice">
  <rdfs:domain rdf:resource="#Member"/>
  <rdfs:range rdf:resource="#Office"/>
 </daml:ObjectProperty>

 <daml:DatatypeProperty rdf:ID="floor">
  <rdfs:domain rdf:resource="#Office"/>
  <rdfs:range rdf:resource="#Literal"/>
 </daml:DatatypeProperty>

 <daml:DatatypeProperty rdf:ID="room">
  <rdfs:domain rdf:resource="#Office"/>
  <rdfs:range rdf:resource="#Literal"/>
 </daml:DatatypeProperty>

 <daml:ObjectProperty rdf:ID="teaches-course">
  <rdfs:domain rdf:resource="#Member"/>
  <rdfs:range rdf:resource="#Course"/>
 </daml:ObjectProperty>
 
 <daml:Class rdf:ID="Course">
  <rdfs:label>Course</rdfs:label>
  <rdfs:comment>describes a course held by the department</rdfs:comment>
  <daml:sameClassAs rdf:resource="http://www.daml.ri.cmu.edu/ont/homework/cmu-ri-courses-ont.daml#Course"/>
 </daml:Class>

 <daml:ObjectProperty rdf:ID="hasLecturer">
  <rdfs:domain rdf:resource="#Course"/>
  <rdfs:range rdf:resource="#Member"/>
  <daml:samePropertyAs rdf:resource="http://www.daml.ri.cmu.edu/ont/homework/cmu-ri-courses-ont.daml#hasInstructor"/>
  <daml:inverseOf rdf:resource="#teaches-course"/>
 </daml:ObjectProperty>
 
</rdf:RDF>
