/rdfshape-api

API for validating and transforming RDF, ShEx, SHACL and more.

Primary LanguageScalaMIT LicenseMIT

RDFShape

RDFShape is web API for semantic data analysis and validation implemented in Scala using the http4s library.

This repository contains the backend part of RDFShape and acts as a queryable API to be consumed by clients. To learn more about our public client, see its GitHub repository or try it.

Continuous Integration Docker build

Codacy

Deployed versions of RDFShape API

RDFShape is already deployed here.

Quick reference


Deployment and Usage

Please, refer to this project's wiki or webpage for detailed information related to:

  • Quickstarting the API (via SBT / Docker)
  • Using the API with simple examples
  • Further documentation and resources

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.

Dependencies

RDFShape server has been implemented in Scala using the following libraries:

  • SHaclEX: a Scala implementation of ShEx and SHACL.
  • http4s: a purely functional library for http.
  • cats: a library for functional programming in Scala.
  • Logback with Scala Logging: logging framework.
  • scallop: a simple command-line arguments parsing library for Scala.
  • UMLShaclex: contains the visualization code that converts schemas to UML diagrams.
  • SRDF: is the library used to handle RDF. It is a simple interface with 2 implementations, one in Apache Jena, and the other in RDF4j.
  • Any23: is used by RDFShape to convert HTML files in RDFa and Microdata to RDF.
  • Topbraid SHACL API: is used to add another SHACL engine apart of the SHaclEX and Apache Jena SHACL engines.

Contribution and issues

We really appreciate contributions. Please fork this repository and open a pull request to add more features or submit issues:

RdfShape contributors