- From: Michael Steidl via GitHub <sysbot+gh@w3.org>
- Date: Wed, 13 Sep 2017 08:24:25 +0000
- To: public-poe-archives@w3.org
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