Git Product home page Git Product logo

fair_ontologies's Introduction

OEG FAIR Ontologies Validator (FOOPS!)

logo

Authors: Daniel Garijo and María Poveda, with contributions from Jacobo Mata.

FOOPS! is an application for validating 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

Demo

A public demo of FOOPS! is available here: https://w3id.org/foops/

Installation instructions

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.

Running the server

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:

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.

fair_ontologies's People

Contributors

dgarijo avatar mariapoveda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

fair_ontologies's Issues

Reduce time outs?

We should check if the time outs provided for getting doc/serializations are appropriate. We should play around with them

Cache for external requests

We should not do requests every time we receive an ontology, especially if it has been analyzed already.

We should have a cache with the information already retrieved by the server in the past.

Have a button to go up

There is a lot of scrolling involved. Having a button to help going back to top is a nice hay of saving time.

HTML improvements

From Ahmad:

  • More contrast is needed between the title and the underlying bar.
  • I think it is better to change the light red background to something else.
  • The FAIR graph is pretty cool.
  • I think the font is too big.
  • Maybe the graphs and the section of the title/uri/license can be on the same line.

Look for foundational ontologies

We agreed on looking for foundational ontologies. Here there is a proposal @dgarijo

  • Basic Formal Ontology
  • DOLCE
  • SUMO
  • EMMO
  • Unified Foundational Ontology
  • YAMATO
  • CYC
  • General Formal Ontology
  • schema.org
  • Wikidata

Collect tests

We need basic tests at least for the following:

  • Ontologies from file that work.
  • Ontologies from URIs that resolve.
  • Ontologies from URL that do not resolve anymore.
  • Ontologies from files with errors.
  • Ontologies from URI that do not have documentation.
  • Ontologies from URI that resolve to documentation, but not an RDF serialization
  • Ontologies from URI that do not have proper metadata.
  • Ontologies from URI that do have an RDF serialization, but not HTML documentation.
  • Vocabularies that are in RDFS (not sure if we support them)
  • Vocabularies that import more than 1 ontology.
  • Vocabularies that import more than 1 ontology, but that import fails.

Note about URI vs Code

Add a note saying that if the ontology is entered by URI there are more checks that can be applied.

How to calculate overall score?

I have done two versions of this, and both are not satisfactory:

  • Initially, I calculated a score based on the tests run. However, this gives too low scores, because each metadata check is a test. It is not fair.
  • Then, I aggregated checks by test. For example, if a test checks the optional metadata, and there are 3/5, then that check test alone gets a 3/5; and at the end you add up all scores and then divide by the number of tests. However, this is not representative either, as there are areas with more tests.
  • In the current approach, I am going for each area (F, A, I, R) counting a 25%. But I am not sure either. To discuss with @mariapoveda

Return titles

Create titles for each test and return a short title different from its description

Explanation in OM5_1: Basic provenance metadata

 "All basic provenance metadata found! Warning: We could not find the following provenance metadata: contributorPlease consider adding them if appropriate. "

--> Replace by:

 "All basic provenance metadata found! Warning: We could not find the following provenance metadata: contributor**. P**lease consider adding them if appropriate. "

For prefixes, look in LOV too

There is a way of looking in LOV for prefixes. We should extend this in case the ontology is not found in prefix.cc

Meaningful error reporting + robustness

The server provides explanations when a check does not pass.
However, we do not meaningful messages when something goes wrong.

We need additional tests (e.g., skos vocabs, vocabs which don't resolve or have problems, etc.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.