Révisions

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

Ajouter un commentaire

Connectez-vous ou inscrivez-vous pour publier un commentaire

Class Graph View