WAIF - Web Application Interaction Format

I though I'd throw my contribution for web description to the lions:

http://iandavis.com/2005/web-description/waif-20050727

This is a description format for web applications that work in terms of 
URIs, resources and representations. It's a sane profile of RDF/XML, in 
fact the XML serialization only uses RDF for cross-referencing via URIs. 
The format itself is constrained by an XML Schema so is processable via 
normal namespace-aware XML tools.

My goals in designing this format have been:

* Make it possible to describe applications based on the Web 
architecture of resources identified by URIs.

* Make it possible to describe applications and services and how to 
interact with them in a simple and intutive fashion.

* Make it possible to separate the application interface from the 
multiplicity of possible implementations.

* Make it possible to determine when two syntactically different 
parameters from different services have the same meaning.

* Make it possible to reuse components within and between descriptions.

I think I've met those goals with this format and have something that is 
flexible enough to describe web services such as Amazon's ecommerce REST 
interfaces and simple collections of resources accessed via GET, POST, 
PUT etc (otherwise known as web sites :)

One of the goals above talks about determining whether different 
parameters have the same meanings. An example of where this is useful 
comes from the domain I've recently started working in: libraries. 
Typically libraries provide access to their catalogs via an OPAC which 
is a web-based search system. There are no standardised interfaces for 
OPACs so each vendor implements entirely different mechanisms to perform 
the same conceptual function. For example searching by ISBN in a Talis 
OPAC uses a URI like this:

http://prismdemoa.talis.com:6080/TalisPrism/doOpenURLSearch.do?isbn=0120078376 


whereas, in an Innopac OPAC, the same search uses a URI like:

http://library.dur.ac.uk/search/i?SEARCH=0120078376

These are conceptually the same search and in WAIF would be related by 
using the same URI for the purpose of each parameter (I show this in one 
of the examples). If I have an ISBN I can use WAIF descriptions to build 
a search URI for any described service that has a parameter with that 
purpose.

I'm looking forward to any comments, criticism, outright laughter etc.

Ian

-- 
http://internetalchemy.org | http://purl.org/NET/iand
Working on... Silkworm <http://silkworm.talis.com/>

Received on Wednesday, 27 July 2005 15:34:02 UTC