On ISSUE-6 (invalid values in @datatypes cause plain literals to be generated)

Dear all,

Manu asked me to look into ISSUE-6 to possibly close it this week. This issue is Dan Connolly's email:

http://lists.w3.org/Archives/Public/public-rdf-in-xhtml-tf/2010Feb/0018.html

(For a better reference, I copy the content below if you do not want to follow the link:-)

Several questions, in fact

---------
Looking at the issue raised by Dan, I believe the answer _to his question_ is relatively clear. He refers to

<span property="a:b" datatype="***goofy***" content="abc">

(he forgot the @property in his example, though, but that is probably just an oversight)

which can be interpreted in two different ways, in fact, and I am not sure we are clear about that:

<span property="a:b" content="abc">
<span property="a:b" datatype="" content="abc">

but _in both cases_ the generated literal happens to be a plain literal

However, in RDFa1.0 I think what was not properly stated is what happens, in general, with

@rdfa-attribute="INVALIDCURIEVALUE"

I presume the intention was to say that this is equivalent to 

@rdfa-attribute=""

as opposed to when the attribute was not around at all. 

---------
And in RDFa1.1? We are looking at TERMorCURIEorURI (that is what counts for @datatype or, for example, @typeof). Per 7.4 of the current draft, this is either evaluated as a term or as a CURIE or as a URI. Term if it is an NCNAME, that is. So, taking Dan's example and looking at the text in 7.4:

- @datatype="goofy" is evaluated as a possible term; if not defined as such then the text says 'value to be ignored'
- @datatype="***goofy***" is not an NCNAME ie, it is not a term; it does not lead to a proper CURIE either because (prefix must be an NCNAME); ie, it has to be processed as a URI, yielding the URI:

 http://baseuri/***goofy***

which _is_ a valid URI for a datatype (crazy it may look).

But... we still have the question what 'value to be ignored' means, see the first example. Does @datatype="goofy" means @datatype=""? I believe this should be the case, but that should be stated explicitly (can be in 7.4, as an additional remark). Something that says for all attributes ignoring a specific value may yield to an empty string as being the value of that attribute, but this does not mean ignoring the attribute.

While this may not be very interesting for @datatype, it is interesting for @typeof, because the existence of @typeof="" has an effect on the generated graph structure (an extra bnode).

Ivan

----
Ivan Herman, W3C Semantic Web Activity Lead
Home: http://www.w3.org/People/Ivan/
mobile: +31-641044153
PGP Key: http://www.ivan-herman.net/pgpkey.html
FOAF: http://www.ivan-herman.net/foaf.rdf


Dan's Original Mail:

[[[
Step 9 of http://www.w3.org/TR/rdfa-syntax/#sec_5.5.

says
 "as a [typed literal] if: @datatype is present ...
   The final string includes the datatype URI, ...  which will have
   been obtained according to the section on CURIE and URI Processing."

Now... when I follow that link, I find:

"An attribute may allow one or more CURIE-only values, disallowing other
types of value. In this case any value that is not a 'curie' according
to the definition in the section CURIE Syntax Definition MUST be
ignored; this means that not only will there be no error reporting, but
also the RDFa processor should act as if the value simply did not
exist."

 -- 5.4.3. General Use of CURIEs in Attributes

So suppose I have

 <span datatype="***goofy***" content="abc">

How do I "act as if the value simply did not exist"? Do I act as
if the @datatype attribute weren't there and fall back to
the next bullet ("as a [plain literal] if...")? Or do I stick
with this bullet but not establish any [current object literal]?
]]]

Received on Monday, 17 May 2010 10:04:12 UTC