Commit 7b5c0b9b authored by Bruno Guillaume's avatar Bruno Guillaume

update proj to new syntax

parent 27c8830b
......@@ -19,7 +19,7 @@ features {
n: s,p;
p: 1,2,3, 12, 13; % 13 added for Talismane output
s: c, card, def, dem, exel, ind, int, neg, obj, ord, p, part, pers, poss, qual, refl, rel, s, suj, w;
m: ind, inf, part, subj, imp;
m: ind, inf, part, subj, imp, pastp;
t: pst, impft, past, fut, cond,
% output of Talismane, should be converted !!!
......
domain "sequoia_decl.dom"
include "sequoia.dom"
% ====================================================================================================
%-- le module [rm_deep] efface les relations D:... --%
module deterministic rm_deep {
% le package [rm_deep] efface les relations D:... %
package rm_deep {
rule r { pattern { e: X -[re"D:.*"]-> Y} commands { del_edge e } }
}
% ====================================================================================================
%-- le module [rm_surf] efface les relations S:... --%
module deterministic rm_surf {
% le package [rm_surf] efface les relations S:... %
package rm_surf {
rule r { pattern { e: X -[re"S:.*"]-> Y} commands { del_edge e } }
}
% ====================================================================================================
%-- le module [rm_meddle] efface les relations I:... --%
module deterministic rm_meddle {
% le package [rm_meddle] efface les relations I:... %
package rm_meddle {
rule r { pattern { e: X -[re"I:.*"]-> Y} commands { del_edge e } }
}
% ====================================================================================================
%-- le module [surf_final] remplace efface les relations S:x:y par x --%
module deterministic surf_final {
% le package [surf_final] remplace efface les relations S:x:y par x %
package surf_final {
rule p_obj_o { pattern { e:X -[S:p_obj.o]-> Y } commands { del_edge e; add_edge X-[p_obj.o]-> Y } }
rule mod { pattern { e:X -[S:mod]-> Y } commands { del_edge e; add_edge X-[mod]-> Y } }
rule aff { pattern { e:X -[S:aff]-> Y } commands { del_edge e; add_edge X-[aff]-> Y } }
......@@ -52,11 +52,11 @@ module deterministic surf_final {
rule dis_suj { pattern { e:X -[S:dis:suj]-> Y } commands { del_edge e; add_edge X-[dis]-> Y } }
rule dis_obj { pattern { e:X -[S:dis:obj]-> Y } commands { del_edge e; add_edge X-[dis]-> Y } }
rule root { pattern { e:X -[S:root]-> Y } commands { del_edge e; add_edge X-[root]-> Y } }
} % end module surf_final
} % end package surf_final
% ====================================================================================================
%-- le module [final] remplace efface les relations x:y par x --%
module deterministic final {
% le package [final] remplace efface les relations x:y par x %
package final {
rule suj_suj { pattern { e:X -[suj:suj]-> Y } commands { del_edge e; add_edge X-[suj]-> Y } }
rule ats_ats { pattern { e:X -[ats:ats]-> Y } commands { del_edge e; add_edge X-[ats]-> Y } }
rule ats_ato { pattern { e:X -[ats:ato]-> Y } commands { del_edge e; add_edge X-[ats]-> Y } }
......@@ -74,11 +74,11 @@ module deterministic final {
rule dis_suj { pattern { e:X -[dis:suj]-> Y } commands { del_edge e; add_edge X-[dis]-> Y } }
rule dis_obj { pattern { e:X -[dis:obj]-> Y } commands { del_edge e; add_edge X-[dis]-> Y } }
} % end module final
} % end package final
% ====================================================================================================
%-- le module [deep_canonical] remplace efface les relations D:x:y par y --%
module deterministic deep_canonical {
% le package [deep_canonical] remplace efface les relations D:x:y par y %
package deep_canonical {
rule p_obj_o { pattern { e:X -[D:p_obj.o]-> Y } commands { del_edge e; add_edge X-[p_obj.o]-> Y } }
rule mod { pattern { e:X -[D:mod]-> Y } commands { del_edge e; add_edge X-[mod]-> Y } }
rule ats_ats { pattern { e:X -[D:ats:ats]-> Y } commands { del_edge e; add_edge X-[ats]-> Y } }
......@@ -113,11 +113,11 @@ module deterministic deep_canonical {
rule dis_obj { pattern { e:X -[D:dis:obj]-> Y } commands { del_edge e; add_edge X-[obj]-> Y } }
rule root { pattern { e:X -[D:root]-> Y } commands { del_edge e; add_edge X-[root]-> Y } }
} % end module deep_canonical
} % end package deep_canonical
% ====================================================================================================
%-- le module [canonical] remplace les relations x:y par x --%
module deterministic canonical {
% le package [canonical] remplace les relations x:y par x %
package canonical {
rule suj_suj { pattern { e:X -[suj:suj]-> Y } commands { del_edge e; add_edge X-[suj]-> Y } }
rule ats_ats { pattern { e:X -[ats:ats]-> Y } commands { del_edge e; add_edge X-[ats]-> Y } }
rule ats_ato { pattern { e:X -[ats:ato]-> Y } commands { del_edge e; add_edge X-[ato]-> Y } }
......@@ -134,11 +134,11 @@ module deterministic canonical {
rule dis_dis { pattern { e:X -[dis:dis]-> Y } commands { del_edge e; add_edge X-[dis]-> Y } }
rule dis_suj { pattern { e:X -[dis:suj]-> Y } commands { del_edge e; add_edge X-[suj]-> Y } }
rule dis_obj { pattern { e:X -[dis:obj]-> Y } commands { del_edge e; add_edge X-[obj]-> Y } }
} % end module canonical
} % end package canonical
% ====================================================================================================
%-- le module [remove_deep_features] supprime les traits deep-only void=y --%
module deterministic remove_deep_features {
% le package [remove_deep_features] supprime les traits deep-only void=y %
package remove_deep_features {
rule void_y { pattern { X[void=y] } commands { del_feat X.void } }
rule dl { pattern { X[dl=*] } commands { del_feat X.dl } }
rule dm { pattern { X[dm=*] } commands { del_feat X.dm } }
......@@ -148,37 +148,62 @@ module deterministic remove_deep_features {
rule se { pattern { X[se=*] } commands { del_feat X.se } }
rule cltype { pattern { X[cltype=*] } commands { del_feat X.cltype } }
rule lexicalisation { pattern { X[lexicalisation=*] } commands { del_feat X.lexicalisation } }
} % end module remove_deep_features
} % end package remove_deep_features
% ====================================================================================================
%-- le module [sentid] reporte le trait sentid sur le premier mot non vide pour éviter de perdre l'identifiant --%
module deterministic sentid {
% le package [sentid] reporte le trait sentid sur le premier mot non vide pour éviter de perdre l'identifiant %
package sentid {
rule report {
pattern { X[sentid=*, void=y]; Y[!void]; X.position < Y.position}
without { Z [!void]; X.position < Z.position; Z.position < Y.position }
commands { Y.sentid = X.sentid; del_feat X.sentid }
}
} % end module sentid
} % end package sentid
% ====================================================================================================
%-- le module [clean] supprime les nœuds avec void=y --%
module deterministic clean {
% le package [clean] supprime les nœuds avec void=y %
package clean {
rule clean { pattern { X[void=y] } commands { del_node X } }
} % end module clean
} % end package clean
% ====================================================================================================
%-- le module [clean] rattache les nœuds avec void=y au pseudo-noeud 0 --%
module deterministic void {
% le package [clean] rattache les nœuds avec void=y au pseudo-noeud 0 %
package void {
rule clean {
pattern { X[void=y]; ZERO[!phon]}
without { ZERO -[void]-> X }
commands { add_edge ZERO -[void]-> X }
}
} % end module clean
} % end package clean
% ====================================================================================================
sequences {
surf { rm_deep; rm_meddle; surf_final; final; remove_deep_features }
deep { rm_surf; rm_meddle; deep_canonical; canonical; void }
deep_clean { rm_surf; rm_meddle; deep_canonical; canonical; sentid; clean }
strat surf {
Seq (
Onf (rm_deep),
Onf (rm_meedle),
Onf (surf_final),
Onf (final),
Onf (remove_deep_features),
)
}
strat deep {
Seq (
Onf(rm_surf),
Onf(rm_meddle),
Onf(deep_canonical),
Onf(canonical),
Onf(void),
)
}
strat deep_clean {
Seq (
Onf(rm_surf),
Onf(rm_meddle),
Onf(deep_canonical),
Onf(canonical),
Onf(sentid),
Onf(clean),
)
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment