- From: Murray Maloney <murray@muzmo.com>
- Date: Thu, 23 Nov 2006 12:24:30 -0500
- To: public-grddl-wg <public-grddl-wg@w3.org>
ACTION: Murray to write up the pros and cons
<http://www.w3.org/2004/01/rdxh/spec#issue-mt-ns>http://www.w3.org/2004/01/rdxh/spec#issue-mt-ns
[recorded in
<http://www.w3.org/2006/11/22-grddl-wg-minutes.html#action13>http://www.w3.org/2006/11/22-grddl-wg-minutes.html#action13]
The problem, as I understand it, is that there is potential to return
different graphs
depending on whether XIncludes are processed before a transformation is run
against
the source document.
The following is adapted from http://www.w3.org/TR/xinclude/#basic-example
===========================================================
The following XML document contains an xi:include element which points to
an external document.
Assume the base URI of this document is http://www.example.org/document.xml.
<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:grddl="http://www.w3.org/2003/g/data-view#"
grddl:Transformation="grokDisclaimer.xsl">
<p>120 Mz is adequate for an average home user.</p>
<xi:include href="disclaimer.xml"/>
</document>
disclaimer.xml contains:
<?xml version='1.0'?>
<disclaimer>
<p>The opinions represented herein represent those of the individual
and should not be interpreted as official policy endorsed by
this organization.</p>
</disclaimer>
The infoset resulting from resolving inclusions on this document is the
same (except for the include history and language properties) as that of
the following document:
<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:grddl="http://www.w3.org/2003/g/data-view#"
grddl:Transformation="grokDisclaimer.xsl">
<p>120 Mz is adequate for an average home user.</p>
<disclaimer xml:base="http://www.example.org/disclaimer.xml">
<p>The opinions represented herein represent those of the individual
and should not be interpreted as official policy endorsed by
this organization.</p>
</disclaimer>
</document>
===========================================================
Obviously, a GRDDL Transformation expressed in XSLT will produce a
different result
from the original document than it will from the final document, if the
Transformation is
intent on extracting disclaimers. The resulting RDF graph will not relate
information found
in disclaimer.xml without XInclude processing.
The question that I believe we face is:
How can GRDDL implementations ensure consistent result graphs
when xi:include elements are present within a source document?
[I suppose that the question could be further expanded to consider
what to do when xi:include is found within a namespace document.]
There are several answers:
-- A GRDDL-aware processor can ensure that its results are
self-consistent
by choosing an XInclude policy and sticking with it.
-- Developers of GRDDL Transformations can reference XML Pipelines
to describe
their XInclude-processing policy. (See below.)
-- Developers of GRDDL Transformations can use XSLT to transform
XIncludes
into equivalent RDF triples so that downstream processors can
follow their
noses to discover additional resources. Care must be taken to
maintain
a relation to the original transformation in case further
transformations
are required. (I don't know XSLT or DC well enough to write
the transformation.)
-- Developers of GRDDL Transformations can use XSLT to ignore
XIncludes.
===========================================================
Lacking public software to demonstrate how an XML Pipeline would work, I
can only
record here what a pipeline running XInclude and then XSLT looks like
syntactically.
<p:pipeline name="MyGRDDL"
xmlns:p="http://example.org/PipelineNamespace">
<p:input port="InfoResource" sequence="no"/>
<p:input port="Transformation" sequence="no"/>
<p:output port="MyGRDDLresult" step="XSLT" source="result"/>
<p:step type="p:xinclude" name="XINCLUDE">
<p:input port="document" step="MyGRDDL" source="InfoResource"/>
</p:step>
<p:step type="p:xslt" name="XSLT">
<p:input port="document" step="XINCLUDE" source="result"/>
<p:input port="document" step="MyGRDDL" source="Transformation"/>
</p:step>
</p:pipeline>
===========================================================
Received on Wednesday, 29 November 2006 16:21:07 UTC