openlink / virtuoso-opensource

Virtuoso is a high-performance and scalable Multi-Model RDBMS, Data Integration Middleware, Linked Data Deployment, and HTTP Application Server Platform
http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/
Other
849 stars 214 forks source link

Support for SHACL #660

Open joepio opened 7 years ago

joepio commented 7 years ago

I've read in the W3C wiki that OpenLink is planning on implementing SHACL processing. Is this correct, and if yes, is there a roadmap which indicates a possible release date?

Thanks for open sourcing this awesome project, by the way :)

HughWilliams commented 7 years ago

In Virtuoso 8.0 which is now available in beta:

https://medium.com/virtuoso-blog/virtuoso-8-public-beta-1-4495ac9e490c

Custom Reasoning and Inference Rules — built-in SPIN-compliant functionality is now available. Thus we support the SPIN syntax and may support SHACL in the future. See example use case at:

https://medium.com/virtuoso-blog/virtuoso-8-0-creating-a-custom-inference-rules-using-spin-vocabulary-d7a060f859ef

Note this is a commercial (closed source) feature only ...

westurner commented 6 years ago

https://medium.com/virtuoso-blog/virtuoso-8-public-beta-1-4495ac9e490c

https://medium.com/virtuoso-blog/virtuoso-8-0-creating-a-custom-inference-rules-using-spin-vocabulary-d7a060f859ef

https://www.w3.org/TR/shacl/

https://en.wikipedia.org/wiki/SHACL

kidehen commented 6 years ago

SHACL support in Virtuoso will be focused on extending our Macro Processor to include generation of Custom Inference rules using terms from SHACL vocabulary, just as we do currently with SPIN.

SHACL provides improvements to Custom Inference rules by having more flexible handling of SPARQL prefixes i.e., you can use CURIEs in your declarations as opposed to full URIs which is the case with SPIN.

As for data entry validation aspect, that is more of a feature for client applications such as RDF Editors. We are considering that for our RDF Editor.

[1] https://twitter.com/kidehen/status/910201151873789953 [2] http://osde.openlinksw.com -- RDF Editor

jbkoh commented 6 years ago

Just noticed this note. While fully understanding Virtuoso is a commercial solution that should have paid features, I wonder if there will be a plan to open the features. I am looking for triple stores for buildings (brickschema.org), which support SHACL. Virtuoso has been the best so far for the performance (especially for transitive queries), and I wish I can use SHACL on top of it.

Thanks!

HughWilliams commented 6 years ago

There are no plans currently to make the Virtuoso Custom Inferencing Rule engine, and hence SPIN/SHACL support, an Open Source feature ...

berezovskyi commented 6 years ago

Thank you for the clarification, @HughWilliams

hmottestad commented 5 years ago

@jbkoh just wanted to wag my own tail by promoting RDF4J. It has SHACL support (most common features, more to come) and a database backend. The SHACL implementation is blazingly fast, and the database backend is fast for being OpenSource.

TallTed commented 5 years ago

@hmottestad - You do recognize that the RDF4J Framework can be used atop Virtuoso (via the Virtuoso RDF4J Provider), such that RDF4J's reasoning features (including RDF4J's SHACL support, as I understand it) can be used with Virtuoso as database backend a/k/a RDF triple/quad store, whether that Virtuoso is Open Source Edition (VOS) or Enterprise Edition (VEE)), right?

hmottestad commented 5 years ago

Does the Virtuoso backend implement the NotifyingSail interface? This is required by the ShaclSail, since it will analyse your transaction to only validate your changes and not those 500 million untouched and irrelevant statements you have in your database ;)

hmottestad commented 4 years ago

Came back here today after googling about SHACL support in Virtuoso. Should probably answer my own question. The Virtuoso RDF4J Provider does not implement the interfaces required by the RDF4J ShaclSail, so this would not be a viable option.

We are looking into supporting just the Repository interface for single-shot SHACL validation in the future.