W3C home > Mailing lists > Public > www-tag@w3.org > November 2002

Re: Another RDDL/RDF proposal

From: Dave Beckett <dave.beckett@bristol.ac.uk>
Date: Tue, 12 Nov 2002 21:07:37 +0000
To: Paul Prescod <paul@prescod.net>
cc: Tim Bray <tbray@textuality.com>, WWW-Tag <www-tag@w3.org>
Message-ID: <27180.1037135257@hoth.ilrt.bris.ac.uk>

More RDF/XML explanations and primer for Paul below... sorry ...

>>>Paul Prescod said:
> Tim Bray wrote:
> >...
> > 
> > The notion that you limit a RDDL to apply to one and only one namespace 
> > seems like a totally artificial limitation that buys nothing and 
> > eliminates interesting possibilities.
> In the end, this is easy to achieve if the namespace is the referent of 
> the rdf:about.
> >...
> > Aahhh... the RDF tax strikes again.  I want to do something that is 
> > obvious and straightforward and implicit in the resource/representation 
> > relationship, and using RDF is going to cost me oceans of arcane totally 
> > human-opaque syntax.
> Every level of abstraction is going to have _some_ tax unless you do it 
> totally out-of-line. It's one thing when the RDF tax is just extra 
> syntax but in this case we're talking about being explicit in order to 
> _get the benefits_ of RDF.
> >...
> > A machine is entirely capable of detecting the condition that some 
> > assertions are contained in the representation of a resource and 
> > inferring the fact that the assertions are related to the resource.  It 
> > should not be necessary to duplicate the assertion of this 
> > machine-detectable relationship. -Tim
> Machines are not intelligent. They detect things only when they are told 
> to. I am suggesting to use standard RDF technique so that the programmer 
> does not have to hack around the natural behaviour of the RDF processor.

Seems fine so far

> Please consider this alternative, which I think has the following virtues:
>   * fewer elements in RDF namespace
>   * more explicit about what resources are being related,
>   * no contradiction problems (scope of nature/purpose declarations are 
> clear and correct)
>   * naturally permits multiple namespace declarations from the same RDDL
>   * permits these multiple declarations to share as much or as little as 
> they like.
>   * naturally permits the addition of non-resource annotations on the 
> namespace (like who owns it, what its usage policies are, etc.)
>   * naturally permits the same markup to live in documents that are NOT 
> served from namespace URIs
> The only down-side I see is that it probably forces you to move the 
> hacky HTML paragraph-elements further away from the RDF, because of 
> RDF's problem with mixed content. :(

It's downside is that it (your example below) isn't RDF/XML, but some
other thing, since it doesn't match the grammar.  That's fine as an

And please, stick to RDF/XML when talking about the XML syntax
and RDF when talking about the graph.  It is slippery enough trying
to follow this.

"RDF[/XML]'s problem with mixed content" again with no explanation of
the problem.  You can have mixed content in RDF/XML, I've said that
several times.  Your seem to be the one with the problem about that.

To make this clear to you, I'll give you a pointer to the
specification and given an example of how to use it.

Here is a pointer to how to put XML content at end of an RDF property arc: 
(it happens not to be mixed content in the example there; it could
easily have been, I could change it).  So mixed content could be:

<ex:prop rdf:parseType="Literal"
             xmlns:a="http://example.org/a#">some stuff here
    <a:Box required="true">
    blah blah <a:widget size="10" /> 
    this is mixed content yes?
  <a:grommit id="23" />

It may not (likely not) meet your definition of "easy", but there it
is, mixed.

The RDF/XML grammar defines it that way too:

  Production literal

  Any XML element content that is allowed according to [XML] definition
  Content of Elements Rule [43] content. in section 3.1 Start-Tags,
  End-Tags, and Empty-Element Tags 

  -- http://www.w3.org/TR/rdf-syntax-grammar/#literal

The example RELAXNG grammar might make that crystal clear:

  parseTypeLiteralPropertyElt = ...
    element * - ( ... lots of stuff elided here ... ) {
       idAttr?, parseLiteral, literal

  literal = any
  any = mixed { element * { attribute * { text }*, any }* }

  -- http://www.w3.org/TR/rdf-syntax-grammar/#section-RELAXNG-Schema

That should answer any problem of how to find where it is defined,
and how to do it.  You can go "yuck" and that's all I can do for you.

> =====
> <html   xmlns:rddl="http://www.rddl.org/"
>          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
> <head>
> <title>RDDL Description for http://example.org/L</title></head>
> <body>
> <h1>RDDL Description for http://example.org/L</h1>
> <p>This document describes the "L" namespace and provides links to 
> related resources</p>
> <!-- FIRST namespace -->
> <rddl:Namespace rdf:about="http://www.prescod.net/sometargetns#">
>     <rddl:title>My namespace</rddl:title>
>     <dc:author>Paul Prescod</dc:author>
>     <rddl:related>
>         <rddl:Resource rdf:ID="dtd" rddl:title="DTD">
>            <rddl:prose>A DTD for the L language.</rddl:prose>
>            <rddl:href rdf:resource="http://example.org/schemas/L.dtd"/>
>            <rddl:nature
> rdf:resource="http://www.isi.edu/in-notes/iana/assignments/media-types/applic
>            <rddl:purpose
>   rdf:resource="http://www.rddl.org/purposes#validation"/>
>         </rddl:Resource>
>     </rddl:related>
>     <rddl:related>
>         <rddl:Resource rdf:ID="relaxng" rddl:title="Relax NG">
>             <rddl:prose>A Relax NG Schema for the L
>   language.</rddl:prose>
>            <rddl:href rdf:resource="http://example.org/schemas/L.rng"/>
>            <rddl:nature rdf:resource="http://relaxng.org/ns/structure/1.0"/>
>            <rddl:purpose
>                  rdf:resource="http://www.rddl.org/purposes#validation"/>
>         </rddl:Resource>
>      </rddl:related>
>      <rddl:related>
>        <rddl:Resource rdf:ID="xhtml" rddl:title="User Documentation">
>             <rddl:prose>Reference documentation for L, in 
> XHTML.</rddl:prose>
>            <rddl:href
>   rdf:resource="http://example.org/schemas/L.html"/>
>            <rddl:nature rdf:resource="http://www.w3.org/1999/xhtml"/>
>            <rddl:purpose 
> rdf:resource="http://www.rddl.org/purposes#reference"/>
>         </rddl:Resource>
>     </rddl:related>
> </rddl:namespace>
>   <!-- SECOND namespace -->
> <rddl:namespace rdf:about="http:/.../second-namespace">
>     <rddl:related rdf:resource="#dtd"/>
>     <rddl:related rdf:resource="#relaxng"/>
>     <rddl:related>
>        <rddl:Resource rddl:title="User Documentation"> 
> <rddl:prose>Reference documentation for L2, in XHTML.</rddl:prose>
>            <rddl:href rdf:resource="http://example.org/schemas/L.html"/>
>                <rddl:nature rdf:resource="http://www.w3.org/1999/xhtml"/>
>                <rddl:purpose 
> rdf:resource="http://www.rddl.org/purposes#reference"/>
>        </rddl:Resource>
> </rddl:namespace>
>   </html>
> Repeating rddl:related is kind of annoying (though your version did that 
> also). Why can't the RDF grammar just allow multiple descriptions per 
> property. Are we afraid that they would be interpreted as a formal 
> collection or something?

Because an RDF graph is made of triples made of three things
   resource node -> predicate arc ->  object node

not four - "multiple descriptions per property" as you ask:
   resource node -> predicate arc -> object node1 , object node2???

nothing to do with collections.

> Also, a purist might argue that the whole thing should be wrapped in 
> rdf:RDF, but I would say that rdf:about should be a sufficient RDF 
> processing trigger across all RDF embedded in other vocabularies.

A purist!?  Ha ha ha.

That's like asking an "XML purist" to allow an XML document with two
root elements; it just doesn't match the grammar and model.

RDF/XML defines when the root element must be rdf:RDF. See the spec
for details at http://www.w3.org/TR/rdf-syntax-grammar/#start

If you wanted to define a different language that mapped XML
elements, attribute and stuff to/from RDF triples, I've already said
I'm interested in that.  Especially where it has minimal or no impact
on the XML users.

> Add those to the list of things to fix in RDF/XML.

Like adding yet more alternative grammar forms to this?  That's a
crazy way to proceed, given your problems with where this is already.

Received on Tuesday, 12 November 2002 16:14:21 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:55:55 UTC