1.  Field of the Invention
The present invention relates to techniques for coordinating organizational processes, and more particularly to data processing systems and methods providing flexible representation, simulation and enactment of work processes using generalized process structure grammars (GPSG). 
2.  Description of Related Art
There are many examples of processes carried out within an organization, typically on a networked data processing platform, to which multiple individuals or departments provide inputs or invoke actions (tasks).  For example, it may be necessary for a monthly report to be produced for a director, where each of three departments contributes a portion of the report, a first manager produces a summary for incorporation in the report, and a second manager indicates acceptance the report in its final version before passing it to the director (or rejects it and returns it to the previous person with instructions for changes). 
A problem with some conventional approaches to the co-ordination of activities in organizations, such as those based on Petri nets and their variants, is that they require the designer to specify the entire process ahead of time, complete with alternatives and task assignments. 
Although workflow approaches to the co-ordination of activities have drawn much interest, a deficiency lies in the rigidity of their organizational process models.  It has been found that when models of work processes are removed from their original context and embedded into systems that drive and control human behavior, then major disruptions occur that may hinder workers"" ability to get things done, forcing them to invent work-arounds that bypass the system.  At best some approaches allow limited flexibility, such as a number of workflow systems which use the concept of xe2x80x9crolesxe2x80x9d to attach responsibility for a task to any of a group of people, and Regatta (see Swenson, K. D., Maxwell, R. J., Matsumoto, T., Saghari, B., and Irwin, K. A business process environment supporting collaborative planning, Collaborative Computing 1, 1 (1994), 15-34), a research prototype now available as TeamWARE Flow, which allows sub-plans to be elaborated on the fly.  However, such techniques do not permit a given process instance to be incrementally singled out from the space of possible workflows defined by the rules as the process evolves. 
Counterposed to workflow approaches for collaborative work are a number of computer-supported co-operative work (CSCW) systems, such as group editors and shared workspaces, which intentionally lack representations of the organizational context and goals.  These systems do not attempt to co-ordinate workgroup members to accomplish a goal, but simply provide an environment for sharing common artifacts through mechanisms such as replication (e.g., Lotus Notes(copyright)) and event notification (e.g., Group Desk(trademark)).  Other systems acknowledge the need for basic co-ordination mechanisms by providing locking and versioning of shared documents, based on check-in and check-out operations performed by users.  These tools do not dictate behavior, but simply co-ordinate concurrent access and provide status information about other users"" activities (xe2x80x9cdocument X is locked because user Y checked it out at 10:35 amxe2x80x9d).  A natural extension of these basic co-ordination mechanisms is the definition of routes attached to shared documents (xe2x80x9csend me document X after Y has checked it in, and then send it to zxe2x80x9d).  This direction has been defined as xe2x80x9cdocument-oriented workflow,xe2x80x9d in contrast to xe2x80x9cactivity-oriented workflow,xe2x80x9d where processes are modeled as sequences of activities and documents are attached to activities. 
CSCW techniques based on process/action grammars have been proposed.  See, for example: (1) Bowers, J. and Churcher, J. xe2x80x9cLocal and Global Structuring of Computer Mediated Communication: Developing Linguistic Perspectives on CSCW in COSMOSxe2x80x9d.  In Proc.  of 2nd Conf.  on Computer-Supported Co-operative Work, Portland, Oreg.,  1988; (2) Pentland, B. T. Grammatical models of organizational processes.  Organization Science 6, 5 (1995) 541; and (3) Pentland, B. T. Process grammars: a generative approach to process redesign.  MIT-Sloan School, CCS Working Paper 178, 1994. 
In particular, in the abovementioned CSCW article, Bowers and Churcher disclose the development of a language/action perspective in the COSMOS (COnfigurable Structured Message Oriented System) project, addressing the importance of seeing co-operative work in terms of participants"" communicative actions, of communicative actions being embedded in dialogical contexts, and in particular of the relevance of concepts derived from the analysis of actually occurring conversations, for co-operative work especially.  The distinction is made between local and global structuring of communication, as many group working situations combine both sorts.  A structure definition language (SDL), by means of which users can configure their computer mediated communication environment, is presented, illustrating how its interpretation is influenced by this conversation analytic approach.  However, it is noted that Bowers and Churcher consider only temporal constraints defining partial orders in the actions of a process. 
The use of constraints to flexibly describe work processes has also been explored by Florijn et.  al.  in their co-ordination language HOPLa (see HOPLa: flexible co-ordination of collaborative processes, in Co-ordination ""96, Springer-Verlag, Cesena, Italy, 1996), but this is done in the context of parsing a given sequence of actions (i.e., checking the process instance for xe2x80x9cgrammaticalxe2x80x9d correctness), and without focusing on generating the space of potential work actions towards a goal. 
Document-centered collaborative processes in particular present a host of problems both for process modeling and for enactment.  One major problem for an enactment engine is providing adequate document access control among multiple users.  This involves providing versioning control, limiting access to authorized users, merging parallel version streams, and a number of other issues.  The mechanics of these operations must be left to the particular technology implementation; however, its semantics must be provided by the modeling language.  A second problem is designing a methodology that has the expressiveness required to represent the wide range of co-ordination methods observed in collaborative document-centered work. 
It will be apparent that there is a need for systems that do not embed rigid representations of work and which acknowledge users"" needs for technological support of co-ordinated efforts.  There is therefore a need for systems that embed flexible representations of work.  On the face of it, the co-ordination mechanisms provided by the CSCW systems described seem to fit on a spectrum ranging from unstructured work facilitated by documents sharing and versioning, to semi-structured routes attached to documents, to structured activity-oriented processes.  To date, however, no CSCW system or work representation formalism is capable of spanning the entire spectrum, giving workers full choice about when to specify process representations, to what level of detail, and to what extent co-ordination should be delegated to the support system. 
In accordance with the invention, there is provided a method, and apparatus therefor, for generating a representation of a work process in a memory of a data processing system.  In accordance with one aspect of the invention, a first user input and a second user input are received.  The first user input indicates a first object and a second object.  The first object and the second object each have a set of features.  The second user input indicates a rule that defines a relationship between the first object and the second object.  The rule includes a constraint to be satisfied by a feature of the first object and a feature of the second object.  A grammar representing the work process is compiled in the memory from the rule indicated by the second user input.