;;; -*- Mode: TDL; Coding: utf-8 -*- ;;; Authors: ;;; 2007-2008 Peter Adolphs, NĂºria Bertomeu ;;; ;;; Copyright: DFKI GmbH ;; ;; chart mapping rules ;; chart-mapping-rule := *top* & [ +CONTEXT *list*, +INPUT *list*, +OUTPUT *list*, +POSCONS string ]. ;; ;; input mapping rules ;; inplist := *list*. inpcons := inplist & *cons* & [ FIRST +tok , REST inplist ]. inpnull := inplist & *null*. inpmap-rule := chart-mapping-rule & [ +CONTEXT inplist, +INPUT inplist, +OUTPUT inplist ]. inpmap-0xx-rule := inpmap-rule & [ +CONTEXT < > ]. inpmap-x0x-rule := inpmap-rule & [ +INPUT < > ]. inpmap-xx0-rule := inpmap-rule & [ +OUTPUT < > ]. inpmap-1xx-rule := inpmap-rule & [ +CONTEXT < [ ] > ]. inpmap-x1x-rule := inpmap-rule & [ +INPUT < [ ] > ]. inpmap-xx1-rule := inpmap-rule & [ +OUTPUT < [ ] > ]. inpmap-2xx-rule := inpmap-rule & [ +CONTEXT < [ ], [ ] > ]. inpmap-x2x-rule := inpmap-rule & [ +INPUT < [ ], [ ] > ]. inpmap-xx2-rule := inpmap-rule & [ +OUTPUT < [ ], [ ] > ]. inpmap-x01-rule := inpmap-x0x-rule & inpmap-xx1-rule. inpmap-x02-rule := inpmap-x0x-rule & inpmap-xx2-rule. inpmap-x10-rule := inpmap-x1x-rule & inpmap-xx0-rule. inpmap-x11-rule := inpmap-x1x-rule & inpmap-xx1-rule & [ +INPUT < [ +CFROM #cfrom, +CTO #cto ] >, +OUTPUT < [ +CFROM #cfrom, +CTO #cto ] > ]. inpmap-x12-rule := inpmap-x1x-rule & inpmap-xx2-rule & [ +INPUT < [ +CFROM #cfrom, +CTO #cto ] >, +OUTPUT < [ +CFROM #cfrom, +CTO #cto ], [ +CFROM #cfrom, +CTO #cto ] > ]. inpmap-x21-rule := inpmap-x2x-rule & inpmap-xx1-rule & [ +INPUT < [ +CFROM #cfrom ], [ +CTO #cto ] >, +OUTPUT < [ +CFROM #cfrom, +CTO #cto ] > ]. inpmap-010-rule := inpmap-0xx-rule & inpmap-x1x-rule & inpmap-xx0-rule. inpmap-011-rule := inpmap-0xx-rule & inpmap-x11-rule. inpmap-012-rule := inpmap-0xx-rule & inpmap-x12-rule. inpmap-021-rule := inpmap-0xx-rule & inpmap-x21-rule & [ +INPUT < [ +CFROM #cfrom ], [ +CTO #cto ] >, +OUTPUT < [ +CFROM #cfrom, +CTO #cto ] > ]. inpmap-101-rule := inpmap-1xx-rule & inpmap-x01-rule & [ +CONTEXT < [ +CFROM #cfrom, +CTO #cto ] >, +OUTPUT < [ +CFROM #cfrom, +CTO #cto ] > ]. inpmap-102-rule := inpmap-1xx-rule & inpmap-x02-rule & [ +CONTEXT < [ +CFROM #cfrom, +CTO #cto ] >, +OUTPUT < [ +CFROM #cfrom, +CTO #cto ], [ +CFROM #cfrom, +CTO #cto ] > ]. inpmap-011-set-form-rule := inpmap-011-rule & [ +INPUT < [ +TNT #tnt, +MORPH #morph, +ACROCHECK #acr, +UNIAGR #uniagr ] >, +OUTPUT < [ +TNT #tnt, +MORPH #morph, +ACROCHECK #acr, +UNIAGR #uniagr ] > ]. inpmap-021-set-form-copy-I1-rule := inpmap-021-rule & [ +INPUT < [ +TNT #tnt, +MORPH #morph, +ACROCHECK #acr, +UNIAGR #uniagr ], [ ] >, +OUTPUT < [ +TNT #tnt, +MORPH #morph, +ACROCHECK #acr, +UNIAGR #uniagr ] > ]. inpmap-021-set-form-copy-I2-rule := inpmap-021-rule & [ +INPUT < [ ] , [ +TNT #tnt, +MORPH #morph, +ACROCHECK #acr, +UNIAGR #uniagr ] >, +OUTPUT < [ +TNT #tnt, +MORPH #morph, +ACROCHECK #acr, +UNIAGR #uniagr ] > ]. inpmap-011-set-uniagr-rule := inpmap-011-rule & [ +INPUT < [ +FORM #form, +TNT #tnt, +MORPH #morph, +ACROCHECK #acr ] >, +OUTPUT < [ +FORM #form, +TNT #tnt, +MORPH #morph, +ACROCHECK #acr ] > ]. inpmap-011-set-uniagr-noun-rule := inpmap-011-set-uniagr-rule & [ +INPUT < [ +MORPH < [ +MCAT "Noun" ] > ] > ]. inpmap-012-set-morph-rule := inpmap-012-rule & [ +INPUT < [ +FORM #form, +TNT #tnt, +ACROCHECK #acr, +UNIAGR #uniagr ] >, +OUTPUT < [ +FORM #form, +TNT #tnt, +ACROCHECK #acr, +UNIAGR #uniagr ], [ +FORM #form, +TNT #tnt, +ACROCHECK #acr, +UNIAGR #uniagr ] > ]. inpmap-011-set-morph+tnt-rule := inpmap-011-rule & [ +INPUT < [ +FORM #form, +ACROCHECK #acr, +UNIAGR #uniagr ] >, +OUTPUT < [ +FORM #form, +ACROCHECK #acr, +UNIAGR #uniagr ] > ]. inpmap-021-combine-morph-rule := inpmap-021-rule & [ +INPUT < [ +FORM #form, +TNT #tnt, +ACROCHECK #acr, +MORPH #morph ], [ +FORM #form, +TNT #tnt, +ACROCHECK #acr ] >, +OUTPUT < [ +FORM #form, +TNT #tnt, +ACROCHECK #acr, +MORPH #morph ] > , +POSCONS "I1=I2" ]. ;; ;; lexical mapping rules (a.k.a. lexical filtering): ;; lexlist := *list*. lexcons := lexlist & *cons* & [ FIRST sign , REST lexlist ]. lexnull := lexlist & *null*. lexmap-rule := chart-mapping-rule & [ +CONTEXT lexlist, +INPUT lexlist, +OUTPUT lexlist ]. ;;; Super-types of lexical filtering rules. lexmap-filter-rule := lexmap-rule & [ +CONTEXT < sign > , +INPUT < sign > , +OUTPUT <> , +POSCONS "I1=C1" ].