Re: ACTION: ericP to send proposal for sh:Stem in response to ISSUE-80

* Peter F. Patel-Schneider <pfpschneider@gmail.com> [2016-03-10 11:35-0800]
> I think that stem1 - stem2
> is
> [ sh:pattern "stem1*" ;
>   sh:not ( [ sh:pattern "stem2*" ] ) ]

Yeah, I buy that. Here's a more exhaustive example:
  ~<stem1> - ~<stem2> - ~<stem2> - <uri3> # read as ((5-2)-1), not (5-(2-1))
or
[ sh:pattern "stem1*" ;
  sh:and [ sh:not ( [ sh:pattern "stem2*" ] ) ]
         [ sh:not ( [ sh:pattern "stem3*" ] ) ]
         [ sh:not ( [ sh:hasValue <iri3> ] ) ] ]

Can you correct that?


> peter
> 
> 
> On 03/09/2016 12:01 PM, Eric Prud'hommeaux wrote:
> > Oops, forgot about this action.
> > 
> > In general, stems look like this in ShExC:
> > 
> > <http://a.example/S1> {
> >    <http://a.example/p1> [<http://a.example/v>~]
> > }
> > 
> > this in ShExJ:
> > 
> > {
> >   "type": "Schema",
> >   "prefixes": {},
> >   "shapes":{
> >     "http://a.example/S1": {
> >       "type": "Shape",
> >       "expression": {
> >         "type": "TripleConstraint",
> >         "predicate": "http://a.example/p1",
> >         "valueExpr": {
> >           "type": "ValueClass", "values": [
> >             { "type": "StemRange",
> >               "stem": "http://a.example/v"
> >             }
> >           ]
> >         }
> >       }
> >     }
> >   }
> > }
> > 
> > and this in RDF:
> > 
> > [ a shex:Schema ;
> >   shex:shape <http://a.example/S1> ] .
> > 
> > <http://a.example/S1>
> >   a shex:Shape ;
> >   shex:expression [
> >     a shex:TripleConstraint ;
> >     shex:predicate <http://a.example/p1> ;
> >     shex:valueExpr [
> >       a shex:ValueClass ;
> >       shex:values [
> >         a shex:StemRange ;
> >         shex:stem <http://a.example/v>
> >       ]
> >     ]
> >   ] .
> >     
> > We also have stem (- stem)* a la
> > 
> > <http://a.example/S1> {
> >    <http://a.example/p1> [<http://a.example/v>~
> >                           - <http://a.example/v1>~
> >                           - <http://a.example/v2>~
> >                           - <http://a.example/v3>~]
> > }
> > 
> > and
> > 
> > {
> >   "type": "Schema",
> >   "prefixes": {},
> >   "shapes":{
> >     "http://a.example/S1": {
> >       "type": "Shape",
> >       "expression": {
> >         "type": "TripleConstraint",
> >         "predicate": "http://a.example/p1",
> >         "valueExpr": {
> >           "type": "ValueClass", "values": [
> >             { "type": "StemRange",
> >               "stem": "http://a.example/v",
> >               "exclusions": [
> >                 { "type": "Stem", "stem": "http://a.example/v1"},
> >                 { "type": "Stem", "stem": "http://a.example/v2"},
> >                 { "type": "Stem", "stem": "http://a.example/v3"}
> >               ]
> >             }
> >           ]
> >         }
> >       }
> >     }
> >   }
> > }
> > 
> > You can find the stem tests in <http://raw.githubusercontent.com/shexSpec/shexTest/master/validation/manifest.ttl> with
> > 
> >   SELECT * { ?s <http://www.w3.org/ns/shacl/test-suite#trait> <http://www.w3.org/ns/shacl/test-suite#Stem> }
> > 
> > Gotta put my child to bed. will try to write to formalize later.
> > 

-- 
-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 Thursday, 10 March 2016 20:35:32 UTC