https://github.com/aksw/rdfunit

An RDF Unit Testing Suite

https://github.com/aksw/rdfunit

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    4 of 37 committers (10.8%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.9%) to scientific vocabulary

Keywords

data-quality data-quality-checks data-validation rdf schema schema-validation shacl unit-testing validation web-ontology-language

Keywords from Contributors

sparql phase-transition pypi sparql-endpoints sparql-query graph-database rdf-store climate-modeling labels diagram
Last synced: 5 months ago · JSON representation

Repository

An RDF Unit Testing Suite

Basic Info
  • Host: GitHub
  • Owner: AKSW
  • License: apache-2.0
  • Language: Java
  • Default Branch: master
  • Homepage: http://RDFUnit.aksw.org
  • Size: 8.54 MB
Statistics
  • Stars: 159
  • Watchers: 29
  • Forks: 41
  • Open Issues: 35
  • Releases: 17
Topics
data-quality data-quality-checks data-validation rdf schema schema-validation shacl unit-testing validation web-ontology-language
Created almost 13 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Code of conduct

README.md

RDFUnit - RDF Unit Testing Suite

Maven Central Build Status Coverity Scan Build Status Coverage Status Codacy Badge codebeat badge Project Stats

Homepage: http://rdfunit.aksw.org
Documentation: https://github.com/AKSW/RDFUnit/wiki
Slack #rdfunit: https://dbpedia-slack.herokuapp.com/
Mailing list: https://groups.google.com/d/forum/rdfunit (rdfunit [at] googlegroups.com)
Presentations: http://www.slideshare.net/jimkont
Brief Overview: https://github.com/AKSW/RDFUnit/wiki/Overview

RDFUnit is implemented on top of the Test-Driven Data Validation Ontology and designed to read and produce RDF that complies to that ontology only. The main components that RDFUnit reads are TestCases (manual & automatic), TestSuites, Patterns & TestAutoGenerators. RDFUnit also strictly defines the results of a TestSuite execution along with different levels of result granularity.

Contents

Basic usage

See RDFUnit from Command Line or bin/rdfunit -h for (a lot) more options but the simplest setting is as follows:

console $ bin/rdfunit -d <local-or-remote-location-URI>

What RDFUnit will do is:

  1. Get statistics about all properties & classes in the dataset
  2. Get the namespaces out of them and try to dereference all that exist in LOV
  3. Run our Test Generators on the schemas and generate RDFUnit Test cases
  4. Run the RDFUnit test cases on the dataset
  5. You get a results report in html (by default) but you can request it in RDF or even multiple serializations with e.g. -o html,turtle,jsonld
    • The results are by default aggregated with counts, you can request different levels of result details using -r {status|aggregate|shacl|shacllite}. See here for more details.

You can also run: console $ bin/rdfunit -d <dataset-uri> -s <schema1,schema2,schema3,...>

Where you define your own schemas and we pick up from step 3. You can also use prefixes directly (e.g. -s foaf,skos) we can get everything that is defined in LOV.

Using Docker

A Dockerfile is provided to create a Docker image of the CLI of RDFUnit.

To create the Docker image:

console $ docker build -t rdfunit .

It is meant to execute a rdfunit command and then shutdown the container. If the output of rdfunit on stdout is not enough or you want to include files in the container, a directory could be mounted via Docker in order to create the output/result there or include files.

Here an example of usage:

console $ docker run --rm -it rdfunit -d https://awesome.url/file -r aggregate

This creates a temporary Docker container which runs the command, prints the results on stdout and stops plus removes itself. For further usage of CLI visit https://github.com/AKSW/RDFUnit/wiki/CLI.

Supported Schemas

RDFUnit supports the following types of schemas

  1. OWL (using CWA): We pick the most commons OWL axioms as well as schema.org. (see [1],[2] for details)
  2. SHACL: Full SHACL is almost available except for a few SHACL constructs. Whatever constructs we support can also run directly on SPARQL Endpoints
  3. IBM Resource Shapes: The progress is tracked here but as soon as SHACL becomes stable we will drop support for RS
  4. DSP (Dublin Core Set Profiles): The progress is tracked here but as soon as SHACL becomes stable we will drop support for DSP

Note that you can mix all of these constraints together and RDFUnit will validate the dataset against all of them.

Acknowledgements

The first version of RDFUnit (formely known as Databugger) was developed by AKSW as part of the PhD thesis of Dimitris Kontokostas. A lot of additional work for improvement, requirements & refactoring was performed through the EU funded project ALIGNED. Through the project, a lot of project partners provided feedback and contributed code like e.g. Wolters Kluwers Germany and Semantic Web Company that are also users of RDFUnit.

There are also many code contributors as well as people submitted bug reports or provided constructive feedback.

In addition, RDFUnit used Java profiler (JProfiler) for optimizations

Owner

  • Name: AKSW Research Group @ University of Leipzig
  • Login: AKSW
  • Kind: organization
  • Location: Leipzig

GitHub Events

Total
  • Issues event: 1
  • Watch event: 7
  • Fork event: 1
Last Year
  • Issues event: 1
  • Watch event: 7
  • Fork event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 1,962
  • Total Committers: 37
  • Avg Commits per committer: 53.027
  • Development Distribution Score (DDS): 0.243
Top Committers
Name Email Commits
Dimitris Kontokostas j****t@g****m 1,486
¨Dimitris d****s@g****m 218
Patrick Westphal p****l@i****e 41
Dimitris Kontokostas d****s@d****m 30
Daniel Hiller d****r@w****e 25
Markus Freudenberg m****g@e****m 24
kurzum k****m@g****m 22
Didier Cherix d****x@g****m 15
Sebastian Hellmann h****n@i****e 9
mknuth m****h@e****m 9
Markus Ackermann a****n@i****e 8
dependabot-preview[bot] 2****]@u****m 7
Daniel Hiller d****2@g****m 7
Roland Cornelissen r****d@n****2 7
Michael Leuthold M****d@w****e 7
Paul-Emmanuel Raoul s****r@s****t 6
Martin Brümmer m****r@b****e 5
Sandro Athaide Coelho s****o@g****m 5
Roland Cornelissen r****d@m****l 4
Andreas Schneider s****r@a****e 3
Sebastian Hellmann k****m@g****m 3
Michael Leuthold m****d@g****m 2
Gustavo Publio g****o@h****m 2
Claus Stadler c****r@i****e 2
Vincent Emonet v****t@g****m 2
der-bruemmer d****r@g****m 2
Konrad Abicht hi@i****e 1
Marvin Hofer h****r@i****e 1
Dan Michael O. Heggø d****o@g****m 1
Dimitris Kontokostas d****s@m****m 1
and 7 more...

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 217
  • Total pull requests: 113
  • Average time to close issues: 8 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 26
  • Total pull request authors: 23
  • Average comments per issue: 2.76
  • Average comments per pull request: 1.26
  • Merged pull requests: 100
  • Bot issues: 0
  • Bot pull requests: 11
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jimkont (29)
  • pepperbob (4)
  • seebi (3)
  • neradis (3)
  • TBoonX (2)
  • BonaBeavis (2)
  • roland-c (2)
  • AndreAga (2)
  • m1ci (1)
  • Dragos0000 (1)
  • cosletmihai (1)
  • jorge-soria-sn (1)
  • abrokenjester (1)
  • kaka7537 (1)
  • schivmeister (1)
Pull Request Authors
  • dependabot[bot] (5)
  • jimkont (4)
  • der-bruemmer (2)
  • neradis (2)
  • pepperbob (2)
  • dhiller (2)
  • mgns (2)
  • chile12 (2)
  • SkypLabs (1)
  • AchoArnold (1)
  • ChenZhangg (1)
  • JLLeitschuh (1)
  • sandroacoelho (1)
  • mjurisch-brox (1)
  • Vehnem (1)
Top Labels
Issue Labels
enhancement (16) SHACL (13) Generators (8) SHACL missing features (6) SHACL partial results (5) OWL (5) wontfix (4) bug (2) ManualTests (1)
Pull Request Labels
dependencies (5)

