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

My French novel "Sombre comme l'Aurore - La légende de Tienn Halidenn" has been published by Éditions du 38!

My book on Python and ontologies is available in English (Ontologies with Python) and French (Python et les ontologies).

Good reading!

FullPy 0.2 has been released!

FullPy is a Python module for developing semantic client-server web application, entirely in Python.

FullPy can be downloaded from PyPI (Python Package Index): https://pypi.python.org/pypi/fullpy

Owlready2 0.47 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.

Here are the changes:

  • Support binary data: Python bytes are now mapped to XML base64Binary.

  • Bugfixes:

    • Fix OPTIONAL blocks in SPARQL queries that share variable outside the OPTIONAL block

    • Fix prop1[prop2 in OPTIONAL blocks in SPARQL queries

    • Fix individuals belonging to several classes when one of these classes has a OneOf construct including that individual

    • Fix descendants when using subclasses of ThingClass (as PyMedTermino2 does)

    • Fix and update pymedtermino2

    • Fix SPARQL queries with BIND and UNION

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

New preprint "A randomized simulation trial evaluating ABiMed, a clinical decision support system for medication reviews and polypharmacy management"

I have published a new preprint:

preprint [p6] Mouazer A, Dubois S, Léguillon R, Boudegzdame N, Levrard T, Le Bars Y, Simon C, Séroussi B, Grosjean J, Lelong R, Letord C, Darmoni S, Sedki K, Meneton P, Tsopra R, Falcoff H, Lamy JB. A randomized simulation trial evaluating ABiMed, a clinical decision support system for medication reviews and polypharmacy management. Arxiv preprint arXiv:2409.01903 2024

New journal paper "Original Strategy for Verbatim Collecting Knowledge from Mostly-Illiterate and Secretive Experts"

I have published a new journal paper:

journal [j76] Kouame A, Lamy JB, Ehoule K. Original Strategy for Verbatim Collecting Knowledge from Mostly-Illiterate and Secretive Experts : West Africa Traditional Medicine’s Case. International Journal of Advanced Computer Science and Applications (IJACSA) 2024;15(7)

New preprint "Impact on clinical guideline adherence of Orient-COVID, a CDSS based on dynamic medical decision trees for COVID19 management"

I have published a new preprint:

preprint [p5] Jammal M, Saab A, Abi Khalil C, Mourad C, Tsopra R, Saikali M, Lamy JB. Impact on clinical guideline adherence of Orient-COVID, a CDSS based on dynamic medical decision trees for COVID19 management: a randomized simulation trial. Arxiv preprint arXiv:2407.11205 2024

Owlready2 0.46 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.

Here are the changes:

  • Remove warning when Cython module is not available

  • Update import OMOP CDM for their new CSV format

  • Basic support for enumerated datatypes (= defined with an equivalent_to and a OneOf)

  • Improved synchronization and multiprocessor support

  • Bugfixes: * Fix IRI() return type in SPARQL * Fix SPARQL queries with two UNIONs when there is no shared variables between the unions members * Fix parsing ontology with IRI ending by '?' * Avoid reusing ID of destroyed entity (storid; reuse is problematic when sharing the quadstore with other processes)

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

Happy new year 2024!

_images/voeux_2024.png

New preprint "ABiMed"

I have published a new preprint:

preprint [p4] Mouazer A, Léguillon R, Boudegzdame N, Levrard T, Le Bars Y, Simon C, Séroussi B, Grosjean J, Lelong R, Letord C, Darmoni S, Schuers M, Sedki K, Dubois S, Falcoff H, Tsopra R, Lamy JB. ABiMed: An intelligent and visual clinical decision support system for medication reviews and polypharmacy management. Arxiv preprint arXiv:2312.11526 2023

Owlready2 0.45 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.

Here are the changes:

  • The PREDEFINED_ONTOLOGIES global dictionary can now be used to map ontology IRI to arbitrary local pathes or URL.

  • The new FTSSqlite3Phrase() string type can be used to perform FTS search using Sqlite3 special syntax, e.g. default_world.search(label = FTSSqlite3Phrase("Electrocardiographic OR ECG"))

  • Add support for RDF plain literals, via the plainliteral Python datatype.

  • Bugfixes: * Fix set_name() on property when python_name is the same as name * Fix some special characters (e.g. :) and keyword (e.g. OR) in FTS search * Fix literal with no datatype (should be considered as string, see https://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal * Fix wrong inheritance of TransitiveProperty, ReflexiveProperty and SymmetricProperty * Fix 'DeprecationWarning: invalid escape sequence' in regexp * Raise an error when creating a new ontology inside a with ontology:... block * Use rdf:langString for locstr (was rdf:plainLiteral)

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

New preprint "Adaptive questionnaires for facilitating patient data entry in clinical decision support systems"

I have published a new preprint:

preprint [p3] Lamy JB, Mouazer A, Sedki K, Dubois S, Falcoff H. Adaptive questionnaires for facilitating patient data entry in clinical decision support systems: Methods and application to STOPP/START v2. Arxiv preprint arxiv:2309.10398 2023

Owlready2 0.44 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 version includes an observation framework allowing to register a listener to any entity, in order to be notified when the entity relations are modified.

It also introduces a new syntax for annotating relations: AnnotatedRelation(s,p,o).comment = ["abc"] (NB the old syntax remains supported).

Here are the changes:

  • New syntax for annotations on relation, e.g. AnnotatedRelation(s,p,o).comment = "abc" (the old syntax remains supported)

  • Optimize annotations on relations

  • Support GRAPH clauses in SPARQL INSERT queries

  • Observation framework (see owlready2.observe and doc on the observation framework)

  • Bugfixes: - Fix the update of equivalent_to after destroying a class - Fix the update of annotations on class when modified with SPARQL queries - Fix SPARQL GRAPH clause in SELECT queries when querying the graph as a variable and all triples are not inside the GRAPH clause - Fix LANGMATCHES SPARQL function - Prevent multiprocessing loading of large ontologies when fork is not available (i.e. on Mac) - Fix subproperties parent classes when destroying a property - Fix loading of TransitiveProperty, SymmetricProperty, AsymmetricProperty, ReflexiveProperty, IrreflexiveProperty

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

Owlready2 0.43 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 version includes a backward incompatible change: literal with different languages are now considered as different. For instance:

  • locstr("Test", "en") != "Test"

  • locstr("Test", "en") != locstr("Test", "fr")

This was not the case in previous releases, and it caused some weird bugs and confusion between literals.

I also would like to introduce a new projet: FullPy is Python module for designing web applications entirely in Python. It uses Owlready for data semantics and persistance. More information on FullPy can be found here:

Finally, due to a last minute bug, there is no 0.42 version.

Here are the changes:

  • INCOMPATIBLE CHANGE: Consider literal with different language as different

  • Support GRAPH clauses in SPARQL queries

  • World now supports custom lock (e.g. World(lock = ...))

  • Bugfixes: - Fix World(enable_thread_parallelism = True) (was named enable_gevent) - Fix blank nodes in rdflib_store - Fix FILTER in SPARQL when the filter was just after a recursive query - Fix recursive query in SPARQL involving variables in their right part - Fix SPARQL query with annotations containing entities - Fix property creation when using a Union in the '>>' syntax (e.g. class Prop((MyClass | MyOtherClass) >> str): pass) - Fix UMLS extraction in PyMedTermino2 - Fix Class IRI with brackets (or other special characters) when writing RDF/XML file

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

FullPy 0.1 has been released!

FullPy is a Python module for developing semantic client-server web application, entirely in Python.

This is the initial release of FullPy.

FullPy can be downloaded from PyPI (Python Package Index): https://pypi.python.org/pypi/fullpy

Owlready2 0.41 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 version introduces some works on thread-based parallelization. The parsing of huge OWL file is now faster (about 25% faster on GO), and Owlready can execute SPARQL queries in parallel. Please refer to the doc for more info (https://owlready2.readthedocs.io/en/latest/sync.html).

Here are the changes:

  • Parallelized huge OWL file parsing (about 25% faster on GO)

  • Parallelized SPARQL queries (see owlready2.sparql.execute_many() and execute(spawn = True))

  • Bugfixes: - Fix Class.INDIRECT_get_class_properties() with restriction on Inverse(Prop) - Fix Restriction of type HasSelf - Fix delattr in destroy_entity() - Fix blank nodes importation from RDFlib - Fix ', + and - in FTS search

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