-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BTE problem parsing Automat-robokop, leads to TRAPI validation crashes (ARS can't use BTE's response) #879
Comments
Probably want to fix ASAP @andrewsu @tokebe @rjawesome @NeuralFlux |
Going through it now. I will discuss with @rjawesome later. |
@colleenXu do we have a query which returns a vaild TRAPI response, i.e., |
@colleenXu , the reasoner-validator reporting bug you identified is resolved in release 4.2.7 As you noted, a real validation error was triggered by the use of array values for qualifiers. This is actually a TRAPI compliance error. The patch to reasoner-validator just now ensures that the report succeeds in dumping its results without crashing. I guess this Biothings issue can be closed? |
@RichardBruskiewich This issue is still tracking what BTE is doing wrong to produce the legitimate validation error, so it'll remain open until a fix is made on BTE's side and said fix makes its way up to Prod. |
Ok... the BTE TRAPI non-compliance error should now be properly reported and simply relates to the face that Edge qualifiers cannot be arrays of values, only a single string scalar value |
I believe the issue arose because
Since an association's qualifier may have an array value in For the fix, (1) I init record's qualifiers to an empty set if they're |
Noting for the above that this should be a problem specific to TRAPI KPs -- AFAIK Non-TRAPI KPs aren't given array qualifier values on individual operations (CC @colleenXu to confirm) because it's expected that record qualifiers will be drawn from the association. |
Thanks for the note @tokebe , updated my comment. |
Yup this shouldn't show up in non-TRAPI KPs. all x-bte operations are set up to only have 1 string/value per qualifier_type_id. |
Related changes deployed to Prod as of 11/13 |
Related to #865
Noticed in https://arax.ci.transltr.io/?r=c961069f-36da-4369-a141-3aad9234e5ca. There's a red X-mark for validation. But it only shows the basic TypeError message and nothing else. Consequently, the ARS doesn't ingest BTE's response. (TRAPI "orange" errors don't prevent ARS from using BTE's response. The "red" critical errors do.)
So I downloaded BTE's response bte-ci-pf2-validationProblem.json.zip and used a notebook to run TRAPI validation locally. I've confirmed that this is the only critical error in BTE's response (by mutating the response to force all-string qualifier values. Then no critical/unusual errors. You can see this in the notebook right now)
The problem is the KG edge qualifier value is an array, not a string.
It looks like a BTE-parsing-response issue or MetaKG issue (parsing Automat robokop's meta_knowledge_graph response).
Validation report right before crash
I found 4 almost-identical (?) KG edges matching this error message
Easier way to test: quick non-creative-mode query to retrieve these problematic edges
POST query to local instance ARA-mode: http://localhost:3000/v1/query
Querying Automat robokop directly: no qualifier issues + only 1 corresponding edge
POST to
https://automat.ci.transltr.io/robokopkg/query
.Will get some other edges too: this KP seems to have query-directionality issues. It also returns edges in the canonical direction (not what was asked for).
Only found 1 edge that matches the 4 BTE edges and its qualifier set is fine...
The text was updated successfully, but these errors were encountered: