- From: Jose Emilio Labra Gayo via GitHub <sysbot+gh@w3.org>
- Date: Sun, 23 Jun 2019 07:14:24 +0000
- To: public-shex-dev@w3.org
labra has just created a new issue for https://github.com/shexSpec/shex:
== Allow property paths in ShapeMaps ==
The current shape map specification allows node selectors like:
```
{ FOCUS rdf:type :Person}@<PersonShape>
```
to select all nodes that have type `:Person` to be checked as `<PersonShape>`.
It would be helpful to extend the grammar of node selectors to allow SPARQL property paths apart of single iris.
For example:
```
{ FOCUS rdfs:subClassOf*/rdf:type :Person}@<PersonShape>
```
The [Shaclex implementation](https://github.com/labra/shaclex) already supports this feature.
The grammar employed can be seen [here](https://github.com/labra/shaclex/blob/master/modules/shapeMaps/src/main/antlr4/ShapeMap.g4)
The relevant parts are in lines:
```
triplePattern : '{' KW_FOCUS path (objectTerm | '_' ) '}' # focusSubject
| '{' (subjectTerm | '_') path KW_FOCUS '}' # focusObject
;
status : negation | questionMark ;
reason : '/' string ;
jsonAttributes : '$' ; // TODO
// SPARQL Grammar rule 82
path : pathAlternative ;
pathAlternative : pathSequence ( '|' pathSequence ) *
;
pathSequence : pathEltOrInverse ( '/' pathEltOrInverse ) *
;
pathEltOrInverse : pathElt | inverse pathElt
;
inverse : '^'
;
pathElt : pathPrimary pathMod?
;
// Todo: Add pathNegatedPrimarySet
pathPrimary : nodeIri | rdfType | '(' path ')'
;
pathMod : '*' # star
| '?' # optional
| '+' # plus
;
```
Please view or discuss this issue at https://github.com/shexSpec/shex/issues/92 using your GitHub account
Received on Sunday, 23 June 2019 07:14:26 UTC