[shex] Support for circular references that compare their values

labra has just created a new issue for https://github.com/shexSpec/shex:

== Support for circular references that compare their values ==
[This issue](https://github.com/shexSpec/spec/issues/24) wants to express a recursive model where the values refer to themselves. 

The example is between a person that owns a dog and a dog that likes a person, but the condition is that the value owned by a person must like that person. 

To express that condition, I think we need to solve [this issue](https://github.com/shexSpec/shex/issues/24) before to be able to compare values.

A possible syntax could be:

```turtle
PREFIX :       <http://example.org/>

:Person { 
 $<Dog> :owns  @:Dog;
$this = $<Dog>/likes
}

:Dog {
  :likes @:Person
}
```

in this way the following example:

```turtle
@prefix :      <http://example.org/> .

:Bob    :owns   :Fido .     # Fails because :Fido doesn't like :Bob
:Fido   :likes  :Jane .

:Jane   :owns   :Spot .   # Conforms, because Spot likes :Jane
:Spot   :likes  :Jane .
```

Please view or discuss this issue at https://github.com/shexSpec/shex/issues/85 using your GitHub account

Received on Saturday, 26 May 2018 06:24:14 UTC