def unknown_2_entity_2_generation(current_uid: int, question_template: Dict[str, Any], generated_questions: List[Dict[str, Any]], old_entities_ids: List[str] = None, old_entities: List[str] = None) -> Dict[str, Any]: generated_template = deepcopy(question_template) if old_entities_ids is None: sparql_query = generated_template['sparql_wikidata'] old_entities_ids = questions_generator.get_elements_from_query(sparql_query, [0, 1]) found, old_entities = questions_generator.entity_2_generation_common_part(current_uid, generated_template, generated_questions, old_entities_ids, old_entities) if not found: return unkown_2_entity_generation(current_uid, generated_template, generated_questions, old_entities_ids, old_entities) else: unknown_2_nnqt_question_construction(generated_template) return generated_template
def right_subgraph_2_entity_2_generation(current_uid: int, question_template: Dict[str, Any], generated_questions: List[Dict[str, Any]], old_entities_ids: List[str] = None, old_entities: List[str] = None) -> Dict[str, Any]: generated_template = deepcopy(question_template) if old_entities_ids is None: sparql_query = generated_template['sparql_wikidata'] old_entities_ids = questions_generator.get_elements_from_query(sparql_query, [0]) found, old_entities = questions_generator.entity_2_generation_common_part(current_uid, generated_template, generated_questions, old_entities_ids, old_entities) if not found: # There aren't valid candidates, so try with a random entity return right_subgraph_2_entity_generation(current_uid, question_template, generated_questions, old_entities_ids, old_entities) else: right_subgraph_2_nnqt_question_construction(generated_template) return generated_template
def statement_property_entity_2_generation(current_uid: int, question_template: Dict[str, Any], generated_questions: List[Dict[str, Any]], old_entities_ids: List[str] = None, old_entities: List[str] = None) -> Dict[str, Any]: generated_template = deepcopy(question_template) if old_entities_ids is None: sparql_query = generated_template['sparql_wikidata'] # Check if there is a filter: if not so the last element is an entity if 'filter' in sparql_query.lower(): old_entities_ids = questions_generator.get_elements_from_query(sparql_query, [0]) else: old_entities_ids = questions_generator.get_elements_from_query(sparql_query, [0, 1]) found, old_entities = questions_generator.entity_2_generation_common_part(current_uid, generated_template, generated_questions, old_entities_ids, old_entities) if not found: # There aren't valid candidates, so try with a random entity return statement_property_entity_generation(current_uid, question_template, generated_questions, old_entities_ids, old_entities) else: statement_property_nnqt_question_construction(generated_template) return generated_template