def _process(t): """Encode tree *t* and return the string.""" # tree transformations if normalize_options['make_variables']: t.reset_variables(normalize_options['make_variables']) if normalize_options['canonicalize_roles']: t = transform.canonicalize_roles(t, model) if normalize_options['rearrange'] == 'canonical': layout.rearrange(t, key=model.canonical_order) elif normalize_options['rearrange'] == 'random': layout.rearrange(t, key=model.random_order) g = layout.interpret(t, model) # graph transformations if normalize_options['reify_edges']: g = transform.reify_edges(g, model) if normalize_options['dereify_edges']: g = transform.dereify_edges(g, model) if normalize_options['reify_attributes']: g = transform.reify_attributes(g) if normalize_options['indicate_branches']: g = transform.indicate_branches(g, model) if triples: return codec.format_triples(g.triples, indent=bool( format_options.get('indent', True))) else: return codec.encode(g, **format_options)
def test_canonicalize_roles_default_codec(): parse = def_codec.parse norm = lambda t: canonicalize_roles(t, def_model) format = lambda t: def_codec.format(t, indent=None) t = norm(parse('(a / alpha :ARG1 (b / beta))')) assert format(t) == '(a / alpha :ARG1 (b / beta))' t = norm(parse('(a / alpha :ARG1-of-of (b / beta))')) assert format(t) == '(a / alpha :ARG1 (b / beta))' t = norm(parse('(a / alpha :mod-of (b / beta))')) assert format(t) == '(a / alpha :mod-of (b / beta))'
def test_canonicalize_roles_amr_codec(): parse = amr_codec.parse norm = lambda t: canonicalize_roles(t, amr_model) format = lambda t: amr_codec.format(t, indent=None) t = norm(parse('(a / alpha :ARG1 (b / beta))')) assert format(t) == '(a / alpha :ARG1 (b / beta))' t = norm(parse('(a / alpha :ARG1-of-of (b / beta))')) assert format(t) == '(a / alpha :ARG1 (b / beta))' t = norm(parse('(a / alpha :mod-of (b / beta))')) assert format(t) == '(a / alpha :domain (b / beta))' t = norm(parse('(a / alpha :mod-of~1 (b / beta))')) assert format(t) == '(a / alpha :domain~1 (b / beta))'
def _process_in(t, model, normalize_options): """Encode tree *t* and return the string.""" # tree transformations if normalize_options['canonicalize_roles']: t = transform.canonicalize_roles(t, model) g = layout.interpret(t, model) # graph transformations if normalize_options['reify_edges']: g = transform.reify_edges(g, model) if normalize_options['dereify_edges']: g = transform.dereify_edges(g, model) if normalize_options['reify_attributes']: g = transform.reify_attributes(g) if normalize_options['indicate_branches']: g = transform.indicate_branches(g, model) return g