Some text about why we need to combine SPARQL with XSLT in lowering schema mapping

Hi all, in (potential) fulfillment of my action item, below is an
unpolished first draft text talking about why we can use only XSLT for
lifting schema mapping but we need SPARQL and XSLT for lowering schema
mapping. This text should help the editors justify in our documents that
we use so many other technologies for our mappings.

Hope it helps,
Jacek

Schema mapping annotations in SAWSDL are realized in two directions - lifting
and lowering. Lifting schema mapping transforms XML data into instances of a
semantic model, and lowering schema mapping does the opposite, it transforms
semantic model instances into XML data.

For example, an RDF-based semantic Web service client may wish to invoke an
operation that it earlier discovered. The client would have some RDF data
that it intends to pass to the operation as the request XML message, lowering
from RDF to XML. When the service replies with the response XML message, the
client will need to lift the data back to RDF in order to process it.

Our examples show lifting schema mappings using XSLT or XQuery, either one
will take the XML data (e.g. coming from the Web service) and produce RDF
data in the RDF/XML syntax. This is rather straighforward.

Lowering schema mappings are more complex, because of the flexible nature of
RDF/XML. RDF/XML is an XML serialization of the graph-of-triples model of RDF
data. In essence, RDF data is always an unordered set of triples consisting
of a subject, a predicate and an object. The XML serialization puts the
values of these parts of the triples alternatively into namespace-qualified
XML element and attribute names, and into character values of elements or
attributes. Languages like XSLT or XQuery rely on XPath to find and select
data in XML structure. XPath is geared towards more fixed XML structures, so
it takes different XPath expressions to select for instance predicates, which
can be encoded as elements or attributes in many places within an RDF/XML
document. XPath (and by extension XSLT and XQuery) does not provide means of
ignoring the purely syntactical differences in the various possible RDF/XML
serializations of otherwise equal RDF graphs, therefore all alternatives have
to be accounted for in the XSLT stylesheet or XQuery query.

Practice has shown that it is a very hard task to create XSLT or XQuery
transformations that take arbitrary RDF/XML as input. Instead, we envision
that lowering schema mappings (for RDF-based semantic models) will use RDF
query languages either to construct the final XML, or to construct a stricter
form of XML that can then be input to XSLT or XQuery to produce the final XML
structure. In our examples, we combine SPARQL to query the RDF data and
procude an XML table of variable bindings, and XSLT that transforms this XML
table into the required XML.

To conclude, if we use RDF as the base for our semantic model, we can easily
use XML transformation technologies like XSLT or XQuery for lifting schema
mappings, but for lowering schema mappings we can only use the XML
technologies if combined with an RDF query language like SPARQL to preprocess
the RDF data.

Received on Tuesday, 28 November 2006 17:00:27 UTC