anon resources and rdf:parseType='daml:collection'

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.

Received on Friday, 27 July 2001 09:55:43 UTC