<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF
  xmlns:service="http://www.daml.org/services/daml-s/0.7/Service.daml#"
  xmlns:process="http://www.daml.org/services/daml-s/0.7/Process.daml#"
  xmlns:profile="http://www.daml.org/services/daml-s/0.7/Profile.daml#"
  xmlns:grounding="http://www.daml.org/services/daml-s/0.7/Grounding.daml#"
  xmlns:fla="http://www.flacp.fujitsulabs.com/~mhgrove/services/FLACP-ServiceOnt.daml#"
  xmlns:profileHierarchy="http://www.mindswap.org/2002/services/MindswapProfileHierarchy.daml#"
  xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>

<!-- Service description -->

<service:Service rdf:ID="ZipCodeFinderService">
  <service:presents rdf:resource="#ZipCodeFinderProfile" />  
  <service:describedBy rdf:resource="#ZipCodeFinderProcessModel" />  
  <service:supports rdf:resource="#ZipCodeFinderGrounding" />
</service:Service>

<!-- Profile description -->

<profileHierarchy:InfoService rdf:ID="ZipCodeFinderProfile">       
  <service:isPresentedBy rdf:resource="#ZipCodeFinderService"/>
  <profile:textDescription>Finds a zip code</profile:textDescription>
  <profile:serviceName>Find ZipCode</profile:serviceName>

  <profile:input> 
    <profile:ParameterDescription rdf:ID="City"> 
      <profile:parameterName>City</profile:parameterName>
      <profile:restrictedTo rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
      <profile:refersTo rdf:resource="#processInput1"/>
    </profile:ParameterDescription>
  </profile:input>

  <profile:input> 
    <profile:ParameterDescription rdf:ID="State"> 
      <profile:parameterName>State</profile:parameterName>
      <profile:restrictedTo rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
      <profile:refersTo rdf:resource="#processInput2"/>
    </profile:ParameterDescription>
  </profile:input>
  
  <profile:output> 
    <profile:ParameterDescription rdf:ID="ZipCode"> 
      <profile:parameterName>ZipCode</profile:parameterName>
      <profile:restrictedTo rdf:resource="http://www.mindswap.org/2002/services/concepts.daml#ZipCode"/>
      <profile:refersTo rdf:resource="#processOutput"/>
    </profile:ParameterDescription>
  </profile:output>

</profileHierarchy:InfoService>

<!-- Process Model description -->

<process:ProcessModel rdf:ID="ZipCodeFinderProcessModel">
  <service:describes rdf:resource="#ZipCodeFinderService" /> 
  <process:hasProcess rdf:resource="#ZipCodeFinderProcess" /> 
</process:ProcessModel>

<daml:Class rdf:ID="ZipCodeFinderProcess">
  <rdfs:subClassOf rdf:resource="http://www.daml.org/services/daml-s/0.7/Process.daml#AtomicProcess" /> 
  <rdfs:subClassOf>
    <daml:Restriction daml:cardinality="1">
      <daml:onProperty rdf:resource="#processInput" /> 
    </daml:Restriction>
  </rdfs:subClassOf>  
</daml:Class>

<rdf:Property rdf:ID="processInput1">
  <rdfs:subPropertyOf rdf:resource="http://www.daml.org/services/daml-s/0.7/Process.daml#input" /> 
  <rdfs:domain rdf:resource="#ZipCodeFinderProcess" /> 
  <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</rdf:Property>

<rdf:Property rdf:ID="processInput2">
  <rdfs:subPropertyOf rdf:resource="http://www.daml.org/services/daml-s/0.7/Process.daml#input" /> 
  <rdfs:domain rdf:resource="#ZipCodeFinderProcess" /> 
  <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
</rdf:Property>

<rdf:Property rdf:ID="processOutput">
  <rdfs:subPropertyOf rdf:resource="http://www.daml.org/services/daml-s/0.7/Process.daml#output" /> 
  <rdfs:domain rdf:resource="#ZipCodeFinderProcess" /> 
  <rdfs:range rdf:resource="http://www.mindswap.org/2002/services/concepts.daml#ZipCode"/>
</rdf:Property>

<!-- Grounding description -->

<grounding:WsdlGrounding rdf:ID="ZipCodeFinderGrounding">
  <service:supportedBy rdf:resource="#ZipCodeFinderService" />
  <grounding:hasAtomicProcessGrounding rdf:resource="#ZipCodeFinderProcessGrounding" /> 
</grounding:WsdlGrounding> 

<grounding:WsdlAtomicProcessGrounding rdf:ID="ZipCodeFinderProcessGrounding"> 
  <grounding:damlsProcess rdf:resource="#ZipCodeFinderProcess"/>
  <grounding:wsdlOperation rdf:resource="findZipCode"/>

  <grounding:wsdlInputMessage rdf:resource="findZipCodeRequest"/>
  <grounding:wsdlInputMessageParts rdf:parseType="Collection">
	<grounding:wsdlMessageMap>
      <grounding:damlsParameter rdf:resource="#processInput1"/>
      <grounding:wsdlMessagePart rdf:resource="in0"/>
    </grounding:wsdlMessageMap>
	<grounding:wsdlMessageMap>
      <grounding:damlsParameter rdf:resource="#processInput2"/>
      <grounding:wsdlMessagePart rdf:resource="in1"/>
    </grounding:wsdlMessageMap>
  </grounding:wsdlInputMessageParts>

  <grounding:wsdlOutputMessage rdf:resource="findZipCodeResponse"/>
  <grounding:wsdlOutputMessageParts rdf:parseType="Collection">
	<grounding:wsdlMessageMap>
      <grounding:damlsParameter rdf:resource="#processOutput"/>
      <grounding:wsdlMessagePart rdf:resource="return"/> 
	</grounding:wsdlMessageMap>  
  </grounding:wsdlOutputMessageParts>

  <grounding:wsdlReference>http://www.w3.org/TR/2001/NOTE-wsdl-20010315</grounding:wsdlReference>
  <grounding:otherReference>http://www.w3.org/TR/2001/NOTE-wsdl-20010315 http://schemas.xmlsoap.org/wsdl/soap/ http://schemas.xmlsoap.org/soap/http/</grounding:otherReference>
  <grounding:wsdlDocument>http://www.mindswap.org/2002/services/ZipCodeFinder.wsdl</grounding:wsdlDocument>
</grounding:WsdlAtomicProcessGrounding>

</rdf:RDF>

