[poe] Issue: Wording and RDF semantics: Collection - List - Sequence ... marked as Model

nitmws has just labeled an issue for https://github.com/w3c/poe as "Model":

== Wording and RDF semantics: Collection - List - Sequence ... ==
Digging deeper into the RDF behind the *Collection Classes of ODRL for #226 I noticed the IM uses a terminology which is not clear:
* **collection in the IM**: e.g. in 2.2 and 2.3 - "Asset/PartyCollection - an Asset/Party that is a _collection_ of resources." The further definition of the *Collection does not say a word about ordering, it only talks about "all items in the collection" - in terms of RDF 1.1 Semantics, see below, they could be a Collection or a Container.
* **Collection in the RDF 1.1 Semantics** - https://www.w3.org/TR/rdf11-mt/#rdf-collections - is defined as

> RDF provides a vocabulary for describing collections, i.e.'list structures', in terms of head-tail links. Collections differ from containers in allowing branching structure and in having an explicit terminator, allowing applications to determine the exact set of items in the collection.

* ... these "head-tail links" implement in fact an order of the items - and uses the rdf:first and rdf:rest relationships for the links.
* A **Container is in RDF 1.1 Semantics** a kind of enumeration (= Things are only members of the Container but have no relationships among them) - with three specific types
- in an rdf:Bag the Things are not ordered
- in an rdf:Seq the Things are ordered
- in an rdf:Alt the Things are alternatives, only one of them may be used
* **JSON-LD does not use "collection" as a term**, only as an linguistic attribute, e.g. "JSON-LD uses the same array representation as JSON, the _collection_ is unordered by default" (https://www.w3.org/TR/json-ld/ - section 3.1)
* ... but JSON-LD differentiates between unordered arrays (see above) and "ordered collections" (see section 6.11): to make an array ordered the JSON-LD keyword  @list must be used. (I didn't find quickly a clear statement by JSON-LD if a @list is RDFied to a rdf:List or something else.)
* ... and the ODRL IM defines in section 2.5.2 that the @list keyword must be used for the sequence of constraints related to an andSequence.
* The internal confusion in the RDF Universe is 
  * that the RDF 1.1 Semantics document uses different terms in headlines and in the vocabulary: D.3 is headlined and shows an "RDF Collection" but the class representing this is named rdf:List.
  * that JSON-LD uses terms which are coined by RDF 1.1 with different semantics, and free-text like "unordered array" is not related to a corresponding RDF 1.1 term.

I see this **state of not clear definitions in the ODRL IM:**
1. Key issue: I see not strategy to follow the RDF 1.1 terms - which should be a preference as ODRL IM builds on RDF.
2. Currently the RDF expression/serialisation of these "collections" is not defined:
  * AssetCollection
  * PartyCollection
  * ... they are not an ordered list and could be implemented following RDF 1.1 terminology by the RDF Container rdf:Bag.
2. "Half-baked" is Constraint Class - rightOperand - "list of ..."
as it is not clear: is the RDF semantics of rdf:list applied to this list? By what has  been discussed in #255 it could also be an unordered list, an rdf:Bag. And: does an ordered list have to be an rdf:List - or could it be also an rdf:Seq?
3. unclear is 2.5.2 Logical Constraint Class as it uses JSON-LD terminology for a part of the definition:
- the definition of the only property says "... its value is a list of the existing Constraint instances."
- further down for the andSequence is stated, it must use the @list keyword in JSON-LD
- open issue: may the "list of existing ..." related to "or", "xone" and "and" be unordered lists?

What do our RDF experts think about that?

See https://github.com/w3c/poe/issues/256

Received on Wednesday, 13 September 2017 08:24:20 UTC