Packages

  • Total packages: 14
  • Total downloads: unknown
  • Total dependent packages: 34
    (may contain duplicates)
  • Total dependent repositories: 37
    (may contain duplicates)
  • Total versions: 270
proxy.golang.org: github.com/AKSW/RDFUnit
  • Versions: 50
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/aksw/rdfunit
  • Versions: 50
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-core

A RDF Testing Suite

  • Versions: 18
  • Dependent Packages: 5
  • Dependent Repositories: 14
Rankings
Dependent repos count: 6.6%
Dependent packages count: 11.5%
Average: 16.9%
Stargazers count: 24.7%
Forks count: 24.9%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-io

A RDF Testing Suite

  • Versions: 15
  • Dependent Packages: 5
  • Dependent Repositories: 7
Rankings
Dependent repos count: 9.3%
Dependent packages count: 11.5%
Average: 17.6%
Stargazers count: 24.7%
Forks count: 24.9%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-model

A RDF Testing Suite

  • Versions: 15
  • Dependent Packages: 4
  • Dependent Repositories: 3
Rankings
Dependent repos count: 13.8%
Dependent packages count: 13.9%
Average: 19.3%
Stargazers count: 24.7%
Forks count: 24.9%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-validate

A RDF Testing Suite

  • Versions: 18
  • Dependent Packages: 3
  • Dependent Repositories: 5
Rankings
Dependent repos count: 10.9%
Dependent packages count: 17.6%
Average: 19.5%
Stargazers count: 24.7%
Forks count: 24.9%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-commons

A RDF Testing Suite

  • Versions: 15
  • Dependent Packages: 4
  • Dependent Repositories: 2
Rankings
Dependent packages count: 13.9%
Dependent repos count: 16.0%
Average: 19.9%
Stargazers count: 24.7%
Forks count: 24.9%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-manual-tests

A RDF Testing Suite

  • Versions: 16
  • Dependent Packages: 5
  • Dependent Repositories: 1
Rankings
Dependent packages count: 11.5%
Average: 20.5%
Dependent repos count: 20.8%
Stargazers count: 24.7%
Forks count: 24.9%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-resources

A RDF Testing Suite

  • Versions: 2
  • Dependent Packages: 4
  • Dependent Repositories: 1
Rankings
Dependent packages count: 13.9%
Dependent repos count: 20.8%
Average: 21.1%
Stargazers count: 24.7%
Forks count: 24.9%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-junit

A RDF Testing Suite

  • Versions: 17
  • Dependent Packages: 2
  • Dependent Repositories: 2
Rankings
Dependent repos count: 16.1%
Average: 22.2%
Dependent packages count: 23.2%
Stargazers count: 24.7%
Forks count: 24.9%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-w3c-dqv

A RDF Testing Suite

  • Versions: 15
  • Dependent Packages: 1
  • Dependent Repositories: 1
Rankings
Dependent repos count: 20.8%
Stargazers count: 24.7%
Forks count: 24.9%
Average: 25.8%
Dependent packages count: 33.0%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-shacl-ws

A RDF Testing Suite

  • Versions: 3
  • Dependent Packages: 1
  • Dependent Repositories: 1
Rankings
Dependent repos count: 20.8%
Stargazers count: 24.7%
Forks count: 24.9%
Average: 25.8%
Dependent packages count: 33.0%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-examples

A RDF Testing Suite

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 17.3%
Stargazers count: 17.6%
Average: 28.9%
Dependent repos count: 32.0%
Dependent packages count: 48.9%
Last synced: 6 months ago
repo1.maven.org: org.aksw.rdfunit:rdfunit-parent

A RDF Testing Suite

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 17.3%
Stargazers count: 17.6%
Average: 28.9%
Dependent repos count: 32.0%
Dependent packages count: 48.9%
Last synced: 6 months ago

Dependencies

