DataONEorg / sem-prov-ontologies

Ontologies focused on scientific observations and scientific workflow provenance.
https://ontologies.dataone.org
17 stars 7 forks source link

Consider establishing a central home for all of our ontologies #98

Closed amoeba closed 3 years ago

amoeba commented 3 years ago

[Belatedly starting a ticket for this]

The simple questions of "What ontologies has DataONE created, which ones do they maintain, and how do I find out more information about them?" are messy to handle right now. In theory, each ontology has a:

I think we should have a nice URL like https://ontologies.dataone.org or https://purl.dataone.org/ontologies for this. The latter is a URL we already list on our PURL page and the former would be new.

What I'd like to do is create a CI/CD pipeline that:

  1. Validates all ontologies (ie with Jena's RIOT)
  2. Builds a website with...
    • A list of all ontologies
    • PyLODE pages for each ontology

We could either push this off somewhere directly from CI/CD, do something like what we do for purl.dataone.org (ssh in, git pull, build), or simply host on GitHub pages and redirect or reverse proxy.

I'll work up a POC and solicit some feedback.

amoeba commented 3 years ago

I put together a POC that's live at https://dataoneorg.github.io/sem-prov-ontologies, deploying from a feature branch on this repo. The style is modeled pretty closely after https://purl.dataone.org just to keep things looking uniform.

This all use a GitHub Action I wrote that runs a workflow to validate with RIOT the ontologies and build the website (GH Pages) portion on success:

Screen Shot 2021-08-12 at 5 02 18 PM

I found out that most of our ontologies don't validate with RIOT so I'll have to file issues for those so I've only got things set up for MOSAiC to validate and have a PyLODE page built for it. See MOSAiC's PyLODE page. I think it'd be great if all of our published ontologies validated with RIOT and build PyLODE pages for each.

You may or may not notice that URLs with fragments work so we can link a person to a specific term like https://dataoneorg.github.io/sem-prov-ontologies/MOSAiC.html#https://purl.dataone.org/odo/MOSAIC_00002167. PyLODE doesn't do this by default so I ended up having to fork PyLODE since they don't have any other way to extend it. But it turned out extending it was pretty straightforward.

I can spot a few things I'd still change in the above links but I'd love to get initial reactions if anyone has any.

amoeba commented 3 years ago

PR'd onto the develop branch at https://github.com/DataONEorg/sem-prov-ontologies/pull/101. I'll leave this open in case there's discussion.

amoeba commented 3 years ago

Merged to develop and I'll weave this into the next release.