W3C home > Mailing lists > Public > w3c-rdfcore-wg@w3.org > March 2003

Re: LC Issue hendler-01 (substantive) discussion

From: Graham Klyne <GK@NineByNine.org>
Date: Mon, 10 Mar 2003 20:06:56 +0000
Message-Id: <5.1.0.14.2.20030310195317.01e9f178@127.0.0.1>
To: Dave Beckett <dave.beckett@bristol.ac.uk>, RDF Core <w3c-rdfcore-wg@w3.org>

I'm inclined to agree, and part of my reason is that by trying to fix just 
this problem I think we might miss a bigger opportunity.

What follows is NOT a proposal, but an explanation of the above comment.

Note that the formal semantics is now clear that all literal values can 
also be resources (i.e. are in IR).  If we had a syntactic form that 
described a resource with the same value as a given literal, it would 
provide a solution to both this problem and the literals-as-subjects problem.

E.g.

     <rdf:LiteralValue [rdf:datatype='...'] 
[xml:lang='...']>literalText</rdf:Literal>

would be an alternative form of the production that includes 
<rdf:Description ...> and typed elements.  (The choice of name is just an 
illustration.)  (Note there is no provision for indicating a URI -- maybe 
there should be.)

A variant of this might be to define a new property which identifies its 
subject with its object; e.g. rdf:sameAs.  Then one could write:

     <rdf:Description><rdf:sameAs>literalText</rdf:sameAs></rdf:Description>
or
     <rdf:Description rdf:sameAs='literalText' />

This requires no change to the syntax, just a new vocabulary element with 
predefined semantics.

I think I've illustrated there may be enough ways to solve this problem, 
and some others, that it is probably best deferred to a new working group 
with more time to consider the options here.  And, as Dave says, the 
current shortcoming is an inconvenience rather than an unavoidable shortcoming.

#g
--

At 13:17 10/03/2003 +0000, Dave Beckett wrote:


>Proposal to close hendler-01
>   http://www.w3.org/2001/sw/RDFCore/20030123-issues/#hendler-01
>
>Summary: rejected
>
>   This request would require substantial changes to the RDF/XML
>   grammar, make it more complex, introduce further tricky
>   implementation work and require another last call WD.  The
>   resulting RDF graph can be generated from the existing RDF/XML
>   albeit in a long form.
>
>
>NOTE * * * This is not yet a response to the issue raiser  * * *
>
>Rationale [LONG - with examples]
>
>This request would require a substantial change to the RDF/XML
>syntax, so that
>    http://www.w3.org/TR/rdf-syntax-grammar/#parseTypeCollectionPropertyElt
>would allow not only a list of node elements, but a list
>of what would might be called 'literal node elements'.
>
>This change would require another last call WD.
>
>
>Grammar Change Choices
>
>1. The grammar would be changed to:
>
>   start-element(URI == propertyElementURIs ),
>       attributes == set(idAttr?, parseCollection))
>   (nodeElementList | literalNodeElementList)
>   end-element()
>
>and new grammar productions
>   literalNodeElementList ::= literalNodeElement*
>
>   literalNode ::= start-element(URI == ???,
>                                 attributes == set(datatypeAttr?, 
> parseLiteral?))
>                     literal
>                   end-element()
>
>The latter would need new careful rules to handle both datatypes and
>parseType="Literal" forms (or the latter could be ruled out).
>
>This would mean inventing a new rdf term for ??? that would allow
>literals to be used where nodes were expected.  I will use rdf:abc
>for this example rather than pick one.
>
>2. Alternatively only http://www.w3.org/TR/rdf-syntax-grammar/#nodeElement
>could be changed to be handle the functionality above, but it is one of
>the most complex parts of the grammar and it would be difficult.
>
>   Aside: If nodeElement was changed in this way, it *would* also
>   allow literals to be given as subjects of triples. However this is a
>   postponed RDF Core Issue:
>     http://www.w3.org/2000/03/rdf-tracking/#rdfms-literalsubjects
>   and if this choice was made, there would be temptation to
>   change all the other working drafts in order to allow it in the
>   semantics and abstract syntax, explain in the primer, etc.
>
>Examples of this new syntax
>
>So given rdf:abc and either of the above choices, you could then use:
>
>   <rdf:Description rdf:about="http://example.org/node">
>     <ex:propertyElement rdf:parseType="Collection">
>       <rdf:abc>a</rdf:abc>
>       <rdf:abc>b</rdf:abc>
>     </ex:propertyElement>
>   </rdf:Description>
>
>giving N-Triples:
>
><http://example.org/node> <http://www.example.org/ns#propertyElement> 
>_:genid1 .
>_:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
><http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
>_:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "a" .
>_:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:genid2 .
>_:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
><http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
>_:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "b" .
>_:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> 
><http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
>
>and all the usual literal datatypes
>
>   <rdf:Description rdf:about="http://example.org/node">
>     <ex:propertyElement rdf:parseType="Collection">
>       <rdf:abc rdf:parseType="Literal"><a:b 
> xmlns:a="http://example.org/a">Some XML</a:b></rdf:abc>
>       <rdf:abc rdf:datatype="&xsd;decimal">10</rdf:abc>
>       <rdf:abc xml:lang="fr">chat</rdf:abc>
>     </ex:propertyElement>
>   </rdf:Description>
>
>giving N-Triples
><http://example.org/node> <http://www.example.org/ns#propertyElement> 
>_:genid1 .
>_:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
><http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
>_:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "<a:b 
>xmlns:a="http://example.org/a">Some 
>XML</a:b>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> .
>_:genid1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:genid2 .
>_:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
><http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
>_:genid2 
><http://www.w3.org/1999/02/22-rdf-syntax-ns#first> 
>"10"^^<http://www.w3.org/2000/10/XMLSchema#decimal> .
>_:genid2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:genid3 .
>_:genid3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
><http://www.w3.org/1999/02/22-rdf-syntax-ns#List> .
>_:genid3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "chat"@fr .
>_:genid3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> 
><http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
>
>
>Working with the Existing RDF/XML
>
>All the triples given above can be generated from the existing
>grammar, with the triples written out in long form.  This would be
>true for all potential mappings and although inconvenient for
>hand-writing, would be possible.
>
>The first set of triples written out in longhand RDF/XML
>
><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>          xmlns:ex="http://www.example.org/ns#" >
>   <rdf:Description rdf:about="http://example.org/node">
>     <ex:propertyElement rdf:nodeID="genid1" />
>   </rdf:Description>
>
>   <rdf:Description rdf:nodeID="genid1">
>     <rdf:type 
> rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List" />
>     <rdf:rest rdf:nodeID="genid2" />
>     <rdf:first>a</rdf:first>
>   </rdf:Description>
>
>   <rdf:Description rdf:nodeID="genid2">
>     <rdf:type 
> rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List" />
>     <rdf:rest 
> rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" />
>     <rdf:first>b</rdf:first>
>   </rdf:Description>
></rdf:RDF>
>
>The second set:
>
><?xml version='1.0' encoding='utf8'?>
><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>          xmlns:ex="http://www.example.org/ns#" >
>   <rdf:Description rdf:about="http://example.org/node">
>     <ex:propertyElement rdf:nodeID="genid1" />
>   </rdf:Description>
>
>   <rdf:Description rdf:nodeID="genid3">
>     <rdf:type 
> rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List" />
>     <rdf:rest 
> rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" />
>     <rdf:first xml:lang="fr">chat</rdf:first>
>   </rdf:Description>
>
>   <rdf:Description rdf:nodeID="genid1">
>     <rdf:type 
> rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List" />
>     <rdf:rest rdf:nodeID="genid2" />
>     <rdf:first rdf:parseType="Literal"><a:b 
> xmlns:a="http://example.org/a">Some XML</a:b></rdf:first>
>   </rdf:Description>
>
>   <rdf:Description rdf:nodeID="genid2">
>     <rdf:type 
> rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List" />
>     <rdf:rest rdf:nodeID="genid3" />
>     <rdf:first 
> rdf:datatype="http://www.w3.org/2000/10/XMLSchema#decimal">10</rdf:first>
>   </rdf:Description>
>
></rdf:RDF>
>
>
>Both of the latter two rdf/xml examples are legal and work in parsers
>conformant with the Jan 23 2003 drafts.
>
>
>Summary of adding this form:
>
>Pros (changing to add this new form)
>   Adds a shorthand for a triples form that Hendler and Webont call
>     "very important" (Hendler)
>     -- 
> http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0322.html
>     and "prefered .. to be allowed" ,"would permit some constructs in
>         OWL that are difficult under the current design." (WebOnt)
>     -- 
> http://lists.w3.org/Archives/Public/www-rdf-comments/2003JanMar/0335.html
>   With grammar choice 2, allows a way to do literal triple subjects.
>   Using the current RDF/XML is very long and "extremely ugly" (Hendler)
>
>Cons (not changing)
>   Is creating another new piece of RDF/XML syntax.
>   Requires a new last call RDF/XML syntax WD.
>   Tricky grammar choices and changes, wordings.
>   New implementation burden.
>   Adds yet another alternate way to use RDF/XML - already too many options.
>   Requires new description in RDF/XML syntax section 2 and in the RDF primer.
>   With grammar choice 2, would tempt changes to be made to most all other 
> WDs.
>
>---
>
>My personal summary is: sorry, too late for such a large change.
>
>Dave

-------------------
Graham Klyne
<GK@NineByNine.org>
PGP: 0FAA 69FF C083 000B A2E9  A131 01B9 1C7A DBCA CB5E
Received on Tuesday, 11 March 2003 04:55:03 EST

This archive was generated by hypermail pre-2.1.9 : Wednesday, 3 September 2003 09:56:11 EDT