pom.xml maven
  • org.aksw.jena-sparql-api:jena-sparql-api-cache-h2 3.16.0-1 compile
  • org.aksw.jena-sparql-api:jena-sparql-api-core 3.16.0-1 compile
  • org.aksw.jena-sparql-api:jena-sparql-api-resources 3.16.0-1 compile
  • org.apache.jena:jena-arq 3.16.0 compile
  • org.apache.jena:jena-core 3.16.0 compile
  • org.slf4j:slf4j-api 1.7.30 compile
  • org.slf4j:slf4j-log4j12 1.7.30 compile
  • org.projectlombok:lombok 1.18.20 provided
  • com.google.guava:guava 29.0-jre
  • commons-cli:commons-cli 1.4
  • io.vavr:vavr 0.9.2
  • log4j:log4j 1.2.17
  • org.aksw.rdfunit:rdfunit-commons 0.8.24-SNAPSHOT
  • org.aksw.rdfunit:rdfunit-core 0.8.24-SNAPSHOT
  • org.aksw.rdfunit:rdfunit-io 0.8.24-SNAPSHOT
  • org.aksw.rdfunit:rdfunit-junit 0.8.24-SNAPSHOT
  • org.aksw.rdfunit:rdfunit-manual-tests 0.8.24-SNAPSHOT
  • org.aksw.rdfunit:rdfunit-model 0.8.24-SNAPSHOT
  • org.aksw.rdfunit:rdfunit-shacl-ws 0.8.24-SNAPSHOT
  • org.aksw.rdfunit:rdfunit-validate 0.8.24-SNAPSHOT
  • org.aksw.rdfunit:rdfunit-w3c-dqv 0.8.24-SNAPSHOT
  • org.semarglproject:semargl-jena 0.7
  • junit:junit 4.13.1 test
  • org.assertj:assertj-core 3.18.1 test
  • org.mockito:mockito-all 1.10.19 test
rdfunit-commons/pom.xml maven
  • com.google.guava:guava
  • org.aksw.jena-sparql-api:jena-sparql-api-core
  • org.apache.jena:jena-arq
  • org.apache.jena:jena-core
  • org.slf4j:slf4j-api
  • org.slf4j:slf4j-log4j12
  • junit:junit test
  • org.assertj:assertj-core test
rdfunit-core/pom.xml maven
  • org.projectlombok:lombok provided
  • com.google.guava:guava
  • org.aksw.jena-sparql-api:jena-sparql-api-cache-h2
  • org.aksw.jena-sparql-api:jena-sparql-api-core
  • org.aksw.jena-sparql-api:jena-sparql-api-resources
  • org.aksw.rdfunit:rdfunit-commons
  • org.aksw.rdfunit:rdfunit-io
  • org.aksw.rdfunit:rdfunit-model
  • org.apache.jena:jena-arq
  • org.apache.jena:jena-core
  • org.slf4j:slf4j-api
  • org.slf4j:slf4j-log4j12
  • junit:junit test
  • net.sf.jtidy:jtidy r938 test
  • org.aksw.rdfunit:rdfunit-manual-tests test
  • org.assertj:assertj-core test
  • org.mockito:mockito-all test
rdfunit-examples/pom.xml maven
  • junit:junit provided
  • org.aksw.jena-sparql-api:jena-sparql-api-core
  • org.aksw.rdfunit:rdfunit-core
  • org.aksw.rdfunit:rdfunit-manual-tests
  • org.aksw.rdfunit:rdfunit-model
  • org.aksw.rdfunit:rdfunit-validate
  • org.apache.jena:jena-arq
  • org.apache.jena:jena-core
  • org.assertj:assertj-core
  • org.slf4j:slf4j-api
  • org.slf4j:slf4j-log4j12
  • org.aksw.rdfunit:rdfunit-junit test
  • org.mockito:mockito-all test
rdfunit-io/pom.xml maven
  • com.google.guava:guava
  • org.aksw.jena-sparql-api:jena-sparql-api-cache-h2
  • org.aksw.jena-sparql-api:jena-sparql-api-core
  • org.aksw.jena-sparql-api:jena-sparql-api-resources
  • org.aksw.rdfunit:rdfunit-commons
  • org.apache.jena:jena-arq
  • org.apache.jena:jena-core
  • org.projectlombok:lombok
  • org.semarglproject:semargl-jena
  • org.slf4j:slf4j-api
  • org.slf4j:slf4j-log4j12
  • junit:junit test
  • org.assertj:assertj-core test
