sbmlteam / libsbml

LibSBML is a native library for reading, writing and manipulating files and data streams containing the Systems Biology Markup Language (SBML). It offers language bindings for C, C++, C#, Java, JavaScript, MATLAB, Perl, PHP, Python, R and Ruby.
https://sbml.org/software/libsbml
Other
41 stars 28 forks source link

Does bqmodel have 'hasProperty' or only bqbiol? #280

Closed luciansmith closed 1 year ago

luciansmith commented 1 year ago

I'm running into an issue when parsing annotations with libsbml, and I'm not sure if the issue is with the models, or with libsbml.

The issue is that there's a number of Biomodels with the annotation 'bqmodel:hasProperty'. Libsbml parses that as 'unknown'. It may well simply be a typo on the model creator's part, and they meant to type 'bqbiol:hasProperty'.

However, when trying to track down the actual list, all I could find was

https://www.ebi.ac.uk/rdf/documentation/biomodels/

which doesn't match libsbml's implementation: on that web page, bqmodel has three entries: 'is' 'isDerivedFrom' and 'isDescribedBy'.

In contrast, libsbml has two more entries: 'isInstanceOf', and 'hasInstance'. So presumably, the list was expanded some time after the image in that web page was created? Which means that perhaps 'hasProperty' was also added at some point after that? Is there an active list somewhere?

luciansmith commented 1 year ago

Update: Rahuman guesses that the annotations are being added by COPASI. @fbergmann , can you verify?

Also, the full list used to be at http://co.mbine.org/specifications/qualifiers which recently died; so hopefully there's a backup.

fbergmann commented 1 year ago

first, here is the backup:

https://web.archive.org/web/20211204231945/http://co.mbine.org/specifications/qualifiers

fbergmann commented 1 year ago

as far as COPASI is concerned, it only ever sets bqbiol qualifiers so it wasn't us. But I know that in the past the biomodels team has post processed the sbml files, to change some qualifiers that way.

So overall i'd say the issue is not with libSBML, and not with COPASI either.

luciansmith commented 1 year ago

Great! Thanks for tracking all this down; I really appreciate it. So, yes, the upshot is that it's the models that need to be fixed. Which I can do!