ISSUE-63: Nested shapes: sh:hasShape function versus recursive SPARQL code generation

sh:hasShape

Nested shapes: sh:hasShape function versus recursive SPARQL code generation

State:
CLOSED
Product:
SHACL - SPARQL
Raised by:
Holger Knublauch
Opened on:
2015-06-01
Description:
The SHACL spec currently relies on a SPARQL extension function sh:hasShape that can be used to verify that a given resource matches a given shape. This function is used in the SPARQL definitions of several core templates (e.g. sh:OrConstraint, sh:valueShape) but is also generally available for end users to write their own constraints. I believe this is very powerful and elegant.

Peter suggests to not rely on this function, I guess because it requires a non-standard extension.

We need to discuss whether the sh:hasShape function is sufficiently problematic that we cannot rely on it, and (if so) precisely define an alternative algorithm that can be used instead.

It may be helpful to hear from implementers whether they believe the sh:hasShape function is a problem. Note that even if sh:hasShape is used in the definition of the core language, actual implementations may optimize its execution to build recursive structures. My assumption is that if a database vendor implements SHACL support, then they will already have the relevant algorithms implemented, and sh:hasShape is just a trivial wrapper for them. Likewise, this function is no problem for generic graph APIs such as Jena or Sesame.
Related Actions Items:
No related actions
Related emails:
  1. Re: Proposal to close ISSUE-29 as a duplicate (from holger@topquadrant.com on 2015-07-29)
  2. Re: Proposal to close ISSUE-29 as a duplicate (from pfpschneider@gmail.com on 2015-07-28)
  3. Re: Proposal to close ISSUE-29 as a duplicate (from pfpschneider@gmail.com on 2015-07-28)
  4. Proposal to close ISSUE-29 as a duplicate (from holger@topquadrant.com on 2015-07-28)
  5. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from holger@topquadrant.com on 2015-06-15)
  6. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from pfpschneider@gmail.com on 2015-06-14)
  7. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from pfpschneider@gmail.com on 2015-06-14)
  8. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from holger@topquadrant.com on 2015-06-12)
  9. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from pfpschneider@gmail.com on 2015-06-11)
  10. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from holger@topquadrant.com on 2015-06-11)
  11. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from holger@topquadrant.com on 2015-06-11)
  12. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from pfpschneider@gmail.com on 2015-06-10)
  13. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from pfpschneider@gmail.com on 2015-06-10)
  14. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from holger@topquadrant.com on 2015-06-09)
  15. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from pfpschneider@gmail.com on 2015-06-08)
  16. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from holger@topquadrant.com on 2015-06-05)
  17. Re: shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from pfpschneider@gmail.com on 2015-06-04)
  18. shapes-ISSUE-63 (sh:hasShape): Nested shapes: sh:hasShape function versus recursive SPARQL code generation [SHACL Spec] (from sysbot+tracker@w3.org on 2015-06-01)
  19. Re: implementing today's resolution (from holger@topquadrant.com on 2015-06-01)

Related notes:

RESOLUTION: Close ISSUE-63, adding sh:hasShape as proposed understanding that if recursion is added, it will impact sh:hasShape
See http://www.w3.org/2015/12/15-shapes-minutes.html#resolution02

Arnaud Le Hors, 15 Dec 2015, 22:47:46

Display change log ATOM feed


Chair, Staff Contact
Tracker: documentation, (configuration for this group), originally developed by Dean Jackson, is developed and maintained by the Systems Team <w3t-sys@w3.org>.
$Id: 63.html,v 1.1 2018/11/26 09:03:40 carine Exp $