Re: Proposal for an additional 'link type' for rdf:type

Hi Ivan,

I'm not sure if I'm following you here, so my apologies.

Tthe only thing left to resolve on @instanceof is what should happen
if *both* @about and @resource are on the same element, along with
@instanceof. And even then, the only thing to resolve is whether
@instanceof takes its subject from @about or from @resource--the
behaviour of chaining is clearly defined, and unaffected.

So the question I believe I have stumbled upon is this; @instanceof
appearing on its own on an element will generate a bnode (that's
already agreed):

  <div instanceof="foaf:Person">
    ...
  </div>

yields:

  _:div1 a foaf:Person .

However, if we take that behaviour to <head>, and add in some other metadata:

  <head instanceof="foaf:PersonalProfileDocument">
    <link rel="foaf:maker" href="#me" />
  </head>

we get this:

  _:head1 a foaf:PersonalProfileDocument .
  _:head1 foaf:maker <#me> .

Now you could say that it's the author's own fault, but in keeping
with the idea of not 'messing with' the host language, I believe that
this is undesirable, and changes the behaviour of @rel in a way that
we should not be considering. Since we'd probably agree that it would
be better to generate this:

  <> a foaf:PersonalProfileDocument .
  <> foaf:maker <#me> .

I was simply suggesting that we take advantage of the fact that we
already say that there is an 'implied' @about="" on <head>, and that
what we needed to do was to draw that out a little more explicitly.

(To put it a different way, I think it's quite easy to present this as
*not* an exception; the rules for obtaining a 'unique element
identifier' already say that @about takes precedence, so we need to be
clear that this rule should include implied values for @about--such as
the one on <head>--as well as 'real' values. It's not really very
different to saying that there is a default attribute value in a
schema.)

If I've missed your disagreement then I apologise. :)

Regards,

Mark

