W3C home > Mailing lists > Public > public-data-shapes-wg@w3.org > March 2016

Re: bringing ShEx and Shacl closer

From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
Date: Thu, 17 Mar 2016 08:36:29 -0700
To: Iovka Boneva <iovka.boneva@univ-lille1.fr>, public-data-shapes-wg@w3.org
Message-ID: <56EACEFD.5080209@gmail.com>
I took a quick look at the document.  It appears that several SHACL constructs
are missing, including sh:hasValue.  The exclusion of sh:hasValue is
unfortunate.  I don't see how this work can be considered to be useful if it
excludes such an important part of SHACL.  It certainly is not complete.

It may be that the excluded constructs are easy to include, but I don't think
that much can be gotten from the work without them.

A complete analysis of the document is going to take quite some while.  The
formalism is different from anything I have looked at before.  I also do not
see the reason for including Presburger formulae.

peter


On 03/15/2016 02:16 AM, Iovka Boneva wrote:
> Dear all,
> 
> You can look at my early working draft in which I tackle this problem.
> https://hal.archives-ouvertes.fr/hal-01288285
> 
> 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 early.
> 
> * 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,
> Iovka
> 
> 
> 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.
>>
>>
> 
> 
Received on Thursday, 17 March 2016 15:36:59 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:30:30 UTC