<?xml version="1.0" ?> 
<!DOCTYPE uridef[
  <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns">
  <!ENTITY daml "http://www.daml.org/2001/03/daml+oil">
  <!ENTITY num "http://www.daml.org/2000/10/daml-num.daml">
  <!ENTITY emp "http://www.daml.ri.cmu.edu/ont/homework/atlas-employment_categories.daml">
  <!ENTITY pub "http://www.daml.ri.cmu.edu/ont/homework/atlas-publications.daml">
  <!ENTITY date "http://www.daml.ri.cmu.edu/ont/homework/atlas-date.daml">
  <!ENTITY DEFAULT "http://www.daml.org/2001/03/daml+oil">
  <!ENTITY THIS "http://www.daml.ri.cmu.edu/ont/homework/atlas-cmu.daml">
]>
 
<!--
This document uses entity types as a shorthand for URIs.
Download the source for a version with unexpanded entities.
  -->
 
<rdf:RDF
  xmlns:rdf=    "&rdf;#"
  xmlns:daml=   "&daml;#"
  xmlns:emp=	"&emp;#"
  xmlns:pub=	"&pub;#"
  xmlns:date=	"&date;#"
  xmlns=        "&DEFAULT;#">

<Ontology about="&THIS;">
  <versionInfo>$Id: &THIS;,v 0.3 2000/10/25 14:59:55 TerryPayne
v Exp $</versionInfo>
  <comment>CMU Atlas Website ontology</comment>
  <imports resource="&daml;"/>
</Ontology>

<!--
  Note on naming convention:
  	class ids start with an upper case character
	properties start with a lower case character
-->

<!-- ############ ########### ############ ############ ########### -->
<!-- CLASS: Organisation -->

