RDF over SOAP

notes towards closure of XMLP issue #29

The XML Protocols WG have an issue related to the exchange of RDF graph serializations using SOAP. Discussion of this has refined our understanding of the problem, and the question has been recouched in a way that distinguishes between SOAP-as-protocol and the SOAP Encoding of the SOAP Data Model.

Questions from XMLP WG

We are now looking for answers to two questions from the XMLP group:

Is it true that...

1

Answers

Taken literally, there is a simple 'yes' answer to both questions. Just as AVI video files, MP3s, tar.gz archives and anything else with a bytestream representation can be encoded (eg. base64) and transported using XML documents, so can RDF. There are also applications in existence (eg. RDFAuthor's SOAP-based RDF query facility) that transport RDF-based data, eg. tables of RDF query results, using a custom data structure (arrays of hashtables, etc) using the SOAP Encoding XML format.

There are potentially better 'yes' answers to both questions, however. Base-64 encoding an XML/RDF document would be a last resort.

The first question "can you use the SOAP Encoding to transport RDF" can be taken in two senses.

1. Can RDF graphs be transferred losslessly through SOAP Encoding XML documents? Yes (obviously), just as any other data structure can (fallback proof: base64 encoding).

2. The more interesting sense of this question: Can RDF graphs be mapped to the SOAP Encoding Data Model (and hence to the SOAP Encoding XML dialect)? This is much harder to answer. It is also (perhaps more importantly) not yet clear how much we should care about a negative answer to this question. It may not matter if RDF doesn't map to SOAP encoding, although many who explored this topic consider the models potentially isomorphic.

Q1: RDF and soap encoding

The SOAP Encoding Data Model (per the last published SOAP Adjuncts spec, Dec 2001) defines an XML serialization for an edge-labeled graph structure, using XML, namespaces and some aspects of the XML Schema language to encode a certain class of data structures in XML. As of Dec 2001, the spec includes a section 3 ("The SOAP Data Model") and section 4 ("SOAP Encoding"). Section 3 is marked as a placeholder, noting that the relationship between the encoding and the data model needs clarification in future versions of the spec.

The current (March 2002) state of play seems to be that few applications use SOAP Encoding for anything other than RPC-style serialization of programmatic data structures. Within typical SOAP applications, there does not seem to have been much call for a clearer distinction between the SOAP Data Model and its standard SOAP Encoding. RDF-based apps have also used SOAP Encoding for query and manipulation of RDF via Web service interfaces; however they do not, to date, seem to have explored in any detail the apparent isomorphism between the SOAP and the RDF abstract graph models. Since the current SOAP draft on w3.org suggests the data model will be more clearly articulated in future versions, it may be that developers are awaiting its formal specification before attempting to map between the two models.

Summary: at the current time, nobody knows if the RDF graph and SOAP Encoding graph models are isomorphic.

Notes on isomorphism between SOAP Encoding and RDF: