:- multifile sem/5, id/2. :- discontiguous sem/5, id/2. :- dynamic sem/5, id/2. id(1,1). %%% Dr. Jekyll saw and Mr. Hyde ate a lemon . sem(1, [word(1001, 'Dr.'), word(1002, 'Jekyll'), word(1003, saw), word(1004, and), word(1005, 'Mr.'), word(1006, 'Hyde'), word(1007, ate), word(1008, a), word(1009, lemon), word(1010, '.')], [pos(1001, 'NNP'), pos(1002, 'NNP'), pos(1003, 'VBD'), pos(1004, 'CC'), pos(1005, 'NNP'), pos(1006, 'NNP'), pos(1007, 'VBD'), pos(1008, 'DT'), pos(1009, 'NN'), pos(1010, '.')], [ne(1001, 'I-PER'), ne(1002, 'I-PER'), ne(1005, 'I-PER'), ne(1006, 'I-PER')], smerge(drs([[1001, 1002]:x0, [1005, 1006]:x1], [[1002]:named(x0, jekyll, per, 0), [1001]:named(x0, dr, ttl, 0), [1006]:named(x1, hyde, per, 0), [1005]:named(x1, mr, ttl, 0)]), drs([[1008]:x2, [1003]:x3, [1008]:x4, [1007]:x5], [[1009]:pred(x2, lemon, n, 0), [1003]:pred(x3, see, v, 0), []:pred(x3, event, n, 1), [1003]:rel(x3, x0, agent, 0), [1003]:rel(x3, x2, patient, 0), [1009]:pred(x4, lemon, n, 0), [1007]:pred(x5, eat, v, 0), []:pred(x5, event, n, 1), [1007]:rel(x5, x1, agent, 0), [1007]:rel(x5, x4, patient, 0)])) ). %%% ______________________ ________________ %%% | x0 x1 | | x2 x3 x4 x5 | %%% |______________________| |________________| %%% (| named(x0,jekyll,per) |+| lemon(x2) |) %%% | named(x0,dr,ttl) | | see(x3) | %%% | named(x1,hyde,per) | | event(x3) | %%% | named(x1,mr,ttl) | | agent(x3,x0) | %%% |______________________| | patient(x3,x2) | %%% | lemon(x4) | %%% | eat(x5) | %%% | event(x5) | %%% | agent(x5,x1) | %%% | patient(x5,x4) | %%% |________________|