Giter VIP home page Giter VIP logo

shacl-s's Introduction

SHACL-S

Scala implementation of SHACL.

This project contains an implementation of SHACL in Scala.

Continuous Integration

Codacy Badge

codecov

Maven Central

Introduction

This project contains an implementation of SHACL in Scala.

Installation and compilation

The project uses sbt for compilation as well as Java 1.11.

  • sbt test compiles and runs the tests

Usage

Once compiled, the program can be run as a command line tool. It is possible to run the program inside sbt as:

Validating RDF data with SHACL

Example:

sbt "run --data examples/shacl/good1.ttl 
         --engine ShaClex"

Interactive mode with sbt

It is usually faster to run the sbt command, which opens the interactive sbt shell and inside that shell, execute the different commands.

$ sbt
... several information about loading libraries
sbt> run -d examples/shacl/good1.ttl --engine ShaClex  

Binary mode

The fastest way to run Shacl-s is to compile the code and generate a binary. The following command:

$ sbt universal:packageBin
...generates the file...
target/universal/shacl-s-N.N.N.zip

which contains the compressed binary code.

Implementation details

  • The engine is based on purely functional concepts using the cats library

Compatibility tests

The current implementation passes all shacl-core tests. In order to generate the EARL report, run:

$ sbt 
[...]
sbt:shaclex> project shacl 
sbt:shacl> testOnly es.weso.shacl.report.ReportGeneratorCompatTest

Publishing to OSS-Sonatype

This project uses the sbt ci release plugin for publishing to OSS Sonatype.

SNAPSHOT Releases

Open a PR and merge it to watch the CI release a -SNAPSHOT version

Full Library Releases
  1. Push a tag and watch the CI do a regular release
  2. git tag -a v0.1.0 -m "v0.1.0"
  3. git push origin v0.1.0 Note that the tag version MUST start with v.

More information

  • More information about SHACL can be read in the Validating RDF data co-authored by one of the authors.
  • This project was originally part of SHaclEx but we decided to modularize that project and keep the SHACl implementation in its own repository.
  • An online demo based on this library is available at http://rdfshape.weso.es.
  • Another online demo based on this library customized for Wikidata is available at http://wikishape.weso.es.
  • This project was based on ShExcala which was focused on Shape Expressions only.

Author & contributors

Contributors:

Adopters

  • RDFShape: An online demo powered by this library.
  • Wikishape: An online demo powered by this library for Wikidata.
  • Eclipse lyo: An SDK and a modelling environment to design and develop linked data applications based on the OSLC standards. The validation library is lyo-validation.

Contribution

Contributions are greatly appreciated. Please fork this repository and open a pull request to add more features or submit issues

shacl-s's People

Contributors

labra avatar markiantorno avatar

Stargazers

 avatar ebigram avatar  avatar Henry Story avatar 110416 avatar Alex Merritt avatar Lorenzo Gabriele avatar

Watchers

 avatar James Cloos avatar  avatar

shacl-s's Issues

Repair failing tests

The test code doesn't compile becasue we refactored several libraries. We must update it so it compiles again.

Automate the publication of artifacts

It would be great to automate the publication of artifacts to binTray.

Things to solve:

  • Enable coverage only to generate coverage measurements but avoid to include the code in the binaries published. At the command line, we solve this using: sbt clean coverageOff +publish.
  • Add some credentials to travis so it can do the publication on behalf of the authors.
  • Publish only when the version changes and all the tests pass

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.