Observed behaviour
Version 2.5.7 is not capable of loading my OWL file, while 2.5.3 does.
Background
I am one of the developers of Ontoma, a tool that processes the EFO ontology OWL file using pronto.
We are having issues upgrading from version 2.5.3 to 2.5.7, the latest one. Every time I try loading the OWL file, I get this error:
ValueError: undeclared synonym type: http://purl.obolibrary.org/obo/mondo#ABBREVIATION.
Install pronto 2.5.7 with pip install pronto==2.5.7
Start iPython session
Import and try to load the ontology
import pronto
ont = pronto.Ontology("efo_otar_slim.owl")
See error
This is not a problem with the ontology, I've tried loading previous versions with the same result.
In fact, it loads just fine when I use an older version of pronto:
Uninstall pronto 2.5.7 and install 2.5.3 pip install pronto==2.5.3
Start iPython session
Import and try to load the ontology
import pronto
ont = pronto.Ontology("efo_otar_slim.owl")
Full traceback is here:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[41], line 1
----> 1 ont = pronto.Ontology("efo_otar_slim.owl")
File /usr/local/lib/python3.11/site-packages/pronto/ontology.py:283, in Ontology.__init__(self, handle, import_depth, timeout, threads)
281 for cls in BaseParser.__subclasses__():
282 if cls.can_parse(typing.cast(str, self.path), buffer):
--> 283 cls(self).parse_from(_handle) # type: ignore
284 break
285 else:
File /usr/local/lib/python3.11/site-packages/pronto/parsers/rdfxml.py:119, in RdfXMLParser.parse_from(self, handle, threads)
117 self._extract_term(class_, curies)
118 for axiom in tree.iterfind(_NS["owl"]["Axiom"]):
--> 119 self._process_axiom(axiom, curies)
121 # Update lineage cache with symmetric of `subClassOf`
122 self.symmetrize_lineage()
File /usr/local/lib/python3.11/site-packages/pronto/parsers/rdfxml.py:822, in RdfXMLParser._process_axiom(self, elem, curies)
816 type_ = elem_type.text
818 try:
819 # recover existing synonym on the entity if there's one already
820 synonym = next(
821 s._data()
--> 822 for s in entity.synonyms
823 if s.description == elem_target.text
824 and s.scope == _SYNONYMS[property]
825 )
826 # update synonym type of existing synonym if we got one
827 if type_ is not None:
File /usr/local/lib/python3.11/site-packages/pronto/entity/__init__.py:465, in Entity.synonyms(self)
463 """`frozenset` of `Synonym`: A set of synonyms for this entity."""
464 ontology, termdata = self._ontology(), self._data()
--> 465 return frozenset(Synonym(ontology, s) for s in termdata.synonyms)
File /usr/local/lib/python3.11/site-packages/pronto/entity/__init__.py:465, in <genexpr>(.0)
463 """`frozenset` of `Synonym`: A set of synonyms for this entity."""
464 ontology, termdata = self._ontology(), self._data()
--> 465 return frozenset(Synonym(ontology, s) for s in termdata.synonyms)
File /usr/local/lib/python3.11/site-packages/pronto/synonym.py:133, in Synonym.__init__(self, ontology, syndata)
131 if syndata.type is not None:
132 if not any(t.id == syndata.type for t in ontology.synonym_types()):
--> 133 raise ValueError(f"undeclared synonym type: {syndata.type}")
134 self._data = weakref.ref(syndata)
135 self.__ontology = ontology
ValueError: undeclared synonym type: http://purl.obolibrary.org/obo/mondo#ABBREVIATION
Observed behaviour Version 2.5.7 is not capable of loading my OWL file, while 2.5.3 does.
Background I am one of the developers of Ontoma, a tool that processes the EFO ontology OWL file using
pronto
. We are having issues upgrading from version2.5.3
to2.5.7
, the latest one. Every time I try loading the OWL file, I get this error:ValueError: undeclared synonym type: http://purl.obolibrary.org/obo/mondo#ABBREVIATION
.Steps to reproduce
pip install pronto==2.5.7
This is not a problem with the ontology, I've tried loading previous versions with the same result. In fact, it loads just fine when I use an older version of pronto:
pip install pronto==2.5.3
Full traceback is here: