Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SHACL on Graphs #25

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open
18 changes: 15 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,24 @@ Software tools or libraries, sorted by programming language.

## Shape Editors, Visualizations

Editors that allow you to edit shapes in an easier way and to visualize shapes.

- [Allotrope Shape Editor](https://gitlab.com/allotrope-open-source/allotrope-devops/-/wikis/shacl-shape-editor) - The Shape Editor supports editing of shacl and shaclc files; `Apache-2.0` license; `Java`.
- [Sparna SHACL Play! Draw](https://shacl-play.sparna.fr/play/draw) - Provided visualization using PlantUML.

## Declarative UIs

Data viewers/Editors based on shapes.
Instance data viewers/Editors based on shapes, i.e. UI Generation from shapes.
VladimirAlexiev marked this conversation as resolved.
Show resolved Hide resolved

- [shaperone](https://github.com/hypermedia-app/shaperone) <img alt="NPM Version" src="https://img.shields.io/npm/v/@hydrofoil/shaperone-wc" align="top"> <img alt="GitHub Release Date" src="https://img.shields.io/github/release-date/hypermedia-app/shaperone" align="top"> - SHACL Shapes Form generator; [docs](https://forms.hypermedia.app); `MIT` license; `Typescript`.
- [playground](https://forms.hypermedia.app/playground)

## IDE support

- [Linked Data Extension](https://marketplace.visualstudio.com/items?itemName=Elsevier.linked-data) - VS Code Extension for editing RDF files with embedded SHACL validator and SPARQL engine.
- [SHACL Language Server](https://marketplace.visualstudio.com/items?itemName=stardog-union.vscode-langserver-shacl) - A VS Code extension providing language intelligence (diagnostics, hover tooltips, auto-completion, etc.) for W3C standard SHACL via the Language Server Protocol.
These make editing shapes within an IDE like VSCode easier.

- [Linked Data Extension](https://marketplace.visualstudio.com/items?itemName=Elsevier.linked-data) - A VS Code Extension for editing RDF files with embedded SHACL validator and SPARQL engine.
- [SHACL Language Server](https://marketplace.visualstudio.com/items?itemName=stardog-union.vscode-langserver-shacl) - A VS Code extension providing language intelligence (diagnostics, hover tooltips, auto-completion, etc.) for SHACL via the Language Server Protocol. Similar [VSCode extensions by Stardog](https://marketplace.visualstudio.com/search?term=stardog&target=VSCode&category=All%20categories&sortBy=Relevance) are available for other W3C standard languages: Turtle, SPARQL, Trig, etc
VladimirAlexiev marked this conversation as resolved.
Show resolved Hide resolved
- [Mentor RDF for VS Code](https://marketplace.visualstudio.com/items?itemName=faubulous.mentor) - Code editing support for RDF, RDFS, OWL, SKOS, SHACL and SPARQL.
- [SHACLC Language Server](https://marketplace.visualstudio.com/items?itemName=jeswr.shaclc-language-server) ([source](https://github.com/jeswr/shaclc-language-server)) - A VS Code extension providing language intelligence (diagnostics, hover tooltips, auto-completion, etc.) for CG standard SHACL Compact Syntax via the Language Server Protocol. MIT License.

Expand Down Expand Up @@ -139,6 +144,13 @@ Data viewers/Editors based on shapes.
- SHACL-related specifications
- [The Shape Topologies algorithm](https://treecg.github.io/specification/shape-topologies)
- [DASH Data Shapes](https://www.datashapes.org/) - Platform-independent extensions of SHACL for common tasks. Stuff that could become an official standard in the future.

- SHACL on Graphs (as discussed in [shacl#22](https://github.com/w3c/shacl/issues/22) and [Inst4CIM-KG#140](https://github.com/Sveino/Inst4CIM-KG/issues/140))
- [Data Graph](https://w3c.github.io/data-shapes/shacl/#data-graph) and Shapes Graph are the inputs to a SHACL validator - But these are "ephemeral", and spec doesn't concretize how to pass them to the validator.
- [sh:shapesGraph](https://w3c.github.io/data-shapes/shacl/#sh-shapes-graph) - A triple in the data that **suggests** which shapes to select for validation.
- `rdf4j:SHACLShapeGraph` - in RDF4J is the default shape (see [this blog](https://www.ontotext.com/blog/shacl-ing-the-data-quality-dragon-iii-a-good-artisan-knows-their-tools/)).
- `rsx:DataAndShapesGraphLink, rsx:shapesGraph, rsx:dataGraph` - in RDF4J allow to describe exactly which shapes go with which graphs (see [doc](https://graphdb.ontotext.com/documentation/10.8/shacl-validation.html#union-of-data-graphs-when-validating-the-results) or [this blog](https://www.ontotext.com/blog/shacl-ing-the-data-quality-dragon-iii-a-good-artisan-knows-their-tools/)).
- [Extending SHACL to RDF Datasets](https://afs.github.io/shacl-datasets.html) - Proposal that describes applying SHACL to RDF Datasets by Jena's author.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little hesitant to accept vendor-specific extensions in the "Specifications" section.
If we are to include these, maybe add a clear separation from the standards?

Copy link
Collaborator Author

@VladimirAlexiev VladimirAlexiev Dec 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it ok now: https://github.com/w3c-cg/awesome-semantic-shapes/blob/VladimirAlexiev-patch-1/README.md#specifications

  • Data Graph and Shapes Graph (SHACL spec) - the inputs to a SHACL validator, but these are "ephemeral", and spec doesn't concretize how to pass them to the validator.
  • sh:shapesGraph (SHACL spec) - A triple in the data graph that suggests which shapes to select for validation.
  • rdf4j:SHACLShapeGraph (RDF4J extension) - default shape graph in RDF4J (see this blog).
  • rsx:DataAndShapesGraphLink, rsx:shapesGraph, rsx:dataGraph (RDF4J extension) - describe exactly which shapes go with which graphs (see doc or this blog).
  • Extending SHACL to RDF Datasets (by Jena's author) - Proposal that describes applying SHACL to RDF Datasets.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tpluscode is it ok now?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure, sorry. Would like a second opinion. @TallTed @amivanoff ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TallTed @amivanoff @labra @dontcallmedom Please weigh in here

Copy link
Contributor

@amivanoff amivanoff Jan 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think, I need to clarify some terminology and initial intentions of this sections (embedded in the initial structure of sections). Maybe it needs to be corrected. Maybe some corrected version needs o be added as a brief explainer in each of sections.

  • "Specifications" -- Any more-or-less formal shapes-related useful published document, regardless of it's origin (W3C's, specific vendor's or some expert's) or readiness status (draft/final))
    • "W3C Recommendations" -- The current W3C-recommended specifications (with final status, endorsed by W3C).

Maybe it would be better to break-down "Specifications" into several subsections?

For example:

  1. To divide the "Specifications" top-level section into two second-level sections like "SHACL Specifications" and "ShEx Specifications"? The same way as in the case of "SHACL Validators" and "ShEx Validators"?
  2. To divide "SHACL Specifications" into several 3-rd level subsections. Like this, and add as brief explainer in each section?
    a. "Current W3C Recommendations"
    b. "Ongoing Work in Progress in W3C WG" (I think, "WG SHACL Drafts" as well as "SHACL on Graphs" belongs here). All vendor-spec extensions, related to the new "work-in-progress" features/issues, covered by the new W3C draft, belongs here (with a hope it will be aligned to the spec in the end, or not then it goes to 2.c)
    c. "Vendor-Specific Extensions" (which are not in scope of the new spec draft, or a clear deviations from current Recommendations)
    d. "SHACL-Related Specifications"

Result section structure (section headers):

  • Specifications
    • SHACL Specifications
      • Current W3C Recommendations
      • Ongoing Work in Progress in W3C WG
      • Vendor-Specific SHACL Extensions
      • SHACL-Related Specifications
    • ShEx Specifications


- ShEx
- [Shape Expressions Language 2.1](https://shex.io/shex-semantics/index.html) - Final Community Group Report, 8 October 2019.
Expand Down
Loading