Authors: Daniel Garijo and María Poveda, with contributions from Jacobo Mata.
FOOPS! is an application for assessing whether a vocabulary (OWL or SKOS) conforms with the FAIR data principles.
Our ISWC 2021 demo paper (best demo award) provides an overview of the FOOPS! service. Please cite our work as follows:
@article{foops2021,
title = {FOOPS!: An Ontology Pitfall Scanner for the FAIR Principles},
author = {Garijo, Daniel and Corcho, Oscar and Poveda-Villal{\'o}n, Mar{\i}a},
year = 2021,
booktitle = {International Semantic Web Conference (ISWC) 2021: Posters, Demos, and Industry Tracks},
publisher = {CEUR-WS.org},
series = {CEUR Workshop Proceedings},
volume = 2980,
url = {http://ceur-ws.org/Vol-2980/paper321.pdf}
}
If you are interested in more information, check our slides with the rationale of FOOPS! and the teaser video we made for ISWC 2021.
The client application has been integrated from the work in https://github.com/jacobomata/FairValidator. The client would not have been possible without the work from @jacobomata
A public demo of FOOPS! is available here: https://w3id.org/foops/
The project was build and tested with JDK 11.0.11 in Ubuntu.
To create the JAR, just run:
mvn install
on the server folder, or download the JAR from the releases page.
Run the following command
java -jar -Dserver.port=PORT fair_ontologies-0.0.1.jar
Where PORT is the port you want to run the server
to test the installation, just do a curl command (if the application was run in the port 8083):
curl -X POST "http://localhost:8083/assessOntology" -H "accept: application/json;charset=UTF-8" -H "Content-Type: application/json;charset=UTF-8" -d "{ \"ontologyUri\": \"https://w3id.org/okn/o/sd\"}"
As a result, you should see a JSON in your console, such as the one in sample.json in the root of this repository.
When you run the server, FOOPS! will set up a Swagger UI describing the endpoints available in the API. This API is available at http://localhost:PORT/swagger-ui/index.html#/
To create the JAR, just run:
mvn install -f pom_jar.xml
Then run the following command to test a URI:
java -jar target/fair_ontologies-0.1.0.jar -ontURI https://w3id.org/example
You can also test one ontology from a file:
java -jar target/fair_ontologies-0.1.0.jar -ontFile filePath
As a result, you should see a JSON in your folder, such as the one in sample.json.
If you want to change the out file path you can use the flag -out
The metrics (i.e., conceptual description of what is being assessed) and tests (i.e., implementation of a metric) supported by the tool are available at https://w3id.org/foops/catalog, along with a detail description of their rationale and means of verification.
FOOPS! supports two result specifications, due to legacy development. The endpoints:
- [POST] /assessOntology and
- [POST] /assessOntologyFile
Follow the classic FOOPS! JSON format. To see an example, please see the sample json file in the code repository. This JSON is simple, but may be harder to debug.
The endpoints:
- [GET] /benchmarks/{identifier}
- [GET] /tests
- [GET] /tests/{identifier}
- [GET] /metrics
- [GET] /metrics/{identifier}
- [POST] /assess/resultset/{identifier}
- [POST] /assess/test/{test_identifier}
Follow the FAIR test resource specification, providing machine-readable metadata (JSON-LD) on all tests, metrics and groups of tests supported by FOOPS!
Test FIND3 assesses whether an ontology complies to a certain URI scheme, based on persistent identifier registries like w3id.org or purl.org. However, your organization may issue persistent URIs too. If you would like us to add your registry scheme into the supported URI schemes, please open an issue describing the URI scheme you want to support in FOOPS! and a link to a policy page describing the intention of the organization to support the resources in the long term. A reviewer will check and add it into the tool.