<?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.xsd">
  <!ENTITY time "http://www.ai.sri.com/daml/ontologies/time/Time.daml">
  <!ENTITY profile "http://www.daml.org/services/owl-s/0.9/Profile.owl">
  <!ENTITY DEFAULT "http://www.daml.org/services/owl-s/0.9/ProfileHierarchy.owl">
]>

<!--  
  
  This file provides a basic ontology of services and products to
  support the OWL-S examples for BravoAir and Congo book seller.
  
  This ontology is not intended neither as "THE Ontology of Services"
  nor the "Official OWL-S Ontology of Services" rather it provides a
  simple example of how such an ontology can be built and how it
  interacts with the Profile to define services.  (For a complete
  explanation of the intentions behind our effort see
  http://www.daml.org/services/owl-s/0.9/ProfileHierarchy.html.)
  
  Futhermore, as the ontology below entails, we do not mandate every
  service profile to be classified in this or any other ontology.
  Ontologies of services provide an additional tool to specify
  information about the service that can be useful during service
  retrieval.  Any instance of the class
  http://www.daml.org/services/owl-s/0.9/Profile.owl#Profile is a
  valid instance of Profile which does not use any classification
  information.
  
  The ontology below shows how an ontology of services can be
  constructed, and how it can be integrated with the body of work
  developed in OWL-S.  Ultimately, it is up to business organizations
  to describe an ontology of the services that is meaningful for them,
  we just provide the tools of how to construct and use such an
  ontology.
  
  In the example provided in this file, the top level description of
  services is the class Profile defined in
  www.daml.org/services/owl-s/0.9.  Services are defined as
  subclasses of the class profile by defininig some ideosyncratic
  properties of such services.
  
  Specifically, we describe three broad classes of services:
  Information_Service (which should represent information providing
  services), and Ecommerce services that sell products.
  
  Information Services have three properties: a source of the
  information, a topic and a time stamp on the information.

    Information_Service
    + source:InformationSource
    + topic:Thing
    + information_date:sri-time-ontology date
  
  
  E_Commerce services have a merchandise property to specify what do
  they sell, and a deliveryMode to specify how the merchandise is
  delivered.

    E_Commerce
    ;; Top level of an ontology of retail services;
    ;; it requires a product to sell and a transportation mode
    + merchandise:product
    + deliveryMode:Transportation
  
   We define two subclasses of the eCommerce services, one for book
   selling that provides us with a superclass for the Congo example,
   and one for AirlineTicketing which provide a way to classify the
   BravoAir example.

       BookSelling
       + merchandise:Book

       AirlineTicketing
       + merchandise:CommercialAirlineTravel

  
  The definition services depends on an ontology of products.  Indeed,
  it can also be argued that services are a type of product.  Here we
  define Product as the top level class of the Product Ontology.
  Again, it is not up to us to define a general ontology of products,
  rather we provide means to write such an ontology and incorporate it
  in an ontology of services.  It is up to the business community to
  create such an ontology depending on their needs and their
  objectives.
  
  Our definition of Product refers, for semplicity, to the UNSPSC
  taxonomy of products.  Product is the top level of a Product
  ontology for now the only properties refer to the UNSPSC ontology of
  products. In this class we show how informaiton that is external to
  OWL can be used to specify information within OWL ontologies.
  

    Product
    + material:Material
    + UNSPSCcode:number
    + UNSPSCclassification:string
  
  
  We also define two subclasses Products, one for books and one for
  CommercialAirTravel that are used to specify the BookSelling service
  and the AirlingTicketing service.

       
  Finally, we define three additional classes, such as
  InformationSource, ManifacturingProcess, and Transportation.  These
  classes are provided to complete the ontologies, but they, as they
  stand now, they are just placeholders for more complicated concepts.
  
-->

<rdf:RDF
  xmlns:rdf=	"&rdf;#"
  xmlns:rdfs=	"&rdfs;#"
  xmlns:daml=	"&daml;#"
  xmlns:xsd=	 "&xsd;#"
  xmlns:profile= "&profile;#"
  xmlns=	"&DEFAULT;#">

  <daml:Ontology>
    <daml:versionInfo>
      $Id: ProfileHierarchy.owl,v 1.7 2003/03/24 15:16:59 martin Exp $
    </daml:versionInfo> 
    <daml:comment>
      DAML-S Coalition
      First cut at OWL ontology that is a class-hierarchical taxonomy of 
      service advertisements (i.e. Profiles).
      Created by:
        Massimo Paolucci (paolucci@cs.cmu.edu)
        David Martin (SRI International)
    </daml:comment> 
    
    <daml:imports rdf:resource="&rdf;" /> 
    <daml:imports rdf:resource="&daml;" />
    <daml:imports rdf:resource="&profile;" /> 
  </daml:Ontology>
  


  <daml:Class rdf:ID="Information_Service">
    <rdfs:subClassOf rdf:resource="&profile;#Profile" /> 
    <daml:comment>
    Class that represent all the Information Services
    </daml:comment>
  </daml:Class>
  
  
  <daml:ObjectProperty rdf:ID="source">
    <daml:domain rdf:resource="#Information_Service"/>
    <daml:range rdf:resource="#InformationSource"/>
  </daml:ObjectProperty>
  
  
  <daml:ObjectProperty rdf:ID="topic">
    <daml:domain rdf:resource="#Information_Service"/>
    <daml:range rdf:resource="&daml;#Thing"/>
  </daml:ObjectProperty>
  
  
  <daml:ObjectProperty rdf:ID="information_date">
    <daml:domain rdf:resource="#Information_Service"/>
    <daml:range rdf:resource="&time;#TemporalEntity"/>
  </daml:ObjectProperty>
  
  
    
    
    
  <daml:Class rdf:ID="E_Commerce">
    <rdfs:subClassOf rdf:resource="&profile;#Profile"/> 
    <daml:comment>
   Top level of an ontology of retail services;
   it requires a product to sell and a transportation mode
    </daml:comment>
  </daml:Class>
  
  
  <daml:ObjectProperty rdf:ID="merchandise">
    <daml:domain rdf:resource="#E_Commerce"/>
    <daml:range rdf:resource="#Product"/>
  </daml:ObjectProperty>
  
  
  <daml:ObjectProperty rdf:ID="deliveryMode">
    <daml:domain rdf:resource="#E_Commerce"/>
    <daml:range rdf:resource="#Transportation"/>
  </daml:ObjectProperty>
  
  
    
    
    
  <daml:Class rdf:ID="BookSelling">
    <rdfs:subClassOf rdf:resource="#E_Commerce"/>
    <rdfs:subClassOf>
      <daml:Restriction daml:cardinality="1">
	<daml:onProperty rdf:resource="#merchandise"/>
	<daml:toClass  rdf:resource="#Book"/>
      </daml:Restriction>
    </rdfs:subClassOf>
  </daml:Class>
  
  
    
    
    
  <daml:Class rdf:ID="AirlineTicketing">
    <rdfs:subClassOf rdf:resource="#E_Commerce"/>
    <rdfs:subClassOf>
      <daml:Restriction>
	<daml:onProperty rdf:resource="#merchandise"/>
	<daml:toClass  rdf:resource="#CommercialAirlineTravel"/>
      </daml:Restriction>
    </rdfs:subClassOf>
  </daml:Class>
  
  
  <!-- ..................................... PRODUCT ONTOLOGY -->
  
  
    
  <daml:Class rdf:ID="Product">
    <daml:comment>
      Product is the top level of a Product ontology
      for now it records the product classification in UNSPSC
    </daml:comment>
  </daml:Class>

  
  <daml:DataProperty rdf:ID="UNSPSCcode">
    <rdfs:domain rdf:resource="#Product"/>
    <rdfs:range rdf:resource="&xsd;#String"/>
  </daml:DataProperty>

  
  <daml:DataProperty rdf:ID="UNSPSCclassification">
    <rdfs:domain rdf:resource="#Product"/>
    <rdfs:range rdf:resource="&xsd;#String"/>
  </daml:DataProperty>
  
  
    
  <daml:Class rdf:ID="Book">
    <daml:comment>
      Top Ontology of Books
    </daml:comment>
    <rdfs:subClassOf rdf:resource="#Product"/>
      <daml:Restriction>
	<daml:onProperty rdf:resource="#UNSPSCclassification"/>
	<daml:hasValue  rdf:resource="book"/>
      </daml:Restriction>
      <daml:Restriction>
	<daml:onProperty rdf:resource="#UNSPSCcode"/>
	<daml:hasValue  rdf:resource="44111507"/>
      </daml:Restriction>
  </daml:Class>

  
  <daml:DataProperty rdf:ID="title">
    <rdfs:domain rdf:resource="#Book"/>
    <rdfs:range rdf:resource="&xsd;#String"/>
  </daml:DataProperty>

  
  <daml:DataProperty rdf:ID="author">
    <rdfs:domain rdf:resource="#Book"/>
    <rdfs:range rdf:resource="&xsd;#String"/>
  </daml:DataProperty>
  
  
    
  <daml:Class rdf:ID="CommercialAirlineTravel">
    <daml:comment>
      Top Ontology of Airline Travel
    </daml:comment>
    <rdfs:subClassOf rdf:resource="#Product"/>
      <daml:Restriction>
	<daml:onProperty rdf:resource="#UNSPSCclassification"/>
	<daml:hasValue  rdf:resource="CommercialAirlineTravel"/>
      </daml:Restriction>
      <daml:Restriction>
	<daml:onProperty rdf:resource="#UNSPSCcode"/>
	<daml:hasValue  rdf:resource="78111502"/>
      </daml:Restriction>
  </daml:Class>
  
  
  <!-- ........................... Additional classes that we need -->

  
  
    
  <daml:Class rdf:ID="InformationSource"/>
    
  <daml:Class rdf:ID="Transportation"/>


</rdf:RDF>

