Reverse arcs in Shapes

I think a good extension of the current ShEx specification could be to
allow reverse arcs, which would allow to express constraints on the shape
of arcs that arrive to a given node, i.e. not only on the arcs departing
from a node, but also the arcs that receives a node.

For example, if I want to express that countries are the reference area of
zero or more observations, I can express it by:

<Country> {
       rdfs:label xsd:string ,
       ^ :ref-area @<observation>*  # ^ means that it receives the arc

<Observation> {
    :value xsd:integer ,
    :ref-area @<Country>

In this way, a model like the following could validate:

:esp rdfs:label "Spain" .

:o1 :value 23, :ref-area :esp .
:o2 :value 45, :ref-area :esp .

I used the symbol "^" but I am not sure if it is reserved for other

In fact, I noticed that the BNF grammar ( has reserved the symbols "!" and "^"
at the beginning of arc definitions...what is their purpose?

Best regards, Labra

Received on Wednesday, 5 February 2014 21:31:19 UTC