# přívlastkové vedlejší věty from rules import Rules from .cz_verbals import verbals_with_constituents relatives = Rules( '(RELATIVE g n c) → (lemma=který|jenž|co|jaký g n c)', '(RELATIVE n c) → (lemma=co n c)', '(RELATIVE g n c) → (k=7 c) (lemma=který|jenž|jaký g n c)', ) # TODO: jenže mám i kostru věty, kde se shoduje přísudek s hlavou – takže # „kterého se bála“ by neprošlo, chce to i bez shody – odstranit z hlavy (g n), # proto bude lepší replace_left! # TODO: a naopak „který se bál“ (vidíš ten pád?) bude chtít shodu, takže # vlastně to chce (RELATIVE), které se shoduje s hlavní větou, a druhé, které # se shoduje v rámci své věty – jde to, doufám? ;-) attributive_clauses = verbals_with_constituents.insert_into_all( '(RELATIVE g n) (CONSTITUENTS)', before=True, update_left='(ATTR_CLAUSE g n)').remove_attributes( '(g n)', except_position=0, repeat_self=True).insert_into_all( '(CLITICS)', position=1) # „kterého bodla včela“ – bez shody s přísudkem # „který se smál“ – se shodou, ale zatím to asi není potřeba # (interpretace se z toho dostane i tak) # souřadné spojení přívlastkových vět je tak trochu nerozlišitelné od hlavní # věty, když se neopakuje relativum, teda pokud nám někdo nepomůže čárkama :-/ # … a který si na to pak ani nevzpomínal, # … a dokonce si na to ani nevzpomínal, # TODO: přidat korelativa (takže vytvořit asi „NP“) attributive_clauses = attributive_clauses.insert_into_all( '(INTER)', inside=True).insert_into_all( '(OPT_COMMA)', before=True, after=True) rules = relatives + attributive_clauses