utility.cmx: dbconn.cmx utility.cmi
union.cmo: union.cmi
union.cmx: union.cmi
-relation.cmo: dbconn.cmi utility.cmi relation.cmi
-relation.cmx: dbconn.cmx utility.cmx relation.cmi
+relation.cmo: dbconn.cmi union.cmi utility.cmi relation.cmi
+relation.cmx: dbconn.cmx union.cmx utility.cmx relation.cmi
diff.cmo: diff.cmi
diff.cmx: diff.cmi
meet.cmo: meet.cmi
* http://www.cs.unibo.it/helm/.
*)
-
+open Union;;
open Dbconn;;
open Utility;;
(*
and t = Unix.time () in
let result =
let c = pgc () in
- List.sort
-compare
+
+let rset_list = (* lista di singoletti:resource_set di un elemento *)
(List.fold_left (fun acc (uri,l) ->
let tv = pgresult_to_string (c#exec ("select id from registry where uri='" ^ uri ^ "'"))
in
let qq = "select uri, context from t" ^ tv ^ " where prop_id='" ^ usek ^ "' order by uri asc"
in
let res = c#exec qq in
+
(List.map
- (function [uri;context] -> (uri,[[(vvar,[context])]])
+ (function [uri;context] -> [(uri,[[(vvar,[context])]])]
| _ -> assert false )
res#get_list) @ acc
- )
+ )
[] rset
)
-(*Come faccio a togliere i duplicati????*)
-
+in
+ let rec edup = function
+ [] -> []
+ | rs1::tl -> union_ex rs1 (edup tl)
+ in
+ edup rset_list
+
in
print_string (" = " ^ string_of_int (List.length result) ^ ": ") ;