def __init__()

in clutrr/relations/puzzle.py [0:0]


    def __init__(self,
                 id = None,
                 target_edge=None,
                 story=None,
                 proof=None,
                 query_edge=None,
                 ancestry=None,
                 relations_obj=None
                 ):
        """

        :param id: unique id of the puzzle
        :param target_edge: the target edge, (node_a, node_b)
        :param story: list of edges consisting of the story
        :param proof: proof state of the resolution from target edge to story
        :param query_edge: edge to query, usually the same as target_edge
        :param ancestry: full background graph the story was derived from
        :param relations_obj: store of the rule base of the relations
        """
        if id is None:
            self.id = str(uuid.uuid4())
        else:
            self.id = id
        self.target_edge = target_edge
        self.story = story
        self.proof_trace = proof
        self.facts = []
        self.query_edge = query_edge
        self.anc = ancestry
        self.relations_obj = relations_obj

        # derived values
        self.query_text = None
        self.target_edge_rel = None
        self.story_rel = None
        self.text_question = None
        self.relation_comb = None

        # derived full text story
        self.full_text_story = None
        # story edges with sorted node ids
        self.story_sorted_ids = None
        self.story_sort_dict = {} # mapping between the original node id and sorted node id
        # the templator instances to use
        self.train_templates = None
        self.test_templates = None