- From: Dave Beckett <dave.beckett@bristol.ac.uk>
- Date: Thu, 15 Nov 2001 14:24:35 +0000
- To: w3c-rdfcore-wg@w3.org
Issue http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteach
Summary: I propose to remove rdf:aboutEach from the RDF/XML language.
Virtually all RDF/XML parsers are streaming, based on SAX events or
equivalent in other languages. rdf:aboutEach is a file-scope based
construction that affects every property off a top level (in XML
terms) node with the given URI, either previously mentioned or later
on in the document. This means that the parsers have to record all
the properties from top level nodes seen so that any potential
rdf:aboutEach at the end of the document will work properly.
It seems an odd syntactic construct that has not been widely used
(I have never seen it) and sits badly in the core. If it remains
useful, it should be layered in some form of system on top of RDF/S
and not at the syntax layer. The CWM experiments with log:forall
point at better ways to do this, IMHO.
This issue was previously discussed in the 2001-Jun-01 RDF Core WG
meeting where there was no consensus for removal at that time.
See http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2001Jun/0008.html
and Ora's action:
http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2001Jul/0253.html
Reasons I see for removal
Insufficient use
I don't think it has been used at all in any major RDF
application that I've come across such as Dublin Core, PRISM, W3C
SWAD, DAML+OIL. Google searches return mostly pointers to primers
on RDF trying to explain it.
Insufficient implementation
(selected lists)
I think these parsers implement it in some fashion:
libwww RDF by parsing everything into memory before emitting triples
SiRPAC (in non streaming mode)
ARP - However, see below
Wilbur (in non streaming mode, not the default)
Doesn't handle aboutEach before container
-- http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2001Jul/0253.html
VRP
Parsers that do not handle it:
SiRPAC (in streaming mode)
Wilbur (in streaming mode, default)
Raptor
RDF Filter
Repat
Mozilla RDF parser - http://www.mozilla.org/newlayout/faq.html
CWM xm2rdf.py - it notes
# aboutEach { <#> forall r . { ppp rdf:li r } l:implies ( zzz } )
Confusing interactions with rdf:bagID as recorded in Issue
http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteach
Difficult to implement, especially in streaming RDF/XML parsers;
scalability problems.
"For very large files (more than 100 Megabyte?), the way ARP
handles rdf:aboutEach may exhaust memory. I have the design of
a fix, but it is not high on my ToDo list. e-mail me if you
wish to move it up."
-- Jeremy, http://www.hpl.hp.co.uk/people/jjc/arp/issues.html
A structure in the XML syntax with no graph representation
Will make the primer shorter :)
Actions to implement:
ACTION Dave (RDF/XML syntax doc editor): remove from the grammar in the
RDF/XML document
ACTION Brian: Add explanatory text to RDF M&S errata warning of this change.
This would close
http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteach
http://www.w3.org/2000/03/rdf-tracking/#rdfms-propElt-id-with-dr
by removing rdf:aboutEach / distributed referrants from the language
and affect the previously closed
http://www.w3.org/2000/03/rdf-tracking/#rdfms-aboutEach-on-object
by making the resolution moot.
Dave
Received on Thursday, 15 November 2001 09:24:36 UTC