diff --git a/dashboard/about.html b/dashboard/about.html new file mode 100644 index 0000000..1e784bf --- /dev/null +++ b/dashboard/about.html @@ -0,0 +1,72 @@ + + + + About the + + + + +

OBO Dashboard

+

The OBO Dashboard is a new feature under active development.

+

The OBO Dashboard is being developed by the OBO Operations Committee and members of the Technical Working Group. Our goal is to provide a set of automated tests that establish a minimum level of compliance with OBO Principles and best practises. Keep in mind that automated checks often cannot capture the full intent of a given principle – we do our best while keeping the automated checks as fast and cheap as possible.

+

For each ontology, two aspects are checked: the OBO Registry entry, and the latest release of the project’s main OWL file. For each check we provide links to the rule text and implementation.

+

Please give us your feedback!

+

This issue is for general comments, with links to the specific issue for each check.

+
+

Limitations

+

This is an alpha version of an automated representation of the OBO Foundry principles. Many of the principles contain a subjective aspect, making the checks difficult to implement. These checks are still in review and subject to change.

+

The result of the OBO Foundry Dashboard is not a reflection of the quality of content of an ontology.

+

It is simply a means to alert ontology developers to areas that may need review.

+
+

Reading the Dashboard

+

The dashboard page contains a table with all results from all OBO Foundry ontologies. These results are sorted in the same order that the ontologies appear on the OBO Foundry homepage: foundry ontologies, active ontologies, orphaned, and finally obsolete ontologies.

+

Each column after the ontology ID represents one dashboard check. There are four levels of results for each column:

+
    +
  1. Pass - green check
  2. +
  3. Info - blue i
  4. +
  5. Warning - yellow exclamation point
  6. +
  7. Error - red x
  8. +
+

For details on what constitutes a pass versus an error for each check, click on the column header.

+

The last column contains a summary of the dashboard check. This column corresponds to the lowest result of all checks. For example, if there are any errors, this column will contain a red x. Likewise, if there are any infos, but no errors or warnings, this column will contain a blue i.

+

Finally, you can download the report summary as a YAML file from the link near the top of the page.

+
+

Reading Individual Results

+

To view more details on an ontology’s results, click on the ontology ID in the first column.

+

From the dashboard report page, you can see the version IRI that the dashboard was run on (for all OWL file checks) and the date it was run. Some checks include reports, which you can view under the Resources column. Each individual report page includes a link to download those reports as TSV files.

+

Reading ROBOT Reports

+

ROBOT report runs a series of standard queries over the OWL file. More details on these queries can be found here. Like the dashboard checks, report has three levels of violations (passing results are not shown in the table): info, warning, and error.

+

Each row contains the violation level, the rule name (corresponding to a query), the subject of the violation, the property of the violation, and the value of the violation. For specific details on what the rule checks and how to fix it, click on the rule name.

+
+
+ + \ No newline at end of file diff --git a/dashboard/analysis.html b/dashboard/analysis.html new file mode 100644 index 0000000..f874cc3 --- /dev/null +++ b/dashboard/analysis.html @@ -0,0 +1,270 @@ + + + Dashboard Analysis + + +
+ Back to dashboard main page +

Dashboard Analysis

+

Analysis of the ontologies in the dashboard

+ +

OBO Principles by status

+
+
+ +

Ontologies by number of axioms

+
+
+ +

Ontologies by number of classes

+
+
+ +

Ontologies by how many ontologies use it

+
+
+ +

Different serialisations used

+
+ + + + + + + + + + + + +
syntaxRDF/XML Syntax
count1
+ +

Breakdown of used Axiom Types

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
countmeanstdmin25%50%75%max
AnnotationAssertion1523.0NaN523.0523.0523.0523.0523.0
AnnotationPropertyRangeOf11.0NaN1.01.01.01.01.0
ClassAssertion119.0NaN19.019.019.019.019.0
Declaration1125.0NaN125.0125.0125.0125.0125.0
DifferentIndividuals12.0NaN2.02.02.02.02.0
EquivalentClasses13.0NaN3.03.03.03.03.0
SubAnnotationPropertyOf118.0NaN18.018.018.018.018.0
SubClassOf126.0NaN26.026.026.026.026.0
+ +

Breakdown of used OWL Class Expression constructs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
countmeanstdmin25%50%75%max
Class1101.0NaN101.0101.0101.0101.0101.0
ObjectOneOf13.0NaN3.03.03.03.03.0
+ +

OBO Score (Experimental)

+
+ + + + + + + + + + + + + + + + + + +
ontologyscorescore_dashscore_impact
0omo000.0
+ +

OBO Score Summary

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
countmeanstdmin25%50%75%max
score1.00.0NaN0.00.00.00.00.0
score_dash1.00.0NaN0.00.00.00.00.0
score_impact1.00.0NaN0.00.00.00.00.0
+ +

OBO dependency graph

+
+
+
+ + \ No newline at end of file diff --git a/dashboard/assets/check.svg b/dashboard/assets/check.svg new file mode 100644 index 0000000..8b0e73d --- /dev/null +++ b/dashboard/assets/check.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/dashboard/assets/info.svg b/dashboard/assets/info.svg new file mode 100644 index 0000000..a61e598 --- /dev/null +++ b/dashboard/assets/info.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/dashboard/assets/warning.svg b/dashboard/assets/warning.svg new file mode 100644 index 0000000..e3594a8 --- /dev/null +++ b/dashboard/assets/warning.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/dashboard/assets/x.svg b/dashboard/assets/x.svg new file mode 100644 index 0000000..fc7251c --- /dev/null +++ b/dashboard/assets/x.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/dashboard/dashboard-results.json b/dashboard/dashboard-results.json new file mode 100644 index 0000000..15715a6 --- /dev/null +++ b/dashboard/dashboard-results.json @@ -0,0 +1,92 @@ +{ + "ontologies": [ + { + "base_generated": true, + "base_prefixes": [ + "OMO", + "OMOALT", + "OMO" + ], + "changed": true, + "failure": "failed_ontology_dashboard", + "last_ontology_dashboard_run_failed": true, + "metrics": { + "Axioms: Breakdown of axiom types": { + "AnnotationAssertion": 523, + "AnnotationPropertyRangeOf": 1, + "ClassAssertion": 19, + "Declaration": 125, + "DifferentIndividuals": 2, + "EquivalentClasses": 3, + "SubAnnotationPropertyOf": 18, + "SubClassOf": 26 + }, + "Axioms: Number of axioms": 717, + "Entities: % of entities reused": 85.61, + "Entities: Number of annotation properties": 82, + "Entities: Number of classes": 27, + "Entities: Number of data properties": 0, + "Entities: Number of individuals": 20, + "Entities: Number of object properties": 0, + "Entities: Number of unsatisfiable classes": 0, + "Info: Breakdown of OWL class expressions used": { + "Class": 101, + "ObjectOneOf": 3 + }, + "Info: Does the ontology fall under OWL 2 DL?": true, + "Info: Experimental OBO score": { + "_impact": 0.0, + "_impact_external": 0.25, + "_reuse": 0.856 + }, + "Info: How many externally documented uses?": 1, + "Info: How many ontologies use it?": 0, + "Info: Logical consistency": true, + "Info: Syntax": "RDF/XML Syntax", + "Info: Usage of namespaces in axioms": { + "IAO": 555, + "OMO": 36, + "dc": 35, + "dc11": 29, + "oboInOwl": 27, + "owl": 1, + "prefix_unknown": 1, + "rdfs": 123, + "xsd": 1 + }, + "Info: Which ontologies use it?": [] + }, + "mirror_from": "http://purl.obolibrary.org/obo/omo.owl", + "namespace": "omo", + "sha256_hash": "779c51183f570ef260bf8c2048d567be95bfa605f0427c5d06451f6abef06071" + } + ], + "oboscore": { + "dashboard_score_weights": { + "no_base": 5, + "overall_error": 5, + "overall_warning": 0.5, + "overall_info": 0.1, + "report_errors": 0.05, + "report_warning": 0.01, + "report_info": 0.005, + "dashboard": 1, + "impact": 1, + "reuse": 1, + "impact_external": 3 + }, + "dashboard_score_max_impact": { + "no_base": 5, + "overall_error": 20, + "overall_warning": 10, + "overall_info": 5, + "report_errors": 10, + "report_warning": 5, + "report_info": 3, + "dashboard": 1, + "impact": 1, + "reuse": 1, + "impact_external": 3 + } + } +} \ No newline at end of file diff --git a/dashboard/dashboard-results.yml b/dashboard/dashboard-results.yml new file mode 100644 index 0000000..9ad7c52 --- /dev/null +++ b/dashboard/dashboard-results.yml @@ -0,0 +1,78 @@ +oboscore: + dashboard_score_max_impact: + dashboard: 1 + impact: 1 + impact_external: 3 + no_base: 5 + overall_error: 20 + overall_info: 5 + overall_warning: 10 + report_errors: 10 + report_info: 3 + report_warning: 5 + reuse: 1 + dashboard_score_weights: + dashboard: 1 + impact: 1 + impact_external: 3 + no_base: 5 + overall_error: 5 + overall_info: 0.1 + overall_warning: 0.5 + report_errors: 0.05 + report_info: 0.005 + report_warning: 0.01 + reuse: 1 +ontologies: +- base_generated: true + base_prefixes: + - OMO + - OMOALT + - OMO + changed: true + failure: failed_ontology_dashboard + last_ontology_dashboard_run_failed: true + metrics: + 'Axioms: Breakdown of axiom types': + AnnotationAssertion: 523 + AnnotationPropertyRangeOf: 1 + ClassAssertion: 19 + Declaration: 125 + DifferentIndividuals: 2 + EquivalentClasses: 3 + SubAnnotationPropertyOf: 18 + SubClassOf: 26 + 'Axioms: Number of axioms': 717 + 'Entities: % of entities reused': 85.61 + 'Entities: Number of annotation properties': 82 + 'Entities: Number of classes': 27 + 'Entities: Number of data properties': 0 + 'Entities: Number of individuals': 20 + 'Entities: Number of object properties': 0 + 'Entities: Number of unsatisfiable classes': 0 + 'Info: Breakdown of OWL class expressions used': + Class: 101 + ObjectOneOf: 3 + 'Info: Does the ontology fall under OWL 2 DL?': true + 'Info: Experimental OBO score': + _impact: 0.0 + _impact_external: 0.25 + _reuse: 0.856 + 'Info: How many externally documented uses?': 1 + 'Info: How many ontologies use it?': 0 + 'Info: Logical consistency': true + 'Info: Syntax': RDF/XML Syntax + 'Info: Usage of namespaces in axioms': + IAO: 555 + OMO: 36 + dc: 35 + dc11: 29 + oboInOwl: 27 + owl: 1 + prefix_unknown: 1 + rdfs: 123 + xsd: 1 + 'Info: Which ontologies use it?': [] + mirror_from: http://purl.obolibrary.org/obo/omo.owl + namespace: omo + sha256_hash: 779c51183f570ef260bf8c2048d567be95bfa605f0427c5d06451f6abef06071 diff --git a/dashboard/index.html b/dashboard/index.html new file mode 100644 index 0000000..3635f93 --- /dev/null +++ b/dashboard/index.html @@ -0,0 +1,112 @@ + + OBO Dashboard (2025-09-01) + + + + + + + + +

