ncbo / bioportal-project

Serves to consolidate (in Zenhub) all public issues in BioPortal
BSD 2-Clause "Simplified" License
7 stars 5 forks source link

metrics for class count sometimes gets set as a string instead of an integer #258

Open alexskr opened 2 years ago

alexskr commented 2 years ago

We are getting ArgumentError: comparison of String with 0 failed when accessing /ontologies/PESONT/classes

ArgumentError: comparison of String with 0 failed
…controllers/classes_controller.rb:   10:in `<'
…controllers/classes_controller.rb:   10:in `block(2 levels) in <class

culprit is:

https://github.com/ncbo/ontologies_api/blob/3728faba77cf227f925a274287a70a7377dcc1d4/controllers/classes_controller.rb#L10 adding .to_i to cls_count solves the 500 error but I think the root case of the problem is probably elsewhere.

Looking at the metrics we can see that class count metrics is set to a string instead of an integer:

{
"id": ["https://data.bioontology.org/ontologies/PESONT/submissions/2/metrics"](https://data.bioontology.org/ontologies/PESONT/submissions/2/metrics),
"classes": "160",
"created": "2021-11-12T14:12:55-08:00",
"individuals": 50,
"properties": 14,
"maxDepth": 3,
"maxChildCount": 17,
"averageChildCount": 5,
"classesWithOneChild": 0,
"classesWithMoreThan25Children": 0,
"classesWithNoDefinition": 160,
-"submission": [
alexskr commented 2 years ago

The first and second submissions for PESONT ontology are identical, so I removed 2nd submission and re-processed it. This fixed metrics for the class count.

alexskr commented 4 months ago

this problem resurfaces when re-processing submissions:

E, ERROR -- : Failed, exception: ArgumentError: comparison of String with -1 failed
gems/ontologies_linked_data-048087406b7e/lib/ontologies_linked_data/services/submission_process/operations/submission_rdf_generator.rb:70:in `>'

https://github.com/ncbo/ontologies_linked_data/blob/67bfd0518247be2086c3590c75debe381015d661/lib/ontologies_linked_data/services/submission_process/operations/submission_rdf_generator.rb#L68

perhaps adding .to_i to cout would be a reasonable approach?

alexskr commented 4 months ago

the triple store contains quoted/string metrics class counts values for a few submissions.

<http://data.bioontology.org/ontologies/ISO19115CI/submissions/1/metrics> <http://data.bioontology.org/metadata/classes> "23" ;
<http://data.bioontology.org/ontologies/GPML/submissions/66/metrics> <http://data.bioontology.org/metadata/classes> "43" ;
<http://data.bioontology.org/ontologies/ECO/submissions/60/metrics> <http://data.bioontology.org/metadata/classes> "929" ;
<http://data.bioontology.org/ontologies/BMO/submissions/1/metrics> <http://data.bioontology.org/metadata/classes> "170" ;
<http://data.bioontology.org/ontologies/XCO/submissions/139/metrics> <http://data.bioontology.org/metadata/classes> "1030" ;