$Id: Process.daml,v 1.13 2001/11/13 05:52:07 martin Exp $
Upper-level DAML ontology for Processes.
Part of the DAML-S effort; see http://www.daml.org/services/.
This is a "place-holder" for now, which awaits further work from
the DAML/OIL community. An instance of Condition is a logical
formula that evaluates to true or false. Eventually we expect
this to be defined elsewhere, as part of a DAML+OIL extension allowing
for logical expressions.
This is the power set of Process (defined below); that is, the set
of all subsets of Process. This class is needed as the range
of certain properties. It's placed in "preliminaries" because of
the expectation that a better way of declaring these ranges may be
developed.
A ServiceModel describes how a Service works, and
a ProcessModel is a type of ServiceModel (the only
type being defined for DAML-S).
See also the introductory comments to Service.daml.
It is important to understand that DAML-S conceptualizes a specific process
as a *class*, each of whose instances is a particular use/invocation of the
process. Thus, each specific process (such as BuyBook in Congo.daml) is
a *subclass*, rather than an instance, of Process. This is why the range
of hasProcess is specified as ProcessClass (which is the class of
all subclasses of Process).
In the case of a composite process, indicates the top-level process class.
A ProcessControlModel is used to monitor and control execution of
a Process. This is just a "stub" for now; will be developed further
in future releases of DAML-S.
A ProcessModel can have at most one Process and one ProcessControlModel.
The most general class of processes
A Process can have at most one name, but names need not be unique.
The condition of a conditional effect.
The condition of a conditional output
Address is a machine name, leave it unrestricted for now
Documents that are read by the Process (could be a database, an html form,
whatever), range is left unrestricted at this level.
Documents that are updated by the Process (could be a database, an html form,
whatever), range is left unrestricted at this level.
Documents that are written to by the Process (could be a database,
an html form or other); range is left unrestricted at this level.
Time of an instantaneous Event
Start time for the Event
End time for the Event
Event/Process is during Interval, the exact time
interval over which the event occurs
Start time for the Event
Start time for the Event
Invocable is a flag that tells whether the CompositeProcess bottoms
out in atomic processes. (If so, it is "invocable".)
A computed input is a single expression that characterizes the
inputs required by a composite process, and the conditions under
which they are required. This expression may, if needed, tie
together 2 or more inputs; for example, "either a credit card number,
or a bank account number must be given", or "if product
id starts with 'M', no shipping method need be given".
Additionally, this expression may refer to things other than inputs;
for example; "if user's credit rating is 'excellent' or better,
Social Security number is not required", or "if product weight
is less than 1 lb., no shipping myth did need be given".
A "computed" input is so named because it is meant to be computed
automatically by some tool, by inspecting the makeup of the composite
process.
The language used to represent a computed input is not specified
here, and will be the subject of future work; hence, the use of Thing
as range. It will require expressiveness greater than that of
DAML+OIL.
A computed output is a single expression that characterizes the
outputs required by a composite process, and the conditions under
which they are required. See comment for computedInput.
A computed precondition is a single expression that characterizes the
preconditions of a composite process, based on the preconditions
of its sub processes.
A computed effect is a single expression that characterizes the
effects of a composite process, based on the effects
of its sub processes.
A CompositeProcess can have at most one invocable property.
The components propery of a control construct holds
a specific arrangement of subprocesses or control constructs.
The range is declared at each subclass of ControlConstruct.
A ProcessComponent is either a Process or a ControlConstruct.
Attribute to keep a pointer to the current process component.
Attribute to keep a pointer to the next process component.
A ControlConstruct can have at most one currentProcessComponent and
one nextProcessComponent property.
A multiset of ProcessComponents
A list of ProcessComponents
The if condition of an if-then-else
The repeat while construct
The repeat until process