W3C home > Mailing lists > Public > public-rdf-in-xhtml-tf@w3.org > September 2007

Re: Updated Editor's Draft available

From: Mark Birbeck <mark.birbeck@formsPlayer.com>
Date: Wed, 5 Sep 2007 13:16:07 +0100
Message-ID: <a707f8300709050516p2f7e8f17o9d22a34fcd9aaac1@mail.gmail.com>
To: "Ivan Herman" <ivan@w3.org>
Cc: "Shane McCarron" <shane@aptest.com>, public-rdf-in-xhtml-tf.w3.org <public-rdf-in-xhtml-tf@w3.org>

Hi Ivan,

Great...thanks for the very useful comments, and for turning them
around so quickly.

> A general issue, that I also added to my comments: I wonder whether the
> spec itself should not be centred around the processing model as the
> core of the spec, with all other sections being informative. At present,
> section 7 (the processing model) is labelled as 'informative', ie, all
> the other sections are informative. I would consider reversing that
> altogether, and turn the processing model as the normative part, all the
> rest being informative. In fact, most of the informative part could be
> reduced a lot, and leave it to the primer (the current text still
> contains lots of leftovers from the previous versions, as I noted in my
> comments).

That's an interesting point. Shane asked me yesterday whether that
section should be normative or not, and I said that I couldn't see how
we could make it normative, since it used the idea of recursing
through a DOM; since I thought we should be able to support other
processing models it felt wrong to restrict things.

But I guess with a little work we could resolve that, perhaps using
some less specific language.

> A purely stylistic comment: although the syntax allows all types of indentation, the 'usual'
> turtle style is to keep the predicate and object in one line. Ie, for my eyes,
> <http://internet-apps.blogspot.com/>
>    dc:creator
>    <http://www.blogger.com/profile/1109404> .
> looks very strange; either the whole triple should be in one line or it should be:
> <http://internet-apps.blogspot.com/>
>    dc:creator <http://www.blogger.com/profile/1109404> .
> (Again, this is purey stylistic...)

Ah...I never knew there was a 'house style'. :) We'll use that from now on.

> 2.4.1. CURIE syntax
> I am a bit surprised to see this here, but maybe I am not up-to-date in the discussion.
> My understanding was that we would _not_ use the bracketed CURIE syntax after all.
> Ie, the value of @href and @resource would simply be URI-s and we will live with that.
> Am I misinformed?
> Personally, I would vote for not using that syntax, in order to minimize the deviation from
> the host language, ie, XHTML!

We still need compact URIs in @rel, @rev, @instanceof and @property, though.

So far, we've agreed that the QNames syntax is incorrect, and also
that we're going to use CURIEs to give us compact URIs. However, due
to some people feeling uncomfortable with a a direct link to the CURIE
spec itself, we've agreed to simply lift the prose and syntax from
there. This gives us a little flexibility, and makes it not much
different to recent SPARQL drafts (which now have EBNF for something
exactly like CURIEs).

Of course, this means that there will be two specs that are referring
to something that is exactly the same, and you never know, people
might decide that referring to the CURIEs spec is not so bad after

But a bridge for another day...

I've not had a chance to go through the rest of the document--I've
been working solely on the processing model section--but I'll do so
tomorrow morning, before the telecon. When I do I'll incorporate the
changes that you suggest below. I've added some comments inline.

> ------------------------------------------------------------------
> 3.1 Overview
> The @instanceof is missing from the list at the start


> ------------------------------------------------------------------
> 3.1 Overview
> The example at the beginning is wrong by virtue of the literal processing; it should be
> <photo1.jpg> dc:creator "Mark Birbeck" .
> (ie, not an XML literal!)

Yes, I think there might be a few of these to tidy up.

> ------------------------------------------------------------------
> 3.1 Overview
> I do not understand the sentence:
> "It's important to note that the various RDFa attributes can be used on any existing element of the XML dialect. "
> what 'XML Dialect' are you talking about?

That's a very old sentence. :)

> ------------------------------------------------------------------
> 3.1 Overview
> At the very end of the chapter you say:
> "Specifically, in the case of XHTML2, it makes sense to render as much of the useful metadata as possible and use RDFa to mark up this rendered data. "
> for 'political' reasons, so to say, I would prefer not to have any reference th XHTML2. RDFa
> has suffered a lot because people thought that this would be an XHTML2 feature only, and
> we have to be careful avoiding this image. Actually, I do not believe anyting you say is
> XHTML2 specific.

Let's hope the suffering is over...bring me your huddled masses, and
all that. ;)

