From 25bcb9af3fc3ce3cebd369e3cd9f3a704403a173 Mon Sep 17 00:00:00 2001 From: Claudio Sacerdoti Coen Date: Tue, 17 Feb 2004 16:33:19 +0000 Subject: [PATCH] - ported to Helm_registry - ported to the new disambiguating parser of Zack & Andrea --- helm/searchEngine/Makefile | 9 ++- helm/searchEngine/html/aliaslist.html | 7 +- helm/searchEngine/html/expr.html | 29 ++++--- helm/searchEngine/html/grammarpdq.html | 4 +- .../searchEngine/searchEngine.conf.xml.sample | 12 +++ helm/searchEngine/searchEngine.ml | 80 +++++++------------ 6 files changed, 65 insertions(+), 76 deletions(-) create mode 100644 helm/searchEngine/searchEngine.conf.xml.sample diff --git a/helm/searchEngine/Makefile b/helm/searchEngine/Makefile index c3617f46a..809a5abf7 100644 --- a/helm/searchEngine/Makefile +++ b/helm/searchEngine/Makefile @@ -1,11 +1,12 @@ -REQUIRES = http helm-cic_textual_parser helm-cic_proof_checking \ +REQUIRES = http helm-cic_textual_parser2 helm-cic_proof_checking \ helm-xml gdome2-xslt helm-cic_unification helm-mathql \ - helm-mathql_interpreter helm-mathql_generator helm-logger -OCAMLOPTIONS = -package "$(REQUIRES)" -pp camlp4o -I ../gTopLevel + helm-mathql_interpreter helm-mathql_generator helm-logger \ + helm-tex_cic_textual_parser +OCAMLOPTIONS = -thread -package "$(REQUIRES)" -pp camlp4o -I ../gTopLevel OCAMLC = ocamlfind ocamlc $(OCAMLOPTIONS) OCAMLOPT = ocamlfind ocamlopt $(OCAMLOPTIONS) -GTOPLEVEL_MODULES = disambiguate +GTOPLEVEL_MODULES = oldDisambiguate disambiguatingParser MODULES = CMOS = $(patsubst %,%.cmo,$(MODULES)) CMXS = $(patsubst %,%.cmx,$(MODULES)) diff --git a/helm/searchEngine/html/aliaslist.html b/helm/searchEngine/html/aliaslist.html index d030ea41e..27497acf8 100644 --- a/helm/searchEngine/html/aliaslist.html +++ b/helm/searchEngine/html/aliaslist.html @@ -60,7 +60,7 @@ function addalias() { if (top.idcheck(document.aliaslist.idi.value)==1 && top.uricheck(document.aliaslist.uri.value)==1) { - top.aliasglob[top.aliasglob.length]="alias "+document.aliaslist.idi.value+" "+document.aliaslist.uri.value; + top.aliasglob[top.aliasglob.length]="alias id "+document.aliaslist.idi.value+" = "+document.aliaslist.uri.value; //parent.aggiorna(); top.window.open(top.topurl+top.action+"aliaslist.html",(top.cw.frames.length==0?"cw":"bw")); } @@ -68,15 +68,16 @@ function addalias() function istruzioni() { top.hw.document.close(); - top.hw.document.write("You must now enter a list of alias. An Alias is the word 'alias' followed by an Id, followed by an Uri.You may enter as many of them as you want, after each one click the button 'add alias' or press enter and it will be added. When you are done, click 'done'."); + top.hw.document.write("You must now enter a list of alias. An Alias is the word 'alias' followed by 'id', an Id, the equality sign '=', an Uri.You may enter as many of them as you want, after each one click the button 'add alias' or press enter and it will be added. When you are done, click 'done'."); } istruzioni();
-alias +alias id +=

\[Genid][Expr].[Expr]
-![Genid]:[Expr].[Expr]
-[Expr]->[Expr]
-([Expr])->[Expr]
+\lambda [Genid]:[Expr].[Expr]
+let [Genid] = [Expr] in [Expr]
+\forall [Genid]:[Expr].[Expr]
+[Expr] \to [Expr]
+?
- \ No newline at end of file + diff --git a/helm/searchEngine/html/grammarpdq.html b/helm/searchEngine/html/grammarpdq.html index bd3835bf9..309e5b592 100644 --- a/helm/searchEngine/html/grammarpdq.html +++ b/helm/searchEngine/html/grammarpdq.html @@ -19,7 +19,7 @@

<Exp_Named_Subst>::= "{" [ [ [<Id> | <Varuri> ] ":=" <Expression> ";" ]* [ [<Id> | <Varuri> ] ":=" <Expression> ] ]? "}" -

<Alias>::= "alias" <Id> <Uri> +

<Alias>::= "alias" "id" <Id> = <Uri>

<Genid>::= [ <Id> | <Varuri> | <Indtyuri> | <Indconuri> ] <Exp_Named_Subst> @@ -35,4 +35,4 @@
            ::= "Prop" | "Set" | "Type" | "?" | <
Uri> | <Id> - \ No newline at end of file + diff --git a/helm/searchEngine/searchEngine.conf.xml.sample b/helm/searchEngine/searchEngine.conf.xml.sample new file mode 100644 index 000000000..0bfbbcf7d --- /dev/null +++ b/helm/searchEngine/searchEngine.conf.xml.sample @@ -0,0 +1,12 @@ + + +

+ remote + http://localhost:58081/ +
+
+ html + 58085 + mowgli.cs.unibo.it:58080 mowgli.cs.unibo.it localhost:58080 +
+ diff --git a/helm/searchEngine/searchEngine.ml b/helm/searchEngine/searchEngine.ml index a140666ac..625f43f5b 100644 --- a/helm/searchEngine/searchEngine.ml +++ b/helm/searchEngine/searchEngine.ml @@ -30,28 +30,29 @@ module C = MQIConn open Http_types ;; -let debug = true;; +let debug = false;; let debug_print s = if debug then prerr_endline s;; Http_common.debug := true;; (* Http_common.debug := true;; *) - (** accepted HTTP servers for ask_uwobo method forwarding *) -let valid_servers = - [ "mowgli.cs.unibo.it:58080" ; "mowgli.cs.unibo.it" ; "localhost:58080" ];; - let mqi_flags = [] (* default MathQL interpreter options *) open Printf;; let daemon_name = "Search Engine";; -let default_port = 58085;; -let port_env_var = "SEARCH_ENGINE_PORT";; -let pages_dir = - try - Sys.getenv "SEARCH_ENGINE_HTML_DIR" - with Not_found -> "html" (* relative to searchEngine's document root *) + (* First of all we load the configuration *) +let _ = + let configuration_file = "/projects/helm/etc/searchEngine.conf.xml" in + Helm_registry.load_from configuration_file ;; + +let pages_dir = Helm_registry.get "search_engine.html_dir";; + + (** accepted HTTP servers for ask_uwobo method forwarding *) +let valid_servers= Helm_registry.get_string_list "search_engine.valid_servers";; + + let interactive_user_uri_choice_TPL = pages_dir ^ "/templateambigpdq1.html";; let interactive_interpretation_choice_TPL = pages_dir ^ "/templateambigpdq2.html";; @@ -155,15 +156,7 @@ let (title_tag_RE, choices_tag_RE, msg_tag_RE, id_to_uris_RE, id_RE, Pcre.regexp "@VARIABLES_INITIALIZATION@") let server_and_port_url_RE = Pcre.regexp "^http://([^/]+)/.*$" -let port = - try - int_of_string (Sys.getenv port_env_var) - with - | Not_found -> default_port - | Failure "int_of_string" -> - prerr_endline "Warning: invalid port, reverting to default"; - default_port -;; +let port = Helm_registry.get_int "search_engine.port";; let pp_error = sprintf "

Error: %s

";; @@ -356,13 +349,9 @@ let callback (req: Http_types.request) outchan = | "/locateInductivePrinciple" -> let mqi_handle = C.init mqi_flags debug_print in let term_string = req#param "term" in - let lexbuf = Lexing.from_string term_string in let (context, metasenv) = ([], []) in - let (dom, mk_metasenv_and_expr) = - CicTextualParserContext.main - ~context ~metasenv CicTextualLexer.token lexbuf - in let id_to_uris_raw = req#param "aliases" in +(*XXX let tokens = Pcre.split ~pat:"\\s" id_to_uris_raw in let rec parse_tokens keys lookup = function (* TODO spostarla fuori *) | [] -> keys, lookup @@ -378,6 +367,7 @@ let callback (req: Http_types.request) outchan = rest | _ -> failwith "Can't parse aliases" in +*) let parse_choices choices_raw = let choices = Pcre.split ~pat:";" choices_raw in List.fold_left @@ -386,8 +376,6 @@ let callback (req: Http_types.request) outchan = | ""::id::tail | id::tail when id<>"" -> (fun id' -> -prerr_endline ("#### " ^ id ^ " :="); -List.iter (fun u -> prerr_endline ("<" ^ Netencoding.Url.decode u ^ ">")) tail; if id = id' then Some (List.map (fun u -> Netencoding.Url.decode u) tail) else @@ -396,34 +384,19 @@ List.iter (fun u -> prerr_endline ("<" ^ Netencoding.Url.decode u ^ ">")) tail; (fun _ -> None) choices in - let (id_to_uris : Disambiguate.domain_and_interpretation) = - parse_tokens [] (fun _ -> None) tokens in + let id_to_uris = + DisambiguatingParser.EnvironmentP3.of_string id_to_uris_raw in +print_endline ("id_to_uris_raw: " ^ id_to_uris_raw) ; +print_endline ("id_to_uris: " ^ (DisambiguatingParser.EnvironmentP3.to_string id_to_uris)) ; let id_to_choices = try let choices_raw = req#param "choices" in parse_choices choices_raw with Http_types.Param_not_found _ -> (fun _ -> None) in - let module Chat: Disambiguate.Callbacks = + let module Chat: DisambiguateTypes.Callbacks = struct - let get_metasenv () = - !CicTextualParser0.metasenv - - let set_metasenv metasenv = - CicTextualParser0.metasenv := metasenv - - let output_html ?(append_NL = true) html_msg = - let rec collect_string = function - | `BR -> "\n" - | `T s -> s - | `L tags -> String.concat "" (List.map collect_string tags) - in - match html_msg with - | `Error msg | `Msg msg -> - (if append_NL then prerr_endline else prerr_string) - (collect_string msg ^ (if append_NL then "\n" else "")) - let interactive_user_uri_choice ~selection_mode ?ok ?enable_button_for_non_vars ~(title: string) ~(msg: string) @@ -466,7 +439,7 @@ List.iter (fun u -> prerr_endline ("<" ^ Netencoding.Url.decode u ^ ">")) tail; (String.concat "
" (List.map (fun (id, value) -> - (sprintf "alias %s %s" id value)) + (sprintf "alias id %s = %s" id value)) l)) ^ "\'") interpretations) @@ -479,7 +452,7 @@ List.iter (fun u -> prerr_endline ("<" ^ Netencoding.Url.decode u ^ ">")) tail; (String.concat " " (List.map (fun (id, value) -> - (sprintf "alias %s %s" + (sprintf "alias id %s = %s" id (MQueryMisc.wrong_xpointer_format_from_wrong_xpointer_format' value))) @@ -506,10 +479,10 @@ List.iter (fun u -> prerr_endline ("<" ^ Netencoding.Url.decode u ^ ">")) tail; end in - let module Disambiguate' = Disambiguate.Make (Chat) in + let module Disambiguate' = DisambiguatingParser.Make(Chat) in let (id_to_uris', metasenv', term') = - Disambiguate'.disambiguate_input mqi_handle - context metasenv dom mk_metasenv_and_expr id_to_uris + Disambiguate'.disambiguate_term mqi_handle + context metasenv term_string id_to_uris in (match metasenv' with | [] -> @@ -596,6 +569,8 @@ List.iter (fun u -> prerr_endline ("<" ^ Netencoding.Url.decode u ^ ">")) tail; iter_file (fun line -> let new_aliases = + DisambiguatingParser.EnvironmentP3.to_string id_to_uris' in +(*XXX match id_to_uris' with | (domain, f) -> String.concat ", " @@ -613,6 +588,7 @@ List.iter (fun u -> prerr_endline ("<" ^ Netencoding.Url.decode u ^ ">")) tail; | _ -> assert false (*CSC: completare *))) domain) in +*) let processed_line = apply_substs [results_RE, theory_of_result results ; -- 2.39.2