This is a grammar modeling French negation. It was written by Denys Duchier.
usedim lp usedim id usedim lex usedim neg defdim id { deftype "id.label" {det suj obj iobj obj_s obj_s_de pp adv_neg ne root} deflabeltype "id.label" deftype "id.entry" { in : valency("id.label") out : valency("id.label") } defentrytype "id.entry" useprinciple "principle.graph" { dims {D:id} } useprinciple "principle.tree" { dims {D:id} } useprinciple "principle.valency" { dims {D:id} args {In : _.D.entry.in Out: _.D.entry.out} } output "output.dags1" useoutput "output.dags1" } defdim lex { defentrytype { word : string } useprinciple "principle.entries" {} } defdim lp { deftype "lp.label" {df d n suj_f suj_cl_f neg_cl_f l_neg_adv_f acc_cl_f dat_cl_f v r_neg_adv_f dep_v_f cplt_f root_f r} deflabeltype "lp.label" deftype "lp.entry" { in : valency("lp.label") out : valency("lp.label") on : iset("lp.label") blocks : set("id.label") blocks_lp : set("lp.label") } defentrytype "lp.entry" useprinciple "principle.graph" { dims {D: lp} } useprinciple "principle.tree" { dims {D: lp} } useprinciple "principle.valency" { dims {D:lp} args {In : _.D.entry.in Out: _.D.entry.out}} useprinciple "principle.order" { dims {D:lp} args {On: _.D.entry.on Order: [df d n suj_f suj_cl_f neg_cl_f l_neg_adv_f acc_cl_f dat_cl_f v r_neg_adv_f dep_v_f cplt_f root_f r] Yields: true}} useprinciple "principle.projectivity" { dims {D:lp} } useprinciple "principle.climbing" { dims {D1:lp D2:id} args {MotherCards:true}} useprinciple "principle.barriers" { dims {D1: lp D2: id D3: lp} args {Blocks: _.D1.entry.blocks}} useprinciple "principle.barriers.labels" { dims {D1: lp D2: id D3: lp D4: lp} args {Blocks: _.D1.entry.blocks_lp}} } defdim neg { deftype "neg.label" { ne_n pas_n neg_n other_n } deflabeltype "neg.label" deftype "neg.entry" { in : valency("neg.label") out : valency("neg.label") blocks : set("neg.label") } defentrytype "neg.entry" useprinciple "principle.graph" { dims {D:neg} } useprinciple "principle.tree" { dims {D:neg} } useprinciple "principle.valency" { dims {D:neg} args {In : _.D.entry.in Out: _.D.entry.out}} useprinciple "principle.climbing" { dims {D1:neg D2:id} args {MotherCards:true}} useprinciple "principle.barriers.labels" { dims {D1:neg D2:id D3:neg D4:neg} args {Blocks: _.D1.entry.blocks}} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defclass "root_id" { dim id { in : {} out : {root!}}} defclass "root_lp" { dim lp { in : {} out : {root_f!} on : {r}}} defclass "root_neg" { dim neg { in : {} out : {other_n!}}} defclass "root" Word { "root_id" "root_lp" "root_neg" dim lex { word : Word }} defentry { "root" { Word : "." } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defclass "det_id" { dim id { in : {det!}}} defclass "det_lp" { dim lp { in : {df!} on : {d}}} defclass "NEG" { dim neg { in : {neg_n!} }} defclass "POS" { dim neg { in : {other_n!} }} defclass "det" Word { "det_id" "det_lp" dim lex {word: Word}} defentry { "det" { Word : "le" } "POS"} defentry { "det" { Word : "un" } "POS"} defentry { "det" { Word : "aucun" } "NEG"} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defclass "nom_commun_id" { dim id { in : { suj? obj? iobj? } out : { det! }}} defclass "nom_commun_lp" { dim lp { in : { suj_f? cplt_f? } out : { df! } on : { n } } } defclass "nom_commun_neg" { "POS" dim neg { out : {other_n*} blocks : {other_n}}} defclass "nom_commun" Word { "nom_commun_id" "nom_commun_lp" "nom_commun_neg" dim lex { word : Word }} defentry { "nom_commun" { Word : "ingénieur" }} defentry { "nom_commun" { Word : "moteur" }} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defclass "pronom_indefini_id" { dim id { in : { suj? obj? }}} defclass "pronom_indefini_lp" { dim lp { in : { suj_f? cplt_f? } on : { n }}} defclass "pronom_indefini" Word { "pronom_indefini_id" "pronom_indefini_lp" dim lex { word : Word }} defentry { "pronom_indefini" { Word : "personne" } "NEG"} defentry { "pronom_indefini" { Word : "quelqu_un" } "POS"} defentry { "pronom_indefini" { Word : "quelque_chose" } "POS"} defentry { "pronom_indefini" { Word : "rien" } "NEG" dim lp { in : { l_neg_adv_f? r_neg_adv_f? }}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defclass "pronom_clitique_id" { "POS" } defclass "pronom_clitique_suj_id" { "pronom_clitique_id" dim id { in : { suj! }}} defclass "pronom_clitique_obj_id" { "pronom_clitique_id" dim id { in : { obj! }}} defclass "pronom_clitique_iobj_id" { "pronom_clitique_id" dim id { in : { iobj! }}} defclass "pronom_clitique_suj_lp" { dim lp { in : { suj_cl_f? } on : {n}}} defclass "pronom_clitique_obj_lp" { dim lp { in : { acc_cl_f? } on : {n}}} defclass "pronom_clitique_iobj_lp" { dim lp { in : { dat_cl_f? } on : {n}}} defclass "pronom_clitique_suj" Word { "pronom_clitique_suj_id" "pronom_clitique_suj_lp" dim lex { word : Word }} defclass "pronom_clitique_obj" Word { "pronom_clitique_obj_id" "pronom_clitique_obj_lp" dim lex { word : Word }} defclass "pronom_clitique_iobj" Word { "pronom_clitique_iobj_id" "pronom_clitique_iobj_lp" dim lex { word : Word }} defentry { "pronom_clitique_suj" { Word : "il" }} defentry { "pronom_clitique_obj" { Word : "le" }} defentry { "pronom_clitique_iobj" { Word : "lui" }} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defclass "ne_clitique_id" { dim id { in : { ne! }}} defclass "ne_clitique_lp" { dim lp { in : { neg_cl_f! } on : {n}}} defclass "ne_clitique_neg" { dim neg { in : {ne_n!} }} defclass "ne_clitique" Word { "ne_clitique_id" "ne_clitique_lp" "ne_clitique_neg" dim lex { word : Word }} defentry { "ne_clitique" { Word : "ne" }} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defclass "adverbe_negatif_id" { dim id { in : { adv_neg! }}} defclass "adverbe_negatif_lp" { dim lp { in : { l_neg_adv_f? r_neg_adv_f? } on : { n } } } defclass "adverbe_negatif" Word { "adverbe_negatif_id" "adverbe_negatif_lp" dim lex { word : Word }} defentry { "adverbe_negatif" { Word : "pas" } dim neg { in : {pas_n!}}} defentry { "adverbe_negatif" { Word : "jamais" } "NEG" } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defclass "verbe_POS_neg" { "POS" dim neg { out: {other_n*}}} defclass "verbe_NE_PAS_neg" { "POS" dim neg { out: {ne_n! pas_n! other_n*}}} defclass "verbe_NE_PAS_OPT_neg" { "POS" dim neg { out: {ne_n! pas_n? other_n*}}} defclass "verbe_NE_neg" { "POS" dim neg { out: {ne_n! neg_n+ other_n*}}} defclass "verbe_neg" { dim neg { blocks: {ne_n pas_n other_n}} ( "verbe_POS_neg" |"verbe_NE_PAS_neg" |"verbe_NE_neg" ) } defclass "verbe_opt_neg" { dim neg { blocks: {ne_n pas_n other_n}} ( "verbe_POS_neg" |"verbe_NE_PAS_OPT_neg" |"verbe_NE_neg" ) } defclass "verbe_id" { dim id { out : { adv_neg? ne? }}} defclass "verbe_infinitif_id" { dim id { in : { obj_s? } out : { suj? }}} % ATTENTION!!!! defclass "verbe_participe_passe_id" { dim id { in : { pp? }}} defclass "verbe_fini_id" { dim id { in : { root? } out : { suj! }}} defclass "verbe_transitif_nominal_id" { "verbe_id" dim id { out : { obj! }}} defclass "verbe_transitif_phrastique_id" { "verbe_id" dim id { out : { obj_s! }}} defclass "verbe_transitif_de_phrastique_id" { "verbe_id" dim id { out : { obj_s_de! }}} defclass "verbe_ditransitif_nominal_id" { "verbe_transitif_nominal_id" dim id { out : { iobj! }}} defclass "verbe_intransitif_id" { "verbe_id" } defclass "verbe_auxiliaire_id" { "verbe_id" dim id { out : { pp! }}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defclass "verbe_lp" { dim lp { blocks : { ne adv_neg obj_s obj_s_de } blocks_lp : { cplt_f }} } defclass "verbe_fini_lp" { "verbe_lp" dim lp { in : { root_f! } out : { suj_f? suj_cl_f? neg_cl_f? acc_cl_f? dat_cl_f? r_neg_adv_f? cplt_f* } on : {v} } } defclass "verbe_infinitif_lp" { "verbe_lp" dim lp { in : { cplt_f? } out : { neg_cl_f? l_neg_adv_f? acc_cl_f? dat_cl_f? cplt_f* } on : {v} } } defclass "verbe_auxiliaire_lp" { "verbe_lp" dim lp { out : { dep_v_f? } on : {v} } } defclass "verbe_auxiliaire_infinitif_lp" { "verbe_lp" dim lp { out : { r_neg_adv_f? } on : {v} } } defclass "verbe_participe_passe_lp" { "verbe_lp" dim lp { in : { dep_v_f! } out : { dep_v_f? cplt_f* } on : {v} } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defclass "verbe_fini" { "verbe_fini_id" "verbe_fini_lp" } defentry { dim lex { word : "ose" } "verbe_fini" "verbe_transitif_phrastique_id" "verbe_opt_neg" } defentry { dim lex { word : "cesse" } "verbe_fini" "verbe_transitif_de_phrastique_id" "verbe_opt_neg" } defentry { dim lex { word : "peut" } "verbe_fini" "verbe_transitif_phrastique_id" "verbe_opt_neg" } defentry { dim lex { word : "voit" } "verbe_fini" ( "verbe_transitif_nominal_id" |"verbe_transitif_phrastique_id" ) "verbe_neg" } defentry { dim lex { word : "avoue" } "verbe_fini" "verbe_transitif_phrastique_id" "verbe_neg" } defclass "verbe_participe_passe" { "verbe_participe_passe_id" "verbe_participe_passe_lp" } defentry { dim lex { word : "fait" } "verbe_participe_passe" ( "verbe_transitif_phrastique_id" |"verbe_transitif_nominal_id" ) "verbe_neg" } defentry { dim lex { word : "fait" } "verbe_fini" "verbe_transitif_phrastique_id" "verbe_neg" } defclass "verbe_infinitif" { "verbe_infinitif_id" "verbe_infinitif_lp" } defentry { dim lex { word : "entrer" } "verbe_infinitif" "verbe_intransitif_id" "verbe_neg" } defentry { dim lex { word : "marcher" } "verbe_infinitif" "verbe_intransitif_id" "verbe_neg" } defclass "verbe_auxiliaire" { "verbe_auxiliaire_id" "verbe_auxiliaire_lp" } defentry { dim lex { word : "été" } "verbe_auxiliaire" "verbe_participe_passe" "verbe_neg" } defentry { dim lex { word : "a" } "verbe_auxiliaire" "verbe_fini" "verbe_neg" } defentry { dim lex { word : "avoir" } "verbe_auxiliaire" "verbe_infinitif" "verbe_auxiliaire_infinitif_lp" "verbe_neg" } defentry { dim lex { word : "veut" } "verbe_fini" "verbe_transitif_phrastique_id" "verbe_neg" } defentry { dim lex { word : "voir" } "verbe_infinitif" "verbe_transitif_nominal_id" "verbe_neg" } defentry { dim lex { word : "démarrer" } "verbe_infinitif" "verbe_transitif_nominal_id" "verbe_neg" } defentry { dim lex { word : "vu" } "verbe_participe_passe" ( "verbe_intransitif_id" |"verbe_transitif_nominal_id" ) "verbe_neg" } defentry { dim lex { word : "donne" } "verbe_fini" "verbe_ditransitif_nominal_id" "verbe_neg" } defentry { dim lex { word : "venir" } "verbe_infinitif" "verbe_intransitif_id" "verbe_neg" } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% defentry { dim lex { word : "de" } dim id { in : { obj_s_de! } out : { obj_s! }} dim lp { in : { cplt_f! } out : { cplt_f! } on : { v } blocks : { obj_s }} dim neg { in : {other_n!}}}