The funny thing is that RDFa was *always* intended to be independent
of language. Early drafts were incorporated into the XHTML 2
specification, and as you'd expect, the wording changed to make it
XHTML 2 specific. I think what happened here is that newer drafts of
the syntax document took as their starting-point an XHTML 2-specific
draft rather than a pre-XHTML 2 draft.

Anyway, I'll try to remove anything like that before tomorrow's call.

> ------------------------------------------------------------------
> 3.2 Qualifying document components
> Is it allowed, in XHTML1, to have an <em> subelement for <title>? If not, let us remove it for
> the same reasons as my comments above...

Well spotted.

> ------------------------------------------------------------------
> 3.2 Qualifying document components
> Actually, the example uses @resource and not @href as it says in the explanatation text.
> Either way is fine, but it should be consistent:-)


> ------------------------------------------------------------------
> 3.3. Relating document components
> Again the "RDFa allows a single XML dialect document to include multiple RDF entities" term
> with 'XML dialect'...

Not sure what's happening there, but I'll sort it out.

> ------------------------------------------------------------------
> 3.3. Relating document components
> The example reflects XHTML2 features which we should not have. Eg:
> - <link> and <meta> element in the body
> - bracketed curie syntax
> I guess the <link> and <meta> elements should be exchanged againsts <span>-s

Yes, sorry about this. It's why Shane said to take the processing
model section as the most up-to-date, because we know that there are
still parts of the main body of the document that are either no longer
necessary or haven't yet been edited.

> ------------------------------------------------------------------
> 4.1. Processing
> @instanceof is missing from the list


> ------------------------------------------------------------------
> 4.2. Compact URIs
> Just making a note again on the bracketed CURIE

There shouldn't be any bracketed CURIEs, just 'basic' ones.

> ------------------------------------------------------------------
> 4.3. Establishing the subject
> I see the chapter is not complete, as I think you refer to in your comment on "@@ Example of
> using rel and rev to establish the subject"; it does not reflect the processing model of section
> 7.3....


> The main isssue here, I believe, is that the statement "if a closer ancestor element includes a
> rel or rev attribute with no href, src or resource, then the subject is the CURIE/URI that
> corresponds to that parent element" is wrong. The statement (if this is the way we want to
> describe it) is rather something like "if a closer ancestor element includes a rel or rev attribute,
> then the object generated by those attribute is used as a subject for this element". But the
> language used in section 7 is way cleaner...

I'll be honest, that's what I was really hoping to hear! If everyone
is happy with the section 7 approach, then I would *much* prefer to
use it. I don't really like the idea of describing things in terms of
'looking for ancestors', and all that. And I also don't like the 'if
this, then that' descriptions that we have used up until now, because
it's very easy to miss things when implementing, and it's also quite
difficult to explain.

> The role of @instanceof is missing altogether.
> (An editing issue: I am not sure that the current structure of the chapter is really readable. I
> wonder whether describing the processing step for one element with the processing model
> as in section 7, is not a cleaner way, rather than separating the establishment of a subject
> and an object.)


> ------------------------------------------------------------------
> 4.3.1. The about attribute
> The literal for Mark should be plain and not XMLLiteral (in the example)


> ------------------------------------------------------------------
> 4.5.1. Literal object resolution using the content attribute
> the text between the two example refer to XMLLiteral. It should not.


> ------------------------------------------------------------------
> 4.5.2. URI object resolution using the href attribute
> I think it should be @href and @resource. Both are allowed, with @resource taking
> precedence. Actually, @src, too...


> ------------------------------------------------------------------
> 4.5.3. rel without href
> First of all, @resource should also be mentioned here.
> I simply do not understand the first paragraph and I don not think it is correct. As far as I know,
> the rule is: if there is a @rel or @rev without any @href or @resource, then a bnode is
> generated as an object, and this bnode will serve as a subject for all descendent elements.
> CURIE or @id do not play any role here.


> ------------------------------------------------------------------
> 5.1. Literals as Objects
> I am sorry, but the whole section should be rewritten, because it does not reflect the current
> resolutions of the group and what is described in the processing model... Indeed, the
> generation of XML Literals or not has been changed a lot.


> ------------------------------------------------------------------
> 5.2. Blank nodes
> I am sorry, but the whole chapter reflects a previous status, and is outdated as far as the
> resolutions of the group are concerned... <link> and <meta> elements are not used within
> the <body>, and there is no such thing (afaik) as bnode CURIE. Please refer to my comment
> on chapter 4.3 on how bnodes are generated (if necessary).


> ------------------------------------------------------------------
> 5.3. Reification
> I do not think this section is valid. AFAIK, RDFa does _not_ define reification at all!


Apologies again that you've had to waste time reviewing material that
shouldn't even be there...as I said above, these 'stray' sections
should have been removed, and that is why Shane made the point about
'the processing model is the most up-to-date'.

> ------------------------------------------------------------------
> 6.2. FOAF
> Section should be rewritten, because it reflects an outdated state. No bnode curies, (and bracketed curies), no <link> and <meta> statements in the body, etc.
> I have a http://www.ivan-herman.net/foaf.html file that is written using (I believe) the latest
> status; this can be reused in the examples if needed...

Yes, good idea. I actually use your page to test my processor. :)

> ------------------------------------------------------------------
> 7.3. Processing
> At the start of the process, maybe it is worth specifying that [chaining] is set to false.


> Part 1, establishing language: afaik, and that is reflected in the current XHTML+RDFa DTD,
> @lang is _not_ used. Either we should remove its reference or modify the DTD...


> Part 2: isn't there a need for setting the [current resource]? Ie, if there is a @about attribute
> on [current element], then its value becomes [current resource]

That's in step 1, where we do anything that can change the evaluation
context. Part 2 is all about working out what objects you have.

> Part 2, establishing [current object resource]: I think if there is only an @instanceof attribute,
> that by itself establishes a bnode as a current object resource.

You're right, and I'm assuming that processors will make all sorts of
optimisations to the steps I've outlined. But the approach I have
taken is that regardless of the attributes on an element, you will
always 'calculate' an object resource, even if you don't end up using

So the object resource on an element with @resource, @src or @href is
the value of the attribute. And if none of those are present, the
value is a bnode.

As I say, whether the processor uses that value is another matter, and
that's where implementers may choose to add some optimisations. But if
there is an @instanceof attribute, then the object resource is used to
create an rdf:type, and if there is a @rel or @rev present it is used
to create a normal triple.

If a triple is created then our chaining kicks in, which means nothing
more than saying that the object resource becomes the new 'subject'
for any nested statements (i.e., it becomes the current resource for
the evaluation context).

My view is that this way of explaining it makes it much easier to
define chaining as simply being caused by @rel, @rev, and @instanceof.
In our previous explanations we had to say that it was @href,
@resource and @src that caused chaining...but additionally if none of
those attributes were present, then you still might get chaining if
@rel, @rev or @instanceof were present! A lot of if's and but's.

> Part 2, it currently says "If none of these are present then a unique identifier or [bnode] is
> created.". I think the 'unique identifier' should be ommitted; this could be interpreted as the
> creation of a URIRef with some sort of a unique URI (like a uuid urn). I think the idea here is
> to generate a [bnode], that is it. Also, it says "final value of the [current object resource] is an
> absolute URI," which is not strictly true: it is either a URIRef based on an absolute URI or a
> blank node.

Ok, I'll sort that out.

I was actually going to go the other way, though, and avoid mentioning
bnodes. All we're really concerned with is creating a unique
identifier, and we can then provide rules on how that should be done.
I added "[bnode]" at the last minute just so that you guys knew what
it was all about. :)

> Part 3, second entry, @instanceof _if value not empty_ (at least that was my proposal, I think
> we more or less agreed on that)

I don't recall a discussion on that, although I do remember you
raising the idea on the list. I'll try to find the thread when I work
on this tomorrow, but if you have a reference that would be

> _I am actually wondering whether the processing chapter should not be normative and most
> of the other chapters informative!_


> Missing (?)
> ===========
> - the previous draft included a number 'predefined' attribute names for metadata ('next',
> 'copyright', etc). Again, I am not sure this is an accepted resolution for the group, but my
> understanding was that those would be accepted by RDFa as if they were defined in the
> xhtml namespace. I think having those would make lots of sense

Yes, you're right. There are a couple of ways that this could be
handled, and I'll work on that.

> - I am not sure where we are with the rdf containers and collections. Is this still an open issue?
> I thought that what we have cleanly fit the rest of the processing model, so we could add it, too,
> somewhere.

I think they are easily introduced into the third processing step if
we decide that they should be in. I thought the status was that they
would be left until we have this version out of the way. In the
description I've tried to allow a little room for processors to do
more processing than is defined here, without being non-conformant.

Thanks again for turning your comments around so quickly Ivan...I'll
try to do the same with the next round.



  Mark Birbeck, formsPlayer

  mark.birbeck@formsPlayer.com | +44 (0) 20 7689 9232
  http://www.formsPlayer.com | http://internet-apps.blogspot.com

  standards. innovation.
Received on Wednesday, 5 September 2007 12:16:18 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:01:52 UTC