<Class ID="Organisation">
  <label>Organisation</label>
  <disjoin parseType="daml:collection">
    <Class about="#Academic_org"/>
    <Class about="#Industrial_org"/>
    <Class about="#Governmental_org"/>
  </disjoin>
  <comment>
    The class Organisation is a top-level entity from which smaller
    entities (form Universities to projects can be derived.
  </comment>
</Class>

<Property ID="has_employes">
  <domain resource="#Organisation"/>
  <domain resource="#Person"/>
</Property>

<UniqueProperty ID="name_Organisation">
  <domain resource="#Organisation"/>
</UniqueProperty>

<UniqueProperty ID="address">
  <domain resource="#Organisation"/>
</UniqueProperty>

<Property ID="employment_categories">
  <domain resource="#Organisation"/>
  <range resource="&emp;#Employment_Categories"/>
</Property>


<Property ID="mission">
  <domain resource="#Organisation"/>
</Property>

<!-- CLASS: Academic_org -->

<Class ID="Academic_org">
  <subClassOf resource="#Organisation"/>
  <comment>An academic organisation, where activities such as research or teaching take place.</comment>
</Class>

<Property ID="mission">
  <domain resource="#Academic_Org"/>
  <range resource="#Academic_Mission"/>
</Property>

<!-- Industrial_org -->

<Class ID="Industrial_org">
  <subClassOf resource="#Organisation"/>
  <comment>An industrial organisation, typically which produces products, but may conduct research.</comment>
</Class>

<Property ID="mission">
  <domain resource="#Industrial_org"/>
  <range resource="#Industrial_Mission"/>
</Property>


<!-- Governmental_org -->

<Class ID="Governmental_org">
  <subClassOf resource="#Organisation"/>
  <comment>A government deparment or organisation.</comment>
</Class>

<!-- CLASS: Academic_Mission -->

<Class ID="Academic_Mission">
  <oneOf parseType="daml:collection">
    <Academic_Mission about="#Research_Activity"/>
    <Academic_Mission about="#Teaching_Activity"/>
  </oneOf>
</Class>

<!-- CLASS: Industrial_Mission -->

<Class ID="Industrial_Mission">
  <oneOf parseType="daml:collection">
    <Industrial_Mission about="#Research_Activity"/>
    <Industrial_Mission ID="product_manufacture"/>
    <Industrial_Mission ID="technical_development"/>
  </oneOf>
</Class>


<!-- ############ ########### ############ ############ ########### ########### -->
<!-- CLASS: Office -->

<Class ID="Office">
  <label>Office</label>
</Class>

<Property ID="lab">
  <domain resource="#Office"/>
</Property>

<Property ID="building">
  <domain resource="#Office"/>
</Property>

<Property ID="phone">
  <domain resource="#Office"/>
</Property>

<!-- ############ ########### ############ ############ ########### ########### -->
<!-- CLASS: Person -->

<Class ID="Person">
  <label>Person</label>
  <comment>
    Details about a generic individual
  </comment>
</Class>

<UniqueProperty ID="name_Person">
  <domain resource="#Person"/>
</UniqueProperty>

<UniqueProperty ID="sex">
  <domain resource="#Person"/>
  <range resource="#Sex"/>
  <cardinality>1</cardinality>
</UniqueProperty>

<Property ID="age">
  <domain resource="#Person"/>
  <range resource="&num;#Integer"/>
</Property>

<!-- CLASS: Sex -->

<Class ID="Sex">
  <comment>The sex of an individual.</comment>
  <oneOf parseType="daml:collection">
    <Sex ID="male"/>
    <Sex ID="female"/>
  </oneOf>
</Class>

<!-- CLASS: Employee -->

<Class ID="Employee">
  <subClassOf resource="#Person"/>
  <comment>A person who is an employee of one or more organisations.</comment>
</Class>

<UniqueProperty ID="job_title">
  <domain resource="#Employee"/>
</UniqueProperty>

<Property ID="employer">
  <domain resource="#Employee"/>
  <range resource="#Organisation"/>
  <!-- * Is this the right way to say that a person works for an organisation?
       * Does this take care of inheritence (eg employed by a university)?
       -->
  <mincardinality>1</mincardinality>
</Property>

<Property ID="expertise">
  <domain resource="#Employee"/>
</Property>

<Property ID="office">
  <domain resource="#Employee"/>
  <range resource="#Office"/>
</Property>

<UniqueProperty ID="start_date">
  <domain resource="#Employee"/>
  <range resource="&date;#Date"/>
</UniqueProperty>

<UniqueProperty ID="end_date">
  <domain resource="#Employee"/>
  <range resource="&date;#Date"/>
  <!-- * Need to somehow describe the fact that the end date should
  	 occur later than the start_date.
	 -->
</UniqueProperty>

<Property ID="associated_with_project">
  <domain resource="#Employee"/>
  <range resource="#Project"/>
  <comment>Contains names of projects that the employee is a member of</comment>
</Property>

<Property ID="employment_categories">
  <domain resource="#Employee"/>
  <range resource="&emp;#Employment_Categories"/>
  <cardinality>1</cardinality>
  <!-- * Is there a better way of saying this???
       -->
</Property>

<UnanbiguousProperty ID="email">
  <domain resource="#Employee"/>
  <range resource="#EMail"/>
  <comment> The e-mail uniquely identifies the employee, but the same
            employee could have more then one e-mail </comment>  
</UnanbiguousProperty>

<!-- ############ ########### ############ ############ ########### ########### -->
<!-- CLASS: Work_Activity -->
<Class ID="Work_Activity">
  <comment> A Work_Activity</comment>
</Class>

<!-- CLASS: Meeting -->

<Class ID="Meeting">
  <subClassOf resource="#Work_Activity"/>
</Class>

<!-- CLASS: Software_Development -->

<Class ID="Software_Development">
  <subClassOf resource="#Work_Activity"/>
</Class>

<!-- ############ ########### ############ ############ ########### ########### -->
<!-- CLASS: Research_Activity -->

<Class ID="Research_Activity">
  <subClassOf resource="#Work_Activity"/>
  <comment>A description of a research activity.</comment>
</Class>

<Property ID="associated_project">
  <domain resource="#Research_Activity" />
  <range resource="#Research_Project" />
</Property>

<!-- CLASS: Paper_Writing -->

<Class ID="Paper_Writing">
  <subClassOf resource="#Research_Activity"/>
</Class>

<!-- CLASS: Paper_Reading -->

<Class ID="Paper_Reading">
  <subClassOf resource="#Research_Activity"/>
</Class>

<!-- ############ ########### ############ ############ ########### ########### -->
<!-- CLASS: Teaching_Activity -->

<Class ID="Teaching_Activity">
  <subClassOf resource="#Work_Activity"/>
  <comment>A description of a teaching activity.</comment>
</Class>

<!-- ############ ########### ############ ############ ########### ########### -->
<!-- CLASS: Project -->
<Class ID="Project">
  <comment> A Project </comment>
</Class>

<!-- CLASS: Research_Project -->

<Class ID="Research_Project">
  <subClassOf resource="#Project"/>
  <comment> A Research Project </comment>
</Class>

<UniqueProperty ID="name_Research_Project">
  <domain resource="#Research_Project"/>
</UniqueProperty>

<UniqueProperty ID="expanded_name_Research_Project">
  <domain resource="#Research_Project"/>
</UniqueProperty>

<Property ID="homeURL">
  <domain resource="#Research_Project"/>
</Property>

<Property ID="is_conducted_by">
  <domain resource="#Research_Project"/>
  <range resource="#Research_Group"/>
</Property>

<Property ID="activities_include">
  <domain resource="#Research_Project"/>
  <range resource="#Research_Activity"/>
</Property>

<Property ID="has_members">
  <domain resource="#Research_Project"/>
  <range resource="#Employee"/>
</Property>

<Property ID="has_principal_investigators">
  <domain resource="#Research_Group"/>
  <range resource="#Employee"/>
</Property>

<Property ID="has_contact">
  <comment>Individual who is the main contact for the project</comment>
  <domain resource="#Research_Group"/>
  <range resource="#Employee"/>
</Property>

<Property ID="deliverables">
  <domain resource="#Research_Project"/>
  <range resource="#Research_Deliverables"/>
</Property>

<Property ID="duration">
  <domain resource="#Research_Project"/>
  <range resource="&date;#Duration"/>
</Property>

<Property ID="sponsors">
  <domain resource="#Research_Project"/>
</Property>

<!-- CLASS: Research_Deliverables -->

<Class ID="Research_Deliverables">
  <oneOf parseType="daml:collection">
    <Research_Deliverables ID="demonstrations"/>
    <Research_Deliverables about="&pub;#Publication"/>
    <Research_Deliverables ID="presentations"/>
    <Research_Deliverables ID="proposals"/>
    <Research_Deliverables ID="homework"/>
  </oneOf>
</Class>


<!-- ############ ########### ############ ############ ########### ########### -->
<!-- CLASS: Research_Group -->

<Class ID="Research_Group">
  <comment> A Research Group (i.e. collection of people) </comment>
</Class>

<UniqueProperty ID="name_Research_Group">
  <domain resource="#Research_Group"/>
</UniqueProperty>

<Property ID="research_area">
  <domain resource="#Research_Group"/>
</Property>

<Property ID="has_leader">
  <domain resource="#Research_Group"/>
  <range resource="#Employee"/>
</Property>

<Property ID="has_members">
  <domain resource="#Research_Group"/>
  <range resource="#Employee"/>
</Property>

<Property ID="has_publications">
  <domain resource="#Research_Group"/>
  <range resource="&pub;#Publication"/>
</Property>

<Property ID="products">
  <domain resource="#Research_Group"/>
  <range resource="#Research_Deliverables"/>
</Property>

<!-- ############ ########### ############ ############ ########### ########### -->
<!-- CLASS: EMail -->

<Class ID="EMail">
  <comment> The E-Mail of emploees </comment>
</Class>

</rdf:RDF>

