collect_real_arg

  1. {
  2. node ArgGroup : [type:alternative];
  3. $arg.kind = value(-|obj|acomp|scomp|whcomp|vcomp|prepobj|prepvcomp|prepscomp|prepacomp|vcompcaus|vcompprog);
  4. %% node VMod : [];
  5. VModArg =>
  6. $arg.real = value(N2|comp|pro|PP|CS|S|adv),
  7. $arg.kind = value(~-),
  8. $arg.extracted = value(-|cleft|topic);
  9. ~ VModArg =>
  10. $arg.extracted = value(rel|wh)
  11. |
  12. $arg.extracted = value(-),
  13. ( $arg.real = value(-),
  14. $arg.kind = value(-),
  15. $arg.pcas = value(-)
  16. |
  17. $arg.real = value(cld12|cld3|clr),
  18. $arg.function = value(objà),
  19. $arg.kind = value(prepobj),
  20. $arg.pcas = value(à|avec)
  21. |
  22. $arg.real = value(cla|clg|clr|antepro),
  23. (
  24. $arg.kind = value(obj|acomp),
  25. $arg.pcas = value(-)
  26. |
  27. $arg.real = value(clg),
  28. $arg.kind = value(prepobj),
  29. $arg.pcas = value(de),
  30. $arg.function = value(objde)
  31. )
  32. |
  33. $arg.real = value(cll),
  34. $arg.function = value(loc|dloc|obl|obl2)
  35. )
  36. ;
  37. %% ArgGroup may be realized by an N2 (object),
  38. %% an object can't co-occur with an inverted nominal subject
  39. %% but for causative cases
  40. node N2 : [cat:N2,id:object,type:subst,top:[case: acc]];
  41. N2 +
  42. $arg.real = value(N2),
  43. $arg.kind = value(obj),
  44. $arg.pcas = value(-),
  45. desc.dummy.objinfo.number = node(N2).top.number,
  46. desc.dummy.objinfo.gender = node(N2).top.gender,
  47. desc.dummy.objinfo.person = node(N2).top.person;
  48. N2 +
  49. node(Infl).bot.inv = value(~+)
  50. |
  51. node(Infl).bot.inv = value(+),
  52. node(S).top.control = value(causative)
  53. ;
  54. N2 +
  55. $arg.extracted = value(topic),
  56. node(N2).top.wh = value(-)
  57. |
  58. $arg.extracted = value(~topic)
  59. ;
  60. N2 +
  61. node(N2).top.sat = value(+),
  62. desc.dummy.ilya = value(-)
  63. |
  64. %% "il y a" often introduce non-saturated objects
  65. %% (but not sure they should be considered as object)
  66. %% example: il y a apéro ce soir
  67. %% example: il y a fête au chateau
  68. node(N2).top.sat = value(-),
  69. desc.dummy.ilya = value(+)
  70. ;
  71. ArgGroup >> N2;
  72. /* handled bt previous case ?
  73.   %% ArgGroup may be realized by an pronoun
  74.   %% example: je ne vois personne.
  75.   node pro : [cat:pro,id:object,type:coanchor];
  76.   pro +
  77.   $arg.real = value(pro),
  78.   $arg.kind = value(obj);
  79.   ArgGroup >> pro;
  80.   N2 < pro;
  81.   */
  82. %% Realization as an attribute (acomp or ncomp without determiner)
  83. node Comp: [cat:comp,id:comp,type:subst];
  84. Comp +
  85. $arg.function = value(att),
  86. $arg.real = value(comp),
  87. $arg.kind = value(acomp),
  88. $arg.pcas = value(-)
  89. ;
  90. %% Hard aggreement between comp and subject only for adjectives
  91. %% Much softer aggreement when comp is N2
  92. %% example: ils sont la risée
  93. %% Maybe some kind of aggreement when N2 sat=-
  94. %% Added aggrement with object when present (and ctrsuj=obj)
  95. Comp +
  96. desc.ht.ctrsubj = value(suj)
  97. |
  98. desc.ht.ctrsubj = value(obj),
  99. desc.ht.arg1.function = value(obj)
  100. ;
  101. Comp +
  102. ( node(Comp).top.real = value(adj)
  103. |
  104. %% PP with agr info (PP built on adj)
  105. node(Comp).top.real = value(PP),
  106. node(Comp).top.gender = value(~-)
  107. ),
  108. node(Comp).dummy.agreement.flag = value(+),
  109. (
  110. desc.ht.ctrsubj = value(suj),
  111. desc.ht.arg0.kind = value(~obj|scomp|vcomp|prepvcomp),
  112. desc.ht.arg1.kind = value(~obj|scomp|vcomp|prepvcomp),
  113. desc.ht.arg2.kind = value(~obj|scomp|vcomp|prepvcomp),
  114. node(Comp).dummy.agreement.number = node(V).bot.number,
  115. node(Comp).dummy.agreement.person = node(V).bot.person,
  116. node(Comp).top.gender = node(V).bot.gender
  117. |
  118. desc.ht.ctrsubj = value(obj),
  119. node(Comp).dummy.agreement.number = desc.dummy.objinfo.number,
  120. node(Comp).dummy.agreement.person = desc.dummy.objinfo.person,
  121. node(Comp).top.gender = desc.dummy.objinfo.gender
  122. )
  123. | % no aggreemnt
  124. node(Comp).dummy.agreement.flag = value(-),
  125. ( node(Comp).top.real = value(N2)
  126. |
  127. node(Comp).top.real = value(PP),
  128. node(Comp).top.gender = value(-)
  129. ),
  130. ( $arg.extracted = value(~topic),
  131. node(Infl).bot.inv = value(~+)
  132. |
  133. node(Infl).bot.inv = value(+),
  134. node(S).top.control = value(causative)
  135. )
  136. ;
  137. Comp +
  138. node(Comp).dummy.agreement.flag = value(+),
  139. node(Comp).dummy.agreement.person = node(Comp).top.person,
  140. (
  141. node(Comp).dummy.agreement.number = node(Comp).top.number
  142. |
  143. node(Comp).dummy.agreement.number = value(pl),
  144. node(Comp).dummy.agreement.person = value(2),
  145. node(Comp).top.number = value(sg)
  146. )
  147. |
  148. node(Comp).dummy.agreement.flag = value(-)
  149. ;
  150. ArgGroup >> Comp;
  151. N2 < Comp;
  152. %% pro < Comp;
  153. %% Realization as csu (scomp|whcomp)
  154. ArgGroup >> SComp;
  155. Comp < SComp;
  156. %% Realization as PP (prep*)
  157. %% prepscomp and prepvcomp should be handled by adj in some cases (to be done)
  158. node PP: [ cat:PP, type: subst, id: preparg|comp,
  159. top: [real: N2|adj|N]
  160. ];
  161. node(PP).top.pcas = $arg.pcas;
  162. ArgGroup >> PP;
  163. SComp < PP;
  164. node(PP).id = node(PP).dummy.nodeid;
  165. PP +
  166. $arg.real = value(PP),
  167. $arg.kind=value(prepobj|prepacomp)
  168. ;
  169. PP +
  170. $arg.kind=value(prepobj),
  171. node(PP).top.real=value(N2|N),
  172. node(PP).dummy.nodeid = value(preparg)
  173. |
  174. $arg.kind = value(prepacomp),
  175. node(PP).top.real=value(N2|adj|N),
  176. $arg.pcas = value(comme|de|pour),
  177. node(PP).dummy.nodeid = value(comp)
  178. ;
  179. PP +
  180. $arg.extracted = value(topic),
  181. node(PP).top.wh = value(-)
  182. |
  183. $arg.extracted = value(~topic)
  184. ;
  185. node advloc: [cat: adv, type: coanchor, id:preparg, top: [adv_kind: loc]];
  186. ArgGroup >> advloc;
  187. PP < advloc;
  188. advloc +
  189. $arg.kind=value(prepobj),
  190. $arg.real=value(adv),
  191. $arg.function = value(loc),
  192. $arg.pcas = value(-);
  193. }

Ajouter un commentaire

Connectez-vous ou inscrivez-vous pour publier un commentaire

Class Graph View