<?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 tme   "http://daml.umbc.edu/ontologies/cobra/0.4/time-basic#">
   <!ENTITY agt   "http://daml.umbc.edu/ontologies/cobra/0.4/agent#">
   <!ENTITY act   "http://daml.umbc.edu/ontologies/cobra/0.4/action#"> 
   ]>
<!--
    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/action

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

    CVS Version: $Revision: 1.10 $, $Date: 2003/11/07 02:52:50 $
-->
<rdf:RDF  
   xmlns:rdf  = "&rdf;"
   xmlns:rdfs = "&rdfs;"
   xmlns:owl  = "&owl;"
   xmlns:xsd  = "&xsd;"
   xmlns:tme  = "&tme;"
   xmlns:agt  = "&agt;"
   xmlns      = "&act;"
   xml:base   = "http://daml.umbc.edu/ontologies/cobra/0.4/action">

  <owl:Ontology rdf:about="&cobra;action">
    <owl:versionInfo>0.4</owl:versionInfo>
    <rdfs:label>COBRA-ONT Action Ontology</rdfs:label>
    <owl:imports rdf:resource="&cobra;agent"/>
    <owl:imports rdf:resource="&cobra;time-basic"/>
    <rdfs:comment>
      This ontology defines concepts for describing actions.
    </rdfs:comment>
  </owl:Ontology>
  
  <owl:Class rdf:ID="Action">
    <rdfs:label>Action</rdfs:label>
    <rdfs:comment>
      A set of all actions that an agent performs. Each action can
      have associated actor, an agent who performs the action,
      object, an receiver of the action, and effect, 
      an effect that results from the acting of the action.
    </rdfs:comment>
  </owl:Class>	

  <owl:ObjectProperty rdf:ID="actor">
    <rdfs:label>actor</rdfs:label>
    <rdfs:domain rdf:resource="#Action"/>
    <rdfs:range rdf:resource="#Actor"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="object">
    <rdfs:label>object</rdfs:label>
    <rdfs:domain rdf:resource="#Action"/>
    <rdfs:range rdf:resource="#Object"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="effect">
    <rdfs:label>effect</rdfs:label>
    <rdfs:domain rdf:resource="#Action"/>
    <rdfs:range rdf:resource="#Effect"/>
  </owl:ObjectProperty>

  <owl:Class rdf:ID="Actor">
    <rdfs:label>Actor</rdfs:label>
    <rdfs:comment>The actor of an agent</rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="Object">
    <rdfs:label>Object</rdfs:label>
    <rdfs:comment>
      The receiver of an action
    </rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="Effect">
    <rdfs:label>Effect</rdfs:label>
    <rdfs:comment>
      An effect that results from the acting of an action. 
    </rdfs:comment>
  </owl:Class>

  <owl:Class rdf:ID="ActionEvent">
    <rdfs:label>ActionEvent</rdfs:label>
    <rdfs:comment>
      An ActionEvent a temporal event that describes the performance
      of an action. 
    </rdfs:comment>
    
    <rdfs:subClassOf rdf:resource="&tme;TemporalEvent"/>    
    
    <rdfs:subClassOf>
      <owl:Restriction>
	<owl:onProperty rdf:resource="#performedAction"/>  
	<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">
	  1
	</owl:cardinality>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  
  <owl:ObjectProperty rdf:ID="performedAction">
    <rdfs:label>performedAction</rdfs:label>
    <rdfs:comment>
      An action that is performed during some time interval or at
      some time instant.
    </rdfs:comment>
    <rdfs:domain rdf:resource="#ActionEvent"/>
    <rdfs:range rdf:resource="#Action"/>
  </owl:ObjectProperty>

  <owl:Class rdf:ID="IntentionalAction">
    <rdfs:label>IntentionalAction</rdfs:label>
    <rdfs:comment>
      An IntentionalAction is a special type of Action. The actor of
      this action has explicit intention to perform the action before,
      after, or during some referenced time. For example, Joe intends
      to turns on the room lights after 6:00pm, or Joe intends to
      set up his PowerPoint presentation during 2:12-30PM. 
    </rdfs:comment>

    <rdfs:subClassOf rdf:resource="#Action"/> 
  </owl:Class>

  <owl:ObjectProperty rdf:ID="intendsToPeformBefore">
    <rdfs:label>intendsToPerformBefore</rdfs:label>
    <rdfs:domain rdf:resource="#IntentionalAction"/>
    <rdfs:range rdf:resource="&tme;InstantThing"/>
  </owl:ObjectProperty>

  <owl:ObjectProperty rdf:ID="intendsToPeformAfter">
    <rdfs:label>intendsToPerformAfter</rdfs:label>
    <rdfs:domain rdf:resource="#IntentionalAction"/>
    <rdfs:range rdf:resource="&tme;InstantThing"/>
  </owl:ObjectProperty>
  
  <owl:ObjectProperty rdf:ID="intendsToPeformDuring">
    <rdfs:label>intendsToPerformDuring</rdfs:label>
    <rdfs:domain rdf:resource="#IntentionalAction"/>
    <rdfs:range rdf:resource="&tme;IntervalThing"/>
  </owl:ObjectProperty>

</rdf:RDF>

