forked from ontologiae/DRS-Analysis-Tool
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdrsxp.ml
48 lines (32 loc) · 30.8 KB
/
drsxp.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
exception Fatal_error of string;;
(*
drs([A, B], [object(A, webpage, countable, na, eq, 1)-1/8, predicate(B, be, named('MywebPage'), A)-1/4]).
drs([A, B], [object(A, webpage, countable, na, eq, 1)-1/8, predicate(B, be, named, A)-1/4]).
*)
let lexer = function str -> Message.lexer_from_string str;;
let fatal_error msg = raise (Fatal_error msg);;
let cmds lex =
try
Parser.drstart Lexer.token lex
with
| Failure("lexing: empty token")
| Parsing.Parse_error -> fatal_error (Message.syntax_error lex);;
let q = "drs([], [object(A)-1/6]).";;
let l =
"drs([A, B], [object(A, webpage, countable, na, eq, 1)-1/8, predicate(B, be, named('MywebPage'), A)-1/4]).";;
let testif =
"drs([], [=>(drs([A, B], [property(A, happy, pos)-1/4, predicate(B, be, named('Droopy'), A)-1/3]), drs([C], [predicate(C, laugh, named('TVCouch'))-1/7]))]).";;
let testif2=
"drs([], [=>( drs([A, B], [property(A, happy, pos)-1/4, predicate(B, be, named('Droopy'), A)-1/3]), drs([C], [predicate(C, laugh, named('Watchers'))-1/7]) )])."
let ballons = "drs([A, B, C, D], [object(A, guy, countable, na, eq, 2)-1/2,object(B, balloon, countable, na, eq, 2)-1/5, object(C, girl, countable, na, eq,2)-1/8, predicate(D, give, A, B, C)-1/3]).";;
let long = "drs([A, B, C, D, E, F, G, H, I, J], [object(A, webpage, countable, na, eq, 1)-1/8, predicate(B, be, named('MywebPage'), A)-1/4, object(C, ajaxButton, countable, na, eq, 2)-2/8, predicate(D, contain, named('MywebPage'), C)-2/4, relation(E, of, G)-3/6, object(E, name, countable, na, eq, 1)-3/8, predicate(F, be, E, string('Bouton1'))-3/9, property(G, first, pos)-3/2, object(G, ajaxButton, countable, na, eq, 1)-3/5, relation(H, of, J)-4/6, object(H, name, countable, na, eq, 1)-4/8, predicate(I, be, H, string('Bouton2'))-4/9, property(J, second, pos)-4/2, object(J, ajaxButon, countable, na, eq, 1)-4/5]).";;
let erreurexpl =
"drs([], [=>(drs([A, B, C], [object(A, something, dom, na, na, na)-1/2, object(B, something, dom, na, na, na)-1/8, predicate(C, read, B, A)-1/5]), drs([D, E], [object(D, publication, countable, na, eq, 1)-1/11, predicate(E, be, A, D)-1/9])), =>(drs([F, G, H], [object(F, something, dom, na, na, na)-2/2, object(G, 'white-van-man', countable, na, eq, 1)-2/10, predicate(H, read, G, F)-2/5]), drs([I, J], [object(I, tabloid, countable, na, eq, 1)-2/13, predicate(J, be, F, I)-2/11]))]).";;
let err =
"drs([A, B, C], [has_part(C, named('Droopy'))-1/'', property(A, happy, pos)-1/5, predicate(B, be, C, A)-1/4, has_part(C, named('Jack'))-1/'', object(C, na, countable, na, eq, 2)-1/''])."
let parse = function str -> cmds (lexer str);;
let parsecomplete str =
let drs = Syntax.drs_to_fulldrs ( parse str) in
(*Syntax.treefy_drs *)drs;;
let gros =
"drs([A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, B1, C1, D1, E1, F1, G1, H1, I1, J1, K1, L1, M1, N1, O1, P1, Q1, R1, S1, T1, U1, V1, W1, X1, Y1, Z1, A2, B2, C2, D2, E2, F2, G2, H2, I2, J2], [=>(drs([K2, L2, M2], [object(K2, something, dom, na, na, na)-1/2, object(L2, something, dom, na, na, na)-1/8, predicate(M2, read, L2, K2)-1/5]), drs([N2, O2], [object(N2, publication, countable, na, eq, 1)-1/11, predicate(O2, be, K2, N2)-1/9])), =>(drs([P2, Q2, R2], [object(P2, something, dom, na, na, na)-2/2, object(Q2, 'white-van-man', countable, na, eq, 1)-2/10, predicate(R2, read, Q2, P2)-2/5]), drs([S2, T2], [object(S2, tabloid, countable, na, eq, 1)-2/13, predicate(T2, be, P2, S2)-2/11])), =>(drs([U2], [object(U2, tree, countable, na, eq, 1)-3/2]), drs([V2, W2], [object(V2, plant, countable, na, eq, 1)-3/5, predicate(W2, be, U2, V2)-3/3])), =>(drs([X2, Y2, Z2, A3], [object(X2, person, countable, na, eq, 1)-4/2, object(Y2, pet, countable, na, eq, 1)-4/4, relation(Y2, of, X2)-4/3, object(Z2, cat, countable, na, eq, 1)-4/7, predicate(A3, be, Y2, Z2)-4/5]), drs([B3, C3], [object(B3, 'cat-owner', countable, na, eq, 1)-4/12, predicate(C3, be, X2, B3)-4/8])), =>(drs([D3], [object(D3, 'cat-owner', countable, na, eq, 1)-5/4]), drs([E3, F3, G3, H3, I3], [object(E3, person, countable, na, eq, 1)-5/7, object(F3, pet, countable, na, eq, 1)-5/9, relation(F3, of, E3)-5/8, object(G3, cat, countable, na, eq, 1)-5/12, predicate(H3, be, F3, G3)-5/10, predicate(I3, be, D3, E3)-5/5])), relation(A, of, named('Walt'))-6/2, object(A, pet, countable, na, eq, 1)-6/4, predicate(B, be, A, named('Louie'))-6/5, =>(drs([J3, K3, L3, M3], [object(J3, something, dom, na, na, na)-7/2, object(K3, mother, countable, na, eq, 1)-7/6, object(L3, something, dom, na, na, na)-7/9, relation(K3, of, L3)-7/7, predicate(M3, be, J3, K3)-7/4]), drs([N3, O3], [object(N3, woman, countable, na, eq, 1)-7/12, predicate(O3, be, J3, N3)-7/10])), =>(drs([P3], [object(P3, dog, countable, na, eq, 1)-8/2]), drs([Q3, R3], [object(Q3, bone, countable, na, eq, 1)-8/5, predicate(R3, eat, P3, Q3)-8/3])), relation(C, of, named('Walt'))-9/2, object(C, pet, countable, na, eq, 1)-9/4, predicate(D, be, C, named('Dewey'))-9/5, object(E, duck, countable, na, eq, 1)-10/4, predicate(F, be, named('Huey'), E)-10/2, =>(drs([S3], [object(S3, broadsheet, countable, na, eq, 1)-11/2]), drs([], [-(drs([T3, U3], [object(T3, tabloid, countable, na, eq, 1)-11/5, predicate(U3, be, S3, T3)-11/3]))])), relation(G, of, named('Joe'))-12/2, object(G, pet, countable, na, eq, 1)-12/4, predicate(H, be, G, named('Fido'))-12/5, object(I, cow, countable, na, eq, 1)-13/4, predicate(J, be, named('Flossie'), I)-13/2, =>(drs([V3], [object(V3, elderly, countable, na, eq, 1)-14/2]), drs([W3, X3], [object(W3, adult, countable, na, eq, 1)-14/5, predicate(X3, be, V3, W3)-14/3])), =>(drs([Y3], [object(Y3, giraffe, countable, na, eq, 1)-15/2]), drs([Z3, A4], [object(Z3, animal, countable, na, eq, 1)-15/5, predicate(A4, be, Y3, Z3)-15/3])), object(K, person, countable, na, eq, 1)-16/4, predicate(L, be, named('Fred'), K)-16/2, =>(drs([B4, C4, D4, E4], [object(B4, something, dom, na, na, na)-17/2, object(C4, pet, countable, na, eq, 1)-17/4, relation(C4, of, B4)-17/3, object(D4, something, dom, na, na, na)-17/7, predicate(E4, be, C4, D4)-17/5]), drs([F4, G4], [object(F4, person, countable, na, eq, 1)-17/10, predicate(G4, be, B4, F4)-17/8])), object(M, broadsheet, countable, na, eq, 1)-18/4, predicate(N, be, named('The-Times'), M)-18/2, =>(drs([H4], [object(H4, 'cat-liker', countable, na, eq, 1)-19/4]), drs([I4, J4, K4, L4], [object(I4, person, countable, na, eq, 1)-19/7, object(J4, cat, countable, na, eq, 1)-19/11, predicate(K4, like, I4, J4)-19/9, predicate(L4, be, H4, I4)-19/5])), =>(drs([M4, N4, O4], [object(M4, person, countable, na, eq, 1)-20/2, object(N4, cat, countable, na, eq, 1)-20/6, predicate(O4, like, M4, N4)-20/4]), drs([P4, Q4], [object(P4, 'cat-liker', countable, na, eq, 1)-20/11, predicate(Q4, be, M4, P4)-20/7])), =>(drs([R4], [object(R4, 'red-top', countable, na, eq, 1)-21/4]), drs([S4, T4], [object(S4, tabloid, countable, na, eq, 1)-21/7, predicate(T4, be, R4, S4)-21/5])), =>(drs([U4], [object(U4, 'quality-broadsheet', countable, na, eq, 1)-22/4]), drs([V4, W4], [object(V4, broadsheet, countable, na, eq, 1)-22/7, predicate(W4, be, U4, V4)-22/5])), =>(drs([X4], [object(X4, lorry, countable, na, eq, 1)-23/2]), drs([Y4, Z4], [object(Y4, vehicle, countable, na, eq, 1)-23/5, predicate(Z4, be, X4, Y4)-23/3])), =>(drs([A5], [object(A5, man, countable, na, eq, 1)-24/2]), drs([B5, C5, D5, E5, F5, G5], [object(B5, adult, countable, na, eq, 1)-24/5, object(C5, male, countable, na, eq, 1)-24/9, predicate(D5, be, B5, C5)-24/7, object(E5, person, countable, na, eq, 1)-24/14, predicate(F5, be, B5, E5)-24/12, predicate(G5, be, A5, B5)-24/3])), =>(drs([H5, I5, J5, K5, L5], [object(H5, adult, countable, na, eq, 1)-25/2, object(I5, male, countable, na, eq, 1)-25/6, predicate(J5, be, H5, I5)-25/4, object(K5, person, countable, na, eq, 1)-25/11, predicate(L5, be, H5, K5)-25/9]), drs([M5, N5], [object(M5, man, countable, na, eq, 1)-25/14, predicate(N5, be, H5, M5)-25/12])), =>(drs([O5], [object(O5, driver, countable, na, eq, 1)-26/2]), drs([P5, Q5], [object(P5, adult, countable, na, eq, 1)-26/5, predicate(Q5, be, O5, P5)-26/3])), =>(drs([R5], [object(R5, bicycle, countable, na, eq, 1)-27/2]), drs([S5, T5], [object(S5, vehicle, countable, na, eq, 1)-27/5, predicate(T5, be, R5, S5)-27/3])), relation(O, of, named('The42'))-28/2, object(O, 'service-number', countable, na, eq, 1)-28/6, predicate(P, be, O, int(42))-28/7, =>(drs([U5], [object(U5, person, countable, na, eq, 1)-29/2]), drs([V5, W5], [object(V5, animal, countable, na, eq, 1)-29/5, predicate(W5, be, U5, V5)-29/3])), =>(drs([X5], [object(X5, grownup, countable, na, eq, 1)-30/4]), drs([Y5, Z5, A6, B6], [object(Y5, adult, countable, na, eq, 1)-30/7, object(Z5, person, countable, na, eq, 1)-30/11, predicate(A6, be, Y5, Z5)-30/9, predicate(B6, be, X5, Y5)-30/5])), =>(drs([C6, D6, E6], [object(C6, adult, countable, na, eq, 1)-31/2, object(D6, person, countable, na, eq, 1)-31/6, predicate(E6, be, C6, D6)-31/4]), drs([F6, G6], [object(F6, grownup, countable, na, eq, 1)-31/11, predicate(G6, be, C6, F6)-31/7])), =>(drs([H6], [object(H6, 'old-lady', countable, na, eq, 1)-32/4]), drs([I6, J6, K6, L6, M6], [object(I6, something, dom, na, na, na)-32/7, object(J6, pet, countable, na, eq, 1)-32/9, relation(J6, of, I6)-32/8, object(K6, animal, countable, na, eq, 1)-32/12, predicate(L6, be, J6, K6)-32/10, =>(drs([N6, O6], [predicate(N6, 'has-as-pet', I6, O6)-32/17, object(O6, something, dom, na, na, na)-32/19]), drs([P6, Q6], [object(P6, cat, countable, na, eq, 1)-32/21, predicate(Q6, be, O6, P6)-32/''])), predicate(M6, be, H6, I6)-32/5])), =>(drs([R6, S6, T6], [object(R6, something, dom, na, na, na)-33/2, object(S6, sheep, countable, na, eq, 1)-33/8, predicate(T6, eat, S6, R6)-33/5]), drs([U6, V6], [object(U6, grass, countable, na, eq, 1)-33/11, predicate(V6, be, R6, U6)-33/9])), =>(drs([W6], [object(W6, kid, countable, na, eq, 1)-34/2]), drs([X6, Y6, Z6, A7], [object(X6, person, countable, na, eq, 1)-34/5, object(Y6, young, countable, na, eq, 1)-34/9, predicate(Z6, be, X6, Y6)-34/7, predicate(A7, be, W6, X6)-34/3])), =>(drs([B7, C7, D7], [object(B7, person, countable, na, eq, 1)-35/2, object(C7, young, countable, na, eq, 1)-35/6, predicate(D7, be, B7, C7)-35/4]), drs([E7, F7], [object(E7, kid, countable, na, eq, 1)-35/9, predicate(F7, be, B7, E7)-35/7])), =>(drs([G7], [object(G7, sheep, countable, na, eq, 1)-36/2]), drs([H7, I7], [object(H7, animal, countable, na, eq, 1)-36/5, predicate(I7, be, G7, H7)-36/3])), object(Q, broadsheet, countable, na, eq, 1)-37/4, predicate(R, be, named('The-Guardian'), Q)-37/2, =>(drs([J7, K7, L7], [object(J7, person, countable, na, eq, 1)-38/2, object(K7, bus, countable, na, eq, 1)-38/6, predicate(L7, drive, J7, K7)-38/4]), drs([M7, N7], [object(M7, 'bus-driver', countable, na, eq, 1)-38/11, predicate(N7, be, J7, M7)-38/7])), =>(drs([O7], [object(O7, 'bus-driver', countable, na, eq, 1)-39/4]), drs([P7, Q7, R7, S7], [object(P7, person, countable, na, eq, 1)-39/7, object(Q7, bus, countable, na, eq, 1)-39/11, predicate(R7, drive, P7, Q7)-39/9, predicate(S7, be, O7, P7)-39/5])), =>(drs([T7, U7, V7, W7, X7], [object(T7, man, countable, na, eq, 1)-40/2, object(U7, van, countable, na, eq, 1)-40/6, object(V7, 'white-thing', countable, na, eq, 1)-40/12, predicate(W7, be, U7, V7)-40/8, predicate(X7, drive, T7, U7)-40/4]), drs([Y7, Z7], [object(Y7, 'white-van-man', countable, na, eq, 1)-40/17, predicate(Z7, be, T7, Y7)-40/13])), =>(drs([A8], [object(A8, 'white-van-man', countable, na, eq, 1)-41/4]), drs([B8, C8, D8, E8, F8, G8], [object(B8, man, countable, na, eq, 1)-41/7, object(C8, van, countable, na, eq, 1)-41/11, object(D8, 'white-thing', countable, na, eq, 1)-41/17, predicate(E8, be, C8, D8)-41/13, predicate(F8, drive, B8, C8)-41/9, predicate(G8, be, A8, B8)-41/5])), =>(drs([H8], [object(H8, tiger, countable, na, eq, 1)-42/2]), drs([I8, J8], [object(I8, animal, countable, na, eq, 1)-42/5, predicate(J8, be, H8, I8)-42/3])), =>(drs([K8, L8, M8], [object(K8, something, dom, na, na, na)-43/2, object(L8, something, dom, na, na, na)-43/6, v(drs([N8, O8], [object(N8, 'haulage-company', countable, na, eq, 1)-43/12, predicate(O8, be, L8, N8)-43/8]), drs([P8, Q8, R8], [object(P8, part, countable, na, eq, 1)-43/17, object(Q8, 'haulage-company', countable, na, eq, 1)-43/22, relation(P8, of, Q8)-43/18, predicate(R8, be, L8, P8)-43/15])), predicate(M8, 'work-for', K8, L8)-43/4]), drs([S8, T8], [object(S8, 'haulage-worker', countable, na, eq, 1)-43/27, predicate(T8, be, K8, S8)-43/23])), =>(drs([U8], [object(U8, 'haulage-worker', countable, na, eq, 1)-44/4]), drs([V8, W8], [object(V8, something, dom, na, na, na)-44/7, v(drs([X8, Y8], [object(X8, 'haulage-company', countable, na, eq, 1)-44/13, predicate(Y8, be, V8, X8)-44/9]), drs([Z8, A9, B9], [object(Z8, part, countable, na, eq, 1)-44/18, object(A9, 'haulage-company', countable, na, eq, 1)-44/23, relation(Z8, of, A9)-44/19, predicate(B9, be, V8, Z8)-44/16])), predicate(W8, 'work-for', U8, V8)-44/5])), =>(drs([C9], [object(C9, duck, countable, na, eq, 1)-45/2]), drs([D9, E9], [object(D9, animal, countable, na, eq, 1)-45/5, predicate(E9, be, C9, D9)-45/3])), =>(drs([F9], [object(F9, animal, countable, na, eq, 1)-46/2]), drs([G9, H9], [object(G9, something, dom, na, na, na)-46/5, predicate(H9, eat, F9, G9)-46/3])), =>(drs([I9, J9, K9, L9, M9], [object(I9, adult, countable, na, eq, 1)-47/2, object(J9, female, countable, na, eq, 1)-47/6, predicate(K9, be, I9, J9)-47/4, object(L9, person, countable, na, eq, 1)-47/11, predicate(M9, be, I9, L9)-47/9]), drs([N9, O9], [object(N9, woman, countable, na, eq, 1)-47/14, predicate(O9, be, I9, N9)-47/12])), =>(drs([P9], [object(P9, woman, countable, na, eq, 1)-48/2]), drs([Q9, R9, S9, T9, U9, V9], [object(Q9, adult, countable, na, eq, 1)-48/5, object(R9, female, countable, na, eq, 1)-48/9, predicate(S9, be, Q9, R9)-48/7, object(T9, person, countable, na, eq, 1)-48/14, predicate(U9, be, Q9, T9)-48/12, predicate(V9, be, P9, Q9)-48/3])), =>(drs([W9, X9, Y9, Z9], [object(W9, person, countable, na, eq, 1)-49/2, object(X9, pet, countable, na, eq, 1)-49/4, relation(X9, of, W9)-49/3, object(Y9, dog, countable, na, eq, 1)-49/7, predicate(Z9, be, X9, Y9)-49/5]), drs([A10, B10], [object(A10, 'dog-owner', countable, na, eq, 1)-49/12, predicate(B10, be, W9, A10)-49/8])), =>(drs([C10], [object(C10, 'dog-owner', countable, na, eq, 1)-50/4]), drs([D10, E10, F10, G10, H10], [object(D10, person, countable, na, eq, 1)-50/7, object(E10, pet, countable, na, eq, 1)-50/9, relation(E10, of, D10)-50/8, object(F10, dog, countable, na, eq, 1)-50/12, predicate(G10, be, E10, F10)-50/10, predicate(H10, be, C10, D10)-50/5])), =>(drs([I10, J10, K10, L10], [object(I10, something, dom, na, na, na)-51/2, object(J10, father, countable, na, eq, 1)-51/6, object(K10, something, dom, na, na, na)-51/9, relation(J10, of, K10)-51/7, predicate(L10, be, I10, J10)-51/4]), drs([M10, N10], [object(M10, man, countable, na, eq, 1)-51/12, predicate(N10, be, I10, M10)-51/10])), =>(drs([O10, P10, Q10], [object(O10, something, dom, na, na, na)-52/2, object(P10, giraffe, countable, na, eq, 1)-52/8, predicate(Q10, eat, P10, O10)-52/5]), drs([R10, S10], [object(R10, leaf, countable, na, eq, 1)-52/11, predicate(S10, be, O10, R10)-52/9])), relation(S, of, named('Walt'))-53/2, object(S, pet, countable, na, eq, 1)-53/4, predicate(T, be, S, named('Huey'))-53/5, object(U, bus, countable, na, eq, 1)-54/4, predicate(V, be, named('The42'), U)-54/2, =>(drs([T10], [object(T10, cat, countable, na, eq, 1)-55/2]), drs([U10, V10], [object(U10, animal, countable, na, eq, 1)-55/5, predicate(V10, be, T10, U10)-55/3])), object(W, pet, countable, na, eq, 1)-56/4, relation(W, of, named('Mick'))-56/5, predicate(X, be, named('Rex'), W)-56/2, =>(drs([W10], [object(W10, 'haulage-company', countable, na, eq, 1)-57/4]), drs([X10, Y10], [object(X10, company, countable, na, eq, 1)-57/7, predicate(Y10, be, W10, X10)-57/5])), =>(drs([Z10, A11, B11], [object(Z10, something, dom, na, na, na)-58/2, object(A11, something, dom, na, na, na)-58/6, predicate(B11, eat, Z10, A11)-58/4]), drs([C11, D11], [object(C11, animal, countable, na, eq, 1)-58/9, predicate(D11, be, Z10, C11)-58/7])), relation(Y, of, named('Fred'))-59/2, object(Y, pet, countable, na, eq, 1)-59/4, predicate(Z, be, Y, named('Tibbs'))-59/5, =>(drs([E11], [object(E11, 'haulage-truck-driver', countable, na, eq, 1)-60/4]), drs([F11, G11, H11, I11, J11, K11, L11, M11, N11], [object(F11, person, countable, na, eq, 1)-60/7, object(G11, truck, countable, na, eq, 1)-60/11, predicate(H11, drive, F11, G11)-60/9, object(I11, something, dom, na, na, na)-60/16, object(J11, part, countable, na, eq, 1)-60/20, object(K11, 'haulage-company', countable, na, eq, 1)-60/25, relation(J11, of, K11)-60/21, predicate(L11, be, I11, J11)-60/18, predicate(M11, 'work-for', F11, I11)-60/14, predicate(N11, be, E11, F11)-60/5])), =>(drs([O11, P11, Q11, R11, S11, T11, U11, V11], [object(O11, person, countable, na, eq, 1)-61/2, object(P11, truck, countable, na, eq, 1)-61/6, predicate(Q11, drive, O11, P11)-61/4, object(R11, something, dom, na, na, na)-61/11, object(S11, part, countable, na, eq, 1)-61/15, object(T11, 'haulage-company', countable, na, eq, 1)-61/20, relation(S11, of, T11)-61/16, predicate(U11, be, R11, S11)-61/13, predicate(V11, 'work-for', O11, R11)-61/9]), drs([W11, X11], [object(W11, 'haulage-truck-driver', countable, na, eq, 1)-61/25, predicate(X11, be, O11, W11)-61/21])), object(A1, male, countable, na, eq, 1)-62/4, predicate(B1, be, named('Mick'), A1)-62/2, object(C1, duck, countable, na, eq, 1)-63/4, predicate(D1, be, named('Louie'), C1)-63/2, predicate(E1, read, named('Mick'), named('Daily-Mirror'))-64/2, =>(drs([Y11, Z11, A12, B12], [object(Y11, something, dom, na, na, na)-65/2, relation(Z11, of, Y11)-65/3, object(Z11, pet, countable, na, eq, 1)-65/5, object(A12, something, dom, na, na, na)-65/7, predicate(B12, be, Z11, A12)-65/6]), drs([C12], [predicate(C12, like, Y11, A12)-65/10])), =>(drs([D12, E12, F12, G12, H12], [object(D12, elderly, countable, na, eq, 1)-66/2, object(E12, female, countable, na, eq, 1)-66/6, predicate(F12, be, D12, E12)-66/4, object(G12, person, countable, na, eq, 1)-66/11, predicate(H12, be, D12, G12)-66/9]), drs([I12, J12], [object(I12, 'old-lady', countable, na, eq, 1)-66/16, predicate(J12, be, D12, I12)-66/12])), =>(drs([K12], [object(K12, 'old-lady', countable, na, eq, 1)-67/4]), drs([L12, M12, N12, O12, P12, Q12], [object(L12, elderly, countable, na, eq, 1)-67/7, object(M12, female, countable, na, eq, 1)-67/11, predicate(N12, be, L12, M12)-67/9, object(O12, person, countable, na, eq, 1)-67/16, predicate(P12, be, L12, O12)-67/14, predicate(Q12, be, K12, L12)-67/5])), =>(drs([R12], [object(R12, newspaper, countable, na, eq, 1)-68/2]), drs([S12, T12], [object(S12, publication, countable, na, eq, 1)-68/5, predicate(T12, be, R12, S12)-68/3])), object(F1, 'white-thing', countable, na, eq, 1)-69/6, predicate(G1, be, named('Q123-ABC'), F1)-69/2, =>(drs([U12], [object(U12, 'lorry-driver', countable, na, eq, 1)-70/4]), drs([V12, W12, X12, Y12], [object(V12, person, countable, na, eq, 1)-70/7, object(W12, lorry, countable, na, eq, 1)-70/11, predicate(X12, drive, V12, W12)-70/9, predicate(Y12, be, U12, V12)-70/5])), =>(drs([Z12, A13, B13], [object(Z12, person, countable, na, eq, 1)-71/2, object(A13, lorry, countable, na, eq, 1)-71/6, predicate(B13, drive, Z12, A13)-71/4]), drs([C13, D13], [object(C13, 'lorry-driver', countable, na, eq, 1)-71/11, predicate(D13, be, Z12, C13)-71/7])), =>(drs([E13], [object(E13, 'dog-liker', countable, na, eq, 1)-72/4]), drs([F13, G13, H13, I13], [object(F13, person, countable, na, eq, 1)-72/7, object(G13, dog, countable, na, eq, 1)-72/11, predicate(H13, like, F13, G13)-72/9, predicate(I13, be, E13, F13)-72/5])), =>(drs([J13, K13, L13], [object(J13, person, countable, na, eq, 1)-73/2, object(K13, dog, countable, na, eq, 1)-73/6, predicate(L13, like, J13, K13)-73/4]), drs([M13, N13], [object(M13, 'dog-liker', countable, na, eq, 1)-73/11, predicate(N13, be, J13, M13)-73/7])), object(H1, person, countable, na, eq, 1)-74/4, predicate(I1, be, named('Kevin'), H1)-74/2, predicate(J1, drive, named('Mick'), named('Q123-ABC'))-75/2, =>(drs([O13], [object(O13, van, countable, na, eq, 1)-76/2]), drs([P13, Q13], [object(P13, vehicle, countable, na, eq, 1)-76/5, predicate(Q13, be, O13, P13)-76/3])), =>(drs([R13], [object(R13, 'animal-lover', countable, na, eq, 1)-77/4]), drs([S13, T13, U13, V13], [object(S13, person, countable, na, eq, 1)-77/7, object(T13, thing, countable, na, geq, 3)-77/15, predicate(U13, 'has-as-pet', S13, T13)-77/11, predicate(V13, be, R13, S13)-77/5])), =>(drs([W13, X13, Y13], [object(W13, person, countable, na, eq, 1)-78/2, object(X13, thing, countable, na, geq, 3)-78/10, predicate(Y13, 'has-as-pet', W13, X13)-78/6]), drs([Z13, A14], [object(Z13, 'animal-lover', countable, na, eq, 1)-78/15, predicate(A14, be, W13, Z13)-78/11])), =>(drs([B14], [object(B14, 'bus-company', countable, na, eq, 1)-79/4]), drs([C14, D14], [object(C14, company, countable, na, eq, 1)-79/7, predicate(D14, be, B14, C14)-79/5])), =>(drs([E14, F14, G14, H14], [object(E14, something, dom, na, na, na)-80/2, relation(F14, of, E14)-80/3, object(F14, father, countable, na, eq, 1)-80/5, object(G14, something, dom, na, na, na)-80/7, predicate(H14, be, F14, G14)-80/6]), drs([I14, J14], [relation(I14, of, E14)-80/10, object(I14, parent, countable, na, eq, 1)-80/12, predicate(J14, be, I14, G14)-80/13])), =>(drs([K14], [object(K14, car, countable, na, eq, 1)-81/2]), drs([L14, M14], [object(L14, vehicle, countable, na, eq, 1)-81/5, predicate(M14, be, K14, L14)-81/3])), predicate(L1, 'has-as-pet', named('Joe'), K1)-82/4, object(K1, thing, countable, na, leq, 1)-82/8, object(M1, dog, countable, na, eq, 1)-83/4, predicate(N1, be, named('Fido'), M1)-83/2, object(O1, female, countable, na, eq, 1)-84/4, predicate(P1, be, named('Minnie'), O1)-84/2, =>(drs([N14], [object(N14, something, dom, na, na, na)-85/2, v(drs([O14, P14], [object(O14, animal, countable, na, eq, 1)-85/6, predicate(P14, be, N14, O14)-85/4]), drs([Q14, R14, S14], [object(Q14, part, countable, na, eq, 1)-85/11, object(R14, animal, countable, na, eq, 1)-85/14, relation(Q14, of, R14)-85/12, predicate(S14, be, N14, Q14)-85/9]))]), drs([], [-(drs([T14, U14], [object(T14, plant, countable, na, eq, 1)-85/18, predicate(U14, be, N14, T14)-85/15])), -(drs([V14, W14, X14], [object(V14, part, countable, na, eq, 1)-85/23, object(W14, plant, countable, na, eq, 1)-85/26, relation(V14, of, W14)-85/24, predicate(X14, be, N14, V14)-85/20]))])), =>(drs([Y14], [object(Y14, animal, countable, na, eq, 1)-86/2, -(drs([Z14, A15], [object(Z14, animal, countable, na, eq, 1)-86/8, predicate(A15, eat, Y14, Z14)-86/6])), -(drs([B15, C15, D15, E15, F15], [object(B15, something, dom, na, na, na)-86/15, object(C15, part, countable, na, eq, 1)-86/19, object(D15, animal, countable, na, eq, 1)-86/22, relation(C15, of, D15)-86/20, predicate(E15, be, B15, C15)-86/17, predicate(F15, eat, Y14, B15)-86/13]))]), drs([G15, H15], [object(G15, vegetarian, countable, na, eq, 1)-86/25, predicate(H15, be, Y14, G15)-86/23])), =>(drs([I15], [object(I15, vegetarian, countable, na, eq, 1)-87/2]), drs([J15, K15], [object(J15, animal, countable, na, eq, 1)-87/5, -(drs([L15, M15], [object(L15, animal, countable, na, eq, 1)-87/11, predicate(M15, eat, J15, L15)-87/9])), -(drs([N15, O15, P15, Q15, R15], [object(N15, something, dom, na, na, na)-87/18, object(O15, part, countable, na, eq, 1)-87/22, object(P15, animal, countable, na, eq, 1)-87/25, relation(O15, of, P15)-87/23, predicate(Q15, be, N15, O15)-87/20, predicate(R15, eat, J15, N15)-87/16])), predicate(K15, be, I15, J15)-87/3])), =>(drs([S15], [object(S15, bus, countable, na, eq, 1)-88/2]), drs([T15, U15], [object(T15, vehicle, countable, na, eq, 1)-88/5, predicate(U15, be, S15, T15)-88/3])), =>(drs([V15], [object(V15, broadsheet, countable, na, eq, 1)-89/2]), drs([W15, X15], [object(W15, newspaper, countable, na, eq, 1)-89/5, predicate(X15, be, V15, W15)-89/3])), relation(Q1, of, named('Minnie'))-90/2, object(Q1, pet, countable, na, eq, 1)-90/4, predicate(R1, be, Q1, named('Tom'))-90/5, object(S1, tabloid, countable, na, eq, 1)-91/4, predicate(T1, be, named('The-Sun'), S1)-91/2, =>(drs([Y15], [object(Y15, cat, countable, na, eq, 1)-92/2]), drs([], [-(drs([Z15, A16], [object(Z15, dog, countable, na, eq, 1)-92/5, predicate(A16, be, Y15, Z15)-92/3]))])), object(U1, cat, countable, na, eq, 1)-93/4, predicate(V1, be, named('Tibbs'), U1)-93/2, object(W1, van, countable, na, eq, 1)-94/4, predicate(X1, be, named('Q123-ABC'), W1)-94/2, =>(drs([B16], [object(B16, truck, countable, na, eq, 1)-95/2]), drs([C16, D16], [object(C16, vehicle, countable, na, eq, 1)-95/5, predicate(D16, be, B16, C16)-95/3])), =>(drs([E16], [object(E16, tabloid, countable, na, eq, 1)-96/2]), drs([F16, G16], [object(F16, newspaper, countable, na, eq, 1)-96/5, predicate(G16, be, E16, F16)-96/3])), object(Y1, duck, countable, na, eq, 1)-97/4, predicate(Z1, be, named('Dewey'), Y1)-97/2, =>(drs([H16, I16, J16], [object(H16, person, countable, na, eq, 1)-98/2, object(I16, van, countable, na, eq, 1)-98/6, predicate(J16, drive, H16, I16)-98/4]), drs([K16, L16], [object(K16, 'van-driver', countable, na, eq, 1)-98/11, predicate(L16, be, H16, K16)-98/7])), =>(drs([M16], [object(M16, 'van-driver', countable, na, eq, 1)-99/4]), drs([N16, O16, P16, Q16], [object(N16, person, countable, na, eq, 1)-99/7, object(O16, van, countable, na, eq, 1)-99/11, predicate(P16, drive, N16, O16)-99/9, predicate(Q16, be, M16, N16)-99/5])), object(A2, tiger, countable, na, eq, 1)-100/4, predicate(B2, be, named('Fluffy'), A2)-100/2, =>(drs([R16, S16, T16, U16], [object(R16, something, dom, na, na, na)-101/2, relation(S16, of, R16)-101/3, object(S16, mother, countable, na, eq, 1)-101/5, object(T16, something, dom, na, na, na)-101/7, predicate(U16, be, S16, T16)-101/6]), drs([V16, W16], [relation(V16, of, R16)-101/10, object(V16, parent, countable, na, eq, 1)-101/12, predicate(W16, be, V16, T16)-101/13])), object(C2, person, countable, na, eq, 1)-102/4, predicate(D2, be, named('Joe'), C2)-102/2, =>(drs([X16], [object(X16, magazine, countable, na, eq, 1)-103/2]), drs([Y16, Z16], [object(Y16, publication, countable, na, eq, 1)-103/5, predicate(Z16, be, X16, Y16)-103/3])), =>(drs([A17], [object(A17, cow, countable, na, eq, 1)-104/2]), drs([B17, C17], [object(B17, vegetarian, countable, na, eq, 1)-104/5, predicate(C17, be, A17, B17)-104/3])), =>(drs([D17], [object(D17, 'mad-cow', countable, na, eq, 1)-105/4]), drs([E17, F17, G17, H17, I17, J17, K17], [object(E17, cow, countable, na, eq, 1)-105/7, object(F17, brain, countable, na, eq, 1)-105/11, object(G17, part, countable, na, eq, 1)-105/15, object(H17, sheep, countable, na, eq, 1)-105/18, relation(G17, of, H17)-105/16, predicate(I17, be, F17, G17)-105/13, predicate(J17, eat, E17, F17)-105/9, predicate(K17, be, D17, E17)-105/5])), =>(drs([L17, M17, N17, O17, P17, Q17], [object(L17, cow, countable, na, eq, 1)-106/2, object(M17, brain, countable, na, eq, 1)-106/6, object(N17, part, countable, na, eq, 1)-106/10, object(O17, sheep, countable, na, eq, 1)-106/13, relation(N17, of, O17)-106/11, predicate(P17, be, M17, N17)-106/8, predicate(Q17, eat, L17, M17)-106/4]), drs([R17, S17], [object(R17, 'mad-cow', countable, na, eq, 1)-106/18, predicate(S17, be, L17, R17)-106/14])), =>(drs([T17, U17, V17, W17], [object(T17, something, dom, na, na, na)-107/2, object(U17, pet, countable, na, eq, 1)-107/6, object(V17, something, dom, na, na, na)-107/9, relation(U17, of, V17)-107/7, predicate(W17, be, T17, U17)-107/4]), drs([X17, Y17], [object(X17, animal, countable, na, eq, 1)-107/12, predicate(Y17, be, T17, X17)-107/10])), =>(drs([Z17], [object(Z17, driver, countable, na, eq, 1)-108/2]), drs([A18, B18, C18, D18], [object(A18, person, countable, na, eq, 1)-108/5, object(B18, vehicle, countable, na, eq, 1)-108/9, predicate(C18, drive, A18, B18)-108/7, predicate(D18, be, Z17, A18)-108/3])), =>(drs([E18, F18, G18], [object(E18, person, countable, na, eq, 1)-109/2, object(F18, vehicle, countable, na, eq, 1)-109/6, predicate(G18, drive, E18, F18)-109/4]), drs([H18, I18], [object(H18, driver, countable, na, eq, 1)-109/9, predicate(I18, be, E18, H18)-109/7])), =>(drs([J18, K18, L18, M18], [object(J18, something, dom, na, na, na)-110/2, object(K18, pet, countable, na, eq, 1)-110/6, object(L18, something, dom, na, na, na)-110/9, relation(K18, of, L18)-110/7, predicate(M18, be, J18, K18)-110/4]), drs([N18, O18], [object(N18, pet, countable, na, eq, 1)-110/12, predicate(O18, be, J18, N18)-110/10])), =>(drs([P18], [object(P18, pet, countable, na, eq, 1)-111/2]), drs([Q18, R18, S18], [object(Q18, pet, countable, na, eq, 1)-111/5, object(R18, something, dom, na, na, na)-111/8, relation(Q18, of, R18)-111/6, predicate(S18, be, P18, Q18)-111/3])), =>(drs([T18], [object(T18, newspaper, countable, na, eq, 1)-112/2]), drs([], [v(drs([U18, V18], [object(U18, broadsheet, countable, na, eq, 1)-112/5, predicate(V18, be, T18, U18)-112/3]), drs([W18, X18], [object(W18, tabloid, countable, na, eq, 1)-112/9, predicate(X18, be, T18, W18)-112/7]))])), =>(drs([Y18], [object(Y18, grass, countable, na, eq, 1)-113/2]), drs([Z18, A19], [object(Z18, plant, countable, na, eq, 1)-113/5, predicate(A19, be, Y18, Z18)-113/3])), =>(drs([B19, C19, D19, E19], [object(B19, person, countable, na, eq, 1)-114/2, object(C19, pet, countable, na, eq, 1)-114/4, relation(C19, of, B19)-114/3, object(D19, animal, countable, na, eq, 1)-114/7, predicate(E19, be, C19, D19)-114/5]), drs([F19, G19], [object(F19, 'pet-owner', countable, na, eq, 1)-114/12, predicate(G19, be, B19, F19)-114/8])), =>(drs([H19], [object(H19, 'pet-owner', countable, na, eq, 1)-115/4]), drs([I19, J19, K19, L19, M19], [object(I19, person, countable, na, eq, 1)-115/7, object(J19, pet, countable, na, eq, 1)-115/9, relation(J19, of, I19)-115/8, object(K19, animal, countable, na, eq, 1)-115/12, predicate(L19, be, J19, K19)-115/10, predicate(M19, be, H19, I19)-115/5])), =>(drs([N19], [object(N19, adult, countable, na, eq, 1)-116/2]), drs([], [-(drs([O19, P19], [object(O19, young, countable, na, eq, 1)-116/5, predicate(P19, be, N19, O19)-116/3]))])), object(E2, elderly, countable, na, eq, 1)-117/4, predicate(F2, be, named('Minnie'), E2)-117/2, object(G2, dog, countable, na, eq, 1)-118/4, predicate(H2, be, named('Rex'), G2)-118/2, =>(drs([Q19], [object(Q19, leaf, countable, na, eq, 1)-119/2]), drs([R19, S19, T19], [object(R19, part, countable, na, eq, 1)-119/5, object(S19, tree, countable, na, eq, 1)-119/8, relation(R19, of, S19)-119/6, predicate(T19, be, Q19, R19)-119/3])), object(I2, person, countable, na, eq, 1)-120/4, predicate(J2, be, named('Walt'), I2)-120/2, =>(drs([U19, V19, W19], [object(U19, something, dom, na, na, na)-121/2, object(V19, something, dom, na, na, na)-121/6, predicate(W19, 'has-as-pet', U19, V19)-121/5]), drs([X19, Y19], [object(X19, pet, countable, na, eq, 1)-121/11, relation(X19, of, U19)-121/12, predicate(Y19, be, V19, X19)-121/9])), =>(drs([Z19, A20, B20, C20], [object(Z19, something, dom, na, na, na)-122/2, object(A20, pet, countable, na, eq, 1)-122/5, object(B20, something, dom, na, na, na)-122/7, relation(A20, of, B20)-122/6, predicate(C20, be, Z19, A20)-122/3]), drs([D20], [predicate(D20, 'has-as-pet', B20, Z19)-122/12]))]).";;