rdfunit-junit/pom.xml maven
  • junit:junit provided
  • org.aksw.rdfunit:rdfunit-core
  • org.assertj:assertj-core
  • org.mockito:mockito-all test
rdfunit-model/pom.xml maven
  • com.google.guava:guava
  • org.aksw.jena-sparql-api:jena-sparql-api-core
  • org.aksw.rdfunit:rdfunit-commons
  • org.aksw.rdfunit:rdfunit-io
  • org.apache.jena:jena-arq
  • org.apache.jena:jena-core
  • org.projectlombok:lombok
  • org.slf4j:slf4j-api
  • org.slf4j:slf4j-log4j12
  • junit:junit test
  • org.aksw.rdfunit:rdfunit-manual-tests test
  • org.assertj:assertj-core test
  • org.mockito:mockito-all test
rdfunit-shacl-ws/pom.xml maven
  • org.aksw.rdfunit:rdfunit-validate
rdfunit-validate/pom.xml maven
  • org.aksw.jena-sparql-api:jena-sparql-api-core compile
  • org.aksw.rdfunit:rdfunit-core compile
  • org.aksw.rdfunit:rdfunit-manual-tests compile
  • org.apache.jena:jena-arq compile
  • org.apache.jena:jena-core compile
  • commons-cli:commons-cli
  • info.picocli:picocli 4.6.1
  • javax.servlet:javax.servlet-api 4.0.1
  • org.slf4j:slf4j-api
  • org.slf4j:slf4j-log4j12
  • junit:junit test
  • org.assertj:assertj-core test
rdfunit-w3c-dqv/pom.xml maven
  • org.projectlombok:lombok provided
  • com.google.guava:guava
  • commons-cli:commons-cli
  • org.aksw.jena-sparql-api:jena-sparql-api-core
  • org.aksw.rdfunit:rdfunit-io
  • org.aksw.rdfunit:rdfunit-model
  • org.apache.jena:jena-arq
  • org.apache.jena:jena-core
  • org.slf4j:slf4j-api
  • org.slf4j:slf4j-log4j12
  • junit:junit test
  • org.assertj:assertj-core test
rdfunit-w3c-tests/pom.xml maven
  • org.aksw.rdfunit:rdfunit-core compile
  • org.projectlombok:lombok provided
  • io.vavr:vavr
  • org.topbraid:shacl 1.1.0
  • junit:junit test
  • net.sf.jtidy:jtidy r938 test
  • org.aksw.rdfunit:rdfunit-manual-tests test
  • org.assertj:assertj-core test
  • org.mockito:mockito-all test
rdfunit-webdemo/pom.xml maven
  • org.ow2.asm:asm 5.1 compile
  • com.vaadin:vaadin-client 7.7.3 provided
  • javax.servlet:javax.servlet-api 3.1.0 provided
  • com.vaadin:vaadin-client-compiled 7.7.3
  • com.vaadin:vaadin-push 7.7.3
  • com.vaadin:vaadin-server 7.7.3
  • com.vaadin:vaadin-themes 7.7.3
  • org.aksw.jena-sparql-api:jena-sparql-api-core
  • org.aksw.rdfunit:rdfunit-core
  • org.aksw.rdfunit:rdfunit-manual-tests
  • org.aksw.rdfunit:rdfunit-model
  • org.apache.jena:jena-arq
  • org.apache.jena:jena-core
  • org.ini4j:ini4j 0.5.4
  • org.slf4j:jul-to-slf4j ${slf4j-version}
  • org.vaadin.addon:confirmdialog 2.1.2
  • org.vaadin.addons:tokenfield 7.0.1
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v2 composite
  • github/codeql-action/analyze v1 composite
  • github/codeql-action/autobuild v1 composite
  • github/codeql-action/init v1 composite
Dockerfile docker
  • maven 3-jdk-8 build
  • openjdk 8-jdk-slim build
rdfunit-manual-tests/pom.xml maven