<?xml version="1.0"?>
<?xml-stylesheet href="http://www.w3.org/2002/06/rdfs2html.xsl" type="application/xml"?>
<!DOCTYPE owl [
   <!ENTITY cobra "http://daml.umbc.edu/ontologies/cobra/0.4/">
   <!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#"> 
   <!ENTITY owl    "http://www.w3.org/2002/07/owl#"> 
   <!ENTITY foaf   "http://daml.umbc.edu/ontologies/cobra/0.4/foaf-basic#">
   <!ENTITY agt	   "http://daml.umbc.edu/ontologies/cobra/0.4/agent#">
   <!ENTITY role   "http://daml.umbc.edu/ontologies/cobra/0.4/role#">
   <!ENTITY dev	   "http://daml.umbc.edu/ontologies/cobra/0.4/device#">
   <!ENTITY act	   "http://daml.umbc.edu/ontologies/cobra/0.4/action#">
   <!ENTITY loc	   "http://daml.umbc.edu/ontologies/cobra/0.4/location#">
   <!ENTITY pdev   "http://daml.umbc.edu/ontologies/cobra/0.4/personal-device#">
   ]>
<!--
    Author: Harry Chen (mailto:harry.chen@umbc.edu)
            http://umbc.edu/~hchen4/

    Copyright 2003 Harry Chen, All Rights Reserved.
 
    This work is licensed under the Creative Commons Attribution
    License. To view a copy of this license, visit 
    http://creativecommons.org/licenses/by/1.0/ or send a letter to
    Creative Commons, 559 Nathan Abbott Way, Stanford, California
    94305, USA.  
   
    CoBrA Web Site: 
      http://cobra.umbc.edu

    This version: 
      http://daml.umbc.edu/ontologies/cobra/0.4/agent

    Lastest version:
      http://daml.umbc.edu/ontologies/cobra/

    CVS Version: $Revision: 1.19 $, $Date: 2003/11/07 02:52:50 $
-->
<rdf:RDF  
   xmlns:rdf  = "&rdf;"
   xmlns:rdfs = "&rdfs;"
   xmlns:owl  = "&owl;"
   xmlns:xsd  = "&xsd;"
   xmlns:foaf = "&foaf;"
   xmlns:dev  = "&dev;"
   xmlns:role = "&role;"
   xmlns:act  = "&act;"
   xmlns:loc  = "&loc;"
   xmlns:pdev = "&pdev;"
   xmlns      = "&agt;"
   xml:base   = "http://daml.umbc.edu/ontologies/cobra/0.4/agent">

  <owl:Ontology rdf:about="&cobra;agent">
    <owl:versionInfo>0.4</owl:versionInfo>
    <rdfs:label>COBRA-ONT Agent Ontology</rdfs:label>
    <owl:imports rdf:resource="&cobra;role"/>
    <owl:imports rdf:resource="&cobra;action"/>
    <owl:imports rdf:resource="&cobra;device"/>
    <owl:imports rdf:resource="&cobra;personal-device"/>
    <owl:imports rdf:resource="&cobra;foaf-basic"/>
    <owl:imports rdf:resource="&cobra;location"/>
  </owl:Ontology>
  
  <owl:Class rdf:ID="Agent">
    <rdfs:label>Agent</rdfs:label>
    <rdfs:subClassOf rdf:resource="&foaf;Agent"/>
    <rdfs:subClassOf rdf:resource="&loc;ThingHasLocationContext"/>   
  </owl:Class>	

  <owl:Class rdf:ID="Person">
    <rdfs:label>Person</rdfs:label>
    <rdfs:subClassOf rdf:resource="#Agent"/>
  </owl:Class> 

  <owl:Class rdf:ID="SoftwareAgent">
    <rdfs:label>SoftwareAgent</rdfs:label>
    <rdfs:subClassOf rdf:resource="#Agent"/>
  </owl:Class> 

  <owl:ObjectProperty rdf:ID="intends">
    <rdfs:label>intends</rdfs:label>
    <rdfs:domain rdf:resource="#Agent"/>
    <rdfs:range rdf:resource="&act;IntentionalAction"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="actorOfActionEvent">
    <rdfs:label>actorOf</rdfs:label>
    <rdfs:domain rdf:resource="#Agent"/>
    <rdfs:range rdf:resource="&act;ActionEvent"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="hasRoleAssociation">
    <rdfs:label>hasRoleAssociation</rdfs:label>

    <owl:inverseOf rdf:resource="&role;isAssociatedWith"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="ownsDevice">
    <rdfs:label>ownsDevice</rdfs:label>
    <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>

    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="&dev;Device"/>

    <owl:inverseOf rdf:resource="&pdev;owner"/>
  </owl:ObjectProperty>  

  <owl:ObjectProperty rdf:ID="hasPersonalAgent">
    <rdfs:label>hasPersonalAgent</rdfs:label>
    <rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="#SoftwareAgent"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="personalAgentOf">
    <rdfs:label>personalAgentOf</rdfs:label>
    <owl:inverseOf rdf:resource="#hasPersonalAgent"/>
  </owl:ObjectProperty>   

  <owl:DatatypeProperty rdf:ID="privacyPolicyURI">
    <rdfs:label>privacyPolicyURL</rdfs:label>
    <rdfs:domain rdf:resource="#Person"/>
    <rdfs:range rdf:resource="&xsd;anyURI"/>
  </owl:DatatypeProperty>

</rdf:RDF>
