]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/mathql/mathQL.ml
new semantics for relation and attribute
[helm.git] / helm / ocaml / mathql / mathQL.ml
index e37b03d7ca9ce90e8a7d81ce112093a29c011c33..60b19297aa2e8581e0171e10f013cc5aa9b6a2d7 100644 (file)
@@ -43,22 +43,25 @@ type rvar = string (* the name of a variable for a resource *)
 
 type vvar = string (* the name of a variable for an attribute value *)
 
-type refine_op = Exact
-               | Sub
-              | Super
+type refine_op = ExactOp
+               | SubOp
+              | SuperOp
 
-type attr_list = vvar list
+type path = string list
+
+type vvar_list = vvar list
 
 type set_exp = SVar of svar
             | RVar of rvar
              | Ref of val_exp
              | Pattern of val_exp
-            | Relation of refine_op * string * set_exp * attr_list
+            | Relation of refine_op * path * set_exp * vvar_list
              | Select of rvar * set_exp * boole_exp
             | Union of set_exp * set_exp
             | Intersect of set_exp * set_exp
             | Diff of set_exp * set_exp
-            | Let of svar * set_exp * set_exp
+            | LetSVar of svar * set_exp * set_exp
+            | LetVVar of vvar * val_exp * set_exp
             
 and boole_exp = False
               | True
@@ -71,10 +74,13 @@ and boole_exp = False
              | Eq of val_exp * val_exp
               
 and val_exp = Const of string list 
-            | Refof of set_exp 
+            | RefOf of set_exp 
            | Record of rvar * vvar
+           | VVar of vvar
            | Fun of string * val_exp
-           | Attribute of refine_op * string * val_exp
+           | Attribute of refine_op * path * val_exp
+
+type query = set_exp
 
 
 (* output data structures ***************************************************)
@@ -90,3 +96,5 @@ 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