Skip to content

Commit

Permalink
First draft of docs
Browse files Browse the repository at this point in the history
  • Loading branch information
labra committed Sep 30, 2024
1 parent c5ae47f commit d4416c4
Show file tree
Hide file tree
Showing 10 changed files with 154 additions and 15 deletions.
2 changes: 1 addition & 1 deletion dctap/src/tap_headers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ impl TapHeaders {
}

fn clean(str: &str) -> String {
str.to_uppercase()
str.trim().to_uppercase()
}

fn get_str_from_rcd(rcd: &StringRecord, idx: usize) -> Option<String> {
Expand Down
1 change: 1 addition & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
book
6 changes: 6 additions & 0 deletions docs/book.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[book]
authors = ["Jose Emilio Labra Gayo"]
language = "en"
multilingual = false
src = "src"
title = "rudof"
6 changes: 6 additions & 0 deletions docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Summary

- [intro](./intro.md)
- [Installation](./installation.md)
- [Usage](./usage.md)
- [About](./about.md)
3 changes: 3 additions & 0 deletions docs/src/about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# About

- [Contributors](https://github.com/rudof-project/rudof/graphs/contributors)
64 changes: 64 additions & 0 deletions docs/src/installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Installation

### Official releases

You can download a binary from the [latest release](https://github.com/rudof-project/rudof/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/rudof-project/rudof/releases] and install the `.deb` package running the following commands after replacing X.X.X by the latest version:

```sh
wget https://github.com/rudof-project/rudof/releases/download/vX.X.X/rudof_vX.X.X_amd64.deb
sudo dpkg -i rudof_vX.X.X_amd64.deb
```

#### Windows

The binary can be downloaded from [releases](https://github.com/rudof-project/rudof/releases)

#### Mac

The binary is available at: [releases](https://github.com/rudof-project/rudof/releases) so you can download the corresponding binary to your machine.

The usual way to run/install a binary in Mac is to download it in a folder, add that folder to your PATH and activating the binary using:

```sh
chmod +x <binary_file>
```

After that, I think the processor may complain the first time about security and you have to agree to use it...once you agree, it should work.

### Compiling from source

`rudof` 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/rudof_0.0.11-1_amd64.deb
```

## Docker

The library is also published as a Docker image.
54 changes: 54 additions & 0 deletions docs/src/intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Introduction

`rudof` is a library that implements: [Shape Expressions](https://shex.io/), [SHACL](https://www.w3.org/TR/shacl/), [DCTAP](https://www.dublincore.org/specifications/dctap/) and other technologies in the [RDF](https://www.w3.org/RDF/) ecosystem.

The library is implemented in [Rust](https://www.rust-lang.org/) and it also provides Python bindings.

`rudof` can be used as a command line tool or can be embedded as a library.
It can be used to validate RDF data represented with different syntaxes like Turtle, NTriples, etc. as well as RDF data available through SPARQL endpoints like Wikidata.

`rudof` can also be used to convert between different RDF data validation technologies like ShEx, SHACL, DCTAP, etc. and to generate UML like visualizations and HTML views.

- We publish binaries in Linux, Windows and Apple which can be downloaded [here](https://github.com/weso/shex-rs/releases/).
- Source code: [https://github.com/rudof-project/rudof](https://github.com/rudof-project/rudof)
- [List of issues](https://github.com/rudof-project/rudof/issues)
- [Discussion](https://github.com/rudof-project/rudof/discussions)
- [How-to guides](https://github.com/rudof-project/rudof/wiki/How%E2%80%90to-guides)
- [FAQ](https://github.com/rudof-project/rudof/wiki/FAQ)

## Modules

rudof has been implemented using a modular structure and the different modules are available as Rust crates

- [ShEx validator](https://docs.rs/shex_validation/): ShEx Validator
- [ShEx compact](https://docs.rs/shex_compact): ShEx Compact syntax parser that follows [ShEx compact grammar](https://shex.io/shex-semantics/index.html#shexc)
- [ShEx ast](https://docs.rs/shex_ast): Represents [ShEx Abstract syntax](https://shex.io/shex-semantics/index.html#shape-expressions-shexj) based on ShExJ (JSON-LD)
- [ShapeMap](https://docs.rs/shapemap/): [ShapeMap](https://shexspec.github.io/shape-map/) implementation.
- [SRDF](https://docs.rs/srdf): Simple RDF interface
- [PrefixMap](https://docs.rs/prefixmap): Turtle based prefixMap representation
- [Conversions between different shapes formalisms](https://docs.rs/shapes_convert)
[](https://docs.rs/shapes_convert)* [](https://docs.rs/shapes_convert)[SHACL ast](https://docs.rs/shacl_ast): Represents [SHACL core abstract syntax](https://www.w3.org/TR/shacl)
- [RBE](https://docs.rs/rbe): Regular Bag Expressions
- [ShEx testsuite](https://docs.rs/shex_testsuite/): Code that checks the [ShEx testsuite](https://shexspec.github.io/test-suite/)

Related projects
----------------

An incomplete list of projects which are related with `rudof` is the following:

- [ShEx-s](https://www.weso.es/shex-s/): Scala implementation of ShEx. This project started as a re-implementation of ShEx-s in Rust
- [SHACL-s](https://www.weso.es/shacl-s/): Scala implementation of SHACL.
- [ShEx.js](https://github.com/shexjs/shex.js): Javascript implementation of ShEx.
- [Oxigraph](https://github.com/oxigraph/oxigraph): SPARQL implementation in Rust which also contains RDF libraries.
- [Nemo](https://github.com/knowsys/nemo): An in-memory rule engile which also contains some nom parsers.

## Contributors

[List of contributors in Github](https://github.com/rudof-project/rudof/graphs/contributors)

## Supporters and adopters

The following is a list of `rudof` adopters and supporters:

- [WESO (WEb Semantics Oviedo)](http://www.weso.es/): Most of the contributors are part of this research group at the [University of Oviedo](http://www.uniovi.es)
- [USDA - United States Department of Agriculture](https://www.usda.gov/) has been partially funding part of the project through a Non-Assistance Cooperative Agreement.
3 changes: 3 additions & 0 deletions docs/src/usage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Usage

We keep a list of [How-to guides](https://github.com/rudof-project/rudof/wiki/How%E2%80%90to-guides)
17 changes: 9 additions & 8 deletions examples/simple.csv
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
shapeId,shapeLabel,propertyId,Mandatory,Repeatable,valueDatatype,valueShape
Person,Person ,name,true,false,xsd:string,
,,birthdate,false,false,xsd:date,
,,enrolledIn,false,true,,Course
,,worksFor,false,true,,Company
Course,Course,name,true,false,xsd:string,
Company,Company label,name,true,false,xsd:string,
,,foundation,false,false,xsd:date,
shapeId,shapeLabel,propertyId,Mandatory,Repeatable,valueDatatype,valueShape,valueConstraint,valueConstraintType
Person,Person ,name,true,false,xsd:string,,,
,,birthdate,false,false,xsd:date,,,
,,enrolledIn,false,true,,Course,,
,,worksFor,false,true,,Company,,
,,gender,false,false,,,male female other,picklist
Course,Course,name,true,false,xsd:string,,,
Company,Company label,name,true,false,xsd:string,,,
,,foundation,false,false,xsd:date,,,
13 changes: 7 additions & 6 deletions examples/user.csv
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
shapeId,shapeLabel,propertyId,propertyLabel, valueShape
Person,PersonLabel,knows,KnowsLabel, @Person
,,name,name of person, http://www.w3.org/2001/XMLSchema#string
,,worksFor, works for, @Company
Company,,founder, founder person, @Person

shapeId,shapeLabel,propertyId,propertyLabel,valueShape, valueDatatype, valueConstraint, valueConstraintType
Person,PersonLabel,knows,knows property, @Person,,
,,rdf:type,instance of,,,male other,picklist,
,,name,name of person,,xsd:string,
,,worksFor, works for, @Company,,
,,,,,
Company,,founder, founder person, @Person,,

0 comments on commit d4416c4

Please sign in to comment.