(** accepted HTTP servers for ask_uwobo method forwarding *)
let valid_servers = [ "mowgli.cs.unibo.it:58080" ; "mowgli.cs.unibo.it" ; "localhost:58080" ] ;;
-open Printf;;
+let mqi_flags = [] (* default MathQL interpreter options *)
-let postgresConnectionString =
- try
- Sys.getenv "POSTGRESQL_CONNECTION_STRING"
- with
- Not_found -> "host=mowgli.cs.unibo.it dbname=helm_mowgli_new_schema user=helm"
-;;
+open Printf;;
let daemon_name = "Search Engine";;
let default_port = 58085;;
let callback (req: Http_types.request) outchan =
try
debug_print (sprintf "Received request: %s" req#path);
- if req#path <> "/getpage" then
- Mqint.init postgresConnectionString;
(match req#path with
| "/execute" ->
+ let mqi_handle = MQIConn.init mqi_flags debug_print in
let query_string = req#param "query" in
let lexbuf = Lexing.from_string query_string in
let query = MQueryUtil.query_of_text lexbuf in
- let result = MQueryGenerator.execute_query query in
+ let result = MQueryGenerator.execute_query mqi_handle query in
let result_string = pp_result result in
+ MQIConn.close mqi_handle;
Http_daemon.respond ~body:result_string ~headers:[contype] outchan
| "/locate" ->
+ let mqi_handle = MQIConn.init mqi_flags debug_print in
let id = req#param "id" in
- let result = MQueryGenerator.locate id in
+ let result = MQueryGenerator.locate mqi_handle id in
+ MQIConn.close mqi_handle;
Http_daemon.respond ~headers:[contype] ~body:(pp_result result) outchan
| "/getpage" ->
(* TODO implement "is_permitted" *)
| "/searchPattern"
| "/matchConclusion"
| "/locateInductivePrinciple" ->
+ let mqi_handle = MQIConn.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
in
let module Disambiguate' = Disambiguate.Make (Chat) in
let (id_to_uris', metasenv', term') =
- Disambiguate'.disambiguate_input
+ Disambiguate'.disambiguate_input mqi_handle
context metasenv dom mk_metasenv_and_expr id_to_uris
in
(match metasenv' with
| [] ->
let must',only = get_constraints term' req#path in
- let results = MQueryGenerator.searchPattern must' only in
+ let results = MQueryGenerator.searchPattern mqi_handle must' only in
Http_daemon.send_basic_headers ~code:200 outchan ;
Http_daemon.send_CRLF outchan ;
iter_file
Http_daemon.respond
~headers:[contype]
~body:"some implicit variables are still unistantiated :-("
- outchan)
-
+ outchan);
+ MQIConn.close mqi_handle
| invalid_request ->
Http_daemon.respond_error ~status:(`Client_error `Bad_request) outchan);
- if req#path <> "/getpage" then
- Mqint.close ();
debug_print (sprintf "%s done!" req#path)
with
| Chat_unfinished -> prerr_endline "Chat unfinished, Try again!"
printf "HTML directory is %s\n" pages_dir;
flush stdout;
Unix.putenv "http_proxy" "";
-Mqint.set_database Mqint.postgres_db;
Http_daemon.start' ~port callback;
printf "%s is terminating, bye!\n" daemon_name