- From: Brian McBride <bwm@hplb.hpl.hp.com>
- Date: Fri, 27 Jul 2001 16:07:34 +0100
- To: Jeremy Carroll <jjc@hplb.hpl.hp.com>
- CC: www-rdf-comments@w3.org
Thanks for this Jeremy. I've forwarded your message to the RDFCore WG for consideration. Brian Jeremy Carroll wrote: > > I've noticed that the WG has been discussing the status of anonymous > resources. > > I wished to offer a use case in which it makes a significant difference > whether anonymous resources are allocated a URI or not. > > Use case, round-tripping of DAML > ================================ > > A daml ontology is read in by an RDF processing system which supports > rdf:parseType='daml:collection'. > > The system then writes the ontology out, again with a writing subsystem that > supports rdf:parseType='daml:collection'. > > Jena 1.1.0 using the RDF/XML-ABBREV writer is one such system. > > Soln 1: > ======= > anonymous resources are not given URI's but are distinguished in model. > ---------------------------------------------------------------------- > e.g. Jena 1.1.0 > > By looking for resources which: > either: > - are daml:nil > or > - are anonymous > have exactly three properties being: > + rdf:type = daml:List. > + daml:first being a resource > + daml:rest subject to an iterative check > we can recognise legitimate daml:collection and write them out. > > Soln 2: > ======= > anonymous resources are given URI's which cannot be distinguished > from user-specified URI's within model. > ------------------------------------------------------------------ > > Every non-empty daml:collection involved a list-cell with the three > properties above. However, the list-cell is non-anonymous, and we cannot > distinguish this from where the source document specified the URI-ref. Hence > we need to write this node out without using the daml:collection parsetype. > > ****************************************************** > > Example file > ------------ > > The first attached file "damlCollectionExample.daml" shows three examples of > use of daml:disjointUnionOf. > The first example in daml:Class "Normal" shows the normal usage with > rdf:parseType="daml:collection". > The second two examples show how using the long-hand form (without > rdf:parseType="daml:collection") some structure sharing can be done. > > The second file "roundTripped.daml" shows the result of reading the first > file with ARP 1.0.2 and writing it out with Jena 1.1.0 (using the > RDF/XML-ABBREV writer). The point about this message is that without > anonymous resources either: > > + a writer needs to write out the "Normal" case using the (unreadable) long > hand form > > or: > > + a writer will use the compact rdf:parseType="daml:collection" form more > frequently than it should, and will make mistakes when there is structure > sharing, particularly across files, preventing global analysis. > > Enjoy > > Jeremy Carroll > HP Labs Bristol. > > -------------------------------------------------------------------------------- > Name: damlCollectionExample.daml > damlCollectionExample.daml Type: unspecified type (application/octet-stream) > Encoding: quoted-printable > > Name: roundTripped.daml > roundTripped.daml Type: unspecified type (application/octet-stream) > Encoding: quoted-printable
Received on Friday, 27 July 2001 11:10:13 UTC