We read tables formatted as TSV files here. We assume the first line in the file is a tab
        separated list of column headers, and all subsequent lines are content rows. For example if
        the TSV file is:

        Nation      Olympics    Medals
        USA         1896        8
        China       1932        9

        we read "Nation", "Olympics" and "Medals" as column headers, "USA" and "China" as cells
        under the "Nation" column and so on.

def read_from_file(cls, filename: str, question: List[Token]) -> 'TableQuestionKnowledgeGraph':
        """
        We read tables formatted as TSV files here. We assume the first line in the file is a tab
        separated list of column headers, and all subsequent lines are content rows. For example if
        the TSV file is:

        Nation      Olympics    Medals
        USA         1896        8
        China       1932        9

        we read "Nation", "Olympics" and "Medals" as column headers, "USA" and "China" as cells
        under the "Nation" column and so on.
        """
        return cls.read_from_lines(open(filename).readlines(), question)