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 6 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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, e.g., UI generated from shape definitions.

- [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. Part of [Stardog RDF Languages Extension Pack](https://marketplace.visualstudio.com/items?itemName=stardog-union.vscode-stardog-languages)
- [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 (SHACL spec) - the inputs to a SHACL validator, but these are "ephemeral", and spec doesn't concretize how to pass them to the validator.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- [Data Graph](https://w3c.github.io/data-shapes/shacl/#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.
<!--lint ignore double-link-->
- [Data Graph](https://w3c.github.io/data-shapes/shacl/#data-graph) - The input to a SHACL validator (along with the Shapes Graph or SHACL spec), but these are "ephemeral", and spec doesn't concretize how to pass them to the validator.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

hi @amivanoff , so it ignores the fragment when checking for duplicated links?

Copy link
Contributor

@amivanoff amivanoff Dec 18, 2024

Choose a reason for hiding this comment

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

Yes, it does. We can enable/disable separate linter's rulesets per list item only -- "ignore" (or enable/disable it globally -- "disable").

Just put the ruleset IDs after the "lint ignore" and separate it with a space from each other.

  • double-link -- checks list item duplication
  • awesome-list-item -- checks list item formatting

Examples:

<!--lint ignore double-link-->
<!--lint ignore awesome-list-item-->
<!--lint ignore awesome-list-item double-link-->

Copy link
Contributor

@TallTed TallTed Dec 19, 2024

Choose a reason for hiding this comment

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

The awesome linter "ignores the fragment when checking for duplicated links"? That's not awesome! It should result in feedback to the linter project! Different fragments are different URIs, even if dereferencing both results in the browser displaying approximately the same information.

Ignoring double-links should not be the only way to handle such fragment differences, not only because actual double links (i.e., with no fragment differentation) should still be flagged.

- [sh:shapesGraph](https://w3c.github.io/data-shapes/shacl/#sh-shapes-graph) (SHACL spec) - A triple in the data graph that **suggests** which shapes to select for validation.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- [sh:shapesGraph](https://w3c.github.io/data-shapes/shacl/#sh-shapes-graph) (SHACL spec) - A triple in the data graph that **suggests** which shapes to select for validation.
<!--lint ignore double-link-->
- [sh:shapesGraph](https://w3c.github.io/data-shapes/shacl/#sh-shapes-graph) (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](https://www.ontotext.com/blog/shacl-ing-the-data-quality-dragon-iii-a-good-artisan-knows-their-tools/)).
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- `rdf4j:SHACLShapeGraph` (RDF4J extension) - default shape graph in RDF4J (see [this blog](https://www.ontotext.com/blog/shacl-ing-the-data-quality-dragon-iii-a-good-artisan-knows-their-tools/)).
<!--lint ignore awesome-list-item double-link-->
- `rdf4j:SHACLShapeGraph` (RDF4J extension) - default shape graph in RDF4J (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` (RDF4J extension) - 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/)).
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- `rsx:DataAndShapesGraphLink, rsx:shapesGraph, rsx:dataGraph` (RDF4J extension) - 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/)).
<!--lint ignore awesome-list-item double-link-->
- `rsx:DataAndShapesGraphLink, rsx:shapesGraph, rsx:dataGraph` (RDF4J extension) - 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 (by Jena's author) that describes one way to apply SHACL to RDF Datasets.

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