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 SPARQL constraints support #104

Open
MuhammadShafaatKhan13 opened this issue Nov 26, 2022 · 9 comments
Open

SHACL SPARQL constraints support #104

MuhammadShafaatKhan13 opened this issue Nov 26, 2022 · 9 comments

Comments

@MuhammadShafaatKhan13
Copy link

Is adding SHACL SPARQL constraints support into this library, currently on the roadmap of the development?

@tpluscode
Copy link
Collaborator

Hello @MuhammadShafaatKhan13. SHACL SPARQL is definitely something that we would like to have.

The biggest blocker right now is an in-memory implementation of SPARQL queries. The only working option that I know of is Comunica, but that would be very heavy, especially for the browser. We have hopes for Callidon/sparql-engine but it is not yet compatible with the RDF/JS model.

Another consideration is extensibility. Additional functionality, such as custom targets and constraints, should be supported in some form of plugins. That would likely require refactoring.

@sroertgen
Copy link
Contributor

I'm also highly interested in this. Unfortunately I don't find that mentioned fork. Would also be willing to actively work on this. Though I can't estimate the effort right now.

@saumier
Copy link

saumier commented Sep 8, 2023

It may be of interest to the group to know that there is a ruby library called shacl.rb with support for SHACL SPARQL. https://github.com/ruby-rdf/shacl/releases/tag/0.3.0. Perhaps there are some common patterns and solutions that could cross over.

@ktk
Copy link
Member

ktk commented Sep 8, 2023

@tpluscode Oxigraph JS might be a way forward for this one as well.

@benjaminaaron
Copy link

I am also very interested in SHACL-SPARQL constraints with your library.
Or is there another JS library for SHACL validation you know about that supports this?

@ktk
Copy link
Member

ktk commented Nov 10, 2023

There is https://github.com/rdf-ext/shacl-engine but it doesn't do SPARQL either.

@rubensworks
Copy link

👋 Just came across this issue.

The only working option that I know of is Comunica, but that would be very heavy, especially for the browser.

Regarding this, the default query-sparql engine of Comunica contains many modules, which indeed becomes quite big in the browser. However, it's possible to create your own Comunica engine, in which you can include only those modules you want. For instance, @jacoscaz has followed this approach in Quadstore to ship a very small build of Comunica for the browser.

@jacoscaz
Copy link

Just found this issue myself. For reference, I've recently been working on updating quadstore-comunica to the newly-released V3 of Comunica and the non-minified bundle for both server-side and browser-side usage sits at roughly 1.2 MB. A complete browser-side bundle that includes quadstore, quadstore-comunica, browser-level and rdf-data-factory sits at roughly 750 kB (minified). Happy to help if anyone would like to follow a similar path.

@rubensworks
Copy link

FYI, our new @comunica/query-sparql-rdfjs-lite package might be relevant here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants