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

I think that stem1 - stem2
is
[ sh:pattern "stem1*" ;
  sh:not ( [ sh:pattern "stem2*" ] ) ]

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.
> 

Received on Thursday, 10 March 2016 19:35:42 UTC