* http://cs.unibo.it/helm/.
*)
-exception NotCompatible;;
(* Catenates two lists preserving order and getting rid of duplicates *)
let rec append (l1,l2) =
;;
-(* Product between an attribute set and a gropu of attributes *)
+(* Product between an attribute set and a group of attributes *)
let rec sub_prod (aset, gr) = (*prende un aset e un gr e fa la somma tra tutti i gruppi di aset e gr *)
match aset with
[] -> []
match (rs1, rs2) with
[],_
| _,[] -> []
- | (uri1,as1)::tl1,
- (uri2,as2)::_ when uri1 < uri2 -> intersect_aux tl1 rs2
- | (uri1,as1)::_,
- (uri2,as2)::tl2 when uri2 < uri1 -> intersect_aux rs1 tl2
+ | (uri1,_)::tl1,
+ (uri2,_)::_ when uri1 < uri2 -> intersect_aux tl1 rs2
+ | (uri1,_)::_,
+ (uri2,_)::tl2 when uri2 < uri1 -> intersect_aux rs1 tl2
| (uri1,as1)::tl1,
(uri2,as2)::tl2 -> (uri1, prod(as1,as2))::intersect_aux tl1 tl2
in