An easy way to use ontologies for artificial agent applications.


A smart way to organize the knowledge of your agent.


A fast way to explore your agent knowledge.


A natural way to evolve the knowledge of your agents.

About Ontologenius

Ontologenius is a research project aimed at providing what can be seen as a semantic memory for artificial agents. Focusing only on this task, Ontologenius is currently a robust and efficient open-source software that can be deployed in many applications.

Provided with some algorithms of first-order logic inference, it is still possible to make it evolve easily thanks to a plugin mechanism and thus adapt it to your needs.


Ontologenius uses ROS1 and ROS2 for maximum compatibility with all robotics projects.

What's New

Reasoning upgrade

New reasoning capabilities have been added to ontologenius anonymous classes and transitivity axioms. In addition, inference deletion has been improved with a uniformized mechanism.

Ontologenius 0.4.0 !

Here is another great step in a short time, Ontologenius is now compatible both with ROS1 and ROS2!

A lot of efforts have been made to ensure dual compatibility with a single repository. In such a way, no matter your ROS version you will always have all the new features bring to our projects.

Ontologenius 0.3.0 !

Here is a great step, Ontologenius comes in its third major release!

A lot of efforts have been done to enhance Ontologenius performances with a new interface based on indexes (integers), allowing better internal performances but also letting you the opportunity to seep-up your own algorithms. More than this new interface, a lot of engineering has been done to optimize all internal structures and algorithms to improve ontologies loading, low-level queries, as well as SPARQL queries.

Automatic imports

Why hasn't this already been done? That's a good question but now it's done! Ontologenius now look for the import attributes of your owl files and will automatically load them. Imported files can be Github URL, Gitlab URL, raw URL or local path. In all cases, Ontologenius will try to identify a ROS package in the paths and will use your local package if it exists.

Large ontology

Ontologenius has been optimized to load large ontology and is now able to load millions of assertions in few seconds. In addition, it requires less memory!

Turtle ontology

For sure OWL is a cool language but you maybe prefer the Turtle language instead... We thus have good news for you! Ontologenius now supports Turtle files so that you can load your favourite ontology without converting them.

Ontologenius python API

After a long time, Ontologenius now provides a full python API. Here you will find its documentation and five tutorials to learn how to use it.

Ontology copy and reasoners configuration

More than creating multiple instances of Ontologenius, you can now copy an instance that then becomes independent. This new feature makes it easy to use Ontologenius for planning applications.

You can now configure the reasoners you want to use and change their parameters via a YAML file. Create your own configuration for your specific application in few minutes!

C++ API is now available

As part of a recent effort to facilitate the use of Ontologenius, we are now developing a C ++ API covering the majority of features. The complete documentation of this API is now available online.

To take better control of this new API five tutorials have been developed. They make it possible to discover the API as well as the basic Ontologenius functionalities through min-projects.

See also