RE: comment on /2001/11/13-RDF-Query-Rules/

Eric,

In serviceGraph.png, you show the value of the property wsdl:name as
a resource node having the same URIref as the subject. I.e. the subject
and object appear to be the same. Did you mean for the object of
the wsdl:name statement to be a literal?

Also, is the service 'es' or 'es:EndorsementSearchService' (not being
terribly well versed in WSDL)?

BTW, here's yet another RDF Query language. Open source tools forthcoming
shortly... (see attachments for details)

The benefits (IMO) are that it's all RDF, both query and results, and
the same results provide both for applications wanting statements
as well as those wanting bindings.

Taking your example:

<!DOCTYPE rdf:RDF [
   <!ENTITY rdf    "http://www.w3.org/1999/02/22-rdf-syntax-ns#">
   <!ENTITY wsdl   "http://schemas.xmlsoap.org/wsdl/">
   <!ENTITY wssoap "http://schemas.xmlsoap.org/wsdl/soap/">
   <!ENTITY rdfq   "http://sw.nokia.com/RDFQ-2/">
]>

<rdf:RDF 
   xmlns:rdf    ="&rdf;"
   xmlns:wsdl   ="&wsdl;"
   xmlns:wssoap ="&wssoap;"
   xmlns:rdfq   ="&rdfq;"
>

<rdfq:Query rdfq:variable="service">
  <rdf:type rdf:resource="&wsdl;service"/>
  <wsdl:hasPort>
     <rdf:Description rdfq:variable="port">
        <wsdl:binding>
           <rdf:Description rdfq:variable="binding">
              <wssoap:style rdf:resource="&wssoap;document"/>
              <wsdl:name>
                 <rdf:Description rdfq:variable="bindingName"/>
              </wsdl:name>
           </rdf:Description>
        </wsdl:binding>
     </rdf:Description>
  </wsdl:hasPort>
</rdfq:Query>

RETURNS

<!DOCTYPE rdf:RDF [
   <!ENTITY rdf    "http://www.w3.org/1999/02/22-rdf-syntax-ns#">
   <!ENTITY wsdl   "http://schemas.xmlsoap.org/wsdl/">
   <!ENTITY wssoap "http://schemas.xmlsoap.org/wsdl/soap/">
   <!ENTITY rdfq   "http://sw.nokia.com/RDFQ-2/">
   <!ENTITY es     "http://example.com/ExampleService/">
]>

<rdf:RDF 
   xmlns:rdf    ="&rdf;"
   xmlns:wsdl   ="&wsdl;"
   xmlns:wssoap ="&wssoap;"
   xmlns:rdfq   ="&rdfq;"
   xmlns:es     ="&es;"
>

<wsdl:service rdf:about="&es;EndorsementSearchService" rdfq:variable="service">
   <wsdl:hasPort rdf:resource="&es;GetEndorsingBorderPort"/>
</wsdl:service>

<wsdl:port rdf:about="&es;GetEndorsingBorderPort" rdfq:variable="port">
   <wssoap:address rdf:resource="&es;EndorsementSearch"/>
   <wsdl:binding rdf:resource="&es;EndorsementSearchSoapBinding"/>
</wsdl:port>

<wsdl:binding rdf:about="&es;EndorsementSearchSoapBinding" rdfq:variable="binding">
   <wssoap:style rdf:resource="&wssoap;document"/>
   <wssoap:transport rdf:resource="&wssoap;http"/>
   <wsdl:name>
      <rdf:Description rdfq:variable="bindingName"
                       rdf:value="http://example.com/ExampleService/EndorsementSearchSoapBinding"/>
   </wsdl:name>
</wsdl:binding>

</rdf:RDF>

OR, in N3...

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix wsdl: <http://schemas.xmlsoap.org/wsdl/> .
@prefix wssoap: <http://schemas.xmlsoap.org/wsdl/soap/> .
@prefix rdfq: <http://sw.nokia.com/RDFQ-2/> .

[ a rdfq:Query;
  rdfq:variable "service";
  rdf:type wsdl:service;
  wsdl:hasPort [ rdfq:variable "port";
                 wsdl:binding [ rdfq:variable "binding";
                                wssoap:style wssoap:document;
                                wsdl:name [ rdfq:variable "bindingName". ]
                              ].
               ].
]

RETURNS

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix wsdl: <http://schemas.xmlsoap.org/wsdl/>.
@prefix wssoap: <http://schemas.xmlsoap.org/wsdl/soap/>.
@prefix rdfq: <http://sw.nokia.com/RDFQ-2/>.
@prefix es: <http://example.com/ExampleService/>.

es:EndorsementSearchService
   rdfq:variable "service";
   rdf:type wsdl:service;
   wsdl:hasPort es:GetEndorsingBorderPort.

es:GetEndorsingBorderPort
   rdf:type wsdl:port;
   wssoap:address es:EndorsementSearch;
   wsdl:binding es:EndorsementSearchSoapBinding.

es:EndorsementSearchSoapBinding
   rdfq:variable "binding";
   rdf:type wsdl:binding;
   wssoap:style wssoap:document;
   wssoap:transport wssoap:http;
   wsdl:name [ rdf:value "http://example.com/ExampleService/EndorsementSearchSoapBinding";
               rdfq:variable "bindingName". ].


Since RDFQ is just an RDF vocabulary, any RDF serialization is fine.

Cheers,

Patrick


--
Patrick Stickler, Nokia/Finland, (+358 40) 801 9690, patrick.stickler@nokia.com
 

Received on Wednesday, 19 March 2003 06:49:38 UTC