Skip to content

Lists, sets, and multisets #473

Open
@timothee-haudebourg

Description

@timothee-haudebourg

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

No one assigned

    Type

    No type

    Projects

    Status

    Future Work

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions