Description
Hi it's me again,
I am confused about the use of the term "set" to describe @set
objects. In the section Lists and Sets it is said that
A set represents an unordered set of values
Section 4.3.2 it is said that
While
@list
is used to describe ordered lists, the@set
keyword is used to describe unordered sets.
So I thought to be correct assuming that I could optimize @set
objects by removing duplicate values (using a set data structure internally), since it is described as an unordered set, a opposed to @list
objects defined as an ordered list.
Now trying to pass the expansion tests, I cannot pass test 27 as it is indicated that "Duplicate values in @list
and @set
are not merged" which is not mentioned in the specification sections associated to @list
and @set
, and also means that a @set
object is, in fact, not a set, but a multiset.
Note that I understand that @set
is just syntactic sugar, associating multiple values to a subject property. Forcing an implementation to keep duplicate values in @set
objects implies that duplicate RDF triples would have some kind of meaning, which they have not since a RDF graph is a set of triples, not a multiset.
Am I correct in my conclusion or is there something wrong with the expansion test 27? Or did I miss the explanation in the spec? Or is it just to avoid further complications (like, what should we do if there is a duplicate occurrence of the same node object, with the same id but not the same properties, etc.)
Metadata
Metadata
Assignees
Type
Projects
Status