rudof


Namerudof JSON
Version 0.1.12 PyPI version JSON
download
home_pagehttps://www.weso.es/shapes-rs/
SummaryRDF data shapes implementation in Rust
upload_time2024-08-13 18:24:03
maintainerNone
docs_urlNone
authorJose Emilio Labra Gayo <labra@uniovi.es>, Ángel Iglesias Préstamo <angel.iglesias.prestamo@gmail.com>, Marc-Antoine Arnaud <marc-antoine.arnaud@luminvent.com>
requires_pythonNone
licenseMIT OR Apache-2.0
keywords rdf linked-data semantic-web shex
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SHAPES-rs

[![Shapes-rs](https://github.com/weso/shapes-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/weso/shapes-rs/actions/workflows/ci.yml)
[![dependency status](https://deps.rs/repo/github/weso/shapes-rs/status.svg)](https://deps.rs/repo/github/weso/shapes-rs)

This repo contains an RDF data shapes library implemented in Rust.
The implementation supports [ShEx](http://shex.io/), [SHACL](https://www.w3.org/TR/shacl/), [DCTap](https://www.dublincore.org/specifications/dctap/) and conversions between different RDF data modeling formalisms.

The code can be used as a Rust library but it also contains a binary called `rudof` which can be used as an RDF playground.

We provide binaries for Linux, Windows, Mac and Docker (see [releases](https://github.com/weso/shapes-rs/releases)), as well as Python bindings.

- [List of issues](https://github.com/weso/shapes-rs)
- [Discussion](https://github.com/weso/shapes-rs/discussions/landing)
- [FAQ](https://github.com/weso/shapes-rs/wiki/FAQ)
- [How to guides](https://github.com/weso/shapes-rs/wiki/Howto-guides)
- [Roadmap](https://github.com/weso/shapes-rs/issues/1)

## Installation

### Official releases

You can download a binary from the [latest release](https://github.com/weso/shapes-rs/releases/latest) page. There you will also find the compiled packages for the installation on your system using a package manager.

#### Ubuntu

Download the binary from [https://github.com/weso/shapes-rs/releases] and install the `.deb` package running the following commands after replacing X.X.X by the latest version:

```sh
wget https://github.com/weso/shapes-rs/releases/download/X.X.X/rudof_vX.X.X_amd64.deb
sudo dpkg -i rudof_vX.X.X_amd64.deb
```

#### Windows

The binary can be downloaded from [https://github.com/weso/shapes-rs/releases]

#### Mac

The binary is available at: [https://github.com/weso/shapes-rs/releases]

<details markdown="block">
<summary>Compiling from source</summary>

### Compiling from source

`shapes-rs` has been implemented in Rust and is compiled using [cargo](https://doc.rust-lang.org/cargo/). The command `cargo run` can be used to compile and run locally the code.

For example:

```sh
cargo run -- validate --data examples/user.ttl --schema examples/user.shex --shapemap examples/user.sm 
```

### Compiling from source and installing the binary (Debian)

Install `cargo deb` (only the first time)

```sh
cargo install cargo-deb
```

Create the `.deb` package by:

```sh
cargo deb
```

And run:

```sh
sudo dpkg -i target/debian/shapes-rs_0.0.11-1_amd64.deb
```

## Docker

The library is also published as a Docker image.

</details>

## Usage

### Some examples

The folder `examples` contains several example files with ShEx schemas and RDF data.

### Validate a simple RDF file with a ShEx schema using a ShapeMap

```sh
rudof validate --data examples/user.ttl --schema examples/user.shex --shapemap examples/user.sm
```

We maintain a Wiki page with some common [Usage scenarios and How-to guides](https://github.com/weso/shapes-rs/wiki/Howto-guides).

### Debugging information

It is possible to change the debug level information with:

```sh
export RUST_LOG=value
```

where `value` can be `debug` to show more verbose information or `info` to show basic information.

## Command line usage

```sh
RDF Data shapes implementation in Rust

Usage: rudof [OPTIONS] [COMMAND]

Commands:
  shapemap        Information about ShEx shapemaps
  shex            Information about ShEx schemas
  validate        RDF Validation using ShEx or SHACL
  shex-validate   RDF Validation using ShEx schemas
  shacl-validate  RDF Validation using SHACL shapes
  data            Information about RDF data
  node            Information about RDF nodes which are part of RDF Graphs
  shacl           Information about SHACL shapes
  dctap           Information and processing of DCTAP files
  convert         Conversion between different Data modeling technologies
  help            Print this message or the help of the given subcommand(s)

Options:
  -d, --debug...  
  -h, --help      Print help (see more with '--help')
  -V, --version   Print version
```

### Obtaining information about a ShEx schema

```sh
$ rudof shex --help
Information about ShEx schemas

Usage: rudof shex [OPTIONS] --schema <Schema file name>

Options:
  -s, --schema <Schema file name>
          
  -f, --format <Schema format>
          [default: shexc] [possible values: internal, shexc, shexj, turtle, ntriples, rdfxml, trig, n3, nquads]
  -r, --result-format <Result schema format>
          [default: shexj] [possible values: internal, shexc, shexj, turtle, ntriples, rdfxml, trig, n3, nquads]
  -t, --show elapsed time
          
      --statistics
          
  -o, --output-file <Output file name, default = terminal>
          
  -h, --help
          Print help
```

### Obtaining information about RDF data

```sh
$ rudof data --help
Information about RDF data

Usage: rudof data [OPTIONS] --data <RDF data path>

Options:
  -d, --data <RDF data path>
          
  -t, --data-format <RDF Data format>
          [default: turtle] [possible values: turtle, ntriples, rdfxml, trig, n3, nquads]
  -o, --output-file <Output file name, default = terminal>
          
  -h, --help
          Print help
```

### Obtaining information about a node in RDF data

This command can be useful to obtain the neighbourhood of a node.

```sh
$ rudof node --help
Information about RDF nodes which are part of RDF Graphs

Usage: rudof node [OPTIONS] --node <NODE>

Options:
  -n, --node <NODE>
          
  -d, --data <RDF data path>
          
  -t, --data-format <RDF Data format>
          [default: turtle] [possible values: turtle, ntriples, rdfxml, trig, n3, nquads]
  -e, --endpoint <Endpoint with RDF data>
          
  -m, --show-node-mode <Show Node Mode>
          [default: outgoing] [possible values: outgoing, incoming, both]
      --show hyperlinks
          
  -p, --predicates <PREDICATES>
          
  -o, --output-file <Output file name, default = terminal>
          
  -h, --help
          Print help
```

For example, the following command shows the neighbourhood of node `wd:Q80` in the Wikidata endpoint.

```sh
rudof node -e wikidata -n wd:Q80
```

### Validating an RDF node against some data

```sh
$ rudof validate --help
RDF Validation using ShEx or SHACL

Usage: rudof validate [OPTIONS] --schema <Schema file name>

Options:
  -M, --mode <Validation mode>
          [default: shex] [possible values: shex, shacl]
  -s, --schema <Schema file name>
          
  -f, --schema-format <Schema format>
          [default: shexc] [possible values: internal, shexc, shexj, turtle, ntriples, rdfxml, trig, n3, nquads]
  -m, --shapemap <ShapeMap file name>
          
      --shapemap-format <ShapeMap format>
          [default: compact] [possible values: compact, internal]
  -n, --node <NODE>
          
  -l, --shape-label <shape label (default = START)>
          
  -d, --data <RDF data path>
          
  -t, --data-format <RDF Data format>
          [default: turtle] [possible values: turtle, ntriples, rdfxml, trig, n3, nquads]
  -e, --endpoint <Endpoint with RDF data>
          
      --max-steps <max steps to run>
          [default: 100]
  -o, --output-file <Output file name, default = terminal>
          
  -h, --help
          Print help
```

Example: Assuming there a ShEx file in `examples/user.shex` and an RDF turtle file in `examples/user.ttl` we can ask to validate node `:a` with shape label `:User` using:

```sh
rudof validate -s examples/user.shex -d examples/user.ttl -n :a -l :User
```

If there is a shapemap in `examples/user.sm`, we can validate using:

```sh
rudof validate -s examples/user.shex -d examples/user.ttl -m examples/user.sm
```

### Validating an RDF node against some SHACL Shape

```sh
rudof shacl-validate --shapes examples/simple_shacl.ttl --data examples/simple.ttl
```

### Conversion between shapes formalisms

```sh
$ rudof convert --help
Conversion between different Data modeling technologies

Usage: rudof convert [OPTIONS] --input-mode <Input mode> --source-file <Source file name> --export-mode <Result mode>

Options:
  -m, --input-mode <Input mode>
          [possible values: shex, dctap]
  -s, --source-file <Source file name>
          
  -f, --format <Input file format>
          [default: shexc] [possible values: csv, shexc, shexj, turtle]
  -r, --result-format <Result format>
          [default: default] [possible values: default, internal, json, shexc, shexj, turtle, plantuml, html, svg, png]
  -o, --output-file <Output file name, default = terminal>
          
  -t, --target-folder <Target folder>
          
  -l, --shape-label <shape label (default = START)>
          
  -x, --export-mode <Result mode>
          [possible values: sparql, shex, uml, html]
  -h, --help
          Print help
```

## Main modules

The repo is divided in the following modules:

- [iri_s](https://github.com/weso/shapes-rs/tree/master/iri_s) defines simple IRIs.
- [srdf](https://github.com/weso/shapes-rs/tree/master/srdf) simple RDF model which will be used for validation.
- [prefixmap](https://github.com/weso/shapes-rs/tree/master/prefixmap) Prefix maps implementation.
- [shapemap](https://github.com/weso/shapes-rs/tree/master/shapemap) ShapeMap implementation.
- [shex_ast](https://github.com/weso/shapes-rs/tree/master/shex_ast) defines the ShEx Abstract syntax
- [shex_compact](https://github.com/weso/shapes-rs/tree/master/shex_compact) contains the code required to handle ShEx compact syntax.
- [shex_validation](https://github.com/weso/shapes-rs/tree/master/shex_validation) contains the code required to validate RDF using ShEx.
- [shex_testsuite](https://github.com/weso/shapes-rs/tree/master/shex_testsuite) contains the code required to run the ShEx testsuite.
- [shacl_ast](https://github.com/weso/shapes-rs/tree/master/shacl_ast) defines the SHACL core Abstract syntax.
- [shacl_validation](https://github.com/weso/shapes-rs/tree/master/shacl_validation) contains the code required to validate RDF using SHACL.
- [dctap](https://github.com/weso/shapes-rs/tree/master/dctap) contains the code required to do handle DCTAP files.
- [shapes_converter](https://github.com/weso/shapes-rs/tree/master/shapes_converter) contains the code required to do conversion between different shapes formalisms.

## Publishing the crates

```sh
cargo workspaces publish 
```

## Worskpaces

The project is using cargo workspaces wihch can be installed with:

```sh
cargo install cargo-workspaces
```

## Unit-testing

In order to test all the sub-projects

```sh
cargo test --all
```

Testing one specific subproject:

```sh
cargo test -p shex_validation
```

## Using the ShEx test-suite

The ShEx testsuite is included in a git submodule. In order to obtain it, it is necessary to do:

```sh
git submodule update --init --recursive
cargo run -p shex_testsuite
```

```sh
Usage: shex_testsuite [OPTIONS]

Options:
  -m, --manifest <Manifest FILE (.jsonld)>
          Name of Manifest file [default: shex_testsuite/shexTest/validation/manifest.jsonld]
  -c, --config <Config file>
          [default: shex_testsuite/config.yml]
  -x, --run_mode <MANIFEST_RUN_MODE>
          [default: collect-errors] [possible values: collect-errors, fail-first-error]
  -f, --manifest_mode <MANIFEST_MODE>
          [possible values: schemas, validation, negative-syntax, negative-structure]
  -p, --print_result_mode <PRINT_RESULT_MODE>
          [default: basic] [possible values: basic, failed, passed, not-implemented, all]
  -e, --entry <Entry names>
          
  -t, --trait <Trait names>
          
  -h, --help
          Print help
  -V, --version
          Print version
```

### Validation conformance tests for ShEx

```sh
cargo run -p shex_testsuite -- -m shex_testsuite/shexTest/validation/manifest.jsonld validation 
```

### Schemas tests

```sh
cargo run -p shex_testsuite -- -m shex_testsuite/shexTest/schemas/manifest.jsonld -f schemas -p failed
```

## License

Licensed under either of

- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)

at your option.

## Contributors

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->

<!-- ALL-CONTRIBUTORS-LIST:END -->

### Contribution

Unless you explicitly state otherwise,
any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.


            

Raw data

            {
    "_id": null,
    "home_page": "https://www.weso.es/shapes-rs/",
    "name": "rudof",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "rdf, linked-data, semantic-web, shex",
    "author": "Jose Emilio Labra Gayo <labra@uniovi.es>, \u00c1ngel Iglesias Pr\u00e9stamo <angel.iglesias.prestamo@gmail.com>, Marc-Antoine Arnaud <marc-antoine.arnaud@luminvent.com>",
    "author_email": "Jose Emilio Labra Gayo <labra@uniovi.es>, \u00c1ngel Iglesias Pr\u00e9stamo <angel.iglesias.prestamo@gmail.com>, Marc-Antoine Arnaud <marc-antoine.arnaud@luminvent.com>",
    "download_url": null,
    "platform": null,
    "description": "# SHAPES-rs\n\n[![Shapes-rs](https://github.com/weso/shapes-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/weso/shapes-rs/actions/workflows/ci.yml)\n[![dependency status](https://deps.rs/repo/github/weso/shapes-rs/status.svg)](https://deps.rs/repo/github/weso/shapes-rs)\n\nThis repo contains an RDF data shapes library implemented in Rust.\nThe implementation supports [ShEx](http://shex.io/), [SHACL](https://www.w3.org/TR/shacl/), [DCTap](https://www.dublincore.org/specifications/dctap/) and conversions between different RDF data modeling formalisms.\n\nThe code can be used as a Rust library but it also contains a binary called `rudof` which can be used as an RDF playground.\n\nWe provide binaries for Linux, Windows, Mac and Docker (see [releases](https://github.com/weso/shapes-rs/releases)), as well as Python bindings.\n\n- [List of issues](https://github.com/weso/shapes-rs)\n- [Discussion](https://github.com/weso/shapes-rs/discussions/landing)\n- [FAQ](https://github.com/weso/shapes-rs/wiki/FAQ)\n- [How to guides](https://github.com/weso/shapes-rs/wiki/Howto-guides)\n- [Roadmap](https://github.com/weso/shapes-rs/issues/1)\n\n## Installation\n\n### Official releases\n\nYou can download a binary from the [latest release](https://github.com/weso/shapes-rs/releases/latest) page. There you will also find the compiled packages for the installation on your system using a package manager.\n\n#### Ubuntu\n\nDownload the binary from [https://github.com/weso/shapes-rs/releases] and install the `.deb` package running the following commands after replacing X.X.X by the latest version:\n\n```sh\nwget https://github.com/weso/shapes-rs/releases/download/X.X.X/rudof_vX.X.X_amd64.deb\nsudo dpkg -i rudof_vX.X.X_amd64.deb\n```\n\n#### Windows\n\nThe binary can be downloaded from [https://github.com/weso/shapes-rs/releases]\n\n#### Mac\n\nThe binary is available at: [https://github.com/weso/shapes-rs/releases]\n\n<details markdown=\"block\">\n<summary>Compiling from source</summary>\n\n### Compiling from source\n\n`shapes-rs` has been implemented in Rust and is compiled using [cargo](https://doc.rust-lang.org/cargo/). The command `cargo run` can be used to compile and run locally the code.\n\nFor example:\n\n```sh\ncargo run -- validate --data examples/user.ttl --schema examples/user.shex --shapemap examples/user.sm \n```\n\n### Compiling from source and installing the binary (Debian)\n\nInstall `cargo deb` (only the first time)\n\n```sh\ncargo install cargo-deb\n```\n\nCreate the `.deb` package by:\n\n```sh\ncargo deb\n```\n\nAnd run:\n\n```sh\nsudo dpkg -i target/debian/shapes-rs_0.0.11-1_amd64.deb\n```\n\n## Docker\n\nThe library is also published as a Docker image.\n\n</details>\n\n## Usage\n\n### Some examples\n\nThe folder `examples` contains several example files with ShEx schemas and RDF data.\n\n### Validate a simple RDF file with a ShEx schema using a ShapeMap\n\n```sh\nrudof validate --data examples/user.ttl --schema examples/user.shex --shapemap examples/user.sm\n```\n\nWe maintain a Wiki page with some common [Usage scenarios and How-to guides](https://github.com/weso/shapes-rs/wiki/Howto-guides).\n\n### Debugging information\n\nIt is possible to change the debug level information with:\n\n```sh\nexport RUST_LOG=value\n```\n\nwhere `value` can be `debug` to show more verbose information or `info` to show basic information.\n\n## Command line usage\n\n```sh\nRDF Data shapes implementation in Rust\n\nUsage: rudof [OPTIONS] [COMMAND]\n\nCommands:\n  shapemap        Information about ShEx shapemaps\n  shex            Information about ShEx schemas\n  validate        RDF Validation using ShEx or SHACL\n  shex-validate   RDF Validation using ShEx schemas\n  shacl-validate  RDF Validation using SHACL shapes\n  data            Information about RDF data\n  node            Information about RDF nodes which are part of RDF Graphs\n  shacl           Information about SHACL shapes\n  dctap           Information and processing of DCTAP files\n  convert         Conversion between different Data modeling technologies\n  help            Print this message or the help of the given subcommand(s)\n\nOptions:\n  -d, --debug...  \n  -h, --help      Print help (see more with '--help')\n  -V, --version   Print version\n```\n\n### Obtaining information about a ShEx schema\n\n```sh\n$ rudof shex --help\nInformation about ShEx schemas\n\nUsage: rudof shex [OPTIONS] --schema <Schema file name>\n\nOptions:\n  -s, --schema <Schema file name>\n          \n  -f, --format <Schema format>\n          [default: shexc] [possible values: internal, shexc, shexj, turtle, ntriples, rdfxml, trig, n3, nquads]\n  -r, --result-format <Result schema format>\n          [default: shexj] [possible values: internal, shexc, shexj, turtle, ntriples, rdfxml, trig, n3, nquads]\n  -t, --show elapsed time\n          \n      --statistics\n          \n  -o, --output-file <Output file name, default = terminal>\n          \n  -h, --help\n          Print help\n```\n\n### Obtaining information about RDF data\n\n```sh\n$ rudof data --help\nInformation about RDF data\n\nUsage: rudof data [OPTIONS] --data <RDF data path>\n\nOptions:\n  -d, --data <RDF data path>\n          \n  -t, --data-format <RDF Data format>\n          [default: turtle] [possible values: turtle, ntriples, rdfxml, trig, n3, nquads]\n  -o, --output-file <Output file name, default = terminal>\n          \n  -h, --help\n          Print help\n```\n\n### Obtaining information about a node in RDF data\n\nThis command can be useful to obtain the neighbourhood of a node.\n\n```sh\n$ rudof node --help\nInformation about RDF nodes which are part of RDF Graphs\n\nUsage: rudof node [OPTIONS] --node <NODE>\n\nOptions:\n  -n, --node <NODE>\n          \n  -d, --data <RDF data path>\n          \n  -t, --data-format <RDF Data format>\n          [default: turtle] [possible values: turtle, ntriples, rdfxml, trig, n3, nquads]\n  -e, --endpoint <Endpoint with RDF data>\n          \n  -m, --show-node-mode <Show Node Mode>\n          [default: outgoing] [possible values: outgoing, incoming, both]\n      --show hyperlinks\n          \n  -p, --predicates <PREDICATES>\n          \n  -o, --output-file <Output file name, default = terminal>\n          \n  -h, --help\n          Print help\n```\n\nFor example, the following command shows the neighbourhood of node `wd:Q80` in the Wikidata endpoint.\n\n```sh\nrudof node -e wikidata -n wd:Q80\n```\n\n### Validating an RDF node against some data\n\n```sh\n$ rudof validate --help\nRDF Validation using ShEx or SHACL\n\nUsage: rudof validate [OPTIONS] --schema <Schema file name>\n\nOptions:\n  -M, --mode <Validation mode>\n          [default: shex] [possible values: shex, shacl]\n  -s, --schema <Schema file name>\n          \n  -f, --schema-format <Schema format>\n          [default: shexc] [possible values: internal, shexc, shexj, turtle, ntriples, rdfxml, trig, n3, nquads]\n  -m, --shapemap <ShapeMap file name>\n          \n      --shapemap-format <ShapeMap format>\n          [default: compact] [possible values: compact, internal]\n  -n, --node <NODE>\n          \n  -l, --shape-label <shape label (default = START)>\n          \n  -d, --data <RDF data path>\n          \n  -t, --data-format <RDF Data format>\n          [default: turtle] [possible values: turtle, ntriples, rdfxml, trig, n3, nquads]\n  -e, --endpoint <Endpoint with RDF data>\n          \n      --max-steps <max steps to run>\n          [default: 100]\n  -o, --output-file <Output file name, default = terminal>\n          \n  -h, --help\n          Print help\n```\n\nExample: Assuming there a ShEx file in `examples/user.shex` and an RDF turtle file in `examples/user.ttl` we can ask to validate node `:a` with shape label `:User` using:\n\n```sh\nrudof validate -s examples/user.shex -d examples/user.ttl -n :a -l :User\n```\n\nIf there is a shapemap in `examples/user.sm`, we can validate using:\n\n```sh\nrudof validate -s examples/user.shex -d examples/user.ttl -m examples/user.sm\n```\n\n### Validating an RDF node against some SHACL Shape\n\n```sh\nrudof shacl-validate --shapes examples/simple_shacl.ttl --data examples/simple.ttl\n```\n\n### Conversion between shapes formalisms\n\n```sh\n$ rudof convert --help\nConversion between different Data modeling technologies\n\nUsage: rudof convert [OPTIONS] --input-mode <Input mode> --source-file <Source file name> --export-mode <Result mode>\n\nOptions:\n  -m, --input-mode <Input mode>\n          [possible values: shex, dctap]\n  -s, --source-file <Source file name>\n          \n  -f, --format <Input file format>\n          [default: shexc] [possible values: csv, shexc, shexj, turtle]\n  -r, --result-format <Result format>\n          [default: default] [possible values: default, internal, json, shexc, shexj, turtle, plantuml, html, svg, png]\n  -o, --output-file <Output file name, default = terminal>\n          \n  -t, --target-folder <Target folder>\n          \n  -l, --shape-label <shape label (default = START)>\n          \n  -x, --export-mode <Result mode>\n          [possible values: sparql, shex, uml, html]\n  -h, --help\n          Print help\n```\n\n## Main modules\n\nThe repo is divided in the following modules:\n\n- [iri_s](https://github.com/weso/shapes-rs/tree/master/iri_s) defines simple IRIs.\n- [srdf](https://github.com/weso/shapes-rs/tree/master/srdf) simple RDF model which will be used for validation.\n- [prefixmap](https://github.com/weso/shapes-rs/tree/master/prefixmap) Prefix maps implementation.\n- [shapemap](https://github.com/weso/shapes-rs/tree/master/shapemap) ShapeMap implementation.\n- [shex_ast](https://github.com/weso/shapes-rs/tree/master/shex_ast) defines the ShEx Abstract syntax\n- [shex_compact](https://github.com/weso/shapes-rs/tree/master/shex_compact) contains the code required to handle ShEx compact syntax.\n- [shex_validation](https://github.com/weso/shapes-rs/tree/master/shex_validation) contains the code required to validate RDF using ShEx.\n- [shex_testsuite](https://github.com/weso/shapes-rs/tree/master/shex_testsuite) contains the code required to run the ShEx testsuite.\n- [shacl_ast](https://github.com/weso/shapes-rs/tree/master/shacl_ast) defines the SHACL core Abstract syntax.\n- [shacl_validation](https://github.com/weso/shapes-rs/tree/master/shacl_validation) contains the code required to validate RDF using SHACL.\n- [dctap](https://github.com/weso/shapes-rs/tree/master/dctap) contains the code required to do handle DCTAP files.\n- [shapes_converter](https://github.com/weso/shapes-rs/tree/master/shapes_converter) contains the code required to do conversion between different shapes formalisms.\n\n## Publishing the crates\n\n```sh\ncargo workspaces publish \n```\n\n## Worskpaces\n\nThe project is using cargo workspaces wihch can be installed with:\n\n```sh\ncargo install cargo-workspaces\n```\n\n## Unit-testing\n\nIn order to test all the sub-projects\n\n```sh\ncargo test --all\n```\n\nTesting one specific subproject:\n\n```sh\ncargo test -p shex_validation\n```\n\n## Using the ShEx test-suite\n\nThe ShEx testsuite is included in a git submodule. In order to obtain it, it is necessary to do:\n\n```sh\ngit submodule update --init --recursive\ncargo run -p shex_testsuite\n```\n\n```sh\nUsage: shex_testsuite [OPTIONS]\n\nOptions:\n  -m, --manifest <Manifest FILE (.jsonld)>\n          Name of Manifest file [default: shex_testsuite/shexTest/validation/manifest.jsonld]\n  -c, --config <Config file>\n          [default: shex_testsuite/config.yml]\n  -x, --run_mode <MANIFEST_RUN_MODE>\n          [default: collect-errors] [possible values: collect-errors, fail-first-error]\n  -f, --manifest_mode <MANIFEST_MODE>\n          [possible values: schemas, validation, negative-syntax, negative-structure]\n  -p, --print_result_mode <PRINT_RESULT_MODE>\n          [default: basic] [possible values: basic, failed, passed, not-implemented, all]\n  -e, --entry <Entry names>\n          \n  -t, --trait <Trait names>\n          \n  -h, --help\n          Print help\n  -V, --version\n          Print version\n```\n\n### Validation conformance tests for ShEx\n\n```sh\ncargo run -p shex_testsuite -- -m shex_testsuite/shexTest/validation/manifest.jsonld validation \n```\n\n### Schemas tests\n\n```sh\ncargo run -p shex_testsuite -- -m shex_testsuite/shexTest/schemas/manifest.jsonld -f schemas -p failed\n```\n\n## License\n\nLicensed under either of\n\n- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)\n\nat your option.\n\n## Contributors\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\n### Contribution\n\nUnless you explicitly state otherwise,\nany contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any\nadditional terms or conditions.\n\n",
    "bugtrack_url": null,
    "license": "MIT OR Apache-2.0",
    "summary": "RDF data shapes implementation in Rust",
    "version": "0.1.12",
    "project_urls": {
        "Homepage": "https://www.weso.es/shapes-rs/",
        "Source Code": "https://github.com/weso/shapes-rs"
    },
    "split_keywords": [
        "rdf",
        " linked-data",
        " semantic-web",
        " shex"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3d785210f7b0f2188409c827dd4822146358453d24ea4299e34947476ab5fb93",
                "md5": "5d32e95afc6fb7d5ad100f399a69326b",
                "sha256": "c878cdb0895187f2a5fd6fef962cdb6d747abe8ffd037f6893b288ab6cef3d95"
            },
            "downloads": -1,
            "filename": "rudof-0.1.12-cp37-abi3-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5d32e95afc6fb7d5ad100f399a69326b",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 707470,
            "upload_time": "2024-08-13T18:24:03",
            "upload_time_iso_8601": "2024-08-13T18:24:03.823926Z",
            "url": "https://files.pythonhosted.org/packages/3d/78/5210f7b0f2188409c827dd4822146358453d24ea4299e34947476ab5fb93/rudof-0.1.12-cp37-abi3-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e62abe7b537405be0a8b7c6ec123f1b06462dc9dd87bf6da4cf773c3b6e95103",
                "md5": "898ab3766a80eacd28d73eacb1adbc57",
                "sha256": "1e4d221a49cb5f7f0805ee71fcc6c82b7496d60d5ab77095ab56c2c406257ed1"
            },
            "downloads": -1,
            "filename": "rudof-0.1.12-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "898ab3766a80eacd28d73eacb1adbc57",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 763574,
            "upload_time": "2024-08-13T18:24:05",
            "upload_time_iso_8601": "2024-08-13T18:24:05.603414Z",
            "url": "https://files.pythonhosted.org/packages/e6/2a/be7b537405be0a8b7c6ec123f1b06462dc9dd87bf6da4cf773c3b6e95103/rudof-0.1.12-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e8db228b301e4c7a25077eded30c8c873cd835b102a382119c147dff34ae9512",
                "md5": "23c7a5ecc6567c92112fe0e310639e2d",
                "sha256": "8dc5de4fab57f9d8ffaebb354e14a7d18135b4eafa1f9091c20cffb03d40711a"
            },
            "downloads": -1,
            "filename": "rudof-0.1.12-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "23c7a5ecc6567c92112fe0e310639e2d",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 746585,
            "upload_time": "2024-08-13T18:24:07",
            "upload_time_iso_8601": "2024-08-13T18:24:07.312610Z",
            "url": "https://files.pythonhosted.org/packages/e8/db/228b301e4c7a25077eded30c8c873cd835b102a382119c147dff34ae9512/rudof-0.1.12-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "06e00239984c2dcf59c41647a24966a12a7864650fd4eeb7de0009be293b978c",
                "md5": "3e7f9d5ce705e82bf07982ecbe0057e1",
                "sha256": "42e953fe7e4ec4dab0e7fca2c35110632517c67779b259fa83ddf404ac781972"
            },
            "downloads": -1,
            "filename": "rudof-0.1.12-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3e7f9d5ce705e82bf07982ecbe0057e1",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 781928,
            "upload_time": "2024-08-13T18:24:09",
            "upload_time_iso_8601": "2024-08-13T18:24:09.058476Z",
            "url": "https://files.pythonhosted.org/packages/06/e0/0239984c2dcf59c41647a24966a12a7864650fd4eeb7de0009be293b978c/rudof-0.1.12-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8b42f81595314e06f71fc935794bb539e8e8ef4a96f9670f3fa2d7e0d9c79d60",
                "md5": "b4657feca0e31f0c02d152e13fa5d631",
                "sha256": "9db3cf17203266bfa1091bbcefb11f094c4a0a76618c838ff5afc3c5c1f604b9"
            },
            "downloads": -1,
            "filename": "rudof-0.1.12-cp37-abi3-win32.whl",
            "has_sig": false,
            "md5_digest": "b4657feca0e31f0c02d152e13fa5d631",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 508962,
            "upload_time": "2024-08-13T18:24:10",
            "upload_time_iso_8601": "2024-08-13T18:24:10.542096Z",
            "url": "https://files.pythonhosted.org/packages/8b/42/f81595314e06f71fc935794bb539e8e8ef4a96f9670f3fa2d7e0d9c79d60/rudof-0.1.12-cp37-abi3-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c2d08d1ac29654626b113c8c29d680f2ca4c3db9ca1c72ef1fd53928bf731659",
                "md5": "d39865923f340e2464ac4d1fce9493f1",
                "sha256": "f445bc1639d90027c118f2b5ffe9b0a68e2df4904e9bb21d444e4aa7446bd4f4"
            },
            "downloads": -1,
            "filename": "rudof-0.1.12-cp37-abi3-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d39865923f340e2464ac4d1fce9493f1",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 555641,
            "upload_time": "2024-08-13T18:24:11",
            "upload_time_iso_8601": "2024-08-13T18:24:11.727097Z",
            "url": "https://files.pythonhosted.org/packages/c2/d0/8d1ac29654626b113c8c29d680f2ca4c3db9ca1c72ef1fd53928bf731659/rudof-0.1.12-cp37-abi3-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-13 18:24:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "weso",
    "github_project": "shapes-rs",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "rudof"
}
        
Elapsed time: 4.38542s