- From: Jeremy Carroll <jjc@hpl.hp.com>
- Date: Wed, 13 Jun 2007 14:49:31 +0100
- To: GRDDL Working Group <public-grddl-wg@w3.org>
(while working on the generic XSLT module ...)
consider
GET from
http://example.org/a/b/c/d/e/f.html
giving
<html>
<head xml:base="../../foo">
<base href="../../foo"/>
<rdf:RDF>
<rdf:Description rdf:about="">
<rdfs:comment>Bar</rdfs:comment>
</rdf:Description>
</rdf:RDF>
....
annotated correctly to apply inline-rdf transform.
Currently this does not work correctly (whatever correctly might be),
and I cannot see any changes that will make it work correctly.
I assume the intended triple might be:
<http://example.org/a/b/c/foo> rdfs:comment "Bar".
I think a GRDDL aware agent, will currently get
<http://example.org/a/foo> rdfs:comment "Bar".
I am minded to simply document the problem.
I am wondering whether I should make any changes.
====
Part of the underlying problem is that (X)HTML is designed to use the
base element, not xml:base, whereas RDF/XML is designed to use xml:base
and not html:base element.
Thus it is unclear how the mechanisms should interact ... (It is
unspecified).
The current behaviour is that:
- a top-level xml:base is ignored, i.e. on the html element
- an html base is respected by the GRDDL aware agent
- lower-level xml:base is copied across to the inline RDF content.
It may be cleaner to explicitly ignore any xml:base except those inside
the rdf:RDF - xml:base is not supported in (X)HTML.
Alternatively, one could, in the transform, respect all xml:base
declaration in the document, and flag an error if the resulting xml:base
and an HTML base are both present and both relative. That's probably the
best one can do ....
any thoughts?
Jeremy
--
Hewlett-Packard Limited
registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England
Received on Wednesday, 13 June 2007 13:49:49 UTC