예제 #1
0
def past_suff_entry(past_entry, next_index):

    syn_val = suff_syn_value("past", "preVowel")

    relspec1 = Relspec("TempMatch", {})
    temp, next_index = add_role(next_index, relspec1, "TEMP1")
    tref, next_index = add_role(next_index, relspec1, "TEMP2")
    relspec2 = Relspec("PastTemp", {"TEMP": tref})
    relspecs = [relspec1, relspec2]

    hooks = {"temp": temp, "tref": tref}
    subcat = []

    return syn_val, relspecs, hooks, subcat, next_index
예제 #2
0
def plu_suff_entry(plu_entry, next_index):

    orth_form, = plu_entry
    syn_val = suff_syn_value("plural", orth_form)

    relspec1 = Relspec("AbsVal", {})
    quant, next_index = add_role(next_index, relspec1, "NODE")
    val, next_index = add_role(next_index, relspec1, "VAL")

    relspec2 = Relspec("GreaterThan", {"GREATER": val, "LESS": 1})

    hooks = {"quant": quant}

    return syn_val, [relspec1, relspec2], hooks, [], next_index
예제 #3
0
def det_entry(sg, plu, df, width, next_index):

    syn_val = det_syn_val(sg, plu)

    relspec = Relspec("Quant", {})
    head, next_index = add_role(next_index, relspec, "RESTR")
    root, next_index = add_role(next_index, relspec, "SCOPE")
    quant, next_index = add_role(next_index, relspec, "QUANT")
    relspec.roles["DEF"] = df
    relspec.roles["WIDTH"] = width

    hooks = {"head": head, "root": root, "quant": quant}

    return syn_val, relspec, hooks, [], next_index
예제 #4
0
def pron_entry(next_index):

    syn_val = SynValue("PronLex", True)
    relspec = Relspec("PronRel", {})
    root, next_index = add_role(next_index, relspec, "PRON")

    return syn_val, relspec, {"root": root}, [], next_index
예제 #5
0
def adv_prep_entry(rel, role, next_index):

    syn_val = prep_syn_val()
    relspec = Relspec(rel, {})

    hooks = {}
    next_index = add_hook(next_index, relspec, role, hooks, "modevent")

    return syn_val, relspec, hooks, [], next_index
예제 #6
0
def adj_prep_entry(rel, role, next_index):

    syn_val = prep_syn_val()
    relspec = Relspec(rel, {})
    hooks = {}
    next_index = add_event(next_index, relspec, hooks)
    next_index = add_head(next_index, relspec, role, hooks)

    return syn_val, relspec, hooks, [], next_index
예제 #7
0
def verb_entry(rel, vform, irr, next_index):

    syn_val = verb_syn_val(vform, irr)
    relspec = Relspec(rel, {})
    hooks = {}
    next_index = add_event(next_index, relspec, hooks)
    subcat = []

    return syn_val, relspec, hooks, subcat, next_index
예제 #8
0
def inchoative_verb_entry(verb_lex, vform, irr, next_index):

    rel, obj_role = verb_lex
    syn_val, relspec, hooks, subcat, next_index = verb_entry("Cause", vform, irr, next_index)
    next_index = add_subj(next_index, relspec, "CAUSER", hooks)
    sub_event, next_index = add_role(next_index, relspec, "CAUSED")
    sub_relspec = Relspec(rel, {"_EVENT": sub_event})
    next_index = add_obj(next_index, sub_relspec, obj_role, subcat, False)

    return syn_val, [relspec, sub_relspec], hooks, subcat, next_index
예제 #9
0
def fixed_det_entry(det_lex, next_index):

    sg, plu, df, width, rel, val = det_lex
    syn_val, relspec, hooks, subcat, next_index = det_entry(
        sg, plu, df, width, next_index)
    syn_val["quant"] = "fixed"
    val_roles = {"NODE": hooks["quant"], "VAL": 1}
    val_relspec = Relspec(rel, val_roles)

    return syn_val, [relspec, val_relspec], hooks, subcat, next_index