<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.daml.org/2000/10/daml-ont#"
         xmlns:daml="http://www.daml.org/2000/10/daml-ont#"
	 xmlns:time="http://www.kestrel.edu/DAML/2000/12/TIME.daml"
	 xmlns:resource="http://www.kestrel.edu/DAML/2000/12/RESOURCE.daml"
	 xmlns:capacity="http://www.kestrel.edu/DAML/2000/12/CAPACITY.daml"
	 xmlns:operation="http://www.kestrel.edu/DAML/2000/12/OPERATION.daml"
         xmlns:a="https://www.daml.org/actionitems/actionitems-20000905.rdfs#"
         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

     <!-- mark DAML program action item 12 as complete --> 
     <rdf:Description about="https://www.daml.org/actionitems/12.rdf">
        <a:state>closed</a:state>
        <a:Action parseType="Resource">
            <a:status>available at http://www.kestrel.edu/DAML/CAPACITY.daml</a:status>
            <a:date>12-14-2000 17:44</a:date>
            <a:by>becker@kestrel.edu</a:by>
        </a:Action>
     </rdf:Description>

 <Ontology about="">
     <versionInfo>$Id$</versionInfo>
     <comment>Kestrel Scheduling Ontology </comment>
     <imports resource="http://www.daml.org/2000/10/daml-ont"/>
     <imports resource="http://www.kestrel.edu/DAML/2000/12/TIME.daml"/>
     <imports resource="http://www.kestrel.edu/DAML/2000/12/OPERATION.daml"/>
     <imports resource="http://www.kestrel.edu/DAML/2000/12/RESOURCE.daml"/>
 </Ontology>




  <!-- CLASS CAPACITY -->
  <Class ID="Capacity">
    <label>Capacity</label>
    <comment> The concept of capacity is associated with resources and activities. 
    An activity reserves/uses/requires a certain amount of resource capacity during a certain 
    time interval. 
    By capacity here we mean resource-capacity.
    Each different type of capacity, defines a different type of resource and a different 
    type of capacity interval. 
    </comment>
  </Class>


  <Property ID="resource">
     <domain resource="#Capacity" />
     <range resource="resource:#Resource"/>
  </Property>

  <!-- CLASS CONSUMABLE-CAPACITY -->
  <Class ID="Consumable-Capacity">
    <label>Consumable-Capacity</label>
    <comment> 
    Consumable Capacity is a type of capacity whose value decrease over time and requires 
    same type of producer operation to replenish its value. Money and Fuel are examples of 
    resources that have consumable-capacity.
    </comment>
    <subClassOf ID="Capacity"/>
  </Class>

  <!-- CLASS CONSUMABLE-CAPACITY -->
  <Class ID="Reusable-Capacity">
    <label>Reusable-Capacity</label>
    <comment> 
    Reusable Capacity is a type of capacity whose value can be used again without the need of 
    replenishment activity. A parking space is an example of a resource having reusable-capacity. 
    Once the vehicle using the space leaves, another one can use the space.  
     </comment>
    <subClassOf ID="Capacity"/>
  </Class>


  <!-- CLASS MULTI-CAPACITY -->
  <Class ID="Multi-Capacity">
    <label>Multi-Capacity</label>
    <comment> 
    Multi-Capacity is a type of capacity which availability can be considered under several different perspectives. 
    For example, the same cargo area of a ship, can be loaded by area, by volume, or by number of containers.
    These different perspectives can interact in non-trivial ways.  
    </comment>
    <subClassOf ID="Capacity"/>
  </Class>

  <Class ID="Complex-Capacity">
    <label>Complex-Capacity</label>
    <comment> 
    Complex-Capacity is a type of capacity whose availability depends on different types of heterogeneous 
    resource. For example, an airport capacity can be described in terms of its runways, gates, ground crews, 
    refueling equipment, etc..
    </comment>
    <subClassOf ID="Capacity"/>
  </Class>


  <!-- CLASS CAPACITY-INTERVAL -->
  <Class ID="Capacity-Interval">
    <label>Capacity-Interval</label>
    <subClassOf resource="time:#Time-Interval"/>
    <comment> </comment>
  </Class>

   <Property ID="total-capacity">
     <domain resource="#Capacity-Interval"/>
     <range  resource="#Capacity-Value"/>
   </Property>

   <Property ID="available-capacity">
     <domain resource="#Capacity-Interval"/>
     <range  resource="#Capacity-Value"/>
   </Property>

   <Property ID="operations">
     <domain resource="#Capacity-Interval"/>
     <range  resource="#Activity-List"/>
   </Property>

   <Property ID="operation-count">
     <domain resource="#Capacity-Interval"/>
     <range  resource="#Integer"/>
   </Property>

   <Property ID="starting-operations">
     <domain resource="#Capacity-Interval"/>
     <range  resource="#Activity-List"/>
   </Property>



  <!-- CLASS CONSUMABLE-INTERVAL -->
  <Class ID="Consumable-Interval">
    <label>Consumable-Interval</label>
    <comment> </comment>
    <subClassOf ID="Capacity-Interval"/>
  </Class>

   <Property ID="producer-operations">
     <domain resource="#Consumable-Interval"/>
     <range  resource="#Producer-Operations"/>
   </Property>



  <Class ID="Complex-Capacity-Interval">
    <label>Complex-Capacity-Interval</label>
    <comment> </comment>
    <subClassOf ID="Capacity-Interval"/>
  </Class>



  <Class ID="Multi-Capacity-Interval">
    <label>Multi-Capacity-Interval</label>
    <comment> </comment>
    <subClassOf ID="Capacity-Interval"/>
  </Class>



  <Class ID="Capacity-Profile">
    <comment>The capacity profile represents the capacity availability over time. It can 
    be represented by a list or a sequence of capacity-intervals. 
    </comment>
    <label>Capacity-Profile</label>
  </Class>

  <Class ID="Capacity-Value"> 
     <comment>
     Entity to support different representations for capacity.
     The value of the capacity can be represented by an Integer, a Float, 
     or by more complex representations. 
     </comment>
     <label>Capacity-Value</label> 
  </Class>

   <Property ID="maximum-capacity">
     <domain resource="#Capacity-Profile"/>
     <range  resource="#Capacity-Value"/>
   </Property>

   <Property ID="available-capacity">
     <domain resource="#Capacity-Profile"/>
     <range  resource="#Capacity-Value"/>
   </Property>

   <Property ID="capacity-profile">
     <domain resource="#Capacity"/>
     <range  resource="#Capacity-Profile"/>
   </Property>


   <Class ID="Position">
      <label>Position</label>
      <comment>Entity to represent the location of a movable resource over time</comment>
   </Class>


   <Class ID="Position-Interval">
      <label>Position-Interval</label>
      <comment>Time Interval to represent the location of a resource at a certain time 
      interval </comment>
      <subClassOf resource="time:#Time-Interval"/>
   </Class>


   <Class ID="Position-Profile">
     <subClassOf resource="time:#Interval-Sequence"/>
     <comment> This is the temporal profile of the position </comment>
   </Class>


   <Property ID="current-location" >
      <domain resource="#Position-Interval"/>
      <range resource="#Location" />
   </Property>

   <Property ID="initial-location">
      <domain resource="#Position" />
      <range resource="#resource:#Location" />
   </Property>


</rdf:RDF>
