RE: Are duplicate property/value pairs permitted for a resource?


Thanks for your clear response.

I see the distinction between resources (which have URIs) and Literals
(which don't).  Two resources with the same URI always refer to the same
resource.  But literals, not having URIs, have apparently been left bereft
of a formal definition of equality.  However, I don't see any reason not to
consider two identical literals to be equal.  For instance, under what
scenarios does "2" not equal "2"?

Practically speaking, it would be a bad idea to keep adding "duplicate"
statements having the same literal objects, since an RDF graph could get
very large unnecessarily.  What value would be gained by allowing these

And what should an RDF processor do when it is asked to delete one of these
statements?  Should it:

(1) Delete a particular one (but which one), since these statements are
considered unique, or
(2) Delete an arbitrary one (but how can it do that when these statements
are not considered equal?), or
(3) Delete all the "duplicate" statements (again, how can it do that when
these statements are not considered equal?)?


-----Original Message-----
From: Dan Brickley []
Sent: Thursday, April 08, 1999 11:06 AM
To: Samuel Yang
Cc: ''; ''
Subject: Re: Are duplicate property/value pairs permitted for a

The broad answer to this is implied by RDF's formal model,
	   1.There is a set called Resources. 
	   2.There is a set called Literals. 
	   3.There is a subset of Resources called Properties. 
	   4.There is a set called Statements, each element of which is a
	of the form 

	     {pred, sub, obj}

     	Where pred is a property (member of Properties), sub is a resource
	(member of Resources), and obj is either a resource or a literal
	(member of Literals).

Since a collection of facts in RDF is a set of statements, and since any
set by standard definition of the term can't contain the same element twice,
multiple identical members of the set 'Statements' cannot exist in any
given RDF model. The only complication is regarding literals. 
My understanding is that there is no notion of numerical identity of
literals, ie. two strings being one-and-the-same literal. Consequently,
two assertions with the same resource and property _and_ the same
string literal, eg "Smith", will correspond to two _different_ members
of the set 'Statements'.  (If I'm right this should go in a FAQ... ;-)

Quite what this means in terms of processor behaviour depends on your
application. The spec just defines the data model.


On Thu, 8 Apr 1999, Samuel Yang wrote:

> I'm sending this query out again to a wider audience...  Anybody have an
> answer?
> -----Original Message-----
> From: Samuel Yang []
> Sent: Friday, April 02, 1999 12:31 PM
> To: ''
> Subject: Are duplicate property/value pairs permitted for a resource?
> If an RDF processor is asked to add a property/value pair for a resource,
> but that property/value pair already exists for that resource, should the
> processor:
> (a) Add a duplicate property/value pair to the resource, or
> (b) Ignore the "new" property/value pair?
> I couldn't find anything in the spec regarding this issue.  The closest
> thing I found had to do with fact that the Bag and Seq containers allow
> multiple instances of the same value.  However, that isn't even the same
> issue, since items within a collection have unique property names (rdf:_1,
> rdf:_2, etc.)
> Samuel C. Yang
>  <<Samuel C. Yang.vcf>> 

Received on Thursday, 8 April 1999 14:54:24 UTC