W3C home > Mailing lists > Public > public-rdfa-wg@w3.org > April 2012

RE: Updated RDFa 1.1 Core editor's draft

From: Grant Robertson <grantsr@gmail.com>
Date: Sat, 7 Apr 2012 15:25:36 -0700
To: <public-rdfa-wg@w3.org>
Message-ID: <7AB0BEA6C16E4240B3DDEEFEFB153EE4@grantdesk>
The scope of this discussion is the RDFa Core 1.1 Editor's Draft (at
http://www.w3.org/2010/02/rdfa/sources/rdfa-core/Overview-src.html), Section
7.5, Steps 5 & 6. 

Because [typed resource] is only a concern when @typeof exists, for the
purposes of this discussion, assume @typeof exists in the element currently
being processed.

For the purposes of this discussion I want to make the following

base (without brackets) is the IRI of the document containing the markup
being processed.
<base> is the element that can set a default value to be used instead of
*<base> is that value that is specified in <base>.
[base] is a variable within processing software. 
*[base] is the value of [base].

Curly braces mean the item inside exists within the current scope of
discussion. For instance, {@about} means the @about attribute is present
within the element being processed.

So, within our processing software...

If {<base>} then [base] = *<base>  else  [base] = base

(I know, saying it out loud sounds ludicrous. It violates all rules of good
technical writing. But it is concise in plain text and appropriate for this

Additionally, when I say something "can be set to [base]" what I really mean
is that it is possible for the processor to arrive at a step wherein the
processor would possibly set a variable to the value the processor has
stored in [base]. This is different from merely allowing a specific string
of text (the IRI of the document) as an allowed value for a particular
variable, [base]. In the context of the specification document: when I say
something "can be set to *[base]" it means that the algorithm logic can
arrive at the statement in the specification that says, "if the element is
the root element of the document, then act as if there is an empty @about
present, and process it according to the rule for @about, above;" because
the end result of that statement is that the variable in question gets set
to *[base].

(Personally, I think that statement is excessively wordy and indirect. I
think it that, once it has been established that [base] == (base or *<base>)
then you can just go straight to saying, "if in <root> then use *[base]"
which is far more direct and compact.)

So, now to my discussion:

I am concerned that there is still a difference between the results of Step
5.1 and the results of Step 6 as far as the the possibility of assigning
*[base] to [typed resorce] or [current object resource], in the narrow
situation wherein @typeof exists in the root element.

In Step 5.1, in the first half, the statement in question (the "if element
is the root element..." statement) is directly under and therefore grouped
together WITH the @about statement. It is essentially treated as an
alternate means to set the value of *@about. This exact sequence of these
two statements is repeated in the second half of Step 5.1. This latter means
it is possible to reach the "if element is the root element..." statement
when setting the value of [typed resource]. In other words [typed resource]
could be set to *[base]. 

In Step 5.2, although separated in the text of the draft specification, the
statements setting [new subject] to *@about or *[base] still come BEFORE the
statement setting [typed resource] = [new subject]. Therefore it is still
possible for [typed resrouce] to be set to *[base]. 

However, in Step 6, [typed resource] is set to [new subject] DIRECTLY AFTER
the statement setting [new subject] = *@about. Only AFTER that do we reach
the "if element is the root element..." statement. This means that, in Step
6, there is no possibility for [typed resource] to be set to *[base]. 

Now, I realize that this slight difference is entirely moot unless we are in
the root element of the document. However, unless this behavior was the
intention of the Working Group then I propose the following change to the
draft specification:

In the first half of Step 6, move the "if the element is the root element
..." statement up two lines so that it is right after the "by using the
resource from @about ..." statement and right BEFORE the "if the @typeof
attribute is present, set typed resource to new subject" statement.

This will cause the behavior of when [typed resource] is set to *[base] to
be equivalent across the board.

Grant S. Robertson

> -----Original Message-----
> From: Ivan Herman [mailto:ivan@w3.org] 

> > C.2.c) Also, - when in "Special Property Mode" - it is now possible 
> > for [typed resource] to be set to [base], which is impossible in 
> > "{@rel | @rev} Mode." Is this the intention? What would be 
> the purpose of this difference?
> > 
> I am not sure what you mean. In both cases the value of 
> @about is done through the CURIE and IRI processing, which 
> may include base
Received on Saturday, 7 April 2012 22:26:02 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:19:56 UTC