]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/mathql_interpreter/pattern.ml
Initial revision
[helm.git] / helm / ocaml / mathql_interpreter / pattern.ml
index 7aa09f1720633a03dc669ff38eb7c200ee01be94..45b43995211ca97244daca79a47881f4255cb8b4 100644 (file)
  * MA  02111-1307, USA.
  * 
  * For details, see the HELM World-Wide-Web page,
- * http://cs.unibo.it/helm/.
- *)
-
-(*
- * implementazione del comando PATTERN
+ * http://www.cs.unibo.it/helm/.
  *)
 
 open Dbconn;;
 open Utility;;
-open Eval;;
-open Mathql_semantics;;
 
-let pattern_ex (apreamble, apattern, afragid) =
- let c = pgc () in
-  (*let r1 = helm_class_id "MathResource" in*)
-   (*let qq = "select att0 from t" ^ r1 ^ " where att0 " ^ (pattern_match apreamble apattern afragid) ^ " order by t" ^ r1 ^ ".att0 asc" in*)
-   let qq = "select uri from registry where uri " ^ (pattern_match (apreamble, apattern, afragid)) ^ " order by registry.uri asc" in
-   (*let _ = print_endline qq in*)
-    let res =
-     c#exec (qq)
-    in
-     List.map
-      (function uri -> {uri = uri ; attributes = []})
-      (pgresult_to_string_list res)
+let cat l1 l2 =
+    if l1 > l2 then 
+        l2 @ l1
+    else
+        l1 @ l2
+;;
+
+let rec pattern_ex l =
+  match l with
+     [] -> []
+   | s::tl -> let result = 
+             let c = pgc () in
+             let qq = "select uri from registry where uri ~ '" ^ s ^ "' order by registry.uri asc" in
+             let res = c#exec (qq) in
+             List.map (function uri -> (uri,[])) (pgresult_to_string_list res)
+             (*for i = 0 to res#ntuples do 
+            List.map (function uri -> (uri,[])) (res#get_tuple_list i)
+             done*)
+
+            in
+            cat result (pattern_ex tl)
 ;;
+