{
%% used for scomp, vcomp and whcomp arguments
%% also used for acomp args
%% Realization of arg as scomp done through adjunction to allow
%% embeded extraction such as
%% qui Jean pense que Paul aime
node SArg : [cat: S, id:xcomp|comp];
node(SArg).id = node(SArg).dummy.nodeid;
%% no extraction on current arg
SComp +
$arg.extracted = value(-|cleft),
$arg.kind = value(scomp|whcomp|vcomp|vcompcaus|prepscomp|prepvcomp|acomp|vcompprog),
$arg.real = value(CS|S|PP)
;
SArg +
$arg.real = value(CS),
$arg.kind = value(scomp),
node(SArg).top.mode = value(~infinitive|participle)
|
$arg.real = value(S),
node(v).cat = value(v),
(
$arg.kind = value(whcomp),
( node(SArg).top.extraction = value(wh),
node(SArg).top.wh = value(+)
|
node(SArg).top.wh = value(-),
node(si).dummy.is_present = value(+)
)
|
node(SArg).top.mode = value(infinitive),
(
$arg.kind = value(vcomp),
% node(SArg).top.control = value(-),
%% vcomp args are usually handled by modal verbs by adjoining,
%% except
(
%% when there is an impersonal subject
%% example: il faut manger
desc.ht.imp = value(+),
node(SArg).top.control = value(-)
|
%% when there is (potentially) another argument
%% or when the argument has not the object function
%% example: il entend Paul chanter
%% example: il lui assure partir prochainement
%% example: il va manger
( desc.ht.arg2.function = value(~-)
| desc.ht.arg2.function = value(-),
$arg.function = value(~obj)
),
%% handling control
%% will block vcomp if the control arg is missing
%% and will leave a trace in ht of the controlling argument
( desc.ht.ctrsubj = desc.ht.arg0.function
| desc.ht.ctrsubj = desc.ht.arg1.function
| desc.ht.ctrsubj = desc.ht.arg2.function
),
( node(SArg).top.control = value(-)
% desc.dummy.presubj = value(+)
|
$xcomp_by_adj = value(+),
node(SArg).top.control = value(control_with_postsubj),
desc.dummy.presubj = value(-)
)
)
|
$arg.kind = value(vcompcaus),
node(SArg).top.control = value(causative)
)
|
$arg.kind = value(acomp),
node(v).top.être = value(-),
node(SArg).top.control = value(-),
node(SArg).top.mode = value(participle),
node(SArg).top.sat = value(-|ppart),
(
( $arg.kind = desc.@kind1
| desc.@diathesis = value(passive)
),
(
node(SArg).top.number = node(Infl).top.number,
node(SArg).top.gender = node(Infl).top.gender
|
node(Infl).top.number = value(pl),
node(Infl).top.person = value(2),
node(SArg).top.number = value(sg)
|
node(Infl).top.number = value(sg),
node(Infl).top.person = value(3),
node(Infl).top.gender = value(on)
)
|
desc.@diathesis = value(active),
desc.@kind1 = value(obj),
( node(SArg).top.number = desc.dummy.objinfo.number
|
desc.dummy.objinfo.person = value(2),
desc.dummy.objinfo.number = value(pl),
node(SArg).top.number = value(sg)
),
node(SArg).top.gender = desc.dummy.objinfo.gender
)
)
|
$arg.real = value(PP),
(
$arg.kind = value(prepscomp),
node(SArg).top.mode = value(~infinitive|participle)
|
$arg.kind = value(prepvcomp),
node(SArg).top.mode = value(infinitive),
node(SArg).top.control = value(~causative),
%% handling control
%% will block vcomp if the control arg is missing
%% and will leave a trace in ht of the controlling argument
( desc.ht.ctrsubj = desc.ht.arg0.function
| desc.ht.ctrsubj = desc.ht.arg1.function
| desc.ht.ctrsubj = desc.ht.arg2.function
),
( node(SArg).top.control = value(-)
% desc.dummy.presubj = value(+)
|
$xcomp_by_adj = value(+),
node(SArg).top.control = value(control_with_postsubj),
desc.dummy.presubj = value(-)
)
)
;
%% node(v).lex = value(~être|suis|es|est|sommes|êtes|sont|serais|étais|était|été|sera|fut|fûmes|fûtes|soit)
%% node(SArg).top.mode = value(participle)
node SComp : [cat:ArgComp, bot: [arg: $arg]];
node prep: [cat: prep, id:prep, type: coanchor];
SComp >> prep;
prep =>
$arg.kind = value(prepscomp|prepvcomp),
$arg.pcas = value(à|de|pour|sur|par),
$arg.pcas = node(prep).top.pcas;
~ prep =>
$arg.pcas = value(-),
$arg.kind = value(~prepscomp|prepvcomp);
%% comme is added for whcomp, but it is actually used for indirect exclamative
%% rather than indirect wh (but the two notion are close)
%% example: regarde comme il est beau !
node si : [type: coanchor, id: siwh, cat: csu, lex:si|comme];
SComp >> si;
prep < si;
si =>
$arg.kind = value(whcomp),
node(si).dummy.is_present = value(+)
;
~ si =>
node(si).dummy.is_present = value(-)
;
node ce : [type:coanchor,lex:ce,cat:ce, id:ce];
SComp >> ce;
si < ce;
ce =>
$arg.kind = value(prepscomp);
~ ce =>
$arg.kind = value(~prepscomp);
node csu : [cat: que, adj: no, id: csu, type: coanchor ];
SComp >> csu;
csu =>
node(csu).dummy.is_present=value(csu);
~ csu =>
node(csu).dummy.is_present=value(-|colon);
SArg +
node(csu).dummy.is_present=value(-),
$arg.kind = value(~scomp|prepscomp)
|
node(csu).dummy.is_present=value(csu),
$arg.kind = value(scomp|prepscomp)
|
node(csu).dummy.is_present=value(colon),
$arg.kind = value(scomp),
$arg.extracted = value(-)
;
ce < csu;
%% la ponctuation ":" peut être utilisé comme introducteur de parole rapportée directe
%% example: je n'avais pas le temps de me dire : " Je m'endors."
SComp >> colon;
node colon : [type: lex, lex: ":"];
csu < colon;
colon =>
node(csu).dummy.is_present=value(colon);
~ colon =>
node(csu).dummy.is_present=value(-|csu);
SComp >> SArg;
colon < SArg;
node(SArg).top.mode = value(~gerundive|imperative);
SArg +
$arg.kind = value(acomp),
node(SArg).dummy.nodeid = value(comp)
|
$arg.kind = value(~acomp),
node(SArg).dummy.nodeid = value(xcomp)
;
node(SArg).secondary = value(csu);
node(SArg).secondary_label = value(SubS);
node(csu).secondary = value(ce);
node(ce).secondary = value(prep);
node(ce).secondary_label = value(N2);
}
Ajouter un commentaire