You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a system sends any additional information, the JSON parser of GERBIL QA is configured to abort the parsing process. This may lead to additional development effort on the system side to remove additional information.
An example is the following response
{"questions": [{"id": "1", "question": [{"language": "en", "string": "What is the alma mater of the chancellor of Germany Angela Merkel?"}], "query": {"sparql": "SELECT ?Almamater WHERE { <http://dbpedia.org/resource/Angela_Merkel> <http://dbpedia.org/ontology/almaMater> ?Almamater }"}, "answers": [{"head": {"link": [], "vars": ["Almamater"]}, "results":
{"distinct": false,
"ordered": true,
"bindings": [{"Almamater": {"type": "uri", "value": "http://dbpedia.org/resource/Leipzig_University"}}, {"Almamater": {"type": "uri", "value": "http://dbpedia.org/resource/German_Academy_of_Sciences_at_Berlin"}}]}}]}]}
It causes the following exception
2022-02-10 12:42:41,996 [pool-35-thread-17] ERROR [org.aksw.gerbil.annotator.decorator.ErrorCountingAnnotatorDecorator] - <Got an Exception from the annotator ExampleAnnotator>
org.aksw.gerbil.exceptions.GerbilException: Couldn't parse the response.
at org.aksw.gerbil.annotator.impl.qa.ExtendedQALDBasedWebService.answerQuestion(ExtendedQALDBasedWebService.java:123) ~[classes/:?]
at org.aksw.gerbil.annotator.decorator.TimeMeasuringAnnotatorDecorator.performQATask(TimeMeasuringAnnotatorDecorator.java:276) ~[classes/:?]
at org.aksw.gerbil.annotator.decorator.TimeMeasuringAnnotatorDecorator$TimeMeasuringQASystem.answerQuestion(TimeMeasuringAnnotatorDecorator.java:205) ~[classes/:?]
at org.aksw.gerbil.annotator.decorator.ErrorCountingAnnotatorDecorator.performQATask(ErrorCountingAnnotatorDecorator.java:401) [classes/:?]
at org.aksw.gerbil.annotator.decorator.ErrorCountingAnnotatorDecorator$ErrorCountingQASystem.answerQuestion(ErrorCountingAnnotatorDecorator.java:213) [classes/:?]
at org.aksw.gerbil.annotator.decorator.SingleInstanceSecuringAnnotatorDecorator.performQATask(SingleInstanceSecuringAnnotatorDecorator.java:352) [classes/:?]
at org.aksw.gerbil.annotator.decorator.SingleInstanceSecuringAnnotatorDecorator$SingleInstanceSecuringQASystem.answerQuestion(SingleInstanceSecuringAnnotatorDecorator.java:211) [classes/:?]
at org.aksw.gerbil.execute.ExperimentTask.runExperiment(ExperimentTask.java:530) [classes/:?]
at org.aksw.gerbil.execute.ExperimentTask.run(ExperimentTask.java:167) [classes/:?]
at org.aksw.simba.topicmodeling.concurrent.workers.WorkerImpl.run(WorkerImpl.java:44) [topicmodeling.concurrent-0.0.2-SNAPSHOT.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_191]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191]
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "distinct" (class org.aksw.qa.commons.load.json.EJResults), not marked as ignorable (one known property: "bindings"])
at [Source: (ByteArrayInputStream); line: 1, column: 298] (through reference chain: org.aksw.qa.commons.load.json.QaldJson["questions"]->java.util.Vector[0]->org.aksw.qa.commons.load.json.QaldQuestionEntry["answers"]->java.util.Vector[0]->org.aksw.qa.commons.load.json.EJAnswers["results"]->org.aksw.qa.commons.load.json.EJResults["distinct"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:823) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1153) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1589) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1567) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:294) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:286) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:286) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4014) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3071) ~[jackson-databind-2.9.10.5.jar:2.9.10.5]
at org.aksw.qa.commons.load.json.ExtendedQALDJSONLoader.readJson(ExtendedQALDJSONLoader.java:115) ~[commons-0.4.22.jar:0.4.22]
at org.aksw.gerbil.annotator.impl.qa.ExtendedQALDBasedWebService.answerQuestion(ExtendedQALDBasedWebService.java:110) ~[classes/:?]
... 12 more
Solution
The parser should be allowed to ignore key-value pairs that it can not match.
The text was updated successfully, but these errors were encountered:
Problem
When a system sends any additional information, the JSON parser of GERBIL QA is configured to abort the parsing process. This may lead to additional development effort on the system side to remove additional information.
An example is the following response
It causes the following exception
Solution
The parser should be allowed to ignore key-value pairs that it can not match.
The text was updated successfully, but these errors were encountered: