Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
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.
F1000 Research Ltd
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 ...
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...
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...

Back to Top