OBO Dashboard (2025-09-01)

+

Dashboard for checking ontology quality. Under construction. Learn More!

+

Created with ROBOT version 1.9.8 and OBO Metadata Schema.

+

A very basic analysis of the results can be found here.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ontology
(click for details)
+ Open + + Format + + URIs + + Versioning + + Scope + + Definitions + + Relations + + Documented + + Users + + Authority + + Naming + + Maintained + + Responsiveness + + ROBOT Report + + Summary +
omoFailed to process ontology: failed_ontology_dashboard
+ \ No newline at end of file diff --git a/dashboard/omo/dashboard-qc-badge.json b/dashboard/omo/dashboard-qc-badge.json new file mode 100644 index 0000000..a7f1069 --- /dev/null +++ b/dashboard/omo/dashboard-qc-badge.json @@ -0,0 +1 @@ +{"schemaVersion": 1, "label": "QC", "message": "Processing error: build dashboard", "color": "red", "logoSvg": ""} diff --git a/dashboard/omo/dashboard-score-badge.json b/dashboard/omo/dashboard-score-badge.json new file mode 100644 index 0000000..a25a2ed --- /dev/null +++ b/dashboard/omo/dashboard-score-badge.json @@ -0,0 +1 @@ +{"schemaVersion": 1, "label": "OBO Dashboard Score", "message": "NA", "color": "lightgrey", "logoSvg": ""} diff --git a/dashboard/omo/dashboard.yml b/dashboard/omo/dashboard.yml new file mode 100644 index 0000000..890dacb --- /dev/null +++ b/dashboard/omo/dashboard.yml @@ -0,0 +1,52 @@ +base_generated: true +base_prefixes: +- OMO +- OMOALT +- OMO +changed: true +failure: failed_ontology_dashboard +last_ontology_dashboard_run_failed: true +metrics: + 'Axioms: Breakdown of axiom types': + AnnotationAssertion: 523 + AnnotationPropertyRangeOf: 1 + ClassAssertion: 19 + Declaration: 125 + DifferentIndividuals: 2 + EquivalentClasses: 3 + SubAnnotationPropertyOf: 18 + SubClassOf: 26 + 'Axioms: Number of axioms': 717 + 'Entities: % of entities reused': 85.61 + 'Entities: Number of annotation properties': 82 + 'Entities: Number of classes': 27 + 'Entities: Number of data properties': 0 + 'Entities: Number of individuals': 20 + 'Entities: Number of object properties': 0 + 'Entities: Number of unsatisfiable classes': 0 + 'Info: Breakdown of OWL class expressions used': + Class: 101 + ObjectOneOf: 3 + 'Info: Does the ontology fall under OWL 2 DL?': true + 'Info: Experimental OBO score': + _impact: 0.0 + _impact_external: 0.25 + _reuse: 0.856 + 'Info: How many externally documented uses?': 1 + 'Info: How many ontologies use it?': 0 + 'Info: Logical consistency': true + 'Info: Syntax': RDF/XML Syntax + 'Info: Usage of namespaces in axioms': + IAO: 555 + OMO: 36 + dc: 35 + dc11: 29 + oboInOwl: 27 + owl: 1 + prefix_unknown: 1 + rdfs: 123 + xsd: 1 + 'Info: Which ontologies use it?': [] +mirror_from: http://purl.obolibrary.org/obo/omo.owl +namespace: omo +sha256_hash: 779c51183f570ef260bf8c2048d567be95bfa605f0427c5d06451f6abef06071 diff --git a/dashboard/omo/fp3.tsv b/dashboard/omo/fp3.tsv new file mode 100644 index 0000000..1e8d13a --- /dev/null +++ b/dashboard/omo/fp3.tsv @@ -0,0 +1 @@ +Status Issue diff --git a/dashboard/omo/fp7.tsv b/dashboard/omo/fp7.tsv new file mode 100644 index 0000000..a731e8c --- /dev/null +++ b/dashboard/omo/fp7.tsv @@ -0,0 +1 @@ +IRI Label Issue diff --git a/dashboard/omo/robot_report.html b/dashboard/omo/robot_report.html new file mode 100644 index 0000000..e69de29 diff --git a/dashboard/omo/robot_report.tsv b/dashboard/omo/robot_report.tsv new file mode 100644 index 0000000..e69de29