Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OLS ontologies with issues #100

Closed
jamesamcl opened this issue Nov 30, 2022 · 8 comments
Closed

OLS ontologies with issues #100

jamesamcl opened this issue Nov 30, 2022 · 8 comments

Comments

@jamesamcl
Copy link
Member

jamesamcl commented Nov 30, 2022

These are ontologies in the OLS config which we have issues loading (NOT those imported from OBO, there is a separate issue for OBO ontologies at #1).

ontology id purl problem fix
FIXED pending config update - sdgio http://purl.unep.org/sdg/sdgio.owl not found change purl to https://raw.githubusercontent.com/SDG-InterfaceOntology/sdgio/master/sdgio.owl
FIXED pending config update - teddy http://www.biomodels.net/teddy/TEDDY redirects to html at https://sourceforge.net/projects/teddyontology/ copy owl file to cluster
cco http://www.bio.ntnu.no/ontology/CCO/cco.owl java.lang.NullPointerException: Cannot read field "properties" because "this.ontologyNode" is null
rexo http://www.bio.ntnu.no/ontology/ReXO/rexo.rdf java.lang.NullPointerException: Cannot read field "properties" because "this.ontologyNode" is null
gexo http://www.bio.ntnu.no/ontology/GeXO/gexo.rdf java.lang.NullPointerException
atol http://www.atol-ontology.com/public/telechargement/atol.owl javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
eol http://www.atol-ontology.com/public/telechargement/eol.owl javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
lbo http://data.bioontology.org/ontologies/LBO/download?apikey=8b5b7825-538d-40e0-9e9e-5ab9274a9aeb obo format
probonto https://raw.githubusercontent.com/probonto/ontology/master/probonto4ols.owl Turtle but not in content-type
pride https://raw.githubusercontent.com/PRIDE-Utilities/pride-ontology/master/pride_cv.obo obo format
unimod http://www.unimod.org/obo/unimod.obo obo format
afo http://afo-ols.semanticsfirst.com/ontologies/afo dead link; domain does not resolve
hpath https://raw.githubusercontent.com/Novartis/hpath/master/src/hpath.obo obo format
vido https://raw.githubusercontent.com/infectious-disease-ontology-extensions/ido-virus/master/ontology/vido.owl owl xml
@jamesamcl
Copy link
Member Author

jamesamcl commented Jan 18, 2023

(1) The OLS4 dataloader is an RDF tool and therefore only supports loading RDF files. This means that other non-RDF OWL serialisations such as OBO format and OWL XML are never going to be supported (though of course they can be converted prior to loading). For these (very few) cases we can either ask the upstream ontology vendors to provide an RDF/XML file, or possibly outsource conversion to Robot.

(2) Though we support all the different RDF serializations, the majority of the ontologies are provided without any content-type or any useful file extension to indicate which serialization format they contain. For example, this ontology from the OLS config is Turtle, but the file extension is owl and the content-type is text/plain. No suggestion of Turtle encoding anywhere.

Even the OBO foundry ontologies do this. If we resolve for example http://purl.obolibrary.org/obo/ro.owl it redirects to https://raw.githubusercontent.com/oborel/obo-relations/master/ro.owl. File extension: .owl, content-type is text/plain. While the file content is RDF/XML, there is nothing to suggest that it isn't, for example, OWL XML, or Turtle, or JSON-LD. We only know how to load it in OLS4 because RDF/XML is the hardcoded default.

Why does this work in Protegé and OLS3? Because OWLAPI literally bruteforce loads ontology files by trying every loader until it finds one which works.

While we could probably do something similar in OLS4, I think ultimately it is up to the ontology developers to provide correct metadata, if not by content-type then at least by file extension. The whole .owl thing is a mess. If it's RDF/XML it should be .xml and if it's Turtle it should be .ttl. OR if it really wants to be .owl it should be served up with a content-type.

So TL;DR I think we should continue to default to trying to read .owl files as whatever content-type is provided and falling back on RDF/XML.

@jamesamcl
Copy link
Member Author

Here's one done right: https://www.w3.org/ns/prov-o-20130430

While there's no file extension, the content-type is text/turtle; no guessing game required!

@lschriml
Copy link

Checking out the new OLS4.
Looks great.
Noticed that my Human Disease Ontology is not in the list of ontologies.
Please let me know if there is an issue, that we can address.
Cheers,
Lynn

@bgyori
Copy link

bgyori commented Jun 7, 2023

Hello, I just noticed that ProbOnto is not in OLS4 but was in OLS3 and then found this issue where it is listed in the table above. Unfortunately ProbOnto's own ontology browser hasn't been working for a long time now (https://sites.google.com/site/probonto/ontology) so getting it working in OLS4 would be nice. Would this be possible? Thanks!

@jamesamcl
Copy link
Member Author

jamesamcl commented Jun 7, 2023

Hi @bgyori ,

We currently attempt to load it from https://raw.githubusercontent.com/probonto/ontology/master/probonto4ols.owl which is a Turtle serialization with the file extension .owl.

OLS4 is much stricter about loading ontologies than OLS3: we use Apache Jena instead of OWLAPI, so it doesn't bruteforce different serializations, instead relying on the file extension and/or content-type, with RDF/XML as the default when such information is unavailable.

Ideally the maintainers would provide an RDF/XML version, or else rename the file to .ttl. If the ontology is no longer maintained (I see the last commit on https://github.com/probonto/ontology was 6 years ago) we could do a one-time conversion and store the converted version on the EBI server perhaps.

@bgyori
Copy link

bgyori commented Jun 7, 2023

If the extension is the only issue, I could pull request the same file with a ttl extension into the probonto repo and see if they will merge it. Would that be sufficient to solve this?

@jamesamcl
Copy link
Member Author

Yes that should work! Meanwhile I copied it onto EBI NFS for the next load.

@serjoshua
Copy link
Contributor

Refer to #453 for updated information regarding failing OLS ontologies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants