Re: [poe] wording of cardinality restrictions

In #215 I discussed the same, I build on that posting:

In RDF terms a cardinality defines how many times assertions with RDF triples using the same subject and predicate (property) but different objects (values) may occur. (Note: the term "property" for such a use of predicate was coined by RDF Schema https://www.w3.org/TR/rdf-schema/#ch_properties)

Example: the subject is a Permission rule, the predicate is odrl:action and one object or more than one objects are applied:
```
<http://example.org/permission:007>
    odrl:action <http://www.w3.org/ns/odrl/2/aggregate> . 

# above: occurrence = 1
# this is covered by the cardinality variants of odrl:action 
#     "one", "none or one", "none, one, or more", "one, or more"

<http://example.org/permission:007> odrl:action <http://www.w3.org/ns/odrl/2/aggregate> .  
<http://example.org/permission:007> odrl:action <http://www.w3.org/ns/odrl/2/digitize>  .  

# above: occurrence = 2
# covered by the cardinality variants of odrl:action "none, one, or more", "one, or more"

# this is the Turtle short form of the example above:
<http://example.org/permission:007>
    odrl:action <http://www.w3.org/ns/odrl/2/aggregate>, <http://www.w3.org/ns/odrl/2/digitize>  .  
```

The tricky thing is how to write down free-text cardinality statements:
* re subject: this is the persistent thing. This relates to "The XYZ Class (= the subject) has these properties ...." 
* re predicate/property: as the RDF example above shows in atomic RDF this predicate/property may really appear multiple times! And each time it is associated with a different object/value. Only the Turtle syntax may simplify that to a singe occurrence of the property, but this is a syntax issue and not an RDF issue. On the other hand a statement "XYZ Class may have many abc properties ..." may let people guess that the "many abc properties" may be different in some way ... (I suggested this in #215 but agree this misinterpretation may be a result.)
* re object/value: this is the part of the RDF triple which MUST be different in each one of the assertions.

My suggestion:
* The example "A Policy may have none, one, or many inheritFrom **properties ...**" is not completely wrong as none to many times an RDF triple with odrl:inherit from a predicate may appear.
* But more bullet proof is "A Policy may have none, one, or many inheritFrom **property values  ...**" = making "property value(s)" a term.
This tells what will appear multiple times even in a simplified syntax - and inserting "values" is only a small and less error prone edit. (We have maaaany cardinality statements in the IM.)
* Frankly I prefer this over "... having ... values for the inheritFrom property ..." as this sounds like "the property exists always, the cardinality defines how many values are associated with it" and this may result in what @simonstey classified as bad: `"action": ""` _is invalid RDF_.


-- 
GitHub Notification of comment by nitmws
Please view or discuss this issue at https://github.com/w3c/poe/issues/218#issuecomment-322530616 using your GitHub account

Received on Tuesday, 15 August 2017 17:19:32 UTC