Issue http://www.w3.org/2000/03/rdf-tracking/#rdfms-aboutEach-on-object

Issue Summary
=============

The grammar of RDF M&S permits the use of aboutEach to distribute a
property over multiple objects. It is not clear how parsers should handle
this or if it should even be allowed. Using the example at
http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-aboutEach-on-object/test1.rdf

<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:DC="http://purl.org/metadata/dublin_core/">
 <Bag ID="pages">
   <li resource="http://foo.org/foo.html" />
   <li resource="http://bar.org/bar.html" />
 </Bag>
 <Description about="URL1">
   <DC:Prop>
     <Description aboutEach="#pages">
       <DC:Creator>Ora Lassila</DC:Creator>
     </Description>
   </DC:Prop>
  </Description>
</RDF>

SiRPAC generates:

<online:pages> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <
http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag> .
<online:pages> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1> <
http://foo.org/foo.html> .
<online:pages> <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2> <
http://bar.org/bar.html> .
<http://foo.org/foo.html> <http://purl.org/metadata/dublin_core/Creator>
"Ora Lassila" .
<http://bar.org/bar.html> <http://purl.org/metadata/dublin_core/Creator>
"Ora Lassila" .

... (where did the DC:Prop go? try replacing the string "DC:Prop" with
"blah" and you'll get the same triples)... and this isn't the only parser
interpretation. [1]

In RDF M&S, aboutEach was intended for use on a top level description only
(a subject), not on the object of a statement. [2] However, it has been
suggested that there may be value in using aboutEach to distribute over
both subjects and objects, [3] though it is doubtful this practice is in
widespread use (someone let me know if this is incorrect). Regardless, it
is clear that there is confusion over what parsers should generate if it is
allowed.

Resolution Options
================

Note that this issue may be effected by the resolution of
http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteach

Options for resolving this are:

- Allow aboutEach on the object of a statement and clarify in the spec what
a parser should generate.
- Disallow aboutEach on the object of a statement by stating in RDF M&S
that aboutEach is restricted to top level rdf:Description nodes.

Disallowing at minimum means clarifying Section 3.3 of the M&S. The grammar
changes  and additions (is this required?) would look something like:

  [6.2] obj            ::= descriptionWithAboutEach | description |
container
  [6.3] description    ::= '<rdf:Description' idAboutAttr? bagIdAttr?
propAttr* '/>'
                         | '<rdf:Description' idAboutAttr? bagIdAttr?
propAttr* '>'
                                propertyElt* '</rdf:Description>'
                         | typedNode
  [6.5] idAboutAttr    ::= idAttr | aboutAttr
  [6.17] value          ::= description | container | string

  [6.X] descriptionWithAboutEach    ::= '<rdf:Description'
idAboutAttrWithAboutEach? bagIdAttr? propAttr* '/>'
                         | '<rdf:Description' idAboutAttrWithAboutEach?
bagIdAttr? propAttr* '>'
                                propertyElt* '</rdf:Description>'
                         | typedNodeWithEach
  [6.X] idAboutAttrWithAboutEach    ::= idAttr | aboutAttr | aboutEachAttr
  [6.X] typedNodeWithAboutEach      ::= '<' typeName
idAboutAttrWithAboutEach? bagIdAttr? propAttr* '/>'
                         | '<' typeName idAboutAttrWithAboutEach?
bagIdAttr? propAttr* '>'
                               propertyElt* '</' typeName '>'

Ugly, eh? Ok, this can be cleaned up, but it still seems to lose a bit of
it's elegance ;-).

Discussion
==========

Is there really any value in using aboutEach on objects & if so, how does
this impact parser implementations and the formalizing of the logical
model? Unless there are good reasons to do otherwise, IMHO it makes sense
to clarify the spec to what it was originally intended (disallow aboutEach
on objects). We can then tackle the question of whether we want to keep the
newly clarified aboutEach around at all...

cheers,

- steve

[1] http://lists.w3.org/Archives/Public/www-rdf-interest/2000Aug/0139.html
[2] http://lists.w3.org/Archives/Public/www-rdf-interest/2000Dec/0011.html
[3] http://lists.w3.org/Archives/Public/www-rdf-interest/2000Aug/0145.html


- steve

Stephen Petschulat

Received on Wednesday, 20 June 2001 20:22:09 UTC