chaining-friendly rules for @instanceof

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.

==============================

THE RULES IF ALL ATTRIBUTES ARE PRESENT
---------------------------------------

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]
	OTHERWISE
	- the chaining bnode if there's @rel/@rev
	OTHERWISE
	- the value of an explicit @about if there is one
	OTHERWISE
	- 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

Received on Friday, 9 November 2007 03:03:19 UTC