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 = ...))
- 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
Thanks for that link. Its quite impressive what can be done here and now in full python!.
Have you been thinking of more conventional approaches to create a web interface to owlready? (e.g. flask or fastapi based. In principle also some parts django but not sure what would be the use of its own ORM / db given that owlready has a backend already). Or with a desktop webview based UI it could become a workable alternative to protege?
I developed some website with Owlready and Flask, but the use of Owlready was limited to the server part and, actually, most of the work was achieved in the sever. In FullPy, the idea is to have an "heavier" client (I also some some experimental protocol for sharing ontology entity with client).