(* output data structures ***************************************************)
-type path = string list (* the name of an attribute *)
+module I : Avs.Type = ListAvs
-type value = string list (* the value of an attribute *)
+type value = Avs.value (* a linearized attribute value *)
-type attribute = path * value (* an attribute *)
+type path = Avs.path (* the name of an attribute *)
-type attribute_group = attribute list (* a group of attributes *)
-
-type attribute_set = attribute_group list (* the attributes of an URI *)
-
-type resource = string * attribute_set (* an attributed URI *)
-
-type resource_set = resource list (* the query result *)
-
-type result = resource_set
+type group = I.group (* an group of attribures *)
+type result = I.avs (* the query result *)
(* input data structures ****************************************************)
type gen = GenFJoin (* full union - with attr handling *)
| GenFMeet (* full intersection - with attr handling *)
-type query = Const of result
+type query = Const of (string * (path * query) list list) list
| SVar of svar
| AVar of avar
| Dot of avar * path