str(e(15), [john, saw, b([b([mary, today, and, fred, yesterday])])], s(_)). str(e(18), [mary, arrived, without, b([seeing, bill])], s(_)). str(e(19), [man, who, mary, arrived, without, b([seeing])], cn(_)). str(e(20), [b([b([mary, arrived, and, john, left])])], s(_)). str(e(21), [man, who, b([b([mary, arrived, and, john, saw])])], cn(_)). str(e(22), [book, that, john, gave, to, mary], cn(_)). str(e(23), [man, that, john, saw, today], cn(_)). str(e(24), [book, that, john, saw], cn(_)). str(e(25), [b([the, man]), went_to_paris], s(_)). str(e(26), [man, that, b([the, friends, of]), went_to_paris], cn(_)). str(e(27), [man, that, b([b([the, friends, of])]), saw], cn(_)). str(e(28), [paper, that, b([b([the, editor, of])]), filed, without, b([b([reading])])], cn(_)). lex([today], ( n(F) bs s(F) ) bs ( n(F) bs s(F) ), t). lex([yesterday], ( n(F) bs s(F) ) bs ( n(F) bs s(F) ), y). lex([without], ( ( n(_) bs s(_) ) bs ( n(_) bs s(_) ) ) / br ( n(_) bs s(_) ), [lmd, X, [lmd, Y, [lmd, Z, [and, [app, Y, Z], [not, [app, X, Z]]]]]]). lex([without], ( ( br n(_) bs s(_) ) bs ( br n(_) bs s(_) ) ) / br ( br n(_) bs s(_) ), [lmd, X, [lmd, Y, [lmd, Z, [and, [app, Y, Z], [not, [app, X, Z]]]]]]). lex([to], pp(_) / n(_), [lmd, X, X]). lex([of], pp(_) / n(_), [lmd, X, X]). lex([john], n(t(s(m))), j). lex([fred], n(t(s(m))), f). lex([bill], n(t(s(m))), b). lex([mary], n(t(s(f))), m). lex([paris], n(t(s(n))), p). lex([walks], n(t(A)) bs s(t(A)), walk). % falta tiempo verbal: present lex([talks], n(t(A)) bs s(t(A)), talk). lex([arrived], n(A) bs s(A), a). lex([left], n(A) bs s(A), l). lex([went_to_paris], br n(A) bs s(A), p). lex([seeing], ( n(A) bs s(A) ) / n(_), s). lex([reading], ( br n(A) bs s(A) ) / n(_), r). lex([sleeps], n(t(A)) bs s(t(A)), sleep). lex([loves], ( n(t(A)) bs s(t(A)) ) / n(_), love). lex([likes], ( n(t(A)) bs s(t(A)) ) / n(_), like). lex([thinks], ( n(t(A)) bs s(t(A)) ) / cp(_), think). lex([dislikes], ( n(t(A)) bs s(t(A)) ) / n(_), dislike). lex([consider], ( ( n(f(A)) bs s(f(A)) ) / ( n(B) / n(B) ) ) / n(B) , [lmd, X, [lmd, Y, [app, consider, [app, Y, X]]]]). lex([respects], ( n(t(A)) bs s(t(A)) ) / n(_), respect). lex([admires], ( n(t(A)) bs s(t(A)) ) / n(_), admire). lex([saw], ( n(A) bs s(A) ) / n(_), see). % falta tiempo verbal: past lex([filed], ( br n(A) bs s(A) ) / n(_), f). % falta tiempo verbal: past lex([saw], ( br n(A) bs s(A) ) / n(_), see). % falta tiempo verbal: past lex([gave], ( ( n(A) bs s(A) ) / pp(_) ) / n(_), g). lex([sent], ( ( n(A) bs s(A) ) / pp(_) ) / n(_), s). lex([man], cn(t(s(m))), man). lex([paper], cn(t(s(n))), p). lex([cat], cn(t(s(n))), cat). lex([book], cn(t(s(n))), k). lex([cd], cn(t(s(n))), c). lex([friends], cn(_) / pp(_), f). lex([editor], cn(_) / pp(_), ed). lex([saw], cn(t(s(n))), saw). lex([the], n(G) / cn(G), iota). lex([that], cp(_)/s(_), [lmd, X, X]). lex([who], ( cn(F) bs cn(F) ) / ( n(F) bs s(F) ), [lmd, X, [lmd, Y, [lmd, Z, [and, [app, Y, Z], [app, X, Z]]]]]). lex([who], ( cn(F) bs cn(F) ) / ( s(_) / n(F) ), [lmd, X, [lmd, Y, [lmd, Z, [and, [app, Y, Z], [app, X, Z]]]]]). lex([that], ( cn(F) bs cn(F) ) / ( s(_) / ! n(_) ), [lmd, X, [lmd, Y, [lmd, Z, [and, [app, Y, Z], [app, X, Z]]]]]). lex([i], n(f(s(_))), i). lex([clever], n(F) / n(F), clever). lex([himself], ( ( n(t(s(m))) bs s(t(s(m))) ) / n(t(s(m))) ) bs ( n(t(s(m))) bs s(t(s(m))) ), [lmd, X, [lmd, Y, [app, [app, X, Y], Y]]]). %lex([and], ( s(_) bs s(_) ) / s(_), [lmd, X, [lmd, Y, [and, Y, X]]]). lex([and], ( s(_) bs ab ab s(_) ) / s(_), [lmd, X, [lmd, Y, [and, Y, X]]]). lex([and], ( ( n(F) bs s(F) ) bs ( n(F) bs s(F) ) ) / ( n(F) bs s(F) ), [lmd, X, [lmd, Y, [lmd, Z, [and, [app, Y, Z], [app, X, Z]]]]]). lex([and], ( ( s(_) / n(_) ) bs ( s(_) / n(_) ) ) / ( s(_) / n(_) ), [lmd, X, [lmd, Y, [lmd, Z, [and, [app, Y, Z], [app, X, Z]]]]]). lex([and], ( ( ( n(F) bs s(F) ) / n(G) ) bs ( ( n(F) bs s(F) ) / n(G) ) ) / ( ( n(F) bs s(F) ) / n(G) ), [lmd, X, [lmd, Y, [lmd, Z, [lmd, W, [and, [app, [app, Y, Z], W], [app, [app, X, Z], W] ] ] ] ] ]). lex([and], ( (( ( n(A) bs s(A) ) / n(_) ) bs ( n(A) bs s(A) ) ) bs ab ab (( ( n(A) bs s(A) ) / n(_) ) bs ( n(A) bs s(A) ) ) ) / (( ( n(A) bs s(A) ) / n(_) ) bs ( n(A) bs s(A) ) ), [lmd, X, [lmd, Y, [lmd, Z, [lmd, W, [and, [app, [app, Y, Z], W], [app, [app, X, Z], W]]]]]]). lex([and], ( (( ( ( n(A) bs s(A) ) / pp(_) ) / n(_) ) bs ( n(A) bs s(A) ) ) bs (( ( ( n(A) bs s(A) ) / pp(_) ) / n(_) ) bs ( n(A) bs s(A) ) ) ) / (( ( ( n(A) bs s(A) ) / pp(_) ) / n(_) ) bs ( n(A) bs s(A) ) ), [lmd, X, [lmd, Y, [lmd, Z, [lmd, W, [and, [app, [app, Y, Z], W], [app, [app, X, Z], W]]]]]]). % Habria que hacer reglas similares para otras personas y numeros: % f(s(F)), t(p(F)), f(p(F)). Los sujetos coinciden en persona y % numero, pero no en genero. lex([or], ( ( s(t(s(F))) / ( n(t(s(F))) bs s(t(s(F))) ) ) bs ( s(t(s(G))) / ( n(t(s(G))) bs s(t(s(G))) ) ) ) / ( s(t(s(H))) / ( n(t(s(H))) bs s(t(s(H))) ) ), [lmd, X, [lmd, Y, [lmd, Z, [or, [app, Y, Z], [app, X, Z]]]]]). lex([or], ( ( ( s(_) / pp(_) ) / n(_) ) bs ( ( s(_) / pp(_) ) / n(_) ) ) / ( ( s(_) / pp(_) ) / n(_) ), [lmd, X, [lmd, Y, [lmd, Z, [lmd, W, [or, [app, [app, Y, Z], W], [app, [app, X, Z], W] ] ] ] ] ]).