Re: Yet another instanceof test

Hi Ivan,

I hope you had a good trip.

> I attach yet another test that I believe addresses an issue not covered
> by the others. We had a discussion at some point on the list, and got to
> an agreement, that an 'instanceof' placed on the <html> element would
> automatically generate a type for the whole document by virtue of the
> fact that there is an implicit @about="" on the <html>.

We actually agreed that @about="" should apply to <head>. Just to
re-emphasise the rationale, it's because we need to be careful that
certain constructs don't change the meaning of typical HTML mark-up.
For example:

  <html>
    <head instanceof="foaf:PersonalProfileDocument">
      <link rel="foaf:maker" ... />
      .
      .
      .

If the 'default @about' was placed on <html> then <head> would acquire
a bnode due to the presence of @instanceof, and the @rel would apply
to the bnode and not to the current document. However, since in HTML
this applies to the current document:

  <html>
    <head>
      <link rel="foaf:maker" ... />
      .
      .
      .

then I believe that the addition of @instanceof is merely adding a
statement, and not changing the subject of other statements. The only
way to achieve this is to put @about as 'close' as possible to those
statements, i.e., on <head>.

Of course this then means that we need a default for <body>, since
there would no longer be one on <html>, and there are a number of ways
to address that:

  * put @about on <html> as well;

  * put @about on <body>;

  * indicate that the contents of <head> are processed *before* the
contents of <body>
    and that <head> essentially sets the context for processing <body>.

My preferred approach is *both* the third one and second. :) I believe
that there are other reasons for defining the processing rules quite
precisely so that <head> is processed before <body>, which I won't go
into here since they are more for 'future work'. But also I think we
need to have @about on <body> for exactly the reasons we need it on
<head>, which is to stop the presence of @instanceof from unexpectedly
changing the subject for all child statements.

Regards,

Mark

-- 
  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 Monday, 29 October 2007 11:44:54 UTC