Containers and the RDF model

Ora, Brian, copied below some notes on the interaction between the RDF
model and containers. Sorry for the long lines. I've copied www-archive
for archival; feel free to pass on if you think useful. More analysis of
the options is clearly needed. 

Dan (from the worlds most expensive network access point...)

 -----

RDF Container Issues -- notes on problems with the formal model for containers

A brief write-up of some container-oriented discussions w/ Ora Lassila during WWW10.

The RDF Model and Syntax recommendation includes special case support for three types of "container" or grouping construct: Bags, Seqs and Alts. The specification expresses support for these at both syntactic and formal model levels.Regarding syntax, M+S defines some XML structures (based around the <rdf:li> construct) that make it easier to serialise representations of containers. There are known problems with the detail of this syntax, see Beckett/McBride note and prior discussion (@@refs). 

In addition to the problem with container syntax, RDF's specification of a formal model for containers is also problematic. http://www.w3.org/TR/REC-rdf-syntax/#model tells us:

[[
As described in Section 3, it is frequently necessary to represent a collection of resources or literals; for example to state that a
property has an ordered sequence of values. RDF defines three kinds of collections: ordered lists, called Sequences,
unordered lists, called Bags, and lists that represent alternatives for the (single) value of a property, called Alternatives.

Formally, these three collection types are defined by:

	10.There are three elements of Resources, not contained in Properties, known as RDF:Seq, 	RDF:Bag, and RDF:Alt. 
	  11.There is a subset of Properties corresponding to the ordinals (1, 2, 3, ...) called 		Ord. We refer to elements of Ord as RDF:_1, RDF:_2, RDF:_3, ... 

]]

The next paragraph in the specification is problematic. It tells us that collection elements are numbered in sequence using the ordinal properties rdf:_1 rdf:_2 etc. Note that this is with regard to the formal model for representing RDF containers, and *not* with regard to any particular XML representation (complete or partial) of this information.

[[
To represent a collection c, create a triple {RDF:type, c, t} where t is one of the three collection types RDF:Seq, RDF:Bag, or
RDF:Alt. The remaining triples {RDF:_1, c, r1}, ..., {RDF:_n, c, rn}, ... point to each of the members rn of the collection. For
a single collection resource there may be at most one triple whose predicate is any given element of Ord and the elements of
Ord must be used in sequence starting with RDF:_1. For resources that are instances of the RDF:Alt collection type, there
must be exactly one triple whose predicate is RDF:_1 and that is the default value for the Alternatives resource (that is, there
must always be at least one alternative).
]]

Two problems are posed by this formulation:

 - it suggests that any RDF model which describes some container is in possession of a complete description of that container. The phrase "the elements of Ord must be used in sequence starting with RDF:_1" appears to rule out the use of the formal RDF container model for descriptions where only partial information is available. Use case: an rdf:Seq representing the (incompletely represented) houses in a street.

 - it interacts with the syntactic sugar provided by the <rdf:li> XML syntax machinery: RDF parsers typically assume that containers encoded using this construct contain complete descriptions of some Bag, Seq or Alt. But there is no syntax-level support for making this clear. 


This situation is in tension with a broad design goal of RDF: to allow Web services to aggregate and process partial descriptions. 

Received on Thursday, 10 May 2001 09:20:17 UTC