- From: Dean Allemang <dallemang@workingontologist.com>
- Date: Fri, 5 Dec 2014 19:21:12 +1100
- To: Holger Knublauch <holger@topquadrant.com>
- Cc: "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
- Message-ID: <CA+oZZw-t=130kqmGQ+zJa4z6W_AjqOSsiZbmhYC_v5ioq1aA2g@mail.gmail.com>
I am confused by this example - how do I know that the two constraints refer to the value of ex:parent? In this example, there is nothing else it could apply to, so it is fine, but if there were another :property constraint in this shape (or none at all), it wouldn't be so clear. Does this mean that a shape definition must have exactly one property constraint? I'm not sure if the credit/default swap story is really relevant here (we tend to think of that as a rule instead of a shape, but I'm not sure that is correct, either). A credit-default swap is an instrument with (among other things) two legs (the "premium" and the "contingent"). The legs each has a currency. A Mixed-currency one has different currencies for the two legs. How would I refer to the two currencies in a single statement in this form? I feel as if I need a variable for each of these currencies, and a way to express ?c1 != ?c2 . Dean On Fri, Dec 5, 2014 at 9:29 AM, Holger Knublauch <holger@topquadrant.com> wrote: > On 12/5/2014 5:08, Arthur Ryman wrote: > >> All values must satisfy the shape pointed to by oslc:valueShape. OSLC has >> no way to specify that some values must satisfy the shape. >> > > Ok thanks Arthur for clarifying this. So Resource Shapes doesn't seem to > have a notion of Qualified Cardinalities, while ShEx seems to have that > (correct me if I am wrong, Eric). > > To create a solution that covers all use cases I believe it would be > helpful to (explicitly) distinguish between > > a) structural declarations "which properties are relevant for a > resource/class" > b) arbitrary constraints "which additional conditions must be met" > > The information from a) would be easy to interpret to drive user > interfaces, e.g. it would contain the general cardinality and the valueType > so that suitable input widgets can be selected. > > The information from b) would be tested in the background, e.g. to > validate an input form before it gets submitted. > > With this categorization, oslc:valueType would be a single value in > category a) while there can be any number of valueShapes in category b). > > In my current prototyping, I have split spin:constraint into two different > properties (:property and :constraint) to distinguish between those two > categories. This also means that there would be something like > > ex:Person > :property [ > :predicate ex:parent ; > :valueType ex:Person ; > :minCount 2 ; > :maxCount 2 ; > ] ; > :constraint [ > a :ShapeConstraint ; > :shape ex:MalePerson ; > :minCount 1 ; > :maxCount 1 ; > ] ; > :constraint [ > a :ShapeConstraint ; > :shape ex:FemalePerson ; > :minCount 1 ; > :maxCount 1 ; > ] ; > > which means that every Person must have two (biological) parents, one male > and one female. This distinction between the "global" cardinality of 2 from > the local qualified cardinalities would allow us to represent QCRs in a > relatively clean way. > > Eric, what do you think? > > Holger > > >
Received on Friday, 5 December 2014 08:21:39 UTC