OBO Ontology Repository Analysis
This document contains a brief analysis of the OBO ontology repository. The corpus version is a snapshot from November 2017.
200 ontologies were listed on the obofoundry pages, out of which:
- obsolete: 44
- maintained: 156
- 10 are foundry ontologies
- 146 ontologies are listed
Out of the 156 maintained ones,
- 143 were downloadable using Apache Commons IO
- 1 was downloadable manually (SSL certificate problem)
- 12 were not found
Out of the 144 that were downloadable (either through Apache Commons IO or manually)
- 134 were OWL API 4.2.8 parseable
- 10 were not parseable
Out of the 134 parseable
- 7 were empty (possibly broken files as well)
Breakdown of the ones not found:
- 404 - Not found (2):
- Berkleybob, no such key (6), (all same as failed ones as 7 months ago)
- Googlecode (4), (all same as failed ones as 7 months ago)
We used OWL API 4.2.8. All analysis is including any imported ontologies.
Corpus Description
table_o<-corpus_md[c("filename","o","ax_o_logical_axiom_count","ax_o_logical_axiom_count_incl","cat_main","cat_prof","expressivity","expressivity_incl")]
names(table_o)<-c("filename","Ontology","Axiom count","Axiom count (incl)","OWL 2","Profile Category","Expressivity","Expressivity (incl)")
options(scipen = 1000)
ggplot(corpus_md,aes(x=corpus_md$sizebin)) + geom_bar() + ggtitle("Number of ontologies by size bin (size = logical axiom count)")ggplot(corpus_md,aes(x=corpus_md$tboxrbox_size_incl)) + geom_histogram() + scale_x_log10()+ ggtitle("Distribution of TBox size")## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
ggplot(corpus_md,aes(x=corpus_md$abox_size_incl)) + geom_histogram() + scale_x_log10()+ ggtitle("Distribution of ABox size")## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#p<-generateDLProfileBarchart(corpus_md)
#grid::grid.draw(p$plot_1)
#kable(table_o[order(-table_o$`Axiom count (incl)`),])
asis_output("## Ontologies with no logical axioms:")Ontologies with no logical axioms:
kable(corpus_md[corpus_md$validrecord&corpus_md$emptyontology,c("o","logical_axiom_count_incl","pre_analysis_logical_incl","pre_analysis_anno")])| o | logical_axiom_count_incl | pre_analysis_logical_incl | pre_analysis_anno | |
|---|---|---|---|---|
| 17 | cmf | 0 | 0 | 0 |
| 19 | cro | 0 | 0 | 0 |
| 27 | dpo | 0 | 0 | 0 |
| 35 | exo | 0 | 0 | 0 |
| 113 | rnao | 0 | 0 | 0 |
| 118 | sepio | 0 | 0 | 0 |
| 141 | xl | 0 | 0 | 0 |
OWL 2 DL Axiomtypes
All axiom types, before and after metrics gathering. During metrics gathering, all annotations were removed. Including imports.
Warning, removing broken columns
OWL 2 DL Violations
violations<-names(corpus_md[grepl("viol_",names(corpus_md))])
#plotViolationBin(corpus_md,violations,"ProfileViolations")
#kable(corpus_md[corpus_md$owl2dl_profile_violation!="",c("filename","owl2dl_profile_violation")])Analysis of violations ignoring undeclared entity violations ### Ontologies with violations (ignoring missing declarations)
| o | variable |
|---|---|
| cdao | useofnonsimplepropertyincardinalityrestriction |
| cheminf | useofreservedvocabularyforobjectpropertyiri |
| cteno | useofnonsimplepropertyincardinalityrestriction |
| envo | useofnonsimplepropertyincardinalityrestriction |
| ero | useofreservedvocabularyforobjectpropertyiri |
| ero | useofreservedvocabularyforclassiri |
| ero | insufficientindividuals |
| genepio | useofreservedvocabularyforobjectpropertyiri |
| hp | useofnonsimplepropertyinfunctionalpropertyaxiom |
| miapa | useofnonsimplepropertyincardinalityrestriction |
| mp | useofnonsimplepropertyinfunctionalpropertyaxiom |
| ncit | insufficientoperands |
| ncit | useofundeclareddatatype |
| obi | insufficientoperands |
| obib | insufficientoperands |
| opl | insufficientindividuals |
| pco | useofnonsimplepropertyincardinalityrestriction |
| pdro | insufficientoperands |
| swo | useofreservedvocabularyforclassiri |
Parse errors
kable(plyr::count(corpus_md_failed$error_cat))| x | freq |
|---|---|
| UnparsableOntologyException | 10 |
kable(corpus_md_failed[!is.na(corpus_md_failed$error_cat),c("filename","error_cat","exception_message")])| filename | error_cat | exception_message |
|---|---|---|
| dinto.owl | UnparsableOntologyException | java.lang.RuntimeException: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/D:/000/obo112017/files/dinto.owlCould not parse ontology. Either a suitable parser could not be found or parsing failed. See parser logs below for explanation.The following parsers were tried:1 org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser16863f382 org.semanticweb.owlapi.owlxml.parser.OWLXMLParser8a28e063 org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser638081cc4 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory95fd655c5 org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParser4753e6f96 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentFormatF […RESTCUTOFF] |
| gaz.owl | UnparsableOntologyException | java.lang.RuntimeException: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/D:/000/obo112017/files/gaz.owlCould not parse ontology. Either a suitable parser could not be found or parsing failed. See parser logs below for explanation.The following parsers were tried:1 org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser280179d32 org.semanticweb.owlapi.owlxml.parser.OWLXMLParser110d745f3 org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser35fbb08d4 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory95fd655c5 org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParser6090aee66 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentFormatFa […RESTCUTOFF] |
| ogg.owl | UnparsableOntologyException | java.lang.RuntimeException: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/D:/000/obo112017/files/ogg.owlCould not parse ontology. Either a suitable parser could not be found or parsing failed. See parser logs below for explanation.The following parsers were tried:1 org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser5a80b3d2 org.semanticweb.owlapi.owlxml.parser.OWLXMLParser42f41f3a3 org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser7d8118484 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory95fd655c5 org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParser7c980a106 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentFormatFac […RESTCUTOFF] |
| ohd.owl | UnparsableOntologyException | java.lang.RuntimeException: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/D:/000/obo112017/files/ohd.owlCould not parse ontology. Either a suitable parser could not be found or parsing failed. See parser logs below for explanation.The following parsers were tried:1 org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser5c3d19222 org.semanticweb.owlapi.owlxml.parser.OWLXMLParser1a94b2063 org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser1cfdd71d4 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory95fd655c5 org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParser4e44376e6 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentFormatFa […RESTCUTOFF] |
| ohmi.owl | UnparsableOntologyException | java.lang.RuntimeException: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/D:/000/obo112017/files/ohmi.owlCould not parse ontology. Either a suitable parser could not be found or parsing failed. See parser logs below for explanation.The following parsers were tried:1 org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParserfcda3152 org.semanticweb.owlapi.owlxml.parser.OWLXMLParser3c461bc93 org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser319636e94 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory95fd655c5 org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParser4cef06666 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentFormatFa […RESTCUTOFF] |
| omiabis.owl | UnparsableOntologyException | java.lang.RuntimeException: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/D:/000/obo112017/files/omiabis.owlCould not parse ontology. Either a suitable parser could not be found or parsing failed. See parser logs below for explanation.The following parsers were tried:1 org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser1f1e54b42 org.semanticweb.owlapi.owlxml.parser.OWLXMLParser66903bab3 org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser3a01ef244 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory95fd655c5 org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParserd30b4506 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentForma […RESTCUTOFF] |
| omit.owl | UnparsableOntologyException | java.lang.RuntimeException: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/D:/000/obo112017/files/omit.owlCould not parse ontology. Either a suitable parser could not be found or parsing failed. See parser logs below for explanation.The following parsers were tried:1 org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser6a2879b82 org.semanticweb.owlapi.owlxml.parser.OWLXMLParser64b85fa23 org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser5bd8577d4 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory95fd655c5 org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParser32c9efd96 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentFormatF […RESTCUTOFF] |
| omrse.owl | UnparsableOntologyException | java.lang.RuntimeException: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/D:/000/obo112017/files/omrse.owlCould not parse ontology. Either a suitable parser could not be found or parsing failed. See parser logs below for explanation.The following parsers were tried:1 org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser50b6161e2 org.semanticweb.owlapi.owlxml.parser.OWLXMLParser7d22b85c3 org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser17b617294 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory95fd655c5 org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParser5fe3c6416 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentFormat […RESTCUTOFF] |
| ontoneo.owl | UnparsableOntologyException | java.lang.RuntimeException: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/D:/000/obo112017/files/ontoneo.owlCould not parse ontology. Either a suitable parser could not be found or parsing failed. See parser logs below for explanation.The following parsers were tried:1 org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser271d23082 org.semanticweb.owlapi.owlxml.parser.OWLXMLParser4e587c873 org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser3267f2e14 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory95fd655c5 org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParser7e612b036 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentForm […RESTCUTOFF] |
| pr.owl | UnparsableOntologyException | java.lang.RuntimeException: org.semanticweb.owlapi.io.UnparsableOntologyException: Problem parsing file:/D:/000/obo112017/files/pr.owlCould not parse ontology. Either a suitable parser could not be found or parsing failed. See parser logs below for explanation.The following parsers were tried:1 org.semanticweb.owlapi.rdf.rdfxml.parser.RDFXMLParser2a848ca52 org.semanticweb.owlapi.owlxml.parser.OWLXMLParserf56c1583 org.semanticweb.owlapi.functional.parser.OWLFunctionalSyntaxOWLParser6f104f4 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.RioTurtleDocumentFormatFactory95fd655c5 org.semanticweb.owlapi.manchestersyntax.parser.ManchesterOWLSyntaxOntologyParser1e862a426 org.semanticweb.owlapi.rio.RioParserImpl : org.semanticweb.owlapi.formats.NQuadsDocumentFormatFactor […RESTCUTOFF] |