Re: Declarations of Property Min/Max Cardinality

* Karen Coyle <kcoyle@kcoyle.net> [2015-02-04 14:37-0800]
> I'm not sure that it is the same as your example below, but perhaps
> it is just that it is simpler. The stated use case from Europeana
> is:
> 
> For each incoming record (graph) there must be one subject declared
> as type edm:providedCHO and one subject declared as type
> ore:Aggregation.
> 
> So it isn't connected with any property other than "rdf:type" (or is
> it rdfs:type - I never remember).
> 
> This is why I ask, because DCMI has declared separate cardinality
> requirements for properties and for classes. Conceptually, it's
> putting restrictions at an entity level, if your data is modeled in
> E-R terms. In RDF I think of it as "only one graph declared as this
> type".
> 
> Is that still the same qualified cardinality that you describe?

I think that's the same as the animal shape example, with
substitutions for the predicate (rdf:type) and the values (the types):

    my:FooShape {
        rdf:type (edm:providedCHO),
        rdf:type (ore:Aggregation)
    }

This has come up in clinical work as well.


> kc
> 
> 
> On 2/4/15 2:08 PM, Eric Prud'hommeaux wrote:
> >* Karen Coyle <kcoyle@kcoyle.net> [2015-02-04 12:58-0800]
> >>One of the requirements that we will be discussing tomorrow is:
> >>Declarations of Property Min/Max Cardinality
> >>
> >>Is there a related requirement that would assert min/max cardinality
> >>on subjects of a type, or within a targeted graph? - e.g. only one
> >>subject of type foaf:person per graph. This is a common requirement
> >>that we have in the DCMI work.
> >
> >I believe that's a qualfied cardinality restriction. A bunch of
> >clinical modelers have requested something basically like this:
> >
> >     my:PersonShape {
> >         :hasBiologicalParent { :gender (:Male) },
> >         :hasBiologicalParent { :gender (:Female) }
> >     }
> >
> >Which I implemented as requiring one of the first, one of the second,
> >and no more instances of :hasBiologicalParent.
> >
> >see http://w3.org/brief/NDMy
> >
> >In OWL, that would look like a couple QCRs and an allValuesFrom:
> >
> >     my:PersonShape
> >       rdfs:subClassOf
> >         [ owl:onProperty :hasBiologicalParent;
> >           owl:cardinality 1;
> >           owl:allValuesFrom [ owl:onProperty :gender ; owl:hasValue :Male ] ],
> >         [ owl:onProperty :hasBiologicalParent;
> >           owl:cardinality 1;
> >           owl:allValuesFrom [ owl:onProperty :gender ; owl:hasValue :Female ] ],
> >         [ owl:onProperty :hasBiologicalParent;
> >           owl:allValuesFrom [ owl:unionOf (
> >	    [ owl:onProperty :gender ; owl:hasValue :Male ]
> >	    [ owl:onProperty :gender ; owl:hasValue :Female ]
> >           ) ] ] .
> >
> >I could simplify this example by removing the extra nested constraint,
> >but it becomes a bit artificial:
> >
> >     my:AnimalShape {
> >         :consumes (:food),
> >         :consumes (:water),
> >         :consumes (:oxygen)
> >     }
> >
> >would look like:
> >
> >     my:AnimalShape
> >       rdfs:subClassOf
> >         // consumes each of three things:
> >         [ owl:onProperty :consumes;
> >           owl:cardinality 1;
> >           owl:hasValue :food ],
> >         [ owl:onProperty :consumes;
> >           owl:cardinality 1;
> >           owl:hasValue :water ],
> >         [ owl:onProperty :consumes;
> >           owl:cardinality 1;
> >           owl:hasValue :oxygen ],
> >
> >	// consumes only those three things:
> >         [ owl:onProperty :consumes;
> >           owl:allValuesFrom [ owl:oneOf (
> >	    :food :water :oxygen
> >           ) ] ] .
> >
> >Without the last restriction, we fail to catch a lot of errors,
> >e.g. coding errors:
> >
> >     <Rex> :consumes :food, :water, O2 .
> >
> >or typos:
> >
> >     <Rex> :consumes :food, :water, xoygen .
> >
> >
> >>kc
> >>
> >>--
> >>Karen Coyle
> >>kcoyle@kcoyle.net http://kcoyle.net
> >>m: 1-510-435-8234
> >>skype: kcoylenet/+1-510-984-3600
> >>
> >
> 
> -- 
> Karen Coyle
> kcoyle@kcoyle.net http://kcoyle.net
> m: 1-510-435-8234
> skype: kcoylenet/+1-510-984-3600

-- 
-ericP

office: +1.617.599.3509
mobile: +33.6.80.80.35.59

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.

There are subtle nuances encoded in font variation and clever layout
which can only be seen by printing this message on high-clay paper.

Received on Wednesday, 4 February 2015 23:28:36 UTC