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

Re: chaining-friendly rules for @instanceof

From: Ivan Herman <ivan@w3.org>
Date: Fri, 09 Nov 2007 11:19:57 +0100
Message-ID: <4734344D.6040300@w3.org>
To: Ben Adida <ben@adida.net>
Cc: RDFa <public-rdf-in-xhtml-tf@w3.org>
Hi Ben,

_yes_, this is more or less the way I thought back when I made my last
implementation round on the matter...

I checked the processing step in the current document, and my feeling is
that it is very simple to modify them to fit your description. Indeed:

- The section on [current element indentifier] should be removed from #2
- After entry #4 we can say something:

The [current element identifier] is set as follows: if @about is
present, then [current element identifier] = @about; otherwise, it will
be set to [current object resource].

(note that a Bnode is generated for [current object resource] even if
@href/@resource etc are not present, and this is exactly what we want!)

- Then entry #5 comes into the picture.

Well...:-( it is not yet 100% complete, though. At present, #5 of the
processing steps say that chaining will occur if any triples are
generated via step #5. And chaining is defined as substituting the
[current resource] by [current object resource] before recursion. What
this means is that

<el about="#bla" instanceof="blabla">

1. Will generate a bnode for [current object resource]
2. Will generate a <#bla> a <blabla> triplet (which is fine!)
3. Will chain with the bnode defined for [current object resource]!

And I do not think step #3 is right.

A way of avoiding that in the processing rules is to say in #5

"If any triples are generated and @about is not present then the
[chaining] flag is set to true"

Indeed the value of [chaining] flag has already been set to true or
false if, eg, there was a @resource; this remark will take care of the
corner case of:

<el instanceof="blabla">

How does that sound?

We may have this issue closed. Time for planning for a LC Working Draft?:-)


Ben Adida wrote:
> Hi all,
> Manu wanted me to express my proposed @instanceof rules in a way similar
> to what he recently posted [1], so that we could compare.
> The main driver for my rules is to make it easy for @instanceof to be
> used on chaining nodes, so that one can say "I know a person named
> 'Ralph'", or even the more complicated "I know a person who knows a
> person who knows a person named 'Bill'".
> The result is something a tad more complicated than Manu's rules, but
> fairly consistent and able to express the important use case above.
> Here's the rule summary.
> ==============================
> ---------------------------------------
> On an element, processing proceeds as follows:
> 1) @about		[set the subject]
> 2) @rel 		[set one or more predicates]
> 3) @rev			[set one or more reverse predicates]
> 4) @property 		[set one or more literal-object predicates]
> 5) @resource/@href/@src	[set object for @rel, subj for @rev]
> 6) @content		[set object for @property]
> 7) @datatype		[set datatype of object for @property]
> 8) The URI object becomes the CHAINING NODE, which becomes the inherited
> subject for all contained elements.
> 9) @instanceof		[sets the type of the CHAINING NODE]
> Of course, the above rules, just like Manu's, describe only the parsing
> when all attributes are there. For example, in Manu's case, the rules
> have to be tweaked to consider the
> <img src="photo.jpg" instanceof="foaf:Image" />
> markup, since @instanceof is processed before @src.
> So, for clarity, let me propose a different take on my rules that
> attempts to cover more markup, not just the all-attributes example. This
> is a bit more complicated, but I think any attempt to write up complete
> parsing rules for @instanceof will be about as complicated.
> On element <EL>:
> A) Process RDFa attributes (@about, @rel, @rev, @property, @content,
> @datatype, @href, @resource) on <EL> as if there were no @instanceof.
> B) Determine the RDF identity of the element:
> 	- the URI object if it's there [@resource/@href/@src]
> 	- the chaining bnode if there's @rel/@rev
> 	- the value of an explicit @about if there is one
> 	- a new bnode.
> C) @instanceof applies to the RDF identity of the element it's on, and
> causes chaining on that RDF identity if it hasn't been triggered yet.
> ==============================
> -Ben
> [1] http://lists.w3.org/Archives/Public/public-rdf-in-xhtml-tf/2007Nov/0001


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

Received on Friday, 9 November 2007 10:19:58 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:50:25 UTC