Python et les ontologies, Jean-Baptiste Lamy, ENI Éditions, 310 pages

The blog and personal site of Jean-Baptiste Lamy (Jiba).

My French book "Python et les ontologies" has been published by ENI!

...

French book "Python et les ontologies"

Python et les ontologies, Jean-Baptiste Lamy, ENI Éditions, 310 pages

My French book "Python et les ontologies" has been published by ENI editions.

This 310-pages book describes how to use OWL 2.0 ontologies in Python 3.x, with the Owlready2 Python module for ontology-oriented programming.

More informations (in French) on the editor website:

https://www.editions-eni.fr/livre/python-et-les-ontologies-9782409020223

I plan to translate the book in English in the coming year.

Owlready2 0.20 has been released!

Owlready is a Python module for ontology-oriented programming. It can load OWL 2.0 ontologies and manipulate them transparently in Python.

This new version fix an important bug in UMLS support.

It also stops considering as functional properties associated with exactly-1 or max-1 restrictions. This was intended to be a feature, but was actually often more annoying that desirable. If needed, you can restore the previous behaviour as follows:

import owlready2.prop
owlready2.prop.RESTRICTIONS_AS_FUNCTIONAL_PROPERTIES = True

Here are the changes:

  • Add support for undoable destroy_entity()

  • Small database optimizations

  • No longer treat properties associated with exactly-1 or max-1 restriction as functional properties, returning single values instead of a list

  • Bugfixes: - Fix performance bug on UMLS mapping in PyMedTermino

The new version be downloaded from PyPI (Python Package Index): https://pypi.python.org/pypi/Owlready2

Owlready2 0.19 has been released!

Owlready is a Python module for ontology-oriented programming. It can load OWL 2.0 ontologies and manipulate them transparently in Python.

This new version has a better SPARQL support, faster searches, and it adds the "individual.INVERSE_property" syntax. It also supports the new UMLS zipped file format.

Here are the changes:

  • Consider symmetric properties as their own inverse properties

  • Update Python objects after basic SPARQL update/delete queries (works on user-defined properties, hierarchical properties (type/subclassof) and equivalence properties)

  • Add individual.INVERSE_property

  • Add Class.INDIRECT_is_a

  • INDIRECT_is_a / INDIRECT_is_instance_of now include class contructs. ancestors() has a 'include_constructs' parameter, which defaults to False.

  • Add more aliases for XMLSchema datatypes

  • Add is_a property to class constructs

  • Add bottomObjectProperty and bottomDataProperty

  • Support ReflexiveProperties in individual.INDIRECT_property

  • Optimize Thing.subclasses()

  • Optimize search() with multiple criteria, including those done by PyMedTermino

  • Add support for destroy_entity(SWRL_rule)

  • Add support for UMLS "metathesaurus" format in addition to "full" format

  • Bugfixes: - After reasoning, keep all equivalent classes as parents of individuals (as they may have methods) - Fix IndividualPropertyAtom when creating SWRL rule - Fix SWRL parser - Fix RDF serialization for nested RDF lists - Fix removing inverse property (i.e. Prop.inverse = None) - Fix datetime parsing for date with time zone or milliseconds

The new version be downloaded from PyPI (Python Package Index): https://pypi.python.org/pypi/Owlready2

Two presentations at iV 2019!

I presented my works on rainbow boxes at the International Conference Information Visualisation (iV) 2019.

The first paper, entitled "Visual explanation of simple neural networks using interactive rainbow boxes", is available here and the presentation there.

The second paper, entitled "Proportional visualization of genotypes and phenotypes with rainbow boxes: methods and application to sickle cell disease" is available here and the presentation there. It is a joint work with a PhD and colleagues from Senegal and CERPAD.

Owlready2 0.18 has been released!

Owlready is a Python module for ontology-oriented programming. It can load OWL 2.0 ontologies and manipulate them transparently in Python.

This new version fixes the UMLS support under Windows (character encoding problem) in PyMedTermino2. It also prevents the duplication of RDF triples in the quadstore.

Here are the changes:

  • Add UNIQUE constraints for preventing dupplicated RDF triples in the quadstore

  • Add Individual.INDIRECT_is_a / Individual.INDIRECT_is_instance_of

  • Add isinstance_python() (faster than isinstance(), but do not consider equivalent_to relations)

  • Bugfixes: - Force UTF-8 encoding when importing UMLS - Be more tolerant when loading OWL file

The new version be downloaded from PyPI (Python Package Index): https://pypi.python.org/pypi/Owlready2

New journal paper "RainBio"

I have published a new journal paper:

journal [j26] Lamy JB, Tsopra R. RainBio: Proportional visualization of large sets in biology. IEEE Transactions on Visualisation and Computer Graphics 2019;accepted

Owlready2 0.17 has been released!

Owlready is a Python module for ontology-oriented programming. It can load OWL 2.0 ontologies and manipulate them transparently in Python.

This new version supports SWRL rule editions and fixes problems in PyMedTermino2.

