- From: Tomasz Pluskiewicz via GitHub <sysbot+gh@w3.org>
- Date: Fri, 22 May 2020 08:07:08 +0000
- To: public-hydra-logs@w3.org
tpluscode has just created a new issue for https://github.com/HydraCG/Specifications: == Native SHACL support == ## Describe the requirement [SHACL](https://www.w3.org/TR/shacl/) has been hinted multiple times in various locations. I would like to initiate a focused discussion leading to its adoption in Hydra SHACL Shape can be an alternative resource description to the `hydra:Class`. ## Motivation `hydra:Class` is inherently limited and it makes little sense to waste our limited resources on extending it. That would be wasted effort and just bloat. Instead, SHACL is a well-recognised way to describe desired resources. Not only can it be used to drive the UI and API but is already being applied to [validate payloads](https://npm.im/rdf-validate-shacl) and also becomes [integrated into triple stores](https://www.stardog.com/blog/studio-shacl-released/) and other tools. Various potential usages are listed on the [SHACL Use Cases and Requirements](https://www.w3.org/TR/shacl-ucr/) W3C note. SHACL can do easily do all that we are currently missing or half-heartedly support: - cardinalities - closed sets of potential values - regular expressions - property paths - field ordering - (proposed) UI aid via [DASH](http://datashapes.org/forms.html) ## Proposed solutions There is only a simple change required to open a whole world of opportunities, including what has been discussed in #199. To loosen the `range` semantics of `expects`: ```diff { "@id": "hydra:expects", - "range": "hydra:Class", + "schema:rangeIncludes": [ + "hydra:Class", + "sh:Shape" + ] }, ``` ## Alternative solutions For a moment I thought to keep the range but that doesn't seem right 🤷 ```diff { "@id": "hydra:expects", "range": "hydra:Class", + "schema:rangeIncludes": [ + "sh:Shape" + ] }, ``` The problem with `hydra:Class` may be that it is a subclass of `rdfs:Class` but shape isn't. In fact, there may be multiple shapes which has a shared `sh:targetClass`. They do serve a different purpose. Thus, I don't see a different solution right now. Please view or discuss this issue at https://github.com/HydraCG/Specifications/issues/214 using your GitHub account
Received on Friday, 22 May 2020 08:07:09 UTC