* 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) ^ ": ") ;