oxigraph / oxigraph

SPARQL graph database
Apache License 2.0
960 stars 66 forks source link

Implement validation tools like ShEx or SHACL (or both?) #55

Open Tpt opened 3 years ago

Tpt commented 3 years ago

It would be nice to have built-in support for shape validations in Oxigraph. It might be done by implementing ShEx or SHACL, or maybe even both.

ktk commented 3 years ago

What's the planned approach here, doing it via SPARQL in the background? I've tested several SHACL implementations and it looks like most of them do some in-memory validation, which might or might not work for large datasets.

From what I heard Stardog is translating shapes to SPARQL and validates them like this. This has the benefit that it can use indexes that are there anyway already.

Tpt commented 3 years ago

I have no real plan at the moment. My current goal is pushing SPARQL update and implementing full text search, RDF* and query optimization. ShEX/SHACL is more something for the distant future. Using SPARQL (or at least a part of the SPARQL evaluator) is indeed probably the best way to do validation.

ktk commented 3 years ago

Ok I think that makes sense. To attract more people I think it's important to have a usable store that people can work with in production and then slowly start improving query planer/performance.

This will hopefully attract more users, contributors & money so other features like SHACL can be added.

dougli1sqrd commented 3 years ago

Shex would be so cool! As an aside, do you know if there are any shex rust libraries? (I didn't find any after a quick look)

Tpt commented 3 years ago

As an aside, do you know if there are any shex rust libraries?

Not at my knowledge, sadly.

ralphtq commented 2 years ago

Interested in SHACL support. Particularly SHACL Rules - https://www.w3.org/TR/shacl-af/#rules.

sophia is a Rust project that may also be interested in SHACL - https://github.com/pchampin/sophia_rs/issues/108

filippodebortoli commented 7 months ago

As an aside, do you know if there are any shex rust libraries?

Not at my knowledge, sadly.

I got to know someone working on a Rust implementation of ShEx, you can find the Github repository here.