]> $Id: Process.owl,v 1.32 2003/09/19 05:06:47 martin Exp $ Upper-level DAML ontology for Processes. Part of the DAML-S effort; see http://www.daml.org/services/. -- 0.7: This is deprecated, in favor of sameValues, defined further below. -- The remaining comments are retained from the 0.6 release: This is a "place-holder" for now, which needs further work. The domain and range will be properties. "X sameValuesAs Y" is used to indicate that properties X and Y take the same values within a given context; that is, within an execution instance of some process. This is used simply to indicate such things as the binding of output property X of a subprocess with input property Y of a subsequent subprocess, within the same parent process. The range is a list of classes. This property is defined similarly to DAML+OIL properties having List as range, such as owl:oneOf and owl:intersectionOf, and is meant to be used similarly, with parseType=collection. "Class listOfInstancesOf X Y Z" (for example) is used to indicate the class of lists having an instance of class X as their first member, an instance of class Y as their second member, and an instance of class Z as their third member. An instance of listOfInstancesOf represents an anonymous class, as explained here: http://www.daml.org/services/owl-s/0.9/listOfInstancesOf.html. Note that listOfInstancesOf is provided as "syntactic sugar"; that is, it isn't required to express the intended anonymous class definition. It is provided to allow for shorter, more readable expressions in process definitions. There are some unresolved concerns about the use of this property, which are also explained in the HTML document. 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. The condition of a conditional effect. An UnConditionalEffect has no condition. The condition of a conditional output An UnConditionalOutput has no condition. 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. This is the power set of AtomicProcess (defined below); that is, the set of all subsets of AtomicProcess. This class is needed as the range of certain properties. This is the power set of parameter (defined below); that is, the set of all subproperties of parameter. This class is needed as the range of certain properties. This is the power set of input (defined below); that is, the set of all subproperties of input. This class is needed as the range of certain properties. This is the power set of output (defined below); that is, the set of all subproperties of output. This class is needed as the range of certain properties. This is the power set of precondition (defined below); that is, the set of all subproperties of precondition. This class is needed as the range of certain properties. This is the power set of effect (defined below); that is, the set of all subproperties of effect. This class is needed as the range of certain properties. 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 ProcessPowerSet (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. 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. This is a deprecated usage; expandsTo is preferred. This is a deprecated usage; collapsesTo is preferred. A CompositeProcess must have exactly 1 composedOf property. 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. Similarly for computedInput, computedOutput, computedEffect, and computedPrecondition. 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 The range is to be a list of ValueOf. Start time for the Event End time for the Event Event/Process is during Interval, the exact time interval over which the event occurs A ProcessComponent can have at most one of each of the restricted properties.