it must perform according to specific circumstances.
Policy languages are special-purpose programming
languages which allow to specify policies, whereas
policy engines are software components able to en-
force policies expressed in some policy language.
Process engines and policy engines can be consid-
ered to be complementary tools to enhance process
flexibility: process engines allow one to define and
execute processes, but they fall short whenever pro-
cess modifications have to occur during the execution
of the process (Fisichella et al., 2011). On the other
hand, being based on decision making, it appears nat-
ural combining policy and process engines in order to
overcome the limitations mentioned above. Policies
could be for example exploited within a process task
in order to adapt it to the end-users’ specific needs and
access rights (intra-activity policies). On the other
hand, policies could be exploited at the level of the
overall process in order to determine the activity/ies
to be next performed based on the outcome of the pre-
ceding activity/ies (inter-activity policies).
This paper focus on a system leveraging on both
approaches applied to COOPER (Ceri et al., 2009),
a Web platform for the definition and execution of
collaborative processes, characterized by a reference
model that ensures process flexibility, effectively sup-
porting the dynamic, user-based management of col-
laboration processes. We in particular investigate
the exploitation of PROTUNE (Coi and Olmedilla,
2008) for the specification and management of poli-
cies. PROTUNE is a policy framework based on Se-
mantic Web technologies, that supports the creation
and enforcement of advanced policies, covering not
only traditional access control but also trust negotia-
tion (to automate for example privacy-aware informa-
tion release), and second generation explanation facil-
ities (to improve user awareness about – and control
on – policies).
2 THE PROTUNE POLICY
FRAMEWORK
Policies are encountered in many situations of our
daily life. Especially with the advent of the digi-
tal era, the specification of policies has emerged in
many web-related contexts and software systems. E-
mail client filters are a typical example of policies.
Some of the main application areas where policies
have been lately used are security and privacy as well
as specific business domains, where they take on the
name of “business rules” (but (Li et al., 2006), (Li
and Wang, 2006) and (Stoller et al., 2007) for other
policies’ application areas). In general, policies are a
well-known approach to protecting security and pri-
vacy of users in the context of the Semantic Web:
policies specify who is allowed to perform which ac-
tion on which object depending on properties of the
requester and of the object as well as parameters of
the action and environmental factors (e.g., time). The
application of suitable policies for protecting services
and sensitive data may determine success or failure of
a new service.
The use of formal policies yields many advantages
compared to conventional approaches: formal poli-
cies are usually dynamic, declarative, have a well-
defined semantics and allow to be reasoned over
(Lloyd, 1987) and (Sloman, 1994). PROTUNE is a
framework for specifying and cooperatively enforcing
security and privacy policies on the Semantic Web.
PROTUNE is based on Datalog and, as such, it is an
LP-based policy language (Coi and Olmedilla, 2008).
A PROTUNE program is basically a set of normal
logic program rules (Lloyd, 1987) A ← L
1
, . . . , L
n
where n ≥ 0, A is an atom (called the head of the rule)
and L
1
, . . . , L
n
(the body of the rule) are literals, i.e.,
∀i : 0 ≤ i ≤ n L
i
equals either A
i
or ∼ A
i
for some atom
A
i
. Rules whose body is empty are called facts.
Given an atom p(t
1
, . . . , t
a
) where a ≥ 0, p and a
are called the name and the arity respectively of the
predicate exploited in the atom, whereas t
1
, . . . , t
a
are
terms, i.e., either constants or variables.
With respect to Datalog, PROTUNE presents
the following main differences: (i) policy language
– PROTUNE is a policy language and not a lan-
guage for data retrieval; (ii) actions – the evalua-
tion of a literal might require to perform actions;
(iii) objects PROTUNE supports objects, i.e., sets of
(attribute, value) pairs linked to an identifier.
Being PROTUNE a policy language, its applica-
tion scenarios are essentially different than the ones of
Datalog, which is a language for data retrieval: whilst
a Datalog query is meant to retrieve (explicit or im-
plicit) information from a knowledge base, the typical
PROTUNE query is a request by a human or software
agent to access some resource or service. Moreover,
whoever issues a Datalog query is automatically al-
lowed to retrieve the requested information, whereas
in general not everyone issuing a PROTUNE query
is allowed to access the requested resource or service.
For this reason, whilst the process of evaluating a Dat-
alog query is single-step, the process of evaluating a
PROTUNE query involves up to two steps: checking
whether the query can be evaluated and, if this is the
case, actually evaluating it.
The evaluation of a Datalog (and, more generally,
of a Prolog) literal is based on SLDNF-Resolution
(Lloyd, 1987): the evaluation of a negative literal (i.e.,
WEBIST2012-8thInternationalConferenceonWebInformationSystemsandTechnologies
702