Javascript must be enabled to continue!
Developing Python and Rust libraries to improve the ontology ecosystem
View through CrossRef
Ontologies are structures used to describe knowledge in a formal way, by defining entities and the relationships between them. Originally developed by logicians, they became widespread in the bioinformatics community thanks to projects such as the
Gene Ontology
or the
OBO Foundry
. They can be used as controlled vocabularies for data repositories or data formats, but the possibility to use
reasoners
– programs that can infer consequences from ontology assertions – opens the way for more in-depth analyses.
For historical and technical reasons, there are two languages used to describe most biomedical ontologies:
The OWL language, developed as a normative specification by the W3C OWL Working Group as a component of the W3C Semantic Web. It is using RDF triples to model the knowledge graph, consequently supporting several serialization (OWL/XML, OWL/Turtle, OWL/Manchester). Modern reasoners expect OWL ontologies as an input, or intermediate representations like the object model of the Java
OWL API.
The OBO language, an attempt made by the OBO consortium to address the integration issues that emerged with the growing number of ontologies in the biomedical field. For integration and backward compatibility purposes it has never really been a normative format, and the de-facto standard comes from the OWL API which can has a provisional support for the OBO format.
The version 1.4
of the OBO format and language, which is still under development, highly restricts the syntax of OBO files in exchange for an improved compatibility with the OWL language. With this edition, OBO ontologies can be mapped exactly to an equivalent OWL2 document.
In order to actively support this standardisation effort, we developed
fastobo
, an efficient, strongly typed and open-source Rust library implementing a parser and an abstract syntax tree for the OBO format version 1.4. It is continuously tested against ontology files released in the
OBO foundry
. To facilitate the usage of
fastobo
, transparent Python bindings were also generated and are available publicly to download from
PyPI
, with a full access to the underlying data structures. We also implemented a subset of the semantic mapping from OBO to OWL, as well as mappings between the OBO and the
OBO Graphs
format.
Rust is a low-level language with modern abstractions that has performances comparable to C, strong typing, and a large number of cross-platform and open-source libraries. The strictness offered by a strongly-typed programming language made it possible to use
fastobo
to identify syntactic issues within several in-development ontologies, including the
Evidence Ontology
, the
Plant Ontology
, the
Cell Ontology
and the
Environment Ontology
. Most of these issues actually originated in the OWL editor files the OBO were obtained from, but none of the existing conversion tools (
ROBOT
or owl2obo) were able to detect these errors. The development of the parser also helped mending the development version of the OBO syntax itself.
Title: Developing Python and Rust libraries to improve the ontology ecosystem
Description:
Ontologies are structures used to describe knowledge in a formal way, by defining entities and the relationships between them.
Originally developed by logicians, they became widespread in the bioinformatics community thanks to projects such as the
Gene Ontology
or the
OBO Foundry
.
They can be used as controlled vocabularies for data repositories or data formats, but the possibility to use
reasoners
– programs that can infer consequences from ontology assertions – opens the way for more in-depth analyses.
For historical and technical reasons, there are two languages used to describe most biomedical ontologies:
The OWL language, developed as a normative specification by the W3C OWL Working Group as a component of the W3C Semantic Web.
It is using RDF triples to model the knowledge graph, consequently supporting several serialization (OWL/XML, OWL/Turtle, OWL/Manchester).
Modern reasoners expect OWL ontologies as an input, or intermediate representations like the object model of the Java
OWL API.
The OBO language, an attempt made by the OBO consortium to address the integration issues that emerged with the growing number of ontologies in the biomedical field.
For integration and backward compatibility purposes it has never really been a normative format, and the de-facto standard comes from the OWL API which can has a provisional support for the OBO format.
The version 1.
4
of the OBO format and language, which is still under development, highly restricts the syntax of OBO files in exchange for an improved compatibility with the OWL language.
With this edition, OBO ontologies can be mapped exactly to an equivalent OWL2 document.
In order to actively support this standardisation effort, we developed
fastobo
, an efficient, strongly typed and open-source Rust library implementing a parser and an abstract syntax tree for the OBO format version 1.
4.
It is continuously tested against ontology files released in the
OBO foundry
.
To facilitate the usage of
fastobo
, transparent Python bindings were also generated and are available publicly to download from
PyPI
, with a full access to the underlying data structures.
We also implemented a subset of the semantic mapping from OBO to OWL, as well as mappings between the OBO and the
OBO Graphs
format.
Rust is a low-level language with modern abstractions that has performances comparable to C, strong typing, and a large number of cross-platform and open-source libraries.
The strictness offered by a strongly-typed programming language made it possible to use
fastobo
to identify syntactic issues within several in-development ontologies, including the
Evidence Ontology
, the
Plant Ontology
, the
Cell Ontology
and the
Environment Ontology
.
Most of these issues actually originated in the OWL editor files the OBO were obtained from, but none of the existing conversion tools (
ROBOT
or owl2obo) were able to detect these errors.
The development of the parser also helped mending the development version of the OBO syntax itself.
Related Results
(Invited) Rust Design for Corrosion Protection of Steel Exposed to Atmospheric and Marine Environments
(Invited) Rust Design for Corrosion Protection of Steel Exposed to Atmospheric and Marine Environments
Steel materials have been used in many fields as basic materials for infrastructures due to their superior strength and toughness. However, steel is significantly more susceptible ...
Track to Combat Wheat Stem Rust (
Puccinia graminis
f. sp.
tritici
) Races: Pathogenicity Spectrum, Tempo-Spatial Dynamics, and Impacts on Irrigated Wheat in Ethiopia under Climate Ch
Track to Combat Wheat Stem Rust (
Puccinia graminis
f. sp.
tritici
) Races: Pathogenicity Spectrum, Tempo-Spatial Dynamics, and Impacts on Irrigated Wheat in Ethiopia under Climate Ch
1.
Abstract
Wheat stem rust (Puccinia graminis f. sp. tritici) is a major global threat to wheat production, driven by rapid shifts in virulence and...
Basic and Advance: Phython Programming
Basic and Advance: Phython Programming
"This book will introduce you to the python programming language. It's aimed at beginning programmers, but even if you have written programs before and just want to add python to y...
SEEDLING REACTIONS OF WHEAT VARIETIES TO STEM RUST AND LEAF RUST AND OF OAT VARIETIES TO STEM RUST AND CROWN RUST
SEEDLING REACTIONS OF WHEAT VARIETIES TO STEM RUST AND LEAF RUST AND OF OAT VARIETIES TO STEM RUST AND CROWN RUST
A study of the rust reactions of wheat varieties to 20 physiologic races of stem rust has shown that several varieties of the vulgare type, namely, McMurachy, Eureka, and several s...
Wheat rust epidemics damage Ethiopian wheat production: A decade of field disease surveillance reveals national-scale trends in past outbreaks
Wheat rust epidemics damage Ethiopian wheat production: A decade of field disease surveillance reveals national-scale trends in past outbreaks
Wheat rusts are the key biological constraint to wheat production in Ethiopia—one of Africa’s largest wheat producing countries. The fungal diseases cause economic losses and threa...
A decade after the first Pucciniales genomes: A bibliometric snapshot of (post) genomics studies in three model rust fungi
A decade after the first Pucciniales genomes: A bibliometric snapshot of (post) genomics studies in three model rust fungi
Pucciniales (rust fungi) are one of the largest fungal order of plant pathogens. They collectively infect key crops such as wheat and soybean, and threaten global food security. In...
Valuation of Ecosystem Services, Karnataka State, India
Valuation of Ecosystem Services, Karnataka State, India
Humans depend on the environment for their basic needs, such as food, fuel, minerals, water, air, etc. Burgeoning unplanned development activities to cater to the demands of the in...
Impact of Stripe Rust Resistance Alleles on Wheat Grain Yield Using Landraces and Improved Accessions
Impact of Stripe Rust Resistance Alleles on Wheat Grain Yield Using Landraces and Improved Accessions
Stripe rust is one of the most devastating biotic stresses to cause grain yield losses in wheat. In the current study, 227 imported accessions, and six widely grown modern cultivar...

