Re: PROPOSAL to close ISSUE-37: Clarifying bnode explanation

Sigh. I have a feeling of deja vu, and we seem to repeat the same arguments. 

The document says:

<link about="_:john" rel="foaf:mbox" href="" />
<link about="_:sue"  rel="foaf:mbox" href="" />
<link about="_:john" rel="foaf:knows" resource="_:sue" />

In the above fragment, two bnodes are explicitly created as the subject of triples. Those bnodes are then referenced to demonstrate the relationship between the parties. After processing, the following triples will be generated:

_:john foaf:mbox <> .
_:sue foaf:mbox <> .
_:john foaf:knows _:sue .

Ie, the text says "the following triples will be generated". This statement is purely and simply wrong. The generated triples are a serialized version of the triples and by saying 'will be generated' and using the same identifiers, a casual reader may deduce that the identifiers are the same as in the original RDFa source. It also suggests that 

_:x foaf:mbox <> .
_:y foaf:mbox <> .
_:x foaf:knows _:y .

is wrong.  

While this may not be very important for RDFa Core, because people do not necessarily care about the generated turtle or RDF/XML code which is usually brought into an RDF system, but if this perception is taken over to the RDFa API then we may have real problems.

I do not care about a slight inconsistency in the document if such false impression are given by the current document. 


On Oct 19, 2010, at 09:35 , Mark Birbeck wrote:

> Hi Ivan,
> On Tue, Oct 19, 2010 at 11:41 AM, Ivan Herman <> wrote:
>> On Oct 19, 2010, at 08:00 , Mark Birbeck wrote:
>>> Hi Ivan,
>>> But at the telecon we agreed not to change the examples.
>> I have not seen minutes.
>>> Obviously I'll wait to see what this wording is, but based on previous
>>> discussions my argument was that the bnode identifiers in the prose
>>> and the serialisation needed to be consistent.
>> I am sorry, I strongly disagree with that. The current text is misleading for the casual reader of our spec (who will strongly rely on the examples) and giving a wrong impression via examples is a source of trouble. I do not see any consistency issue here, and even if there was, I would disagree with that argument.
>> _Something_ should be said in the examples that people should not rely on the bnode identifiers. I fully trust Shane to find the best editorial approach. But the current text is not acceptable in my view.
> But what does it mean to "rely on bnode identifiers"?
> How do you get a bnode identifier? How do you manipulate them?
> It's like saying that JavaScript programmers shouldn't rely on
> variable names; yes of course you can tell the novice programmer that
> variable names can change without affecting functionality. But don't
> whatever you do create sample code where the variable name changes in
> the middle of an example.
> The corollary for RDFa is that if we begin an example like this:
>  <div about="_:ivan" ...
> then when we talk about the triples generated by that example we
> *must* use _:ivan in our explanations.
> This says nothing about the triple-store, or the implementation
> specifics about bnodes, because we're just using bnode identifiers,
> and they are simply placeholders.
> I've explained elsewhere on the list that if you don't retain
> consistency then it's like starting a JavaScript tutorial on addition
> like this:
>  var a = 10;
> before going on to say that we can add 10 to this variable, like this:
>  b = b + 10;
> Why did we change the name of the variable in mid-example? Apparently
> because we didn't want readers to have the false impression that all
> variables have to be called 'a'. :)
> (Note that all of this is separate from our other discussion about
> what _:ivan generates internally in the graph.)
> Regards,
> Mark

Ivan Herman, W3C Semantic Web Activity Lead
mobile: +31-641044153
PGP Key:

Received on Tuesday, 19 October 2010 16:26:42 UTC