althonos / pronto

A Python frontend to (Open Biomedical) Ontologies.
https://pronto.readthedocs.io
MIT License
229 stars 48 forks source link

Pronto is not parsing implicit string annotations #231

Closed CarMoreno closed 1 month ago

CarMoreno commented 2 months ago

Pronto is not able to parse this:

<owl:Class rdf:about="http://purl.obolibrary.org/obo/CHEBI_65">
    <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/CHEBI_72739"/>
    <chebi:charge rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</chebi:charge>
    <chebi:formula>C15H12O6</chebi:formula>
    <chebi:inchi>InChI=1S/C15H12O6/c16-7-1-2-9(11(18)3-7)10-6-21-13-5-8(17)4-12(19)14(13)15(10)20/h1-5,10,16-19H,6H2</chebi:inchi>
    <chebi:inchikey>WNHXBLZBOWXNQO-UHFFFAOYSA-N</chebi:inchikey>
    <chebi:mass rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal">288.255</chebi:mass>
    <chebi:monoisotopicmass rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal">288.06339</chebi:monoisotopicmass>
</owl:Class>

I am getting something like:

{
  LiteralPropertyValue('http://purl.obolibrary.org/obo/chebi/mass', '288.255', datatype='xsd:decimal'), 
  LiteralPropertyValue('http://purl.obolibrary.org/obo/chebi/charge', '0', datatype='xsd:integer'), 
  LiteralPropertyValue('http://purl.obolibrary.org/obo/chebi/monoisotopicmass', '288.06339', datatype='xsd:decimal')
}

However, information without annotations is not parsed. I believe this issue is related: owlcs/owlapi#1063. From what I understand, properties without annotations are automatically assigned a string annotation by default. It might be beneficial for Pronto to incorporate this new rule, as ontologies generated by ROBOT versions greater than 1.9.1 could potentially benefit from this enhancement.

Thank you for your attention to this matter.

althonos commented 1 month ago

Hi, I fixed this in v2.5.8.