Re: The implied @about="": Explanation and some problems

Hi Toby,

> I understand why there is an implied @about, but I don't think your
> message addresses the question of why the implied @about is on <head>
> and <body>. Why is it not on <html>?

Ah, yes...and that was the original question.

There are a couple of reasons that I thought it was best to add
separate rules for both <head> and <body>, and they relate to the
document/information resource issue. (As you'll see below, I don't
claim these ideas are correct, just that they informed my thinking.)

The first one is that I felt at some point we were going to have to
say that <head> is processed *before* <body>. I did actually have this
in a late draft of the spec, but got voted down. :) But some of the
discussions we are now having about loading external profiles of
CURIEs, and things like that will, in my view, require us to somehow
get the external data loaded before proceeding with a parse of <body>.
Once <body> starts to be parsed I feel that the initial subject for
<body> should be reset, regardless of what happened in the <head>, so
I thought that having its own separate rule was probably best.

This processing model hints at the fact the <head> section relates to
information about the HTML document 'as a graph', whilst the <body>
section relates to information about the 'object implied by the
document', which I'll look at a bit more, below.

The second reason was that I had an idea that we might at some point
make the implied default for the <head> and the <body> different to
each other. Continuing this idea of treating the HTML document as the
graph document, and the content of the body as the 'implied object',
then far more useful implied @about values than the ones we have now,
would be these:

  <html>
    <head about="">
      ...
    </head>
    <body about="#">
      ...
    </body>
  </html>

This simple tweak of giving <head> and <body> different default URLs
would go a long way towards addressing the information
resource/document question that often rears its head in RDF, and it
would require no extra work from authors. For example, we could have a
publisher of the graph (i.e., the web page) and a separate publisher
of the item referred to (a book):

  <html>
    <head>
      <meta property="dct:publisher" "content="Amazon.com" />
    </head>
    <body typeof="[book:Book]>
      Published by: <span property="dct:publisher">Bantam Dell
Publishing Group</span>
    </body>
  </html>

Similarly, we could have the title of the web-page (perhaps a news
page) and the title of the article.

One interesting thing here is that it actually provides a way to
explain the information resource issue; in current terminology you
just wouldn't bother trying to make the distinction between documents
and things on the broader web. But *within* the HTML document it
becomes quite clear; this section (head) is metadata about the
document, and this section (body) is the metadata that you want the
document to contain.

Anyway, I'm not necessarily saying all of these ideas are right, or
that we should do them. But it hopefully provides some context as to
what I was thinking of when I put the 'default subject' stuff on both
<head> and <body>.


>> And if so, we should probably try to find out if anyone is actually
>> producing documents with @typeof on <body> or <head>, and if they are,
>> what's the effect they are trying to achieve.
>
> I used @typeof on <body> just yesterday!
>
>        http://purl.org/NET/book/vocab
>
> Though this is with an explicit @about which is different to the
> document's base URI.

I agree. I see lots of use-cases for that kind of construct, where
@about is explicit.

In this case you are saying 'this is the identifier of the ontology,
no matter where you find the containing document'. A few weeks ago I
did exactly the same as you, with a minor variation; since I was
producing a number of related ontologies at the same time, I decided
to use the following pattern:

  <html
   xmlns="http://www.w3.org/1999/xhtml"
   [lots of namespaces]
   xmlns:this="http://purl.oclc.org/argot/Research"
  >
    ...
    <body about="[this:]" typeof="owl:Ontology">
      ...
    </body>
  </html>

It meant that I could create a whole load of common/template mark-up
that I could use in each ontology, and all I had to do was change
[this:] in each specific document, to refer to the ontology.

Regards,

Mark

-- 
Mark Birbeck, webBackplane

mark.birbeck@webBackplane.com

http://webBackplane.com/mark-birbeck

webBackplane is a trading name of Backplane Ltd. (company number
05972288, registered office: 2nd Floor, 69/85 Tabernacle Street,
London, EC2A 4RR)

Received on Wednesday, 1 April 2009 11:45:44 UTC