<?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 wsdl "http://onto.cs.yale.edu:8080/ontologies/wsdl-ont.daml">
  <!ENTITY DEFAULT "http://onto.cs.yale.edu:8080/ontologies/wsdl-ont.daml">
]>

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

<daml:Ontology rdf:about="">
  <daml:versionInfo>$Id: wsdl-ont.daml,v 0.5 2002/09/016 Exp $</daml:versionInfo>
  <rdfs:comment>
    Web Services Description Language(WSDL) Schema in DAML.
    see "http://schemas.xmlsoap.org/wsdl/"
  </rdfs:comment>
  <daml:imports rdf:resource="http://www.daml.org/2001/03/daml+oil"/>
</daml:Ontology>

<daml:Class rdf:ID="WSDLDOC"/>

<daml:Class rdf:ID="Documented">
    <rdfs:comment>
      This type is extended by component types to allow them to be documented.
    </rdfs:comment>
</daml:Class>

<daml:Class rdf:ID="Documentation">
    <daml:subClassOf rdf:resource="&rdfs;#Literal"/>
</daml:Class>

<daml:Class rdf:ID="ExtensibleAttributesDocumented">
    <daml:subClassOf rdf:resource="#Documented"/>
    <rdfs:comment>
      This type is extended by component types to allow attributes from other namespaces to be added.
    </rdfs:comment>
</daml:Class>

<daml:Class rdf:ID="ExtensibleDocumented">
    <daml:subClassOf rdf:resource="#Documented"/>
    <rdfs:comment>
      This type is extended by component types to allow attributes from other namespaces to be added.
    </rdfs:comment>
</daml:Class>

<daml:Class rdf:ID="Definitions">
    <daml:subClassOf rdf:resource="#ExtensibleDocumented"/>
</daml:Class>

<daml:Class rdf:ID="Import">
    <daml:subClassOf rdf:resource="#ExtensibleAttributesDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#namespace"/>
        </daml:Restriction> 
    </daml:subClassOf>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#location"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="Types">
     <daml:subClassOf rdf:resource="#ExtensibleDocumented"/>
</daml:Class>

<daml:Class rdf:ID="Message">
    <daml:subClassOf rdf:resource="#ExtensibleDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#name"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="Part">
    <daml:subClassOf rdf:resource="#ExtensibleAttributesDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#name"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="PortType">
    <daml:subClassOf rdf:resource="#ExtensibleAttributesDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#name"/>
        </daml:Restriction> 
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="Operation">
    <daml:subClassOf rdf:resource="#ExtensibleDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#name"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="OneWayOperation">
    <daml:subClassOf rdf:resource="#Operation"/>
    <daml:subClassOf>
        <daml:Restriction daml:cardinality="1">
            <daml:onProperty rdf:resource="#input"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="RequestResponseOperation">
    <daml:subClassOf rdf:resource="#Operation"/>
    <daml:intersectionOf rdf:parseType="daml:collection">
        <daml:Restriction daml:cardinality="1">
            <daml:onProperty rdf:resource="#input"/>
        </daml:Restriction>
        <daml:Restriction daml:cardinality="1">
            <daml:onProperty rdf:resource="#output"/>
        </daml:Restriction>
    </daml:intersectionOf>        
</daml:Class>

<daml:Class rdf:ID="SolicitResponseOperation">
    <daml:subClassOf rdf:resource="#Operation"/>
    <daml:intersectionOf rdf:parseType="daml:collection">
        <daml:Restriction daml:cardinality="1">
            <daml:onProperty rdf:resource="#output"/>
        </daml:Restriction>
        <daml:Restriction daml:cardinality="1">
            <daml:onProperty rdf:resource="#input"/>
        </daml:Restriction>
    </daml:intersectionOf>
</daml:Class>

<daml:Class rdf:ID="NotificationOperation">
    <daml:subClassOf rdf:resource="#Operation"/>
    <daml:subClassOf>
        <daml:Restriction daml:cardinality="1">
            <daml:onProperty rdf:resource="#output"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="ParamFault">
    <daml:subClassOf rdf:resource="#ExtensibleAttributesDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#paramMessage"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="Param">
    <daml:subClassOf rdf:resource="#ParamFault"/>
</daml:Class>

<daml:Class rdf:ID="Fault">
    <daml:subClassOf rdf:resource="#ParamFault"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#name"/>
        </daml:Restriction>
    </daml:subClassOf>  
</daml:Class>

<daml:Class rdf:ID="Binding">
    <daml:subClassOf rdf:resource="#ExtensibleDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#name"/>
        </daml:Restriction>
    </daml:subClassOf>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#type"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="BindingOperation">
    <daml:subClassOf rdf:resource="#ExtensibleDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#name"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="BindingOperationMessage">
    <daml:subClassOf rdf:resource="#ExtensibleDocumented"/>
