-
Notifications
You must be signed in to change notification settings - Fork 2
Updated list of implementations
Vladimir Alexiev edited this page Apr 22, 2021
·
15 revisions
Table of Contents
Here is an up to date list of ShEx/SHACL implementations. It was started in the book Validating RDF:
- shex: http://book.validatingrdf.com/bookHtml010.html#sec63
- shacl: http://book.validatingrdf.com/bookHtml011.html#sec124
It is now updated at https://github.com/validatingrdf/validatingrdf.github.io/wiki/Updated-list-of-implementations
name | ver/date | language | playground | source/distribution | Uses/dependencies. Applied to | Contact |
---|---|---|---|---|---|---|
shex.js | js | http://rawgit.com/shexSpec/shex.js/master/doc/shex-simple.html | https://github.com/shexSpec/shex.js/ | Javascript/N3.js | Eric Prud’hommeaux | |
ShEx NPM | js | https://www.npmjs.com/package/shex | node.js, shex.js | |||
ShEx-validator | js | https://github.com/HW-SWeL/ShEx-validator | Node.js, NPM, Bower, shex.js | @AlasdairGray | ||
Validata | js | http://hw-swel.github.io/Validata/, https://www.w3.org/2015/03/ShExValidata/ | https://github.com/HW-SWeL/Validata | ShEx-validator, browserify. HCLS-datasets, DCAT, OpenPhacts, bioschemas | @AlasdairGray | |
ShExJava | 1.1a 2018-06-25 | java | http://shexjava.lille.inria.fr/ | https://github.com/iovka/shex-java, https://gforge.inria.fr/projects/shex-impl/ | RDF4J, Jena, JSON-LD-Java, OWL API, Clerezza | @iovka |
RDFShape, ShaclEx | scala | http://rdfshape.weso.es/, http://shaclex.herokuapp.com/ | https://github.com/labra/rdfshape, https://github.com/labra/shaclex | Jena, Scala, SBT. FHIR, Wikidata, Schema.org, book examples | @labra | |
PyShEx | python | https://github.com/hsolbrig/PyShEx | @hsolbrig | |||
shex.rb | ruby | https://github.com/ruby-rdf/shex | Ruby/RDF.rb | Gregg Kellogg | ||
ShExkell | haskell | https://github.com/weso/shexkell | Sergio Iván Franco |
name | ver/date | language | playground | source/distribution | Uses/dependencies. Applied to | Contact |
---|---|---|---|---|---|---|
SHACL API | 1.1.0 2018-04-24 | java | https://github.com/TopQuadrant/shacl | Jena. SHACL Core, SHACL-SPARQL, SHACL-JS, SHACL rules | TopQuadrant | |
Jena SHACL | 2019-09-25 | java | https://github.com/apache/jena/, maven: org.apache.jena:jena-shacl | Jena. SHACL Core, SHACL-SPARQL | [email protected] | |
SHACL rdf4 | 22 Feb 2018 | java | https://github.com/eclipse/rdf4j-storage | Google Summer of Code 2017 | @hmottestad | |
SHACL batch | java | https://github.com/PaulZH/shacl-batch-validator | SHACL API, Jena, Spring Boot. Output reports are turtle or html | @PaulZH | ||
dotnetrdf | dotNet | http://langsamu.net/shacl/ | https://github.com/dotnetrdf/dotnetrdf | dotNet, SHACL Core, SHACL-SPARQL | @langSamu | |
ELI-validator | java | http://publications.europa.eu/eli-validator/home, http://labs.sparna.fr/eli-validator/ | SHACL API, Jena, Semargl RDFa parser. European Legislation Identifier (ELI) | @tfrancart | ||
OSLO Validator | java | https://data.vlaanderen.be/shacl-validator/ | https://github.com/pwc-technology-be/OSLO2Validator, https://github.com/Informatievlaanderen/OSLO-Validator | SHACL API, Jena, Semargl | @EmidioStani, @carmenvandeloo | |
shacl-runner | scala | https://github.com/balhoff/shacl-runner | SHACL API, Jena. OBO ontologies | @balhoff | ||
STTL SHACL | java | http://corese.inria.fr/ | http://ns.inria.fr/sparql-template | Java, STTL | Olivier Corby | |
Netage SHACL | java | Jena | Nicky van Oorschot | |||
SHACL JS | js | http://shacl.org/playground/ | https://github.com/TopQuadrant/shacl-js | TopQuadrant | ||
SHACL-Check | js | https://github.com/linkeddata/shacl-check | a prototype | Tim Berners-Lee | ||
RDFShape, ShaclEx | scala | http://rdfshape.weso.es/, http://shaclex.herokuapp.com/ | https://github.com/labra/rdfshape, https://github.com/labra/shaclex | Jena, Scala, SBT. FHIR, Wikidata, Schema.org, book examples | @labra | |
pySHACL | 14-Sep-2018 | python | https://github.com/CSIRO-enviro-informatics/pyshacl-webservice | https://github.com/RDFLib/pySHACL | Passes all core constraint tests. SPARQL-based tests due for completion in 1w | Nicholas Car |
RDFUnit | java | https://github.com/AKSW/RDFUnit/ | SHACL-Core, SHACL-SPARQL, OWL, OSLC, DC DSP | AKSW | ||
TrucHLe | scala | https://github.com/TrucHLe/SHACL | ||||
alt SHACL | python | https://github.com/pfps/shacl | Alternative implementation | Peter F. Patel-Schneider |
Finding shapes:
- https://schreckl.inspirito.de/, https://github.com/AKSW/discover-shacl-shapes: SHACL Discovery Service by Konrad Abicht (@k00ni at AKSW)
-
https://github.com/search?q=shacl-shapes: the Discovery service finds Github repos by topic
shacl-shapes
Specific shapes
- https://github.com/w3c/data-shapes/tree/gh-pages/data-shapes-test-suite/tests, http://w3c.github.io/data-shapes/data-shapes-test-suite/
-
http://datashapes.org/schema: schema.org data (translation of
schema:domain/rangeIncludes
) - https://github.com/AKSW/shacl-shapes: accessible-place, adult-person. Also: accepts contributions by PR
- http://publications.europa.eu/eli-validator/registry: European Legal Identifier
- https://github.com/BlueBrain/nexus-prov: EU FET Flagship project "Human Brain"
- https://github.com/factsmission/dcat-ap-ch-shacl: ECH-0200 standard
- https://github.com/balhoff/obo-qc-shapes, https://github.com/balhoff/shacl-runner/blob/master/shapes.ttl: OBO ontology quality control
- https://github.com/periodo/periodo-validation: PeriodO historic periods
- https://github.com/simonstey/ODRL-SHACL-Shapes: license info
ShEx: the core can convert between readable/compact (ShExC), JSON (ShExJ), RDF (ShExR)
SHACL:
- SHACLC compact syntax:
- spec: https://w3c.github.io/shacl/shacl-compact-syntax/
- tests: https://github.com/w3c/shacl/tree/master/shacl-compact-syntax/tests/
- grammar: https://github.com/w3c/shacl/blob/master/shacl-compact-syntax/SHACLC.g4
- blog: https://www.topquadrant.com/technology/shacl/shacl-compact-syntax-quick-tutorial/
- source: https://github.com/TopQuadrant/shacl/tree/master/src/main/java/org/topbraid/shacl/compact
- command-line: https://gitlab.ontotext.com/yasen.marinov/shaclconvert (ask @VladimirAlexiev if you want to use it)
- issues: https://github.com/TopQuadrant/shacl/issues/91, https://github.com/TopQuadrant/shacl/issues/92, https://github.com/TopQuadrant/shacl/issues/93
- Emacs: https://github.com/VladimirAlexiev/shaclc-mode (with shots comparing it to SHACL)
- https://github.com/AKSW/ShacShifter: "shape shifter" from SHACL to other formats (currently RDForms) by Norman Radtke (@splattater at AKSW)
- http://labs.sparna.fr/skos-play/convert: from Excel files
- https://github.com/Informatievlaanderen/OSLO-SpecificationGenerator, and then https://github.com/Informatievlaanderen/OSLO-Generated
- YASHE (Yet Another ShEx Editor): https://www.weso.es/YASHE/
- Source: https://github.com/weso/YASHE
- UnSHACLed: a student project at UGent.
- Demo: https://dubious-developments.github.io/release-candidate/index.html#/ (http://193.190.127.184:8042/auth/ is broken on signin with Gitlab),
- And http://ecodalo.ilabt.imec.be:8980/#/ (http://dia.test.iminds.be:8901/auth is broken on signin with Gitlab).
- Source: https://github.com/dubious-developments/UnSHACLed, https://github.com/dubious-developments/UnSHACLed-collaboration-server, https://github.com/dubious-developments/UnSHACLed-server
- Demo: https://dubious-developments.github.io/release-candidate/index.html#/ (http://193.190.127.184:8042/auth/ is broken on signin with Gitlab),
- Allotrope: https://gitlab.com/allotrope-open-source/shape-editor
- Includes a SHACLC convertor
- Not quote ready, eg see https://gitlab.com/allotrope-open-source/shape-editor/issues/5
- http://publications.europa.eu/eli-validator/display?shapes=http://datashapes.org/schema: shows shapes as HTML
You also should know about:
- YASGUI SPARQL editor: https://triply.cc/docs/yasgui
- YATE Turtle editor: https://perfectkb.github.io/yate/
- SGE SPARQL-Generate editor: https://sparql-generate.github.io/sparql-generate-editor/
- SPARQL-Generate: https://ci.mines-stetienne.fr/sparql-generate/
- Playground: https://ci.mines-stetienne.fr/sparql-generate/playground.html, which allows YATE+SGE etc to: edit queries, documents, Turtle datasets, and shows results
Data viewers/Editors based on shapes:
- https://github.com/semantifyit/annotation-editor: for schema.org, using SHACL
- http://rdforms.org/#!templateReference.md, https://bitbucket.org/metasolutions/rdforms/ by MetaSolutions: based on its own template definitions, not shapes (ShacShifter can convert to these)
-
https://entryscape.com/: by MetaSolutions, based on RDForms, for editing DCAT descriptions
- Catalog: Manage and publish datasets according to the DCAT-AP standard. Datasets can be public APIs, data dumps, document collections, etc.
- Terms: Create teminologies for reuse according to SKOS standard. Build upon existing terminologies or create new ones. (Is this based on RDForms?)
- Workbench: Collaboratively manage and publish custom entities using Linked Data. Describe and enrich your entities with metadata.
- Registry and harvesting of: DCAT-AP files, CKAN API and INSPIRE sources via the CSVW protocol
- Vitro: https://github.com/vivo-project/Vitro. generic ontology and instance editor. Used in VIVO for science data
- Potentially used in LD4L for library data: https://github.com/ld4l-labs/Vitro.
- VitroLib uses SHACL as form description language: https://wiki.duraspace.org/display/ld4lLABS/The+VitroLib+Metadata+Editor.
- Paper: The SHACL Awakens: A funny thing happened on the way to implementing a metadata application profile in Vitro, VIVO 2018
-
https://github.com/schimatos/schimatos.org: A SHACL-based Web-Form Generator for Knowledge Graph Editing
- demo: http://schimatos.org/
- https://forms.hypermedia.app