def __hit_endpoint(self, question, chunks): id = question input = {'nlquery': question} if chunks is not None and isinstance(chunks, list) and len(chunks) > 0: input['chunks'] = chunks id += "".join(chunks) if id not in self.cache or not self.use_cache: self.cache[id] = Utils.call_web_api(self.endpoint, input) self.__save_cache() return self.cache[id]
def do(self, qapair, force_gold=False, top=5): entities = [] relations = [] for u in set(qapair.sparql.uris): question = qapair.question.text mentions = Utils.find_mentions(question, [u]) surface = "" if len(mentions) > 0: surface = question[mentions[0]["start"]:mentions[0]["end"]] linked_item = LinkedItem(surface, [u]) if u.is_entity(): entities.append(linked_item) if u.is_ontology(): relations.append(linked_item) return entities, relations