Commit 4e551ed50f9e290b0330ebf2cefb0f7496ef1fc6

Authored by Wojciech Jaworski
1 parent 5569a92a

dostosowanie parsera do nowego podziału na moduły

integration/TODO 0 → 100644
  1 +- uporządkować położenie info_sentences i podzielić na część dotyczącą formatu i część dotyczącą korpusu
lexSemantics/TODO 0 → 100644
  1 +- sprawdzić czy disambiguate_senses nie wycina argumentów, ktore mogą być realizowane przez przyimki
  2 +- dodać do walencji preferencje selekcyjne nadrzędników symboli: dzień, godzina, rysunek itp.
  3 +- sprawdzić czy walencja nazw własnych jest dobrze zrobiona.
  4 +- trzeba zrobić słownik nazw własnych
  5 +- trzeba poprawić selekcję preferencji selecyjnych: jeśli podrzędnikiem jest zaimek nie muszą jawnie występować wśród sensów.
parser/LCGchart.ml
@@ -20,6 +20,8 @@ @@ -20,6 +20,8 @@
20 open Xstd 20 open Xstd
21 open LCGtypes 21 open LCGtypes
22 open Printf 22 open Printf
  23 +open ENIAMtokenizerTypes
  24 +open ENIAMlexSemanticsTypes
23 25
24 let make size = Array.make_matrix (size+1) (size+1) ([],0) 26 let make size = Array.make_matrix (size+1) (size+1) ([],0)
25 27
@@ -194,29 +196,31 @@ let is_dep_parsed = function @@ -194,29 +196,31 @@ let is_dep_parsed = function
194 | [LCGtypes.Bracket(false,false,LCGtypes.Tensor[LCGtypes.Atom "<conll_root>"]),_] -> true 196 | [LCGtypes.Bracket(false,false,LCGtypes.Tensor[LCGtypes.Atom "<conll_root>"]),_] -> true
195 | _ -> failwith "is_dep_parsed" 197 | _ -> failwith "is_dep_parsed"
196 198
197 -let get_parsed_term tokens chart = 199 +let get_parsed_term tokens lex_sems chart =
198 let n = last_node chart in 200 let n = last_node chart in
199 let l = Xlist.fold (find chart 0 n) [] (fun l -> function 201 let l = Xlist.fold (find chart 0 n) [] (fun l -> function
200 LCGtypes.Bracket(true,true,LCGtypes.Tensor[LCGtypes.Atom "<root>"]), sem -> (LCGtypes.Cut(LCGtypes.Tuple[sem])) :: l 202 LCGtypes.Bracket(true,true,LCGtypes.Tensor[LCGtypes.Atom "<root>"]), sem -> (LCGtypes.Cut(LCGtypes.Tuple[sem])) :: l
201 (* | LCGtypes.Bracket(true,true,LCGtypes.Tensor[LCGtypes.Atom "<ors-sentence>"]), sem -> (LCGtypes.Cut (LCGtypes.Tuple[sem])) :: l *) 203 (* | LCGtypes.Bracket(true,true,LCGtypes.Tensor[LCGtypes.Atom "<ors-sentence>"]), sem -> (LCGtypes.Cut (LCGtypes.Tuple[sem])) :: l *)
202 | _ -> l) in 204 | _ -> l) in
203 - let id = ExtArray.add tokens {PreTypes.empty_token with PreTypes.token=PreTypes.Lemma("<root>","interp",[])} in 205 + let id = ExtArray.add tokens {empty_token with token=Lemma("<root>","interp",[])} in
  206 + let _ = ExtArray.add lex_sems empty_lex_sem in
204 LCGtypes.Node{LCGrenderer.empty_node with 207 LCGtypes.Node{LCGrenderer.empty_node with
205 LCGtypes.pred="<root>"; 208 LCGtypes.pred="<root>";
206 LCGtypes.cat="interp"; 209 LCGtypes.cat="interp";
207 LCGtypes.id=id; 210 LCGtypes.id=id;
208 - LCGtypes.agf=WalTypes.NOSEM; 211 + LCGtypes.agf=ENIAMwalTypes.NOSEM;
209 LCGtypes.args=LCGrules.make_variant l} 212 LCGtypes.args=LCGrules.make_variant l}
210 213
211 -let get_dep_parsed_term tokens = function 214 +let get_dep_parsed_term tokens lex_sems = function
212 [LCGtypes.Bracket(false,false,LCGtypes.Tensor[LCGtypes.Atom "<conll_root>"]),sem] -> 215 [LCGtypes.Bracket(false,false,LCGtypes.Tensor[LCGtypes.Atom "<conll_root>"]),sem] ->
213 - let id = ExtArray.add tokens {PreTypes.empty_token with PreTypes.token=PreTypes.Lemma("<root>","interp",[])} in 216 + let id = ExtArray.add tokens {empty_token with token=Lemma("<root>","interp",[])} in
  217 + let _ = ExtArray.add lex_sems empty_lex_sem in
214 let l = [LCGtypes.Cut (LCGtypes.Tuple[sem])] in 218 let l = [LCGtypes.Cut (LCGtypes.Tuple[sem])] in
215 LCGtypes.Node{LCGrenderer.empty_node with 219 LCGtypes.Node{LCGrenderer.empty_node with
216 LCGtypes.pred="<root>"; 220 LCGtypes.pred="<root>";
217 LCGtypes.cat="interp"; 221 LCGtypes.cat="interp";
218 LCGtypes.id=id; 222 LCGtypes.id=id;
219 - LCGtypes.agf=WalTypes.NOSEM; 223 + LCGtypes.agf=ENIAMwalTypes.NOSEM;
220 LCGtypes.args=LCGrules.make_variant l} 224 LCGtypes.args=LCGrules.make_variant l}
221 | _ -> failwith "get_dep_parsed_term" 225 | _ -> failwith "get_dep_parsed_term"
222 226
parser/LCGlatexOf.ml
@@ -73,8 +73,8 @@ let rec linear_term c = function @@ -73,8 +73,8 @@ let rec linear_term c = function
73 "{\\left[\\begin{array}{ll}" ^ 73 "{\\left[\\begin{array}{ll}" ^
74 (String.concat "\\\\ " (Xlist.map (["PRED",Val t.pred;"CAT",Val t.cat;"ID",Val (string_of_int t.id);"WEIGHT",Val (string_of_float t.weight);"GS",t.gs;"ARGS",t.args] @ t.attrs) (fun (e,t) -> 74 (String.concat "\\\\ " (Xlist.map (["PRED",Val t.pred;"CAT",Val t.cat;"ID",Val (string_of_int t.id);"WEIGHT",Val (string_of_float t.weight);"GS",t.gs;"ARGS",t.args] @ t.attrs) (fun (e,t) ->
75 "\\text{" ^ (LatexMain.escape_string e) ^ "} & " ^ (linear_term 0 t)))) ^ "\\end{array}\\right]}" 75 "\\text{" ^ (LatexMain.escape_string e) ^ "} & " ^ (linear_term 0 t)))) ^ "\\end{array}\\right]}"
76 - | Morf m -> "\\text{" ^ LatexMain.escape_string (WalStringOf.morf m) ^ "}"  
77 - | Gf s -> "\\text{" ^ LatexMain.escape_string (WalStringOf.gf s) ^ "}" 76 + | Morf m -> "\\text{" ^ LatexMain.escape_string (ENIAMwalStringOf.morf m) ^ "}"
  77 + | Gf s -> "\\text{" ^ LatexMain.escape_string (ENIAMwalStringOf.gf s) ^ "}"
78 | Ref i -> "{\\bf ref}\\; " ^ string_of_int i 78 | Ref i -> "{\\bf ref}\\; " ^ string_of_int i
79 | Cut t -> "{\\bf cut}(" ^ linear_term 0 t ^ ")" 79 | Cut t -> "{\\bf cut}(" ^ linear_term 0 t ^ ")"
80 | Choice choices -> "{\\bf choice}(" ^ String.concat ";" (StringMap.fold choices [] (fun l ei t -> (sprintf "%s: %s" ei (linear_term 0 t)) :: l)) ^ ")" 80 | Choice choices -> "{\\bf choice}(" ^ String.concat ";" (StringMap.fold choices [] (fun l ei t -> (sprintf "%s: %s" ei (linear_term 0 t)) :: l)) ^ ")"
@@ -127,8 +127,8 @@ let rec linear_term_simple c = function @@ -127,8 +127,8 @@ let rec linear_term_simple c = function
127 | Apply t -> "{\\bf apply}(" ^ linear_term_simple 0 t ^ ")" 127 | Apply t -> "{\\bf apply}(" ^ linear_term_simple 0 t ^ ")"
128 | Insert(s,t) -> "{\\bf insert}(" ^ linear_term_simple 0 s ^ "," ^ linear_term_simple 0 t ^ ")" 128 | Insert(s,t) -> "{\\bf insert}(" ^ linear_term_simple 0 s ^ "," ^ linear_term_simple 0 t ^ ")"
129 | Node _ -> "node" 129 | Node _ -> "node"
130 - | Morf m -> "\\text{" ^ LatexMain.escape_string (WalStringOf.morf m) ^ "}"  
131 - | Gf s -> "\\text{" ^ LatexMain.escape_string (WalStringOf.gf s) ^ "}" 130 + | Morf m -> "\\text{" ^ LatexMain.escape_string (ENIAMwalStringOf.morf m) ^ "}"
  131 + | Gf s -> "\\text{" ^ LatexMain.escape_string (ENIAMwalStringOf.gf s) ^ "}"
132 | Ref i -> "{\\bf ref}\\; " ^ string_of_int i 132 | Ref i -> "{\\bf ref}\\; " ^ string_of_int i
133 | Cut t -> "{\\bf cut}(" ^ linear_term_simple 0 t ^ ")" 133 | Cut t -> "{\\bf cut}(" ^ linear_term_simple 0 t ^ ")"
134 | Choice choices -> "{\\bf choice}(" ^ String.concat ";" (StringMap.fold choices [] (fun l ei t -> (sprintf "%s: %s" ei (linear_term_simple 0 t)) :: l)) ^ ")" 134 | Choice choices -> "{\\bf choice}(" ^ String.concat ";" (StringMap.fold choices [] (fun l ei t -> (sprintf "%s: %s" ei (linear_term_simple 0 t)) :: l)) ^ ")"
parser/LCGlexicon.ml
@@ -17,8 +17,9 @@ @@ -17,8 +17,9 @@
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *) 18 *)
19 19
20 -open PreTypes  
21 -open WalTypes 20 +open ENIAMtokenizerTypes
  21 +open ENIAMwalTypes
  22 +open ENIAMlexSemanticsTypes
22 open LCGtypes 23 open LCGtypes
23 open Xstd 24 open Xstd
24 25
@@ -56,7 +57,7 @@ let check_frame_case cases = function @@ -56,7 +57,7 @@ let check_frame_case cases = function
56 | CaseUndef -> cases 57 | CaseUndef -> cases
57 | Case case -> if not (Xlist.mem cases case) then raise Not_found else [case] 58 | Case case -> if not (Xlist.mem cases case) then raise Not_found else [case]
58 | Str -> cases 59 | Str -> cases
59 - | case -> failwith ("check_frame_case: " ^ WalStringOf.case case) 60 + | case -> failwith ("check_frame_case: " ^ ENIAMwalStringOf.case case)
60 61
61 let check_frame_number numbers = function 62 let check_frame_number numbers = function
62 Number num -> if not (Xlist.mem numbers num) then raise Not_found else [num] 63 Number num -> if not (Xlist.mem numbers num) then raise Not_found else [num]
@@ -161,7 +162,7 @@ let objids = StringSet.of_list [&quot;rysunek&quot;] @@ -161,7 +162,7 @@ let objids = StringSet.of_list [&quot;rysunek&quot;]
161 let int_arg = [arg_schema_field Forward [Phrase(Null);Phrase(Lex "int")]] 162 let int_arg = [arg_schema_field Forward [Phrase(Null);Phrase(Lex "int")]]
162 163
163 164
164 -let create_entries tokens id (d:PreTypes.token_record) x_flag = 165 +let create_entries tokens lex_sems id (c:ENIAMtokenizerTypes.token_record) (d:ENIAMlexSemanticsTypes.lex_sem) x_flag =
165 166
166 let make_node lemma cat weight fnum l = 167 let make_node lemma cat weight fnum l =
167 let attrs,args = Xlist.fold l ([],[]) (fun (attrs,args) -> function 168 let attrs,args = Xlist.fold l ([],[]) (fun (attrs,args) -> function
@@ -199,9 +200,11 @@ let make_node lemma cat weight fnum l = @@ -199,9 +200,11 @@ let make_node lemma cat weight fnum l =
199 | "pos" -> ("GRAD", Val "pos") :: attrs, args 200 | "pos" -> ("GRAD", Val "pos") :: attrs, args
200 | "com" -> ("GRAD", Val "com") :: attrs, 201 | "com" -> ("GRAD", Val "com") :: attrs,
201 let id = ExtArray.add tokens {empty_token with token=Lemma("bardziej","adv",[])} in 202 let id = ExtArray.add tokens {empty_token with token=Lemma("bardziej","adv",[])} in
  203 + let _ = ExtArray.add lex_sems empty_lex_sem in
202 (Cut(Node{LCGrenderer.empty_node with pred="bardziej"; id=id; cat="adv"; agf=ADJUNCT; arole="Manner"; attrs=[(*"MEANING", Val "bardziej";*)"GRAD", Val "com"(*;"GF",Val "adjunct"*)]})) :: args (* FIXME: MEANING powinno być dodawane później *) 204 (Cut(Node{LCGrenderer.empty_node with pred="bardziej"; id=id; cat="adv"; agf=ADJUNCT; arole="Manner"; attrs=[(*"MEANING", Val "bardziej";*)"GRAD", Val "com"(*;"GF",Val "adjunct"*)]})) :: args (* FIXME: MEANING powinno być dodawane później *)
203 | "sup" -> ("GRAD", Val "sup") :: attrs, 205 | "sup" -> ("GRAD", Val "sup") :: attrs,
204 let id = ExtArray.add tokens {empty_token with token=Lemma("najbardziej","adv",[])} in 206 let id = ExtArray.add tokens {empty_token with token=Lemma("najbardziej","adv",[])} in
  207 + let _ = ExtArray.add lex_sems empty_lex_sem in
205 (Cut(Node{LCGrenderer.empty_node with pred="najbardziej"; id=id; cat="adv"; agf=ADJUNCT; arole="Manner"; attrs=[(*"MEANING", Val "najbardziej";*)"GRAD", Val "sup"(*;"GF",Val "adjunct"*)]})) :: args (* FIXME: MEANING powinno być dodawane później *) 208 (Cut(Node{LCGrenderer.empty_node with pred="najbardziej"; id=id; cat="adv"; agf=ADJUNCT; arole="Manner"; attrs=[(*"MEANING", Val "najbardziej";*)"GRAD", Val "sup"(*;"GF",Val "adjunct"*)]})) :: args (* FIXME: MEANING powinno być dodawane później *)
206 | "aff" -> attrs, args 209 | "aff" -> attrs, args
207 | "negation" -> ("NEG",Val "+") :: attrs, args 210 | "negation" -> ("NEG",Val "+") :: attrs, args
@@ -215,7 +218,7 @@ let make_node lemma cat weight fnum l = @@ -215,7 +218,7 @@ let make_node lemma cat weight fnum l =
215 args=if args = [] then Dot else Tuple(List.rev args)} in 218 args=if args = [] then Dot else Tuple(List.rev args)} in
216 219
217 (* FIXME: "Można było" - brakuje uzgodnienia rodzaju przymiotnika w przypadku predykatywnym, i ogólnie kontroli składniowej *) 220 (* FIXME: "Można było" - brakuje uzgodnienia rodzaju przymiotnika w przypadku predykatywnym, i ogólnie kontroli składniowej *)
218 -let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja siebie i się *) 221 +let make_np numbers cases genders persons (c:ENIAMtokenizerTypes.token_record) d lemma cat = (* FIXME: koreferencja siebie i się *)
219 if d.simple_valence = [] then print_endline "empty simple_valence"; 222 if d.simple_valence = [] then print_endline "empty simple_valence";
220 let numbers = expand_numbers numbers in 223 let numbers = expand_numbers numbers in
221 let cases = expand_cases cases in 224 let cases = expand_cases cases in
@@ -225,9 +228,9 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s @@ -225,9 +228,9 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s
225 "sg" -> 228 "sg" ->
226 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 229 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
227 let t = ["np"; "number"; "case"; "gender"; "person"] in 230 let t = ["np"; "number"; "case"; "gender"; "person"] in
228 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 231 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
229 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "obj-id")]]] in 232 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "obj-id")]]] in
230 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 233 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
231 | "pl" -> l 234 | "pl" -> l
232 | _ -> failwith "make_np") 235 | _ -> failwith "make_np")
233 else []) @ 236 else []) @
@@ -236,15 +239,15 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s @@ -236,15 +239,15 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s
236 "sg" -> 239 "sg" ->
237 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 240 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
238 let t = ["np"; "number"; "case"; "gender"; "person"] in 241 let t = ["np"; "number"; "case"; "gender"; "person"] in
239 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 242 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
240 let schema_list = [[schema_field CORE "Aposition" Both [Phrase(Lex "year")]]] in 243 let schema_list = [[schema_field CORE "Aposition" Both [Phrase(Lex "year")]]] in
241 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 244 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
242 | "pl" -> 245 | "pl" ->
243 let quant = ["number",d.e.number,["pl"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 246 let quant = ["number",d.e.number,["pl"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
244 let t = ["np"; "number"; "case"; "gender"; "person"] in 247 let t = ["np"; "number"; "case"; "gender"; "person"] in
245 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 248 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
246 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "year-interval")]]] in 249 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "year-interval")]]] in
247 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 250 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
248 | _ -> failwith "make_np") 251 | _ -> failwith "make_np")
249 else []) @ 252 else []) @
250 (if lemma = "wiek" then (* FIXME: "Aranżuje w XIX w." się nie parsuje, niewłaściwa reprezentacja sem dla XIX *) 253 (if lemma = "wiek" then (* FIXME: "Aranżuje w XIX w." się nie parsuje, niewłaściwa reprezentacja sem dla XIX *)
@@ -252,15 +255,15 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s @@ -252,15 +255,15 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s
252 "sg" -> 255 "sg" ->
253 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 256 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
254 let t = ["np"; "number"; "case"; "gender"; "person"] in 257 let t = ["np"; "number"; "case"; "gender"; "person"] in
255 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 258 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
256 let schema_list = [[schema_field CORE "Aposition" Both [Phrase(Lex "roman")]]] in 259 let schema_list = [[schema_field CORE "Aposition" Both [Phrase(Lex "roman")]]] in
257 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 260 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
258 | "pl" -> 261 | "pl" ->
259 let quant = ["number",d.e.number,["pl"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 262 let quant = ["number",d.e.number,["pl"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
260 let t = ["np"; "number"; "case"; "gender"; "person"] in 263 let t = ["np"; "number"; "case"; "gender"; "person"] in
261 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 264 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
262 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "roman-interval")]]] in 265 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "roman-interval")]]] in
263 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 266 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
264 | _ -> failwith "make_np") 267 | _ -> failwith "make_np")
265 else []) @ 268 else []) @
266 (if StringSet.mem months lemma then 269 (if StringSet.mem months lemma then
@@ -270,15 +273,15 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s @@ -270,15 +273,15 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s
270 "gen" -> 273 "gen" ->
271 let quant = ["number",d.e.number,["sg"];"case",d.e.case,["gen"];"gender",d.e.gender,genders; "person", d.e.person,persons] in 274 let quant = ["number",d.e.number,["sg"];"case",d.e.case,["gen"];"gender",d.e.gender,genders; "person", d.e.person,persons] in
272 let t = ["month-lex"] in 275 let t = ["month-lex"] in
273 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 276 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
274 let schema_list = [[schema_field CORE "Possesive" Forward [Phrase Null; Phrase(Lex "year"); Phrase(NP(Case "gen"))]]] in 277 let schema_list = [[schema_field CORE "Possesive" Forward [Phrase Null; Phrase(Lex "year"); Phrase(NP(Case "gen"))]]] in
275 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 278 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
276 | _ -> l) in 279 | _ -> l) in
277 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 280 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
278 let t = ["np"; "number"; "case"; "gender"; "person"] in 281 let t = ["np"; "number"; "case"; "gender"; "person"] in
279 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 282 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
280 let schema_list = [[schema_field CORE "Possesive" Forward [Phrase(Lex "year")]]] in 283 let schema_list = [[schema_field CORE "Possesive" Forward [Phrase(Lex "year")]]] in
281 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 284 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
282 | "pl" -> l 285 | "pl" -> l
283 | _ -> failwith "make_np") 286 | _ -> failwith "make_np")
284 else []) @ 287 else []) @
@@ -289,29 +292,29 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s @@ -289,29 +292,29 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s
289 "gen" -> 292 "gen" ->
290 let quant = ["number",d.e.number,["sg"];"case",d.e.case,["gen"];"gender",d.e.gender,genders; "person", d.e.person,persons] in 293 let quant = ["number",d.e.number,["sg"];"case",d.e.case,["gen"];"gender",d.e.gender,genders; "person", d.e.person,persons] in
291 let t = ["day-lex"] in 294 let t = ["day-lex"] in
292 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 295 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
293 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "date");Phrase(Lex "day");Phrase(Lex "day-month")]]] in 296 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "date");Phrase(Lex "day");Phrase(Lex "day-month")]]] in
294 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 297 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
295 | _ -> l) in 298 | _ -> l) in
296 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 299 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
297 let t = ["np"; "number"; "case"; "gender"; "person"] in 300 let t = ["np"; "number"; "case"; "gender"; "person"] in
298 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 301 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
299 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "date");Phrase(Lex "day");Phrase(Lex "day-month")]]] in 302 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "date");Phrase(Lex "day");Phrase(Lex "day-month")]]] in
300 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 303 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
301 | "pl" -> 304 | "pl" ->
302 (* let l = Xlist.fold cases l (fun l -> function 305 (* let l = Xlist.fold cases l (fun l -> function
303 "gen" -> 306 "gen" ->
304 let quant = ["number",d.e.number,["sg"];"case",d.e.case,["gen"];"gender",d.e.gender,genders; "person", d.e.person,persons] in 307 let quant = ["number",d.e.number,["sg"];"case",d.e.case,["gen"];"gender",d.e.gender,genders; "person", d.e.person,persons] in
305 let t = ["day-lex"] in 308 let t = ["day-lex"] in
306 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 309 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
307 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "date-interval");Phrase(Lex "day-interval");Phrase(Lex "day-month-interval")]]] in 310 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "date-interval");Phrase(Lex "day-interval");Phrase(Lex "day-month-interval")]]] in
308 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 311 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
309 | _ -> l) in*) 312 | _ -> l) in*)
310 let quant = ["number",d.e.number,["pl"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 313 let quant = ["number",d.e.number,["pl"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
311 let t = ["np"; "number"; "case"; "gender"; "person"] in 314 let t = ["np"; "number"; "case"; "gender"; "person"] in
312 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 315 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
313 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "date-interval");Phrase(Lex "day-interval");Phrase(Lex "day-month-interval")]]] in 316 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "date-interval");Phrase(Lex "day-interval");Phrase(Lex "day-month-interval")]]] in
314 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 317 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
315 | _ -> failwith "make_np") 318 | _ -> failwith "make_np")
316 else []) @ 319 else []) @
317 (if lemma = "godzina" then 320 (if lemma = "godzina" then
@@ -319,15 +322,15 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s @@ -319,15 +322,15 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s
319 "sg" -> 322 "sg" ->
320 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 323 let quant = ["number",d.e.number,["sg"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
321 let t = ["np"; "number"; "case"; "gender"; "person"] in 324 let t = ["np"; "number"; "case"; "gender"; "person"] in
322 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 325 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
323 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "hour");Phrase(Lex "hour-minute")]]] in 326 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "hour");Phrase(Lex "hour-minute")]]] in
324 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 327 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
325 | "pl" -> 328 | "pl" ->
326 let quant = ["number",d.e.number,["pl"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 329 let quant = ["number",d.e.number,["pl"];"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
327 let t = ["np"; "number"; "case"; "gender"; "person"] in 330 let t = ["np"; "number"; "case"; "gender"; "person"] in
328 - let batrs = make_node lemma cat (symbol_weight +. d.weight) 0 ["number"; "case"; "gender"; "person"] in 331 + let batrs = make_node lemma cat (symbol_weight +. c.weight) 0 ["number"; "case"; "gender"; "person"] in
329 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "hour-interval");Phrase(Lex "hour-minute-interval")]]] in 332 let schema_list = [[schema_field CORE "Aposition" Forward [Phrase(Lex "hour-interval");Phrase(Lex "hour-minute-interval")]]] in
330 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] @ l 333 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] @ l
331 | _ -> failwith "make_np") 334 | _ -> failwith "make_np")
332 else []) @ 335 else []) @
333 Xlist.fold d.simple_valence [] (fun l -> function 336 Xlist.fold d.simple_valence [] (fun l -> function
@@ -341,12 +344,12 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s @@ -341,12 +344,12 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s
341 let quant3 = ["number",d.e.number,numbers;"case",d.e.case,all_cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 344 let quant3 = ["number",d.e.number,numbers;"case",d.e.case,all_cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
342 let t = ["measure"; "number"; "case"; "gender"; "person"] in 345 let t = ["measure"; "number"; "case"; "gender"; "person"] in
343 let t3 = ["measure"; "sg"; "case"; "n2"; "person"] in (* UWAGA: number "sg" i gender "n2", żeby uzgadniać z podmiotem czasownika *) 346 let t3 = ["measure"; "sg"; "case"; "n2"; "person"] in (* UWAGA: number "sg" i gender "n2", żeby uzgadniać z podmiotem czasownika *)
344 - let batrs = make_node lemma cat (d.weight +. measure_weight) fnum (nsyn :: (WalStringOf.nsem nsem) :: ["number"; "case"; "gender"; "person"]) in  
345 - let batrs3 = make_node lemma cat (d.weight +. measure_weight) fnum (nsyn :: (WalStringOf.nsem nsem) :: ["number"; "gen"; "gender"; "person"]) in 347 + let batrs = make_node lemma cat (c.weight +. measure_weight) fnum (nsyn :: (ENIAMwalStringOf.nsem nsem) :: ["number"; "case"; "gender"; "person"]) in
  348 + let batrs3 = make_node lemma cat (c.weight +. measure_weight) fnum (nsyn :: (ENIAMwalStringOf.nsem nsem) :: ["number"; "gen"; "gender"; "person"]) in
346 let schema_list = [qub_inclusion;schema;num_congr] in 349 let schema_list = [qub_inclusion;schema;num_congr] in
347 let schema_list3 = [qub_inclusion;schema;num_rec] in 350 let schema_list3 = [qub_inclusion;schema;num_rec] in
348 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) ::  
349 - (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens quant3 schema_list3 t3 d batrs3] else []) @ l 351 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) ::
  352 + (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens lex_sems quant3 schema_list3 t3 d batrs3] else []) @ l
350 else 353 else
351 let persons = if cases = ["voc"] then ["sec"] else persons in 354 let persons = if cases = ["voc"] then ["sec"] else persons in
352 let quant = ["lemma",ge (),[];"number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 355 let quant = ["lemma",ge (),[];"number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
@@ -358,22 +361,22 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s @@ -358,22 +361,22 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s
358 let t3 = ["np"; "sg"; "case"; "n2"; "person"] in (* UWAGA: number "sg" i gender "n2", żeby uzgadniać z podmiotem czasownika *) 361 let t3 = ["np"; "sg"; "case"; "n2"; "person"] in (* UWAGA: number "sg" i gender "n2", żeby uzgadniać z podmiotem czasownika *)
359 let t5 = ["np"; "unumber"; "ucase"; "ugender"; "uperson"] in 362 let t5 = ["np"; "unumber"; "ucase"; "ugender"; "uperson"] in
360 let t6 = ["prepnp"; "lemma"; "ucase"] in 363 let t6 = ["prepnp"; "lemma"; "ucase"] in
361 - let batrs = make_node lemma cat d.weight fnum (nsyn :: (WalStringOf.nsem nsem) :: ["number"; "case"; "gender"; "person"]) in  
362 - let batrs2 = make_node lemma cat d.weight fnum ("nosem" :: nsyn :: (WalStringOf.nsem nsem) :: ["number"; "case"; "gender"; "person"]) in  
363 - let batrs3 = make_node lemma cat d.weight fnum (nsyn :: (WalStringOf.nsem nsem) :: ["number"; "gen"; "gender"; "person"]) in  
364 - let batrs4 = make_node lemma cat d.weight fnum ("nosem" :: nsyn :: (WalStringOf.nsem nsem) :: ["number"; "gen"; "gender"; "person"]) in 364 + let batrs = make_node lemma cat c.weight fnum (nsyn :: (ENIAMwalStringOf.nsem nsem) :: ["number"; "case"; "gender"; "person"]) in
  365 + let batrs2 = make_node lemma cat c.weight fnum ("nosem" :: nsyn :: (ENIAMwalStringOf.nsem nsem) :: ["number"; "case"; "gender"; "person"]) in
  366 + let batrs3 = make_node lemma cat c.weight fnum (nsyn :: (ENIAMwalStringOf.nsem nsem) :: ["number"; "gen"; "gender"; "person"]) in
  367 + let batrs4 = make_node lemma cat c.weight fnum ("nosem" :: nsyn :: (ENIAMwalStringOf.nsem nsem) :: ["number"; "gen"; "gender"; "person"]) in
365 let schema_list = [qub_inclusion;schema;num_congr] in 368 let schema_list = [qub_inclusion;schema;num_congr] in
366 let schema_list2 = [qub_inclusion;schema;num_congr;nosem_prep] in 369 let schema_list2 = [qub_inclusion;schema;num_congr;nosem_prep] in
367 let schema_list3 = [qub_inclusion;schema;num_rec] in 370 let schema_list3 = [qub_inclusion;schema;num_rec] in
368 let schema_list4 = [qub_inclusion;schema;num_rec;nosem_prep] in 371 let schema_list4 = [qub_inclusion;schema;num_rec;nosem_prep] in
369 let schema_list5 = [qub_inclusion;schema;noun_measure] in 372 let schema_list5 = [qub_inclusion;schema;noun_measure] in
370 let schema_list6 = [qub_inclusion;schema;noun_measure;nosem_uprep] in 373 let schema_list6 = [qub_inclusion;schema;noun_measure;nosem_uprep] in
371 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) ::  
372 - (LCGrenderer.make_frame x_flag tokens quant schema_list2 t2 d batrs2) ::  
373 - (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens quant3 schema_list3 t3 d batrs3] else []) @  
374 - (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens quant3 schema_list4 t2 d batrs4] else []) @  
375 - (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens quant5 schema_list5 t5 d batrs3] else []) @  
376 - (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens quant5 schema_list6 t6 d batrs4] else []) @ l) 374 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) ::
  375 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list2 t2 d batrs2) ::
  376 + (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens lex_sems quant3 schema_list3 t3 d batrs3] else []) @
  377 + (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens lex_sems quant3 schema_list4 t2 d batrs4] else []) @
  378 + (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens lex_sems quant5 schema_list5 t5 d batrs3] else []) @
  379 + (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens lex_sems quant5 schema_list6 t6 d batrs4] else []) @ l)
377 with Not_found -> l) 380 with Not_found -> l)
378 | fnum,Frame(AdjAtrs(_,case,_),schema) -> 381 | fnum,Frame(AdjAtrs(_,case,_),schema) ->
379 (try 382 (try
@@ -383,18 +386,18 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s @@ -383,18 +386,18 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s
383 let t = ["np"; "number"; "case"; "gender"; "person"] in 386 let t = ["np"; "number"; "case"; "gender"; "person"] in
384 let t2 = ["prepnp"; "lemma"; "case"] in 387 let t2 = ["prepnp"; "lemma"; "case"] in
385 let t3 = ["np"; "sg"; "case"; "n2"; "person"] in (* UWAGA: number "sg" i gender "n2", żeby uzgadniać z podmiotem czasownika *) 388 let t3 = ["np"; "sg"; "case"; "n2"; "person"] in (* UWAGA: number "sg" i gender "n2", żeby uzgadniać z podmiotem czasownika *)
386 - let batrs = make_node lemma cat d.weight fnum ["number"; "case"; "gender"; "person"] in  
387 - let batrs2 = make_node lemma cat d.weight fnum ["nosem"; "number"; "case"; "gender"; "person"] in  
388 - let batrs3 = make_node lemma cat d.weight fnum ["number"; "gen"; "gender"; "person"] in  
389 - let batrs4 = make_node lemma cat d.weight fnum ["nosem"; "number"; "gen"; "gender"; "person"] in 389 + let batrs = make_node lemma cat c.weight fnum ["number"; "case"; "gender"; "person"] in
  390 + let batrs2 = make_node lemma cat c.weight fnum ["nosem"; "number"; "case"; "gender"; "person"] in
  391 + let batrs3 = make_node lemma cat c.weight fnum ["number"; "gen"; "gender"; "person"] in
  392 + let batrs4 = make_node lemma cat c.weight fnum ["nosem"; "number"; "gen"; "gender"; "person"] in
390 let schema_list = [qub_inclusion;schema;num_congr] in 393 let schema_list = [qub_inclusion;schema;num_congr] in
391 let schema_list2 = [qub_inclusion;schema;num_congr;nosem_prep] in 394 let schema_list2 = [qub_inclusion;schema;num_congr;nosem_prep] in
392 let schema_list3 = [qub_inclusion;schema;num_rec] in 395 let schema_list3 = [qub_inclusion;schema;num_rec] in
393 let schema_list4 = [qub_inclusion;schema;num_rec;nosem_prep] in 396 let schema_list4 = [qub_inclusion;schema;num_rec;nosem_prep] in
394 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) ::  
395 - (LCGrenderer.make_frame x_flag tokens quant schema_list2 t2 d batrs2) ::  
396 - (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens quant3 schema_list3 t3 d batrs3] else []) @  
397 - (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens quant3 schema_list4 t2 d batrs4] else []) @ l 397 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) ::
  398 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list2 t2 d batrs2) ::
  399 + (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens lex_sems quant3 schema_list3 t3 d batrs3] else []) @
  400 + (if Xlist.mem cases "gen" then [LCGrenderer.make_frame x_flag tokens lex_sems quant3 schema_list4 t2 d batrs4] else []) @ l
398 with Not_found -> l) 401 with Not_found -> l)
399 | fnum,LexFrame(lid,SUBST(number,case),NoRestr,schema) -> 402 | fnum,LexFrame(lid,SUBST(number,case),NoRestr,schema) ->
400 (try 403 (try
@@ -402,32 +405,32 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s @@ -402,32 +405,32 @@ let make_np numbers cases genders persons d lemma cat = (* FIXME: koreferencja s
402 let numbers = check_frame_number numbers number in 405 let numbers = check_frame_number numbers number in
403 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in 406 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons] in
404 let t = ["lex";lid;lemma;"subst"; "number"; "case"; "gender"; "person"] in 407 let t = ["lex";lid;lemma;"subst"; "number"; "case"; "gender"; "person"] in
405 - let batrs = make_node lemma cat (lex_weight +. d.weight) fnum ["lex";"number"; "case"; "gender"; "person"] in 408 + let batrs = make_node lemma cat (lex_weight +. c.weight) fnum ["lex";"number"; "case"; "gender"; "person"] in
406 let schema_list = [[inclusion];schema] in 409 let schema_list = [[inclusion];schema] in
407 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 410 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
408 with Not_found -> l) 411 with Not_found -> l)
409 | fnum,LexFrame(_,ADJ _,_,_) -> l 412 | fnum,LexFrame(_,ADJ _,_,_) -> l
410 - | fnum,frame -> failwith ("make_np: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 413 + | fnum,frame -> failwith ("make_np: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
411 414
412 -let make_np_symbol d lemma cat = 415 +let make_np_symbol (c:ENIAMtokenizerTypes.token_record) d lemma cat =
413 Xlist.fold d.simple_valence [] (fun l -> function 416 Xlist.fold d.simple_valence [] (fun l -> function
414 fnum,Frame(NounAtrs(_,nsyn,nsem),schema) -> 417 fnum,Frame(NounAtrs(_,nsyn,nsem),schema) ->
415 let t = [cat] in 418 let t = [cat] in
416 - let batrs = make_node lemma cat (symbol_weight +. d.weight) fnum (nsyn :: (WalStringOf.nsem nsem) :: []) in 419 + let batrs = make_node lemma cat (symbol_weight +. c.weight) fnum (nsyn :: (ENIAMwalStringOf.nsem nsem) :: []) in
417 let schema_list = [schema] in 420 let schema_list = [schema] in
418 - (LCGrenderer.make_frame x_flag tokens [] schema_list t d batrs) :: l  
419 - | fnum,frame -> failwith ("make_np_symbol: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 421 + (LCGrenderer.make_frame x_flag tokens lex_sems [] schema_list t d batrs) :: l
  422 + | fnum,frame -> failwith ("make_np_symbol: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
420 423
421 -let make_day d lemma cat = 424 +let make_day (c:ENIAMtokenizerTypes.token_record) d lemma cat =
422 Xlist.fold d.simple_valence [] (fun l -> function 425 Xlist.fold d.simple_valence [] (fun l -> function
423 fnum,Frame(NounAtrs(_,nsyn,nsem),[]) -> 426 fnum,Frame(NounAtrs(_,nsyn,nsem),[]) ->
424 let t = [cat] in 427 let t = [cat] in
425 - let batrs = make_node lemma cat (symbol_weight +. d.weight) fnum (nsyn :: (WalStringOf.nsem nsem) :: []) in 428 + let batrs = make_node lemma cat (symbol_weight +. c.weight) fnum (nsyn :: (ENIAMwalStringOf.nsem nsem) :: []) in
426 let schema_list = [[schema_field CORE "Possesive" Forward [Phrase(Lex "month-lex")]]] in 429 let schema_list = [[schema_field CORE "Possesive" Forward [Phrase(Lex "month-lex")]]] in
427 - (LCGrenderer.make_frame x_flag tokens [] schema_list t d batrs) :: l  
428 - | fnum,frame -> failwith ("make_day: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 430 + (LCGrenderer.make_frame x_flag tokens lex_sems [] schema_list t d batrs) :: l
  431 + | fnum,frame -> failwith ("make_day: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
429 432
430 -let make_nump numbers cases genders persons acm d lemma cat = (* FIXME: liczba po rzeczowniku *) (* FIXME: zbadać jak liczebniki współdziałąją z jako COMPAR *) 433 +let make_nump numbers cases genders persons acm (c:ENIAMtokenizerTypes.token_record) d lemma cat = (* FIXME: liczba po rzeczowniku *) (* FIXME: zbadać jak liczebniki współdziałąją z jako COMPAR *)
431 let numbers = expand_numbers numbers in 434 let numbers = expand_numbers numbers in
432 let cases = expand_cases cases in 435 let cases = expand_cases cases in
433 let genders = expand_genders genders in 436 let genders = expand_genders genders in
@@ -435,14 +438,14 @@ let make_nump numbers cases genders persons acm d lemma cat = (* FIXME: liczba p @@ -435,14 +438,14 @@ let make_nump numbers cases genders persons acm d lemma cat = (* FIXME: liczba p
435 Xlist.map acm (function 438 Xlist.map acm (function
436 "rec" -> 439 "rec" ->
437 let t = ["num"; "number"; "case"; "gender"; "person"; "rec"] in 440 let t = ["num"; "number"; "case"; "gender"; "person"; "rec"] in
438 - let batrs = make_node lemma cat d.weight 0 ["rec"; "number"; "case"; "gender"; "person"] in 441 + let batrs = make_node lemma cat c.weight 0 ["rec"; "number"; "case"; "gender"; "person"] in
439 let schema_list = [qub_inclusion] in (* FIXME: jak usunięcie Phrase ProNG wpływa na pokrycie? *) 442 let schema_list = [qub_inclusion] in (* FIXME: jak usunięcie Phrase ProNG wpływa na pokrycie? *)
440 - LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs 443 + LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs
441 | "congr" -> 444 | "congr" ->
442 let t = ["num"; "number"; "case"; "gender"; "person"; "congr"] in 445 let t = ["num"; "number"; "case"; "gender"; "person"; "congr"] in
443 - let batrs = make_node lemma cat d.weight 0 ["congr"; "number"; "case"; "gender"; "person"] in 446 + let batrs = make_node lemma cat c.weight 0 ["congr"; "number"; "case"; "gender"; "person"] in
444 let schema_list = [qub_inclusion] in (* FIXME: jak usunięcie Phrase ProNG wpływa na pokrycie? *) 447 let schema_list = [qub_inclusion] in (* FIXME: jak usunięcie Phrase ProNG wpływa na pokrycie? *)
445 - LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs 448 + LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs
446 | _ -> failwith "make_nump: num acm") @ 449 | _ -> failwith "make_nump: num acm") @
447 Xlist.fold d.simple_valence [] (fun l -> function 450 Xlist.fold d.simple_valence [] (fun l -> function
448 fnum,LexFrame(lid,NUM(case,gender,acm2),NoRestr,schema) -> 451 fnum,LexFrame(lid,NUM(case,gender,acm2),NoRestr,schema) ->
@@ -454,78 +457,78 @@ let make_nump numbers cases genders persons acm d lemma cat = (* FIXME: liczba p @@ -454,78 +457,78 @@ let make_nump numbers cases genders persons acm d lemma cat = (* FIXME: liczba p
454 match acm with 457 match acm with
455 "rec" -> 458 "rec" ->
456 let t = ["lex";lid;lemma;"num"; "number"; "case"; "gender"; "person"] in (* UWAGA: Number "sg" i Gender "n2", żeby uzgadniać z podmiotem czasownika *) 459 let t = ["lex";lid;lemma;"num"; "number"; "case"; "gender"; "person"] in (* UWAGA: Number "sg" i Gender "n2", żeby uzgadniać z podmiotem czasownika *)
457 - let batrs = make_node lemma cat (lex_weight +. d.weight) fnum ["rec";"lex"; "number"; "case"; "gender"; "person"] in 460 + let batrs = make_node lemma cat (lex_weight +. c.weight) fnum ["rec";"lex"; "number"; "case"; "gender"; "person"] in
458 let schema_list = [[inclusion];schema] in 461 let schema_list = [[inclusion];schema] in
459 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 462 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
460 | "congr" -> 463 | "congr" ->
461 let t = ["lex";lid;lemma;"num"; "number"; "case"; "gender"; "person"] in 464 let t = ["lex";lid;lemma;"num"; "number"; "case"; "gender"; "person"] in
462 - let batrs = make_node lemma cat (lex_weight +. d.weight) fnum ["congr";"lex"; "number"; "case"; "gender"; "person"] in 465 + let batrs = make_node lemma cat (lex_weight +. c.weight) fnum ["congr";"lex"; "number"; "case"; "gender"; "person"] in
463 let schema_list = [[inclusion];schema] in 466 let schema_list = [[inclusion];schema] in
464 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 467 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
465 | _ -> failwith "make_nump: num acm" 468 | _ -> failwith "make_nump: num acm"
466 with Not_found -> l) 469 with Not_found -> l)
467 - | fnum,frame -> failwith ("make_num: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 470 + | fnum,frame -> failwith ("make_num: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
468 471
469 -let make_compar d lemma = 472 +let make_compar (c:ENIAMtokenizerTypes.token_record) d lemma =
470 let quant = ["case",d.e.case,["nom";"gen";"dat";"acc";"inst"]] in 473 let quant = ["case",d.e.case,["nom";"gen";"dat";"acc";"inst"]] in
471 let t = ["comparnp"; lemma; "case"] in 474 let t = ["comparnp"; lemma; "case"] in
472 let t2 = ["comparpp"; lemma] in 475 let t2 = ["comparpp"; lemma] in
473 - let batrs = make_node lemma "prep" d.weight 0 ["case"] in  
474 - let batrs2 = make_node lemma "prep" d.weight 0 [] in 476 + let batrs = make_node lemma "prep" c.weight 0 ["case"] in
  477 + let batrs2 = make_node lemma "prep" c.weight 0 [] in
475 let schema_list = [qub_inclusion;[adjunct_schema_field "Manner" Backward [Phrase Null;Phrase AdvP];prep_arg_schema_field [Phrase (NP(CaseAgr))]]] in 478 let schema_list = [qub_inclusion;[adjunct_schema_field "Manner" Backward [Phrase Null;Phrase AdvP];prep_arg_schema_field [Phrase (NP(CaseAgr))]]] in
476 let schema_list2 = [qub_inclusion;[adjunct_schema_field "Manner" Backward [Phrase Null;Phrase AdvP];prep_arg_schema_field [Phrase (PrepNP(Sem,"",CaseUndef));Phrase (PrepNumP(Sem,"",CaseUndef));Phrase (PrepAdjP(Sem,"",CaseUndef));Phrase (ComprepNP(Sem,""))]]] in 479 let schema_list2 = [qub_inclusion;[adjunct_schema_field "Manner" Backward [Phrase Null;Phrase AdvP];prep_arg_schema_field [Phrase (PrepNP(Sem,"",CaseUndef));Phrase (PrepNumP(Sem,"",CaseUndef));Phrase (PrepAdjP(Sem,"",CaseUndef));Phrase (ComprepNP(Sem,""))]]] in
477 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs;  
478 - LCGrenderer.make_frame x_flag tokens [] schema_list2 t2 d batrs2] in 480 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs;
  481 + LCGrenderer.make_frame x_flag tokens lex_sems [] schema_list2 t2 d batrs2] in
479 482
480 -let make_arg_prepp cases d lemma pcat phrase = 483 +let make_arg_prepp cases (c:ENIAMtokenizerTypes.token_record) d lemma pcat phrase =
481 let quant = ["case",d.e.case,expand_cases cases] in 484 let quant = ["case",d.e.case,expand_cases cases] in
482 let t = [pcat; lemma; "case"] in 485 let t = [pcat; lemma; "case"] in
483 - let batrs = make_node lemma "prep" d.weight 0 ["case"] in 486 + let batrs = make_node lemma "prep" c.weight 0 ["case"] in
484 let schema_list = [qub_inclusion;[adjunct_schema_field "Manner" Backward [Phrase Null;Phrase AdvP];prep_arg_schema_field [Phrase phrase]]] in 487 let schema_list = [qub_inclusion;[adjunct_schema_field "Manner" Backward [Phrase Null;Phrase AdvP];prep_arg_schema_field [Phrase phrase]]] in
485 - LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs in 488 + LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs in
486 489
487 -let make_prepnp cases d lemma = make_arg_prepp cases d lemma "prepnp" (NP(CaseAgr)) in  
488 -let make_prepnump cases d lemma = make_arg_prepp cases d lemma "prepnp" (NumP(CaseAgr)) in  
489 -let make_prepadjp cases d lemma = 490 +let make_prepnp cases (c:ENIAMtokenizerTypes.token_record) d lemma = make_arg_prepp cases c d lemma "prepnp" (NP(CaseAgr)) in
  491 +let make_prepnump cases (c:ENIAMtokenizerTypes.token_record) d lemma = make_arg_prepp cases c d lemma "prepnp" (NumP(CaseAgr)) in
  492 +let make_prepadjp cases (c:ENIAMtokenizerTypes.token_record) d lemma =
490 let cases = if lemma = "po" then "postp" :: cases else cases in 493 let cases = if lemma = "po" then "postp" :: cases else cases in
491 - make_arg_prepp cases d lemma "prepadjp" (AdjP(CaseAgr)) in 494 + make_arg_prepp cases c d lemma "prepadjp" (AdjP(CaseAgr)) in
492 495
493 -(*let make_prepp cases d lemma = 496 +(*let make_prepp cases c d lemma =
494 let quant = ["case",d.e.case,expand_cases cases] in 497 let quant = ["case",d.e.case,expand_cases cases] in
495 let t = ["prepp"; "case"] in 498 let t = ["prepp"; "case"] in
496 - let batrs = make_node lemma "prep" d.weight 0 ["case"] in 499 + let batrs = make_node lemma "prep" c.weight 0 ["case"] in
497 let schema_list = [qub_inclusion;[adjunct_schema_field "Manner" Backward [Phrase Null;Phrase AdvP];prep_arg_schema_field2 [Phrase (NP(CaseAgr));Phrase (NumP(CaseAgr));Phrase (AdjP(CaseAgr))]]] in 500 let schema_list = [qub_inclusion;[adjunct_schema_field "Manner" Backward [Phrase Null;Phrase AdvP];prep_arg_schema_field2 [Phrase (NP(CaseAgr));Phrase (NumP(CaseAgr));Phrase (AdjP(CaseAgr))]]] in
498 - LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs in*) 501 + LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs in*)
499 502
500 -let make_prep cases d lemma = 503 +let make_prep cases (c:ENIAMtokenizerTypes.token_record) d lemma =
501 let quant = ["case",d.e.case,expand_cases cases] in 504 let quant = ["case",d.e.case,expand_cases cases] in
502 let t = ["prep"; lemma; "case"] in 505 let t = ["prep"; lemma; "case"] in
503 - let batrs = make_node lemma "prep" d.weight 0 ["case"] in 506 + let batrs = make_node lemma "prep" c.weight 0 ["case"] in
504 let schema_list = [qub_inclusion] in 507 let schema_list = [qub_inclusion] in
505 - LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs in 508 + LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs in
506 509
507 -let make_time_prep2 case d lemma l = 510 +let make_time_prep2 case (c:ENIAMtokenizerTypes.token_record) d lemma l =
508 let quant = ["case",d.e.case,[case]] in 511 let quant = ["case",d.e.case,[case]] in
509 let t = ["prepnp"; lemma; "case"] in 512 let t = ["prepnp"; lemma; "case"] in
510 - let batrs = make_node lemma "prep" d.weight 0 ["case"] in 513 + let batrs = make_node lemma "prep" c.weight 0 ["case"] in
511 let schema_list = [qub_inclusion;[prep_arg_schema_field (Xlist.map l (fun s -> Phrase(Lex s)))]] in 514 let schema_list = [qub_inclusion;[prep_arg_schema_field (Xlist.map l (fun s -> Phrase(Lex s)))]] in
512 - LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs in 515 + LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs in
513 516
514 -let make_time_prep cases d lemma = 517 +let make_time_prep cases (c:ENIAMtokenizerTypes.token_record) d lemma =
515 Xlist.fold cases [] (fun l case -> 518 Xlist.fold cases [] (fun l case ->
516 match lemma,case with 519 match lemma,case with
517 - "z","gen" -> [make_time_prep2 case d lemma ["day-month";"day";"year";"date";"hour";"hour-minute"]] @ l  
518 - | "do","gen" -> [make_time_prep2 case d lemma ["day-month";"day";"year";"date";"hour";"hour-minute"]] @ l  
519 - | "na","acc" -> [make_time_prep2 case d lemma ["day-month";"day";"hour";"hour-minute"]] @ l  
520 - | "o","loc" -> [make_time_prep2 case d lemma ["hour";"hour-minute"]] @ l  
521 - | "od","gen" -> [make_time_prep2 case d lemma ["day-month";"day";"year";"date";"hour";"hour-minute"]] @ l  
522 - | "około","gen" -> [make_time_prep2 case d lemma ["day-month";"day";"year";"hour";"hour-minute"]] @ l  
523 - | "po","loc" -> [make_time_prep2 case d lemma ["day-month";"day";"year";"date";"hour";"hour-minute"]] @ l  
524 - | "przed","inst" -> [make_time_prep2 case d lemma ["day-month";"day";"year";"date";"hour";"hour-minute"]] @ l  
525 - | "w","loc" -> [make_time_prep2 case d lemma ["year"]] @ l 520 + "z","gen" -> [make_time_prep2 case c d lemma ["day-month";"day";"year";"date";"hour";"hour-minute"]] @ l
  521 + | "do","gen" -> [make_time_prep2 case c d lemma ["day-month";"day";"year";"date";"hour";"hour-minute"]] @ l
  522 + | "na","acc" -> [make_time_prep2 case c d lemma ["day-month";"day";"hour";"hour-minute"]] @ l
  523 + | "o","loc" -> [make_time_prep2 case c d lemma ["hour";"hour-minute"]] @ l
  524 + | "od","gen" -> [make_time_prep2 case c d lemma ["day-month";"day";"year";"date";"hour";"hour-minute"]] @ l
  525 + | "około","gen" -> [make_time_prep2 case c d lemma ["day-month";"day";"year";"hour";"hour-minute"]] @ l
  526 + | "po","loc" -> [make_time_prep2 case c d lemma ["day-month";"day";"year";"date";"hour";"hour-minute"]] @ l
  527 + | "przed","inst" -> [make_time_prep2 case c d lemma ["day-month";"day";"year";"date";"hour";"hour-minute"]] @ l
  528 + | "w","loc" -> [make_time_prep2 case c d lemma ["year"]] @ l
526 | _ -> l) in 529 | _ -> l) in
527 530
528 -let make_lex_prep cases d lemma = 531 +let make_lex_prep cases (c:ENIAMtokenizerTypes.token_record) d lemma =
529 let cases = expand_cases cases in 532 let cases = expand_cases cases in
530 Xlist.fold d.simple_valence [] (fun l -> function 533 Xlist.fold d.simple_valence [] (fun l -> function
531 | fnum,LexFrame(lid,PREP case,NoRestr,schema) -> 534 | fnum,LexFrame(lid,PREP case,NoRestr,schema) ->
@@ -533,26 +536,26 @@ let make_lex_prep cases d lemma = @@ -533,26 +536,26 @@ let make_lex_prep cases d lemma =
533 let cases = check_frame_case cases case in 536 let cases = check_frame_case cases case in
534 let quant = ["case",d.e.case,cases] in 537 let quant = ["case",d.e.case,cases] in
535 let t = ["lex";lid;lemma;"prep"; "case"] in 538 let t = ["lex";lid;lemma;"prep"; "case"] in
536 - let batrs = make_node lemma "prep" (lex_weight +. d.weight) fnum ["lex";"case"] in 539 + let batrs = make_node lemma "prep" (lex_weight +. c.weight) fnum ["lex";"case"] in
537 let schema_list = [[inclusion];schema] in 540 let schema_list = [[inclusion];schema] in
538 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 541 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
539 with Not_found -> l) 542 with Not_found -> l)
540 | fnum,ComprepFrame(new_lemma,PREP case,NoRestr,schema) -> 543 | fnum,ComprepFrame(new_lemma,PREP case,NoRestr,schema) ->
541 (try 544 (try
542 let cases = check_frame_case cases case in 545 let cases = check_frame_case cases case in
543 let quant = ["case",d.e.case,cases] in 546 let quant = ["case",d.e.case,cases] in
544 let t = ["comprepnp"; new_lemma] in 547 let t = ["comprepnp"; new_lemma] in
545 - let batrs = make_node new_lemma "prep" (lex_weight +. d.weight) fnum [] in 548 + let batrs = make_node new_lemma "prep" (lex_weight +. c.weight) fnum [] in
546 let schema_list = [[inclusion];schema] in 549 let schema_list = [[inclusion];schema] in
547 - let l = (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l in 550 + let l = (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l in
548 let t = ["prepp"; "case"] in 551 let t = ["prepp"; "case"] in
549 - let batrs = make_node new_lemma "prep" (lex_weight +. d.weight) fnum ["case"] in 552 + let batrs = make_node new_lemma "prep" (lex_weight +. c.weight) fnum ["case"] in
550 let schema_list = [[inclusion];schema] in 553 let schema_list = [[inclusion];schema] in
551 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 554 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
552 with Not_found -> l) 555 with Not_found -> l)
553 - | fnum,frame -> failwith ("make_lex_prep: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 556 + | fnum,frame -> failwith ("make_lex_prep: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
554 557
555 -let make_adjp numbers cases genders grads d lemma cat = (* FIXME: usunąć niektóre opcje dla roman i ordnum *) 558 +let make_adjp numbers cases genders grads (c:ENIAMtokenizerTypes.token_record) d lemma cat = (* FIXME: usunąć niektóre opcje dla roman i ordnum *)
556 let numbers = expand_numbers numbers in 559 let numbers = expand_numbers numbers in
557 let cases = expand_cases cases in 560 let cases = expand_cases cases in
558 let cases = if Xlist.mem cases "nom" then "pred" :: cases else cases in 561 let cases = if Xlist.mem cases "nom" then "pred" :: cases else cases in
@@ -565,21 +568,21 @@ let make_adjp numbers cases genders grads d lemma cat = (* FIXME: usunąć niekt @@ -565,21 +568,21 @@ let make_adjp numbers cases genders grads d lemma cat = (* FIXME: usunąć niekt
565 let quant = ["lemma",ge (),[];"number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders] in 568 let quant = ["lemma",ge (),[];"number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders] in
566 let t = ["adjp"; "number"; "case"; "gender"] in 569 let t = ["adjp"; "number"; "case"; "gender"] in
567 let t2 = ["prepadjp"; "lemma"; "case"] in 570 let t2 = ["prepadjp"; "lemma"; "case"] in
568 - let batrs = make_node lemma cat d.weight fnum (adjsyn :: grad :: ["number"; "case"; "gender"]) in  
569 - let batrs2 = make_node lemma cat d.weight fnum ("nosem" :: adjsyn :: grad :: ["number"; "case"; "gender"]) in 571 + let batrs = make_node lemma cat c.weight fnum (adjsyn :: grad :: ["number"; "case"; "gender"]) in
  572 + let batrs2 = make_node lemma cat c.weight fnum ("nosem" :: adjsyn :: grad :: ["number"; "case"; "gender"]) in
570 let schema_list = [if adjsyn = "pronoun" then [] else [adjunct_schema_field "Aposition" Backward [Phrase Null;Phrase Adja]];qub_inclusion;schema] in 573 let schema_list = [if adjsyn = "pronoun" then [] else [adjunct_schema_field "Aposition" Backward [Phrase Null;Phrase Adja]];qub_inclusion;schema] in
571 let schema_list2 = [if adjsyn = "pronoun" then [] else [adjunct_schema_field "Aposition" Backward [Phrase Null;Phrase Adja]];qub_inclusion;schema;nosem_prep] in 574 let schema_list2 = [if adjsyn = "pronoun" then [] else [adjunct_schema_field "Aposition" Backward [Phrase Null;Phrase Adja]];qub_inclusion;schema;nosem_prep] in
572 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) ::  
573 - (LCGrenderer.make_frame x_flag tokens quant schema_list2 t2 d batrs2) :: l 575 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) ::
  576 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list2 t2 d batrs2) :: l
574 with Not_found -> l) 577 with Not_found -> l)
575 | fnum,Frame(NounAtrs(_,nsyn,nsem),schema) -> 578 | fnum,Frame(NounAtrs(_,nsyn,nsem),schema) ->
576 (try 579 (try
577 let grad = match grads with [grad] -> grad | _ -> failwith "make_adjp: grad" in 580 let grad = match grads with [grad] -> grad | _ -> failwith "make_adjp: grad" in
578 let quant = ["lemma",ge (),[];"number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders] in 581 let quant = ["lemma",ge (),[];"number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders] in
579 let t = ["adjp"; "number"; "case"; "gender"] in 582 let t = ["adjp"; "number"; "case"; "gender"] in
580 - let batrs = make_node lemma cat d.weight fnum (nsyn :: (WalStringOf.nsem nsem) :: grad :: ["number"; "case"; "gender"]) in 583 + let batrs = make_node lemma cat c.weight fnum (nsyn :: (ENIAMwalStringOf.nsem nsem) :: grad :: ["number"; "case"; "gender"]) in
581 let schema_list = [if nsyn = "pronoun" then [] else [adjunct_schema_field "Aposition" Backward [Phrase Null;Phrase Adja]];qub_inclusion;schema] in 584 let schema_list = [if nsyn = "pronoun" then [] else [adjunct_schema_field "Aposition" Backward [Phrase Null;Phrase Adja]];qub_inclusion;schema] in
582 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 585 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
583 with Not_found -> l) 586 with Not_found -> l)
584 | fnum,LexFrame(lid,ADJ(number,case,gender,grad),NoRestr,schema) -> 587 | fnum,LexFrame(lid,ADJ(number,case,gender,grad),NoRestr,schema) ->
585 (try 588 (try
@@ -590,11 +593,11 @@ let make_adjp numbers cases genders grads d lemma cat = (* FIXME: usunąć niekt @@ -590,11 +593,11 @@ let make_adjp numbers cases genders grads d lemma cat = (* FIXME: usunąć niekt
590 let grad = match grads with [grad] -> grad | _ -> failwith "make_adjp: grad" in 593 let grad = match grads with [grad] -> grad | _ -> failwith "make_adjp: grad" in
591 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders] in 594 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders] in
592 let t = ["lex";lid;lemma;"adj"; "number"; "case"; "gender"] in 595 let t = ["lex";lid;lemma;"adj"; "number"; "case"; "gender"] in
593 - let batrs = make_node lemma cat (lex_weight +. d.weight) fnum [grad;"lex"; "number"; "case"; "gender"] in 596 + let batrs = make_node lemma cat (lex_weight +. c.weight) fnum [grad;"lex"; "number"; "case"; "gender"] in
594 let schema_list = [[inclusion];schema] in 597 let schema_list = [[inclusion];schema] in
595 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 598 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
596 with Not_found -> l) 599 with Not_found -> l)
597 - | fnum,frame -> failwith ("make_adjp: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 600 + | fnum,frame -> failwith ("make_adjp: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
598 601
599 let adv_relators = Xlist.fold [ 602 let adv_relators = Xlist.fold [
600 "jak","Attr",[Int;Rel]; 603 "jak","Attr",[Int;Rel];
@@ -609,18 +612,18 @@ let adv_relators = Xlist.fold [ @@ -609,18 +612,18 @@ let adv_relators = Xlist.fold [
609 "gdy","con",[Sub]; 612 "gdy","con",[Sub];
610 ] StringMap.empty (fun map (k,v,l) -> StringMap.add map k (v,l)) in 613 ] StringMap.empty (fun map (k,v,l) -> StringMap.add map k (v,l)) in
611 614
612 -let make_advp grads (d:PreTypes.token_record) lemma = 615 +let make_advp grads (c:ENIAMtokenizerTypes.token_record) d lemma =
613 (if StringMap.mem adv_relators lemma then 616 (if StringMap.mem adv_relators lemma then
614 let role,ctypes = StringMap.find adv_relators lemma in 617 let role,ctypes = StringMap.find adv_relators lemma in
615 List.flatten (Xlist.map ctypes (fun ctype -> 618 List.flatten (Xlist.map ctypes (fun ctype ->
616 - let ctype = WalStringOf.comp_type ctype in 619 + let ctype = ENIAMwalStringOf.comp_type ctype in
617 let quant = ["inumber",ge (),[];"igender",ge (),[];"iperson",ge (),[];"ctype",ge (),[ctype]] in 620 let quant = ["inumber",ge (),[];"igender",ge (),[];"iperson",ge (),[];"ctype",ge (),[ctype]] in
618 let t = ["cp"; "ctype"; lemma] in 621 let t = ["cp"; "ctype"; lemma] in
619 let sem_mods = ["CTYPE",SubstVar "ctype"] in 622 let sem_mods = ["CTYPE",SubstVar "ctype"] in
620 - let batrs = make_node lemma "adv" d.weight 0 [ctype] in 623 + let batrs = make_node lemma "adv" c.weight 0 [ctype] in
621 let raised_arg1 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["advp"])] in 624 let raised_arg1 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["advp"])] in
622 let schema_list = [if lemma = "jak" then [num_arg_schema_field [Phrase Null;(*Phrase ProNG;*) Phrase AdvP]] else [];[schema_field RAISED "" Forward raised_arg1]] in (* FIXME: dwa znaczenia jak: pytanie o cechę lub spójnik *) 625 let schema_list = [if lemma = "jak" then [num_arg_schema_field [Phrase Null;(*Phrase ProNG;*) Phrase AdvP]] else [];[schema_field RAISED "" Forward raised_arg1]] in (* FIXME: dwa znaczenia jak: pytanie o cechę lub spójnik *)
623 - let frame_advp = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 626 + let frame_advp = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
624 [frame_advp])) else []) @ 627 [frame_advp])) else []) @
625 Xlist.fold d.simple_valence [] (fun l -> function (* FIXME: sprawdzic czy adv_relators maja leksykalizacje i schematy *) 628 Xlist.fold d.simple_valence [] (fun l -> function (* FIXME: sprawdzic czy adv_relators maja leksykalizacje i schematy *)
626 fnum,Frame(EmptyAtrs _,schema) -> 629 fnum,Frame(EmptyAtrs _,schema) ->
@@ -628,9 +631,9 @@ let make_advp grads (d:PreTypes.token_record) lemma = @@ -628,9 +631,9 @@ let make_advp grads (d:PreTypes.token_record) lemma =
628 let grad = match grads with [grad] -> grad | _ -> failwith "make_advp: grad" in 631 let grad = match grads with [grad] -> grad | _ -> failwith "make_advp: grad" in
629 let quant = [] in 632 let quant = [] in
630 let t = ["advp"] in 633 let t = ["advp"] in
631 - let batrs = make_node lemma "adv" d.weight fnum [grad] in 634 + let batrs = make_node lemma "adv" c.weight fnum [grad] in
632 let schema_list = [[adjunct_schema_field "Aposition" Backward [Phrase Null;Phrase Adja]];qub_inclusion;schema] in 635 let schema_list = [[adjunct_schema_field "Aposition" Backward [Phrase Null;Phrase Adja]];qub_inclusion;schema] in
633 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 636 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
634 with Not_found -> l) 637 with Not_found -> l)
635 | fnum,LexFrame(lid,ADV grad,NoRestr,schema) -> 638 | fnum,LexFrame(lid,ADV grad,NoRestr,schema) ->
636 (try 639 (try
@@ -638,26 +641,26 @@ let make_advp grads (d:PreTypes.token_record) lemma = @@ -638,26 +641,26 @@ let make_advp grads (d:PreTypes.token_record) lemma =
638 let grad = match grads with [grad] -> grad | _ -> failwith "make_adjp: grad" in 641 let grad = match grads with [grad] -> grad | _ -> failwith "make_adjp: grad" in
639 let quant = [] in 642 let quant = [] in
640 let t = ["lex";lid;lemma;"adv"] in 643 let t = ["lex";lid;lemma;"adv"] in
641 - let batrs = make_node lemma "adv" (lex_weight +. d.weight) fnum [grad;"lex"] in 644 + let batrs = make_node lemma "adv" (lex_weight +. c.weight) fnum [grad;"lex"] in
642 let schema_list = [[inclusion];schema] in 645 let schema_list = [[inclusion];schema] in
643 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 646 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
644 with Not_found -> l) 647 with Not_found -> l)
645 | fnum,ComprepFrame(new_lemma,ADV grad,NoRestr,schema) -> 648 | fnum,ComprepFrame(new_lemma,ADV grad,NoRestr,schema) ->
646 (try 649 (try
647 let _ = check_frame_grad grads grad in 650 let _ = check_frame_grad grads grad in
648 let quant = [] in 651 let quant = [] in
649 let t = ["comprepnp"; new_lemma] in 652 let t = ["comprepnp"; new_lemma] in
650 - let batrs = make_node new_lemma "adv" (lex_weight +. d.weight) fnum [] in 653 + let batrs = make_node new_lemma "adv" (lex_weight +. c.weight) fnum [] in
651 let schema_list = [[inclusion];schema] in 654 let schema_list = [[inclusion];schema] in
652 - let l = (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l in (* FIXME: nieprzetestowane *) 655 + let l = (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l in (* FIXME: nieprzetestowane *)
653 let t = ["prepp"; "gen"] in (* FIXME: przypadek nie jest znany *) 656 let t = ["prepp"; "gen"] in (* FIXME: przypadek nie jest znany *)
654 - let batrs = make_node new_lemma "adv" (lex_weight +. d.weight) fnum [] in 657 + let batrs = make_node new_lemma "adv" (lex_weight +. c.weight) fnum [] in
655 let schema_list = [[inclusion];schema] in 658 let schema_list = [[inclusion];schema] in
656 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 659 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
657 with Not_found -> l) 660 with Not_found -> l)
658 - | fnum,frame -> failwith ("make_advp: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 661 + | fnum,frame -> failwith ("make_advp: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
659 662
660 -let make_ger numbers cases genders persons aspects negations d lemma cat = 663 +let make_ger numbers cases genders persons aspects negations (c:ENIAMtokenizerTypes.token_record) d lemma cat =
661 let numbers = expand_numbers numbers in 664 let numbers = expand_numbers numbers in
662 let cases = expand_cases cases in 665 let cases = expand_cases cases in
663 let genders = expand_genders genders in 666 let genders = expand_genders genders in
@@ -668,9 +671,9 @@ let make_ger numbers cases genders persons aspects negations d lemma cat = @@ -668,9 +671,9 @@ let make_ger numbers cases genders persons aspects negations d lemma cat =
668 let negation = check_frame_negation negations negation in 671 let negation = check_frame_negation negations negation in
669 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons; "aspect",d.e.aspect,aspects] in 672 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons; "aspect",d.e.aspect,aspects] in
670 let t = ["np"; "number"; "case"; "gender"; "person"] in 673 let t = ["np"; "number"; "case"; "gender"; "person"] in
671 - let batrs = make_node new_lemma cat d.weight fnum [negation;"aspect";"number"; "case"; "gender"; "person"] in 674 + let batrs = make_node new_lemma cat c.weight fnum [negation;"aspect";"number"; "case"; "gender"; "person"] in
672 let schema_list = [qub_inclusion;schema] in 675 let schema_list = [qub_inclusion;schema] in
673 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 676 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
674 with Not_found -> l) 677 with Not_found -> l)
675 | fnum,LexFrame(lid,GER(number,case,gender,aspect,negation,ReflEmpty),NoRestr,schema) -> 678 | fnum,LexFrame(lid,GER(number,case,gender,aspect,negation,ReflEmpty),NoRestr,schema) ->
676 (try 679 (try
@@ -681,13 +684,13 @@ let make_ger numbers cases genders persons aspects negations d lemma cat = @@ -681,13 +684,13 @@ let make_ger numbers cases genders persons aspects negations d lemma cat =
681 let negation = check_frame_negation negations negation in 684 let negation = check_frame_negation negations negation in
682 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons; "aspect",d.e.aspect,aspects] in 685 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "person", d.e.person,persons; "aspect",d.e.aspect,aspects] in
683 let t = ["lex";lid;lemma;"ger"; "number"; "case"; "gender"; "person"] in 686 let t = ["lex";lid;lemma;"ger"; "number"; "case"; "gender"; "person"] in
684 - let batrs = make_node lemma cat (lex_weight +. d.weight) fnum [negation;"aspect";"lex"; "number"; "case"; "gender"; "person"] in 687 + let batrs = make_node lemma cat (lex_weight +. c.weight) fnum [negation;"aspect";"lex"; "number"; "case"; "gender"; "person"] in
685 let schema_list = [[inclusion];schema] in 688 let schema_list = [[inclusion];schema] in
686 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 689 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
687 with Not_found -> l) 690 with Not_found -> l)
688 - | fnum,frame -> failwith ("make_ger: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 691 + | fnum,frame -> failwith ("make_ger: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
689 692
690 -let make_padj numbers cases genders aspects negations d lemma cat = 693 +let make_padj numbers cases genders aspects negations (c:ENIAMtokenizerTypes.token_record) d lemma cat =
691 let numbers = expand_numbers numbers in 694 let numbers = expand_numbers numbers in
692 let cases = expand_cases cases in 695 let cases = expand_cases cases in
693 let cases = if Xlist.mem cases "nom" || cat = "ppas" then "pred" :: cases else cases in 696 let cases = if Xlist.mem cases "nom" || cat = "ppas" then "pred" :: cases else cases in
@@ -699,9 +702,9 @@ let make_padj numbers cases genders aspects negations d lemma cat = @@ -699,9 +702,9 @@ let make_padj numbers cases genders aspects negations d lemma cat =
699 let negation = check_frame_negation negations negation in 702 let negation = check_frame_negation negations negation in
700 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "aspect",d.e.aspect,aspects] in 703 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "aspect",d.e.aspect,aspects] in
701 let t = ["adjp"; "number"; "case"; "gender"] in 704 let t = ["adjp"; "number"; "case"; "gender"] in
702 - let batrs = make_node new_lemma cat d.weight fnum [negation;"aspect";"number"; "case"; "gender"] in 705 + let batrs = make_node new_lemma cat c.weight fnum [negation;"aspect";"number"; "case"; "gender"] in
703 let schema_list = [qub_inclusion;schema] in 706 let schema_list = [qub_inclusion;schema] in
704 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 707 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
705 with Not_found -> l) 708 with Not_found -> l)
706 | fnum,LexFrame(lid,PACT(number,case,gender,aspect,negation,ReflEmpty),NoRestr,schema) -> 709 | fnum,LexFrame(lid,PACT(number,case,gender,aspect,negation,ReflEmpty),NoRestr,schema) ->
707 (try 710 (try
@@ -712,9 +715,9 @@ let make_padj numbers cases genders aspects negations d lemma cat = @@ -712,9 +715,9 @@ let make_padj numbers cases genders aspects negations d lemma cat =
712 let genders = check_frame_gender genders gender in 715 let genders = check_frame_gender genders gender in
713 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "aspect",d.e.aspect,aspects] in 716 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "aspect",d.e.aspect,aspects] in
714 let t = ["lex";lid;lemma;"pact"; "number"; "case"; "gender"] in 717 let t = ["lex";lid;lemma;"pact"; "number"; "case"; "gender"] in
715 - let batrs = make_node lemma cat (lex_weight +. d.weight) fnum [negation;"lex";"aspect"; "number"; "case"; "gender"] in 718 + let batrs = make_node lemma cat (lex_weight +. c.weight) fnum [negation;"lex";"aspect"; "number"; "case"; "gender"] in
716 let schema_list = [[inclusion];schema] in 719 let schema_list = [[inclusion];schema] in
717 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 720 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
718 with Not_found -> l) 721 with Not_found -> l)
719 | fnum,LexFrame(lid,PPAS(number,case,gender,aspect,negation),NoRestr,schema) -> 722 | fnum,LexFrame(lid,PPAS(number,case,gender,aspect,negation),NoRestr,schema) ->
720 (try 723 (try
@@ -725,13 +728,13 @@ let make_padj numbers cases genders aspects negations d lemma cat = @@ -725,13 +728,13 @@ let make_padj numbers cases genders aspects negations d lemma cat =
725 let genders = check_frame_gender genders gender in 728 let genders = check_frame_gender genders gender in
726 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "aspect",d.e.aspect,aspects] in 729 let quant = ["number",d.e.number,numbers;"case",d.e.case,cases;"gender",d.e.gender,genders; "aspect",d.e.aspect,aspects] in
727 let t = ["lex";lid;lemma;"ppas"; "number"; "case"; "gender"] in 730 let t = ["lex";lid;lemma;"ppas"; "number"; "case"; "gender"] in
728 - let batrs = make_node lemma cat (lex_weight +. d.weight) fnum [negation;"lex";"aspect"; "number"; "case"; "gender"] in 731 + let batrs = make_node lemma cat (lex_weight +. c.weight) fnum [negation;"lex";"aspect"; "number"; "case"; "gender"] in
729 let schema_list = [[inclusion];schema] in 732 let schema_list = [[inclusion];schema] in
730 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 733 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
731 with Not_found -> l) 734 with Not_found -> l)
732 - | fnum,frame -> failwith ("make_padj: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 735 + | fnum,frame -> failwith ("make_padj: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
733 736
734 -let make_ip numbers genders persons aspects aglt aux2 d lemma cat = 737 +let make_ip numbers genders persons aspects aglt aux2 (c:ENIAMtokenizerTypes.token_record) d lemma cat =
735 let numbers = expand_numbers numbers in 738 let numbers = expand_numbers numbers in
736 let genders = expand_genders genders in 739 let genders = expand_genders genders in
737 Xlist.fold d.simple_valence [] (fun l -> function 740 Xlist.fold d.simple_valence [] (fun l -> function
@@ -742,29 +745,29 @@ let make_ip numbers genders persons aspects aglt aux2 d lemma cat = @@ -742,29 +745,29 @@ let make_ip numbers genders persons aspects aglt aux2 d lemma cat =
742 let aspects = check_frame_aspect aspects aspect in 745 let aspects = check_frame_aspect aspects aspect in
743 let quant = ["number",d.e.number,numbers;"gender",d.e.gender,genders; "person", d.e.person,persons; "aspect",d.e.aspect,aspects] in 746 let quant = ["number",d.e.number,numbers;"gender",d.e.gender,genders; "person", d.e.person,persons; "aspect",d.e.aspect,aspects] in
744 let t = ["ip"; "number"; "gender"; "person"] in 747 let t = ["ip"; "number"; "gender"; "person"] in
745 - let batrs = make_node new_lemma cat d.weight fnum ([mood;tense;"aspect"; "number"; "gender"; "person"] @ if negation = Aff then [] else ["negation"]) in 748 + let batrs = make_node new_lemma cat c.weight fnum ([mood;tense;"aspect"; "number"; "gender"; "person"] @ if negation = Aff then [] else ["negation"]) in
746 let cond_arg = match mood with "conditional" -> [nosem_schema_field Both [Phrase(Lex "by")]] | "" -> failwith "make_ip" | _ -> [] in 749 let cond_arg = match mood with "conditional" -> [nosem_schema_field Both [Phrase(Lex "by")]] | "" -> failwith "make_ip" | _ -> [] in
747 let aglt_arg = if aglt then [nosem_schema_field Both [Phrase Aglt]] else [] in 750 let aglt_arg = if aglt then [nosem_schema_field Both [Phrase Aglt]] else [] in
748 let aux_arg = match aux with PastAux -> [nosem_schema_field Both [Phrase AuxPast]] | FutAux -> [nosem_schema_field Both [Phrase AuxFut]] | ImpAux -> [nosem_schema_field Both [Phrase AuxImp]] | NoAux -> [] in 751 let aux_arg = match aux with PastAux -> [nosem_schema_field Both [Phrase AuxPast]] | FutAux -> [nosem_schema_field Both [Phrase AuxFut]] | ImpAux -> [nosem_schema_field Both [Phrase AuxImp]] | NoAux -> [] in
749 let schema_list = [if negation = Aff then [] else [nosem_schema_field Backward [Phrase(Lex "nie")]]; 752 let schema_list = [if negation = Aff then [] else [nosem_schema_field Backward [Phrase(Lex "nie")]];
750 qub_inclusion; 753 qub_inclusion;
751 aglt_arg @ aux_arg @ cond_arg @ schema @ int_arg] in 754 aglt_arg @ aux_arg @ cond_arg @ schema @ int_arg] in
752 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 755 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
753 with Not_found -> l) 756 with Not_found -> l)
754 - | fnum,frame -> failwith ("make_ip 1: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 757 + | fnum,frame -> failwith ("make_ip 1: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
755 758
756 759
757 -let make_infp aspects d lemma = 760 +let make_infp aspects (c:ENIAMtokenizerTypes.token_record) d lemma =
758 Xlist.fold d.simple_valence [] (fun l -> function 761 Xlist.fold d.simple_valence [] (fun l -> function
759 fnum,Frame(NonPersAtrs(_,new_lemma,role,role_attr,negation,aspect),schema) -> 762 fnum,Frame(NonPersAtrs(_,new_lemma,role,role_attr,negation,aspect),schema) ->
760 (try 763 (try
761 let aspects = check_frame_aspect aspects aspect in 764 let aspects = check_frame_aspect aspects aspect in
762 let quant = ["aspect",d.e.aspect,aspects] in 765 let quant = ["aspect",d.e.aspect,aspects] in
763 let t = ["infp"; "aspect"] in 766 let t = ["infp"; "aspect"] in
764 - let batrs = make_node new_lemma "inf" d.weight fnum (["aspect"] @ if negation = Aff then [] else ["negation"]) in 767 + let batrs = make_node new_lemma "inf" c.weight fnum (["aspect"] @ if negation = Aff then [] else ["negation"]) in
765 let schema_list = [if negation = Aff then [] else [nosem_schema_field Backward [Phrase(Lex "nie")]]; 768 let schema_list = [if negation = Aff then [] else [nosem_schema_field Backward [Phrase(Lex "nie")]];
766 qub_inclusion;schema] in 769 qub_inclusion;schema] in
767 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 770 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
768 with Not_found -> l) 771 with Not_found -> l)
769 | fnum,LexFrame(lid,INF(aspect,negation,refl),NoRestr,schema) -> 772 | fnum,LexFrame(lid,INF(aspect,negation,refl),NoRestr,schema) ->
770 (try 773 (try
@@ -772,69 +775,69 @@ let make_infp aspects d lemma = @@ -772,69 +775,69 @@ let make_infp aspects d lemma =
772 let quant = ["aspect",d.e.aspect,aspects] in 775 let quant = ["aspect",d.e.aspect,aspects] in
773 let t = ["lex";lid;lemma;"inf"; "aspect"] in 776 let t = ["lex";lid;lemma;"inf"; "aspect"] in
774 let new_lemma,schema = if refl = ReflEmpty then lemma, schema else lemma ^ " się", nosem_refl_schema_field :: schema in 777 let new_lemma,schema = if refl = ReflEmpty then lemma, schema else lemma ^ " się", nosem_refl_schema_field :: schema in
775 - let batrs = make_node new_lemma "inf" (lex_weight +. d.weight) fnum (["lex";"aspect"] @ if negation = Aff then [] else ["negation"]) in 778 + let batrs = make_node new_lemma "inf" (lex_weight +. c.weight) fnum (["lex";"aspect"] @ if negation = Aff then [] else ["negation"]) in
776 let schema_list = [if negation = Aff then [] else [nosem_schema_field Backward [Phrase(Lex "nie")]]; 779 let schema_list = [if negation = Aff then [] else [nosem_schema_field Backward [Phrase(Lex "nie")]];
777 [inclusion];schema] in 780 [inclusion];schema] in
778 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 781 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
779 with Not_found -> l) 782 with Not_found -> l)
780 - | fnum,frame -> failwith ("make_infp: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 783 + | fnum,frame -> failwith ("make_infp: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
781 784
782 -let make_padvp aspects d lemma cat = 785 +let make_padvp aspects (c:ENIAMtokenizerTypes.token_record) d lemma cat =
783 Xlist.fold d.simple_valence [] (fun l -> function 786 Xlist.fold d.simple_valence [] (fun l -> function
784 fnum,Frame(NonPersAtrs(_,new_lemma,role,role_attr,negation,aspect),schema) -> 787 fnum,Frame(NonPersAtrs(_,new_lemma,role,role_attr,negation,aspect),schema) ->
785 (try 788 (try
786 let aspects = check_frame_aspect aspects aspect in 789 let aspects = check_frame_aspect aspects aspect in
787 let quant = ["aspect",d.e.aspect,aspects] in 790 let quant = ["aspect",d.e.aspect,aspects] in
788 let t = ["padvp"] in 791 let t = ["padvp"] in
789 - let batrs = make_node new_lemma cat d.weight fnum (["aspect"] @ if negation = Aff then [] else ["negation"]) in 792 + let batrs = make_node new_lemma cat c.weight fnum (["aspect"] @ if negation = Aff then [] else ["negation"]) in
790 let schema_list = [if negation = Aff then [] else [nosem_schema_field Backward [Phrase(Lex "nie")]]; 793 let schema_list = [if negation = Aff then [] else [nosem_schema_field Backward [Phrase(Lex "nie")]];
791 qub_inclusion;schema] in 794 qub_inclusion;schema] in
792 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 795 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
793 with Not_found -> l) 796 with Not_found -> l)
794 - | fnum,frame -> failwith ("make_padvp: " ^ lemma ^ ": " ^ WalStringOf.frame lemma frame)) in 797 + | fnum,frame -> failwith ("make_padvp: " ^ lemma ^ ": " ^ ENIAMwalStringOf.frame lemma frame)) in
795 798
796 -let make_conjunct (d:PreTypes.token_record) lemma cat = (* FIXME: poprawić semantykę *) 799 +let make_conjunct (c:ENIAMtokenizerTypes.token_record) d lemma cat = (* FIXME: poprawić semantykę *)
797 let ctype = if cat = "comp" then "sub" else if cat = "conj" then "coord" else failwith "make_conjunct" in 800 let ctype = if cat = "comp" then "sub" else if cat = "conj" then "coord" else failwith "make_conjunct" in
798 let quant = [] in 801 let quant = [] in
799 let t = ["cp"; ctype; lemma] in 802 let t = ["cp"; ctype; lemma] in
800 - let batrs = make_node lemma cat d.weight 0 [ctype] in 803 + let batrs = make_node lemma cat c.weight 0 [ctype] in
801 let schema_list = [[comp_arg_schema_field [Phrase IP]]] in 804 let schema_list = [[comp_arg_schema_field [Phrase IP]]] in
802 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] in 805 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs] in
803 806
804 (* FIXME: uzgadniania HIPERO i SELPREFS *) 807 (* FIXME: uzgadniania HIPERO i SELPREFS *)
805 -let make_conj f d lemma = 808 +let make_conj f (c:ENIAMtokenizerTypes.token_record) d lemma =
806 (if f then 809 (if f then
807 [LCGrenderer.make_conj_frame 810 [LCGrenderer.make_conj_frame
808 ["number",d.e.number,all_numbers;"gender",d.e.gender,all_genders;"person",d.e.person,all_persons] 811 ["number",d.e.number,all_numbers;"gender",d.e.gender,all_genders;"person",d.e.person,all_persons]
809 (Tensor[Atom "ip"; Top; Top; Top]) (Tensor[Atom "ip"; Top; Top; Top]) 812 (Tensor[Atom "ip"; Top; Top; Top]) (Tensor[Atom "ip"; Top; Top; Top])
810 ["ip";"number";"gender";"person"] d 813 ["ip";"number";"gender";"person"] d
811 - (make_node lemma "conj" d.weight 0 ["number";"gender";"person"])] else []) @ 814 + (make_node lemma "conj" c.weight 0 ["number";"gender";"person"])] else []) @
812 [LCGrenderer.make_conj_frame [] 815 [LCGrenderer.make_conj_frame []
813 (Tensor[Atom "prepnp"; Top; Top]) (Tensor[Atom "prepnp"; Top; Top]) ["advp"] d 816 (Tensor[Atom "prepnp"; Top; Top]) (Tensor[Atom "prepnp"; Top; Top]) ["advp"] d
814 - (make_node lemma "conj" d.weight 0 []); 817 + (make_node lemma "conj" c.weight 0 []);
815 LCGrenderer.make_conj_frame [] 818 LCGrenderer.make_conj_frame []
816 (Tensor[Atom "advp"]) (Tensor[Atom "prepnp"; Top; Top]) ["advp"] d 819 (Tensor[Atom "advp"]) (Tensor[Atom "prepnp"; Top; Top]) ["advp"] d
817 - (make_node lemma "conj" d.weight 0 []); 820 + (make_node lemma "conj" c.weight 0 []);
818 LCGrenderer.make_conj_frame [] 821 LCGrenderer.make_conj_frame []
819 (Tensor[Atom "prepnp"; Top; Top]) (Tensor[Atom "advp"]) ["advp"] d 822 (Tensor[Atom "prepnp"; Top; Top]) (Tensor[Atom "advp"]) ["advp"] d
820 - (make_node lemma "conj" d.weight 0 []); 823 + (make_node lemma "conj" c.weight 0 []);
821 LCGrenderer.make_conj_frame [] 824 LCGrenderer.make_conj_frame []
822 (Tensor[Atom "advp"]) (Tensor[Atom "advp"]) ["advp"] d 825 (Tensor[Atom "advp"]) (Tensor[Atom "advp"]) ["advp"] d
823 - (make_node lemma "conj" d.weight 0 []); 826 + (make_node lemma "conj" c.weight 0 []);
824 LCGrenderer.make_conj_frame ["lemma",ge (),[];"case",d.e.case,all_cases] 827 LCGrenderer.make_conj_frame ["lemma",ge (),[];"case",d.e.case,all_cases]
825 (Tensor[Atom "prepnp";AVar "lemma"; AVar "case"]) (Tensor[Atom "prepnp"; AVar "lemma"; AVar "case"]) 828 (Tensor[Atom "prepnp";AVar "lemma"; AVar "case"]) (Tensor[Atom "prepnp"; AVar "lemma"; AVar "case"])
826 ["prepnp";"lemma";"case"] d 829 ["prepnp";"lemma";"case"] d
827 - (make_node lemma "conj" d.weight 0 ["case"]); 830 + (make_node lemma "conj" c.weight 0 ["case"]);
828 LCGrenderer.make_conj_frame 831 LCGrenderer.make_conj_frame
829 ["number",d.e.number,all_numbers;"case",d.e.case,all_cases;"gender",d.e.gender,all_genders;"person",d.e.person,all_persons] 832 ["number",d.e.number,all_numbers;"case",d.e.case,all_cases;"gender",d.e.gender,all_genders;"person",d.e.person,all_persons]
830 (Tensor[Atom "np"; Top; AVar "case"; Top; Top]) (Tensor[Atom "np"; Top; AVar "case"; Top; Top]) 833 (Tensor[Atom "np"; Top; AVar "case"; Top; Top]) (Tensor[Atom "np"; Top; AVar "case"; Top; Top])
831 ["np"; "number"; "case"; "gender"; "person"] d 834 ["np"; "number"; "case"; "gender"; "person"] d
832 - (make_node lemma "conj" d.weight 0 ["number";"case";"gender";"person"]); 835 + (make_node lemma "conj" c.weight 0 ["number";"case";"gender";"person"]);
833 LCGrenderer.make_conj_frame 836 LCGrenderer.make_conj_frame
834 ["number",d.e.number,all_numbers;"case",d.e.case,all_cases;"gender",d.e.gender,all_genders] 837 ["number",d.e.number,all_numbers;"case",d.e.case,all_cases;"gender",d.e.gender,all_genders]
835 (Tensor[Atom "adjp"; AVar "number"; AVar "case"; AVar "gender"]) (Tensor[Atom "adjp"; AVar "number"; AVar "case"; AVar "gender"]) 838 (Tensor[Atom "adjp"; AVar "number"; AVar "case"; AVar "gender"]) (Tensor[Atom "adjp"; AVar "number"; AVar "case"; AVar "gender"])
836 ["adjp";"number";"case";"gender"] d 839 ["adjp";"number";"case";"gender"] d
837 - (make_node lemma "conj" d.weight 0 ["number";"case";"gender"]); 840 + (make_node lemma "conj" c.weight 0 ["number";"case";"gender"]);
838 ] in 841 ] in
839 842
840 (* FIXME: aktualnie NP nie obejmują przymiotników, trzeba albo dodać podrzędniki przymiotnikowe, albo kategorię np dla przymiotników *) 843 (* FIXME: aktualnie NP nie obejmują przymiotników, trzeba albo dodać podrzędniki przymiotnikowe, albo kategorię np dla przymiotników *)
@@ -844,77 +847,77 @@ let make_conj f d lemma = @@ -844,77 +847,77 @@ let make_conj f d lemma =
844 (* FIXME: sprawdzić czy są ramy z NegationUndef i NegationNA *) 847 (* FIXME: sprawdzić czy są ramy z NegationUndef i NegationNA *)
845 (* FIXME: obniżyć wagi przyimków i kublików pisanych z wielkiej litery podobnie przy skrótach *) 848 (* FIXME: obniżyć wagi przyimków i kublików pisanych z wielkiej litery podobnie przy skrótach *)
846 849
847 -let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawanie lematów nie działa, gdy mają wielką literę *) 850 +let rec process_interp (c:ENIAMtokenizerTypes.token_record) (d:ENIAMlexSemanticsTypes.lex_sem) = function (* FIXME: rozpoznawanie lematów nie działa, gdy mają wielką literę *)
848 lemma,"subst",[numbers;cases;genders] -> 851 lemma,"subst",[numbers;cases;genders] ->
849 (if lemma = "co" || lemma = "kto" then (* FIXME: dodać podrzędniki np. co nowego *) 852 (if lemma = "co" || lemma = "kto" then (* FIXME: dodać podrzędniki np. co nowego *)
850 List.flatten (Xlist.map ["int";"rel"] (fun ctype -> 853 List.flatten (Xlist.map ["int";"rel"] (fun ctype ->
851 let quant = ["inumber",ge (),[];"igender",ge (),[];"iperson",ge (),[];"plemma",ge (),[];"ctype",ge (),[ctype];"number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders; "person",d.e.person,["ter"]] in 854 let quant = ["inumber",ge (),[];"igender",ge (),[];"iperson",ge (),[];"plemma",ge (),[];"ctype",ge (),[ctype];"number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders; "person",d.e.person,["ter"]] in
852 let t = ["cp"; "ctype"; lemma] in 855 let t = ["cp"; "ctype"; lemma] in
853 let sem_mods = ["CTYPE",SubstVar "ctype"] in (* atrybuty ip *) 856 let sem_mods = ["CTYPE",SubstVar "ctype"] in (* atrybuty ip *)
854 - let batrs = make_node lemma "subst" d.weight 0 [ctype;"case"] in (* atrybuty liścia *) 857 + let batrs = make_node lemma "subst" c.weight 0 [ctype;"case"] in (* atrybuty liścia *)
855 let raised_arg = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["np";"number";"case";"gender";"person"])] in 858 let raised_arg = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["np";"number";"case";"gender";"person"])] in
856 let raised_arg1 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["prepnp";"plemma";"case"])] in 859 let raised_arg1 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["prepnp";"plemma";"case"])] in
857 let raised_arg2 = [Raised(["prepnp";"plemma";"case"],Forward,["np";"number";"case";"gender";"person"])] in 860 let raised_arg2 = [Raised(["prepnp";"plemma";"case"],Forward,["np";"number";"case";"gender";"person"])] in
858 let raised_arg3 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["comprepnp";"plemma"])] in 861 let raised_arg3 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["comprepnp";"plemma"])] in
859 let raised_arg4 = [Raised(["comprepnp";"plemma"],Forward,["np";"number";"case";"gender";"person"])] in 862 let raised_arg4 = [Raised(["comprepnp";"plemma"],Forward,["np";"number";"case";"gender";"person"])] in
860 let schema_list = [[schema_field RAISED "" Forward raised_arg]] in 863 let schema_list = [[schema_field RAISED "" Forward raised_arg]] in
861 - let frame_np = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 864 + let frame_np = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
862 let schema_list = [[schema_field RAISED "" Backward raised_arg2];[schema_field RAISED "" Forward raised_arg1]] in 865 let schema_list = [[schema_field RAISED "" Backward raised_arg2];[schema_field RAISED "" Forward raised_arg1]] in
863 - let frame_prepnp = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 866 + let frame_prepnp = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
864 let schema_list = [[schema_field RAISED "" Backward raised_arg4];[schema_field RAISED "" Forward raised_arg3]] in 867 let schema_list = [[schema_field RAISED "" Backward raised_arg4];[schema_field RAISED "" Forward raised_arg3]] in
865 - let frame_comprepnp = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 868 + let frame_comprepnp = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
866 [frame_np;frame_prepnp;frame_comprepnp])) else []) @ 869 [frame_np;frame_prepnp;frame_comprepnp])) else []) @
867 (if lemma = "to" then (* FIXME: przetestować *) 870 (if lemma = "to" then (* FIXME: przetestować *)
868 let quant = ["ctype",ge (),[];"lemma",ge (),[];"number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders; "person",d.e.person,["ter"]] in 871 let quant = ["ctype",ge (),[];"lemma",ge (),[];"number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders; "person",d.e.person,["ter"]] in
869 let t = ["ncp"; "number"; "case"; "gender"; "person"; "ctype"; "lemma"] in 872 let t = ["ncp"; "number"; "case"; "gender"; "person"; "ctype"; "lemma"] in
870 - let batrs = make_node "to" "subst" d.weight 0 ["coreferential"; "number"; "case"; "gender"; "person"; "ctype"] in 873 + let batrs = make_node "to" "subst" c.weight 0 ["coreferential"; "number"; "case"; "gender"; "person"; "ctype"] in
871 let schema_list = [qub_inclusion;[prep_arg_schema_field [Phrase(CP(CompTypeAgr,Comp "lemma"))]]] in 874 let schema_list = [qub_inclusion;[prep_arg_schema_field [Phrase(CP(CompTypeAgr,Comp "lemma"))]]] in
872 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] 875 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs]
873 else []) @ 876 else []) @
874 - make_np numbers cases genders ["ter"] d lemma "subst" 877 + make_np numbers cases genders ["ter"] c d lemma "subst"
875 | lemma,"depr",[numbers;cases;genders] -> (* FIXME: sprawdzić uzgodnienie rodzaju dla depr w podmiocie *) 878 | lemma,"depr",[numbers;cases;genders] -> (* FIXME: sprawdzić uzgodnienie rodzaju dla depr w podmiocie *)
876 - make_np numbers cases genders ["ter"] d lemma "depr" 879 + make_np numbers cases genders ["ter"] c d lemma "depr"
877 | lemma,"ppron12",[numbers;cases;genders;persons] -> 880 | lemma,"ppron12",[numbers;cases;genders;persons] ->
878 - make_np numbers cases genders persons d lemma "ppron12" 881 + make_np numbers cases genders persons c d lemma "ppron12"
879 | lemma,"ppron12",[numbers;cases;genders;persons;akcs] -> 882 | lemma,"ppron12",[numbers;cases;genders;persons;akcs] ->
880 - make_np numbers cases genders persons d lemma "ppron12" 883 + make_np numbers cases genders persons c d lemma "ppron12"
881 | lemma,"ppron3",[numbers;cases;genders;persons] -> 884 | lemma,"ppron3",[numbers;cases;genders;persons] ->
882 - make_np numbers cases genders persons d lemma "ppron3" 885 + make_np numbers cases genders persons c d lemma "ppron3"
883 | lemma,"ppron3",[numbers;cases;genders;persons;akcs] -> 886 | lemma,"ppron3",[numbers;cases;genders;persons;akcs] ->
884 - make_np numbers cases genders persons d lemma "ppron3" 887 + make_np numbers cases genders persons c d lemma "ppron3"
885 | lemma,"ppron3",[numbers;cases;genders;persons;akcs;praep] -> 888 | lemma,"ppron3",[numbers;cases;genders;persons;akcs;praep] ->
886 List.flatten (Xlist.map praep (function 889 List.flatten (Xlist.map praep (function
887 - "npraep" -> make_np numbers cases genders persons d lemma "ppron3"  
888 - | "_" -> make_np numbers cases genders persons d lemma "ppron3" 890 + "npraep" -> make_np numbers cases genders persons c d lemma "ppron3"
  891 + | "_" -> make_np numbers cases genders persons c d lemma "ppron3"
889 | "praep" -> 892 | "praep" ->
890 let quant = ["lemma",ge (),[]; "number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders; "person",d.e.person,persons] in 893 let quant = ["lemma",ge (),[]; "number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders; "person",d.e.person,persons] in
891 let t = ["prepnp"; "lemma"; "case"] in 894 let t = ["prepnp"; "lemma"; "case"] in
892 Xlist.fold d.simple_valence [] (fun l -> function 895 Xlist.fold d.simple_valence [] (fun l -> function
893 fnum,Frame(NounAtrs(_,nsyn,nsem),schema) -> 896 fnum,Frame(NounAtrs(_,nsyn,nsem),schema) ->
894 - let batrs = make_node lemma "ppron3" d.weight fnum (nsyn ::(WalStringOf.nsem nsem) :: ["number";"case";"gender";"person"]) in 897 + let batrs = make_node lemma "ppron3" c.weight fnum (nsyn ::(ENIAMwalStringOf.nsem nsem) :: ["number";"case";"gender";"person"]) in
895 let raised_arg = [Raised(["prepnp";"lemma";"case"],Forward,["np";"number";"case";"gender";"person"])] in 898 let raised_arg = [Raised(["prepnp";"lemma";"case"],Forward,["np";"number";"case";"gender";"person"])] in
896 let schema_list = [[schema_field RAISED "" Backward raised_arg];[inclusion]] in 899 let schema_list = [[schema_field RAISED "" Backward raised_arg];[inclusion]] in
897 - (LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs) :: l 900 + (LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs) :: l
898 | _ -> failwith "process_interp: ppron3 praep") 901 | _ -> failwith "process_interp: ppron3 praep")
899 | _ -> failwith "process_interp: ppron3 praep")) 902 | _ -> failwith "process_interp: ppron3 praep"))
900 | lemma,"siebie",[cases] -> (* FIXME: rozwiązać koreferencję *) 903 | lemma,"siebie",[cases] -> (* FIXME: rozwiązać koreferencję *)
901 - make_np ["_"] cases ["_"] ["ter"] d lemma "siebie" 904 + make_np ["_"] cases ["_"] ["ter"] c d lemma "siebie"
902 | lemma,"prep",[cases;woks] -> (* FIXME: pomijam niesemantyczny compar *) 905 | lemma,"prep",[cases;woks] -> (* FIXME: pomijam niesemantyczny compar *)
903 - if lemma = "jak" || lemma = "jako" || lemma = "niż" || lemma = "niczym" || lemma = "niby" || lemma = "co" then [make_prep all_cases d lemma] @ make_compar d lemma else  
904 - [make_prepnp cases d lemma;  
905 - make_prepnump cases d lemma;  
906 - make_prepadjp cases d lemma;  
907 - make_prep cases d lemma] @  
908 - make_lex_prep cases d lemma @  
909 - make_time_prep cases d lemma 906 + if lemma = "jak" || lemma = "jako" || lemma = "niż" || lemma = "niczym" || lemma = "niby" || lemma = "co" then [make_prep all_cases c d lemma] @ make_compar c d lemma else
  907 + [make_prepnp cases c d lemma;
  908 + make_prepnump cases c d lemma;
  909 + make_prepadjp cases c d lemma;
  910 + make_prep cases c d lemma] @
  911 + make_lex_prep cases c d lemma @
  912 + make_time_prep cases c d lemma
910 | lemma,"prep",[cases] -> 913 | lemma,"prep",[cases] ->
911 - if lemma = "jak" || lemma = "jako" || lemma = "niż" || lemma = "niczym" || lemma = "niby" || lemma = "co" then [make_prep all_cases d lemma] @ make_compar d lemma else  
912 - [make_prepnp cases d lemma;  
913 - make_prepnump cases d lemma;  
914 - make_prepadjp cases d lemma;  
915 - make_prep cases d lemma] @  
916 - make_lex_prep cases d lemma @  
917 - make_time_prep cases d lemma 914 + if lemma = "jak" || lemma = "jako" || lemma = "niż" || lemma = "niczym" || lemma = "niby" || lemma = "co" then [make_prep all_cases c d lemma] @ make_compar c d lemma else
  915 + [make_prepnp cases c d lemma;
  916 + make_prepnump cases c d lemma;
  917 + make_prepadjp cases c d lemma;
  918 + make_prep cases c d lemma] @
  919 + make_lex_prep cases c d lemma @
  920 + make_time_prep cases c d lemma
918 (* | lemma,"NUM",[["comp"]] -> failwith "num:comp"*) 921 (* | lemma,"NUM",[["comp"]] -> failwith "num:comp"*)
919 | lemma,"num",[numbers;cases;genders;acm] -> (* FIXME: liczebniki złożone *) 922 | lemma,"num",[numbers;cases;genders;acm] -> (* FIXME: liczebniki złożone *)
920 (if lemma = "ile" then (* FIXME: walencja ile *) 923 (if lemma = "ile" then (* FIXME: walencja ile *)
@@ -924,71 +927,71 @@ let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawa @@ -924,71 +927,71 @@ let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawa
924 let quant = ["inumber",ge (),[];"igender",ge (),[];"iperson",ge (),[];"plemma",ge (),[];"ctype",ge (),[ctype];"number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders;"person",d.e.person,["ter"]] in 927 let quant = ["inumber",ge (),[];"igender",ge (),[];"iperson",ge (),[];"plemma",ge (),[];"ctype",ge (),[ctype];"number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders;"person",d.e.person,["ter"]] in
925 let t = ["cp"; "ctype"; lemma] in 928 let t = ["cp"; "ctype"; lemma] in
926 let sem_mods = ["CTYPE",SubstVar "ctype"] in 929 let sem_mods = ["CTYPE",SubstVar "ctype"] in
927 - let batrs = make_node lemma "num" d.weight 0 [ctype;acm;"number";"case";"gender";"person"] in 930 + let batrs = make_node lemma "num" c.weight 0 [ctype;acm;"number";"case";"gender";"person"] in
928 let raised_arg1 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["nump";num;"case";gend;"person"])] in 931 let raised_arg1 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["nump";num;"case";gend;"person"])] in
929 let raised_arg2a = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["prepnp";"plemma";"case"])] in 932 let raised_arg2a = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["prepnp";"plemma";"case"])] in
930 let raised_arg2b = [Raised(["prepnp";"plemma";"case"],Forward,["nump";num;"case";gend;"person"])] in 933 let raised_arg2b = [Raised(["prepnp";"plemma";"case"],Forward,["nump";num;"case";gend;"person"])] in
931 let raised_arg3a = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["comprepnp";"plemma"])] in 934 let raised_arg3a = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["comprepnp";"plemma"])] in
932 let raised_arg3b = [Raised(["comprepnp";"plemma"],Forward,["nump";num;"case";gend;"person"])] in 935 let raised_arg3b = [Raised(["comprepnp";"plemma"],Forward,["nump";num;"case";gend;"person"])] in
933 let schema_list = [[num_arg_schema_field [Phrase ProNG; Phrase phrase]];[schema_field RAISED "" Forward raised_arg1]] in 936 let schema_list = [[num_arg_schema_field [Phrase ProNG; Phrase phrase]];[schema_field RAISED "" Forward raised_arg1]] in
934 - let frame_nump = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 937 + let frame_nump = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
935 let schema_list = [[num_arg_schema_field [Phrase ProNG; Phrase phrase]];[schema_field RAISED "" Backward raised_arg2b];[schema_field RAISED "" Forward raised_arg2a]] in 938 let schema_list = [[num_arg_schema_field [Phrase ProNG; Phrase phrase]];[schema_field RAISED "" Backward raised_arg2b];[schema_field RAISED "" Forward raised_arg2a]] in
936 - let frame_prepnp = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 939 + let frame_prepnp = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
937 let schema_list = [[num_arg_schema_field [Phrase ProNG; Phrase phrase]];[schema_field RAISED "" Backward raised_arg3b];[schema_field RAISED "" Forward raised_arg3a]] in 940 let schema_list = [[num_arg_schema_field [Phrase ProNG; Phrase phrase]];[schema_field RAISED "" Backward raised_arg3b];[schema_field RAISED "" Forward raised_arg3a]] in
938 - let frame_comprepnp = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 941 + let frame_comprepnp = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
939 [frame_nump;frame_prepnp;frame_comprepnp])))) else []) @ 942 [frame_nump;frame_prepnp;frame_comprepnp])))) else []) @
940 - make_nump numbers cases genders ["ter"] acm d lemma "num" 943 + make_nump numbers cases genders ["ter"] acm c d lemma "num"
941 | _,"numc",[] -> [] 944 | _,"numc",[] -> []
942 | lemma,"intnum",[] -> 945 | lemma,"intnum",[] ->
943 - let batrs = make_node lemma "intnum" d.weight 0 [] in 946 + let batrs = make_node lemma "intnum" c.weight 0 [] in
944 let numbers,acms = 947 let numbers,acms =
945 if lemma = "1" || lemma = "-1" then ["sg"],["congr"] else 948 if lemma = "1" || lemma = "-1" then ["sg"],["congr"] else
946 let s = String.get lemma (String.length lemma - 1) in 949 let s = String.get lemma (String.length lemma - 1) in
947 ["pl"],if s = '2' || s = '3' || s = '4' then ["rec";"congr"] else ["rec"] in 950 ["pl"],if s = '2' || s = '3' || s = '4' then ["rec";"congr"] else ["rec"] in
948 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @  
949 - make_nump numbers ["_"] ["_"] ["ter"] acms d lemma "intnum" (* FIXME: specjalne traktowanie 1 i poza tym liczba mnoga *) 951 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @
  952 + make_nump numbers ["_"] ["_"] ["ter"] acms c d lemma "intnum" (* FIXME: specjalne traktowanie 1 i poza tym liczba mnoga *)
950 | lemma,"realnum",[] -> 953 | lemma,"realnum",[] ->
951 - let batrs = make_node lemma "realnum" d.weight 0 [] in  
952 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @  
953 - make_nump ["sg"] ["_"] ["_"] ["ter"] ["rec"] d lemma "realnum" 954 + let batrs = make_node lemma "realnum" c.weight 0 [] in
  955 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @
  956 + make_nump ["sg"] ["_"] ["_"] ["ter"] ["rec"] c d lemma "realnum"
954 | lemma,"intnum-interval",[] -> 957 | lemma,"intnum-interval",[] ->
955 - let batrs = make_node lemma "intnum-interval" d.weight 0 [] in  
956 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @  
957 - make_nump ["pl"] ["_"] ["_"] ["ter"] ["rec";"congr"] d lemma "intnum-interval" 958 + let batrs = make_node lemma "intnum-interval" c.weight 0 [] in
  959 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @
  960 + make_nump ["pl"] ["_"] ["_"] ["ter"] ["rec";"congr"] c d lemma "intnum-interval"
958 | lemma,"realnum-interval",[] -> 961 | lemma,"realnum-interval",[] ->
959 - let batrs = make_node lemma "realnum-interval" d.weight 0 [] in  
960 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @  
961 - make_nump ["sg"] ["_"] ["_"] ["ter"] ["rec"] d lemma "realnum-interval" 962 + let batrs = make_node lemma "realnum-interval" c.weight 0 [] in
  963 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @
  964 + make_nump ["sg"] ["_"] ["_"] ["ter"] ["rec"] c d lemma "realnum-interval"
962 | lemma,"symbol",[] -> 965 | lemma,"symbol",[] ->
963 - make_np ["sg"] ["_"] ["_"] ["ter"] d lemma "symbol" 966 + make_np ["sg"] ["_"] ["_"] ["ter"] c d lemma "symbol"
964 | lemma,"ordnum",[] -> 967 | lemma,"ordnum",[] ->
965 - make_adjp ["_"] ["_"] ["_"] ["pos"] d lemma "ordnum"  
966 - | lemma,"date",[] -> make_np_symbol d lemma "date"  
967 - | lemma,"date-interval",[] -> make_np_symbol d lemma "date-interval"  
968 - | lemma,"hour-minute",[] -> make_np_symbol d lemma "hour-minute"  
969 - | lemma,"hour",[] -> make_np_symbol d lemma "hour"  
970 - | lemma,"hour-minute-interval",[] -> make_np_symbol d lemma "hour-minute-interval"  
971 - | lemma,"hour-interval",[] -> make_np_symbol d lemma "hour-interval"  
972 - | lemma,"year",[] -> make_np_symbol d lemma "year"  
973 - | lemma,"year-interval",[] -> make_np_symbol d lemma "year-interval"  
974 - | lemma,"day",[] -> make_day d lemma "day"  
975 - | lemma,"day-interval",[] -> make_day d lemma "day-interval"  
976 - | lemma,"day-month",[] -> make_np_symbol d lemma "day-month"  
977 - | lemma,"day-month-interval",[] -> make_np_symbol d lemma "day-month-interval"  
978 - | lemma,"month-interval",[] -> make_np_symbol d lemma "month-interval" 968 + make_adjp ["_"] ["_"] ["_"] ["pos"] c d lemma "ordnum"
  969 + | lemma,"date",[] -> make_np_symbol c d lemma "date"
  970 + | lemma,"date-interval",[] -> make_np_symbol c d lemma "date-interval"
  971 + | lemma,"hour-minute",[] -> make_np_symbol c d lemma "hour-minute"
  972 + | lemma,"hour",[] -> make_np_symbol c d lemma "hour"
  973 + | lemma,"hour-minute-interval",[] -> make_np_symbol c d lemma "hour-minute-interval"
  974 + | lemma,"hour-interval",[] -> make_np_symbol c d lemma "hour-interval"
  975 + | lemma,"year",[] -> make_np_symbol c d lemma "year"
  976 + | lemma,"year-interval",[] -> make_np_symbol c d lemma "year-interval"
  977 + | lemma,"day",[] -> make_day c d lemma "day"
  978 + | lemma,"day-interval",[] -> make_day c d lemma "day-interval"
  979 + | lemma,"day-month",[] -> make_np_symbol c d lemma "day-month"
  980 + | lemma,"day-month-interval",[] -> make_np_symbol c d lemma "day-month-interval"
  981 + | lemma,"month-interval",[] -> make_np_symbol c d lemma "month-interval"
979 | lemma,"roman",[] -> (* "Aranżuje XIX struś." *) 982 | lemma,"roman",[] -> (* "Aranżuje XIX struś." *)
980 - let batrs = make_node lemma "roman" d.weight 0 [] in  
981 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @  
982 - (make_np_symbol d lemma "roman") @  
983 - (make_adjp ["_"] ["_"] ["_"] ["pos"] d lemma "roman-adj") 983 + let batrs = make_node lemma "roman" c.weight 0 [] in
  984 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @
  985 + (make_np_symbol c d lemma "roman") @
  986 + (make_adjp ["_"] ["_"] ["_"] ["pos"] c d lemma "roman-adj")
984 | lemma,"roman-interval",[] -> 987 | lemma,"roman-interval",[] ->
985 - let batrs = make_node lemma "roman-interval" d.weight 0 [] in  
986 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @  
987 - (make_np_symbol d lemma "roman-interval")  
988 - | lemma,"match-result",[] -> make_np_symbol d lemma "match-result"  
989 - | lemma,"url",[] -> make_np_symbol d lemma "url"  
990 - | lemma,"email",[] -> make_np_symbol d lemma "email"  
991 - | lemma,"obj-id",[] -> make_np_symbol d lemma "obj-id" 988 + let batrs = make_node lemma "roman-interval" c.weight 0 [] in
  989 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] ["adja"] d batrs] @
  990 + (make_np_symbol c d lemma "roman-interval")
  991 + | lemma,"match-result",[] -> make_np_symbol c d lemma "match-result"
  992 + | lemma,"url",[] -> make_np_symbol c d lemma "url"
  993 + | lemma,"email",[] -> make_np_symbol c d lemma "email"
  994 + | lemma,"obj-id",[] -> make_np_symbol c d lemma "obj-id"
992 | lemma,"adj",[numbers;cases;genders;grads] -> 995 | lemma,"adj",[numbers;cases;genders;grads] ->
993 (if lemma = "czyj" || lemma = "jaki" || lemma = "który" then 996 (if lemma = "czyj" || lemma = "jaki" || lemma = "który" then
994 List.flatten (Xlist.map ["int"] (fun ctype -> 997 List.flatten (Xlist.map ["int"] (fun ctype ->
@@ -996,7 +999,7 @@ let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawa @@ -996,7 +999,7 @@ let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawa
996 let quant = ["inumber",ge (),[];"igender",ge (),[];"iperson",ge (),[];"nperson",ge (),[];"plemma",ge (),[];"ctype",ge (),[ctype];"number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders] in 999 let quant = ["inumber",ge (),[];"igender",ge (),[];"iperson",ge (),[];"nperson",ge (),[];"plemma",ge (),[];"ctype",ge (),[ctype];"number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders] in
997 let t = ["cp"; "ctype"; lemma] in 1000 let t = ["cp"; "ctype"; lemma] in
998 let sem_mods = ["CTYPE",SubstVar "ctype"] in 1001 let sem_mods = ["CTYPE",SubstVar "ctype"] in
999 - let batrs = make_node lemma "adj" d.weight 0 [ctype;"number";"case";"gender"] in 1002 + let batrs = make_node lemma "adj" c.weight 0 [ctype;"number";"case";"gender"] in
1000 let raised_arg0 = [Raised(["np";"number";"case";"gender";"nperson"],Backward,["adjp";"number";"case";"gender"])] in 1003 let raised_arg0 = [Raised(["np";"number";"case";"gender";"nperson"],Backward,["adjp";"number";"case";"gender"])] in
1001 let raised_arg1 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["np";"number";"case";"gender";"nperson"])] in 1004 let raised_arg1 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["np";"number";"case";"gender";"nperson"])] in
1002 let raised_arg2a = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["prepnp";"plemma";"case"])] in 1005 let raised_arg2a = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["prepnp";"plemma";"case"])] in
@@ -1004,11 +1007,11 @@ let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawa @@ -1004,11 +1007,11 @@ let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawa
1004 let raised_arg3a = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["comprepnp";"plemma"])] in 1007 let raised_arg3a = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["comprepnp";"plemma"])] in
1005 let raised_arg3b = [Raised(["comprepnp";"plemma"],Forward,["np";"number";"case";"gender";"nperson"])] in 1008 let raised_arg3b = [Raised(["comprepnp";"plemma"],Forward,["np";"number";"case";"gender";"nperson"])] in
1006 let schema_list = [[schema_field RAISED "" Forward raised_arg0];[schema_field RAISED "" Forward raised_arg1]] in 1009 let schema_list = [[schema_field RAISED "" Forward raised_arg0];[schema_field RAISED "" Forward raised_arg1]] in
1007 - let frame_np = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 1010 + let frame_np = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
1008 let schema_list = [[schema_field RAISED "" Forward raised_arg0];[schema_field RAISED "" Backward raised_arg2b];[schema_field RAISED "" Forward raised_arg2a]] in 1011 let schema_list = [[schema_field RAISED "" Forward raised_arg0];[schema_field RAISED "" Backward raised_arg2b];[schema_field RAISED "" Forward raised_arg2a]] in
1009 - let frame_prepnp = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 1012 + let frame_prepnp = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
1010 let schema_list = [[schema_field RAISED "" Forward raised_arg0];[schema_field RAISED "" Backward raised_arg3b];[schema_field RAISED "" Forward raised_arg3a]] in 1013 let schema_list = [[schema_field RAISED "" Forward raised_arg0];[schema_field RAISED "" Backward raised_arg3b];[schema_field RAISED "" Forward raised_arg3a]] in
1011 - let frame_comprepnp = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 1014 + let frame_comprepnp = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
1012 [frame_np;frame_prepnp;frame_comprepnp])) else []) @ 1015 [frame_np;frame_prepnp;frame_comprepnp])) else []) @
1013 (if lemma = "jaki" || lemma = "który" then 1016 (if lemma = "jaki" || lemma = "który" then
1014 List.flatten (Xlist.map ["rel"] (fun ctype -> 1017 List.flatten (Xlist.map ["rel"] (fun ctype ->
@@ -1016,117 +1019,117 @@ let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawa @@ -1016,117 +1019,117 @@ let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawa
1016 let quant = ["inumber",ge (),[];"igender",ge (),[];"iperson",ge (),[];"plemma",ge (),[];"ctype",ge (),[ctype];"number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders; "person",d.e.person,["ter"]] in 1019 let quant = ["inumber",ge (),[];"igender",ge (),[];"iperson",ge (),[];"plemma",ge (),[];"ctype",ge (),[ctype];"number",d.e.number,expand_numbers numbers;"case",d.e.case,expand_cases cases;"gender",d.e.gender,expand_genders genders; "person",d.e.person,["ter"]] in
1017 let t = ["cp"; "ctype"; lemma] in 1020 let t = ["cp"; "ctype"; lemma] in
1018 let sem_mods = ["CTYPE",SubstVar "ctype"] in 1021 let sem_mods = ["CTYPE",SubstVar "ctype"] in
1019 - let batrs = make_node lemma "adj" d.weight 0 [ctype;"number";"case";"gender";"person"] in 1022 + let batrs = make_node lemma "adj" c.weight 0 [ctype;"number";"case";"gender";"person"] in
1020 let raised_arg = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["np";"number";"case";"gender";"person"])] in 1023 let raised_arg = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["np";"number";"case";"gender";"person"])] in
1021 let raised_arg1 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["prepnp";"plemma";"case"])] in 1024 let raised_arg1 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["prepnp";"plemma";"case"])] in
1022 let raised_arg2 = [Raised(["prepnp";"plemma";"case"],Forward,["np";"number";"case";"gender";"person"])] in 1025 let raised_arg2 = [Raised(["prepnp";"plemma";"case"],Forward,["np";"number";"case";"gender";"person"])] in
1023 let raised_arg3 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["comprepnp";"plemma"])] in 1026 let raised_arg3 = [Raised(["ip";"inumber";"igender";"iperson"],Forward,["comprepnp";"plemma"])] in
1024 let raised_arg4 = [Raised(["comprepnp";"plemma"],Forward,["np";"number";"case";"gender";"person"])] in 1027 let raised_arg4 = [Raised(["comprepnp";"plemma"],Forward,["np";"number";"case";"gender";"person"])] in
1025 let schema_list = [[schema_field RAISED "" Forward raised_arg]] in 1028 let schema_list = [[schema_field RAISED "" Forward raised_arg]] in
1026 - let frame_np = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 1029 + let frame_np = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
1027 let schema_list = [[schema_field RAISED "" Backward raised_arg2];[schema_field RAISED "" Forward raised_arg1]] in 1030 let schema_list = [[schema_field RAISED "" Backward raised_arg2];[schema_field RAISED "" Forward raised_arg1]] in
1028 - let frame_prepnp = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 1031 + let frame_prepnp = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
1029 let schema_list = [[schema_field RAISED "" Backward raised_arg4];[schema_field RAISED "" Forward raised_arg3]] in 1032 let schema_list = [[schema_field RAISED "" Backward raised_arg4];[schema_field RAISED "" Forward raised_arg3]] in
1030 - let frame_comprepnp = LCGrenderer.make_frame_raised tokens quant schema_list t d batrs sem_mods in 1033 + let frame_comprepnp = LCGrenderer.make_frame_raised tokens lex_sems quant schema_list t d batrs sem_mods in
1031 [frame_np;frame_prepnp;frame_comprepnp])) else []) @ 1034 [frame_np;frame_prepnp;frame_comprepnp])) else []) @
1032 if lemma = "czyj" || lemma = "jaki" || lemma = "który" then [] else 1035 if lemma = "czyj" || lemma = "jaki" || lemma = "który" then [] else
1033 (if lemma = "jakiś" || lemma = "ten" || lemma = "taki" then 1036 (if lemma = "jakiś" || lemma = "ten" || lemma = "taki" then
1034 - make_np numbers cases genders ["ter"] d lemma "adj" else []) @  
1035 - make_adjp numbers cases genders grads d lemma "adj"  
1036 - | lemma,"adjc",[] -> make_adjp ["sg"] ["pred"] ["m1";"m2";"m3"] ["pos"] d lemma "adjc" (* np: gotów *) (* FIXME: czy to na pewno ma zwykłą walencję przymiotnika? *)  
1037 - | lemma,"adjp",[] -> make_adjp all_numbers ["postp"] all_genders ["pos"] d lemma "adjp" 1037 + make_np numbers cases genders ["ter"] c d lemma "adj" else []) @
  1038 + make_adjp numbers cases genders grads c d lemma "adj"
  1039 + | lemma,"adjc",[] -> make_adjp ["sg"] ["pred"] ["m1";"m2";"m3"] ["pos"] c d lemma "adjc" (* np: gotów *) (* FIXME: czy to na pewno ma zwykłą walencję przymiotnika? *)
  1040 + | lemma,"adjp",[] -> make_adjp all_numbers ["postp"] all_genders ["pos"] c d lemma "adjp"
1038 | lemma,"adja",[] -> 1041 | lemma,"adja",[] ->
1039 - let batrs = make_node lemma "adja" d.weight 0 [] in  
1040 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] (["adja"]) d batrs] 1042 + let batrs = make_node lemma "adja" c.weight 0 [] in
  1043 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field NOSEM "" Forward [Phrase(Lex "hyphen")]]] (["adja"]) d batrs]
1041 | lemma,"adv",[grads] -> 1044 | lemma,"adv",[grads] ->
1042 - make_advp grads d lemma 1045 + make_advp grads c d lemma
1043 | lemma,"adv",[] -> 1046 | lemma,"adv",[] ->
1044 - make_advp ["pos"] d lemma 1047 + make_advp ["pos"] c d lemma
1045 | lemma,"ger",[numbers;cases;genders;aspects;negations] -> 1048 | lemma,"ger",[numbers;cases;genders;aspects;negations] ->
1046 - make_ger numbers cases genders ["ter"] aspects negations d lemma "ger" 1049 + make_ger numbers cases genders ["ter"] aspects negations c d lemma "ger"
1047 | lemma,"pact",[numbers;cases;genders;aspects;negations] -> 1050 | lemma,"pact",[numbers;cases;genders;aspects;negations] ->
1048 - make_padj numbers cases genders aspects negations d lemma "pact" 1051 + make_padj numbers cases genders aspects negations c d lemma "pact"
1049 | lemma,"ppas",[numbers;cases;genders;aspects;negations] -> 1052 | lemma,"ppas",[numbers;cases;genders;aspects;negations] ->
1050 - make_padj numbers cases genders aspects negations d lemma "ppas" 1053 + make_padj numbers cases genders aspects negations c d lemma "ppas"
1051 | lemma,"fin",[numbers;persons;aspects] -> (* FIXME: genders bez przymnogich *) 1054 | lemma,"fin",[numbers;persons;aspects] -> (* FIXME: genders bez przymnogich *)
1052 let persons2 = Xlist.fold persons [] (fun l -> function "sec" -> l | s -> s :: l) in 1055 let persons2 = Xlist.fold persons [] (fun l -> function "sec" -> l | s -> s :: l) in
1053 - (make_ip numbers ["_"] persons aspects false false d lemma "fin") @ 1056 + (make_ip numbers ["_"] persons aspects false false c d lemma "fin") @
1054 (if persons2 = [] then [] else 1057 (if persons2 = [] then [] else
1055 - make_ip numbers ["_"] persons2 aspects false true d lemma "fin") 1058 + make_ip numbers ["_"] persons2 aspects false true c d lemma "fin")
1056 | lemma,"bedzie",[numbers;persons;aspects] -> 1059 | lemma,"bedzie",[numbers;persons;aspects] ->
1057 (if lemma = "być" then 1060 (if lemma = "być" then
1058 let quant = ["number",d.e.number,expand_numbers numbers;"gender",d.e.gender,all_genders; "person", d.e.person,persons] in 1061 let quant = ["number",d.e.number,expand_numbers numbers;"gender",d.e.gender,all_genders; "person", d.e.person,persons] in
1059 let t = ["aux-fut"; "number"; "gender"; "person"] in 1062 let t = ["aux-fut"; "number"; "gender"; "person"] in
1060 - [LCGrenderer.make_frame_simple quant t d ( (make_node "być" "bedzie" d.weight 0 [])(*[Dot;Dot;Dot;Dot]*))] else []) @  
1061 - (make_ip numbers ["_"] persons aspects false false d lemma "bedzie") 1063 + [LCGrenderer.make_frame_simple quant t c ( (make_node "być" "bedzie" c.weight 0 [])(*[Dot;Dot;Dot;Dot]*))] else []) @
  1064 + (make_ip numbers ["_"] persons aspects false false c d lemma "bedzie")
1062 | lemma,"praet",[numbers;genders;aspects;nagl] -> 1065 | lemma,"praet",[numbers;genders;aspects;nagl] ->
1063 (if lemma = "być" then 1066 (if lemma = "być" then
1064 let quant = ["number",d.e.number,expand_numbers numbers;"gender",d.e.gender,expand_genders genders; "person",d.e.person, all_persons] in 1067 let quant = ["number",d.e.number,expand_numbers numbers;"gender",d.e.gender,expand_genders genders; "person",d.e.person, all_persons] in
1065 let t = ["aux-past"; "number"; "gender"; "person"] in 1068 let t = ["aux-past"; "number"; "gender"; "person"] in
1066 - [LCGrenderer.make_frame_simple quant t d ( (make_node "być" "praet" d.weight 0 [])(*[Dot;Dot;Dot;Dot]*))] else []) @  
1067 - (make_ip numbers genders ["ter"] aspects false false d lemma "praet") @  
1068 - (make_ip numbers genders ["pri";"sec"] aspects true false d lemma "praet") @  
1069 - (make_ip numbers genders ["pri";"sec";"ter"] aspects false true d lemma "praet") 1069 + [LCGrenderer.make_frame_simple quant t c ( (make_node "być" "praet" c.weight 0 [])(*[Dot;Dot;Dot;Dot]*))] else []) @
  1070 + (make_ip numbers genders ["ter"] aspects false false c d lemma "praet") @
  1071 + (make_ip numbers genders ["pri";"sec"] aspects true false c d lemma "praet") @
  1072 + (make_ip numbers genders ["pri";"sec";"ter"] aspects false true c d lemma "praet")
1070 | lemma,"praet",[numbers;genders;aspects] -> 1073 | lemma,"praet",[numbers;genders;aspects] ->
1071 (if lemma = "być" then 1074 (if lemma = "być" then
1072 let quant = ["number",d.e.number,expand_numbers numbers;"gender",d.e.gender,expand_genders genders; "person",d.e.person, all_persons] in 1075 let quant = ["number",d.e.number,expand_numbers numbers;"gender",d.e.gender,expand_genders genders; "person",d.e.person, all_persons] in
1073 let t = ["aux-past"; "number"; "gender"; "person"] in 1076 let t = ["aux-past"; "number"; "gender"; "person"] in
1074 - [LCGrenderer.make_frame_simple quant t d ( (make_node "być" "praet" d.weight 0 [])(*[Dot;Dot;Dot;Dot]*))] else []) @  
1075 - (make_ip numbers genders ["ter"] aspects false false d lemma "praet") @  
1076 - (make_ip numbers genders ["pri";"sec"] aspects true false d lemma "praet") @  
1077 - (make_ip numbers genders ["pri";"sec";"ter"] aspects false true d lemma "praet") 1077 + [LCGrenderer.make_frame_simple quant t c ( (make_node "być" "praet" c.weight 0 [])(*[Dot;Dot;Dot;Dot]*))] else []) @
  1078 + (make_ip numbers genders ["ter"] aspects false false c d lemma "praet") @
  1079 + (make_ip numbers genders ["pri";"sec"] aspects true false c d lemma "praet") @
  1080 + (make_ip numbers genders ["pri";"sec";"ter"] aspects false true c d lemma "praet")
1078 | lemma,"winien",[numbers;genders;aspects] -> 1081 | lemma,"winien",[numbers;genders;aspects] ->
1079 - (make_ip numbers genders ["ter"] aspects false false d lemma "winien") @  
1080 - (make_ip numbers genders ["ter"] aspects false true d lemma "winien") @  
1081 - (make_ip numbers genders ["pri";"sec"] aspects true false d lemma "winien") @  
1082 - (make_ip numbers genders ["pri";"sec"] aspects true true d lemma "winien") 1082 + (make_ip numbers genders ["ter"] aspects false false c d lemma "winien") @
  1083 + (make_ip numbers genders ["ter"] aspects false true c d lemma "winien") @
  1084 + (make_ip numbers genders ["pri";"sec"] aspects true false c d lemma "winien") @
  1085 + (make_ip numbers genders ["pri";"sec"] aspects true true c d lemma "winien")
1083 | lemma,"impt",[numbers;persons;aspects] -> (* FIXME: genders bez przymnogich *) 1086 | lemma,"impt",[numbers;persons;aspects] -> (* FIXME: genders bez przymnogich *)
1084 - make_ip numbers ["_"] persons aspects false false d lemma "impt" 1087 + make_ip numbers ["_"] persons aspects false false c d lemma "impt"
1085 | lemma,"imps",[aspects] -> 1088 | lemma,"imps",[aspects] ->
1086 - make_ip ["_"] ["_"] all_persons aspects false false d lemma "imps" 1089 + make_ip ["_"] ["_"] all_persons aspects false false c d lemma "imps"
1087 | lemma,"pred",[] -> (* FIXME: czy predykatyw zawsze jest niedokonany? *) 1090 | lemma,"pred",[] -> (* FIXME: czy predykatyw zawsze jest niedokonany? *)
1088 - (make_ip ["sg"] ["n2"] ["ter"] ["imperf"] false false d lemma "pred") @  
1089 - (make_ip ["sg"] ["n2"] ["ter"] ["imperf"] false true d lemma "pred") 1091 + (make_ip ["sg"] ["n2"] ["ter"] ["imperf"] false false c d lemma "pred") @
  1092 + (make_ip ["sg"] ["n2"] ["ter"] ["imperf"] false true c d lemma "pred")
1090 | "być","aglt",[numbers;persons;aspects;wok] -> 1093 | "być","aglt",[numbers;persons;aspects;wok] ->
1091 let numbers = expand_numbers numbers in 1094 let numbers = expand_numbers numbers in
1092 let quant = ["number",d.e.number,numbers; "person", d.e.person,persons] in 1095 let quant = ["number",d.e.number,numbers; "person", d.e.person,persons] in
1093 let t = ["aglt"; "number"; "person"] in 1096 let t = ["aglt"; "number"; "person"] in
1094 - [LCGrenderer.make_frame_simple quant t d ( (make_node "być" "aglt" d.weight 0 [])(*[Dot;Dot;Dot]*))] 1097 + [LCGrenderer.make_frame_simple quant t c ( (make_node "być" "aglt" c.weight 0 [])(*[Dot;Dot;Dot]*))]
1095 | lemma,"inf",[aspects] -> (* FIXME: wielopoziomowe InfP *) 1098 | lemma,"inf",[aspects] -> (* FIXME: wielopoziomowe InfP *)
1096 - make_infp aspects d lemma 1099 + make_infp aspects c d lemma
1097 | lemma,"pcon",[aspects] -> 1100 | lemma,"pcon",[aspects] ->
1098 - make_padvp aspects d lemma "pcon" 1101 + make_padvp aspects c d lemma "pcon"
1099 | lemma,"pant",[aspects] -> 1102 | lemma,"pant",[aspects] ->
1100 - make_padvp aspects d lemma "pant"  
1101 - | "się","qub",[] -> [LCGrenderer.make_frame_simple [] ["się"] {d with orth=""} ( (make_node "się" "qub" d.weight 0 [])) (* FIXME: dodać make_np *)]  
1102 - | "nie","qub",[] -> [LCGrenderer.make_frame_simple [] ["nie"] {d with orth=""} (make_node "nie" "qub" d.weight 0 [])]  
1103 - | "by","qub",[] -> [LCGrenderer.make_frame_simple [] ["by"] {d with orth=""} (make_node "by" "qub" d.weight 0 [])]  
1104 - | "niech","qub",[] -> [LCGrenderer.make_frame_simple [] ["aux-imp"] d (make_node "niech" "qub" d.weight 0 [])]  
1105 - | "niechaj","qub",[] -> [LCGrenderer.make_frame_simple [] ["aux-imp"] d (make_node "niechaj" "qub" d.weight 0 [])]  
1106 - | "niechże","qub",[] -> [LCGrenderer.make_frame_simple [] ["aux-imp"] d (make_node "niechże" "qub" d.weight 0 [])]  
1107 - | "niechajże","qub",[] -> [LCGrenderer.make_frame_simple [] ["aux-imp"] d (make_node "niechajże" "qub" d.weight 0 [])] 1103 + make_padvp aspects c d lemma "pant"
  1104 + | "się","qub",[] -> [LCGrenderer.make_frame_simple [] ["się"] {c with orth=""} ( (make_node "się" "qub" c.weight 0 [])) (* FIXME: dodać make_np *)]
  1105 + | "nie","qub",[] -> [LCGrenderer.make_frame_simple [] ["nie"] {c with orth=""} (make_node "nie" "qub" c.weight 0 [])]
  1106 + | "by","qub",[] -> [LCGrenderer.make_frame_simple [] ["by"] {c with orth=""} (make_node "by" "qub" c.weight 0 [])]
  1107 + | "niech","qub",[] -> [LCGrenderer.make_frame_simple [] ["aux-imp"] c (make_node "niech" "qub" c.weight 0 [])]
  1108 + | "niechaj","qub",[] -> [LCGrenderer.make_frame_simple [] ["aux-imp"] c (make_node "niechaj" "qub" c.weight 0 [])]
  1109 + | "niechże","qub",[] -> [LCGrenderer.make_frame_simple [] ["aux-imp"] c (make_node "niechże" "qub" c.weight 0 [])]
  1110 + | "niechajże","qub",[] -> [LCGrenderer.make_frame_simple [] ["aux-imp"] c (make_node "niechajże" "qub" c.weight 0 [])]
1108 | "czy","qub",[] -> (* FIXME: poprawić semantykę *) 1111 | "czy","qub",[] -> (* FIXME: poprawić semantykę *)
1109 let quant = [] in 1112 let quant = [] in
1110 let t = ["cp"; "int"; "czy"] in 1113 let t = ["cp"; "int"; "czy"] in
1111 - let batrs = make_node "czy" "qub" d.weight 0 ["int"] in 1114 + let batrs = make_node "czy" "qub" c.weight 0 ["int"] in
1112 let schema_list = [[comp_arg_schema_field [Phrase IP]]] in 1115 let schema_list = [[comp_arg_schema_field [Phrase IP]]] in
1113 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs] 1116 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs]
1114 | "gdyby","qub",[] -> (* FIXME: poprawić semantykę *) (* FIXME: poprawić tryb przypuszczający *) (* FIXME: problem z interpretacją jako 'gdy' *) 1117 | "gdyby","qub",[] -> (* FIXME: poprawić semantykę *) (* FIXME: poprawić tryb przypuszczający *) (* FIXME: problem z interpretacją jako 'gdy' *)
1115 let quant = [] in 1118 let quant = [] in
1116 let t = ["cp"; "rel"; "gdyby"] in 1119 let t = ["cp"; "rel"; "gdyby"] in
1117 - let batrs = make_node "gdyby" "qub" d.weight 0 ["rel"] in 1120 + let batrs = make_node "gdyby" "qub" c.weight 0 ["rel"] in
1118 let schema_list = [[comp_arg_schema_field [Phrase IP]]] in 1121 let schema_list = [[comp_arg_schema_field [Phrase IP]]] in
1119 - [LCGrenderer.make_frame x_flag tokens quant schema_list t d batrs]  
1120 - | lemma,"qub",[] -> [LCGrenderer.make_frame_simple [] ["qub"] d ( (make_node lemma "qub" d.weight 0 []))] (* FIXME: semantyka i rodzaje kublików *)  
1121 - | lemma,"comp",[] -> make_conjunct d lemma "comp"  
1122 - | "i","conj",[] -> make_conj true d "i" @ (make_conjunct d "i" "conj")  
1123 - | "lub","conj",[] -> make_conj true d "lub" @ (make_conjunct d "lub" "conj")  
1124 - | "czy","conj",[] -> make_conj true d "czy" @ (make_conjunct d "czy" "conj")  
1125 - | "bądź","conj",[] -> make_conj true d "bądź" @ (make_conjunct d "bądź" "conj")  
1126 - | lemma,"conj",[] -> make_conjunct d lemma "conj" 1122 + [LCGrenderer.make_frame x_flag tokens lex_sems quant schema_list t d batrs]
  1123 + | lemma,"qub",[] -> [LCGrenderer.make_frame_simple [] ["qub"] c ( (make_node lemma "qub" c.weight 0 []))] (* FIXME: semantyka i rodzaje kublików *)
  1124 + | lemma,"comp",[] -> make_conjunct c d lemma "comp"
  1125 + | "i","conj",[] -> make_conj true c d "i" @ (make_conjunct c d "i" "conj")
  1126 + | "lub","conj",[] -> make_conj true c d "lub" @ (make_conjunct c d "lub" "conj")
  1127 + | "czy","conj",[] -> make_conj true c d "czy" @ (make_conjunct c d "czy" "conj")
  1128 + | "bądź","conj",[] -> make_conj true c d "bądź" @ (make_conjunct c d "bądź" "conj")
  1129 + | lemma,"conj",[] -> make_conjunct c d lemma "conj"
1127 (* | "interp",[] -> [] 1130 (* | "interp",[] -> []
1128 | "brev",[pun] -> []*) 1131 | "brev",[pun] -> []*)
1129 - | lemma,"interj",[] -> [LCGrenderer.make_frame_simple [] ["interj"] d (make_node lemma "interj" d.weight 0 [])] 1132 + | lemma,"interj",[] -> [LCGrenderer.make_frame_simple [] ["interj"] c (make_node lemma "interj" c.weight 0 [])]
1130 | lemma,"burk",[] -> [] (* FIXME *) 1133 | lemma,"burk",[] -> [] (* FIXME *)
1131 (* | "dig",[] -> [] 1134 (* | "dig",[] -> []
1132 | "romandig",[] -> [] 1135 | "romandig",[] -> []
@@ -1134,103 +1137,103 @@ let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawa @@ -1134,103 +1137,103 @@ let rec process_interp (d:PreTypes.token_record) = function (* FIXME: rozpoznawa
1134 | "xxx",[] -> [] (* to występuje w słowniku skrótów *)*) 1137 | "xxx",[] -> [] (* to występuje w słowniku skrótów *)*)
1135 (* | ".","interp",[] -> [] 1138 (* | ".","interp",[] -> []
1136 | "%","interp",[] -> []*) 1139 | "%","interp",[] -> []*)
1137 - | "-","interp",[] -> [LCGrenderer.make_frame_simple [] ["hyphen"] d (make_node "-" "interp" d.weight 0 [])] 1140 + | "-","interp",[] -> [LCGrenderer.make_frame_simple [] ["hyphen"] c (make_node "-" "interp" c.weight 0 [])]
1138 (* | ":","interp",[] -> [LCGrenderer.make_frame_simple [] ["colon"] ":" beg len [Dot] [Dot]]*) 1141 (* | ":","interp",[] -> [LCGrenderer.make_frame_simple [] ["colon"] ":" beg len [Dot] [Dot]]*)
1139 - | "?","interp",[] -> [LCGrenderer.make_frame_simple [] ["int"] d (make_node "?" "interp" d.weight 0 [])] (*FIXME: zdanie nadrzędne powinno mieć atrybut pytajności(Attr("INT",Val "+"))] *)  
1140 - | ",","interp",[] -> make_conj false d "," (*@ [LCGrenderer.make_frame_simple [] ["comma"] "," beg len [Dot] [Dot]]*) 1142 + | "?","interp",[] -> [LCGrenderer.make_frame_simple [] ["int"] c (make_node "?" "interp" c.weight 0 [])] (*FIXME: zdanie nadrzędne powinno mieć atrybut pytajności(Attr("INT",Val "+"))] *)
  1143 + | ",","interp",[] -> make_conj false c d "," (*@ [LCGrenderer.make_frame_simple [] ["comma"] "," beg len [Dot] [Dot]]*)
1141 | ";","interp",[] -> [](*[LCGrenderer.make_frame_simple [] ["comma"] ";" beg len [Dot] [Dot]]*) 1144 | ";","interp",[] -> [](*[LCGrenderer.make_frame_simple [] ["comma"] ";" beg len [Dot] [Dot]]*)
1142 | "„","interp",[] -> [(* FIXME: zaznaczyć niesemantyczność quotów *) 1145 | "„","interp",[] -> [(* FIXME: zaznaczyć niesemantyczność quotów *)
1143 LCGrenderer.make_quot_frame 1146 LCGrenderer.make_quot_frame
1144 ["number",d.e.number,[];"case",d.e.case,[];"gender",d.e.gender,[];"person",d.e.person,[]] 1147 ["number",d.e.number,[];"case",d.e.case,[];"gender",d.e.gender,[];"person",d.e.person,[]]
1145 (Tensor[Atom "np"; AVar "number"; AVar "case"; AVar "gender"; AVar "person"]) (Tensor[Atom "rquot"]) 1148 (Tensor[Atom "np"; AVar "number"; AVar "case"; AVar "gender"; AVar "person"]) (Tensor[Atom "rquot"])
1146 ["np";"number";"case";"gender";"person"] d 1149 ["np";"number";"case";"gender";"person"] d
1147 - (make_node "„" "interp" d.weight 0 [])]  
1148 - | "”","interp",[] -> [LCGrenderer.make_frame_simple [] ["rquot"] d (make_node "”" "interp" d.weight 0 [])]  
1149 - | "«","interp",[] -> [LCGrenderer.make_frame_simple [] ["rquot3"] d (make_node "«" "interp" d.weight 0 []); 1150 + (make_node "„" "interp" c.weight 0 [])]
  1151 + | "”","interp",[] -> [LCGrenderer.make_frame_simple [] ["rquot"] c (make_node "”" "interp" c.weight 0 [])]
  1152 + | "«","interp",[] -> [LCGrenderer.make_frame_simple [] ["rquot3"] c (make_node "«" "interp" c.weight 0 []);
1150 LCGrenderer.make_quot_frame 1153 LCGrenderer.make_quot_frame
1151 ["number",d.e.number,[];"case",d.e.case,[];"gender",d.e.gender,[];"person",d.e.person,[]] 1154 ["number",d.e.number,[];"case",d.e.case,[];"gender",d.e.gender,[];"person",d.e.person,[]]
1152 (Tensor[Atom "np"; AVar "number"; AVar "case"; AVar "gender"; AVar "person"]) (Tensor[Atom "rquot2"]) 1155 (Tensor[Atom "np"; AVar "number"; AVar "case"; AVar "gender"; AVar "person"]) (Tensor[Atom "rquot2"])
1153 ["np";"number";"case";"gender";"person"] d 1156 ["np";"number";"case";"gender";"person"] d
1154 - (make_node "«" "interp" d.weight 0 [])]  
1155 - | "»","interp",[] -> [LCGrenderer.make_frame_simple [] ["rquot2"] d (make_node "»" "interp" d.weight 0 []); 1157 + (make_node "«" "interp" c.weight 0 [])]
  1158 + | "»","interp",[] -> [LCGrenderer.make_frame_simple [] ["rquot2"] c (make_node "»" "interp" c.weight 0 []);
1156 LCGrenderer.make_quot_frame 1159 LCGrenderer.make_quot_frame
1157 ["number",d.e.number,[];"case",d.e.case,[];"gender",d.e.gender,[];"person",d.e.person,[]] 1160 ["number",d.e.number,[];"case",d.e.case,[];"gender",d.e.gender,[];"person",d.e.person,[]]
1158 (Tensor[Atom "np"; AVar "number"; AVar "case"; AVar "gender"; AVar "person"]) (Tensor[Atom "rquot3"]) 1161 (Tensor[Atom "np"; AVar "number"; AVar "case"; AVar "gender"; AVar "person"]) (Tensor[Atom "rquot3"])
1159 ["np";"number";"case";"gender";"person"] d 1162 ["np";"number";"case";"gender";"person"] d
1160 - (make_node "»" "interp" d.weight 0 [])]  
1161 - | "(","interp",[] -> [LCGrenderer.make_inclusion_frame (Tensor[Atom "rparen"]) d (make_node "(" "interp" d.weight 0 [])]  
1162 - | ")","interp",[] -> [LCGrenderer.make_frame_simple [] ["rparen"] d (make_node ")" "interp" d.weight 0 [])]  
1163 - | "[","interp",[] -> [LCGrenderer.make_inclusion_frame (Tensor[Atom "rparen"]) d (make_node "[" "interp" d.weight 0 [])]  
1164 - | "]","interp",[] -> [LCGrenderer.make_frame_simple [] ["rparen"] d (make_node "]" "interp" d.weight 0 [])] 1163 + (make_node "»" "interp" c.weight 0 [])]
  1164 + | "(","interp",[] -> [LCGrenderer.make_inclusion_frame (Tensor[Atom "rparen"]) d (make_node "(" "interp" c.weight 0 [])]
  1165 + | ")","interp",[] -> [LCGrenderer.make_frame_simple [] ["rparen"] c (make_node ")" "interp" c.weight 0 [])]
  1166 + | "[","interp",[] -> [LCGrenderer.make_inclusion_frame (Tensor[Atom "rparen"]) d (make_node "[" "interp" c.weight 0 [])]
  1167 + | "]","interp",[] -> [LCGrenderer.make_frame_simple [] ["rparen"] c (make_node "]" "interp" c.weight 0 [])]
1165 | lemma,"unk",[] -> 1168 | lemma,"unk",[] ->
1166 let quant = ["number",d.e.number,all_numbers;"case",d.e.case,all_cases; "gender",d.e.gender,all_genders; "person",d.e.person, ["ter"]] in 1169 let quant = ["number",d.e.number,all_numbers;"case",d.e.case,all_cases; "gender",d.e.gender,all_genders; "person",d.e.person, ["ter"]] in
1167 let t = ["np"; "number"; "case"; "gender"; "person"] in 1170 let t = ["np"; "number"; "case"; "gender"; "person"] in
1168 - let batrs = make_node lemma "unk" d.weight 0 ["number"; "case"; "gender"; "person"] in  
1169 - [LCGrenderer.make_frame_simple quant t d ( batrs)] 1171 + let batrs = make_node lemma "unk" c.weight 0 ["number"; "case"; "gender"; "person"] in
  1172 + [LCGrenderer.make_frame_simple quant t c ( batrs)]
1170 | _,"xxx",[] -> [] (* FIXME *) 1173 | _,"xxx",[] -> [] (* FIXME *)
1171 - | ".","interp",[] -> [LCGrenderer.make_frame_simple [] ["dot"] d (make_node "." "interp" d.weight 0 [])] (* FIXME: to jest potrzebne przy CONLL *) 1174 + | ".","interp",[] -> [LCGrenderer.make_frame_simple [] ["dot"] c (make_node "." "interp" c.weight 0 [])] (* FIXME: to jest potrzebne przy CONLL *)
1172 | "<conll_root>","interp",[] -> 1175 | "<conll_root>","interp",[] ->
1173 - let batrs = (make_node "<conll_root>" "interp" d.weight 0 []) in 1176 + let batrs = (make_node "<conll_root>" "interp" c.weight 0 []) in
1174 let schema_list = [[schema_field CLAUSE "Clause" Forward [Phrase IP;Phrase (CP(Int,CompUndef));Phrase (NP(Case "voc"));Phrase (Lex "interj")]]] in 1177 let schema_list = [[schema_field CLAUSE "Clause" Forward [Phrase IP;Phrase (CP(Int,CompUndef));Phrase (NP(Case "voc"));Phrase (Lex "interj")]]] in
1175 - [LCGrenderer.make_frame false tokens [] schema_list ["<conll_root>"] d batrs] 1178 + [LCGrenderer.make_frame false tokens lex_sems [] schema_list ["<conll_root>"] d batrs]
1176 | lemma,c,l -> failwith ("process_interp: " ^ lemma ^ ":" ^ c ^ ":" ^ (String.concat ":" (Xlist.map l (String.concat ".")))) in 1179 | lemma,c,l -> failwith ("process_interp: " ^ lemma ^ ":" ^ c ^ ":" ^ (String.concat ":" (Xlist.map l (String.concat ".")))) in
1177 1180
1178 -let process_bracket_lemma (d:PreTypes.token_record) = function 1181 +let process_bracket_lemma (c:ENIAMtokenizerTypes.token_record) (d:ENIAMlexSemanticsTypes.lex_sem) = function
1179 (* "<query>" -> 1182 (* "<query>" ->
1180 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field NOSEM "" Forward [Phrase Null;Phrase (Lex "<dummy>")]];[arg_schema_field Forward [Phrase (Lex "</query>")]]] (["<query>"]) {d with orth=""} (make_node "<query1>" "interp" d.weight 0 []);  
1181 - LCGrenderer.make_frame x_flag tokens [] [[schema_field SENTENCE "" Forward [Phrase (Lex "<ors>")]]] (["<query>"]) {d with orth=""} (make_node "<query2>" "interp" d.weight 0 []);  
1182 - LCGrenderer.make_frame x_flag tokens [] [[(*nosem*)arg_schema_field Forward [Phrase (Lex "<speaker>")]];[nosem_schema_field Forward [Phrase (Lex "<colon>")]];[(*nosem*)arg_schema_field Forward [Phrase (Lex "<ors>")]];[(*nosem*)arg_schema_field Forward [Phrase (Lex "</query>")]]] (["<query>"]) {d with orth=""} (make_node "<query3>" "interp" d.weight 0 []);  
1183 - LCGrenderer.make_frame x_flag tokens [] [[schema_field SENTENCE "" Forward [Phrase (Lex "<colon>")]]] (["<query>"]) {d with orth=""} (make_node "<query4>" "interp" d.weight 0 []);  
1184 - LCGrenderer.make_frame x_flag tokens [] [[schema_field SENTENCE "" Forward [Phrase (Lex "<colon>")]];[schema_field SENTENCE "" Forward [Phrase (Lex "<ors>")]]] (["<query>"]) {d with orth=""} (make_node "<query5>" "interp" d.weight 0 []); (* FIXME: zdania w odwróconej kolejności *)  
1185 - LCGrenderer.make_frame x_flag tokens [] [[schema_field SENTENCE "Sentence" Forward [Phrase (Lex "<sentence>")]];[schema_field SENTENCE "" Forward [Phrase (Lex "<ors>")]]] (["<query>"]) {d with orth=""} (make_node "<query6>" "interp" d.weight 0 [])] (* FIXME: zdania w odwróconej kolejności *) 1183 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field NOSEM "" Forward [Phrase Null;Phrase (Lex "<dummy>")]];[arg_schema_field Forward [Phrase (Lex "</query>")]]] (["<query>"]) {d with orth=""} (make_node "<query1>" "interp" c.weight 0 []);
  1184 + LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field SENTENCE "" Forward [Phrase (Lex "<ors>")]]] (["<query>"]) {d with orth=""} (make_node "<query2>" "interp" c.weight 0 []);
  1185 + LCGrenderer.make_frame x_flag tokens lex_sems [] [[(*nosem*)arg_schema_field Forward [Phrase (Lex "<speaker>")]];[nosem_schema_field Forward [Phrase (Lex "<colon>")]];[(*nosem*)arg_schema_field Forward [Phrase (Lex "<ors>")]];[(*nosem*)arg_schema_field Forward [Phrase (Lex "</query>")]]] (["<query>"]) {d with orth=""} (make_node "<query3>" "interp" c.weight 0 []);
  1186 + LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field SENTENCE "" Forward [Phrase (Lex "<colon>")]]] (["<query>"]) {d with orth=""} (make_node "<query4>" "interp" c.weight 0 []);
  1187 + LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field SENTENCE "" Forward [Phrase (Lex "<colon>")]];[schema_field SENTENCE "" Forward [Phrase (Lex "<ors>")]]] (["<query>"]) {d with orth=""} (make_node "<query5>" "interp" c.weight 0 []); (* FIXME: zdania w odwróconej kolejności *)
  1188 + LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field SENTENCE "Sentence" Forward [Phrase (Lex "<sentence>")]];[schema_field SENTENCE "" Forward [Phrase (Lex "<ors>")]]] (["<query>"]) {d with orth=""} (make_node "<query6>" "interp" c.weight 0 [])] (* FIXME: zdania w odwróconej kolejności *)
1186 | "</query>" -> 1189 | "</query>" ->
1187 let t = (["</query>"]) in 1190 let t = (["</query>"]) in
1188 - let batrs = (make_node "</query>" "interp" d.weight 0 []) in 1191 + let batrs = (make_node "</query>" "interp" c.weight 0 []) in
1189 let schema_list = [[schema_field NOSEM "" Backward [Phrase Null;Phrase (Lex "<dummy>")]];[schema_field SENTENCE "Sentence" Backward [Multi[Lex "<sentence>"](*Phrase(Lex "s")*)]]] in 1192 let schema_list = [[schema_field NOSEM "" Backward [Phrase Null;Phrase (Lex "<dummy>")]];[schema_field SENTENCE "Sentence" Backward [Multi[Lex "<sentence>"](*Phrase(Lex "s")*)]]] in
1190 - [LCGrenderer.make_frame x_flag tokens [] schema_list t d batrs]*) 1193 + [LCGrenderer.make_frame x_flag tokens lex_sems [] schema_list t d batrs]*)
1191 | "„s" -> [] 1194 | "„s" -> []
1192 - (*let batrs = make_node "pro-komunikować" "pro" d.weight 0 [] in  
1193 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field OBJ "Theme" Forward [Phrase (Lex "</or1>")]]] (["<sentence>"(*"or"*)]) {d with orth=""} batrs;  
1194 - LCGrenderer.make_frame_simple [] ["<dummy>"] d ( (make_node "„s" "interp" d.weight 0 []))]*) 1195 + (*let batrs = make_node "pro-komunikować" "pro" c.weight 0 [] in
  1196 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field OBJ "Theme" Forward [Phrase (Lex "</or1>")]]] (["<sentence>"(*"or"*)]) {d with orth=""} batrs;
  1197 + LCGrenderer.make_frame_simple [] ["<dummy>"] d ( (make_node "„s" "interp" c.weight 0 []))]*)
1195 | "”s" -> [] 1198 | "”s" -> []
1196 (*let t = (["</or1>"]) in 1199 (*let t = (["</or1>"]) in
1197 - let batrs = (make_node "”s" "interp" d.weight 0 []) in 1200 + let batrs = (make_node "”s" "interp" c.weight 0 []) in
1198 let schema_list = [[schema_field SENTENCE "Sentence" Backward [Multi[Lex "<sentence>"](*Phrase(Lex "s")*)]]] in 1201 let schema_list = [[schema_field SENTENCE "Sentence" Backward [Multi[Lex "<sentence>"](*Phrase(Lex "s")*)]]] in
1199 - [LCGrenderer.make_frame x_flag tokens [] schema_list t d batrs;  
1200 - LCGrenderer.make_frame_simple [] ["<dummy>"] d ( (make_node "”s" "interp" d.weight 0 []))]*) 1202 + [LCGrenderer.make_frame x_flag tokens lex_sems [] schema_list t d batrs;
  1203 + LCGrenderer.make_frame_simple [] ["<dummy>"] d ( (make_node "”s" "interp" c.weight 0 []))]*)
1201 | "«s" -> [] (* FIXME *) 1204 | "«s" -> [] (* FIXME *)
1202 | "»s" -> [] (* FIXME *) 1205 | "»s" -> [] (* FIXME *)
1203 | ":" -> 1206 | ":" ->
1204 - [LCGrenderer.make_frame_simple [] ["or"] d (LCGrenderer.make_pro_komunikat tokens)] 1207 + [LCGrenderer.make_frame_simple [] ["or"] c (LCGrenderer.make_pro_komunikat tokens lex_sems)]
1205 | ":s" -> 1208 | ":s" ->
1206 - let batrs = make_node "pro-komunikować" "pro" d.weight 0 [] in  
1207 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field SUBJ "Initiator" Backward [Phrase (Lex "<speaker>")]]] (["<colon>"]) {d with orth=""} batrs;  
1208 - LCGrenderer.make_frame x_flag tokens [] [[schema_field SUBJ "Initiator" Backward [Phrase (Lex "<speaker>")]];[schema_field OBJ "Theme" Forward [Phrase (Lex "</query>")]]] (["<colon>"]) {d with orth=""} batrs]  
1209 - (*| "<or>" -> [LCGrenderer.make_frame x_flag tokens [] [[nosem_schema_field Forward [Phrase (Lex "</or>")]]] (["or"]) {d with orth=""} (make_node "<or>" "interp" d.weight 0 [])]*) 1209 + let batrs = make_node "pro-komunikować" "pro" c.weight 0 [] in
  1210 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field SUBJ "Initiator" Backward [Phrase (Lex "<speaker>")]]] (["<colon>"]) {c with orth=""} batrs;
  1211 + LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field SUBJ "Initiator" Backward [Phrase (Lex "<speaker>")]];[schema_field OBJ "Theme" Forward [Phrase (Lex "</query>")]]] (["<colon>"]) {c with orth=""} batrs]
  1212 + (*| "<or>" -> [LCGrenderer.make_frame x_flag tokens lex_sems [] [[nosem_schema_field Forward [Phrase (Lex "</or>")]]] (["or"]) {d with orth=""} (make_node "<or>" "interp" c.weight 0 [])]*)
1210 | "<or>" -> [] 1213 | "<or>" -> []
1211 | "<or-sentence>" -> (* FIXME: dodać mówcę jako pro *) 1214 | "<or-sentence>" -> (* FIXME: dodać mówcę jako pro *)
1212 - let batrs = make_node "pro-komunikować" "pro" d.weight 0 [] in  
1213 - [LCGrenderer.make_frame x_flag tokens [] [[schema_field ARG ""(*"Theme"*) Forward [Phrase (Lex "s")]]] ["<root>"] {d with orth=""} batrs;  
1214 - LCGrenderer.or_frame (make_node "<sentence>" "interp" d.weight 0 [])] 1215 + let batrs = make_node "pro-komunikować" "pro" c.weight 0 [] in
  1216 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[schema_field ARG ""(*"Theme"*) Forward [Phrase (Lex "s")]]] ["<root>"] {c with orth=""} batrs;
  1217 + LCGrenderer.or_frame (make_node "<sentence>" "interp" c.weight 0 [])]
1215 | "</or-sentence>" -> 1218 | "</or-sentence>" ->
1216 let t = ["or2"] in 1219 let t = ["or2"] in
1217 - let batrs = (make_node "</or-sentence>" "interp" d.weight 0 []) in 1220 + let batrs = (make_node "</or-sentence>" "interp" c.weight 0 []) in
1218 let schema_list = [[schema_field CLAUSE "Clause" Backward [Multi[IP;CP(Int,CompUndef);NP(Case "voc");Lex "interj"](*Phrase IP;Phrase(CP(Int,CompUndef));Phrase(NP(Case "voc"))*)]](*;[WalFrames.schema_field NOSEM "" Backward [Phrase(Lex "<sentence>")]]*)] in 1221 let schema_list = [[schema_field CLAUSE "Clause" Backward [Multi[IP;CP(Int,CompUndef);NP(Case "voc");Lex "interj"](*Phrase IP;Phrase(CP(Int,CompUndef));Phrase(NP(Case "voc"))*)]](*;[WalFrames.schema_field NOSEM "" Backward [Phrase(Lex "<sentence>")]]*)] in
1219 - [LCGrenderer.make_frame x_flag tokens [] schema_list t d batrs] 1222 + [LCGrenderer.make_frame x_flag tokens lex_sems [] schema_list t d batrs]
1220 | "</or>" -> [] 1223 | "</or>" -> []
1221 (*let t = (["</or>"]) in 1224 (*let t = (["</or>"]) in
1222 - let batrs = (make_node "</or>" "interp" d.weight 0 []) in 1225 + let batrs = (make_node "</or>" "interp" c.weight 0 []) in
1223 let schema_list = [[schema_field SENTENCE "Sentence" Backward [Multi[Lex "<sentence>"](*Phrase(Lex "s")*)]]] in 1226 let schema_list = [[schema_field SENTENCE "Sentence" Backward [Multi[Lex "<sentence>"](*Phrase(Lex "s")*)]]] in
1224 - [LCGrenderer.make_frame x_flag tokens [] schema_list t d batrs] (* FIXME: semantyka *)*) 1227 + [LCGrenderer.make_frame x_flag tokens lex_sems [] schema_list t d batrs] (* FIXME: semantyka *)*)
1225 | "<sentence>" -> 1228 | "<sentence>" ->
1226 - [LCGrenderer.make_frame x_flag tokens [] [[arg_schema_field Forward [Phrase (Lex "s")]]] ["<root>"] {d with orth=""} (make_node "<sentence>" "interp" d.weight 0 []);  
1227 - LCGrenderer.make_frame x_flag tokens [] [[arg_schema_field Forward [Phrase (NP(Case "nom"))]];[nosem_schema_field Forward [Phrase (Lex "</speaker>")]]] (["<speaker>"]) {d with orth=""} (make_node "<speaker>" "interp" d.weight 0 [])] 1229 + [LCGrenderer.make_frame x_flag tokens lex_sems [] [[arg_schema_field Forward [Phrase (Lex "s")]]] ["<root>"] {c with orth=""} (make_node "<sentence>" "interp" c.weight 0 []);
  1230 + LCGrenderer.make_frame x_flag tokens lex_sems [] [[arg_schema_field Forward [Phrase (NP(Case "nom"))]];[nosem_schema_field Forward [Phrase (Lex "</speaker>")]]] (["<speaker>"]) {c with orth=""} (make_node "<speaker>" "interp" c.weight 0 [])]
1228 | "</sentence>" -> 1231 | "</sentence>" ->
1229 let t = ["s"] in 1232 let t = ["s"] in
1230 - let batrs = (make_node "</sentence>" "interp" d.weight 0 []) in 1233 + let batrs = (make_node "</sentence>" "interp" c.weight 0 []) in
1231 let schema_list = [[schema_field CLAUSE "Clause" Backward [Multi[IP;CP(Int,CompUndef);NP(Case "voc");Lex "interj"](*Phrase IP;Phrase(CP(Int,CompUndef));Phrase(NP(Case "voc"))*)]](*;[WalFrames.schema_field NOSEM "" Backward [Phrase(Lex "<sentence>")]]*)] in 1234 let schema_list = [[schema_field CLAUSE "Clause" Backward [Multi[IP;CP(Int,CompUndef);NP(Case "voc");Lex "interj"](*Phrase IP;Phrase(CP(Int,CompUndef));Phrase(NP(Case "voc"))*)]](*;[WalFrames.schema_field NOSEM "" Backward [Phrase(Lex "<sentence>")]]*)] in
1232 - [LCGrenderer.make_frame_simple [] ["</speaker>"] d ( (make_node "</speaker>" "interp" d.weight 0 []));  
1233 - LCGrenderer.make_frame x_flag tokens [] schema_list t d batrs] 1235 + [LCGrenderer.make_frame_simple [] ["</speaker>"] c ( (make_node "</speaker>" "interp" c.weight 0 []));
  1236 + LCGrenderer.make_frame x_flag tokens lex_sems [] schema_list t d batrs]
1234 | lemma -> raise Not_found in 1237 | lemma -> raise Not_found in
1235 1238
1236 let get_labels () = { 1239 let get_labels () = {
@@ -1242,26 +1245,26 @@ let get_labels () = { @@ -1242,26 +1245,26 @@ let get_labels () = {
1242 } in 1245 } in
1243 1246
1244 (* create_entries *) 1247 (* create_entries *)
1245 - match d with 1248 + match c with
1246 {token = Interp "<clause>"} -> [BracketSet(Forward),Dot] 1249 {token = Interp "<clause>"} -> [BracketSet(Forward),Dot]
1247 | {token = Interp "</clause>"} -> [BracketSet(Backward),Dot] 1250 | {token = Interp "</clause>"} -> [BracketSet(Backward),Dot]
1248 | {token = Interp lemma} -> 1251 | {token = Interp lemma} ->
1249 (try 1252 (try
1250 - Xlist.fold (process_bracket_lemma d lemma) [] (fun l (symbol,sem) -> (Bracket(true,true,symbol),sem) :: l) 1253 + Xlist.fold (process_bracket_lemma c d lemma) [] (fun l (symbol,sem) -> (Bracket(true,true,symbol),sem) :: l)
1251 with Not_found -> 1254 with Not_found ->
1252 (* print_endline ("x"^lemma^"x"); *) 1255 (* print_endline ("x"^lemma^"x"); *)
1253 - let entries = process_interp d (lemma,"interp",[]) in 1256 + let entries = process_interp c d (lemma,"interp",[]) in
1254 Xlist.map entries (fun (symbol,sem) -> Bracket(false,false,symbol),sem)) 1257 Xlist.map entries (fun (symbol,sem) -> Bracket(false,false,symbol),sem))
1255 | {token = Lemma(lemma,"sinterj",[[]])} -> 1258 | {token = Lemma(lemma,"sinterj",[[]])} ->
1256 let t = ["interj"] in 1259 let t = ["interj"] in
1257 - let batrs = make_node lemma "sinterj" d.weight 0 [] in  
1258 - let symbol,sem = LCGrenderer.make_frame_simple [] t d ( batrs) in 1260 + let batrs = make_node lemma "sinterj" c.weight 0 [] in
  1261 + let symbol,sem = LCGrenderer.make_frame_simple [] t c ( batrs) in
1259 [Bracket(true,true,symbol),sem] 1262 [Bracket(true,true,symbol),sem]
1260 | {token = Lemma(lemma,pos,interp)} -> 1263 | {token = Lemma(lemma,pos,interp)} ->
1261 (* print_endline (lemma ^ " " ^ pos); *) 1264 (* print_endline (lemma ^ " " ^ pos); *)
1262 Xlist.fold interp [] (fun l tags -> 1265 Xlist.fold interp [] (fun l tags ->
1263 let d = {d with e=get_labels (); valence=LCGrenderer.make_controll d.valence} in 1266 let d = {d with e=get_labels (); valence=LCGrenderer.make_controll d.valence} in
1264 - let entries = process_interp d (lemma,pos,tags) in 1267 + let entries = process_interp c d (lemma,pos,tags) in
1265 Xlist.map entries (fun (symbol,sem) -> Bracket(false,false,symbol),sem) @ l) 1268 Xlist.map entries (fun (symbol,sem) -> Bracket(false,false,symbol),sem) @ l)
1266 | _ -> [] 1269 | _ -> []
1267 1270
@@ -1280,10 +1283,11 @@ let create (paths,last) tokens lex_sems = @@ -1280,10 +1283,11 @@ let create (paths,last) tokens lex_sems =
1280 uni_weight := 0.; 1283 uni_weight := 0.;
1281 let chart = LCGchart.make last in 1284 let chart = LCGchart.make last in
1282 let chart = Xlist.fold paths chart (fun chart (id,lnode,rnode) -> 1285 let chart = Xlist.fold paths chart (fun chart (id,lnode,rnode) ->
1283 - let t = ExtArray.get tokens id in 1286 + let c = ExtArray.get tokens id in
  1287 + let d = ExtArray.get lex_sems id in
1284 (* if t.weight < -0.9 || Xlist.mem t.attrs "notvalidated proper" || Xlist.mem t.attrs "lemmatized as lowercase" then chart else *) 1288 (* if t.weight < -0.9 || Xlist.mem t.attrs "notvalidated proper" || Xlist.mem t.attrs "lemmatized as lowercase" then chart else *)
1285 - let chart = LCGchart.add_inc chart lnode rnode (Tensor[Atom ("[" ^ t.orth ^ "]")], Dot) 0 in  
1286 - LCGchart.add_inc_list chart lnode rnode (create_entries tokens id (t:PreTypes.token_record) false) 0) in 1289 + let chart = LCGchart.add_inc chart lnode rnode (Tensor[Atom ("[" ^ c.orth ^ "]")], Dot) 0 in
  1290 + LCGchart.add_inc_list chart lnode rnode (create_entries tokens lex_sems id (c:ENIAMtokenizerTypes.token_record) d false) 0) in
1287 let set = Xlist.fold paths IntIntSet.empty (fun set (_,lnode,rnode) -> IntIntSet.add set (lnode,rnode)) in 1291 let set = Xlist.fold paths IntIntSet.empty (fun set (_,lnode,rnode) -> IntIntSet.add set (lnode,rnode)) in
1288 let chart = IntIntSet.fold set chart (fun chart (i,j) -> LCGchart.make_unique chart i j) in 1292 let chart = IntIntSet.fold set chart (fun chart (i,j) -> LCGchart.make_unique chart i j) in
1289 chart 1293 chart
@@ -1299,13 +1303,14 @@ let rec dep_create_rec nodes sons conll_id = @@ -1299,13 +1303,14 @@ let rec dep_create_rec nodes sons conll_id =
1299 (* Printf.printf "dep_create_rec [%s] %d [%s]\n" (String.concat ";" (Xlist.map left string_of_int)) conll_id (String.concat ";" (Xlist.map right string_of_int)); *) 1303 (* Printf.printf "dep_create_rec [%s] %d [%s]\n" (String.concat ";" (Xlist.map left string_of_int)) conll_id (String.concat ";" (Xlist.map right string_of_int)); *)
1300 DepNode(conll_id, Xlist.map left (dep_create_rec nodes sons), node, Xlist.map right (dep_create_rec nodes sons)) 1304 DepNode(conll_id, Xlist.map left (dep_create_rec nodes sons), node, Xlist.map right (dep_create_rec nodes sons))
1301 1305
1302 -let dep_create paths tokens = 1306 +let dep_create paths tokens lex_sems =
1303 uni_weight := 0.; 1307 uni_weight := 0.;
1304 let sons = Int.fold 1 (Array.length paths - 1) IntMap.empty (fun sons i -> 1308 let sons = Int.fold 1 (Array.length paths - 1) IntMap.empty (fun sons i ->
1305 let _,super,_ = paths.(i) in 1309 let _,super,_ = paths.(i) in
1306 IntMap.add_inc sons super [i] (fun l -> i :: l)) in 1310 IntMap.add_inc sons super [i] (fun l -> i :: l)) in
1307 let nodes = Int.fold 0 (Array.length paths - 1) IntMap.empty (fun nodes i -> 1311 let nodes = Int.fold 0 (Array.length paths - 1) IntMap.empty (fun nodes i ->
1308 let id,_,_ = paths.(i) in 1312 let id,_,_ = paths.(i) in
1309 - let t = ExtArray.get tokens id in  
1310 - IntMap.add nodes i (create_entries tokens id t true)) in 1313 + let c = ExtArray.get tokens id in
  1314 + let d = ExtArray.get lex_sems id in
  1315 + IntMap.add nodes i (create_entries tokens lex_sems id c d true)) in
1311 dep_create_rec nodes sons 0 1316 dep_create_rec nodes sons 0
parser/LCGrenderer.ml
@@ -17,8 +17,9 @@ @@ -17,8 +17,9 @@
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *) 18 *)
19 19
20 -open WalTypes  
21 -open PreTypes 20 +open ENIAMtokenizerTypes
  21 +open ENIAMwalTypes
  22 +open ENIAMlexSemanticsTypes
22 open Xstd 23 open Xstd
23 24
24 let dir_of_dir = function 25 let dir_of_dir = function
@@ -189,7 +190,7 @@ let make_arg_phrase = function @@ -189,7 +190,7 @@ let make_arg_phrase = function
189 | Null -> One 190 | Null -> One
190 | X -> Tensor[Atom "X"] 191 | X -> Tensor[Atom "X"]
191 | Lex lex -> Tensor[Atom lex] 192 | Lex lex -> Tensor[Atom lex]
192 - | phrase -> failwith ("make_arg_phrase: " ^ WalStringOf.phrase phrase) 193 + | phrase -> failwith ("make_arg_phrase: " ^ ENIAMwalStringOf.phrase phrase)
193 194
194 let make_arg_pos = function (* wprowadzam uzgodnienia a nie wartości cech, bo wartości cech są wprowadzane przez leksem a uzgodnienia wiążą je z wartościami u nadrzędnika *) 195 let make_arg_pos = function (* wprowadzam uzgodnienia a nie wartości cech, bo wartości cech są wprowadzane przez leksem a uzgodnienia wiążą je z wartościami u nadrzędnika *)
195 | SUBST(_,Case case) -> [Atom "subst"; Top; Atom case; Top; Top] 196 | SUBST(_,Case case) -> [Atom "subst"; Top; Atom case; Top; Top]
@@ -226,7 +227,7 @@ let make_arg_pos = function (* wprowadzam uzgodnienia a nie wartości cech, bo w @@ -226,7 +227,7 @@ let make_arg_pos = function (* wprowadzam uzgodnienia a nie wartości cech, bo w
226 | COMPAR -> [Atom "TODO"] (* FIXME: todo *) 227 | COMPAR -> [Atom "TODO"] (* FIXME: todo *)
227 | COMP ctype -> [Atom "comp"; arg_of_ctype ctype] 228 | COMP ctype -> [Atom "comp"; arg_of_ctype ctype]
228 | PERS _ -> [Atom "TODO"] (* FIXME: todo *) 229 | PERS _ -> [Atom "TODO"] (* FIXME: todo *)
229 - | pos -> failwith ("make_arg_pos: " ^ WalStringOf.pos pos) 230 + | pos -> failwith ("make_arg_pos: " ^ ENIAMwalStringOf.pos pos)
230 231
231 let rec make_arg quant = function 232 let rec make_arg quant = function
232 Phrase phrase -> make_arg_phrase phrase 233 Phrase phrase -> make_arg_phrase phrase
@@ -234,7 +235,7 @@ let rec make_arg quant = function @@ -234,7 +235,7 @@ let rec make_arg quant = function
234 | LexArg(id,arg,lex) -> Tensor([Atom "lex";Atom id;Atom lex] @ make_arg_pos arg) 235 | LexArg(id,arg,lex) -> Tensor([Atom "lex";Atom id;Atom lex] @ make_arg_pos arg)
235 (* | LexRealization(arg,lex) -> (match make_arg arg with Tensor l -> Tensor([Atom "lexr";Atom lex] @ l) | _ -> failwith "make_arg") *) 236 (* | LexRealization(arg,lex) -> (match make_arg arg with Tensor l -> Tensor([Atom "lexr";Atom lex] @ l) | _ -> failwith "make_arg") *)
236 | Raised(arg1,dir,arg2) -> Imp(Tensor(make_tensor_type quant arg1),dir_of_dir dir,Tensor(make_tensor_type quant arg2)) 237 | Raised(arg1,dir,arg2) -> Imp(Tensor(make_tensor_type quant arg1),dir_of_dir dir,Tensor(make_tensor_type quant arg2))
237 - | morf -> failwith ("make_arg: " ^ WalStringOf.morf morf) 238 + | morf -> failwith ("make_arg: " ^ ENIAMwalStringOf.morf morf)
238 239
239 let empty_schema_field = 240 let empty_schema_field =
240 {gf=NOGF; role=""; role_attr=""; sel_prefs=[]; cr=[]; ce=[]; dir=Both; morfs=[]} 241 {gf=NOGF; role=""; role_attr=""; sel_prefs=[]; cr=[]; ce=[]; dir=Both; morfs=[]}
@@ -252,19 +253,22 @@ let get_pro_id () = @@ -252,19 +253,22 @@ let get_pro_id () =
252 incr pro_id_counter; 253 incr pro_id_counter;
253 !pro_id_counter*) 254 !pro_id_counter*)
254 255
255 -let make_pro tokens =  
256 - let t = {empty_token with token=Lemma("pro","pro",[]); senses=["pro",["0"],0.]} in 256 +let make_pro tokens lex_sems =
  257 + let t = {empty_token with token=Lemma("pro","pro",[])} in
257 let id = ExtArray.add tokens t in 258 let id = ExtArray.add tokens t in
  259 + let _ = ExtArray.add lex_sems {empty_lex_sem with senses=["pro",["0"],0.]} in
258 Node{empty_node with pred="pro"; cat="pro"; weight=0.; id=id; attrs=[]; args=Dot} 260 Node{empty_node with pred="pro"; cat="pro"; weight=0.; id=id; attrs=[]; args=Dot}
259 261
260 -let make_prong tokens =  
261 - let t = {empty_token with token=Lemma("pro","pro",[]); senses=["pro",["0"],0.]} in 262 +let make_prong tokens lex_sems =
  263 + let t = {empty_token with token=Lemma("pro","pro",[])} in
262 let id = ExtArray.add tokens t in 264 let id = ExtArray.add tokens t in
  265 + let _ = ExtArray.add lex_sems {empty_lex_sem with senses=["pro",["0"],0.]} in
263 Node{empty_node with pred="pro"; cat="pro"; weight=0.; id=id; attrs=["NUM",SubstVar "number";"GEND",SubstVar "gender";"PERS",SubstVar "person"]; args=Dot} 266 Node{empty_node with pred="pro"; cat="pro"; weight=0.; id=id; attrs=["NUM",SubstVar "number";"GEND",SubstVar "gender";"PERS",SubstVar "person"]; args=Dot}
264 267
265 -let make_pro_komunikat tokens =  
266 - let t = {empty_token with token=Lemma("pro-komunikat","pro",[]); senses=["pro-komunikat",["0"],0.]} in 268 +let make_pro_komunikat tokens lex_sems =
  269 + let t = {empty_token with token=Lemma("pro-komunikat","pro",[])} in
267 let id = ExtArray.add tokens t in 270 let id = ExtArray.add tokens t in
  271 + let _ = ExtArray.add lex_sems {empty_lex_sem with senses=["pro-komunikat",["0"],0.]} in
268 {empty_node with pred="pro-komunikat"; cat="pro"; weight=10.; id=id; attrs=[]; args=Dot} 272 {empty_node with pred="pro-komunikat"; cat="pro"; weight=10.; id=id; attrs=[]; args=Dot}
269 273
270 let make_var vars gf = 274 let make_var vars gf =
@@ -299,7 +303,7 @@ let make_var vars gf = @@ -299,7 +303,7 @@ let make_var vars gf =
299 | CLAUSE -> "clause" 303 | CLAUSE -> "clause"
300 | SENTENCE -> "sentence"*) 304 | SENTENCE -> "sentence"*)
301 305
302 -let make_args tokens quant var_map v = function 306 +let make_args tokens lex_sems quant var_map v = function
303 {gf=RAISED; morfs=[arg]} as s -> 307 {gf=RAISED; morfs=[arg]} as s ->
304 let arg = make_arg quant arg in 308 let arg = make_arg quant arg in
305 ((dir_of_dir s.dir,arg),v,[],[Var v]),var_map 309 ((dir_of_dir s.dir,arg),v,[],[Var v]),var_map
@@ -325,10 +329,10 @@ let make_args tokens quant var_map v = function @@ -325,10 +329,10 @@ let make_args tokens quant var_map v = function
325 | s -> (* FIXME: argument pusty występuje tyle razy ile jest preferencji, a chyba powinien jeden raz *) 329 | s -> (* FIXME: argument pusty występuje tyle razy ile jest preferencji, a chyba powinien jeden raz *)
326 let args2 = Xlist.map s.morfs (fun morf -> make_arg quant morf, morf) in 330 let args2 = Xlist.map s.morfs (fun morf -> make_arg quant morf, morf) in
327 let sem_args = Xlist.map args2 (function 331 let sem_args = Xlist.map args2 (function
328 - One, Phrase Pro -> SetAttr("MORF",Morf(Phrase Pro),make_pro tokens) (*s.sel_prefs*)  
329 - | One, Phrase ProNG -> SetAttr("MORF",Morf(Phrase ProNG),make_prong tokens) (*s.sel_prefs*)  
330 - | One, E Pro -> SetAttr("MORF",Morf(E Pro ),make_pro tokens) (*s.sel_prefs*)  
331 - | One, E ProNG -> SetAttr("MORF",Morf(E ProNG),make_prong tokens) (*s.sel_prefs*) 332 + One, Phrase Pro -> SetAttr("MORF",Morf(Phrase Pro),make_pro tokens lex_sems) (*s.sel_prefs*)
  333 + | One, Phrase ProNG -> SetAttr("MORF",Morf(Phrase ProNG),make_prong tokens lex_sems) (*s.sel_prefs*)
  334 + | One, E Pro -> SetAttr("MORF",Morf(E Pro ),make_pro tokens lex_sems) (*s.sel_prefs*)
  335 + | One, E ProNG -> SetAttr("MORF",Morf(E ProNG),make_prong tokens lex_sems) (*s.sel_prefs*)
332 | One, Phrase Null -> Dot 336 | One, Phrase Null -> Dot
333 | One, _ -> failwith "make_args 3" 337 | One, _ -> failwith "make_args 3"
334 | _,morf -> SetAttr("MORF",Morf morf,Var "q")) in 338 | _,morf -> SetAttr("MORF",Morf morf,Var "q")) in
@@ -340,14 +344,14 @@ let make_args tokens quant var_map v = function @@ -340,14 +344,14 @@ let make_args tokens quant var_map v = function
340 ((dir_of_dir s.dir,Plus(Xlist.map args2 fst)),v, 344 ((dir_of_dir s.dir,Plus(Xlist.map args2 fst)),v,
341 [Case(Var v,Xlist.map sem_args (function Dot -> "q",Dot | t -> "q",Cut(SetAttr("AROLE",Val s.role,SetAttr("GF",Gf s.gf,(*SetElem*) t)))))],[]),var_map 345 [Case(Var v,Xlist.map sem_args (function Dot -> "q",Dot | t -> "q",Cut(SetAttr("AROLE",Val s.role,SetAttr("GF",Gf s.gf,(*SetElem*) t)))))],[]),var_map
342 346
343 -let make_args2 tokens quant var_map s = 347 +let make_args2 tokens lex_sems quant var_map s =
344 let v,var_map = make_var var_map (String.lowercase s.role) (*gf*) in 348 let v,var_map = make_var var_map (String.lowercase s.role) (*gf*) in
345 (* let s = {s with morfs=List.flatten (Xlist.map s.morfs (function E l -> Xlist.map l (fun p -> E[p]) | m -> [m]))} in *) 349 (* let s = {s with morfs=List.flatten (Xlist.map s.morfs (function E l -> Xlist.map l (fun p -> E[p]) | m -> [m]))} in *)
346 - make_args tokens quant var_map v s 350 + make_args tokens lex_sems quant var_map v s
347 351
348 -let make_schema tokens quant schema var_map = 352 +let make_schema tokens lex_sems quant schema var_map =
349 let schema,_,var_map = Xlist.fold schema ([],StringMap.empty,var_map) (fun (schema,labels,var_map) s -> 353 let schema,_,var_map = Xlist.fold schema ([],StringMap.empty,var_map) (fun (schema,labels,var_map) s ->
350 - let schema_pos,var_map = make_args2 tokens quant var_map s in 354 + let schema_pos,var_map = make_args2 tokens lex_sems quant var_map s in
351 schema_pos :: schema, labels, var_map) in 355 schema_pos :: schema, labels, var_map) in
352 Xlist.fold schema ([],[],[],[]) (fun (args,vars,sem_args,raised_args) (arg,var,sem_arg,raised_arg) -> 356 Xlist.fold schema ([],[],[],[]) (fun (args,vars,sem_args,raised_args) (arg,var,sem_arg,raised_arg) ->
353 arg :: args, var :: vars, sem_arg @ sem_args, raised_arg @ raised_args), var_map 357 arg :: args, var :: vars, sem_arg @ sem_args, raised_arg @ raised_args), var_map
@@ -356,11 +360,11 @@ let add_x_args schema_list = @@ -356,11 +360,11 @@ let add_x_args schema_list =
356 [{gf=ADJUNCT; role="Unknown Backward"; role_attr="Backward"; sel_prefs=[]; cr=[]; ce=[]; dir=Backward; morfs=[Multi[X]]}; 360 [{gf=ADJUNCT; role="Unknown Backward"; role_attr="Backward"; sel_prefs=[]; cr=[]; ce=[]; dir=Backward; morfs=[Multi[X]]};
357 {gf=ADJUNCT; role="Unknown Forward"; role_attr="Forward"; sel_prefs=[]; cr=[]; ce=[]; dir=Forward; morfs=[Multi[X]]}] :: schema_list 361 {gf=ADJUNCT; role="Unknown Forward"; role_attr="Forward"; sel_prefs=[]; cr=[]; ce=[]; dir=Forward; morfs=[Multi[X]]}] :: schema_list
358 362
359 -let make_frame x_flag tokens quant schema_list tl d node = (* UWAGA: to zadziała, gdy jest conajwyżej jeden podniesiony typ *) 363 +let make_frame x_flag tokens lex_sems quant schema_list tl d node = (* UWAGA: to zadziała, gdy jest conajwyżej jeden podniesiony typ *)
360 let schema_list = if x_flag then add_x_args schema_list else schema_list in 364 let schema_list = if x_flag then add_x_args schema_list else schema_list in
361 let args_vars_list,sem_args,raised_args,_ = Xlist.fold schema_list ([],[],[],StringMap.empty) (fun (args_vars_list,sem_args,raised_args,var_map) schema -> 365 let args_vars_list,sem_args,raised_args,_ = Xlist.fold schema_list ([],[],[],StringMap.empty) (fun (args_vars_list,sem_args,raised_args,var_map) schema ->
362 -(* print_endline (WalStringOf.schema schema); *)  
363 - let (args,vars,sem_arg,raised_arg),var_map = make_schema tokens quant schema var_map in 366 +(* print_endline (ENIAMwalStringOf.schema schema); *)
  367 + let (args,vars,sem_arg,raised_arg),var_map = make_schema tokens lex_sems quant schema var_map in
364 (args,vars) :: args_vars_list, sem_arg @ sem_args, raised_arg @ raised_args, var_map) in 368 (args,vars) :: args_vars_list, sem_arg @ sem_args, raised_arg @ raised_args, var_map) in
365 let t = Tensor(make_tensor_type quant tl) in 369 let t = Tensor(make_tensor_type quant tl) in
366 let at = Xlist.fold schema_list tl (fun at schema -> 370 let at = Xlist.fold schema_list tl (fun at schema ->
@@ -379,9 +383,9 @@ let make_frame x_flag tokens quant schema_list tl d node = (* UWAGA: to zadział @@ -379,9 +383,9 @@ let make_frame x_flag tokens quant schema_list tl d node = (* UWAGA: to zadział
379 simplify_impset (ImpSet(t,args),LambdaSet(vars,sem))) in 383 simplify_impset (ImpSet(t,args),LambdaSet(vars,sem))) in
380 make_type_quantification quant (t,sem) 384 make_type_quantification quant (t,sem)
381 385
382 -let make_frame_raised tokens quant schema_list tl d node sem_mods = 386 +let make_frame_raised tokens lex_sems quant schema_list tl d node sem_mods =
383 let args_vars_list,sem_args,raised_args,_ = Xlist.fold schema_list ([],[],[],StringMap.empty) (fun (args_vars_list,sem_args,raised_args,var_map) schema -> 387 let args_vars_list,sem_args,raised_args,_ = Xlist.fold schema_list ([],[],[],StringMap.empty) (fun (args_vars_list,sem_args,raised_args,var_map) schema ->
384 - let (args,vars,sem_arg,raised_arg),var_map = make_schema tokens quant schema var_map in 388 + let (args,vars,sem_arg,raised_arg),var_map = make_schema tokens lex_sems quant schema var_map in
385 (args,vars) :: args_vars_list, sem_arg @ sem_args, raised_arg @ raised_args, var_map) in 389 (args,vars) :: args_vars_list, sem_arg @ sem_args, raised_arg @ raised_args, var_map) in
386 let t = Tensor(make_tensor_type quant tl) in 390 let t = Tensor(make_tensor_type quant tl) in
387 let at = Xlist.fold (List.rev schema_list) tl (fun at schema -> 391 let at = Xlist.fold (List.rev schema_list) tl (fun at schema ->
@@ -400,6 +404,7 @@ let make_frame_raised tokens quant schema_list tl d node sem_mods = @@ -400,6 +404,7 @@ let make_frame_raised tokens quant schema_list tl d node sem_mods =
400 | _ -> failwith "make_frame_raised: raised_args" in 404 | _ -> failwith "make_frame_raised: raised_args" in
401 let sem = Xlist.fold sem_mods sem (fun sem (e,t) -> SetAttr(e,t,sem)) in 405 let sem = Xlist.fold sem_mods sem (fun sem (e,t) -> SetAttr(e,t,sem)) in
402 let id = ExtArray.add tokens {empty_token with token=Lemma("raised","raised",[])} in (* FIXME: czy raised to jest to co tu być powinno? *) 406 let id = ExtArray.add tokens {empty_token with token=Lemma("raised","raised",[])} in (* FIXME: czy raised to jest to co tu być powinno? *)
  407 + let _ = ExtArray.add lex_sems empty_lex_sem in
403 let sem = Node{empty_node with args = Cut(SetAttr("GF",Gf CORE,sem)); id=id; gs=make_gs quant tl} in 408 let sem = Node{empty_node with args = Cut(SetAttr("GF",Gf CORE,sem)); id=id; gs=make_gs quant tl} in
404 let t,sem = Xlist.fold args_vars_list (t,sem) (fun (t,sem) (args,vars) -> 409 let t,sem = Xlist.fold args_vars_list (t,sem) (fun (t,sem) (args,vars) ->
405 simplify_impset (ImpSet(t,args),LambdaSet(vars,sem))) in 410 simplify_impset (ImpSet(t,args),LambdaSet(vars,sem))) in
parser/LCGstringOf.ml
@@ -56,8 +56,8 @@ let rec linear_term c = function @@ -56,8 +56,8 @@ let rec linear_term c = function
56 "[" ^ 56 "[" ^
57 (String.concat "; " (Xlist.map (["PRED",Val t.pred;"CAT",Val t.cat;"ID",Val (string_of_int t.id);"WEIGHT",Val (string_of_float t.weight);"GS",t.gs;"ARGS",t.args] @ t.attrs) (fun (e,t) -> 57 (String.concat "; " (Xlist.map (["PRED",Val t.pred;"CAT",Val t.cat;"ID",Val (string_of_int t.id);"WEIGHT",Val (string_of_float t.weight);"GS",t.gs;"ARGS",t.args] @ t.attrs) (fun (e,t) ->
58 e ^ ": " ^ (linear_term 0 t)))) ^ "]" 58 e ^ ": " ^ (linear_term 0 t)))) ^ "]"
59 - | Morf m -> WalStringOf.morf m  
60 - | Gf s -> WalStringOf.gf s 59 + | Morf m -> ENIAMwalStringOf.morf m
  60 + | Gf s -> ENIAMwalStringOf.gf s
61 | Ref i -> "ref " ^ string_of_int i 61 | Ref i -> "ref " ^ string_of_int i
62 | Cut t -> "cut(" ^ linear_term 0 t ^ ")" 62 | Cut t -> "cut(" ^ linear_term 0 t ^ ")"
63 | Choice choices -> "choice(" ^ String.concat ";" (StringMap.fold choices [] (fun l ei t -> (sprintf "%s: %s" ei (linear_term 0 t)) :: l)) ^ ")" 63 | Choice choices -> "choice(" ^ String.concat ";" (StringMap.fold choices [] (fun l ei t -> (sprintf "%s: %s" ei (linear_term 0 t)) :: l)) ^ ")"
parser/LCGtypes.ml
@@ -29,14 +29,14 @@ type node = { @@ -29,14 +29,14 @@ type node = {
29 weight: float; 29 weight: float;
30 id: int; 30 id: int;
31 gs: linear_term; 31 gs: linear_term;
32 - agf: WalTypes.gf;  
33 - amorf: WalTypes.morf; 32 + agf: ENIAMwalTypes.gf;
  33 + amorf: ENIAMwalTypes.morf;
34 arole: string; 34 arole: string;
35 arole_attr: string; 35 arole_attr: string;
36 meaning: string; 36 meaning: string;
37 hipero: StringSet.t; 37 hipero: StringSet.t;
38 meaning_weight: float; 38 meaning_weight: float;
39 - position: WalTypes.schema_field; 39 + position: ENIAMwalTypes.schema_field;
40 attrs: (string * linear_term) list; 40 attrs: (string * linear_term) list;
41 args: linear_term} 41 args: linear_term}
42 42
@@ -72,8 +72,8 @@ and linear_term = @@ -72,8 +72,8 @@ and linear_term =
72 | Apply of linear_term 72 | Apply of linear_term
73 | Insert of linear_term * linear_term 73 | Insert of linear_term * linear_term
74 | Node of node 74 | Node of node
75 - | Morf of WalTypes.morf  
76 - | Gf of WalTypes.gf 75 + | Morf of ENIAMwalTypes.morf
  76 + | Gf of ENIAMwalTypes.gf
77 | Choice of linear_term StringMap.t (*string * string * linear_term*) (* etykieta * indeks * term *) 77 | Choice of linear_term StringMap.t (*string * string * linear_term*) (* etykieta * indeks * term *)
78 | Concept of concept 78 | Concept of concept
79 | Context of context 79 | Context of context
parser/LCGvalence.ml
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *) 18 *)
19 19
20 -open WalTypes 20 +open ENIAMwalTypes
21 open LCGtypes 21 open LCGtypes
22 open Printf 22 open Printf
23 open Xstd 23 open Xstd
@@ -56,29 +56,30 @@ let extract_roles = function @@ -56,29 +56,30 @@ let extract_roles = function
56 | _ -> failwith "extract_roles" 56 | _ -> failwith "extract_roles"
57 57
58 let get_lemma = function 58 let get_lemma = function
59 - PreTypes.Lemma(lemma,cat,_) -> lemma,cat  
60 - | PreTypes.Interp lemma -> lemma,"interp" 59 + ENIAMtokenizerTypes.Lemma(lemma,cat,_) -> lemma,cat
  60 + | ENIAMtokenizerTypes.Interp lemma -> lemma,"interp"
61 | _ -> "","" 61 | _ -> "",""
62 62
63 -let prepare_valence tokens = 63 +let prepare_valence tokens lex_sems =
64 let valence = Array.make (ExtArray.size tokens) [] in 64 let valence = Array.make (ExtArray.size tokens) [] in
65 Int.iter 1 (ExtArray.size tokens - 1) (fun id -> 65 Int.iter 1 (ExtArray.size tokens - 1) (fun id ->
66 - let d = ExtArray.get tokens id in  
67 - let lemma,cat = get_lemma d.PreTypes.token in 66 + let c = ExtArray.get tokens id in
  67 + let d = ExtArray.get lex_sems id in
  68 + let lemma,cat = get_lemma c.ENIAMtokenizerTypes.token in
68 let lemma = if lemma = "<or-sentence>" (*|| lemma = ":s" || lemma = "„s"*) then "pro-komunikować" else lemma in 69 let lemma = if lemma = "<or-sentence>" (*|| lemma = ":s" || lemma = "„s"*) then "pro-komunikować" else lemma in
69 if lemma = "" then () else 70 if lemma = "" then () else
70 let prep_valence = 71 let prep_valence =
71 if cat = "prep" then 72 if cat = "prep" then
72 (* (0,lemma,StringSet.empty,0.,"NOSEM","",Frame(EmptyAtrs[],[])) :: *) 73 (* (0,lemma,StringSet.empty,0.,"NOSEM","",Frame(EmptyAtrs[],[])) :: *)
73 - match d.PreTypes.semantics with  
74 - PreTypes.Normal -> []  
75 - | PreTypes.PrepSemantics l ->  
76 - Xlist.rev_map l (fun (lrole,lrole_attr,hipero,sel_prefs) -> 74 + match d.ENIAMlexSemanticsTypes.semantics with
  75 + ENIAMlexSemanticsTypes.Normal -> []
  76 + | ENIAMlexSemanticsTypes.PrepSemantics l -> (* FIXME: uzgadnianie cases *)
  77 + Xlist.rev_map l (fun (case,lrole,lrole_attr,hipero,sel_prefs) ->
77 0,lemma,hipero,0.,lrole,lrole_attr,Frame(EmptyAtrs[],[])) 78 0,lemma,hipero,0.,lrole,lrole_attr,Frame(EmptyAtrs[],[]))
78 | _ -> failwith "prepare_valence" 79 | _ -> failwith "prepare_valence"
79 else [] in 80 else [] in
80 - let valence2 = if d.PreTypes.valence = [] then [0,Frame(EmptyAtrs[],[])] else d.PreTypes.valence in  
81 - let lrole,lrole_attr = d.PreTypes.lroles in 81 + let valence2 = if d.ENIAMlexSemanticsTypes.valence = [] then [0,Frame(EmptyAtrs[],[])] else d.ENIAMlexSemanticsTypes.valence in
  82 + let lrole,lrole_attr = d.ENIAMlexSemanticsTypes.lroles in
82 valence.(id) <- prep_valence @ List.flatten (Xlist.map valence2 (function 83 valence.(id) <- prep_valence @ List.flatten (Xlist.map valence2 (function
83 fnum,Frame(attrs,schema) -> 84 fnum,Frame(attrs,schema) ->
84 let meanings,lemma,attrs = extract_meaning lemma attrs in 85 let meanings,lemma,attrs = extract_meaning lemma attrs in
@@ -86,14 +87,14 @@ let prepare_valence tokens = @@ -86,14 +87,14 @@ let prepare_valence tokens =
86 if cat = "pact" || cat = "ppas" then extract_roles attrs else 87 if cat = "pact" || cat = "ppas" then extract_roles attrs else
87 if cat = "pcon" then "Con","" else 88 if cat = "pcon" then "Con","" else
88 if cat = "pant" then "Ant","" else 89 if cat = "pant" then "Ant","" else
89 - d.PreTypes.lroles in  
90 - Xlist.map (prepare_senses lemma meanings d.PreTypes.senses) (fun (meaning,hipero,weight) -> 90 + d.ENIAMlexSemanticsTypes.lroles in
  91 + Xlist.map (prepare_senses lemma meanings d.ENIAMlexSemanticsTypes.senses) (fun (meaning,hipero,weight) ->
91 let hipero = if cat = "conj" then ["0"] else hipero in 92 let hipero = if cat = "conj" then ["0"] else hipero in
92 fnum,meaning,StringSet.of_list hipero,weight,lrole,lrole_attr, 93 fnum,meaning,StringSet.of_list hipero,weight,lrole,lrole_attr,
93 Frame(attrs,Xlist.map schema (fun s -> 94 Frame(attrs,Xlist.map schema (fun s ->
94 (* let s = if s.sel_prefs=[] then (print_endline ("prepare_valence empty sel_prefs: " ^ lemma ^ " " ^ cat); {s with sel_prefs=["ALL"]}) else s in *) 95 (* let s = if s.sel_prefs=[] then (print_endline ("prepare_valence empty sel_prefs: " ^ lemma ^ " " ^ cat); {s with sel_prefs=["ALL"]}) else s in *)
95 if s.role="" && s.gf <> ADJUNCT && s.gf <> NOSEM then ( 96 if s.role="" && s.gf <> ADJUNCT && s.gf <> NOSEM then (
96 - printf "%d: %s\n%!" fnum (WalStringOf.frame lemma (Frame(attrs,schema))); 97 + printf "%d: %s\n%!" fnum (ENIAMwalStringOf.frame lemma (Frame(attrs,schema)));
97 failwith ("prepare_valence empty role: " ^ lemma ^ " " ^ cat)) else 98 failwith ("prepare_valence empty role: " ^ lemma ^ " " ^ cat)) else
98 {s with morfs=List.sort compare s.morfs}))) 99 {s with morfs=List.sort compare s.morfs})))
99 | fnum,(LexFrame _ as frame) -> [fnum,"lex",StringSet.empty,0.,lrole,lrole_attr,frame] 100 | fnum,(LexFrame _ as frame) -> [fnum,"lex",StringSet.empty,0.,lrole,lrole_attr,frame]
@@ -194,9 +195,9 @@ let match_args_pos modifications nodes e i schema t = @@ -194,9 +195,9 @@ let match_args_pos modifications nodes e i schema t =
194 let schema,selected = 195 let schema,selected =
195 if morfs = [] then schema,[] else 196 if morfs = [] then schema,[] else
196 let morfs = List.sort compare morfs in 197 let morfs = List.sort compare morfs in
197 -(* printf "gf=%s morfs=%s\n%!" (WalStringOf.gf gf) (String.concat ";" (Xlist.map morfs WalStringOf.morf)); *) 198 +(* printf "gf=%s morfs=%s\n%!" (ENIAMwalStringOf.gf gf) (String.concat ";" (Xlist.map morfs ENIAMwalStringOf.morf)); *)
198 Xlist.fold schema ([],[]) (fun (schema,selected) pos -> 199 Xlist.fold schema ([],[]) (fun (schema,selected) pos ->
199 -(* printf "pos.gf=%s pos.morfs=%s\n%!" (WalStringOf.gf pos.gf) (String.concat ";" (Xlist.map pos.morfs WalStringOf.morf)); *) 200 +(* printf "pos.gf=%s pos.morfs=%s\n%!" (ENIAMwalStringOf.gf pos.gf) (String.concat ";" (Xlist.map pos.morfs ENIAMwalStringOf.morf)); *)
200 if gf = pos.gf || (gf = ADJUNCT && pos.gf=ARG) then 201 if gf = pos.gf || (gf = ADJUNCT && pos.gf=ARG) then
201 if match_position (morfs,(*mark_sem_morfs*) pos.morfs) then schema, pos :: selected else pos :: schema, selected 202 if match_position (morfs,(*mark_sem_morfs*) pos.morfs) then schema, pos :: selected else pos :: schema, selected
202 else pos :: schema, selected) in 203 else pos :: schema, selected) in
@@ -288,17 +289,17 @@ let rec propagate_nosem_selprefs modifications ei = function @@ -288,17 +289,17 @@ let rec propagate_nosem_selprefs modifications ei = function
288 if (t.cat = "prep" && t.arole = "NOSEM") || t.cat = "num" then 289 if (t.cat = "prep" && t.arole = "NOSEM") || t.cat = "num" then
289 let refs = IntSet.of_list (get_arg_refs [] t.args) in 290 let refs = IntSet.of_list (get_arg_refs [] t.args) in
290 IntSet.iter refs (fun r -> 291 IntSet.iter refs (fun r ->
291 - modifications.(r) <- StringMap.add_inc modifications.(r) ei t.position.WalTypes.sel_prefs (fun l ->  
292 - if l = t.position.WalTypes.sel_prefs then l else failwith ("propagate_nosem_selprefs 1: [" ^ String.concat ";" l ^ "] [" ^ String.concat ";" t.position.WalTypes.sel_prefs ^ "]")));  
293 - Node{t with position= {t.position with WalTypes.sel_prefs = []}} 292 + modifications.(r) <- StringMap.add_inc modifications.(r) ei t.position.ENIAMwalTypes.sel_prefs (fun l ->
  293 + if l = t.position.ENIAMwalTypes.sel_prefs then l else failwith ("propagate_nosem_selprefs 1: [" ^ String.concat ";" l ^ "] [" ^ String.concat ";" t.position.ENIAMwalTypes.sel_prefs ^ "]")));
  294 + Node{t with position= {t.position with ENIAMwalTypes.sel_prefs = []}}
294 else Node t 295 else Node t
295 | _ -> failwith "propagate_nosem_selprefs 2" 296 | _ -> failwith "propagate_nosem_selprefs 2"
296 297
297 let rec apply_modifications2_rec mods = function 298 let rec apply_modifications2_rec mods = function
298 Variant(e,l) -> Variant(e,Xlist.map l (fun (i,t) -> i, apply_modifications2_rec mods t)) 299 Variant(e,l) -> Variant(e,Xlist.map l (fun (i,t) -> i, apply_modifications2_rec mods t))
299 | Node t -> 300 | Node t ->
300 - if t.position.WalTypes.sel_prefs <> [] then failwith "apply_modifications2_rec" else  
301 - Node{t with position={t.position with WalTypes.sel_prefs=mods}} 301 + if t.position.ENIAMwalTypes.sel_prefs <> [] then failwith "apply_modifications2_rec" else
  302 + Node{t with position={t.position with ENIAMwalTypes.sel_prefs=mods}}
302 | _ -> failwith "apply_modifications2_rec" 303 | _ -> failwith "apply_modifications2_rec"
303 304
304 let apply_modifications2 modifications references = 305 let apply_modifications2 modifications references =
@@ -310,9 +311,9 @@ let apply_modifications2 modifications references = @@ -310,9 +311,9 @@ let apply_modifications2 modifications references =
310 try apply_modifications2_rec (StringMap.find modifications.(r) ei) t with Not_found -> t)) 311 try apply_modifications2_rec (StringMap.find modifications.(r) ei) t with Not_found -> t))
311 | _ -> failwith "apply_modifications2") 312 | _ -> failwith "apply_modifications2")
312 313
313 -let assign_frames_and_senses tokens references = 314 +let assign_frames_and_senses tokens lex_sems references =
314 let modifications = Array.make (Array.length references) StringMap.empty in 315 let modifications = Array.make (Array.length references) StringMap.empty in
315 - let valence = prepare_valence tokens in 316 + let valence = prepare_valence tokens lex_sems in
316 let nodes = Array.map get_nodes references in 317 let nodes = Array.map get_nodes references in
317 let references = Array.map (assign_frames_and_senses_rec modifications valence nodes) nodes in 318 let references = Array.map (assign_frames_and_senses_rec modifications valence nodes) nodes in
318 apply_modifications (*tokens*) modifications nodes references; 319 apply_modifications (*tokens*) modifications nodes references;
parser/disambSelPref.ml
@@ -16,85 +16,85 @@ @@ -16,85 +16,85 @@
16 * You should have received a copy of the GNU General Public License 16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *) 18 *)
19 -  
20 -open WalTypes 19 +
  20 +open ENIAMwalTypes
21 open LCGtypes 21 open LCGtypes
22 open Printf 22 open Printf
23 open Xstd 23 open Xstd
24 - 24 +
25 let fit_node1 t args w = 25 let fit_node1 t args w =
26 - let w =  
27 - if t.agf = ADJUNCT || t.agf = CORE || t.agf = NOSEM || t.agf = CLAUSE || t.agf = SENTENCE then w else 26 + let w =
  27 + if t.agf = ADJUNCT || t.agf = CORE || t.agf = NOSEM || t.agf = CLAUSE || t.agf = SENTENCE then w else
28 (* if is_nosem_node t then fit_sel_prefs_nosem_node disamb ei t + w else *) 28 (* if is_nosem_node t then fit_sel_prefs_nosem_node disamb ei t + w else *)
29 if t.position.role = "" && (t.agf = SUBJ || t.agf = OBJ || t.agf = ARG) then w + 20 else 29 if t.position.role = "" && (t.agf = SUBJ || t.agf = OBJ || t.agf = ARG) then w + 20 else
30 - let b = 30 + let b =
31 if StringSet.mem t.hipero "0" then true else 31 if StringSet.mem t.hipero "0" then true else
32 Xlist.fold t.position.sel_prefs false (fun b s -> StringSet.mem t.hipero s || b) in 32 Xlist.fold t.position.sel_prefs false (fun b s -> StringSet.mem t.hipero s || b) in
33 - (if b then 0 else 1) + w in 33 + (if b then 0 else 1) + w in
34 Node{t with args=args},w 34 Node{t with args=args},w
35 - 35 +
36 let fit_node2 t args w = 36 let fit_node2 t args w =
37 - let b = Xlist.fold t.position.WalTypes.sel_prefs false (fun b s -> StringSet.mem t.hipero s || b) in 37 + let b = Xlist.fold t.position.sel_prefs false (fun b s -> StringSet.mem t.hipero s || b) in
38 let t = {t with args=args} in 38 let t = {t with args=args} in
39 - if b then Node t,w else  
40 - (match t.agf, t.position.WalTypes.gf with  
41 - WalTypes.ADJUNCT,_ -> (* FIXME: można dodać tuszowanie braków w walentym *)  
42 - let pos = 39 + if b then Node t,w else
  40 + (match t.agf, t.position.gf with
  41 + ADJUNCT,_ -> (* FIXME: można dodać tuszowanie braków w walentym *)
  42 + let pos =
43 (* let r,a = paths_array.(t.id).PreTypes.lroles in 43 (* let r,a = paths_array.(t.id).PreTypes.lroles in
44 if r <> "" then (* FIXME: pomijam to, że role dla rzeczowników dotyczą tylko inst *) 44 if r <> "" then (* FIXME: pomijam to, że role dla rzeczowników dotyczą tylko inst *)
45 - {t.position with WalTypes.role=r; WalTypes.role_attr=a} else*)  
46 - {t.position with WalTypes.role=t.arole; WalTypes.role_attr=t.arole_attr} in 45 + {t.position with role=r; role_attr=a} else*)
  46 + {t.position with role=t.arole; role_attr=t.arole_attr} in
47 Node{t with position=pos}, w+1 47 Node{t with position=pos}, w+1
48 - | WalTypes.CLAUSE,WalTypes.NOGF -> Node t,w+0  
49 - | WalTypes.SENTENCE,WalTypes.NOGF -> Node t,w+0  
50 - | WalTypes.ARG,WalTypes.NOGF -> Node t,w+1  
51 - | WalTypes.CORE,WalTypes.NOGF ->  
52 - let pos = {t.position with WalTypes.role=t.arole; WalTypes.role_attr=t.arole_attr} in 48 + | CLAUSE,NOGF -> Node t,w+0
  49 + | SENTENCE,NOGF -> Node t,w+0
  50 + | ARG,NOGF -> Node t,w+1
  51 + | CORE,NOGF ->
  52 + let pos = {t.position with role=t.arole; role_attr=t.arole_attr} in
53 Node{t with position=pos}, w+0 53 Node{t with position=pos}, w+0
54 - | WalTypes.OBJ,WalTypes.NOGF -> Node t,w+0  
55 - | WalTypes.SUBJ,WalTypes.NOGF -> Node t,w+0  
56 - | WalTypes.SUBJ,WalTypes.SUBJ -> Node t,w+2  
57 - | WalTypes.OBJ,WalTypes.OBJ -> Node t,w+2  
58 - | WalTypes.ARG,WalTypes.ARG -> Node t,w+1  
59 - | WalTypes.NOSEM,WalTypes.NOGF -> Node t,w+0  
60 - | WalTypes.NOGF,WalTypes.NOGF -> Node t,w+0  
61 - | WalTypes.NOSEM,WalTypes.NOSEM -> Node t,w+0  
62 -(* | WalTypes.,WalTypes. -> 0 *) 54 + | OBJ,NOGF -> Node t,w+0
  55 + | SUBJ,NOGF -> Node t,w+0
  56 + | SUBJ,SUBJ -> Node t,w+2
  57 + | OBJ,OBJ -> Node t,w+2
  58 + | ARG,ARG -> Node t,w+1
  59 + | NOSEM,NOGF -> Node t,w+0
  60 + | NOGF,NOGF -> Node t,w+0
  61 + | NOSEM,NOSEM -> Node t,w+0
  62 +(* | , -> 0 *)
63 | a,g ->(* printf "fit_sel_prefs_rec: pred=%s agf=%s pos.gf=%s\n%!" t.pred (WalStringOf.gf a) (WalStringOf.gf g);*) Node t,w+1) 63 | a,g ->(* printf "fit_sel_prefs_rec: pred=%s agf=%s pos.gf=%s\n%!" t.pred (WalStringOf.gf a) (WalStringOf.gf g);*) Node t,w+1)
64 -  
65 -let rec fit_sel_prefs_choice fit_node_fun references disamb satisfaction r = function  
66 - Choice choice -> 64 +
  65 +let rec fit_sel_prefs_choice fit_node_fun references disamb satisfaction r = function
  66 + Choice choice ->
67 let choice,sat = StringMap.fold choice (StringMap.empty,StringMap.empty) (fun (choice,sat) ei t -> 67 let choice,sat = StringMap.fold choice (StringMap.empty,StringMap.empty) (fun (choice,sat) ei t ->
68 let t,w = fit_sel_prefs_variant fit_node_fun references disamb satisfaction t in 68 let t,w = fit_sel_prefs_variant fit_node_fun references disamb satisfaction t in
69 StringMap.add choice ei t, StringMap.add sat ei w) in 69 StringMap.add choice ei t, StringMap.add sat ei w) in
70 satisfaction.(r) <- sat; 70 satisfaction.(r) <- sat;
71 Choice choice 71 Choice choice
72 | _ -> failwith "fit_sel_prefs_choice" 72 | _ -> failwith "fit_sel_prefs_choice"
73 -  
74 -and fit_sel_prefs_variant fit_node_fun references disamb satisfaction = function  
75 - Variant(e,l) -> 73 +
  74 +and fit_sel_prefs_variant fit_node_fun references disamb satisfaction = function
  75 + Variant(e,l) ->
76 let l,min_w = Xlist.fold l ([],max_int) (fun (l,min_w) (i,t) -> 76 let l,min_w = Xlist.fold l ([],max_int) (fun (l,min_w) (i,t) ->
77 let t,w = fit_sel_prefs_rec fit_node_fun references disamb satisfaction (e ^ i) t in 77 let t,w = fit_sel_prefs_rec fit_node_fun references disamb satisfaction (e ^ i) t in
78 if w = min_w then (i,t) :: l, min_w else 78 if w = min_w then (i,t) :: l, min_w else
79 if w < min_w then [i,t],w else l,min_w) in 79 if w < min_w then [i,t],w else l,min_w) in
80 Variant(e, List.rev l),min_w 80 Variant(e, List.rev l),min_w
81 | _ -> failwith "fit_sel_prefs_variant" 81 | _ -> failwith "fit_sel_prefs_variant"
82 -  
83 -and fit_sel_prefs_rec fit_node_fun references disamb satisfaction ei = function  
84 - Node t -> 82 +
  83 +and fit_sel_prefs_rec fit_node_fun references disamb satisfaction ei = function
  84 + Node t ->
85 let args,w = fit_sel_prefs_rec fit_node_fun references disamb satisfaction ei t.args in 85 let args,w = fit_sel_prefs_rec fit_node_fun references disamb satisfaction ei t.args in
86 fit_node2 t args w 86 fit_node2 t args w
87 - | Tuple l -> 87 + | Tuple l ->
88 let l,sum_w = Xlist.fold l ([],0) (fun (l,sum_w) t -> 88 let l,sum_w = Xlist.fold l ([],0) (fun (l,sum_w) t ->
89 let t,w = fit_sel_prefs_rec fit_node_fun references disamb satisfaction ei t in 89 let t,w = fit_sel_prefs_rec fit_node_fun references disamb satisfaction ei t in
90 t :: l, sum_w + w) in 90 t :: l, sum_w + w) in
91 Tuple(List.rev l), sum_w 91 Tuple(List.rev l), sum_w
92 - | Variant(e,l) as t -> 92 + | Variant(e,l) as t ->
93 let l,min_w = Xlist.fold l ([],max_int) (fun (l,min_w) (i,t) -> 93 let l,min_w = Xlist.fold l ([],max_int) (fun (l,min_w) (i,t) ->
94 let t,w = fit_sel_prefs_rec fit_node_fun references disamb satisfaction ei t in 94 let t,w = fit_sel_prefs_rec fit_node_fun references disamb satisfaction ei t in
95 if w = min_w then (i,t) :: l, min_w else 95 if w = min_w then (i,t) :: l, min_w else
96 if w < min_w then [i,t],w else l,min_w) in 96 if w < min_w then [i,t],w else l,min_w) in
97 - let l = 97 + let l =
98 let map = Xlist.fold l TermSet.empty (fun map (_,t) -> TermSet.add map t) in 98 let map = Xlist.fold l TermSet.empty (fun map (_,t) -> TermSet.add map t) in
99 fst (TermSet.fold map ([],1) (fun (l,i) t -> (string_of_int i,t) :: l, i+1)) in 99 fst (TermSet.fold map ([],1) (fun (l,i) t -> (string_of_int i,t) :: l, i+1)) in
100 (match l with 100 (match l with
@@ -103,7 +103,7 @@ and fit_sel_prefs_rec fit_node_fun references disamb satisfaction ei = function @@ -103,7 +103,7 @@ and fit_sel_prefs_rec fit_node_fun references disamb satisfaction ei = function
103 | _ -> Variant(e, List.rev l),min_w) 103 | _ -> Variant(e, List.rev l),min_w)
104 | Dot -> Dot, 0 104 | Dot -> Dot, 0
105 | Val s -> Val s, 0 105 | Val s -> Val s, 0
106 - | Ref i -> 106 + | Ref i ->
107 if disamb.(i) = Dot then (disamb.(i) <- fit_sel_prefs_choice fit_node_fun references disamb satisfaction i references.(i)); 107 if disamb.(i) = Dot then (disamb.(i) <- fit_sel_prefs_choice fit_node_fun references disamb satisfaction i references.(i));
108 Ref i, (try StringMap.find satisfaction.(i) ei with Not_found -> failwith ("fit_sel_prefs_rec 3: r=" ^ string_of_int i ^ " ei=" ^ ei)) 108 Ref i, (try StringMap.find satisfaction.(i) ei with Not_found -> failwith ("fit_sel_prefs_rec 3: r=" ^ string_of_int i ^ " ei=" ^ ei))
109 | t -> failwith ("fit_sel_prefs_rec 2: " ^ LCGstringOf.linear_term 0 t) 109 | t -> failwith ("fit_sel_prefs_rec 2: " ^ LCGstringOf.linear_term 0 t)
@@ -113,8 +113,5 @@ let fit_sel_prefs fit_node_fun references = @@ -113,8 +113,5 @@ let fit_sel_prefs fit_node_fun references =
113 let satisfaction = Array.make (Array.length references) StringMap.empty in 113 let satisfaction = Array.make (Array.length references) StringMap.empty in
114 disamb.(0) <- fst (fit_sel_prefs_variant fit_node_fun references disamb satisfaction references.(0)); 114 disamb.(0) <- fst (fit_sel_prefs_variant fit_node_fun references disamb satisfaction references.(0));
115 disamb 115 disamb
116 -  
117 -(***************************************************************************************)  
118 -  
119 -  
120 116
  117 +(***************************************************************************************)
parser/exec.ml
@@ -33,6 +33,8 @@ let empty_result = { @@ -33,6 +33,8 @@ let empty_result = {
33 selected_sent_text=RawText ""; 33 selected_sent_text=RawText "";
34 semantic_text=RawText ""; 34 semantic_text=RawText "";
35 selected_semantic_text=RawText ""; 35 selected_semantic_text=RawText "";
  36 + tokens=ExtArray.make 1 ENIAMtokenizerTypes.empty_token;
  37 + lex_sems=ExtArray.make 1 ENIAMlexSemanticsTypes.empty_lex_sem;
36 } 38 }
37 39
38 let empty_eniam_parse_result = { 40 let empty_eniam_parse_result = {
@@ -157,7 +159,7 @@ let eniam_parse_sentence timeout test_only_flag paths last tokens lex_sems = @@ -157,7 +159,7 @@ let eniam_parse_sentence timeout test_only_flag paths last tokens lex_sems =
157 let result = {result with parse_time=time4 -. time3; chart_size=LCGchart.get_no_entries chart} in 159 let result = {result with parse_time=time4 -. time3; chart_size=LCGchart.get_no_entries chart} in
158 if LCGchart.is_parsed chart then 160 if LCGchart.is_parsed chart then
159 try 161 try
160 - let term = LCGchart.get_parsed_term tokens chart in 162 + let term = LCGchart.get_parsed_term tokens lex_sems chart in
161 let dependency_tree = LCGreductions.reduce term references in 163 let dependency_tree = LCGreductions.reduce term references in
162 let time5 = time_fun () in 164 let time5 = time_fun () in
163 let result = if test_only_flag then result else {result with dependency_tree=dependency_tree} in 165 let result = if test_only_flag then result else {result with dependency_tree=dependency_tree} in
@@ -216,7 +218,7 @@ let conll_parse_sentence timeout test_only_flag paths tokens lex_sems = @@ -216,7 +218,7 @@ let conll_parse_sentence timeout test_only_flag paths tokens lex_sems =
216 let result = {result with parse_time=time4 -. time3} in 218 let result = {result with parse_time=time4 -. time3} in
217 if LCGchart.is_dep_parsed parsed_dep_chart then 219 if LCGchart.is_dep_parsed parsed_dep_chart then
218 try 220 try
219 - let term = LCGchart.get_dep_parsed_term tokens parsed_dep_chart in 221 + let term = LCGchart.get_dep_parsed_term tokens lex_sems parsed_dep_chart in
220 (* LCGlatexOf.print_dependency_tree "dep_dependency_tree1" dependency_tree; *) 222 (* LCGlatexOf.print_dependency_tree "dep_dependency_tree1" dependency_tree; *)
221 let dependency_tree = LCGreductions.reduce term references in 223 let dependency_tree = LCGreductions.reduce term references in
222 let time5 = time_fun () in 224 let time5 = time_fun () in
@@ -322,12 +324,12 @@ let rec parse_sentence timeout test_only_flag mode file_prefix tokens lex_sems = @@ -322,12 +324,12 @@ let rec parse_sentence timeout test_only_flag mode file_prefix tokens lex_sems =
322 if not Paths.config.Paths.mate_parser_enabled then DepSentence paths else ( 324 if not Paths.config.Paths.mate_parser_enabled then DepSentence paths else (
323 print_endline "parse_sentence 1"; 325 print_endline "parse_sentence 1";
324 (* print_endline (Visualization.html_of_dep_sentence tokens paths); *) 326 (* print_endline (Visualization.html_of_dep_sentence tokens paths); *)
325 - let conll = CONLL.string_of_paths ENIAMsubsyntaxTypes.Mate tokens paths in 327 + let conll = ENIAM_CONLL.string_of_paths ENIAMsubsyntaxTypes.Mate tokens paths in
326 print_endline "parse_sentence 2"; 328 print_endline "parse_sentence 2";
327 (* printf "|%s|\n" conll; *) 329 (* printf "|%s|\n" conll; *)
328 Printf.fprintf mate_out "%s%!" conll; 330 Printf.fprintf mate_out "%s%!" conll;
329 print_endline "parse_sentence 3"; 331 print_endline "parse_sentence 3";
330 - let new_paths = get_paths paths (CONLL.load_sentence mate_in) in 332 + let new_paths = get_paths paths (ENIAM_CONLL.load_sentence mate_in) in
331 print_endline "parse_sentence 4"; 333 print_endline "parse_sentence 4";
332 (* print_endline (Visualization.html_of_dep_sentence tokens new_paths); *) 334 (* print_endline (Visualization.html_of_dep_sentence tokens new_paths); *)
333 let result = conll_parse_sentence timeout test_only_flag new_paths tokens lex_sems in 335 let result = conll_parse_sentence timeout test_only_flag new_paths tokens lex_sems in
@@ -364,7 +366,7 @@ let rec parse_text timeout test_only_flag mode tokens lex_sems = function @@ -364,7 +366,7 @@ let rec parse_text timeout test_only_flag mode tokens lex_sems = function
364 | StructText paragraphs -> 366 | StructText paragraphs ->
365 let paragraphs = Xlist.rev_map paragraphs (fun paragraph -> 367 let paragraphs = Xlist.rev_map paragraphs (fun paragraph ->
366 parse_paragraph timeout test_only_flag mode tokens lex_sems paragraph) in 368 parse_paragraph timeout test_only_flag mode tokens lex_sems paragraph) in
367 - StructText(List.rev paragraphs, tokens) 369 + StructText(List.rev paragraphs)
368 | AltText l -> AltText(Xlist.map l (fun (mode,text) -> 370 | AltText l -> AltText(Xlist.map l (fun (mode,text) ->
369 mode, parse_text timeout test_only_flag mode tokens lex_sems text)) 371 mode, parse_text timeout test_only_flag mode tokens lex_sems text))
370 372
@@ -420,18 +422,18 @@ let rec select_sentences_paragraph = function @@ -420,18 +422,18 @@ let rec select_sentences_paragraph = function
420 422
421 let rec select_sentences_text = function 423 let rec select_sentences_text = function
422 RawText s -> RawText s 424 RawText s -> RawText s
423 - | StructText(paragraphs,tokens) -> 425 + | StructText paragraphs ->
424 let paragraphs = Xlist.rev_map paragraphs (fun paragraph -> 426 let paragraphs = Xlist.rev_map paragraphs (fun paragraph ->
425 select_sentences_paragraph paragraph) in 427 select_sentences_paragraph paragraph) in
426 - StructText(List.rev paragraphs, tokens) 428 + StructText(List.rev paragraphs)
427 | AltText l -> AltText(Xlist.map l (fun (mode,text) -> 429 | AltText l -> AltText(Xlist.map l (fun (mode,text) ->
428 mode, select_sentences_text text)) 430 mode, select_sentences_text text))
429 431
430 -let semantic_processing timeout test_only_flag file_prefix tokens max_n dependency_tree = 432 +let semantic_processing timeout test_only_flag file_prefix tokens lex_sems max_n dependency_tree =
431 let time5 = time_fun () in 433 let time5 = time_fun () in
432 let result = {empty_semantic_processing_result with file_prefix=file_prefix} in 434 let result = {empty_semantic_processing_result with file_prefix=file_prefix} in
433 try 435 try
434 - let (*dependency_tree2*)(*sem*)disamb = LCGvalence.assign_frames_and_senses tokens dependency_tree in 436 + let (*dependency_tree2*)(*sem*)disamb = LCGvalence.assign_frames_and_senses tokens lex_sems dependency_tree in
435 let disamb(*sem*) = DisambSelPref.fit_sel_prefs DisambSelPref.fit_node1 (*dependency_tree2*)disamb in 437 let disamb(*sem*) = DisambSelPref.fit_sel_prefs DisambSelPref.fit_node1 (*dependency_tree2*)disamb in
436 let (*sem*)disamb = DisambLemma.disambiguate_nodes (*dependency_tree*)(*sem*)disamb in 438 let (*sem*)disamb = DisambLemma.disambiguate_nodes (*dependency_tree*)(*sem*)disamb in
437 let (*sem*)disamb = DisambLemma.remove_unused(*disambiguate_nodes*) (*dependency_tree*)(*sem*)disamb in 439 let (*sem*)disamb = DisambLemma.remove_unused(*disambiguate_nodes*) (*dependency_tree*)(*sem*)disamb in
@@ -441,7 +443,7 @@ let semantic_processing timeout test_only_flag file_prefix tokens max_n dependen @@ -441,7 +443,7 @@ let semantic_processing timeout test_only_flag file_prefix tokens max_n dependen
441 let sem = DisambLemma.disambiguate_meanings (*dependency_tree*)sem in 443 let sem = DisambLemma.disambiguate_meanings (*dependency_tree*)sem in
442 let sem(*disamb*) = DisambLemma.remove_unused_choices(*disambiguate_nodes*) (*dependency_tree*)sem(*disamb*) in 444 let sem(*disamb*) = DisambLemma.remove_unused_choices(*disambiguate_nodes*) (*dependency_tree*)sem(*disamb*) in
443 let result = if test_only_flag then result else {result with sem=sem} in 445 let result = if test_only_flag then result else {result with sem=sem} in
444 - let sem2 = SemGraph.translate tokens (*disamb*)sem in 446 + let sem2 = SemGraph.translate tokens lex_sems (*disamb*)sem in
445 let result = if test_only_flag then result else {result with sem2=sem2} in 447 let result = if test_only_flag then result else {result with sem2=sem2} in
446 let sem3(*disamb*) = SemGraph.make_tree(*disambiguate_nodes*) (*dependency_tree*)sem2(*disamb*) in 448 let sem3(*disamb*) = SemGraph.make_tree(*disambiguate_nodes*) (*dependency_tree*)sem2(*disamb*) in
447 let sem3(*disamb*) = SemGraph.simplify_tree(*disambiguate_nodes*) (*dependency_tree*)sem3(*disamb*) in 449 let sem3(*disamb*) = SemGraph.simplify_tree(*disambiguate_nodes*) (*dependency_tree*)sem3(*disamb*) in
@@ -469,41 +471,41 @@ let semantic_processing timeout test_only_flag file_prefix tokens max_n dependen @@ -469,41 +471,41 @@ let semantic_processing timeout test_only_flag file_prefix tokens max_n dependen
469 {result with status=SemError; msg=Printexc.to_string e; sem_time=time6 -. time5} 471 {result with status=SemError; msg=Printexc.to_string e; sem_time=time6 -. time5}
470 472
471 473
472 -let rec semantic_processing_sentence timeout test_only_flag tokens max_n = function 474 +let rec semantic_processing_sentence timeout test_only_flag tokens lex_sems max_n = function
473 RawSentence s -> RawSentence s 475 RawSentence s -> RawSentence s
474 - | ENIAMSentence result -> SemSentence (semantic_processing timeout test_only_flag result.file_prefix tokens max_n result.dependency_tree)  
475 - | CONLLSentence result -> SemSentence (semantic_processing timeout test_only_flag result.file_prefix tokens max_n result.dependency_tree) 476 + | ENIAMSentence result -> SemSentence (semantic_processing timeout test_only_flag result.file_prefix tokens lex_sems max_n result.dependency_tree)
  477 + | CONLLSentence result -> SemSentence (semantic_processing timeout test_only_flag result.file_prefix tokens lex_sems max_n result.dependency_tree)
476 | QuotedSentences sentences -> 478 | QuotedSentences sentences ->
477 let sentences = Xlist.rev_map sentences (fun p -> 479 let sentences = Xlist.rev_map sentences (fun p ->
478 - let sentence = semantic_processing_sentence timeout test_only_flag tokens max_n p.psentence in 480 + let sentence = semantic_processing_sentence timeout test_only_flag tokens lex_sems max_n p.psentence in
479 {p with psentence=sentence}) in 481 {p with psentence=sentence}) in
480 QuotedSentences(List.rev sentences) 482 QuotedSentences(List.rev sentences)
481 | AltSentence l -> 483 | AltSentence l ->
482 let l = Xlist.rev_map l (fun (mode,sentence) -> 484 let l = Xlist.rev_map l (fun (mode,sentence) ->
483 - mode, semantic_processing_sentence timeout test_only_flag tokens max_n sentence) in 485 + mode, semantic_processing_sentence timeout test_only_flag tokens lex_sems max_n sentence) in
484 AltSentence(List.rev l) 486 AltSentence(List.rev l)
485 | _ -> failwith "semantic_processing_sentence" 487 | _ -> failwith "semantic_processing_sentence"
486 488
487 -let rec semantic_processing_paragraph timeout test_only_flag tokens max_n = function 489 +let rec semantic_processing_paragraph timeout test_only_flag tokens lex_sems max_n = function
488 RawParagraph s -> RawParagraph s 490 RawParagraph s -> RawParagraph s
489 | StructParagraph sentences -> 491 | StructParagraph sentences ->
490 let sentences = Xlist.rev_map sentences (fun p -> 492 let sentences = Xlist.rev_map sentences (fun p ->
491 - let sentence = semantic_processing_sentence timeout test_only_flag tokens max_n p.psentence in 493 + let sentence = semantic_processing_sentence timeout test_only_flag tokens lex_sems max_n p.psentence in
492 {p with psentence=sentence}) in 494 {p with psentence=sentence}) in
493 StructParagraph(List.rev sentences) 495 StructParagraph(List.rev sentences)
494 | AltParagraph l -> 496 | AltParagraph l ->
495 let l = Xlist.rev_map l (fun (mode,paragraph) -> 497 let l = Xlist.rev_map l (fun (mode,paragraph) ->
496 - mode, semantic_processing_paragraph timeout test_only_flag tokens max_n paragraph) in 498 + mode, semantic_processing_paragraph timeout test_only_flag tokens lex_sems max_n paragraph) in
497 AltParagraph(List.rev l) 499 AltParagraph(List.rev l)
498 500
499 -let rec semantic_processing_text timeout test_only_flag max_n = function 501 +let rec semantic_processing_text timeout test_only_flag tokens lex_sems max_n = function
500 RawText s -> RawText s 502 RawText s -> RawText s
501 - | StructText(paragraphs,tokens) -> 503 + | StructText paragraphs ->
502 let paragraphs = Xlist.rev_map paragraphs (fun paragraph -> 504 let paragraphs = Xlist.rev_map paragraphs (fun paragraph ->
503 - semantic_processing_paragraph timeout test_only_flag tokens max_n paragraph) in  
504 - StructText(List.rev paragraphs, tokens) 505 + semantic_processing_paragraph timeout test_only_flag tokens lex_sems max_n paragraph) in
  506 + StructText(List.rev paragraphs)
505 | AltText l -> AltText(Xlist.map l (fun (mode,text) -> 507 | AltText l -> AltText(Xlist.map l (fun (mode,text) ->
506 - mode, semantic_processing_text timeout test_only_flag max_n text)) 508 + mode, semantic_processing_text timeout test_only_flag tokens lex_sems max_n text))
507 509
508 let rec extract_query_text = function 510 let rec extract_query_text = function
509 RawText s -> s 511 RawText s -> s
@@ -512,7 +514,7 @@ let rec extract_query_text = function @@ -512,7 +514,7 @@ let rec extract_query_text = function
512 514
513 let process_query pre_in pre_out timeout test_only_flag id full_query max_n = 515 let process_query pre_in pre_out timeout test_only_flag id full_query max_n =
514 (* print_endline "process_query 0"; *) 516 (* print_endline "process_query 0"; *)
515 - let result = {empty_result with input_text=translate_text full_query} in 517 + let result = {empty_result with input_text=translate_text (fst full_query)} in
516 let time1 = time_fun () in 518 let time1 = time_fun () in
517 (* print_endline "process_query 1"; *) 519 (* print_endline "process_query 1"; *)
518 Marshal.to_channel pre_out full_query []; 520 Marshal.to_channel pre_out full_query [];
@@ -523,11 +525,11 @@ let process_query pre_in pre_out timeout test_only_flag id full_query max_n = @@ -523,11 +525,11 @@ let process_query pre_in pre_out timeout test_only_flag id full_query max_n =
523 ENIAMtokenizerTypes.token_record ExtArray.t * 525 ENIAMtokenizerTypes.token_record ExtArray.t *
524 ENIAMlexSemanticsTypes.lex_sem ExtArray.t * string * float) in 526 ENIAMlexSemanticsTypes.lex_sem ExtArray.t * string * float) in
525 let time2 = time_fun () in 527 let time2 = time_fun () in
526 - let result = if test_only_flag then result else {result with pre_text=translate_text pre_text} in 528 + let result = if test_only_flag then result else {result with pre_text=translate_text pre_text; tokens=tokens; lex_sems=lex_sems} in
527 let result = {result with pre_time1=pre_time1; pre_time2=time2 -. time1} in 529 let result = {result with pre_time1=pre_time1; pre_time2=time2 -. time1} in
528 if msg <> "" then {result with status=PreprocessingError; msg=msg} else ( 530 if msg <> "" then {result with status=PreprocessingError; msg=msg} else (
529 (* print_endline "process_query 3"; *) 531 (* print_endline "process_query 3"; *)
530 - let parsed_text = parse_text timeout test_only_flag Struct (translate_text pre_text) in 532 + let parsed_text = parse_text timeout test_only_flag Struct tokens lex_sems (translate_text pre_text) in
531 (* print_endline "process_query 4"; *) 533 (* print_endline "process_query 4"; *)
532 let time3 = time_fun () in 534 let time3 = time_fun () in
533 let result = if test_only_flag then result else {result with status=Parsed; parsed_text=parsed_text} in 535 let result = if test_only_flag then result else {result with status=Parsed; parsed_text=parsed_text} in
@@ -538,7 +540,7 @@ let process_query pre_in pre_out timeout test_only_flag id full_query max_n = @@ -538,7 +540,7 @@ let process_query pre_in pre_out timeout test_only_flag id full_query max_n =
538 else select_sentences_text parsed_text in 540 else select_sentences_text parsed_text in
539 (* print_endline "process_query 6"; *) 541 (* print_endline "process_query 6"; *)
540 let result = if test_only_flag then result else {result with status=Parsed; selected_sent_text=selected_sent_text} in 542 let result = if test_only_flag then result else {result with status=Parsed; selected_sent_text=selected_sent_text} in
541 - let semantic_text = semantic_processing_text timeout test_only_flag max_n selected_sent_text in 543 + let semantic_text = semantic_processing_text timeout test_only_flag tokens lex_sems max_n selected_sent_text in
542 (* print_endline "process_query 7"; *) 544 (* print_endline "process_query 7"; *)
543 let selected_semantic_text = 545 let selected_semantic_text =
544 if not Paths.config.Paths.sentence_selection_enabled then semantic_text 546 if not Paths.config.Paths.sentence_selection_enabled then semantic_text
parser/execTypes.ml
@@ -92,7 +92,7 @@ and paragraph = @@ -92,7 +92,7 @@ and paragraph =
92 92
93 type text = 93 type text =
94 RawText of string 94 RawText of string
95 - | StructText of paragraph list 95 + | StructText of paragraph list
96 | AltText of (mode * text) list 96 | AltText of (mode * text) list
97 97
98 98
@@ -109,6 +109,8 @@ type result = { @@ -109,6 +109,8 @@ type result = {
109 selected_sent_text: text; 109 selected_sent_text: text;
110 semantic_text: text; 110 semantic_text: text;
111 selected_semantic_text: text; 111 selected_semantic_text: text;
  112 + tokens: ENIAMtokenizerTypes.token_record ExtArray.t;
  113 + lex_sems: ENIAMlexSemanticsTypes.lex_sem ExtArray.t;
112 } 114 }
113 115
114 type sum_result = { 116 type sum_result = {
parser/makefile
1 OCAMLC=ocamlc 1 OCAMLC=ocamlc
2 OCAMLOPT=ocamlopt 2 OCAMLOPT=ocamlopt
3 OCAMLDEP=ocamldep 3 OCAMLDEP=ocamldep
4 -INCLUDES=-I +xml-light -I +xlib -I +zip -I +bz2 -I ../../../Dropbox/lib/latexvis -I ../../installed/latexvis -I ../lib/xt -I ../../../Dropbox/Clarin-pl/podzadania/nkjp/fold_text -I ../podzadania/morfeusz -I ../pre -I ../tokenizer -I ../subsyntax -I ../walenty -I ../lexSemantics -I ../corpora 4 +INCLUDES=-I +xml-light -I +xlib -I +zip -I +bz2 -I ../../../Dropbox/lib/latexvis -I ../../installed/latexvis -I ../lib/xt -I ../../../Dropbox/Clarin-pl/podzadania/nkjp/fold_text -I ../podzadania/morfeusz -I ../pre -I ../tokenizer -I ../subsyntax -I ../walenty -I ../lexSemantics -I ../integration
5 #INCLUDES=-I +xml-light -I +xlib -I ../pre 5 #INCLUDES=-I +xml-light -I +xlib -I ../pre
6 OCAMLFLAGS=$(INCLUDES) -g 6 OCAMLFLAGS=$(INCLUDES) -g
7 OCAMLOPTFLAGS=$(INCLUDES) unix.cmxa xml-light.cmxa str.cmxa nums.cmxa zip.cmxa bz2.cmxa xlib.cmxa latexvis.cmxa #nkjp.cmxa 7 OCAMLOPTFLAGS=$(INCLUDES) unix.cmxa xml-light.cmxa str.cmxa nums.cmxa zip.cmxa bz2.cmxa xlib.cmxa latexvis.cmxa #nkjp.cmxa
8 #OCAMLOPTFLAGS=$(INCLUDES) unix.cmxa xml-light.cmxa str.cmxa nums.cmxa xlib.cmxa 8 #OCAMLOPTFLAGS=$(INCLUDES) unix.cmxa xml-light.cmxa str.cmxa nums.cmxa xlib.cmxa
9 9
10 -PRE= ../pre/paths.ml ../walenty/ENIAMwalTypes.ml ../tokenizer/ENIAMtokenizerTypes.ml ../subsyntax/ENIAMsubsyntaxTypes.ml ../lexSemantics/ENIAMlexSemanticsTypes.ml ../walenty/ENIAMwalStringOf.ml ../corpora/CONLL.ml 10 +PRE= ../pre/paths.ml ../tokenizer/ENIAMtokenizerTypes.ml ../subsyntax/ENIAMsubsyntaxTypes.ml ../walenty/ENIAMwalTypes.ml ../lexSemantics/ENIAMlexSemanticsTypes.ml ../walenty/ENIAMwalStringOf.ml ../integration/ENIAM_CONLL.ml
11 LCG= LCGtypes.ml LCGstringOf.ml LCGrules.ml LCGrenderer.ml LCGchart.ml LCGlatexOf.ml LCGreductions.ml LCGlexicon.ml LCGvalence.ml 11 LCG= LCGtypes.ml LCGstringOf.ml LCGrules.ml LCGrenderer.ml LCGchart.ml LCGlatexOf.ml LCGreductions.ml LCGlexicon.ml LCGvalence.ml
12 #LCG= LCGtypes.ml LCGstringOf.ml LCGrules.ml LCGrenderer.ml LCGchart.ml LCGreductions.ml LCGlexicon.ml LCGvalence.ml 12 #LCG= LCGtypes.ml LCGstringOf.ml LCGrules.ml LCGrenderer.ml LCGchart.ml LCGreductions.ml LCGlexicon.ml LCGvalence.ml
13 DISAMB= disambSelPref.ml disambLemma.ml 13 DISAMB= disambSelPref.ml disambLemma.ml
@@ -16,9 +16,9 @@ SEM= semGraph.ml semTypes.ml semStringOf.ml semLatexOf.ml semMmlOf.ml semMrl.ml @@ -16,9 +16,9 @@ SEM= semGraph.ml semTypes.ml semStringOf.ml semLatexOf.ml semMmlOf.ml semMrl.ml
16 EXEC= execTypes.ml visualization.ml exec.ml 16 EXEC= execTypes.ml visualization.ml exec.ml
17 17
18 all: 18 all:
19 -# $(OCAMLOPT) -o pipe $(OCAMLOPTFLAGS) $(PRE) $(LCG) $(DISAMB) $(SEM) $(EXEC) pipe.ml  
20 - $(OCAMLOPT) -o server2 $(OCAMLOPTFLAGS) $(PRE) $(LCG) $(DISAMB) $(SEM) $(EXEC) server.ml  
21 - $(OCAMLOPT) -o parser2.cgi $(OCAMLOPTFLAGS) $(PRE) LCGtypes.ml LCGstringOf.ml LCGrules.ml LCGrenderer.ml LCGchart.ml LCGlatexOf.ml semTypes.ml semMmlOf.ml execTypes.ml visualization.ml webInterface.ml 19 + $(OCAMLOPT) -o pipe $(OCAMLOPTFLAGS) $(PRE) $(LCG) $(DISAMB) $(SEM) $(EXEC) pipe.ml
  20 + # $(OCAMLOPT) -o server2 $(OCAMLOPTFLAGS) $(PRE) $(LCG) $(DISAMB) $(SEM) $(EXEC) server.ml
  21 + # $(OCAMLOPT) -o parser2.cgi $(OCAMLOPTFLAGS) $(PRE) LCGtypes.ml LCGstringOf.ml LCGrules.ml LCGrenderer.ml LCGchart.ml LCGlatexOf.ml semTypes.ml semMmlOf.ml execTypes.ml visualization.ml webInterface.ml
22 # $(OCAMLOPT) -o eniam.distr $(OCAMLOPTFLAGS) $(PRE) $(LCG) $(DISAMB) $(SEM) $(EXEC) overseer.ml 22 # $(OCAMLOPT) -o eniam.distr $(OCAMLOPTFLAGS) $(PRE) $(LCG) $(DISAMB) $(SEM) $(EXEC) overseer.ml
23 # $(OCAMLOPT) -o eniam.worker $(OCAMLOPTFLAGS) $(PRE) $(LCG) $(DISAMB) $(SEM) $(EXEC) worker.ml 23 # $(OCAMLOPT) -o eniam.worker $(OCAMLOPTFLAGS) $(PRE) $(LCG) $(DISAMB) $(SEM) $(EXEC) worker.ml
24 # $(OCAMLOPT) -o parser.api $(OCAMLOPTFLAGS) $(PRE) $(LCG) $(DISAMB) $(SEM) $(EXEC) apiInterface.ml 24 # $(OCAMLOPT) -o parser.api $(OCAMLOPTFLAGS) $(PRE) $(LCG) $(DISAMB) $(SEM) $(EXEC) apiInterface.ml
@@ -55,4 +55,4 @@ swigra_test: swigra_test.ml @@ -55,4 +55,4 @@ swigra_test: swigra_test.ml
55 $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $< 55 $(OCAMLOPT) $(OCAMLOPTFLAGS) -c $<
56 56
57 clean: 57 clean:
58 - rm -f *~ *.cm[oix] *.o eniam eniam.distr eniam.worker server2 parser2.cgi 58 + rm -f *~ *.cm[oix] *.o eniam eniam.distr eniam.worker server2 parser2.cgi pipe
parser/pipe.ml
@@ -30,7 +30,7 @@ let get_sock_addr host_name port = @@ -30,7 +30,7 @@ let get_sock_addr host_name port =
30 let get_paths query = 30 let get_paths query =
31 let i,o = Unix.open_connection (get_sock_addr Paths.pre_host Paths.pre_port) in 31 let i,o = Unix.open_connection (get_sock_addr Paths.pre_host Paths.pre_port) in
32 Printf.fprintf o "%s\n%!" query; 32 Printf.fprintf o "%s\n%!" query;
33 - let paths,msg,time = (Marshal.from_channel i : ((int * int * PreTypes.token_record) list * int * int) * string * float) in 33 + let paths,msg,time = (Marshal.from_channel i : ((int * int * ENIAMtokenizerTypes.token_record) list * int * int) * string * float) in
34 Printf.fprintf o "\n%!"; 34 Printf.fprintf o "\n%!";
35 let _ = Unix.shutdown_connection i in 35 let _ = Unix.shutdown_connection i in
36 paths,msg,time 36 paths,msg,time
@@ -39,21 +39,21 @@ let get_paths query = @@ -39,21 +39,21 @@ let get_paths query =
39 39
40 let simple_disambiguate (paths,last) = 40 let simple_disambiguate (paths,last) =
41 Xlist.fold paths [] (fun paths (i,j,t) -> 41 Xlist.fold paths [] (fun paths (i,j,t) ->
42 - if Xlist.mem t.PreTypes.attrs "notvalidated proper" || Xlist.mem t.PreTypes.attrs "lemma not validated" then paths else (i,j,t) :: paths),last 42 + if Xlist.mem t.ENIAMtokenizerTypes.attrs "notvalidated proper" || Xlist.mem t.ENIAMtokenizerTypes.attrs "lemma not validated" then paths else (i,j,t) :: paths),last
43 43
44 (* FIXME: przerobić koordynację *) 44 (* FIXME: przerobić koordynację *)
45 45
46 let lcg_process query = 46 let lcg_process query =
47 let ic,oc = Unix.open_connection (get_sock_addr Paths.pre_host Paths.pre_port) in 47 let ic,oc = Unix.open_connection (get_sock_addr Paths.pre_host Paths.pre_port) in
48 - let result = Exec.process_query ic oc 30. false "x" (PreTypes.RawText query,ExtArray.make 1 ENIAMtokenizerTypes.empty_token) 10 in 48 + let result = Exec.process_query ic oc 30. false "x" (ENIAMsubsyntaxTypes.RawText query,ExtArray.make 1 ENIAMtokenizerTypes.empty_token) 10 in
49 let path = "results/" in 49 let path = "results/" in
50 - Visualization.print_html_text path "input_text" result.input_text;  
51 - Visualization.print_html_text path "pre_text" result.pre_text;  
52 - Visualization.print_html_text path "parsed_text" result.parsed_text;  
53 - Visualization.print_html_text path "selected_sent_text" result.selected_sent_text;  
54 - Visualization.print_html_text path "semantic_text" result.semantic_text;  
55 - Visualization.print_html_text path "selected_semantic_text" result.selected_semantic_text;  
56 - Visualization.print_main_result_text "aaa/" (path ^ "main/") "xxxx" result.selected_semantic_text; 50 + Visualization.print_html_text path "input_text" result.input_text result.tokens result.lex_sems;
  51 + Visualization.print_html_text path "pre_text" result.pre_text result.tokens result.lex_sems;
  52 + Visualization.print_html_text path "parsed_text" result.parsed_text result.tokens result.lex_sems;
  53 + Visualization.print_html_text path "selected_sent_text" result.selected_sent_text result.tokens result.lex_sems;
  54 + Visualization.print_html_text path "semantic_text" result.semantic_text result.tokens result.lex_sems;
  55 + Visualization.print_html_text path "selected_semantic_text" result.selected_semantic_text result.tokens result.lex_sems;
  56 + Visualization.print_main_result_text "aaa/" (path ^ "main/") "xxxx" result.tokens result.selected_semantic_text;
57 Exec.print_result stdout result; 57 Exec.print_result stdout result;
58 (*Visualization.print_paths "results/" "paths" result.paths; 58 (*Visualization.print_paths "results/" "paths" result.paths;
59 Visualization.print_paths_latex "paths" result.paths; 59 Visualization.print_paths_latex "paths" result.paths;
@@ -117,7 +117,7 @@ let lcg_process query = @@ -117,7 +117,7 @@ let lcg_process query =
117 LatexMain.latex_compile_and_clean "results/" "chart"*) 117 LatexMain.latex_compile_and_clean "results/" "chart"*)
118 | _ -> ());*) 118 | _ -> ());*)
119 (* Printf.fprintf oc "\n%!"; *) 119 (* Printf.fprintf oc "\n%!"; *)
120 - Marshal.to_channel oc (PreTypes.RawText "",ExtArray.make 1 ENIAMtokenizerTypes.empty_token) []; 120 + Marshal.to_channel oc (ENIAMsubsyntaxTypes.RawText "",ExtArray.make 1 ENIAMtokenizerTypes.empty_token) [];
121 flush oc; 121 flush oc;
122 let _ = Unix.shutdown_connection ic in 122 let _ = Unix.shutdown_connection ic in
123 () 123 ()
@@ -162,7 +162,7 @@ let lcg_process_file filename result_path result_name = failwith &quot;lcg_process_fi @@ -162,7 +162,7 @@ let lcg_process_file filename result_path result_name = failwith &quot;lcg_process_fi
162 (* let _ = LCGexec.process_file_id "data/sentences-składnica-with-trees.tab" "results/sentences-składnica-with-trees.eff" 100. *) 162 (* let _ = LCGexec.process_file_id "data/sentences-składnica-with-trees.tab" "results/sentences-składnica-with-trees.eff" 100. *)
163 163
164 (* Przetwarzanie korpusów w formacie CONLL *) 164 (* Przetwarzanie korpusów w formacie CONLL *)
165 - 165 +(*
166 let id_counter = ref 0 166 let id_counter = ref 0
167 167
168 let get_id () = 168 let get_id () =
@@ -187,7 +187,7 @@ let process_id s = @@ -187,7 +187,7 @@ let process_id s =
187 Xstring.check_prefix "morph_" c && Xstring.check_sufix "-s" c then 187 Xstring.check_prefix "morph_" c && Xstring.check_sufix "-s" c then
188 Xstring.cut_prefix "NKJP_1M_" a ^ "." ^ Xstring.cut_sufix "-s" (Xstring.cut_prefix "morph_" c) 188 Xstring.cut_prefix "NKJP_1M_" a ^ "." ^ Xstring.cut_sufix "-s" (Xstring.cut_prefix "morph_" c)
189 else failwith ("process_id: " ^ s) 189 else failwith ("process_id: " ^ s)
190 - 190 +*)
191 (* FIXME 191 (* FIXME
192 let process_conll_corpus filename = 192 let process_conll_corpus filename =
193 let corpus = File.file_in filename (fun file -> CONLL.match_corpus (CONLL.load_corpus file)) in 193 let corpus = File.file_in filename (fun file -> CONLL.match_corpus (CONLL.load_corpus file)) in
@@ -232,13 +232,13 @@ let _ = @@ -232,13 +232,13 @@ let _ =
232 *) 232 *)
233 233
234 234
235 - 235 +(*
236 let has_pos pos (paths,_,_) = 236 let has_pos pos (paths,_,_) =
237 Xlist.fold paths false (fun b (_,_,t) -> 237 Xlist.fold paths false (fun b (_,_,t) ->
238 match t.PreTypes.token with 238 match t.PreTypes.token with
239 PreTypes.Lemma(_,cat,_) -> if cat = pos then true else b 239 PreTypes.Lemma(_,cat,_) -> if cat = pos then true else b
240 | _ -> b) 240 | _ -> b)
241 - 241 +*)
242 (* Wydobycie zdań zawierających symbole *) 242 (* Wydobycie zdań zawierających symbole *)
243 (*let _ = 243 (*let _ =
244 let i,o = Unix.open_connection (get_sock_addr host port) in 244 let i,o = Unix.open_connection (get_sock_addr host port) in
@@ -346,7 +346,7 @@ let print_stats n stats = @@ -346,7 +346,7 @@ let print_stats n stats =
346 stats.adj_sense (float stats.adj_sense /. float n) (float stats.adj_sense /. float stats.adj) 346 stats.adj_sense (float stats.adj_sense /. float n) (float stats.adj_sense /. float stats.adj)
347 stats.adj_valence (float stats.adj_valence /. float n) (float stats.adj_valence /. float stats.adj); 347 stats.adj_valence (float stats.adj_valence /. float n) (float stats.adj_valence /. float stats.adj);
348 () 348 ()
349 - 349 +(*
350 let get_stats stats (paths,_) = 350 let get_stats stats (paths,_) =
351 Xlist.fold paths stats (fun stats (_,_,t) -> 351 Xlist.fold paths stats (fun stats (_,_,t) ->
352 (* if Xlist.mem t.PreTypes.attrs "notvalidated proper" || Xlist.mem t.PreTypes.attrs "lemma not validated" then stats else *) 352 (* if Xlist.mem t.PreTypes.attrs "notvalidated proper" || Xlist.mem t.PreTypes.attrs "lemma not validated" then stats else *)
@@ -364,7 +364,7 @@ let get_stats stats (paths,_) = @@ -364,7 +364,7 @@ let get_stats stats (paths,_) =
364 adj_valence=if t.PreTypes.valence=[] then stats.adj_valence else stats.adj_valence+1} 364 adj_valence=if t.PreTypes.valence=[] then stats.adj_valence else stats.adj_valence+1}
365 | _ -> stats) 365 | _ -> stats)
366 | _ -> stats) 366 | _ -> stats)
367 - 367 +*)
368 (* Test pokrycia słowosieci i walentego *) 368 (* Test pokrycia słowosieci i walentego *)
369 (*let _ = 369 (*let _ =
370 let sentences = File.load_lines "data/sentences-składnica.txt" in 370 let sentences = File.load_lines "data/sentences-składnica.txt" in
parser/semGraph.ml
@@ -61,7 +61,7 @@ let rec get_person = function @@ -61,7 +61,7 @@ let rec get_person = function
61 | _ :: l -> get_person l 61 | _ :: l -> get_person l
62 | [] -> "" 62 | [] -> ""
63 63
64 -let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = 64 +let rec create_normal_concept (*roles role_attrs*) tokens lex_sems t sem_args =
65 let sem_args = if t.cat = "pro" then 65 let sem_args = if t.cat = "pro" then
66 match get_person t.attrs with 66 match get_person t.attrs with
67 "pri" -> ["indexical"] 67 "pri" -> ["indexical"]
@@ -70,13 +70,13 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -70,13 +70,13 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
70 | "" -> ["indexical";"coreferential";"deictic"] 70 | "" -> ["indexical";"coreferential";"deictic"]
71 | _ -> failwith "create_normal_concept: pro" 71 | _ -> failwith "create_normal_concept: pro"
72 else sem_args in (* FIXME: przesunąć to do rozszerzania path_array *) 72 else sem_args in (* FIXME: przesunąć to do rozszerzania path_array *)
73 - if t.agf = WalTypes.NOSEM then t.args else 73 + if t.agf = ENIAMwalTypes.NOSEM then t.args else
74 let c = {empty_concept with 74 let c = {empty_concept with
75 c_sense = Val t.meaning; 75 c_sense = Val t.meaning;
76 c_relations=(*create_concepts tokens*) t.args; 76 c_relations=(*create_concepts tokens*) t.args;
77 c_quant=make_sem_args sem_args; 77 c_quant=make_sem_args sem_args;
78 c_variable=string_of_int t.id,""; 78 c_variable=string_of_int t.id,"";
79 - c_pos=(*if t.id >= Array.length tokens then -1 else*) (ExtArray.get tokens t.id).PreTypes.beg; 79 + c_pos=(*if t.id >= Array.length tokens then -1 else*) (ExtArray.get tokens t.id).ENIAMtokenizerTypes.beg;
80 c_local_quant=true} in 80 c_local_quant=true} in
81 if t.cat = "subst" || t.cat = "depr" || t.cat = "ger" || t.cat = "unk" || StringSet.mem symbols t.cat then (* FIXME: wykrywanie plurale tantum *) 81 if t.cat = "subst" || t.cat = "depr" || t.cat = "ger" || t.cat = "unk" || StringSet.mem symbols t.cat then (* FIXME: wykrywanie plurale tantum *)
82 let c = {c with c_local_quant=false} in 82 let c = {c with c_local_quant=false} in
@@ -103,9 +103,10 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -103,9 +103,10 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
103 | e,t -> failwith ("create_normal_concept noun: " ^ e)) in 103 | e,t -> failwith ("create_normal_concept noun: " ^ e)) in
104 let c = if t.cat = "depr" then {c with c_relations=Tuple[c.c_relations;SingleRelation(Val "depr")]} else c in 104 let c = if t.cat = "depr" then {c with c_relations=Tuple[c.c_relations;SingleRelation(Val "depr")]} else c in
105 if cx_flag then 105 if cx_flag then
106 - let id = ExtArray.add tokens PreTypes.empty_token in 106 + let id = ExtArray.add tokens ENIAMtokenizerTypes.empty_token in
  107 + let _ = ExtArray.add lex_sems ENIAMlexSemanticsTypes.empty_lex_sem in
107 Context{empty_context with cx_contents=Concept c; cx_variable=string_of_int id,""; cx_pos=c.c_pos} 108 Context{empty_context with cx_contents=Concept c; cx_variable=string_of_int id,""; cx_pos=c.c_pos}
108 - else Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,Concept c) else 109 + else Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,Concept c) else
109 if t.cat = "fin" || t.cat = "bedzie" || t.cat = "praet" || t.cat = "winien" || t.cat = "impt" || t.cat = "imps" || t.cat = "pred" || t.pred = "pro-komunikować" then 110 if t.cat = "fin" || t.cat = "bedzie" || t.cat = "praet" || t.cat = "winien" || t.cat = "impt" || t.cat = "imps" || t.cat = "pred" || t.pred = "pro-komunikować" then
110 let c = {c with c_local_quant=false} in 111 let c = {c with c_local_quant=false} in
111 let c = Xlist.fold t.attrs c (fun c -> function 112 let c = Xlist.fold t.attrs c (fun c -> function
@@ -122,10 +123,11 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -122,10 +123,11 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
122 | "NEG",Val "+" -> {c with c_quant=Tuple[c.c_quant;Val "nie"]} 123 | "NEG",Val "+" -> {c with c_quant=Tuple[c.c_quant;Val "nie"]}
123 | e,t -> failwith ("create_normal_concept verb: " ^ e)) in 124 | e,t -> failwith ("create_normal_concept verb: " ^ e)) in
124 let c = if t.pred = "pro-komunikować" then {c with c_relations=Relation(Val "Theme",Val "",c.c_relations)} else c in (* FIXME: to by trzeba przesunąć na wcześniej *) 125 let c = if t.pred = "pro-komunikować" then {c with c_relations=Relation(Val "Theme",Val "",c.c_relations)} else c in (* FIXME: to by trzeba przesunąć na wcześniej *)
125 - let id = ExtArray.add tokens PreTypes.empty_token in 126 + let id = ExtArray.add tokens ENIAMtokenizerTypes.empty_token in
  127 + let _ = ExtArray.add lex_sems ENIAMlexSemanticsTypes.empty_lex_sem in
126 let cx = {empty_context with cx_contents=Concept c; cx_variable=string_of_int id,""; cx_pos=c.c_pos} in 128 let cx = {empty_context with cx_contents=Concept c; cx_variable=string_of_int id,""; cx_pos=c.c_pos} in
127 - if t.position.WalTypes.role <> "" || t.position.WalTypes.role_attr <> "" then failwith "create_normal_concept: verb" else  
128 -(* Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,Context cx) else *) 129 + if t.position.ENIAMwalTypes.role <> "" || t.position.ENIAMwalTypes.role_attr <> "" then failwith "create_normal_concept: verb" else
  130 +(* Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,Context cx) else *)
129 Context cx else 131 Context cx else
130 if t.cat = "inf" then 132 if t.cat = "inf" then
131 let c = {c with c_local_quant=false} in 133 let c = {c with c_local_quant=false} in
@@ -134,9 +136,10 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -134,9 +136,10 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
134 | "TENSE",t -> {c with c_relations=Tuple[c.c_relations;SingleRelation t]} 136 | "TENSE",t -> {c with c_relations=Tuple[c.c_relations;SingleRelation t]}
135 | "NEG",Val "+" -> {c with c_quant=Tuple[c.c_quant;Val "nie"]} 137 | "NEG",Val "+" -> {c with c_quant=Tuple[c.c_quant;Val "nie"]}
136 | e,t -> failwith ("create_normal_concept verb: " ^ e)) in 138 | e,t -> failwith ("create_normal_concept verb: " ^ e)) in
137 - let id = ExtArray.add tokens PreTypes.empty_token in 139 + let id = ExtArray.add tokens ENIAMtokenizerTypes.empty_token in
  140 + let _ = ExtArray.add lex_sems in
138 let cx = {empty_context with cx_contents=Concept c; cx_variable=string_of_int id,""; cx_pos=c.c_pos} in 141 let cx = {empty_context with cx_contents=Concept c; cx_variable=string_of_int id,""; cx_pos=c.c_pos} in
139 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,Context cx) else 142 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,Context cx) else
140 if t.cat = "adj" || t.cat = "adjc" || t.cat = "adjp" || t.cat = "adja" || t.cat = "pact" || t.cat = "ppas" || t.cat = "ordnum" || t.cat = "roman-adj" then 143 if t.cat = "adj" || t.cat = "adjc" || t.cat = "adjp" || t.cat = "adja" || t.cat = "pact" || t.cat = "ppas" || t.cat = "ordnum" || t.cat = "roman-adj" then
141 let c = if t.cat = "pact" || t.cat = "ppas" then {c with c_local_quant=false} else c in 144 let c = if t.cat = "pact" || t.cat = "ppas" then {c with c_local_quant=false} else c in
142 let c = Xlist.fold t.attrs c (fun c -> function 145 let c = Xlist.fold t.attrs c (fun c -> function
@@ -157,8 +160,8 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -157,8 +160,8 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
157 | "LEX",_ -> c (* FIXME *) 160 | "LEX",_ -> c (* FIXME *)
158 | e,t -> failwith ("create_normal_concept adj: " ^ e)) in 161 | e,t -> failwith ("create_normal_concept adj: " ^ e)) in
159 if t.cat = "pact" || t.cat = "ppas" then 162 if t.cat = "pact" || t.cat = "ppas" then
160 - RevRelation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,Concept c)  
161 - else Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,Concept c) else 163 + RevRelation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,Concept c)
  164 + else Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,Concept c) else
162 if t.cat = "adv" || t.cat = "pcon" || t.cat = "pant" then 165 if t.cat = "adv" || t.cat = "pcon" || t.cat = "pant" then
163 let c = if t.cat = "pcon" || t.cat = "pant" then {c with c_local_quant=false} else c in 166 let c = if t.cat = "pcon" || t.cat = "pant" then {c with c_local_quant=false} else c in
164 let c = Xlist.fold t.attrs c (fun c -> function 167 let c = Xlist.fold t.attrs c (fun c -> function
@@ -169,7 +172,7 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -169,7 +172,7 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
169 | "TYPE",_ -> c 172 | "TYPE",_ -> c
170 | "NEG",Val "+" -> {c with c_quant=Tuple[c.c_quant;Val "nie"]} 173 | "NEG",Val "+" -> {c with c_quant=Tuple[c.c_quant;Val "nie"]}
171 | e,t -> failwith ("create_normal_concept adv: " ^ e)) in 174 | e,t -> failwith ("create_normal_concept adv: " ^ e)) in
172 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,Concept c) else 175 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,Concept c) else
173 if t.cat = "pro" || t.cat = "ppron12" || t.cat = "ppron3" || t.cat = "siebie" then (* FIXME: indexicalność *) 176 if t.cat = "pro" || t.cat = "ppron12" || t.cat = "ppron3" || t.cat = "siebie" then (* FIXME: indexicalność *)
174 let c = {c with c_local_quant=false} in 177 let c = {c with c_local_quant=false} in
175 let c = Xlist.fold t.attrs c (fun c -> function 178 let c = Xlist.fold t.attrs c (fun c -> function
@@ -180,13 +183,13 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -180,13 +183,13 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
180 | "SYN",_ -> c 183 | "SYN",_ -> c
181 | "NSEM",_ -> c 184 | "NSEM",_ -> c
182 | e,t -> failwith ("create_normal_concept pron: " ^ e)) in 185 | e,t -> failwith ("create_normal_concept pron: " ^ e)) in
183 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,Concept c) else 186 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,Concept c) else
184 if t.cat = "prep" then 187 if t.cat = "prep" then
185 - if t.arole = "NOSEM" then Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,t.args) else 188 + if t.arole = "NOSEM" then Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,t.args) else
186 let c = Xlist.fold t.attrs c (fun c -> function 189 let c = Xlist.fold t.attrs c (fun c -> function
187 | "CASE",_ -> c 190 | "CASE",_ -> c
188 | e,t -> failwith ("create_normal_concept prep: " ^ e)) in 191 | e,t -> failwith ("create_normal_concept prep: " ^ e)) in
189 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,Concept c) else 192 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,Concept c) else
190 if t.cat = "num" || t.cat = "intnum" || t.cat = "realnum" || t.cat = "intnum-interval" || t.cat = "realnum-interval" then 193 if t.cat = "num" || t.cat = "intnum" || t.cat = "realnum" || t.cat = "intnum-interval" || t.cat = "realnum-interval" then
191 let c = Xlist.fold t.attrs c (fun c -> function 194 let c = Xlist.fold t.attrs c (fun c -> function
192 (* "MEANING",t -> {c with c_sense=Tuple[c.c_sense;t]} *) 195 (* "MEANING",t -> {c with c_sense=Tuple[c.c_sense;t]} *)
@@ -197,20 +200,20 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -197,20 +200,20 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
197 | "PERS",_ -> c 200 | "PERS",_ -> c
198 | "TYPE",_ -> c 201 | "TYPE",_ -> c
199 | e,t -> failwith ("create_normal_concept num: " ^ e)) in 202 | e,t -> failwith ("create_normal_concept num: " ^ e)) in
200 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,(*Quantifier*)(Concept c)) else 203 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,(*Quantifier*)(Concept c)) else
201 if t.cat = "qub" && t.pred="się" then 204 if t.cat = "qub" && t.pred="się" then
202 let c = {c with c_quant=Tuple[c.c_quant;Val "coreferential"]} in 205 let c = {c with c_quant=Tuple[c.c_quant;Val "coreferential"]} in
203 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,(*Quantifier*)(Concept c)) else 206 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,(*Quantifier*)(Concept c)) else
204 if t.cat = "qub" && (t.pred="czy" || t.pred="gdyby") then 207 if t.cat = "qub" && (t.pred="czy" || t.pred="gdyby") then
205 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,SetContextName(t.meaning,t.args)) else 208 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,SetContextName(t.meaning,t.args)) else
206 if t.cat = "qub" then 209 if t.cat = "qub" then
207 let c = Xlist.fold t.attrs c (fun c -> function 210 let c = Xlist.fold t.attrs c (fun c -> function
208 (* | "TYPE",Val "int" -> {c with c_quant=Tuple[c.c_quant;Val "interrogative"]} 211 (* | "TYPE",Val "int" -> {c with c_quant=Tuple[c.c_quant;Val "interrogative"]}
209 | "TYPE",_ -> c*) 212 | "TYPE",_ -> c*)
210 | e,t -> failwith ("create_normal_concept qub: " ^ e)) in 213 | e,t -> failwith ("create_normal_concept qub: " ^ e)) in
211 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,Concept c) else 214 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,Concept c) else
212 if t.cat = "comp" then 215 if t.cat = "comp" then
213 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,SetContextName(t.meaning,t.args)) else 216 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,SetContextName(t.meaning,t.args)) else
214 if t.cat = "conj" then 217 if t.cat = "conj" then
215 let c = {empty_context with cx_sense=Val t.meaning; cx_contents=RemoveRelation t.args; cx_variable=string_of_int t.id,""; cx_pos=c.c_pos} in 218 let c = {empty_context with cx_sense=Val t.meaning; cx_contents=RemoveRelation t.args; cx_variable=string_of_int t.id,""; cx_pos=c.c_pos} in
216 let c = Xlist.fold t.attrs c (fun c -> function 219 let c = Xlist.fold t.attrs c (fun c -> function
@@ -219,7 +222,7 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -219,7 +222,7 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
219 | "GEND",_ -> c 222 | "GEND",_ -> c
220 | "PERS",_ -> c 223 | "PERS",_ -> c
221 | e,t -> failwith ("create_normal_concept conj: " ^ e)) in 224 | e,t -> failwith ("create_normal_concept conj: " ^ e)) in
222 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,Context c) else 225 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,Context c) else
223 if t.cat = "interj" then Node t else 226 if t.cat = "interj" then Node t else
224 if t.cat = "sinterj" then 227 if t.cat = "sinterj" then
225 let c = Xlist.fold t.attrs c (fun c -> function 228 let c = Xlist.fold t.attrs c (fun c -> function
@@ -240,7 +243,7 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -240,7 +243,7 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
240 if t.cat = "interp" && t.pred = "</query>" then 243 if t.cat = "interp" && t.pred = "</query>" then
241 let l = List.rev (make_args_list t.args) in 244 let l = List.rev (make_args_list t.args) in
242 let x = Xlist.fold (List.tl l) (List.hd l) (fun t s -> AddRelation(RemoveRelation t,"Next","Sentence",RemoveRelation s)) in 245 let x = Xlist.fold (List.tl l) (List.hd l) (fun t s -> AddRelation(RemoveRelation t,"Next","Sentence",RemoveRelation s)) in
243 - if t.agf = WalTypes.OBJ then Relation(Val t.arole,Val t.arole_attr,x) else x else 246 + if t.agf = ENIAMwalTypes.OBJ then Relation(Val t.arole,Val t.arole_attr,x) else x else
244 if t.cat = "interp" && t.pred = "<query1>" then t.args else 247 if t.cat = "interp" && t.pred = "<query1>" then t.args else
245 if t.cat = "interp" && t.pred = "<query2>" then t.args else 248 if t.cat = "interp" && t.pred = "<query2>" then t.args else
246 if t.cat = "interp" && t.pred = "<query4>" then t.args else 249 if t.cat = "interp" && t.pred = "<query4>" then t.args else
@@ -252,46 +255,46 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args = @@ -252,46 +255,46 @@ let rec create_normal_concept (*roles role_attrs*) tokens t sem_args =
252 Xlist.fold (List.tl l) (List.hd l) (fun t s -> AddRelation(RemoveRelation t,"Next","Sentence",RemoveRelation s)) else 255 Xlist.fold (List.tl l) (List.hd l) (fun t s -> AddRelation(RemoveRelation t,"Next","Sentence",RemoveRelation s)) else
253 if t.cat = "interp" && t.pred = "?" then SingleRelation(Val "int") else 256 if t.cat = "interp" && t.pred = "?" then SingleRelation(Val "int") else
254 if t.cat = "interp" && t.pred = "„" then 257 if t.cat = "interp" && t.pred = "„" then
255 - Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,RemoveRelation t.args) else  
256 - if t.cat = "interp" || t.pred = "</or-sentence>" then Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,t.args) else ( 258 + Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,RemoveRelation t.args) else
  259 + if t.cat = "interp" || t.pred = "</or-sentence>" then Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,t.args) else (
257 if t.cat = "interp" then Node t else 260 if t.cat = "interp" then Node t else
258 - if t.cat = "" then Relation(Val t.position.WalTypes.role,Val t.position.WalTypes.role_attr,t.args) else 261 + if t.cat = "" then Relation(Val t.position.ENIAMwalTypes.role,Val t.position.ENIAMwalTypes.role_attr,t.args) else
259 (* print_endline t.pred; *) 262 (* print_endline t.pred; *)
260 Node t) 263 Node t)
261 264
262 -and create_concepts tokens = function 265 +and create_concepts tokens lex_sems = function
263 Node t -> 266 Node t ->
264 (* print_endline ("cc " ^ t.pred); *) 267 (* print_endline ("cc " ^ t.pred); *)
265 (* let agf = t.agf in *) 268 (* let agf = t.agf in *)
266 let attrs = remove_unimportant_attrs t.attrs in 269 let attrs = remove_unimportant_attrs t.attrs in
267 (* let attrs,roles,role_attrs = get_roles attrs in *) 270 (* let attrs,roles,role_attrs = get_roles attrs in *)
268 let t = {t with attrs=attrs} in 271 let t = {t with attrs=attrs} in
269 - (match (ExtArray.get tokens t.id).PreTypes.semantics with  
270 - PreTypes.Normal ->  
271 - let t = create_normal_concept tokens t [] in  
272 -(* if agf = WalTypes.CORE then Core t else *) t  
273 - | PreTypes.PrepSemantics _ ->  
274 - let t = create_normal_concept tokens t [] in  
275 -(* if agf = WalTypes.CORE then Core t else *) t  
276 - | PreTypes.Special l ->  
277 - let t = create_normal_concept tokens t l in  
278 -(* if agf = WalTypes.CORE then Core t else *) t  
279 -(* | PreTypes.SpecialNoun(lemma,_) -> 272 + (match (ExtArray.get lex_sems t.id).ENIAMlexSemanticsTypes.semantics with
  273 + ENIAMlexSemanticsTypes.Normal ->
  274 + let t = create_normal_concept tokens lex_sems t [] in
  275 +(* if agf = ENIAMwalTypes.CORE then Core t else *) t
  276 + | ENIAMlexSemanticsTypes.PrepSemantics _ ->
  277 + let t = create_normal_concept tokens lex_sems t [] in
  278 +(* if agf = ENIAMwalTypes.CORE then Core t else *) t
  279 + | ENIAMlexSemanticsTypes.Special l ->
  280 + let t = create_normal_concept tokens lex_sems t l in
  281 +(* if agf = ENIAMwalTypes.CORE then Core t else *) t
  282 +(* | ENIAMlexSemanticsTypes.SpecialNoun(lemma,_) ->
280 let t = create_normal_concept tokens t in*) 283 let t = create_normal_concept tokens t in*)
281 -(* if agf = WalTypes.CORE then Core t else t*) 284 +(* if agf = ENIAMwalTypes.CORE then Core t else t*)
282 (*| _ -> failwith "create_concepts: ni"*)) 285 (*| _ -> failwith "create_concepts: ni"*))
283 - | Tuple l -> Tuple(Xlist.map l (create_concepts tokens))  
284 - | Variant(e,l) -> Variant(e,Xlist.map l (fun (i,t) -> i, create_concepts tokens t)) 286 + | Tuple l -> Tuple(Xlist.map l (create_concepts tokens lex_sems))
  287 + | Variant(e,l) -> Variant(e,Xlist.map l (fun (i,t) -> i, create_concepts tokens lex_sems t))
285 | Dot -> Dot 288 | Dot -> Dot
286 | Ref i -> Ref i 289 | Ref i -> Ref i
287 - | Choice choices -> Choice(StringMap.map choices (create_concepts tokens)) 290 + | Choice choices -> Choice(StringMap.map choices (create_concepts tokens lex_sems))
288 | t -> failwith ("create_concepts: " ^ LCGstringOf.linear_term 0 t) 291 | t -> failwith ("create_concepts: " ^ LCGstringOf.linear_term 0 t)
289 292
290 293
291 -let translate tokens term = 294 +let translate tokens lex_sems term =
292 let sem = Array.copy term in 295 let sem = Array.copy term in
293 Int.iter 0 (Array.length sem - 1) (fun i -> 296 Int.iter 0 (Array.length sem - 1) (fun i ->
294 - sem.(i) <- create_concepts tokens sem.(i)); 297 + sem.(i) <- create_concepts tokens lex_sems sem.(i));
295 sem 298 sem
296 299
297 (***************************************************************************************) 300 (***************************************************************************************)
parser/visualization.ml
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 open LCGtypes 20 open LCGtypes
21 open Xstd 21 open Xstd
22 open Printf 22 open Printf
23 -open PreTypes 23 +open ENIAMtokenizerTypes
24 24
25 let string_of_interps interps = 25 let string_of_interps interps =
26 String.concat "|" (Xlist.map interps (fun interp -> 26 String.concat "|" (Xlist.map interps (fun interp ->
@@ -28,46 +28,46 @@ let string_of_interps interps = @@ -28,46 +28,46 @@ let string_of_interps interps =
28 (String.concat "." interp2)))))) 28 (String.concat "." interp2))))))
29 29
30 let rec string_of_token = function 30 let rec string_of_token = function
31 - PreTypes.SmallLetter orth -> sprintf "SmallLetter(%s)" orth  
32 - | PreTypes.CapLetter(orth,lc) -> sprintf "CapLetter(%s,%s)" orth lc  
33 - | PreTypes.AllSmall orth -> sprintf "AllSmall(%s)" orth  
34 - | PreTypes.AllCap(orth,lc,lc2) -> sprintf "AllCap(%s,%s,%s)" orth lc lc2  
35 - | PreTypes.FirstCap(orth,lc,cl,ll) -> sprintf "FirstCap(%s,%s,%s,%s)" orth lc cl ll  
36 - | PreTypes.SomeCap orth -> sprintf "SomeCap(%s)" orth  
37 - | PreTypes.RomanDig(v,t) -> sprintf "RomanDig(%s,%s)" v t  
38 - | PreTypes.Interp orth -> sprintf "Interp(%s)" orth  
39 - | PreTypes.Symbol orth -> sprintf "Symbol(%s)" orth  
40 - | PreTypes.Dig(v,t) -> sprintf "Dig(%s,%s)" v t  
41 - | PreTypes.Other2 orth -> sprintf "Other(%s)" orth  
42 - | PreTypes.Lemma(lemma,cat,interps) -> sprintf "Lemma(%s,%s,%s)" lemma cat (string_of_interps interps)  
43 - | PreTypes.Proper(lemma,cat,interps,senses) -> sprintf "Proper(%s,%s,%s,%s)" lemma cat (string_of_interps interps) (String.concat "|" senses)  
44 - | PreTypes.Compound(sense,l) -> sprintf "Compound(%s,[%s])" sense (String.concat ";" (Xlist.map l string_of_token))  
45 - | PreTypes.Tokens(cat,l) -> sprintf "Tokens(%s,%s)" cat (String.concat ";" (Xlist.map l string_of_int)) 31 + SmallLetter orth -> sprintf "SmallLetter(%s)" orth
  32 + | CapLetter(orth,lc) -> sprintf "CapLetter(%s,%s)" orth lc
  33 + | AllSmall orth -> sprintf "AllSmall(%s)" orth
  34 + | AllCap(orth,lc,lc2) -> sprintf "AllCap(%s,%s,%s)" orth lc lc2
  35 + | FirstCap(orth,lc,cl,ll) -> sprintf "FirstCap(%s,%s,%s,%s)" orth lc cl ll
  36 + | SomeCap orth -> sprintf "SomeCap(%s)" orth
  37 + | RomanDig(v,t) -> sprintf "RomanDig(%s,%s)" v t
  38 + | Interp orth -> sprintf "Interp(%s)" orth
  39 + | Symbol orth -> sprintf "Symbol(%s)" orth
  40 + | Dig(v,t) -> sprintf "Dig(%s,%s)" v t
  41 + | Other orth -> sprintf "Other(%s)" orth
  42 + | Lemma(lemma,cat,interps) -> sprintf "Lemma(%s,%s,%s)" lemma cat (string_of_interps interps)
  43 + | Proper(lemma,cat,interps,senses) -> sprintf "Proper(%s,%s,%s,%s)" lemma cat (string_of_interps interps) (String.concat "|" senses)
  44 + | Compound(sense,l) -> sprintf "Compound(%s,[%s])" sense (String.concat ";" (Xlist.map l string_of_token))
  45 + | Tokens(cat,l) -> sprintf "Tokens(%s,%s)" cat (String.concat ";" (Xlist.map l string_of_int))
46 46
47 let lemma_of_token = function 47 let lemma_of_token = function
48 - PreTypes.SmallLetter orth -> orth  
49 - | PreTypes.CapLetter(orth,lc) -> orth  
50 - | PreTypes.AllSmall orth -> orth  
51 - | PreTypes.AllCap(orth,lc,lc2) -> orth  
52 - | PreTypes.FirstCap(orth,lc,cl,ll) -> orth  
53 - | PreTypes.SomeCap orth -> orth  
54 - | PreTypes.RomanDig(v,t) -> v  
55 - | PreTypes.Interp orth -> orth  
56 - | PreTypes.Symbol orth -> orth  
57 - | PreTypes.Dig(v,t) -> v  
58 - | PreTypes.Other2 orth -> orth  
59 - | PreTypes.Lemma(lemma,cat,interps) -> lemma  
60 - | PreTypes.Proper(lemma,cat,interps,senses) -> lemma  
61 - | PreTypes.Compound(sense,l) -> "Compound"  
62 - | PreTypes.Tokens(cat,l) -> "Tokens" 48 + SmallLetter orth -> orth
  49 + | CapLetter(orth,lc) -> orth
  50 + | AllSmall orth -> orth
  51 + | AllCap(orth,lc,lc2) -> orth
  52 + | FirstCap(orth,lc,cl,ll) -> orth
  53 + | SomeCap orth -> orth
  54 + | RomanDig(v,t) -> v
  55 + | Interp orth -> orth
  56 + | Symbol orth -> orth
  57 + | Dig(v,t) -> v
  58 + | Other orth -> orth
  59 + | Lemma(lemma,cat,interps) -> lemma
  60 + | Proper(lemma,cat,interps,senses) -> lemma
  61 + | Compound(sense,l) -> "Compound"
  62 + | Tokens(cat,l) -> "Tokens"
63 63
64 let rec spaces i = 64 let rec spaces i =
65 if i = 0 then "" else " " ^ spaces (i-1) 65 if i = 0 then "" else " " ^ spaces (i-1)
66 - 66 +(*
67 let rec string_of_tokens i = function 67 let rec string_of_tokens i = function
68 - PreTypes.Token t -> sprintf "%s{orth=%s;beg=%d;len=%d;next=%d;token=%s;weight=%.2f;attrs=[%s];\n%s senses=[%s];\n%s valence=[%s];\n%s simple_valence=[%s];lroles=%s,%s}" (spaces i) t.PreTypes.orth t.PreTypes.beg t.PreTypes.len t.PreTypes.next (string_of_token t.PreTypes.token)  
69 - t.PreTypes.weight (String.concat ";" t.PreTypes.attrs) (spaces i) (String.concat ";" (Xlist.map t.PreTypes.senses (fun (sense,hipero,weight) -> sprintf "%s[%s]%.2f" sense (String.concat "," hipero) weight)))  
70 - (spaces i) (String.concat ";" (Xlist.map t.PreTypes.valence (WalStringOf.fnum_frame ""))) (spaces i) (String.concat ";" (Xlist.map t.PreTypes.simple_valence (WalStringOf.fnum_frame ""))) (fst t.lroles) (snd t.lroles) 68 + Token t -> sprintf "%s{orth=%s;beg=%d;len=%d;next=%d;token=%s;weight=%.2f;attrs=[%s];\n%s senses=[%s];\n%s valence=[%s];\n%s simple_valence=[%s];lroles=%s,%s}" (spaces i) t.orth t.beg t.len t.next (string_of_token t.token)
  69 + t.weight (String.concat ";" t.PreTypes.attrs) (spaces i) (String.concat ";" (Xlist.map t.PreTypes.senses (fun (sense,hipero,weight) -> sprintf "%s[%s]%.2f" sense (String.concat "," hipero) weight)))
  70 + (spaces i) (String.concat ";" (Xlist.map t.PreTypes.valence (ENIAMwalStringOf.fnum_frame ""))) (spaces i) (String.concat ";" (Xlist.map t.PreTypes.simple_valence (ENIAMwalStringOf.fnum_frame ""))) (fst t.lroles) (snd t.lroles)
71 | PreTypes.Variant l -> sprintf "%sVariant[\n%s]" (spaces i) (String.concat ";\n" (Xlist.map l (string_of_tokens (i+1)))) 71 | PreTypes.Variant l -> sprintf "%sVariant[\n%s]" (spaces i) (String.concat ";\n" (Xlist.map l (string_of_tokens (i+1))))
72 | PreTypes.Seq l -> sprintf "%sSeq[\n%s]" (spaces i) (String.concat ";\n" (Xlist.map l (string_of_tokens (i+1)))) 72 | PreTypes.Seq l -> sprintf "%sSeq[\n%s]" (spaces i) (String.concat ";\n" (Xlist.map l (string_of_tokens (i+1))))
73 73
@@ -75,7 +75,7 @@ let paths_to_string_indexed (paths,last,next_id) = @@ -75,7 +75,7 @@ let paths_to_string_indexed (paths,last,next_id) =
75 String.concat "\n" (Xlist.map paths (fun (i,j,t) -> 75 String.concat "\n" (Xlist.map paths (fun (i,j,t) ->
76 Printf.sprintf "%2d %2d %s" i j (string_of_tokens 0 (PreTypes.Token t)))) 76 Printf.sprintf "%2d %2d %s" i j (string_of_tokens 0 (PreTypes.Token t))))
77 ^ Printf.sprintf "\nlast=%d next_id=%d" last next_id 77 ^ Printf.sprintf "\nlast=%d next_id=%d" last next_id
78 - 78 +*)
79 (*let string_of_token_record1 t = 79 (*let string_of_token_record1 t =
80 sprintf "{orth=%s;beg=%d;len=%d;next=%d;token=%s;id=%d;lnode=%d;rnode=%d;conll_id=%s;conll_super=%s;conll_label=%s;attrs=[%s]}" 80 sprintf "{orth=%s;beg=%d;len=%d;next=%d;token=%s;id=%d;lnode=%d;rnode=%d;conll_id=%s;conll_super=%s;conll_label=%s;attrs=[%s]}"
81 t.PreTypes.orth t.PreTypes.beg t.PreTypes.len t.PreTypes.next (string_of_token t.PreTypes.token) 81 t.PreTypes.orth t.PreTypes.beg t.PreTypes.len t.PreTypes.next (string_of_token t.PreTypes.token)
@@ -104,8 +104,8 @@ let string_of_status = function @@ -104,8 +104,8 @@ let string_of_status = function
104 let rec xml_of_dependency_tree = function 104 let rec xml_of_dependency_tree = function
105 Node t -> Xml.Element("node",["pred",t.pred;"cat",t.cat;"weight",string_of_float t.weight;"id",string_of_int t.id],[ 105 Node t -> Xml.Element("node",["pred",t.pred;"cat",t.cat;"weight",string_of_float t.weight;"id",string_of_int t.id],[
106 Xml.Element("gs",[],[xml_of_dependency_tree t.gs]); 106 Xml.Element("gs",[],[xml_of_dependency_tree t.gs]);
107 - Xml.Element("agf",[],[Xml.PCData (WalStringOf.gf t.agf)]);  
108 - Xml.Element("amorf",[],[Xml.PCData (WalStringOf.morf t.amorf)]); 107 + Xml.Element("agf",[],[Xml.PCData (ENIAMwalStringOf.gf t.agf)]);
  108 + Xml.Element("amorf",[],[Xml.PCData (ENIAMwalStringOf.morf t.amorf)]);
109 Xml.Element("attrs",[],Xlist.map t.attrs (fun (e,t) -> Xml.Element("attr",["label",e],[xml_of_dependency_tree t]))); 109 Xml.Element("attrs",[],Xlist.map t.attrs (fun (e,t) -> Xml.Element("attr",["label",e],[xml_of_dependency_tree t])));
110 Xml.Element("args",[],[xml_of_dependency_tree t.args])]) 110 Xml.Element("args",[],[xml_of_dependency_tree t.args])])
111 | Concept c -> Xml.Element("concept",["var",fst c.c_variable ^ snd c.c_variable;"pos",string_of_int c.c_pos],[ 111 | Concept c -> Xml.Element("concept",["var",fst c.c_variable ^ snd c.c_variable;"pos",string_of_int c.c_pos],[
@@ -168,8 +168,8 @@ let string_of_node t = @@ -168,8 +168,8 @@ let string_of_node t =
168 "PRED",Val t.pred;"CAT",Val t.cat;"ID",Val (string_of_int t.id);"WEIGHT",Val (string_of_float t.weight);"GS",t.gs; 168 "PRED",Val t.pred;"CAT",Val t.cat;"ID",Val (string_of_int t.id);"WEIGHT",Val (string_of_float t.weight);"GS",t.gs;
169 "AGF",Gf t.agf;"AMORF",Morf t.amorf;"AROLE",Val t.arole;"AROLE-ATTR",Val t.arole_attr; 169 "AGF",Gf t.agf;"AMORF",Morf t.amorf;"AROLE",Val t.arole;"AROLE-ATTR",Val t.arole_attr;
170 "MEANING",Val t.meaning;"HIPERO",Tuple(Xlist.map (StringSet.to_list t.hipero) (fun s -> Val s));"MEANING-WEIGHT",Val (string_of_float t.meaning_weight); 170 "MEANING",Val t.meaning;"HIPERO",Tuple(Xlist.map (StringSet.to_list t.hipero) (fun s -> Val s));"MEANING-WEIGHT",Val (string_of_float t.meaning_weight);
171 - "ROLE",Val t.position.WalTypes.role;"ROLE-ATTR",Val t.position.WalTypes.role_attr;"SEL-PREFS",Tuple(Xlist.map t.position.WalTypes.sel_prefs (fun s -> Val s));  
172 - "GF",Gf t.position.WalTypes.gf] @ t.attrs in 171 + "ROLE",Val t.position.ENIAMwalTypes.role;"ROLE-ATTR",Val t.position.ENIAMwalTypes.role_attr;"SEL-PREFS",Tuple(Xlist.map t.position.ENIAMwalTypes.sel_prefs (fun s -> Val s));
  172 + "GF",Gf t.position.ENIAMwalTypes.gf] @ t.attrs in
173 "{ " ^ String.concat " | " (Xlist.map l (fun (e,t) -> "{ " ^ e ^ " | " ^ escape_string (LCGstringOf.linear_term 0 t) ^ " }")) ^ " }" 173 "{ " ^ String.concat " | " (Xlist.map l (fun (e,t) -> "{ " ^ e ^ " | " ^ escape_string (LCGstringOf.linear_term 0 t) ^ " }")) ^ " }"
174 174
175 let single_rel_id_count = ref 0 175 let single_rel_id_count = ref 0
@@ -447,16 +447,16 @@ let print_graph2 path name query t = @@ -447,16 +447,16 @@ let print_graph2 path name query t =
447 Xlist.iter (Str.split (Str.regexp path) path) (fun _ -> Sys.chdir "..")*) 447 Xlist.iter (Str.split (Str.regexp path) path) (fun _ -> Sys.chdir "..")*)
448 448
449 let rec get_lemma = function 449 let rec get_lemma = function
450 - PreTypes.Interp orth -> orth  
451 - | PreTypes.Lemma(lemma,cat,_) -> lemma ^ "\n" ^ cat 450 + ENIAMtokenizerTypes.Interp orth -> orth
  451 + | ENIAMtokenizerTypes.Lemma(lemma,cat,_) -> lemma ^ "\n" ^ cat
452 | _ -> "" 452 | _ -> ""
453 453
454 let print_paths path name paths = 454 let print_paths path name paths =
455 File.file_out (path ^ name ^ ".gv") (fun file -> 455 File.file_out (path ^ name ^ ".gv") (fun file ->
456 fprintf file "digraph G {\n"; 456 fprintf file "digraph G {\n";
457 Array.iter (fun t -> 457 Array.iter (fun t ->
458 - let lemma = get_lemma t.PreTypes.token in  
459 - if lemma <> "" then fprintf file " %d -> %d [label=\"%s\\n%s\"]\n" t.PreTypes.beg t.PreTypes.next t.PreTypes.orth lemma) paths; 458 + let lemma = get_lemma t.ENIAMtokenizerTypes.token in
  459 + if lemma <> "" then fprintf file " %d -> %d [label=\"%s\\n%s\"]\n" t.ENIAMtokenizerTypes.beg t.ENIAMtokenizerTypes.next t.ENIAMtokenizerTypes.orth lemma) paths;
460 fprintf file "}\n"); 460 fprintf file "}\n");
461 Sys.chdir path; 461 Sys.chdir path;
462 ignore (Sys.command ("dot -Tpng " ^ name ^ ".gv -o " ^ name ^ ".png")); 462 ignore (Sys.command ("dot -Tpng " ^ name ^ ".gv -o " ^ name ^ ".png"));
@@ -474,7 +474,7 @@ let rec print_simplified_dependency_tree_rec2 file tokens edge upper = function @@ -474,7 +474,7 @@ let rec print_simplified_dependency_tree_rec2 file tokens edge upper = function
474 474
475 let rec print_simplified_dependency_tree_rec file tokens edge upper id = function 475 let rec print_simplified_dependency_tree_rec file tokens edge upper id = function
476 Node t -> 476 Node t ->
477 - let orth = if t.id = 0 then "" else (ExtArray.get tokens t.id).PreTypes.orth in 477 + let orth = if t.id = 0 then "" else (ExtArray.get tokens t.id).ENIAMtokenizerTypes.orth in
478 fprintf file " %s [label=\"%s\\n%s\\n%s:%s\\n%f\"]\n" id (LCGstringOf.linear_term 0 t.gs) orth t.pred t.cat t.weight; 478 fprintf file " %s [label=\"%s\\n%s\\n%s:%s\\n%f\"]\n" id (LCGstringOf.linear_term 0 t.gs) orth t.pred t.cat t.weight;
479 print_edge file edge upper id; 479 print_edge file edge upper id;
480 print_simplified_dependency_tree_rec2 file tokens "" id t.args 480 print_simplified_dependency_tree_rec2 file tokens "" id t.args
@@ -495,7 +495,7 @@ let print_simplified_dependency_tree path name tokens dependency_tree = @@ -495,7 +495,7 @@ let print_simplified_dependency_tree path name tokens dependency_tree =
495 Int.iter 0 (Array.length dependency_tree - 1) (fun i -> print_simplified_dependency_tree_rec file tokens "" "" ("x" ^ string_of_int i) dependency_tree.(i)); 495 Int.iter 0 (Array.length dependency_tree - 1) (fun i -> print_simplified_dependency_tree_rec file tokens "" "" ("x" ^ string_of_int i) dependency_tree.(i));
496 (* match dependency_tree.(i) with 496 (* match dependency_tree.(i) with
497 Node t -> 497 Node t ->
498 - let orth = if t.id = 0 then "" else tokens.(t.id).PreTypes.orth in 498 + let orth = if t.id = 0 then "" else tokens.(t.id).ENIAMtokenizerTypes.orth in
499 fprintf file " %d [label=\"%s\\n%s\\n%s:%s\"]\n" i (LCGstringOf.linear_term 0 t.gs) orth t.pred t.cat; 499 fprintf file " %d [label=\"%s\\n%s\\n%s:%s\"]\n" i (LCGstringOf.linear_term 0 t.gs) orth t.pred t.cat;
500 let refs = get_refs [] t.args in 500 let refs = get_refs [] t.args in
501 Xlist.iter refs (fun r -> 501 Xlist.iter refs (fun r ->
@@ -510,14 +510,14 @@ let print_simplified_dependency_tree path name tokens dependency_tree = @@ -510,14 +510,14 @@ let print_simplified_dependency_tree path name tokens dependency_tree =
510 File.file_out filename (fun file -> 510 File.file_out filename (fun file ->
511 fprintf file "digraph G {\n"; 511 fprintf file "digraph G {\n";
512 let set = Xlist.fold paths IntSet.empty (fun set t -> 512 let set = Xlist.fold paths IntSet.empty (fun set t ->
513 - IntSet.add (IntSet.add set t.PreTypes.beg) t.PreTypes.next) in 513 + IntSet.add (IntSet.add set t.ENIAMtokenizerTypes.beg) t.ENIAMtokenizerTypes.next) in
514 IntSet.iter set (fun i -> fprintf file " %d [width=0; height=0; label=\"\"]\n" i); 514 IntSet.iter set (fun i -> fprintf file " %d [width=0; height=0; label=\"\"]\n" i);
515 Xlist.iter paths (fun t -> 515 Xlist.iter paths (fun t ->
516 - let lemma = get_lemma t.PreTypes.token in 516 + let lemma = get_lemma t.ENIAMtokenizerTypes.token in
517 if lemma <> "" then ( 517 if lemma <> "" then (
518 - let s = if t.PreTypes.orth = "" then lemma else t.PreTypes.orth ^ "\n" ^ lemma in  
519 - fprintf file " %d -> i%d -> %d [arrowhead=none]\n" t.PreTypes.beg t.PreTypes.id t.PreTypes.next;  
520 - fprintf file " i%d [label=\"%s\"]\n" t.PreTypes.id s)); 518 + let s = if t.ENIAMtokenizerTypes.orth = "" then lemma else t.ENIAMtokenizerTypes.orth ^ "\n" ^ lemma in
  519 + fprintf file " %d -> i%d -> %d [arrowhead=none]\n" t.ENIAMtokenizerTypes.beg t.ENIAMtokenizerTypes.id t.ENIAMtokenizerTypes.next;
  520 + fprintf file " i%d [label=\"%s\"]\n" t.ENIAMtokenizerTypes.id s));
521 fprintf file "}\n"); 521 fprintf file "}\n");
522 Sys.chdir "results"; 522 Sys.chdir "results";
523 ignore (Sys.command "dot -Tpng tree.gv -o tree.png"); 523 ignore (Sys.command "dot -Tpng tree.gv -o tree.png");
@@ -527,13 +527,13 @@ let print_simplified_dependency_tree path name tokens dependency_tree = @@ -527,13 +527,13 @@ let print_simplified_dependency_tree path name tokens dependency_tree =
527 File.file_out filename (fun file -> 527 File.file_out filename (fun file ->
528 fprintf file "digraph G {\n"; 528 fprintf file "digraph G {\n";
529 fprintf file " subgraph {\n ordering=out\n"; 529 fprintf file " subgraph {\n ordering=out\n";
530 - let same = Xlist.fold (Xlist.sort paths (fun s t -> compare s.PreTypes.beg t.PreTypes.beg)) [] (fun same t ->  
531 - let lemma = get_lemma t.PreTypes.token in 530 + let same = Xlist.fold (Xlist.sort paths (fun s t -> compare s.ENIAMtokenizerTypes.beg t.ENIAMtokenizerTypes.beg)) [] (fun same t ->
  531 + let lemma = get_lemma t.ENIAMtokenizerTypes.token in
532 if lemma <> "" then ( 532 if lemma <> "" then (
533 - let s = if t.PreTypes.orth = "" then lemma else t.PreTypes.orth ^ "\n" ^ lemma in  
534 - fprintf file " i%d -> out [arrowhead=none]\n" t.PreTypes.id;  
535 - fprintf file " i%d [label=\"%s\"]\n" t.PreTypes.id s;  
536 - t.PreTypes.id :: same) 533 + let s = if t.ENIAMtokenizerTypes.orth = "" then lemma else t.ENIAMtokenizerTypes.orth ^ "\n" ^ lemma in
  534 + fprintf file " i%d -> out [arrowhead=none]\n" t.ENIAMtokenizerTypes.id;
  535 + fprintf file " i%d [label=\"%s\"]\n" t.ENIAMtokenizerTypes.id s;
  536 + t.ENIAMtokenizerTypes.id :: same)
537 else same) in 537 else same) in
538 fprintf file " }\n"; 538 fprintf file " }\n";
539 fprintf file " { rank = same; %s }\n" (String.concat "; " (Xlist.map same (fun i -> sprintf "\"i%d\"" i))); 539 fprintf file " { rank = same; %s }\n" (String.concat "; " (Xlist.map same (fun i -> sprintf "\"i%d\"" i)));
@@ -555,19 +555,19 @@ let rec schema_latex schema = @@ -555,19 +555,19 @@ let rec schema_latex schema =
555 "\\begin{tabular}{l}" ^ 555 "\\begin{tabular}{l}" ^
556 String.concat "\\\\" (Xlist.map schema (fun s -> 556 String.concat "\\\\" (Xlist.map schema (fun s ->
557 LatexMain.escape_string (String.concat "," ( 557 LatexMain.escape_string (String.concat "," (
558 - (if s.WalTypes.gf = WalTypes.ARG then [] else [WalStringOf.gf s.WalTypes.gf])@  
559 - (if s.WalTypes.role = "" then [] else [s.WalTypes.role])@  
560 - (if s.WalTypes.role_attr = "" then [] else [s.WalTypes.role_attr])@  
561 - s.WalTypes.sel_prefs@(WalStringOf.controllers s.WalTypes.cr)@(WalStringOf.controllees s.WalTypes.ce)) ^ WalStringOf.direction s.WalTypes.dir ^ "{" ^ String.concat ";" (Xlist.map s.WalTypes.morfs WalStringOf.morf) ^ "}"))) ^ 558 + (if s.ENIAMwalTypes.gf = ENIAMwalTypes.ARG then [] else [ENIAMwalStringOf.gf s.ENIAMwalTypes.gf])@
  559 + (if s.ENIAMwalTypes.role = "" then [] else [s.ENIAMwalTypes.role])@
  560 + (if s.ENIAMwalTypes.role_attr = "" then [] else [s.ENIAMwalTypes.role_attr])@
  561 + s.ENIAMwalTypes.sel_prefs@(ENIAMwalStringOf.controllers s.ENIAMwalTypes.cr)@(ENIAMwalStringOf.controllees s.ENIAMwalTypes.ce)) ^ ENIAMwalStringOf.direction s.ENIAMwalTypes.dir ^ "{" ^ String.concat ";" (Xlist.map s.ENIAMwalTypes.morfs ENIAMwalStringOf.morf) ^ "}"))) ^
562 "\\end{tabular}" 562 "\\end{tabular}"
563 563
564 let fnum_frame_latex = function 564 let fnum_frame_latex = function
565 - fnum,WalTypes.Frame(atrs,s) ->  
566 - Printf.sprintf "%d: %s: %s" fnum (LatexMain.escape_string (WalStringOf.frame_atrs atrs)) (schema_latex s)  
567 - | fnum,WalTypes.LexFrame(id,p,r,s) ->  
568 - Printf.sprintf "%d: %s: %s: %s: %s" fnum id (LatexMain.escape_string (WalStringOf.pos p)) (WalStringOf.restr r) (schema_latex s)  
569 - | fnum,WalTypes.ComprepFrame(le,p,r,s) ->  
570 - Printf.sprintf "%d: %s: %s: %s: %s" fnum le (LatexMain.escape_string (WalStringOf.pos p)) (WalStringOf.restr r) (schema_latex s) 565 + fnum,ENIAMwalTypes.Frame(atrs,s) ->
  566 + Printf.sprintf "%d: %s: %s" fnum (LatexMain.escape_string (ENIAMwalStringOf.frame_atrs atrs)) (schema_latex s)
  567 + | fnum,ENIAMwalTypes.LexFrame(id,p,r,s) ->
  568 + Printf.sprintf "%d: %s: %s: %s: %s" fnum id (LatexMain.escape_string (ENIAMwalStringOf.pos p)) (ENIAMwalStringOf.restr r) (schema_latex s)
  569 + | fnum,ENIAMwalTypes.ComprepFrame(le,p,r,s) ->
  570 + Printf.sprintf "%d: %s: %s: %s: %s" fnum le (LatexMain.escape_string (ENIAMwalStringOf.pos p)) (ENIAMwalStringOf.restr r) (schema_latex s)
571 571
572 (*let print_paths_latex name paths = 572 (*let print_paths_latex name paths =
573 LatexMain.latex_file_out "results/" name "a0" false (fun file -> 573 LatexMain.latex_file_out "results/" name "a0" false (fun file ->
@@ -575,11 +575,11 @@ let fnum_frame_latex = function @@ -575,11 +575,11 @@ let fnum_frame_latex = function
575 Int.iter 0 (Array.length paths - 1) (fun i -> 575 Int.iter 0 (Array.length paths - 1) (fun i ->
576 let t = paths.(i) in 576 let t = paths.(i) in
577 fprintf file "%s & %d & %d & %d & %s & %d & %.4f & %s & %s %s &\\begin{tabular}{l|l|p{4cm}}%s\\end{tabular} &\\begin{tabular}{l}%s\\end{tabular} &\\begin{tabular}{l}%s\\end{tabular}\\\\\n\\hline\n" 577 fprintf file "%s & %d & %d & %d & %s & %d & %.4f & %s & %s %s &\\begin{tabular}{l|l|p{4cm}}%s\\end{tabular} &\\begin{tabular}{l}%s\\end{tabular} &\\begin{tabular}{l}%s\\end{tabular}\\\\\n\\hline\n"
578 - t.PreTypes.orth t.PreTypes.beg t.PreTypes.len t.PreTypes.next (LatexMain.escape_string (string_of_token t.PreTypes.token)) t.PreTypes.id t.PreTypes.weight  
579 - (String.concat ";" t.PreTypes.attrs) (fst t.PreTypes.lroles) (snd t.PreTypes.lroles)  
580 - (String.concat "\\\\\n" (Xlist.map t.PreTypes.senses (fun (sense,hipero,weight) -> sprintf "%s & %.2f & %s" sense weight (String.concat "," hipero))))  
581 - (String.concat "\\\\\n\\hline\n" (Xlist.map t.PreTypes.simple_valence (fun x -> fnum_frame_latex x)))  
582 - (String.concat "\\\\\n\\hline\n" (Xlist.map t.PreTypes.valence (fun x -> fnum_frame_latex x)))); 578 + t.ENIAMtokenizerTypes.orth t.ENIAMtokenizerTypes.beg t.ENIAMtokenizerTypes.len t.ENIAMtokenizerTypes.next (LatexMain.escape_string (string_of_token t.ENIAMtokenizerTypes.token)) t.ENIAMtokenizerTypes.id t.ENIAMtokenizerTypes.weight
  579 + (String.concat ";" t.ENIAMtokenizerTypes.attrs) (fst t.ENIAMtokenizerTypes.lroles) (snd t.ENIAMtokenizerTypes.lroles)
  580 + (String.concat "\\\\\n" (Xlist.map t.ENIAMtokenizerTypes.senses (fun (sense,hipero,weight) -> sprintf "%s & %.2f & %s" sense weight (String.concat "," hipero))))
  581 + (String.concat "\\\\\n\\hline\n" (Xlist.map t.ENIAMtokenizerTypes.simple_valence (fun x -> fnum_frame_latex x)))
  582 + (String.concat "\\\\\n\\hline\n" (Xlist.map t.ENIAMtokenizerTypes.valence (fun x -> fnum_frame_latex x))));
583 fprintf file "\\end{longtable}"); 583 fprintf file "\\end{longtable}");
584 LatexMain.latex_compile_and_clean "results/" name*) 584 LatexMain.latex_compile_and_clean "results/" name*)
585 585
@@ -715,7 +715,7 @@ let html_of_struct_sentence tokens paths last = @@ -715,7 +715,7 @@ let html_of_struct_sentence tokens paths last =
715 String.concat "\n" (Xlist.map (List.sort compare paths) (fun (id,lnode,rnode) -> 715 String.concat "\n" (Xlist.map (List.sort compare paths) (fun (id,lnode,rnode) ->
716 let t = ExtArray.get tokens id in 716 let t = ExtArray.get tokens id in
717 sprintf "<tr><td>%s</td><td>%s</td><td>%d</td><td>%d</td><td>%d</td></tr>" 717 sprintf "<tr><td>%s</td><td>%s</td><td>%d</td><td>%d</td><td>%d</td></tr>"
718 - t.PreTypes.orth (escape_html (string_of_token t.PreTypes.token)) id lnode rnode)) ^ 718 + t.ENIAMtokenizerTypes.orth (escape_html (string_of_token t.ENIAMtokenizerTypes.token)) id lnode rnode)) ^
719 sprintf "<tr><td></td><td></td><td></td><td>%d</td><td></td></tr>" last ^ 719 sprintf "<tr><td></td><td></td><td></td><td>%d</td><td></td></tr>" last ^
720 "</table>" 720 "</table>"
721 721
@@ -725,7 +725,7 @@ let html_of_dep_sentence tokens paths = @@ -725,7 +725,7 @@ let html_of_dep_sentence tokens paths =
725 let id,super,label = paths.(conll_id) in 725 let id,super,label = paths.(conll_id) in
726 let t = ExtArray.get tokens id in 726 let t = ExtArray.get tokens id in
727 (sprintf "<tr><td>%s</td><td>%s</td><td>%d</td><td>%d</td><td>%d</td><td>%s</td></tr>" 727 (sprintf "<tr><td>%s</td><td>%s</td><td>%d</td><td>%d</td><td>%d</td><td>%s</td></tr>"
728 - t.PreTypes.orth (escape_html (string_of_token t.PreTypes.token)) id conll_id super label) :: l))) ^ 728 + t.ENIAMtokenizerTypes.orth (escape_html (string_of_token t.ENIAMtokenizerTypes.token)) id conll_id super label) :: l))) ^
729 "</table>" 729 "</table>"
730 730
731 let html_of_tokens tokens = 731 let html_of_tokens tokens =
@@ -733,26 +733,28 @@ let html_of_tokens tokens = @@ -733,26 +733,28 @@ let html_of_tokens tokens =
733 String.concat "\n" (List.rev (Int.fold 0 (ExtArray.size tokens - 1) [] (fun l id -> 733 String.concat "\n" (List.rev (Int.fold 0 (ExtArray.size tokens - 1) [] (fun l id ->
734 let t = ExtArray.get tokens id in 734 let t = ExtArray.get tokens id in
735 (sprintf "<tr><td>%d</td><td>%s</td><td>%d</td><td>%d</td><td>%d</td><td>%s</td><td>%s</td></tr>" 735 (sprintf "<tr><td>%d</td><td>%s</td><td>%d</td><td>%d</td><td>%d</td><td>%s</td><td>%s</td></tr>"
736 - id t.PreTypes.orth t.PreTypes.beg t.PreTypes.len t.PreTypes.next (escape_html (string_of_token t.PreTypes.token))  
737 - (String.concat "; " t.PreTypes.attrs)) :: l))) ^ 736 + id t.ENIAMtokenizerTypes.orth t.ENIAMtokenizerTypes.beg t.ENIAMtokenizerTypes.len t.ENIAMtokenizerTypes.next (escape_html (string_of_token t.ENIAMtokenizerTypes.token))
  737 + (String.concat "; " t.ENIAMtokenizerTypes.attrs)) :: l))) ^
738 "</table>" 738 "</table>"
739 739
740 -let html_of_tokens_simple_valence tokens = 740 +let html_of_tokens_simple_valence tokens lex_sems =
741 "<table><tr><td><b>id</b></td><td><b>orth</b></td><td><b>simple_valence</b></td></tr>" ^ 741 "<table><tr><td><b>id</b></td><td><b>orth</b></td><td><b>simple_valence</b></td></tr>" ^
742 String.concat "\n" (List.rev (Int.fold 0 (ExtArray.size tokens - 1) [] (fun l id -> 742 String.concat "\n" (List.rev (Int.fold 0 (ExtArray.size tokens - 1) [] (fun l id ->
743 let t = ExtArray.get tokens id in 743 let t = ExtArray.get tokens id in
744 - Xlist.fold t.simple_valence l (fun l (fnum,frame) -> 744 + let d = ExtArray.get lex_sems id in
  745 + Xlist.fold d.ENIAMlexSemanticsTypes.simple_valence l (fun l (fnum,frame) ->
745 (sprintf "<tr><td>%d</td><td>%s</td><td>%s</td></tr>" 746 (sprintf "<tr><td>%d</td><td>%s</td><td>%s</td></tr>"
746 - id t.PreTypes.orth (WalStringOf.fnum_frame (lemma_of_token t.token) (fnum,frame))) :: l)))) ^ 747 + id t.ENIAMtokenizerTypes.orth (ENIAMwalStringOf.fnum_frame (lemma_of_token t.token) (fnum,frame))) :: l)))) ^
747 "</table>" 748 "</table>"
748 749
749 -let html_of_tokens_valence tokens = 750 +let html_of_tokens_valence tokens lex_sems =
750 "<table><tr><td><b>id</b></td><td><b>orth</b></td><td><b>simple_valence</b></td></tr>" ^ 751 "<table><tr><td><b>id</b></td><td><b>orth</b></td><td><b>simple_valence</b></td></tr>" ^
751 String.concat "\n" (List.rev (Int.fold 0 (ExtArray.size tokens - 1) [] (fun l id -> 752 String.concat "\n" (List.rev (Int.fold 0 (ExtArray.size tokens - 1) [] (fun l id ->
752 let t = ExtArray.get tokens id in 753 let t = ExtArray.get tokens id in
753 - Xlist.fold t.valence l (fun l (fnum,frame) -> 754 + let d = ExtArray.get lex_sems id in
  755 + Xlist.fold d.ENIAMlexSemanticsTypes.valence l (fun l (fnum,frame) ->
754 (sprintf "<tr><td>%d</td><td>%s</td><td>%s</td></tr>" 756 (sprintf "<tr><td>%d</td><td>%s</td><td>%s</td></tr>"
755 - id t.PreTypes.orth (WalStringOf.fnum_frame (lemma_of_token t.token) (fnum,frame))) :: l)))) ^ 757 + id t.ENIAMtokenizerTypes.orth (ENIAMwalStringOf.fnum_frame (lemma_of_token t.token) (fnum,frame))) :: l)))) ^
756 "</table>" 758 "</table>"
757 759
758 let create_latex_chart path name chart = 760 let create_latex_chart path name chart =