Re: bringing ShEx and Shacl closer

Dear all,

You can look at my early working draft in which I tackle this problem.

I introduce a simple logical language that subsumes both ShEx and SHACL*.
This allows me to propose a formal semantics for SHACL, including 
semantics for well founded recursion with stratified negation.
The semantics is defined as a translation to the logical language.

I am currently working on describing the translation of ShEx to the 
logical language. I've got a reasonable clear idea of which part of ShEx 
is expressible in SHACL, but still need to work out the details of the 
syntactic restriction to be imposed.

On my opinion, this work not only allows to bring ShEx and SHACL closer, 
but also allows to better understand the expressiveness of both 
languages. The logical language is based on well-known formalisms such 
as logical programming, Datalog, Monadic Second Order logic, Presburger 
arithmetic, so should be easier to understand by a larger community.**

The current draft is incomplete regarding ShEx, but is complete 
regarding SHACL. I would be happy if somebody (Peter ?) familiar with 
SHACL and with formal methods could review it, and check whether my 
understanding of SHACL is correct, and whether my semantics captures 
correctly the intended semantics of SHACL

I apologise for the unfinished document, but preferred to communicate it 

* Almost all ShEx and SHACL are captured, I left a few features apart to 
keep things simple.
** It turns out that the current ShEx semantics coincides with the new 
one introduced in this draft. The advantage of the new one is to be 
expressed using well known formalisms.

Best regards,

Le 03/03/2016 18:15, Iovka Boneva a écrit :
> Dear all,
> I am currently studying what restrictions should be made to ShEx so 
> that it can be compiled to SHACL. My hope is to manage to bring the 
> two languages closer, or even make them converge. Such convergence 
> however might require some changes to SHACL.
> The problem of repeated properties has been around for a while, and my 
> idea is to change the way we treat repeated properties in ShEx and 
> adopt something similar to qualified cardinalities in SHACL.
> Another difference is the disjunction. Considering this concrete example:
> "A person has either a foaf:name, or a foaf:givenName and a 
> foaf:familyName"
> This is easily written in ShEx, but not in SHACL. I however think that 
> it would not require a big change to SHACL to be able to easily handle 
> such use cases.
> I hope to be able to make a concrete proposal of modified ShEx and 
> SHACL with the perspective of getting the two languages closer (there 
> are still some corner cases that I do not know how to deal with). 
> Hopefully it is possible to achieve this with modifications of the two 
> languages that are acceptable for the two communities.

Iovka Boneva
Associate professor (MdC) Université de Lille
+33 6 95 75 70 25

Received on Tuesday, 15 March 2016 09:16:47 UTC