Information Technology Reference
In-Depth Information
3.3 Properties and Claims
In our case study, the agents make an agreement to trust the content of logs,
in order to establish liability for a given set of claims. Then it is necessary to
express these claims in terms of log events in an unambiguous way. We assume
that liability for claims take the form: “if
Prop
holds, then agent defendant is
responsible”. This structure is explained in more details in [15].
The machine
Claims
below introduces some general definitions and allows us
to declare particular instances of properties and claims.
MACHINE
Claims
INCLUDES
LogModel
CONSTANTS
PROP,CLAIM
PROPERTIES
/* Log Properties */
PROP
=
{
prop
|
prop
∈F
(
AGEN T
)
×
(
LOG FILE
→
BOOL)
∧
∀
(
))
}∧
prop
NoRoom
∈
PROP
∧
prop
LateCancel
∈
PROP
∧
ags, log
)
.
(
prop
=(
ags, log
)
⇒
ags
=
agents
(
log
...
∧
/* Claims */
CLAIM
=
{
claim
|
claim
∈
(
AGEN T
×
AGEN T
×
PROP
)
∧
∀
(
plain, def, prop
)
.
(
claim
=(
plain, def, prop
)
⇒
{
plain, def
}⊆
agents
(
prop
))
}∧
NoRoom
∈
CLAIM
∧
NoRoom
=(
Client
,
Agency
,
prop
NoRoom
)
∧
LateCancel
∈
CLAIM
∧
LateCancel
=(
Client
,
Agency
,
prop
LateCancel
)
END
Due to the distributed nature of logs, the first element of a property explicitly
states the agents that are concerned with this property. The second element of
the property is a partial function that maps a log file to true or false depending if
thelogfileverifiestheproperty.Weusethenotation
agents
)
indicating respectively the first and second parts of a property
prop
.Inaproperty
it is imposed that the domain of logs matches exactly with the agents concerned
by the property. Claims are tuples consisting of a plaintiff, a defendant, and a
property that describes the claim, with the plaintiff and the defendant belonging
to the agents of the property.
(
prop
)
and
val
(
prop
Example 5.
(property
prop
NoRoom
) Now, consider the claim
N oRoom
described
in Section 2.1. Let
prop
NoRoom
be the property that describes the claim where
Client
complains of
Agency
being responsible for charging him/her without
booking the reservation:
agents
(
prop
NoRoom
)=
{
Client, Agency
}∧
val
(
prop
NoRoom
)=
λlog.
(
agents
(
log
)=
{
Client, Agency
}|
(
Send, Client, Agency, Request
)
∈
events
(
log
)
∧
(
Send, Agency, Bank, Debit
)
∈
events
(
log
)
∧
(
Send, Agency, Hotel, Book
)
∈
events
(
log
))
∧
pos
((
Send, Client, Agency, Request
)
,log
)
<
pos
((
Send, Agency, Bank, Debit
)
,log
))
Search WWH ::
Custom Search