_collect_real_subject

  1. {
  2. %% SubjectGroups may appear in three different places
  3. %% 1- canonical position before verb, with many possible realizations
  4. %% 2- as a nominal clitic just after first verb (possibly auxiliary)
  5. %% example: Que n'a-t-il pas voulu manger ?
  6. %% a post verbal nominal clitic may co-occur with a pre-verbal subject
  7. %% example: Quel film Jean n'a-t-il pas voulu voir ?
  8. %% 3- as a N2 after main verb
  9. %% example: Que n'a pas voulu manger Paul ?
  10. node VSubj : [id:vmod,cat:VMod,type:std,bot: [position: -|postsubj, neg: -, cat: S|CS|adv|N2|pres|csu|PP|pro]];
  11. VSubj >> SubjectGroup; node(VSubj).top = node(VSubj).bot;
  12. %% S >> SubjectGroup;
  13. node SubjectGroup: [type:alternative,top:[real:-|N2|S|CS|PP|cln|prel|pri]];
  14. VSubj =>
  15. node(Infl).bot.inv = value(-|cl),
  16. $arg.extracted = value(-|cleft),
  17. node(SubjectGroup).top.real=value(~-|prel|pri),
  18. desc.dummy.impsubj = value(-),
  19. desc.dummy.presubj = value(+)
  20. ;
  21. ~ VSubj =>
  22. desc.dummy.presubj = value(-)
  23. ;
  24. v +
  25. %% canonical subject
  26. desc.dummy.presubj = value(+),
  27. (
  28. node(V).top.mode=value(~infinitive|imperative|gerundive|participle)
  29. |
  30. %% participiale
  31. %% example: le feu éteint, ils reconstruisent
  32. node(V).top.mode=value(gerundive|participle),
  33. node(S).bot.sat = value(ppart),
  34. $arg.real = value(N2)
  35. )
  36. |
  37. %% no canonical subject
  38. desc.dummy.presubj = value(-),
  39. (
  40. node(V).top.mode=value(infinitive) % postverbal causative subj is possible
  41. |
  42. node(V).top.mode=value(imperative|gerundive|participle),
  43. $arg.real = value(-)
  44. |
  45. %% see pseudo_passive as short sentences
  46. node(V).top.mode = value(participle),
  47. $arg.real = value(~-),
  48. desc.short_sentence = value(+)
  49. |
  50. node(V).top.mode = value(gerundive),
  51. % node(S).bot.sat = value(ppart),
  52. $arg.real = value(~-)
  53. |
  54. %% a subject is expected for tensed modes
  55. node(V).top.mode=value(~infinitive|imperative|gerundive|participle|adjective),
  56. (
  57. %% extracted subject
  58. $arg.extracted = value(~-|cleft),
  59. node(Infl).bot.inv = value(-)
  60. |
  61. %% inverted subject, because of wh
  62. $arg.extracted = value(-),
  63. node(Infl).bot.wh = value(+),
  64. node(V).top.inv = value(~-)
  65. |
  66. %% inverted subject through a controling verb
  67. %% example: c'est le livre que va lire Paul
  68. desc.dummy.arg1.xcomp_by_adj = value(+)
  69. | desc.dummy.arg2.xcomp_by_adj = value(+)
  70. )
  71. |
  72. %% impersonal constructions
  73. desc.ht.imp = value(+),
  74. ( %% usually with an impersonal subject
  75. node(V).top.mode=value(~adjective),
  76. $arg.real = value(-|S)
  77. |
  78. %% see pseudo_adj as short sentence (no impersonal subject)
  79. %% example: difficile de rester
  80. node(V).top.mode=value(adjective),
  81. $arg.real = value(~ -|N2|S)
  82. )
  83. )
  84. ;
  85. $arg.real = node(SubjectGroup).top.real;
  86. v +
  87. desc.dummy.çasubj = value(-),
  88. node(SubjectGroup).top.number = node(S).bot.number,
  89. node(SubjectGroup).top.person = node(S).bot.person,
  90. node(SubjectGroup).top.gender = node(S).bot.gender
  91. |
  92. %% see node çasubj
  93. %% shallow agreement is done with çasubject and not SubjectGroup
  94. desc.dummy.çasubj = value(+),
  95. desc.extraction = value(-),
  96. node(S).bot.number = value(sg),
  97. node(S).bot.person = value(3),
  98. node(S).bot.gender = value(masc)
  99. ;
  100. node(SubjectGroup).bot = node(SubjectGroup).top;
  101. - cl::true_subject;
  102. node cl::Subject : [cat:cln,type:coanchor,bot:[case:nom]];
  103. cl::SubjectGroup = SubjectGroup;
  104. %% no inverted clitic subject if ante subject is a clitic
  105. %% no s-like adj
  106. %% no extracted cleft
  107. cl::Subject +
  108. node(Infl).bot.inv = value(-),
  109. node(VSubj).bot.position = value(-),
  110. $arg.extracted = value(-)
  111. ;
  112. - noun::true_subject;
  113. node noun::Subject : [cat:N2,type:subst,top:[wh:-,case: nom]];
  114. noun::SubjectGroup = SubjectGroup;
  115. %% the following condition on saturation of nominal subject is deactivated
  116. %% because there are more cases than expected
  117. %% example: les vacances terminées, il rentre chez lui.
  118. %% example: Rarement vague de spéculation n'aura été autant anticipée
  119. %% example: il faut bien que jeunesse se passe
  120. %% example: il est convaincu que développement se conjugue avec planification
  121. % noun::Subject +
  122. % %% node(VSubj).bot.cat = value(csu|S|adv|PP),
  123. % ( node(noun::Subject).top.sat = value(+)
  124. % |
  125. % node(noun::Subject).top.sat = value(-),
  126. % node(S).bot.sat = value(ppart)
  127. % )
  128. % ;
  129. cl::Subject < noun::Subject;
  130. %% example: qu'il vienne demain me dérange
  131. node s::Subject : [cat:CS, type:subst, top:[mode: subjonctive, que: que]];
  132. s::SubjectGroup = SubjectGroup; noun::Subject < s::Subject;
  133. s::Subject +
  134. node(V).top.mode = value(~subjonctive)
  135. ;
  136. s::Subject +
  137. node(VSubj).bot.cat = value(adv)
  138. ;
  139. %% example: courir vite fatigue
  140. %% example: combien il t'aime me surprend toujours
  141. node v::Subject : [cat:S,type:subst,top:[sat: -, control: ~causative]];
  142. v::SubjectGroup = SubjectGroup; s::Subject < v::Subject;
  143. v::Subject +
  144. node(VSubj).bot.cat = value(adv),
  145. ( node(v::Subject).top.mode = value(infinitive),
  146. node(v::Subject).top.extraction = value(-)
  147. |
  148. node(v::Subject).top.extraction = value(wh),
  149. node(v::Subject).top.wh = value(+)
  150. )
  151. ;
  152. %% example: de courir vite me fatigue
  153. - PP::true_subject;
  154. node PP::Subject : [cat:PP,type:subst,top:[real: S, pcas: de]];
  155. PP::SubjectGroup = SubjectGroup; v::Subject < PP::Subject;
  156. PP::Subject +
  157. node(VSubj).bot.cat = value(adv)
  158. ;
  159. %% predet subject
  160. %% example: peu sont venus.
  161. %% example: suffisamment sont venus
  162. %% example: quantité sont venus
  163. %% -predet::true_subject;
  164. node predet::Subject : [cat: predet, id: subject, type: coanchor, top: [predet_kind: nc|adv]];
  165. predet::SubjectGroup = SubjectGroup; PP::Subject < predet::Subject;
  166. SubjectGroup >> predet::Subject;
  167. predet::Subject +
  168. node(SubjectGroup).top.real = value(N2),
  169. node(SubjectGroup).dummy.strace = value(-),
  170. node(SubjectGroup).top.number = value(pl),
  171. node(SubjectGroup).top.person = value(3)
  172. ;
  173. %% Trace of a subject in coordination
  174. %% Temporary solution ! (just check there is a coordination just before!)
  175. %% example: il mange et boit
  176. SubjectGroup >> STrace;
  177. node STrace : [cat:strace,type:subst,id:strace];
  178. predet::Subject < STrace;
  179. STrace +
  180. $arg.extracted = value(-),
  181. node(SubjectGroup).top.real = value(N2),
  182. node(SubjectGroup).dummy.strace = value(+)
  183. ;
  184. SubjectGroup +
  185. node(SubjectGroup).dummy.strace = value(-),
  186. node(S).bot.xarg.trace = value(-),
  187. node(S).bot.xarg.case = value(~nom)
  188. |
  189. node(SubjectGroup).dummy.strace = value(+),
  190. node(S).bot.xarg.case=value(-|nom),
  191. node(S).bot.xarg.trace=value(+)
  192. ;
  193. v +
  194. node(S).bot.xarg.case = value(-|nom),
  195. node(S).bot.xarg.number = node(S).bot.number,
  196. node(S).bot.xarg.gender = node(S).bot.gender
  197. |
  198. node(S).bot.xarg.case = value(~-|nom)
  199. ;
  200. }

Ajouter un commentaire

Connectez-vous ou inscrivez-vous pour publier un commentaire

Class Graph View