Here are the changes:

  • SWRL rule support

  • Allows importing UMLS suppressed terms

  • Uncache entities when relaoding an ontology

  • Bugfixes: - Fix PyMedTermino2 installation - Fix data property value inferrence with debug = 1 - Fix sort() in LazyList (thanks fiveop!) - Fix World.get() and add World.get_if_loaded() - Add appropriate error message when importing UMLS with Python 3.6 - Fix individuals belonging to multiple, equivalent, classes after reasoning

The new version be downloaded from PyPI (Python Package Index): https://pypi.python.org/pypi/Owlready2

Owlready2 0.16 has been released!

Owlready is a Python module for ontology-oriented programming. It can load OWL 2.0 ontologies and manipulate them transparently in Python.

This new version fix several bugs and supports SPARQL request INSERT and DELETE.

Here are the changes:

  • Optimize nested searches

  • search(sublclass_of = xxx) now returns xxx itself in the results

  • Support "with long_ontology_name as onto" syntax

  • In UMLS import, add optional parameters for preventing extraction of attributes, relations, etc

  • Support SPARQL INSERT queries

  • Optimize Pymedtermino mapping

  • Doc for PyMedTermino2

  • Bugfixes: - Fix 'Cannot release un-acquired lock' error when reasoning on inconsistent ontologies inside a 'with' statement - Fix bug when loading a property that refers to another property from a quadstore stored on disk - Fix RDF triple suppression with RDFlib when object is a datatype

The new version be downloaded from PyPI (Python Package Index): https://pypi.python.org/pypi/Owlready2

New journal paper "Visualizing undirected graphs and symmetric square matrices as overlapping sets"

New journal paper "Helping GPs to extrapolate guideline recommendations to patients for whom there are no explicit recommendations, through the visualization of drug properties"

I have published a new journal paper:

journal [j24] Tsopra R, Sedki K, Courtine M, Falcoff H, De Béco A, Madar R, Mechaï F, Lamy JB. Helping GPs to extrapolate guideline recommendations to patients for whom there are no explicit recommendations, through the visualization of drug properties. The example of AntibioHelp® in bacterial diseases. Journal of the American Medical Informatics Association 2019;accepted

Owlready2 0.15 has been released!

Owlready is a Python module for ontology-oriented programming. It can load OWL 2.0 ontologies and manipulate them transparently in Python.

This is mostly a bugfix release.

Here are the changes:

  • Can infer data property values when reasoning with Pellet

  • Optimize searches with 'type =', 'subclass_of =', or 'is_a =' parameters

  • Add Property.range_iri

  • Add _case_sensitive parameter to search()

  • Add inverse property support in RDFlib support

  • Show Java error message when reasoners crash

  • Bugfixes: - Consider inverse property in get_properties() - Fix parsing bug in reasoning with HermiT and infer_property_values = True - Namespace prefix support in RDFlib binding - Fix dupplicates values when a relation involving a property with inverse is asserted in both directions - Better workaround in case of metaclass conflict - Fix 'sqlite3.OperationalError: too many SQL variables' in searches with 'type =', 'subclass_of =', or 'is_a =' parameters

The new version be downloaded from PyPI (Python Package Index): https://pypi.python.org/pypi/Owlready2

Presentation at VISAPP 2019!

I presented my works on the use of rainbow boxes for visualizing quantum algorithm at the International Conference on Information Visualization Theory and Applications (IVAPP) 2019.

The paper, entitled "Dynamic software visualization of quantum algorithms with rainbow boxes", is available here and the presentation there.

Owlready2 0.14 has been released!

Owlready is a Python module for ontology-oriented programming. It can load OWL 2.0 ontologies and manipulate them transparently in Python.

This new version adds the ability to infer property values (as in Protégé) and to use SWRL rules. It improves class properties and it can import UMLS (still undocumentated!). It also fixes several bugs.

Here are the changes in version 0.14:

  • UMLS support (owlready2.pymedtermino2 package)

  • Can infer object property values when reasoning (thanks W Zimmer)

  • New implementation of property values; use INDIRECT_prop to get indirect values

  • Support several class property types : some, only, some + only, and direct relation

  • Automatically create defined classes via class properties

  • Support anonymous individuals, e.g. Thing(0)

  • Optimize search() when only the number of returned elements is used

  • Optimize FTS search() when using also non-FTS statements

  • Can restrict reasoning to a list of ontologies

  • Union searches (i.e. default_world.search(...) | default_world.search(...))

  • Bugfixes: - Fix functional class properties with inheritance - Fix dupplicated instance list restrictions when calling close_world(ontology) - Fix use of '*' in search - Fix synchronization, using contextvars for global variables

The new version be downloaded from PyPI (Python Package Index): https://pypi.python.org/pypi/Owlready2

Balazar Brothers is back!

Balazar Brothers is a fun 3D puzzle game, for Linux.

The game was designed 12 years ago, and was no longer available... until today! After Slune, now Balazar Brothers is updated for recent computers and systems.

Follow the install instructions and enjoy!