On 01/10/2007, Ivan Herman <ivan@w3.org> wrote:
> (This is also an answer to Niklas' response and your response to Niklas'
> response...)
>
> I am still not convinced:-( And the for the same reasons as before: I
> would like to avoid the type of spaghetti specification that says: "this
> is the general rule, but with these and these values the behaviour is
> different...".
>
> However. Let us make one step back. AFAIK, the rules of @instanceof are
> still _not_ cast in concrete. There were several alternatives in the
> past but I have not seen any final resolution around those. I also
> remember that the issue of what would happen with
>
> <div instanceof="bla:bla">
>
> ie, when 'instanceof' was the only RDFa attribute. I know that the
> current rule are aimed at what you say, ie, a blank node is generated as
> a subject of instanceof and that should be chained down. But I also
> remember another line of thought by Ben who, essentially, said:
>
> [[[
> @instanceof applies to the subject for all the children (ie, no special
> treatment for @about, just as if @instanceof was part of a a child
> element), _except_ when @instanceof is the only element, in which case
> it applies to the [current element]
> ]]]
>
> another way of defining @instanceof would be something like
>
> [[[
> if the attributes @rel/@rev/@resources are present on the element, then
> @instanceof applies on [current object resource]; otherwise it applies
> on [current element]
> ]]]
>
> In both cases, your issue would become moot because, in both cases,
>
> <head instanceof="foaf:PersonalProfileDocument">
>
> would yield exactly what you need.
>
> Bottomline: I would propose to postpone this issue until @instanceof is
> 100% defined and cast into the syntax document. (My test cases might
> help.) We can come back to this later.
>
> Ivan
>
> Mark Birbeck wrote:
> > Hi Ivan,
> >
> > Thanks for forcing me to think it through more. :) I think that there
> > is probably a neat way to write this using current mark-up, although
> > working through it has highlighted something that I think we need to
> > clarify.
> >
> > Sticking purely with trying to make the rdf:type use-case easier
> > (i.e., rather than the general use of RDF/RDFS namespaces), there is
> > nothing to stop us doing this:
> >
> >   <html
> >    xmlns="http://www.w3.org/1999/xhtml"
> >    xmlns:foaf="http://xmlns.com/foaf/0.1/"
> >   >
> >     <head>
> >       <title>My profile</title>
> >       <link about="" instanceof="[foaf:PersonalProfileDocument]" />
> >     </head>
> >      .
> >      .
> >      .
> >   </html>
> >
> > It looks odd, since there is no @rel or @rev, but it is allowed by the
> > syntax. But once you go down that route, you might as well use the
> > following, which is also allowed by the syntax, and is probably much
> > clearer in terms of intent:
> >
> >   <html
> >    xmlns="http://www.w3.org/1999/xhtml"
> >    xmlns:foaf="http://xmlns.com/foaf/0.1/"
> >   >
> >     <head about="" instanceof="[foaf:PersonalProfileDocument]">
> >       <title>My profile</title>
> >     </head>
> >      .
> >      .
> >      .
> >   </html>
> >
> > Which brings us to the point that I think we need to clarify; what if
> > I wrote this:
> >
> >     <head instanceof="[foaf:PersonalProfileDocument]">
> >       <title>My profile</title>
> >       <meta property="dc:creator" content="John Doe" />
> >     </head>
> >
> > In our current rules this would generate a new bnode for <head>, and
> > the dc:creator property would apply to that, which I don't think is
> > desirable. But if we were to make it a little more explicit that the
> > 'identity' of <head> is the current document, unless overridden
> > *explicitly* by @about, then my rdf:type use-case falls out quite
> > neatly to the following mark-up:
> >
> >   <html
> >    xmlns="http://www.w3.org/1999/xhtml"
> >    xmlns:foaf="http://xmlns.com/foaf/0.1/"
> >   >
> >     <head instanceof="[foaf:PersonalProfileDocument]">
> >       <title>My profile</title>
> >     </head>
> >       .
> >       .
> >      .
> >   </html>
> >
> > I think that's actually quite clear from the point of view of what an
> > author is trying to do, and it has also exposed that we might need to
> > say a little more about what happens with the <head> element.
> >
> > What do you think?
> >
> > Regards,
> >
> > Mark
> >
> >
> >
> > On 01/10/2007, Ivan Herman <ivan@w3.org> wrote:
> >> Hm. You won't like me, but I am not sure I like it:-)
> >>
> >> Though is see the rationale, we create some sort of an odd case. At the
> >> moment the agreement is that a @rel value without a CURIE prefix is
> >> considered to be in
> >>
> >> http://www.w3.org/1999/xhtml/vocab#
> >>
> >> and that is it. This is a very clear and easy-to-follow rule. What you
> >> propose is that, well, this is true, _except_ for the value of
> >> instanceof that behaves differently. I am not sure it is good if we
> >> begin to introduce such exceptions.
> >>
> >> Or did I misunderstand you?
> >>
> >> A possible way out is to say that the 'rdf:' prefix (and probably the
> >> 'rdfs:' prefix) will always be added to the result of an RDFa processor
> >> with the usual values. This is not very nice either, but I would prefer
> >> to solve your problem that way...
> >>
> >>
> >> Ivan
> >>
> >> Mark Birbeck wrote:
> >>> Hello all,
> >>>
> >>> Whilst considering RDFa use in the wild, it occurred to me that
> >>> constructs like the following would almost certainly become quite
> >>> common:
> >>>
> >>>   <html
> >>>    xmlns="http://www.w3.org/1999/xhtml"
> >>>    xmlns:foaf="http://xmlns.com/foaf/0.1/"
> >>>    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> >>>   >
> >>>     <head>
> >>>       <title>My profile</title>
> >>>       <link rel="rdf:type" resource="[foaf:PersonalProfileDocument]" />
> >>>     </head>
> >>>     .
> >>>     .
> >>>     .
> >>>   </html>
> >>>
> >>> If the author wants to avoid having to include the RDF namespace, they
> >>> would have to change their mark-up to look something like this:
> >>>
> >>>   <html
> >>>    xmlns="http://www.w3.org/1999/xhtml"
> >>>    xmlns:foaf="http://xmlns.com/foaf/0.1/"
> >>>   >
> >>>     <head>
> >>>       <title>My profile</title>
> >>>     </head>
> >>>     <body about="" instanceof="foaf:PersonalProfileDocument">
> >>>       .
> >>>       .
> >>>       .
> >>>     </body>
> >>>   </html>
> >>>
> >>> However, if we added an additional link type, such as 'a' or
> >>> 'instanceof', we could also allow the following mark-up:
> >>>
> >>>   <html
> >>>    xmlns="http://www.w3.org/1999/xhtml"
> >>>    xmlns:foaf="http://xmlns.com/foaf/0.1/"
> >>>   >
> >>>     <head>
> >>>       <title>My profile</title>
> >>>       <link rel="instanceof" resource="[foaf:PersonalProfileDocument]" />
> >>>     </head>
> >>>     .
> >>>     .
> >>>     .
> >>>   </html>
> >>>
> >>> This avoids the need to declare the RDF namespace, and keeps the
> >>> metadata in the head of the document which seems more appropriate for
> >>> this particular kind of statement.
> >>>
> >>> Regards,
> >>>
> >>> Mark
> >>>
> >>>
> >> --
> >>
> >> 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
> >>
> >>
> >
> >
>
> --
>
> 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
>
>


-- 
  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, 1 October 2007 13:39:27 UTC