actions may, however, have a common index,
indicating that they can be performed concurrently,
that is, with no plan-imposed ordering upon their
time-points.
Once an action has been indicated as ready to
begin, the user can begin it at a time of his choosing.
He commits to this by clicking in a displayed cell for
the relevant start-time variable; the interpreter then
binds the action’s start-time argument
st to the
current time on the portal clock, and updates the
interface accordingly.
Work entailed in performing the action itself is
invisible to the interpreter except to the extent that it
may bind ontological variables; in effect, it is treated
as off-line activity. For example, activity to create a
text document may involve the user entering textual
content, but the details of that content are of no
concern to the portal; however, activity that binds
ontological variables denoting the document’s
attributes is recognized and acted upon by the portal.
When the user considers that an action has
been completed, he formally signals this by another
click in the interface; this binds the action’s end-
time
et to the clock value and again updates the
interface and the state of the interpreter.
In Section 4 we will present a more detailed
view of these interface episodes and their
consequences, using a multi-user example. That
example will also show how the plan’s execution
affects, and is affected by, the concurrent operations
of the constraint evaluator.
3.2 Artefact Manager
A new artefact is produced whenever a user
performs a
create action. This takes the form
create(As, A, st, et)
Here,
A names the artefact to be created. The
argument
As supplies the names of any other
artefacts that the user expects to use in preparing
A.
The plan interpreter requires these to be already
residing in the user’s local workspace when the
create action is begun; otherwise, it suspends at that
point in the plan and informs the user of the reason.
The first action in Figure 1 requires
ttr to create
an artefact named
timtab that depends on the
availability of another named
requests. The latter
could have been imported by an earlier action in this
task, but our present example assumes it to be
created or imported by some other task in
ttr’s plan.
The portal’s Artefact Manager constructs
abstract terms representing such artefacts, and
maintains pointers between them and their concrete
instances. Each abstract artefact term has the form
art(Name, Type, CrTool, Owner, Rights, Atts)
whose arguments hold the primary attributes — the
artefact’s name (with full location), type, creator
tool, owner, the owner’s rights and a set Atts of any
secondary attributes appropriate to the type. The
main types supported in our implementation are
script, txt (text document), email and dbtable (database
table). Examples of artefact terms are
art(‘c:/MyDocs/ timtabs/timtabs-2004’, dbtable,
‘MSExcel’, ttr, [read, write], atts(schema1, view1))
art(‘c:/MyDocs/ notice’, txt, notepad, ttr, [read], null)
The attribute values are determined, in general,
partly by the user in the course of creating the
artefacts and partly by the evaluation of constraints
upon ontological variables. Knowing these values,
the artefact manager invokes appropriate
mechanisms in the host system to store each artefact
in an appropriate workspace substructure,
integrating it with the correct infrastructure for its
use. A text document, for instance, will be stored in
some standard file-oriented directory, whilst an
email will be stored in some email-client mailbox.
Once created, copies of artefacts may be
transmitted between local workspaces and
communal repositories. An action
import(Rep, A, st, et)
requires the user to import into his workspace a copy
of artefact
A from repository Rep. An action
export(Rep, A, st, et) transmits a copy of A in the
converse direction. The plan interpreter will suspend
either action if
A is not currently available in its
specified source.
3.3 Constraint Evaluator
As users pursue their plans, the Constraint
Evaluator attempts to solve conjointly the calls cited
in all constraint declarations, testing or determining
values for the ontological variables occurring as
arguments within them. It behaves effectively as an
assistant, displaying to the users their future
possibilities and alerting them to constraint failure.
The evaluator can be operated under various
regimes controlling the timing of constraint-
checking. It is possible to simulate, prior to real-time
user activity, the future performing of plans: eager
constraint-checking can then compute, for instance,
feasible schedules (if any) that the users might
adhere to in practice. Another possibility is that
users perform their plans but with inessential
constraint-checking deferred until all plans have
been completed; in that case they discover only
ICEIS 2004 - INFORMATION SYSTEMS ANALYSIS AND SPECIFICATION
414