]> matita.cs.unibo.it Git - helm.git/commitdiff
Relation: inverse switch added.
authornatile <??>
Mon, 18 Nov 2002 18:06:58 +0000 (18:06 +0000)
committernatile <??>
Mon, 18 Nov 2002 18:06:58 +0000 (18:06 +0000)
helm/ocaml/mathql_interpreter/mqint.ml
helm/ocaml/mathql_interpreter/relation.ml
helm/ocaml/mathql_interpreter/relation.mli

index bbaeec0b58f7d41c854ca61c675246afdb499c6b..bee3bd765e4ba1efda37623e06cfd5751a023309 100644 (file)
@@ -123,14 +123,14 @@ let rec exec_set_exp c = function
    | MathQL.Relation (inv, rop, path, sexp, attl) -> 
         let before = Sys.time() in
        if ! dbname = postgres_db then
-        (let res = relation_ex rop path (exec_set_exp c sexp) attl in
+        (let res = relation_ex inv rop path (exec_set_exp c sexp) attl in
         if ! stat then 
         (print_string ("RELATION " ^ (fst path) ^ " = " ^ string_of_int(List.length res) ^ ": ");
           print_endline (string_of_float (Sys.time() -. before) ^ "s");
           flush stdout);
          res)
        else
-        (let res = relation_galax_ex rop path (exec_set_exp c sexp) attl in
+        (let res = relation_galax_ex inv rop path (exec_set_exp c sexp) attl in
          if !stat then
          (print_string ("RELATION-GALAX " ^ (fst path) ^ " = " ^ string_of_int(List.length res) ^ ": ");
           print_endline (string_of_float (Sys.time() -. before) ^ "s");
@@ -202,7 +202,7 @@ and exec_val_exp c = function
                                    else s::[]
                        in
                         edup ol
-   | MathQL.Record (rvar, vvar) -> List.assoc vvar (List.assoc rvar c.groups) 
+   | MathQL.Record (rvar, path) -> List.assoc path (List.assoc rvar c.groups) 
                                  
    | MathQL.VVar s -> List.assoc s c.vvars                               
    | MathQL.RefOf sexp -> List.map (fun (s,_) -> s) (exec_set_exp c sexp)
index 57b89122e1922132a0e09d84fc48acec16c4aa32..54f42a7e5b3f0d9350685412249e4970817bc366 100644 (file)
@@ -46,7 +46,7 @@ let get_prop_id propl =
 ;;
 
 
-let relation_ex rop path rset attl =
+let relation_ex inv rop path rset attl =
   let usek = get_prop_id path in
   let vvar = if attl = [] then "position"
              else List.hd attl
@@ -139,7 +139,7 @@ let muse path attl r =
 
 (* prende un resource_set, una vvar (primo el. di attl) a cui associare la posizione, e la relazione (refObj o backPointer) e per ogni resource chiama la muse 
 NOTA: "rop" per ora non viene usato perche' vale sempre "ExactOp" *)
-let relation_galax_ex rop path rset attl =
+let relation_galax_ex inv rop path rset attl =
     List.stable_sort (fun (uri1,l1) (uri2,l2) -> compare uri1 uri2) (List.concat (List.map (muse path attl) rset))
 
 
index 4a9d181e1e0e77e7c96e3ea38f89d1730b7eb2ab..66df961c5b67a28117a8c99f631f62126be592e8 100644 (file)
@@ -24,7 +24,9 @@
  *)
 
 val relation_ex :
- MathQL.refine -> MathQL.path -> MathQL.resource_set -> string list -> MathQL.resource_set
+ bool -> MathQL.refine -> MathQL.path -> MathQL.resource_set -> string list -> MathQL.resource_set
+
 
 val relation_galax_ex :
- MathQL.refine -> MathQL.path -> MathQL.resource_set -> string list -> MathQL.resource_set
+bool -> MathQL.refine -> MathQL.path -> MathQL.resource_set -> string list -> MathQL.resource_set
+