]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/mathql_interpreter/func.ml
Fun implemented.
[helm.git] / helm / ocaml / mathql_interpreter / func.ml
index 857a4c69813ef015916f301400b4ac9cfc68f3c6..1338af00899bdfd7332cdf2e047d20e23503b0f4 100644 (file)
 
 open Dbconn;;
 open Utility;;
-open MathQL;;
-
-(*
- * implementazione della funzione NAME
- *
- * esempio:
- * name "cic:/Algebra/CC_Props/CC_CauchySeq.ind#xpointer(1/1/1)" = CC_CauchySeq
- *)
-let func_name value =
- try (
-  let i = Str.search_forward (Str.regexp "[^/]*\.") value 0 in
-   let s = Str.matched_string value in 
-    let retVal = Str.string_before s ((String.length s) - 1) in
-     retVal
- ) with
-  Not_found -> ""
-;;
-
-(*
- *
- *)
-let func_theory value =
- ""
-;;
+open Intersect;;
 
 (*
  * implementazione delle funzioni dublin core
  *)
-let func_dc (value, name) =
- let c = pgc ()
- and p = helm_property_id name in
-  pgresult_to_string (c#exec ("select t" ^ p ^ ".att1 from t" ^ p ^ " where " ^ "t" ^ p ^ ".att0 = '" ^ value ^ "'"))
+let rec func_dc tab outv inv = function
+    [] -> []
+  | s::tl -> let res =
+             let c = pgc () in
+            let q = ("select " ^ tab ^ "." ^ outv ^ " from " ^ tab ^ " where " ^ tab ^ "." ^ inv ^ " = '" ^ s ^ "'") in
+             pgresult_to_string_list (c#exec q)
+             in
+             append (res,(func_dc tab outv inv tl))
 ;;
 
 (*
  *
  *)
-let apply_func f value =
+let fun_ex f value =
  match f with
-    MQName         -> func_name value
- |  MQTheory       -> func_theory value
- |  MQTitle        -> func_dc (value, "title")
- |  MQContributor  -> func_dc (value, "contributor")
- |  MQCreator      -> func_dc (value, "creator")
- |  MQPublisher    -> func_dc (value, "publisher")
- |  MQSubject      -> func_dc (value, "subject")
- |  MQDescription  -> func_dc (value, "description")
- |  MQDate         -> func_dc (value, "date")
- |  MQType         -> func_dc (value, "type")
- |  MQFormat       -> func_dc (value, "format")
- |  MQIdentifier   -> func_dc (value, "identifier")
- |  MQLanguage     -> func_dc (value, "language")
- |  MQRelation     -> func_dc (value, "relation")
- |  MQSource       -> func_dc (value, "source")
- |  MQCoverage     -> func_dc (value, "coverage")
- |  MQRights       -> func_dc (value, "rights")
- |  MQInstitution  -> func_dc (value, "institution")
- |  MQContact      -> func_dc (value, "contact")
- |  MQFirstVersion -> func_dc (value, "firstversion")
- |  MQModified     -> func_dc (value, "modified")
+   "name" -> func_dc "names" "name" "uri" value
+ | "reference" -> func_dc "names" "uri" "name" value
+ | _ -> []
 ;;