- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Wed, 23 Sep 2009 14:21:55 +0100
- To: Philip Taylor <pjt47@cam.ac.uk>
- Cc: "public-rdf-in-xhtml-tf.w3.org list" <public-rdf-in-xhtml-tf@w3.org>
Philip, On 23 Sep 2009, at 09:07, Philip Taylor wrote: > Jeni Tennison wrote: >> Philip, >> I just updated rdfQuery to address some of the new test cases that >> you've done. Thank you for taking the time to make the edge cases >> explicit. The latest trunk rdfQuery output will differ from the >> samples you give in some places, so just to detail them here and >> explain why: > > Great, thanks for looking at this! I've made a few changes to the test > cases, and updated the test results to use the current trunk. Thanks :) And thanks for the inclusion of the Opera results. It might be interesting to include results for other browsers too. >> 2. For 'Underscore xmlns prefix', where the test case is: >> <p xmlns:_="http://example.org/" property="_:test">Test</p> >> rdfQuery retains the legal namespace declaration but because the >> CURIE begins with _:, which is how blank nodes are indicated, it's >> interpreted as a blank node with the id 'test'. Predicates cannot >> be blank nodes in rdfQuery, so it's treated as a bogus value and >> ignored. No triples are created. > > I don't see anything in the RDFa spec that justifies this behaviour. > As > far as I can tell, xmlns:_ updates the list of in-scope mappings, and > then the CURIE is converted to URI with the steps "Split the CURIE at > the colon to obtain the prefix and the resource. Using the prefix and > the current in-scope mappings, obtain the URI that the prefix maps to. > Concatenate the mapped URI with the resource value, to obtain an > absolute URI". The prefix is '_' and so the relevant in-scope mapping > applies, just like any other prefix, so the mapped URI comes from > xmlns:_ and the resulting absolute URI is used as the predicate. > > This doesn't really sound like sensible behaviour, but it's how I > interpret the spec. Am I misunderstanding something? Does the spec > need > to be fixed? Well, in Section 7 of the RDFa syntax specification [1] it says: "In normal evaluation of CURIEs the following context information would need to be provided: ... * a mapping to use with the '_' prefix, which is used to generate unique identifiers (for example, _:p). ... In RDFa these values are defined as follows: ... * the mapping to use with the '_' prefix, is not explicitly stated, but since it is used to generate [bnode]s, its implementation needs to be compatible with the RDF definition." So it seems to me that RDFa holds the '_' prefix in special regard, thinks that the CURIE specification holds the '_' prefix in special regard, believes that it should not be interpreted in the same way as other prefixes, and that it's used to generate bnodes. What I wish is that the CURIE specification said something clearly about the priority between "the mapping to use with the '_' prefix" and the "set of mappings from prefixes to URIs". All it says is [2]: "The CURIE prefix '_' is reserved for use by languages that support RDF. For this reason, the prefix '_' SHOULD be avoided by authors." My interpretation is that 'reserved' means that the special use of '_' takes precedence over any other prefix mappings that may be provided to it. I do think the CURIE specification could be improved by defining in much clearer language the four context items that the RDFa specification states are used to interpret CURIEs. >> 3. For 'xmlns prefix 'xml' with incorrect URI', where the test case >> is: >> <p xmlns:xml="http://example.org/" property="xml:test">Test</p> >> rdfQuery ignores the bogus namespace declaration, but uses the >> built-in namespace declaration for the prefix 'xml' and therefore >> generates the triple: >> <> <http://www.w3.org/XML/1998/namespacetest> "Test" . > > What built-in namespace declaration? The spec says there is "An > initially empty list of [URI mapping]s, called the [local list of URI > mappings]", and the list is only updated by xmlns:* attributes on > processed elements, so it sounds like a violation if the list has some > built-in entries and is not initially empty. > > Same issue for the tests that use xmlns:xmlns="...". > > The only one that should generate triples is > xmlns:xml="http://www.w3.org/XML/1998/namespace" -- XML Namespaces > says > the xml prefix/URI "MAY, but need not, be declared, and MUST NOT be > bound to any other namespace name", so this particular declaration is > legitimate and should add to the list of URI mappings. (It looks like > rdfQuery is only accidentally passing this test, because of the > built-in > mapping for xml, so the bugs are cancelling each other out :-) ) Yes. Short answer is that I don't know what should happen here, and I deliberately chose to take a different position from your test in the hope that someone on the RDFa TF would clarify what the correct interpretation is. Perhaps that was too subtle. I'll post a separate mail to explicitly call it out. >> 8. The language-based tests aren't met, because I'm currently at a >> loss as to how to amend rdfQuery to work out whether it's being >> used in an HTML or XHTML setting and therefore whether xml:lang is >> a lang attribute in the XML namespace or an attribute called >> 'xml:lang' in no namespace. > > You shouldn't need to know the setting. > http://whatwg.org/html5#language defines the language of an element in > terms of the DOM, independent of the syntax, so it's the same for > documents parsed from HTML and XHTML. Yes, it would be nice if I could take that attitude. Even nicer if I could rely on the DOM's lang property. I'm just not quite sure how to square it with the requirement to work in legacy browsers (such as IE). > On a related note, I fixed one of my language test cases (the input > markup <p property=... xml:lang="aa">Test</p> in text/html ought to > produce a literal with no language), and I think the rest are all > testing for the correct output (per HTML5's definition of language). OK. Jeni [1]: http://www.w3.org/TR/rdfa-syntax/#s_curies [2]: http://www.w3.org/TR/curie/#s_syntax -- Jeni Tennison http://www.jenitennison.com
Received on Wednesday, 23 September 2009 13:22:36 UTC