</daml:Class>

<daml:Class rdf:ID="BindingOperationFault">
    <daml:subClassOf rdf:resource="#ExtensibleDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#name"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="Service">
    <daml:subClassOf rdf:resource="#ExtensibleDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:minCardinality="1">
            <daml:onProperty rdf:resource="#name"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:Class rdf:ID="Port">
    <daml:subClassOf rdf:resource="#ExtensibleDocumented"/>
    <daml:subClassOf>
        <daml:Restriction daml:cardinality="1">
            <daml:onProperty rdf:resource="#name"/>
        </daml:Restriction>
    </daml:subClassOf> 
    <daml:subClassOf> 
        <daml:Restriction daml:cardinality="1">
            <daml:onProperty rdf:resource="#binding"/>
        </daml:Restriction>
    </daml:subClassOf>
</daml:Class>

<daml:ObjectProperty rdf:ID="documentation">
     <daml:domain rdf:resource="#Documented"/>
     <daml:range rdf:resource="#Documentation"/> 
</daml:ObjectProperty>

<daml:DatatypeProperty rdf:ID="name">
     <daml:domain rdf:resource="#Documented"/>
     <daml:range rdf:resource="&xsd;#NCName"/>
</daml:DatatypeProperty>

<daml:ObjectProperty rdf:ID="definition">
     <daml:domain rdf:resource="#WSDLDOC"/>
     <daml:range rdf:resource="#Definitions"/>
</daml:ObjectProperty>

<daml:DatatypeProperty rdf:ID="targetNamespace">
     <daml:domain rdf:resource="#Definitions"/>
     <daml:range rdf:resource="&xsd;#anyURI"/>
</daml:DatatypeProperty>

<daml:ObjectProperty rdf:ID="import">
     <daml:domain rdf:resource="#Definitions"/>
     <daml:range rdf:resource="#Import"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="types">
     <daml:domain rdf:resource="#Definitions"/>
     <daml:range rdf:resource="#Types"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="message">
     <daml:domain rdf:resource="#Definitions"/>
     <daml:range rdf:resource="#Message"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="portType">
     <daml:domain rdf:resource="#Definitions"/>
     <daml:range rdf:resource="#PortType"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="binding">
     <daml:domain rdf:resource="#Definitions"/>
     <daml:range rdf:resource="#Binding"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="service">
     <daml:domain rdf:resource="#Definitions"/>
     <daml:range rdf:resource="#Service"/>
</daml:ObjectProperty>

<daml:DatatypeProperty rdf:ID="namespace">
     <daml:domain rdf:resource="#Import"/>
     <daml:range rdf:resource="&xsd;#anyURI"/>
</daml:DatatypeProperty>

<daml:DatatypeProperty rdf:ID="location">
     <daml:domain rdf:resource="#Import"/>
     <daml:range rdf:resource="&xsd;#anyURI"/>
</daml:DatatypeProperty>

<daml:ObjectProperty rdf:ID="part">
     <daml:domain rdf:resource="#Message"/>
     <daml:range rdf:resource="#Part"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="partType">
     <daml:domain rdf:resource="#Part"/>
     <daml:range rdf:resource="#Types"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="partElement">
     <daml:domain rdf:resource="#Part"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="operation">
     <daml:domain rdf:resource="#PortType"/>
     <daml:range rdf:resource="#Operation"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="input">
     <daml:domain rdf:resource="#Operation"/>
     <daml:range rdf:resource="#Param"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="output">
     <daml:domain rdf:resource="#Operation"/>
     <daml:range rdf:resource="#Param"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="fault">
     <daml:domain rdf:resource="#Operation"/>
     <daml:range rdf:resource="#Fault"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="paramMessage">
     <daml:domain rdf:resource="#ParamFault"/>
     <daml:range rdf:resource="#Message"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="type">
     <daml:domain rdf:resource="#Binding"/>
     <daml:range rdf:resource="#PortType"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="bindingOperation">
     <daml:domain rdf:resource="#Binding"/>
     <daml:range rdf:resource="#BindingOperation"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="bindingInput">
     <daml:domain rdf:resource="#BindingOperation"/>
     <daml:range rdf:resource="#BindingOperationMessage"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="bindingOutput">
     <daml:domain rdf:resource="#BindingOperation"/>
     <daml:range rdf:resource="#BindingOperationMessage"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="bindingFault">
     <daml:domain rdf:resource="#BindingOperation"/>
     <daml:range rdf:resource="#BindingOperationFault"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="port">
     <daml:domain rdf:resource="#Service"/>
     <daml:range rdf:resource="#Port"/>
</daml:ObjectProperty>

<daml:ObjectProperty rdf:ID="portBinding">
     <daml:domain rdf:resource="#Port"/>
     <daml:range rdf:resource="#Binding"/>
</daml:ObjectProperty>

</rdf:RDF>
