/*******************************************************/ /* GramKit: Load Example Grammar (SW13-HPSG1) */ /* --------------------------------- */ /* Syntax: HPSG (based on Sag & Wasow Chapter 13) */ /* Semantics: MRS (Minimal Recursion Semantics) */ /* */ /* Graham Wilcock (graham@ccl.umist.ac.uk) 97/08 */ /*******************************************************/ :- use_module(profit, profit3, [fit/1, portray/1, pp/1]). :- fit('SW13-HPSG1'). :- compile('parse-gen2'). :- compile('tree-print'). :- dynamic show_trees/0, show_signs/0, show_sems/0. show(trees) :- assert(show_trees). show(signs) :- assert(show_signs). show(sems) :- assert(show_sems). show(sem) :- assert(show_sems). show(off) :- retractall(show_trees), retractall(show_signs), retractall(show_sems). show_tree(Tree) :- (show_trees, print_tree(Tree),nl ; true),!. show_sign(Sign) :- (show_signs, portray(Sign),nl ; true),!. show_sem(Semantics) :- (show_sems, portray(Semantics),nl ; true),!. % Default settings ------------------ :- show(off). :- show(trees). :- show(sems). :- pp(format2). parse :- repeat, input_string(String), (String == end_of_file ; parse(String), fail). parse(String) :- nl,write(String),nl, parse(String,Sign,Tree), show_sign(Sign), show_tree(Tree), semantics(Sign,Sem), show_sem(Sem), fail. gen(Semantics) :- write(Semantics),nl, qlf_2_mrs(Semantics, MRS), show_sem(MRS), generate(MRS,Sign,Tree), show_sign(Sign), show_tree(Tree), string(Sign,String), write(String),nl, fail. echo :- repeat, input_string(String), (String == end_of_file ; echo(String), fail). echo(String) :- nl,write(String),nl, parse(String,Sign,Tree), show_sign(Sign), show_tree(Tree), semantics(Sign,Sem), gensym_sem(Sem), show_sem(Sem), generate(Sem,GenSign,GenTree), show_sign(GenSign), show_tree(GenTree), fail. test_parse :- test_string(String), parse(String), fail. test_gen :- QLF = [name(k,'Kim'),name(s,'Sandy'),loved(g,k,s)], write(QLF),nl, qlf_2_mrs(QLF, MRS), show_sem(MRS), generate(MRS,Sign,Tree), show_sign(Sign), show_tree(Tree), fail. test_echo :- test_string(String), echo(String), fail. test_string(['Kim',walks]). %test_string(['Kim',saw,'Sandy']).