DAML-S

BravoAir-Process.daml

<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE uridef[
  <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns">
  <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema">
  <!ENTITY daml "http://www.daml.org/2001/03/daml+oil">
  <!ENTITY xsd "http://www.w3.org/2000/10/XMLschema">
  <!ENTITY service "http://www.daml.org/services/daml-s/2001/10/Service">
  <!ENTITY process "http://www.daml.org/services/daml-s/2001/10/Process">
  <!ENTITY profile "http://www.daml.org/services/daml-s/2001/10/Profile">
  <!ENTITY ba_service "http://www.daml.org/services/daml-s/2001/10/BravoAir-Service.daml">
  <!ENTITY concepts "http://www.daml.ri.cmu.edu/ont/DAML-S/concepts.daml">
  <!ENTITY DEFAULT "http://www.daml.org/services/daml-s/2001/10/BravoAir-Process.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:rdfs=    "&rdfs;#"
  xmlns:daml=    "&daml;#"
  xmlns:xsd=     "&xsd;#"
  xmlns:service= "&service;#"
  xmlns:process= "&process;#"
  xmlns:profile= "&profile;#"
  xmlns=         "&DEFAULT;#">
 
  <daml:Ontology about="">
    <daml:versionInfo>
      $Id: BravoAir-Process.daml,v 1.3 2002/03/20 01:45:09 martin Exp $
    </daml:versionInfo>
    <rdfs:comment>
      DAML-S Coalition: BravoAir Example for DAML-S release 0.6, 15th Sept 2001
      Process Model
 
    </rdfs:comment>
    <daml:imports rdf:resource="&rdf;" />
    <daml:imports rdf:resource="&rdfs;" />
    <daml:imports rdf:resource="&daml;" />
    <daml:imports rdf:resource="&service;" />
    <daml:imports rdf:resource="&process;" />
    <daml:imports rdf:resource="&profile;" />
    <daml:imports rdf:resource="&concepts;" />
  </daml:Ontology>

<!-- ################################################################### -->
<!-- Instance Definition of AlphaAir Reservation Agent Process Model
  -->

  <process:ProcessModel rdf:ID="BravoAir_ReservationAgent_ProcessModel">
    <service:topLevelProcess rdf:resource="#BravoAir_Process" />
    <service:isImplementedBy>
      <service:Service rdf:resource="&ba_service;#BravoAir_ReservationAgent"/>
    </service:isImplementedBy>
  </process:ProcessModel>


<!-- ########################################################################## -->
<!-- Instance Definition of the top level process -->

  <rdfs:Class rdf:ID="BravoAir_Process">
    <rdfs:subClassOf rdf:resource="&process;#Process" />
    <label> This is the top level process for BravoAir </label>
  </rdfs:Class>

<!-- ########################################################################## -->
<!-- Expand and Collapse relations for BravoAir_Process
     Based on the Congo.daml model
  -->

  <process:expand> 
    <rdfs:Class> rdfs:about ="#BravoAir_Process"</rdfs:Class> 
    <rdfs:Class> rdfs:about ="#ExpandedBravoAir_Process"</rdfs:Class>
  </process:expand>

<!-- ########################################################################## -->
<!-- ExpandBravoAir_Process (Composite)
     Top Level Description of the Process
  -->

  <rdfs:Class rdf:ID="ExpandBravoAir_Process">
    <rdfs:subClassOf rdf:resource="&process;#CompositeProcess" />
    <rdfs:subClassOf rdf:resource="&process;#Sequence" />
    <daml:subClassOf>
      <daml:Restriction> 
        <daml:onProperty rdf:resource="&process;#components" />
        <daml:toClass>
          <daml:subClassOf>
            <daml:unionOf rdf:parseType="daml:collection">
              <rdfs:Class rdfs:about="#GetDesiredFlightDetails"/>
              <rdfs:Class rdfs:about="#SelectAvailableFlight"/>
              <rdfs:Class rdfs:about="#BookFlight"/>
            </daml:unionOf>
          </daml:subClassOf>
        </daml:toClass>
      </daml:Restriction>
    </daml:subClassOf>
  </rdfs:Class>


<!-- ########################################################################## -->
<!-- BookFlight (Composite)
     Log into account and confirm reservation
  -->

  <rdfs:Class rdf:ID="BookFlight">
    <rdfs:subClassOf rdf:resource="#CompositeProcess" />
    <rdfs:subClassOf rdf:resource="&process;#Sequence" />
    <daml:subClassOf>
      <daml:Restriction> 
        <daml:onProperty rdf:resource="&process;#components" />
        <daml:toClass>
          <daml:subClassOf>
            <daml:unionOf rdf:parseType="daml:collection">
              <rdfs:Class rdfs:about="#LogIn"/>
              <rdfs:Class rdfs:about="#ConfirmReservation"/>
            </daml:unionOf>
          </daml:subClassOf>
        </daml:toClass>
      </daml:Restriction>
    </daml:subClassOf>
  </rdfs:Class>

  <!-- No specification of inputs or outputs are generated here -->


<!-- ########################################################################## -->
<!-- GetDesiredFlightDetails (ATOMIC)
     Get details such as airports, prefered time, roundtrip etc
  -->

  <rdfs:Class rdf:ID="GetDesiredFlightDetails">
    <rdfs:subClassOf rdf:resource="&process;#AtomicProcess" />
  </rdfs:Class>

    <!-- GetDesiredFlightDetails IOPEs -->

  <rdf:Property rdf:ID="departureAirport_In">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#GetDesiredFlightDetails"/>
    <rdfs:range rdf:resource="&concepts;#Airport"/>
  </rdf:Property>

  <rdf:Property rdf:ID="arrivalAirport_In">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#GetDesiredFlightDetails"/>
    <rdfs:range rdf:resource="&concepts;#Airport"/>
  </rdf:Property>

  <rdf:Property rdf:ID="outboudDate_In">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#GetDesiredFlightDetails"/>
    <rdfs:range rdf:resource="&concepts;#FlightDate"/>
  </rdf:Property>

  <rdf:Property rdf:ID="inboundDate_In">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#GetDesiredFlightDetails"/>
    <rdfs:range rdf:resource="&concepts;#FlightDate"/>
  </rdf:Property>

  <rdf:Property rdf:ID="roundTrip_In">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#GetDesiredFlightDetails"/>
    <rdfs:range rdf:resource="&concepts;#RoundTrip"/>
  </rdf:Property>

  <!-- ########################################################################## -->
  <!-- SelectAvailableFlight (ATOMIC)
       Get users prefered flight choice from available itineraries
    -->

  <rdfs:Class rdf:ID="SelectAvailableFlight">
    <rdfs:subClassOf rdf:resource="&process;#AtomicProcess" />
  </rdfs:Class>

    <!-- SelectAvailableFlight IOPEs -->

  <rdf:Property rdf:ID="preferredFlightItinerary_In">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#SelectAvailableFlight"/>
    <rdfs:range rdf:resource="&concepts;#FlightItinerary"/>
  </rdf:Property>

  <rdf:Property rdf:ID="availableFilghtItineraryList_Out">
    <rdfs:subPropertyOf rdf:resource="&process;#output"/>
    <rdfs:domain rdf:resource="#SelectAvailableFlight"/>
    <rdfs:range rdf:resource="&concepts;#FilghtItineraryList"/>
  </rdf:Property>


<!-- ########################################################################## -->
<!-- LogIn (ATOMIC)
     Get user details
  -->

  <rdfs:Class rdf:ID="LogIn">
    <rdfs:subClassOf rdf:resource="&process;#AtomicProcess" />
  </rdfs:Class>


    <!-- LogIn IOPE -->

  <rdf:Property rdf:ID="acctName_In">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#LogIn"/>
    <rdfs:range rdf:resource="&concepts;#AcctName"/>
  </rdf:Property>

  <rdf:Property rdf:ID="password_In">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#LogIn"/>
    <rdfs:range rdf:resource="&concepts;#Password"/>
  </rdf:Property>

<!-- ########################################################################## -->
<!-- ConfirmReservation (ATOMIC)
     Confirm selected reservation
  -->

  <rdfs:Class rdf:ID="ConfirmReservation">
    <rdfs:subClassOf rdf:resource="&process;#AtomicProcess" />
  </rdfs:Class>

    <!-- ConfirmReservation IOPE -->

  <rdf:Property rdf:ID="reservationID_In">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#ConfirmReservation"/>
    <rdfs:range rdf:resource="&concepts;#ReservationID"/>
  </rdf:Property>

  <rdf:Property rdf:ID="confirm_In">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#ConfirmReservation"/>
    <rdfs:range rdf:resource="&concepts;#Confirmation"/>
  </rdf:Property>

  <rdf:Property rdf:ID="preferredFlightItinerary_Out">
    <rdfs:subPropertyOf rdf:resource="&process;#output"/>
    <rdfs:domain rdf:resource="#ConfirmReservation"/>
    <rdfs:range rdf:resource="&concepts;#FlightItinerary"/>
  </rdf:Property>

  <rdf:Property rdf:ID="acctName_Out">
    <rdfs:subPropertyOf rdf:resource="&process;#input"/>
    <rdfs:domain rdf:resource="#ConfirmReservation"/>
    <rdfs:range rdf:resource="&concepts;#AcctName"/>
  </rdf:Property>

  <rdf:Property rdf:ID="reservationID_Out">
    <rdfs:subPropertyOf rdf:resource="&process;#output"/>
    <rdfs:domain rdf:resource="#ConfirmReservation"/>
    <rdfs:range rdf:resource="&concepts;#ReservationNumber"/>
  </rdf:Property>

  <rdf:Property rdf:ID="haveSeat">
    <rdfs:subPropertyOf rdf:resource="&process;#effect"/>
    <rdfs:domain rdf:resource="#ConfirmReservation"/>
    <rdfs:range rdf:resource="&concepts;#HaveFlightSeat"/>
  </rdf:Property>

</rdf:RDF>

José M. Vidal .

25 of 26