+\item
+\textbf{Addition of groups.}
+\TT{add} \EM{optional-flag} \EM{attribute-groups} \TT{in} \EM{av-set}
+builds an {\av} set adding the specified \EM{attribute-groups} to each element
+of the given {\av} set.
+If no \EM{flag} is specified the addition is set-theoretic, whereas with the
+\TT{distr} flag the addition is distributive.
+The \EM{attribute-groups} can be given explicitly (in the same syntax used for
+explicit {\av} sets) or they can be replaced by an element variable. In the
+latter case the attribute groups of the {\av} stored in the variable are
+considered.
+
+\figref{Add} shows how to build a one-element {\av} set using \TT{add}.
+
+\begin{figure}
+\begin{footnotesize} \begin{verbatim}
+The set of attributed values given explicitly:
+ ["head" attr {/"attribute" = property /"metadata" of "resource"}]
+
+The same set built with the add operator:
+ add {/"attribute" = property /"metadata" of "resource"} in "head"
+\end{verbatim} \end{footnotesize}
+\vspace{-1pc}
+\caption{A simple use of the add operator}
+\label{Add}
+\end{figure}
+
+\item
+\textbf{Existential test.}
+The existential test has the form \TT{ex} \EM{av-set} where the
+specification of the {\av} set contains some instances of the construction
+\TT{@}\EM{variable}\TT{.}\EM{attribute-name}, and runs as follows:
+the given {\av} set is evaluated replacing each
+\TT{@}\EM{variable}\TT{.}\EM{attribute-name}
+with the contents of \EM{attribute-name} in an attribute group of the {\av}
+stored in \TT{@}\EM{variable} and the evaluation is repeated for every
+possible choice of these groups (recall that different groups are allowed to
+contain attributes with the same name). If one evaluation gives a non empty
+result, the default representation of \emph{true} is returned, in the other
+case the empty {\av} set, {\ie} \emph{false}, is returned.
+
+\item
+\textbf{Function invocation.}
+The core language allows to invoke two kinds of external functions (with
+which a language extension may be provided): the functions of the first kind
+return an {\av} set, the functions of the second kind return a piece of
+{\MathQL} code representing an {\av} set ({\ie} they interface a {\MathQL}
+code generator). In particular:
+
+\EM{function-name} \verb+{+
+\EM{name} \TT{,} $\cdots$ \TT{,} \EM{name} \verb+} {+
+\EM{av-set} \TT{,} $\cdots$ \TT{,} \EM{av-set} \verb+}+
+invokes a function of the first kind on the given arguments and returns its
+result. The \EM{name} arguments are {\MathQL} paths and usually
+represent attribute names.
+
+\TT{gen} \EM{function-name} \verb+{+
+\EM{av-set} \TT{,} $\cdots$ \TT{,} \EM{av-set} \verb+}+
+invokes a function of the second kind on the given arguments and replaces
+itself with the function result.
+
+The function names are {\MathQL} paths exactly as the attribute names and the
+graph paths used by the \TT{property} operator. The names of the two kinds of
+functions are kept in distinct environments so they do not clash.
+
+{\MathQL}.4 comes with a basic library of functions of the first kind
+(see \subsecref{Basic}) that integrate the core language providing several
+facilities.
+
+\end{itemize}