In goodFlows, an access and usage control rule is specified through the following structure:

$$
\left.\begin{array}{c}
	\textit{Permission} \\
	\textit{Prohibition} \\
	\textit{Obligation}
\end{array} \right\} \mbox{(\textit{pu}, \textit{act}, \textit{preAct}, \textit{cont}, \textit{postAct})} 
$$


where \textit{act} is the action that the rule applies to; \textit{pu} is the purpose for which \textit{act} is permitted/prohibited/obliged to be executed; \textit{cont} is a structure of contextual parameters; \textit{preAct} is a structure of actions that should have preceded; \textit{postAct} refers to the action(s) that must be executed following the rule enforcement.

Actions constitute conceptual triples of {\textit{actor}, \textit{operation}, \textit{resource}} and are formed leveraging the entities of the Information Model. In more detail, action’s entities are defined as a tuple $\langle$\textit{concept}, \textit{constraint}$\rangle$, where \textit{concept} is an Information Model entity, and \textit{constraint} is an expression (or a logical relation thereof) assigning values to attributes and/or sub-concepts of the given entity. This mechanism allows the definition of fine-grained access and usage control rules inline with the Attribute-based Access Control (ABAC) paradigm.

Towards improved performance during real-time operation, such as the validation of processes against policies, offline reasoning, i.e., proactive extraction of knowledge contained in the access and usage control rules, is leveraged. As the Policy Model considers various hierarchies, rules defined at a high level of abstraction are propagated across the corresponding IMO graphs. Thus, starting from the explicitly specified rules, initially comprising the Rules (RU) set, meta-rules are generated, following specific inheritance patterns. The latter are based on the Information Model specialisation (\texttt{isA}) and inclusion (\texttt{isPartOf}) properties, while they depend on the type of the rule, that is whether it is a permission, a prohibition, or an obligation. 

The Policy Administration editor of goodFlows (Figure~\ref{fig:rule}) provides functionality for rule management, as well as extracting meta-rules from explicitly defined ones for high-level entities, while it guides the user through the definition of a rule’s elements in a user-friendly manner. Essentially, it provides Policy Administration Point (PAP) and Policy Decision Point (PDP) functionalities; it allows the specification of fine-grained access and usage policies and it plays a critical role in compliance validation by checking workflows against organisational policies and third-party usage constraints. 
For instance, Figure~\ref{fig:rule} depicts the creation of a rule stating that an organisation of type \texttt{NonGovernmentalOrganisation} may make available (\texttt{MakeAvailable}) inferred personal data (\texttt{InferredPersonalData}) if these data are aggregated (\texttt{Status} Equals \texttt{Aggregated}) and within the EU (contextual attribute \texttt{spatial} Equals \texttt{EU}), for the purpose of \texttt{ResearchAndDevelopment}.


\begin{figure}[!htb]
	\centering
	\begin{subfigure}{\textwidth}
		\includegraphics[width=\linewidth]{figs/rule-a}
		\caption{Definition of rule's general information and resource with constraint}
	\end{subfigure}

	\begin{subfigure}{\textwidth}
		\includegraphics[width=\linewidth]{figs/rule-b}
		\caption{Definition of operation, actor, contextual constraints, and pre-/post-actions}
	\end{subfigure}

	\caption{Rule creation in goodFlows}
	\label{fig:rule}
\end{figure}

