@classmethod
def from_definition(cls, definition_fp):
    """
        Return a PatternManager ojbect from give pattern difinition file
        """
    pm = cls()
    with open(definition_fp) as f:
        pattern_lines = filter(lambda x: any([len(x) == 0, x[0] != '#']), f
            .read().strip().split('\n'))
    for line in pattern_lines:
        lemma, sep, tail = line.partition(':')
        snippets = tail.split(';')
        pm.add_snippets(snippets, lemma)
    return pm
