W3C home > Mailing lists > Public > public-rdf-shapes@w3.org > September 2016

Re: fun with sh:hasShape

From: Dimitris Kontokostas <kontokostas@informatik.uni-leipzig.de>
Date: Tue, 27 Sep 2016 10:44:02 +0300
Message-ID: <CA+u4+a0giqt3trXmaz_OhWFe5rU6WQE-+VOy1rq90fYfEtAHug@mail.gmail.com>
To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>
Cc: "public-rdf-shapes@w3.org" <public-rdf-shapes@w3.org>
As with other types of recursion, this is also unspecified in the spec

I placed the sh:hasShape function in the recursive shape list
https://github.com/w3c/data-shapes/commit/52396ff9014e055a6332c28516ac0574fb3c3211

On Mon, Sep 26, 2016 at 10:01 PM, Peter F. Patel-Schneider <
pfpschneider@gmail.com> wrote:

> What happens here?  Why?  Is what happens reasonable?
>
>
> Data graph
>
> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix sh:  <http://www.w3.org/ns/shacl#> .
> @prefix ex:  <http://example.org/ex/> .
> @prefix s:   <http://example.org/s/> .
>
> ex:foo1 rdf:type ex:foo ;
>         rdf:type ex:bar ;
>   s:shape s:bar .
>
> ex:foo2 rdf:type ex:foo ;
>         rdf:type ex:baz ;
>   s:shape s:bar .
>
> ex:foo3 rdf:type ex:foo ;
>         rdf:type ex:baz ;
>   s:shape s:baz .
>
> ex:foo4 rdf:type ex:foo ;
>         rdf:type ex:baz ;
>   s:shape s:s0 .
>
> ex:foo5 rdf:type ex:foo ;
>         rdf:type ex:baz ;
>   s:shape s:s1 .
>
> ex:foon1 rdf:type ex:foon ;
>         rdf:type ex:baz ;
>   s:shape s:s2 .
>
>
>
> Shapes graph
>
> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix sh:  <http://www.w3.org/ns/shacl#> .
> @prefix ex:  <http://example.org/ex/> .
> @prefix s:   <http://example.org/s/> .
>
> s:s1 rdf:type sh:Shape ;
>   sh:targetClass ex:foo ;
>   sh:sparql [
>     sh:select
>       """SELECT $this WHERE {
>         $this s:shape ?shape ;
>         BIND (sh:hasShape($this,?shape,$shapesGraph) AS ?hasShape)
>         BIND (!bound(?hasShape) AS ?failure )
>         FILTER (?failure || !?hasShape) }""" ] .
>
> s:bar sh:class ex:bar .
>
> s:baz sh:class ex:baz .
>
> s:s2 rdf:type sh:Shape ;
>   sh:targetClass ex:foon ;
>   sh:sparql [
>     sh:select
>       """SELECT $this WHERE {
>         $this s:shape ?shape ;
>         BIND (sh:hasShape($this,?shape,$shapesGraph) AS ?hasShape)
>         BIND (!bound(?hasShape) AS ?failure )
>         FILTER (?failure || ?hasShape) }""" ] .
>
>
> Peter F. Patel-Schneider
> Nuance Communications
>
>


-- 
Dimitris Kontokostas
Department of Computer Science, University of Leipzig & DBpedia Association
Projects: http://dbpedia.org, http://rdfunit.aksw.org,
http://aligned-project.eu
Homepage: http://aksw.org/DimitrisKontokostas
Research Group: AKSW/KILT http://aksw.org/Groups/KILT
Received on Tuesday, 27 September 2016 07:44:59 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:02:44 UTC