- From: Danny Ayers <danny.ayers@gmail.com>
- Date: Wed, 25 May 2005 12:49:17 +0200
- To: public-web-http-desc@w3.org
Hi folks, Good to see the list. I couldn't help wondering why a Web resource description format like WADL didn't use the Resource Description Framework. For fun I've rewritten the WADL syntax example in RDF/XML (below). I very much like the lightweight design of WADL, though there are certain aspects I'm not altogether comfortable with. The first is the way resources are described - a URI identifies a resource, so a URI 'resource' element is rather unnecessary. More useful information is the nature(s)/role(s) of the resource in the service context. RDF properties would be an easy, standard way of expressing these (note that I haven't attempted to refactor this in the RDF/XML below). The extensive use of XSD typing, especially in the parameters, seems to run counter to the usual idea of RESTful services being loosely-coupled. What's there now seems closer to hard-wired RPC. It's prescriptive rather than descriptive. An RDF-based alternative could work quite well at this point too, following the 'missing isn't broken' model [1]. Where parameters were required, this could be *described* using OWL cardinality. I'm also not sure about enumerated representations, especially 'fault' - again it seems very RPC, rather than allowing for the full range of HTTP response codes. What I'm trying to say is that 400 isn't a HTTP fault but is associated with a valid representation of the resource. I do reckon 'fault' is a desirable piece of information, but would like (somehow) for it to be pushed up to refer to the application rather than the transport (or relate one to the other). [Sorry if you receive another message very like this - mail problems this end] Cheers, Danny. [1] http://rdfweb.org/mt/foaflog/archives/000047.html -------------------- <?xml version="1.0" standalone="yes"?> <application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://research.sun.com/wadl wadl.xsd" xmlns:yn="urn:yahoo:yn" xmlns:ya="urn:yahoo:api" xmlns="http://research.sun.com/wadl" xmlns:w="http://research.sun.com/wadl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:tns="urn:yahoo:yn"> <types rdf:parseType="Resource"> <include rdf:resource="http://api.search.yahoo.com/NewsSearchService/V1/NewsSearchResponse.xsd"/> <include rdf:resource="http://api.search.yahoo.com/Api/V1/error.xsd"/> </types> <resources> <resource rdf:about="http://api.search.yahoo.com/NewsSearchService/V1/newsSearch"> <operationRef rdf:resource="#NewsSearch"/> </resource> </resources> <operation rdf:parseType="Resource"> <id>NewsSearch</id> <method>get</method> <request rdf:parseType="Collection"> <parameter w:name="appid" w:type="xsd:string" w:required="true"/> <parameter w:name="query" w:type="xsd:string" w:required="true"/> <parameter w:name="type" w:type="xsd:string"/> <parameter w:name="results" w:type="xsd:int"/> <parameter w:name="start" w:type="xsd:int"/> <parameter w:name="sort" w:type="xsd:string"/> <parameter w:name="language" w:type="xsd:string"/> </request> <response rdf:parseType="Collection"> <representation w:mediaType="application/xml" w:element="yn:ResultSet"/> <fault w:id="SearchError" w:status="400" w:mediaType="application/xml" w:element="ya:Error"/> </response> </operation> </application> (archived at http://dannyayers.com/2005/05/radl.rdf) -- http://dannyayers.com
Received on Wednesday, 25 May 2005 10:49:25 UTC