diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 71562ab..e943476 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,7 +51,11 @@ In each case: - Activity info - Should consist of two badges - The latest known stable version badge (from any most common binary repository or GH Releases) - - The recent repository activity badge + - The recent repository activity badge (only one of these options): + - "latest release date" (recommended) from any repository binary or GitHub Releases + - if there is no published versions, then "last commit date" + - Should not contain URL links + - Use HTML `` badge format, not Markdown image, (e.g. use `Latest Version` not `![Latest Version](https://img.shields.io/crates/v/rudof-cli.svg)`) - Use `` badge format for better inline alignment - Do not use any other badges (build status, dependencies, etc.) - Additional emoji can be used to mark commercial 💰 or abandoned ☠️ software @@ -84,6 +88,29 @@ With a description: - [Apache Jena SHACL](https://github.com/apache/jena/tree/main/jena-shacl) Maven Central Version Maven Central Last Update - Supports SHACL Core, SHACL-SPARQL; [docs](https://jena.apache.org/documentation/shacl/index.html); `Apache-2.0` license; `Java`. ``` +### Ignoring some linter's errors + +Our list [awesome lint](https://github.com/sindresorhus/awesome-lint) + +In general it is better to comply with linter's rules. But in some cases it is acceptable to bypass it: +- If you are adding reasonably the same URL link to several list's categories, you'll end up with duplication errors. +- If you reasonably need more freedom in a description formatting, this will lead to formatting errors. + +In this cases it is possible to enable/disable some linter's rules for the specific list item (lines) only with ```lint ignore``` (the recommended approach) or enable/disable it globally (not recommended) with ```lint disable``` and ```lint enable```. + +Just put the rule IDs after the "lint ignore" and separate it with a space from each other. + +- double-link -- checks list item duplication +- awesome-list-item -- checks list item formatting + +Examples + +``` + + + +``` + ## How to add a new category If you are creating a new category, move any relevant projects to that new category, while ensuring diff --git a/README.md b/README.md index f9ca19a..446e771 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Semantic shapes are frequently described using the SHACL or ShEx language. - [SHACL Validators](#shacl-validators) - [ShEx Validators](#shex-validators) -- [Shape Discovery Tools and Collections](#shape-discovery-tools-and-collections) +- [Shape Discovery Tools and Collections](#shape-discovery-tools-and-collections) - [Shape Convertors and Generators](#shape-convertors-and-generators) - [Shape-based Query Generators](#shape-based-query-generators) - [Shape Editors, Visualizations](#shape-editors-visualizations) @@ -31,10 +31,10 @@ Software tools or libraries, sorted by programming language. - [Apache Jena SHACL](https://github.com/apache/jena/tree/main/jena-shacl) Maven Central Version Maven Central Last Update - Supports SHACL Core, SHACL-SPARQL; [docs](https://jena.apache.org/documentation/shacl/index.html); `Apache-2.0` license; `Java`. - [RDF4J SHACL Engine](https://github.com/eclipse-rdf4j/rdf4j/tree/main/core/sail/shacl) Maven Central Version Maven Central Last Update - Supports SHACL Core (without some property paths, see [5.0.3 improvements](https://github.com/Sveino/Inst4CIM-KG/issues/95#issuecomment-2437819932)), SHACL-SPARQL, incremental validation; [docs](https://rdf4j.org/documentation/programming/shacl/); `BSD-3-Clause` license; `Java`. - [TopBraid SHACL API](https://github.com/TopQuadrant/shacl) Maven Central Version Maven Central Last Update - Supports SHACL Core, SHACL-SPARQL, SHACL rules; based on Jena; `Apache-2.0` license; `Java`. - - [EU Interoperability Test Bed (ITB)](https://github.com/ISAITB/shacl-validator) GitHub last commit - playground based on TopBraid SHACL API, [docs](https://www.itb.ec.europa.eu/docs/guides/latest/validatingRDF/index.html): validate [RDF data](https://www.itb.ec.europa.eu/shacl/any/upload), [SHACL shapes](https://www.itb.ec.europa.eu/shacl/shacl/upload), [DCAT-AP.DE](https://www.itb.ec.europa.eu/shacl/dcat-ap.de/upload) - - [Sparna SHACL playground](https://shacl-play.sparna.fr/play/) - Free online suite of tools to work with SHACL; based on TopBraid SHACL API; `Java` + - [EU Interoperability Test Bed (ITB)](https://github.com/ISAITB/shacl-validator) GitHub last commit - Playground based on TopBraid SHACL API, [docs](https://www.itb.ec.europa.eu/docs/guides/latest/validatingRDF/index.html): validate [RDF data](https://www.itb.ec.europa.eu/shacl/any/upload), [SHACL shapes](https://www.itb.ec.europa.eu/shacl/shacl/upload), [DCAT-AP.DE](https://www.itb.ec.europa.eu/shacl/dcat-ap.de/upload). + - [Sparna SHACL playground](https://shacl-play.sparna.fr/play/) - Free online suite of tools to work with SHACL; based on TopBraid SHACL API; `Java`. - [SHACL eXtended (SHACL-X)](https://github.com/SHACL-X/shacl-x) - extension of the TopBraid SHACL API GitHub Release GitHub Release Date - Supports what TopBraid SHACL API supports + SHACL JavaScript Extensions (SHACL-JS), SHACL Python Extensions (SHACL-Py); based on Jena; [docs](https://shacl-x.github.io/docs/); `Apache-2.0` license; `Java`. -- [shacl-js](https://github.com/TopQuadrant/shacl-js) GitHub Release Date - SHACL API; `Apache` license; `JavaScript`. Recommends migration to `rdf-validate-shacl`. ☠️. +- [shacl-js](https://github.com/TopQuadrant/shacl-js) GitHub Release Date - SHACL API; `Apache` license; `JavaScript`. Recommends migration to `rdf-validate-shacl` ☠️. - [playground](https://shacl.org/playground/) - Browser-based testbed. - [rdf-validate-shacl](https://github.com/zazuko/rdf-validate-shacl) NPM Version GitHub Release Date - Supports SHACL Core; pure JavaScript validator on top of the [RDFJS](https://rdf.js.org/) stack; `MIT` license; `JavaScript`. - [playground](https://zazuko.github.io/shacl-playground) - Browser-based testbed. @@ -42,7 +42,8 @@ Software tools or libraries, sorted by programming language. - [playground](https://playground.rdf-ext.org/shacl/) - Browser-based testbed. - [rdf-ext-cli](https://github.com/rdf-ext/rdf-ext-cli) - Command line tool for validation. Data and shapes can be given as file, URL, or SPARQL endpoint + query. - [SHACL for Ruby](https://github.com/ruby-rdf/shacl) Gem Version GitHub last commit - A pure-Ruby library for working with the Shape Constraint Language to validate the shape of RDF graphs; `BSD-3-Clause` license; `Ruby`. -- [maplib](https://github.com/DataTreehouse/maplib) - High-performance RDF knowledge graph construction, SHACL validation and SPARQL-based enrichment. `Apache-2.0` license. `Rust` with `Python` bindings. But SHACL is not open source: [lib/shacl/src/lib.rs](https://github.com/DataTreehouse/maplib/blob/main/lib/shacl/src/lib.rs) says `unimplemented!("Contact Data Treehouse to try")` 💰 +- [maplib](https://github.com/DataTreehouse/maplib) - High-performance RDF knowledge graph construction, SHACL validation and SPARQL-based enrichment. `Apache-2.0` license. `Rust` with `Python` bindings. But SHACL is not open source: [lib/shacl/src/lib.rs](https://github.com/DataTreehouse/maplib/blob/main/lib/shacl/src/lib.rs) says `unimplemented!("Contact Data Treehouse to try")` 💰. + - [rudof](https://github.com/rudof-project/rudof) Latest Version Release Date - Implements ShEx, SHACL, [DCTAP](https://www.dublincore.org/specifications/dctap/), and other technologies in the RDF ecosystem; library and CLI; `Apache` and `MIT` licenses; `Rust` with `Python` bindings. [docs](https://rudof-project.github.io/rudof/cli_usage/shacl_validate.html). ## ShEx Validators @@ -52,10 +53,11 @@ Software tools or libraries, sorted by programming language. - [Apache Jena ShEx](https://github.com/apache/jena/tree/main/jena-shex) Maven Central Version Maven Central Last Update - Supports ShEx, ShExC; not supported semantic actions, EXTERNAL; [docs](https://jena.apache.org/documentation/shex/); `Apache-2.0` license; `Java`. - [shexSpec/shex.js](https://github.com/shexjs/shex.js) NPM Version GitHub last commit - JavaScript implementation of Shape Expressions; `MIT` license; `JavaScript`. - [playground](http://rawgit.com/shexSpec/shex.js/master/doc/shex-simple.html) - Browser-based testbed. -- [ShEx-validator](https://github.com/HW-SWeL/ShEx-validator) GitHub last commit ☠️ - Standalone Node module with a command line interface; `MIT` license; `JavaScript`. Built on top of [ShExDemo](https://github.com/ericprud/ShExDemo) +- [ShEx-validator](https://github.com/HW-SWeL/ShEx-validator) GitHub last commit ☠️ - Standalone Node module with a command line interface; `MIT` license; `JavaScript`. Built on top of [ShExDemo](https://github.com/ericprud/ShExDemo). - [Validata](https://github.com/HW-SWeL/Validata) GitHub last commit ☠️ - Web-based UI to validate RDF against ShEx schemas; `MIT` license; `JavaScript`. - [playground1](http://hw-swel.github.io/Validata/) (HW-SWeL) - [playground2](https://www.w3.org/2015/03/ShExValidata/) (W3C) + - [rudof](https://github.com/rudof-project/rudof) Latest Version Release Date - Implements ShEx, SHACL, [DCTAP](https://www.dublincore.org/specifications/dctap/), and other technologies in the RDF ecosystem; library and CLI; `Apache` and `MIT` licenses; `Rust` with `Python` bindings. [docs](https://rudof-project.github.io/rudof/cli_usage/shex.html). ## Shape Discovery Tools and Collections @@ -63,7 +65,7 @@ Software tools or libraries, sorted by programming language. - [RDFminer](https://github.com/Wimmics/RDFminer) - Discover SHACL shapes representative of an RDF data graph, by Wimmics; `CECILL-C` license; `Java`. - [SHACL Discovery Service](https://github.com/AKSW/discover-shacl-shapes) - Discovery service for SHACL shapes/shape groups; `MIT` license; `PHP`. - [Shapes of You index](https://index.semanticscience.org/) - SPARQL queries, OWL/SKOS vocabularies, SHACL/ShEx shapes, indexed from public `git` repositories; `MIT` license; `Typescript`, `Python`. -- [SHACL Play! Catalog](https://shacl-play.sparna.fr/play/shapes-catalog) - To see your shapes listed here, add them in the [Shapes Catalog source file on Github](https://github.com/sparna-git/SHACL-Catalog/blob/master/shacl-catalog.ttl). +- [SHACL Play! Catalog](https://shacl-play.sparna.fr/play/shapes-catalog) - To see your shapes listed here, add them in the [Shapes Catalog source file on GitHub](https://github.com/sparna-git/SHACL-Catalog/blob/master/shacl-catalog.ttl). - [schema.org Shapes](http://datashapes.org/schema) - Schema.org, converted to SHACL by TopQuadrant. - [Europarl Shapes](https://data.europarl.europa.eu/en/developer-corner) - Application profiles for European Parliament & all related dataset-specific profiles. @@ -74,15 +76,16 @@ Also see [Polyglot Modeling](https://github.com/json-ld/yaml-ld/issues/19) tools - [ShacShifter](https://github.com/AKSW/ShacShifter) GitHub last commit ☠️ - Shape shifter from SHACL to other formats (currently RDForms); `GPL-3.0` license; `Python`. - [SHACL To JSON Schema](https://github.com/comake/shacl-to-json-schema) NPM Version GitHub last commit - SHACL-to-JSON-Schema translator; `Typescript`. - [shapiro](https://github.com/mathiasrichter/shapiro) GitHub last commit - SHACL to JSON-Schema, HTML. + - [rudof](https://github.com/rudof-project/rudof) Latest Version Release Date - Converts between different RDF Data modeling technologies: SHACL, SHEX, [DCTAP](https://github.com/dcmi/dctap), UML diagrams, HTML documentation. [docs](https://rudof-project.github.io/rudof/cli_usage/convert.html). - [SHACL Play! JSON-LD context](https://shacl-play.sparna.fr/play/context) Version GitHub Release Date - SHACL-to-JSON-LD context generator; `Java`. - [SHACL Play! Converter](https://shacl-play.sparna.fr/play/convert) - Converts between RDF schema formats. Has OWL-to-SHACL (open, semi-closed, closed). - [owl2shacl](https://github.com/sparna-git/owl2shacl) - OWL-to-SHACL conversion rules. - [elevont/owl2shacl](https://github.com/elevont/owl2shacl) - A CLI tool that tries to convert simple OWL ontologies into SHACL shapes; `AGPL-3.0` license; `rust`. -- [LinkML](https://linkml.io/linkml/) ([Github](https://github.com/linkml/linkml) and [more repos](https://github.com/orgs/linkml/repositories)) GitHub last commit GitHub Release Date [![PyPi](https://img.shields.io/pypi/v/linkml.svg)](https://pypi.python.org/pypi/linkml) - Input is YAML; output is [SHACL](https://linkml.io/linkml/generators/shacl.html), [ShEx](https://linkml.io/linkml/generators/shex.html), JSON Schema, JSON-LD context and instances, SPARQL, OWL, GraphQL, Pydantic Python, ProtoBuf, various documentation formats; `Apache` license `Python`. +- [LinkML](https://linkml.io/linkml/) ([GitHub](https://github.com/linkml/linkml) and [more repos](https://github.com/orgs/linkml/repositories)) PyPI - Version GitHub Release Date - Input is YAML; output is [SHACL](https://linkml.io/linkml/generators/shacl.html), [ShEx](https://linkml.io/linkml/generators/shex.html), JSON Schema, JSON-LD context and instances, SPARQL, OWL, GraphQL, Pydantic Python, ProtoBuf, various documentation formats; `Apache` license `Python`. - TNO [Semantic Treehouse](https://www.semantic-treehouse.nl/) - Has [SHACL input](https://www.semantic-treehouse.nl/docs/wizard/shacl-input) and [output](https://www.semantic-treehouse.nl/docs/wizard/shacl-output). Used as a Vocabulary Hub in dataspaces. - [TopQuadrant: OWL Axioms to SHACL Constraints](https://www.topquadrant.com/doc/latest/reference/Transform_ConvertOWLAxiomsToSHACLConstraints.html) - Commercial, closed-source solution 💰. -- [Ontotext SOML](https://platform.ontotext.com/semantic-objects/soml/) - input is YAML, output is GraphQL schema with querying and mutations, SHACL shapes for validation. Commercial, closed-source 💰. +- [Ontotext SOML](https://platform.ontotext.com/semantic-objects/soml/) - Input is YAML, output is GraphQL schema with querying and mutations, SHACL shapes for validation. Commercial, closed-source 💰. ## Shape-based Query Generators