* http://www.cs.unibo.it/helm/.
*)
-(*
- *)
+(* AUTOR: Ferruccio Guidi <fguidi@cs.unibo.it>
+ *)
(* output data structures ***************************************************)
-type path = string list (* the name of an attribute *)
-
-type value = string list (* the value of an attribute *)
-
-type attribute = path * value (* an attribute *)
-
-type attribute_group = attribute list (* a group of attributes *)
-
-type attribute_set = attribute_group list (* the attributes of an URI *)
+module I : Avs.Type = ListAvs
-type resource = string * attribute_set (* an attributed URI *)
+type value = Avs.value (* a linearized attribute value *)
-type resource_set = resource list (* the query result *)
+type path = Avs.path (* the name of an attribute *)
-type result = resource_set
+type group = I.group (* an group of attribures *)
+type result = I.avs (* the query result *)
(* input data structures ****************************************************)
type avar = string (* the name of a variable for a resource *)
-type vvar = string (* the name of a variable for an attribute value *)
-
type inverse = bool
type refine = RefineExact
type source = bool
-type bin = BinFJoin (* full union - with attr handling *)
- | BinFMeet (* full intersection - with attr handling *)
- | BinFDiff (* full difference - with attr handling *)
-
type gen = GenFJoin (* full union - with attr handling *)
| GenFMeet (* full intersection - with attr handling *)
-type test = Xor
- | Or
- | And
- | Sub
- | Meet
- | Eq
- | Le
- | Lt
-
-type query = Empty
- | SVar of svar
+type query = Const of (string * (path * query) list list) list
+ | SVar of svar
| AVar of avar
- | Subj of msval
+ | Dot of avar * path
+ | Ex of avar list * query
+ | Select of avar * query * query
+ | Let of svar option * query * query
+ | Fun of path * path list * query list
+ | Gen of path * query list
+ | Add of bool * groups * query
+ | For of gen * avar * query * query
+ | While of gen * query * query
| Property of inverse * refine * path *
main * istrue * isfalse list * exp_list *
- pattern * msval
- | Select of avar * query * msval
- | Bin of bin * query * query
- | LetSVar of svar * query * query
- | LetVVar of vvar * msval * query
- | For of gen * avar * query * query
- | Add of bool * groups * query
- | If of msval * query * query
- | Log of xml * source * query
- | StatQuery of query
- | Keep of allbut * path list * query
-
-and msval = False
- | True
- | Not of msval
- | Ex of avar list * msval
- | Test of test * msval * msval
- | Const of string
- | Set of msval list
- | Proj of path option * query
- | Dot of avar * path
- | VVar of vvar
- | StatVal of msval
- | Count of msval
- | Align of string * msval
-
-and groups = Attr of (path * msval) list list
+ pattern * query
+
+and groups = Attr of (path * query) list list
| From of avar
-and con = pattern * path * msval
+and con = pattern * path * query
and istrue = con list