zazuko / vscode-sparql-notebook

Visual Studio Code SPARQL Notebook Extension
https://marketplace.visualstudio.com/items?itemName=Zazuko.sparql-notebook
Other
26 stars 8 forks source link

Support of SHACL as an additional language for code blocks #73

Open arne-bdt opened 10 months ago

arne-bdt commented 10 months ago

I propose to add support for SHACL validation:

Like this: image

I created a "works for me" - fork: https://github.com/zazuko/vscode-sparql-notebook/compare/main...arne-bdt:vscode-sparql-notebook:main

Unfortunately I have no experience with developing vs-code extensions. Also, my web development skills are a bit rusty. I haven't done anything with Typescript and the whole ecosystem around npm, webpack etc. for a few years. For example, I find it difficult to find an approach in the project to add the necessary tests.

If your requirements do not exceed my skills, I am willing to make a proper pull request.

BenjaminHofstetter commented 9 months ago

Why would you like to have this in SPARQL Notebook ? Do you want to develop SHACL Shapes ? Or do you want to validate a Graph?

I can imagine to develop a SHACL notebook for development of shapes.

# [datagraph=./foo.ttl]

my:Shapa a sh:NodeShape .

and running the cell validates datagraph with the current cell.

arne-bdt commented 9 months ago

@BenjaminHofstetter I am currently focusing on developing and documenting SHACL Shapes. In my experience, maintaining a separate notebook exclusively for SHACL doesn't seem optimal, particularly since I started using a mixed notebook approach (using my branch of sparql-notebook).

SPARQL and SHACL are complementary standards, and their integration is not just beneficial but sometimes essential. Being able to query and view the data that needs validation within the same environment is incredibly useful. This is particularly true for SHACL Shapes that incorporate SPARQL Constraints. The combined use of SPARQL and SHACL within a single notebook enhances the development process, allowing for a more dynamic and cohesive workflow.