WO2000026822A1 - Systeme informatique de gestion des connaissances relatives a un projet - Google Patents

Systeme informatique de gestion des connaissances relatives a un projet Download PDF

Info

Publication number
WO2000026822A1
WO2000026822A1 PCT/US1999/025948 US9925948W WO0026822A1 WO 2000026822 A1 WO2000026822 A1 WO 2000026822A1 US 9925948 W US9925948 W US 9925948W WO 0026822 A1 WO0026822 A1 WO 0026822A1
Authority
WO
WIPO (PCT)
Prior art keywords
project
setting
community
template
templates
Prior art date
Application number
PCT/US1999/025948
Other languages
English (en)
Other versions
WO2000026822A9 (fr
Inventor
Adele Goldberg
David J. Leibs
Wlodek P. Kubalski
Original Assignee
Neometron, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Neometron, Inc. filed Critical Neometron, Inc.
Priority to AU37886/00A priority Critical patent/AU3788600A/en
Publication of WO2000026822A1 publication Critical patent/WO2000026822A1/fr
Publication of WO2000026822A9 publication Critical patent/WO2000026822A9/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Definitions

  • the present invention relates to the field of automated project management, knowledge management, and facilitation. More specifically, the present invention relates to a computer-implemented project management facility, with emphasis on gathering and managing project knowledge in the context of conducting business electronically, and to the presentation of information on a graphical user interface associated with the computer- implemented project management facility.
  • Project management in particular, has been the target of a number of efforts to improve business productivity. Project management is becoming increasingly complex and is accordingly posing a number of challenges to traditional management technique and tools. For example, the scale of projects and degree of expertise required to achieve objectives and goals of projects is increasing. Project management often requires access to specialized skills and expertise, and the ability to provide technological support to loosely coupled team structures. Team members may also expect more flexibility in the choice of their work locations and times. Further, shortages in particular skill areas may require that the skills be drawn from a widely distributed resource pool. The geographic and temporal dispersion that characterizes team members and resources provides a challenge to available project management techniques, as successful teams typically require a high degree of coordination and communication. Customers of a project are often considered to be members of the project team. The requirement to involve customers at the outset and throughout a project further complicates the project information sharing and communications requirements.
  • the lack of communication between resources of a project renders the project team less able to respond quickly and appropriately to changes in the project circumstances or environment. Further, this lack of communication may result in the insufficient coordination of information with respect to project resources.
  • a method of creating a model-driven virtual community having at least one objective includes accessing a collection of templates that constitute partial descriptions of respective elements of the virtual community and instantiating the collection of templates to generate the elements of the virtual community, the elements of the virtual community specifying structural and behavioral constructs of a model according to which the virtual community is structured and operated to progress towards achievement of the at least one objective.
  • the instantiating of the collection of templates may be performed utilizing a decision framework constructed utilizing input derived from participants within an earlier virtual community instantiated utilizing the collection of templates.
  • instantiating of the collection of templates is performed utilizing a decision framework constructed utilizing domain-specific knowledge.
  • the instantiating of at least one template of the collection of templates includes generating a value for an attribute of the at least one template.
  • the value for the attribute of the at least one template may be specified by a literal specification or by a variable specification.
  • the at least one template may also include a specification of operations to generate the value for the attribute of the at least one template.
  • the operations may include retrieving the value from a storage location associated with a computer system, calculating the value based on the least one input, or requesting an input of the value by an instantiator of the at least one template.
  • the value for the attribute of the at least one template may also be specified by a further template.
  • a further template may be only partially instantiated to generate a community template, the community template being included within the virtual community.
  • the collection of templates may include a grouping template that holds first and second templates and wherein the instantiation of the first and second templates is coordinated to generate corresponding first and second elements of the virtual community.
  • the use of first and second elements within the virtual community may furthermore the coordinated.
  • a purpose element of the virtual community that defines a reason for the existence of the virtual community may be instantiated.
  • An objective element of the virtual community that defines an objective of the virtual community may be instantiated in a further embodiment.
  • a measure element that facilitates measurement of progress of the virtual community toward achieving the objective defined by the objective element may be instantiated in a yet further embodiment.
  • a role element that defines responsibilities and access privileges of a community role within the virtual community may be instantiated in an even further embodiment.
  • a conversation element that defines a structure for interactions among multiple community roles defined by multiple role elements may also be instantiated in an embodiment.
  • the conversation element may, in an embodiment, comprises a plurality of interaction channels including a primary interaction channel and a secondary interaction channel, and wherein a first participant is granted access to both the primary and the secondary interaction channels and a second participant is granted access to only the primary interaction channel.
  • a glossary element that specifies a shared vocabulary of the virtual community may, in one embodiment, also be instantiated.
  • a setting element that defines a setting comprising a structure of interactions toward achieving the objective defined by the objective element, may be instantiated in one embodiment.
  • At least one subject element may be instantiated as part of the setting, the subject element being descriptive of interactions in the setting and having attributes that represent potential deliverables of the setting.
  • At least one reference element may be instantiated as part of the setting, the reference element representing knowledge constructed outside the setting defined by the at least one setting element but for use within the setting.
  • At least one special setting role element that extends responsibilities and access privileges of a community role within the setting may be instantiated as part of the setting.
  • At least one knowledge flow map element that defines communication of information between the at least one setting element and a further setting element may be instantiated as part of the setting.
  • the knowledge flow map element may optionally define at least one input for first information defined outside the setting, the at least one input to receive the first information into the setting.
  • the knowledge flow map element may also define at least one outcome for second information defined within the setting, the at least one outcome to output the second information from the setting.
  • the knowledge flow map element may further define a control flow specifying an ordered sequence of access to multiple settings according to event occurrences within the virtual community.
  • the knowledge flow map element may also define a control flow specifying an ordered sequence of access to multiple settings according to availability of deliverables of the multiple settings.
  • the at least one setting element defines either role- based or identity-based naming for participants within the setting.
  • a conversation element that facilitates communications within the virtual community outside the setting defined by the at least one setting element may optionally also be instantiated.
  • a narrative element that captures narrative of participants within the setting, the captured narrative being presentable outside the setting as a description of interactions within the setting may optionally also be instantiated.
  • a system for creating a model-driven virtual community having at least one objective.
  • the system includes a collection of templates that constitute partial descriptions of respective elements of the virtual community and an instantiation mechanism to facilitate instantiation of the collection of templates to generate the elements of the virtual community, the elements of the virtual community specifying structural and behavioral constructs of a model according to which the virtual community is structured and operated to progress towards achievement of the at least one objective.
  • Figure 1 is a block diagram illustrating an exemplary embodiment of a project community.
  • Figure 2 is a block diagram illustrating an exemplary embodiment of a system for developing a project model and a project community.
  • Figure 3 is a block diagram illustrating further details regarding an exemplary embodiment of instantiation of a project model to develop a project community.
  • Figure 4 is a block diagram of an exemplary network-based communication system that may be utilized to implement a project community.
  • Figure 5 is a high level illustration showing an exemplary embodiment of utilization of an application server with an object model and compiled scripts.
  • Figure 6 is a block diagram illustrating the architectural detail of exemplary embodiments of a client module and an application server.
  • Figure 7 is a flow chart illustrating an exemplary method by which an application server may handle a request received form a client module within a network-based project knowledge management system.
  • Figure 8 is a flow chart illustrating an exemplary method by which an application server may construct a response to a client request within a network-based project knowledge management system.
  • Figure 9 illustrates an exemplary response pattern in the form of an XML-formatted string.
  • Figure 10 is a flow chart illustrating an exemplary method by which a client module processes a request received from an application server responsive to a client request within a network-based project knowledge management system.
  • Figure 11 is a block diagram illustrating the structure of an exemplary setting object.
  • Figure 12 is a flow chart illustrating an exemplary embodiment of a method by which a client module may process and respond to the occurrence of a user event in a network-based project knowledge management system.
  • Figure 13 is a flow chart illustrating an exemplary embodiment of a method by which a client module may poll an application server for the purpose of identifying changes pertaining to a project community implemented utilizing a network-based project management facility.
  • Figure 14 is a flow chart illustrating an exemplary embodiment of a method by which a client server may export data to an external tool application via a tool bridge within a network-based project knowledge management system.
  • Figure 15 is a diagrammatic representation of a machine in the exemplary form of an computer system in which a set of instructions, for causing the machine to perform any of the methodologies of the present invention, may be executed.
  • the present invention pertains to a network-based communication system in which members of a team working towards a common objective may communicate and interact in the pursuit of activities required to achieve the common objective.
  • the network-based communication system in one exemplary embodiment of the present invention, provides a number of virtual contexts (or settings) within which the communication and interaction occur, defines participants for the communications and interactions, specifies a number of metrics for measuring progress towards the common objective, defines a number of activities or communications that should be undertaken in achieving the common objective, and provides the mechanism by which previous communications and activities may be reviewed or recalled.
  • the present invention also pertains to a method of generating and maintaining such a network-based communication system, and to a method of employing or operating such a network-based communication system within the context of a business process or transaction.
  • project model may be taken to refer to a generic system that may include (1) project components (e.g., purpose, objectives and measures, roles, processes, information, conversations, and reports) and (2) relations among the project components.
  • project components e.g., purpose, objectives and measures, roles, processes, information, conversations, and reports
  • relations among the project components e.g., a project model may be said to refer to an explicit structure of information creation, update and conversations about that information which relates to the accomplishing of a shared result.
  • a project model may consist of specific project activities, and a description of the context in which these activities should be performed to produce desired outcomes.
  • a project model may be viewed as a partial description of elements of a project community.
  • the partial description may embody accumulated knowledge of "best practices" for a specific project community type (e.g., a magazine publishing project community).
  • project models may be established for a number of project community types (mainframe development, package application installation, newsletter production and standards development), each project model embody accumulated knowledge of the best practices with respect to the project community type.
  • project community may be taken to refer to a network-based communication system utilizing a set of contexts in which team resources perform activities to achieve the purpose of the project, and incorporating techniques for navigating among the contexts, and exchanging information among the contexts. Accordingly, a “project community” may be viewed as a model-driven virtual community designed to support team communications, management and accountability of commitments, and learning.
  • the user of a "project community" interacts with other users in the context of one or more settings.
  • the user is represented in a setting in terms of a user's identity or role, according to whether the setting is identified as an identity-based or a role-based setting.
  • the user is presented with two aspects of the setting, namely (1) the application of the setting, in which subjects are created and updated and in which later application may be displayed and (2) the tools of a setting with which the user prepared contributions according to the function defined in the application.
  • a graphical user interface through which the user interacts with the project community and participates within a setting, that includes a (1) shared area and a (2) private area.
  • Information concerning the application is displayed in the shared area, and any information viewable in this shared area is shared with all participants in the setting.
  • the information and tools available to the participants are displayed in the private area and, until a participant takes action to share the information prepared with the tools, this information is considered private to the user.
  • Private information is stored in a persistent representation of the project community as belonging within the setting and to a particular role identity, depending on whether the setting is identity-based or role-based.
  • Certain aspects of an application in a setting can be defined as accessible only by certain special setting roles.
  • tools can be constrained as being available only to certain special setting roles.
  • Monitors and watch scripts may belong to a setting or to a project community generally, but are owned by a particular identity or a role, and offer a mechanism by which a user (either as an identity or as a role) expresses interest in events and relationships among project elements of a project community, and is informed about these events or updates to the relationships.
  • any monitors defined as belonging to the user's identity are displayed.
  • the user chooses a role, or switches to a new role that role's monitors are displayed along or with any identity monitors. If another user assumes a role for which monitors were previously created by some other user, this new user is presented with the relevant monitors.
  • the monitors via the GUI, signal to a user that an associated setting should be visited. A user may select to visit the setting by use-selecting the relevant monitor (e.g., double clicking on a graphic icon associated with the monitor).
  • Watch scripts are also used as a way to express when to update a metric value as part of a mechanism for observing progress towards objectives.
  • FIG. 1 is a block diagram illustrating a project community 10, according to an exemplary embodiment.
  • the project community 10 is shown to include a number of components that each comprises a project element (PE).
  • PE project element
  • the project community 10 is shown to include a number of project elements 12-44. While only a single example of each of the element types is shown and described below, it will be appreciated that a project community 10 will typically include a number of elements of each element type.
  • a purpose element 12 defines the reason why the relevant project community 10 was instantiated.
  • An objective project element 14 provides a time targeted and quantifiable statement of an aspect of the purpose of the project community 10. An objective is formulated from either a business, team, or individual perspective.
  • a measure project element 16 provides the statement of a question whose answer helps determine whether an objective stated by the objective project element 14 is obtained or not, and may provide a specific calibration or reference indicator to measuring progress towards a stated objective.
  • a metric project element 18 refers to a data item utilized in the calculation of a measure stated by a measure element 16, and to be utilized to measure the current status of an objective or progress towards an objective as stated by an objective element 14.
  • a role project element 20 provides a representation of the assignment of responsibilities and skills to a team member within the project community. Within a single project community 10, a number of such "community roles" will be defined, and it is possible to assign a single member more than one role. Role project elements 20 may be utilized to organize team structure, assign project authority in terms of access to project activities, and give access to project elements. Multiple individuals may be assigned to a single role project element 20 (termed a "reference group") to indicate collective responsibility and authority.
  • Each role project element 20 may be defined as existing or participating within any number of settings, defined by setting project elements 22 described in further detail below. Further, a role project element 20 may be defined as a "special setting role" that has special responsibility and access privileges within the context of a specific setting. One or more community roles are associated with each special setting role, thereby extending, for the purpose of that setting, the responsibilities and authorities of the individual or individuals assigned to the community roles. When a role is defined as a collection of individuals, any message (e.g., a notification) that is sent to the role is sent to, or accessible by, all individuals, of the collection of individuals, simultaneously.
  • a message e.g., a notification
  • Any contribution to community information (e.g., changing an attribute of a project element or submitting text to a conversation), is understood as having originated from all individuals associated with the role, and not from any one of them, regardless of the actual individual that made the contribution. However, only one individual acts on behalf of the collection of individuals (i.e., "holds the batton") at any one time and it is possible to trace which individual action made the particular contribution on behalf of the collection of individuals assigned to a role.
  • a role defined by a role project element 20 must be distinguished from an "identity" that is assigned to each team member who participates within the project community 10. Specifically, an identity is unique to each team member, and serves to indicate a true and constant identity of the team member to other team members. Accordingly, an identity may be utilized by a team member when interacting with other team members in a social context within the project community 10 (that is, in a setting in which community roles are not essential to the function of the setting).
  • a setting project element 22 defines a framework or context within which activities and communications take place towards achieving one or more of the objectives of the project community 10.
  • a setting project element 22 states, inter alia, subject elements 24, special setting role elements 26, reference elements 28, and knowledge flow map elements 32, each of which in turn comprises a project element.
  • Settings defined by a setting project element 22 may be "locations" of the virtual community within which team members can access and share, information, participate in shared applications, communicate with respect to certain topics or with respect to the achieving of certain objectives. Settings may also be locations of the virtual community in which team members may congregate for the purpose of social interaction. Examples of settings that may be defined within a project community 10 by respective setting elements 22 are a task scheduling setting, a design review setting, a defect reporting and review setting, a budgeting setting, a team cafe setting, and a vocabulary negotiation setting.
  • a setting may be role-based or identity-based, depending on the purpose of the setting. For example, a work-intensive setting may be role- based, whereas a setting having a more social flavor may be identity-based.
  • the decision whether a setting should be role-based or identity-based may be made by the creator of the project model that forms the basis for the project community or users within the community creating an instance of a setting, and may be made by taking into consideration whether the interactions within the setting are linked solely to the individual or should be shared among individuals assuming a particular community role.
  • a collection of setting project elements 22 may define a network of settings having a hierarchical structure that represents a project work breakdown and thereby the exchange of information among the various aspects of the project work.
  • the subject elements 24 constitute project elements 66, discussed below with reference to Figure 3, that are defined in the context of the relevant setting, and therefore accessible for change only within the context.
  • Each subject element 24 represents the knowledge being constructed about interaction within the setting defined by the relevant setting project element 22.
  • the special setting role elements 26 each record the assignment of authority to access certain activities within the setting, or to read, update, insert or delete aspects of a project element defined within the setting.
  • a special setting role element 26 is declared in a setting, and used to control access to the setting subjects, references, activities, and parts of the project map within that setting and to define extended responsibility to a participant within a setting.
  • a reference element 28 is the name and type declaration of a project element 66, or a template for a project element (to be detailed below), as defined in the context of the setting project element 22 and therefore accessible for change only within that setting context.
  • a reference element 28 embodies additional useful knowledge constructed outside the relevant setting element 22.
  • Such project elements 66 may comprise scripts (to be detailed below) or templates 64 also discussed below with reference to Figure 3.
  • a channel element 30 defines a channel (or pipeline) for the transport of data from one setting to another.
  • the channel elements 30 may define various filtering or transformation functions. Channels may be used to communicate, for example, moods, current opinions, and side comments. A channel may also be used to keep conversation participants aware of the key issues being raised or of priorities for the topics, and so on. Every participant in a conversation has access to the main channel of interaction, but not all participants will necessarily have access to every side channel.
  • a popular television show recast as a project community conversation.
  • the purpose of the Conversation is to argue a position in front of a judge and jury.
  • the various community identities are mapped to special setting roles: Judge (one of these), Juror (several of these), Plaintiff, Plaintiff Attorney, Defendant, Defendant Attorney, Recorder, and Audience Member (several of these).
  • four channels may be provided utilizing four corresponding channels elements 30: 1.
  • Main interaction channel Only the Judge, Plaintiff, Plaintiff Attorney, Defendant, and Defendant Attorney have the tool to make contributions in this channel. everyone else can view the sequence of contributions.
  • Voting channel Only Audience Members have a tool to make a contribution in this side channel. They can choose either the response thumbs up or "thumbs down". The Recorder can see the channel, but no one else has access. Any Audience Member can choose to change their thumbs at any time.
  • a knowledge flow map element 32 defines an ordered or unordered sequence of process steps, each of which comprises a way to access project settings. These steps may specify the flow of information from one setting to another. Accordingly, a knowledge flow map element 32 may define multiple inputs, each input being declared as a subject in a current setting containing the knowledge flow map. A knowledge flow map element 32 may also define multiple outcomes, each outcome being declared either as a subject element 24 or a reference element 28 within the current setting.
  • a process step of a knowledge flow map element 32 is typically named with an identifier and acts as a gateway to either one or more other settings. When a process step provides access to more than one setting it is referred to as a "collection" of settings.
  • a process step may include start conditions, indicating whether any role or identity might access the setting or settings associated with the step. It may also include a sequencing connector indicating the requirement to wait on the result of another process step before access to it becomes available.
  • the project community 10 also includes a decision framework element 34 that provides a specific description of a set of decisions to be made by an instantiator creating an instance of a project model or a template defined as part of the project model. Associated with each decision is a set of alternatives (choices or options) and criteria for picking one of these alternatives. Accordingly, a decision framework element 34 provides a project team with options for carrying out a specific project, and provides criteria for selecting options. These criteria are typically determined based on an historical record of prior use of the project model in other project communities.
  • the virtual project community 10 also includes a decision framework element 34 that provides a specific description of a set of decisions that an instantiator 54 creating an instance of a project model should make. Each decision is termed a "decision topic.” Associated with each decision topic is a set of alternatives (choices or options) and criteria for picking one of these alternatives. Accordingly, a decision framework element 34 provides a project team with options for carrying out a specific project, and provides criteria for selecting options. These criteria are typically determined based on an historical record of prior use of the project model in other project communities.
  • a conversation project element 36 provides a structure for a managed dialogue among roles defined by respective role elements 20.
  • each conversation project element 36 is a setting designed to provide services appropriate to managing synchronous or asynchronous discussion contributions by the roles. Accordingly, conversations may be agenda (topic) driven and may be controlled with special leadership (special setting roles) and queuing rules.
  • discussion contributions can be organized as a tree structure in which each child node is a comment made in response to the comment stored in a parent node. Such discussions may conveniently be termed "threaded discussions”.
  • a chat/page element 38 provides the ability to hold discussions within the community but outside the context of any one setting.
  • a "chat” is an informal realtime or asynchronous exchange among one or more community users. (Holding a conversation with oneself can be a useful method for keeping personal memos).
  • a "page” is a short message sent for the purpose of getting a user's attention to some event or notifying a user of some event.
  • the chat/page element 38 may provide the capability for responding to a page, and constructing and participating in multiple chats.
  • a narrative project element 40 provides a story, or report, based on the status or history of the project community 10, and may include an application in which to generate and interact with a "story" about the project community 10.
  • Three primary forms of narratives may be provided for a project community 10, namely status reports, team member opinion on current status, and replays /reviews of history.
  • a glossary project element 42 provides an explanatory vocabulary list (i.e., a list of terms and definitions that explain each term) for use within the project community 10.
  • the glossary project element 42 provides a shared vocabulary that is part of an organizational model and may reflect the culture of a team.
  • the historical recording of events in the project community records, among other events, changes to the vocabulary. This historical record may be used, for example, to assist in understanding discussions held at different points in time, with awareness of any changes in definitions for terms.
  • a library element 44 provides a collection of reusable project elements, such as, for example, settings, narratives, or roles. For the most part, these reusable project elements are partial descriptions that can be instantiated for use in different project communities. We use the term "template" to refer to a partial description, as defined in more detail later.
  • template to refer to a partial description, as defined in more detail later.
  • the use of special setting role names that are independent of the role names defined in a particular project community may allow an instantiator of the project community 10 to design a setting that is reusable in different project communities 10 with different community roles.
  • FIG. 2 is a block diagram illustrating a system 50, according to an exemplary embodiment of the present invention, for developing a project model and a project community.
  • the system 50 includes a modeler 52 who is responsible for the creation of a project model, an instantiator 54 who is responsible for the creation of an instantiation of a project model (i.e., a project community), and a team 56 that operates within the context of the project community to achieve the objectives of a project.
  • the modeler 52 is responsible for defining a project model and generates an instance of the model that is tailored for a specific project.
  • An exemplary project community in the form of a design studio project community is described below.
  • the modeler 52 may utilize a general business model for achieving a broad business objective (i.e., the design studio business itself) to generate a project that is more focused towards a specific environment (i.e., the design environment for creating a magazine, a design project consistent with the purpose of the design studio business).
  • the instantiator 54 is responsible for instantiating the project model developed by the modeler 52 to provide the specific project elements (structure, templates, and other information) of a project community.
  • the instantiator 54 is accordingly responsible for defining a project community based on an instance of a project model, for deploying the project community for use in an actual project, and for updating the project model based on a review of the history of the use of the model in one or more project communities.
  • the project team 56 is responsible for utilizing the project community developed by the instantiator 54 to facilitate achievement of the objectives of the project specified within the context of the project community.
  • modeler 52 and the instantiator 54 may comprise a single person, or team of persons, and accordingly be responsible for both the development of the project model and the project community.
  • the person responsible for updating the project model need not be the same person as the one fulfilling the responsibilities of the instantiator 52.
  • the project team 56 provides feedback to the instantiator 54 regarding the team experiences within the project community. Feedback might be provided in the form of the historical record of how the project team used the project model.
  • the modeler 52 or instantiator 54 may then utilize this feedback information to improve the project model and /or to modify future instantiations of a specific project model.
  • One form of improvement and /or modification is to extend the criteria and /or options of a decision topic in the project model's decision framework.
  • the instantiator 54 provides feedback to the modeler 52 regarding experiences pertaining to the project model, and the modeler 52 shares these experiences and those of the modeling activity to the creators of the project modeling capabilities (language, tools, library).
  • Figure 3 is a block diagram showing further detail regarding the instantiation of a project model 60 to deliver a project community 62.
  • the project model 60 may present a number of templates 64 that are instantiated by the instantiator 54 to deliver corresponding project elements 66 specific to the project community 62.
  • an instantiator 54 may wish to create an instance of an objective template 64.
  • the objective template 64 is a partial description for an objective project element, to be a part of every project community based on this project model.
  • a project element consists of one or more attribute-value pairs.
  • a description of a project element may, in one embodiment, be regarded as partial when at least one attribute is associated with instructions for determining the value, rather than a literal value.
  • Possible instructions are to retrieve a value from an external persistent store, to ask the instantiator for a value, or to evaluate a script.
  • a script is itself a project element that is made up of a sequence of well-formed expressions in a Project Modeling Language (PML), as defined in more detail later. Completing the template's partial description creates instances (i.e., project elements 66).
  • PML Project Modeling Language
  • Figure 3 also illustrates the partial instantiation of a template 64 to generate a community template 67 that is included within the project community 67.
  • This partial instantiation may include associating value with certain attributes of the template, while maintaining certain other attributes without values. These other attributes may optionally be assigned values by participants within the project community 67.
  • a project model 60 may specify that the project community 66 based on the model 60 includes a set of templates, for example, templates representing partial descriptions for possible settings, conversations, or narratives that may be created in the community.
  • a project team 56 that uses a project community 62 created by an instantiator 54 can modify or extend that community 62 by creating instances of one or more included templates 64, if any.
  • Project elements 66 may be instances of templates 64 and may be defined in terms of a set of attributes and values. Some of these attributes are expected for every element, while other attributes are added to further specify the element.
  • a template 64 is a partial description in the sense that at least one of the values is not provided. Rather a specification is given of how to obtain the omitted value or values. Such specification takes the form, for example, of a sequence of expressions to be evaluated that might, in turn, calculate the value or retrieve the value from a persistent data store, or request that the user either provide a value or select it from a list of decision framework options.
  • Creating an instance of a template means to create a new project element whose attributes are the same as those provided in the template and whose values are those provided in the template, either literally or as determined by the specifications.
  • Table 1 The attributes shown in Table 1 for an exemplary element 66 may be present in all elements 66 (instances of templates 64) in a specific project community 62.
  • Type Indicates whether the element is an Instance or a Template.
  • Comment A text string that describes the intended use for the element in the project community.
  • Limit If the element type is Template, then it is possible to specify the maximum number of instances that can be created. If no number is specified, then an unlimited number is allowed. Timestamp. The date and time of day when the element was created. Discussion.
  • a String or an R_Script (these project modeling language elements are described below) that serves as a reference to a project element, either the name for an element within the project community or a URL to commentary (including possibly to a threaded list of commentaries) accessible from outside the community (for example, a Web page).
  • Access A list of roles that give access permissions to this element. A role's access may be defined as Read, Edit, or Evaluate.
  • a default role is defined and set up as the default role for any element. Roles named Reader, Writer, and Evaluator role may also be provided. Reader is typically the default special setting role. By default, community roles are assigned the default special setting role on entry to the project community.
  • Project elements 66 such as reports or settings, might be created as a consequence of user action. Accordingly, the present invention proposes a mechanism for instantiating partial descriptions or templates 64 in order to support:
  • a template 64 is a way to define a data structure, and instantiation of a template is a way to create replications of the data structure
  • a template incorporates the use of references to design topics defined as entries to the project model decision framework.
  • the use of design topics within a template 64 provides a way to specify alternative instance values, including values that refer to reusable project elements.
  • the use of decision framework provides a way to incorporate the experience of prior related project communities into the definition of the project model 60.
  • a template 64 is a partial description that has all the attributes specified, but the values of these aspects may be literal or are determined at the time of instantiation.
  • a user-defined template is created from an existing template by copying the attributes and literal values, and replacing only some of the value specifications.
  • a user-defined template is created from an existing template by copying the attributes and values (literals and specifications) and then adding new attributes with values that are either literals or specifications.
  • a value of the attribute of a project element template 64 is itself a template, for example, the value could be a textual string but not all phrases in the string are known. Rather, these phrases are specified as to be determined at the time that an instance of the project element template is to be created.
  • These variables may, for example, be given within angle brackets ⁇ >, and specified in terms shown in Table 2.
  • the values are obtained as part of the process of creating an instance of the template 64.
  • each attribute is considered.
  • the value of the attribute can be a literal (a constant in the Project Modeling Language, such as an Integer, as noted later), or a variable.
  • the value is retrieved either by creating a reference to the project element, creating an instance of the named template, executing a script, interacting with the user who in turn provides a value, or presenting decision topic alternatives to the user for user selection.
  • Identifier> ⁇ String> where Identifier is the name of a primitive element in the Project Modeling Language, as defined later, thereby denoting the type of value to be provided (for example, Integer, String, Boolean), and the String is a comment to be presented to the user to request the value of this type.
  • a template 64 can contain templates, that is, the specification for a value of an attribute can name a template, and therefore the desired value for the attribute is intended to be an instance of the named template.
  • Implementation of the instantiation process may be depth first (recursively create the instance of a template specified as a value), or breadth first (complete all attributes of a template whose values are not themselves templates before creating instances of templates that are values).
  • a string_template is a special kind of template that can serve as the value of an attribute of a project element. It is basically a string with one or more embedded user requests, where a user request can be of the form: ⁇ STRING: 'request to provide a string' > ⁇ NUMBER: 'request to provide a number'> ⁇ BOOLEAN: 'ask a question whose answer is true or false'>
  • a grouping_template is itself a template 64. It holds onto two or more other templates 64. These templates 64 have been grouped together because, whenever an instance of one of these templates 64 is to be created, an instance of each of the others must also be created. Moreover, the use of all of these instances has to be coordinated. For example, in one implementation of a user interface for a project community, coordination may be specifically designed to keep all instances in the same user work areas, either in the user's private work space, or the team's setting shared work space.
  • Templates The templates 64 in this list have to be coordinated, notably kept together when moved about the works of the community.
  • Names These are temporary names created while the instance of the grouping_template is being created.
  • the list of Names has to be at least as long as the list of templates 64.
  • the instances of the templates 64 are created and given the next name in the Names list. Initialize. When an instance of a grouping_template is requested, two actions are taken:
  • PROTECT ELEMENT CHANGE NOTIFICATION As a part of the general capability for watching events and monitoring values of project elements described when detailing the basic templates for constructing a project model, the expressiveness of the project modeling language, and architecture of a project community (all detailed later), it should be noted here that it is possible for the modeler 52 or member of the project team 56 to declare an interest in the change of value for an attribute of a project element, and to specify how the project team 56 member should be notified that such a change occurred.
  • Target_time The date by which the objective must be reached.
  • Completion_criteria A measure that answers the question as to whether the objective has been successfully attained, and whether progress is being made.
  • a script that answers the question as a computable or retrieval value. May include names of one or more metrics, as specified in a
  • Metric_Table This script may convert a metric value to suitable scale or for geographic or seasonal adjustment, and so on.
  • Metric_Table in which to find the values for tokens in the
  • the Metric_Table is a Dictionary of Metrics, whose names may appear in scripts associated with a Measure. Each time a value for a Metric is requested, it is stored in a ValueCache:
  • ⁇ Element> refers to any project element (an instance of a project model template or a basic element of the Project Modeling Language.
  • the name of an instance of metric can be used in a script that determines the value of a measure.
  • Source A script for obtaining a value for the metric.
  • Trigger A W_Script that determines the next time to obtain a value for the metric. It is basically of the form:
  • DO MetricName.Value add (MetricName.Source); Expected value.
  • the target value In order to know whether the value for this metric is converging on the target, the target value should be specified. Maximum_value. The desired value could be in a range, in which case this is the upper bound.
  • Minimum_value The desired value could be in a range, in which case this is the lower bound. Value.
  • Role_Type Single means that the role is fulfilled by only one team member; multiple means that the role can be fulfilled by more than one team member. If the RoleType is Multiple, then any information accessible to one team member is immediately accessible to the others. A message or notifier sent to one is sent to all. Only one team member can be acting on behalf of the role at any time. This team member is referenced as the value of Active_Member.
  • qualifications A list of text strings, each describing a qualification that a team member should have in order to assume this role. could be a template 64 in order to be able to specialize the description for particular projects.
  • Active_Member If this is a multiple role, then the identity is one of the team members assuming this role and acting on behalf of the multiply- assigned team members.
  • Special Setting Roles are roles that are used to extend a user's responsibilities, skill expectations, as well as authority (access to process steps and project elements 66).
  • Role indicates role-based naming for the user.
  • Identity indicates the user identity is the user's preferred name in the setting.
  • project elements 66 defined in this setting context and therefore accessible for change only in this context. May be defined as a basic component by the modeler or by a team member.
  • the Special Setting Roles given as a set of one or more pairs (identifier name, reference to the corresponding project element).
  • the name and associated R_Scripts that provide access to relevant information either within the project community or accessible from external sources, such as a Web site.
  • Templates The name and associated project elements 66 or templates 64, defined in this context and therefore accessible for use, change, or instantiation only in this context.
  • the templates 64 are either the general ones provided for all project communities, ones created by the modeler, or ones created by a team member during the use of the project community.
  • the user interface for accessing these templates might offer a step-by-step procedure that the user can follow to create instances of the templates or review the scripts.
  • Knowledge flow map The List of the names of the Processes that defines the expected behaviors in this setting.
  • Identifiers in the process definition are subjects or resources of the setting in which the process is defined. These are all project elements 66 whose types have to be declared so that it is possible to make sure, at the time of construction, that the process definition is consistent.
  • Inputs A process can have multiple inputs. Each input is declared as a subject of the current setting. Process inputs are used to bring references to information defined outside the setting into the current setting. (By "outside", reference is made to the process step holding the setting in which this process is held.) In this regard, the mapping from the step on the outside to the process input may be viewed as declaring the input to be an R_Script.
  • a process can have multiple outcomes. Each outcome is declared as either a subject or a resource of the current setting. Process outcomes are used to directly export information to the setting in which the current setting is contained. The outcomes may be mapped to the outcomes of the step holding the current setting. The transfer of information is by copying the values of the elements in the current setting and making the corresponding elements declared as the outcomes referenced to these copies.
  • a process consists of a set of steps, each of which acts as a gateway to a setting, including a conversation as a special kind of setting. step might also represent access to a collection of settings or conversations. Every step is named with an Identifier.
  • Access to a process step is determined by its contents.
  • access to a step is the same as the access of its setting or the aggregation of all settings in a collection.
  • Step Precondition A Boolean expression that checks the status of the setting and any inputs to the step to decide whether to take some actions prior to allowing access to the step's setting. Typically answers true or false, whether the user can access the step.
  • a step has one or more inputs. The inputs are passed to the action or setting held by the step. Information is passed for read only use only, i.e., a reference is passed. Step Action.
  • a step action can be one of two kinds of elements 66. A setting might be a conversation and it is possible that this distinction is made visually in a user interface of an implementation for project communities.
  • Setting Invoking a step within a setting creates a change in context to the referenced setting. This action is one possible form of navigation through the project community.
  • the only information passed from the current setting to the new one is information specified as inputs to the step.
  • Setting Collection A Setting Collection step is a placeholder for zero or more steps that cannot be specified at the time the process is defined. Rather, there are several choices of templates 64 for Settings, defined as Templates of the setting. The user selects a template 64 to create an instance, and places it in the process. If the instance is placed in an SettingCollection, then all the inputs to the SettingCollection are passed to the Setting. The outcome of the SettingCollection is an ordered collection of outcomes of each Setting that was placed in the SettingCollection.
  • Step Outcomes A step has one or more outcomes. Each outcome is declared as either a subject of the current setting. If the names of inputs and outcomes are the same, then they refer to the same subject of the current setting.
  • Step StepType Only relevant if the step is a SettingCollection.
  • connection Provides a list of names of the templates 64 whose instances can be placed into the step. Connections.
  • the purpose of a connection is to specify sequencing control among process steps.
  • a connection is either on or off. If it is on, then the implied precondition that the source step be ready is set to true. If the connection is off, then the implied precondition that the source step be ready is set to false. In this circumstance, the step associated with the input is not accessible to any user.
  • Connection names are simply integers.
  • a connection can have an Action_Script.
  • the connection can examine the status of the inputs or outcomes, or other aspects of the current setting, and take action to change one or more aspects of the setting.
  • Action_Script is to test whether an outcome has an assigned value or has changed its value, and based on the test, decide whether to change the status of the connection.
  • a setting is in reality an application context, a place where a related set of activities can be presented, invoked, and coordinated, in the context of named information.
  • the modeler has the ability to specify subapplicafions that can be shared or appear in a private work area. The particular details of what an individual can do in either the shared or private work areas can be dependent on who the individual is and what role the individual may have currently assumed.
  • Shared A description of any special activities to occur in the shared work area, where typically process team members with access to the setting can view the current status of shared information.
  • the name of the instance of a decision topic may appear as a value for the attribute of a project element. If so, when the project model is instantiated, the user will be asked to examine the decision framework and make a choice as to the actual value to be inserted.
  • a Decision_Framework is a table, keyed on the names of each ⁇ Decision_To ⁇ ic>. Associated with each topic are:
  • Choices A list of possible decision choices, each a ⁇ String>. Criteria. For each decision choice, an explanation of the circumstances under which a choice is best made. Each explanation is a ⁇ String>.
  • a conversation is a special kind of setting and as such has the choice as to which names are used to refer to users, either users' current role names or actual identities.
  • Organizer A list of topics to be discussed, or a rule by which topics are selected for discussion. If none, then the conversation may be about anything.
  • Channels A list of channels, which are side conversations to the main conversation, and which may represent additional aspects of the conversation application, for example, summaries of issues, suggestions, voting, moods, and so on.
  • a Conversation is an exchange of comments on some topic among two or more team members. It is represented as a collection of commentaries.
  • the commentary structure may be linear, tree structured (often called a threaded conversation), or some other organization of information as needed to represent the manner in which the exchange has or is taking place.
  • a Conversation may be represented as an application that is used to create, modify, and explore the commentary structure.
  • a narrative may conveniently be viewed as a "story”.
  • the modeler's job is to propose a "story” about how a yet-to-be-defined team of workers will carry out a project.
  • the project is then formed, the team members assigned, and the project carried out. While the project is carried out in the context of a project community 62, two things transpire:
  • project team members might contribute explicit statements to be incorporated into a narrative that the team constructs about the current state of the project.
  • the story about a project is about how the project evolved and why.
  • the project model 60 may be viewed as the story line and the team members the primary characters. There are other characters, observers who can comment on how the project state and evolution was predicted by the modeler 52, and observers who can discuss where and why there are differences in the prediction. These "observers" of course are provided as a service of the project community narrative functions.
  • Setting Narratives An aggregation of textual contributions made by any team member with access to a particular setting, that serves to describe or explain what is going on or has transpired in a particular Setting. May be useful as a way to give information about a Setting to individuals who otherwise do not have access to the Setting.
  • a history may be constructed as a sequence of significant milestones and summaries from the project history log of how these milestones were reached.
  • the milestones may represent a storyline, roles that participate in creating these milestones are characters in the story, and other interested team members and other observers are commentators on the story.
  • the narrative is an unformatted report, simply a sequence of literals and scripts.
  • the script elements may be provided as special insertions in a word processor so that a report can be written by a team member and sent into the community to effect change.
  • Trigger The report can be generated by user request for an instance or a Watch Script can be set up to choose a condition, such as a date and time, when the report should be generated.
  • PROTECT MODELING LANGUAGE PML
  • the present invention proposes a language (namely a Project Modeling Language) utilizing which a modeler 52, instantiator 54, or member of the project team 56 may express how a particular project is to be carried out.
  • a language namely a Project Modeling Language
  • the purpose of the project modeling language is to provide a textual language by which a modeler 52 can define both the structure of a project community 62 and the processing to take place in that project community 62.
  • the structure consists of instances of elements 66, user-defined templates 64, and instances of the basic project templates 64.
  • the project modeling language may be used to define a project model 60 in a general way (e.g., templates) that can be reused in multiple project communities 62.
  • the language provided for the PML can be any programming language, as long as the language includes the ability to interface with the notification and other project community library functions. Languages such as Smalltalk or Java satisfy this requirement. We also describe here a new language, specifically designed to be used by team members who are not programmers but who may wish to define PML action sequences as part of their use of the project community 62.
  • PML action sequences define:
  • the design for a language is based on declarative statements with no assignment to variables occurring in any action sequences.
  • Elements in the language are constructed as dictionaries of attributes and behaviors, which are collectively referred to as the aspects of the element. Changes in values are handled as accessing operations inserting new values to the existing aspects.
  • the early variables that may be assigned to the value of those predicted as the aspects of an element 66 or a template 64.
  • Behavior for a List include: first, last, add, delete,
  • Dictionary an unordered collection of values that serve as a key, value pair; the key is the name of the value; hence, in truth, a dictionary is a set indexed by the names of its elements.
  • Date a magnitude representing day in a month in a year.
  • An Identifier is a sequence of alphanumeric characters containing no white space (space or tab or line feed), and no special characters other than underbar.
  • the identifier none is used in component definitions to indicate where no value is required.
  • nil Denotes an uninitialized value for any element. All values can determine whether they are nil or not nil, as in
  • PE.value.notNil Returns true if the value is not nil, false otherwise
  • PE is an element 66, and aspect is a legal attribute name of that element, then:
  • PE.aspect (args); Returns the value of evaluating the aspect with args, a list of one or more arguments.
  • SET PE.aspect TO value Store value as the new value for PE.aspect.
  • DEF PE.aspect TO statements Store the statements as a sequence that can be evaluated on invoking PE.aspect.
  • the system is largely nondeterministic in the sense that multiple users, with access to the same setting and a role that can edit a project element 66, can all change a value of an attribute of that element 66. This change can take place at any time, which means potentially in the middle of a statement evaluation.
  • the modeler 52 may use special setting roles to provide locks on apparent arbitrariness.
  • attributes of any project element 66 may be either a single identifier, or an identifier followed by one or more arguments.
  • a scripter can expect to obtain values. The value is the value of the last statement, or the value explicitly returned.
  • RETURN value Returns value as the result of a sequence of statements.
  • RETURN valuel, value2 Constructs a list as the value returned.
  • condition can be any event that might occur or time (clock reaches some particular time) or value of an element 66 gets set to anticipated value, and so on for any anticipated event.
  • actionSequencel As long as condition is true, evaluate the actionSequencel. If the condition is exited by a BREAK statement, then actionSequence2 is evaluated. FOR var IN collection DO actionSequence; actionSequence uses var to reference successive items from the collection. FOR var IN collection DO actionSequencelON_BREAK actionSequence2;
  • actionSequencel exits using BREAK, then evaluate actionSequence2.
  • actionSequence uses varl, var2 to reference successive pairs of items from the collection.
  • a script is a type of project element 66 that computes a reference to other project elements 66 or takes some action that alters other project elements 66. Like all project elements 66, a script has a name, an owner, and permissions for access. The purpose of a script is to express the relation between resources in a container (the project community 62 itself or one of the settings) and information formed and managed outside that container.
  • Action_Script is the representation for a sequence of statements defined as part of the PML. Action_Scripts are used:
  • Action_Script The principal value of an Action_Script is the result of evaluating its program.
  • R_Script A Retrieval_Script (R_Script) is used to manage the namespace for a setting to allow access both to external documents (for example, via the Web) and to internal project elements 66 stored in the project community persistent store.
  • Expression of an R_Script takes the form of a URL: scheme:/lhostlpath/extra-path-info&query-inf; and scheme is http: o ⁇ fip: or file: and so on.
  • R_Script cannot alter any project element 66. Its use in a setting is to help the user maintain an awareness of information related to the current work focus. In all cases, information is referenced via a URL. The URL may be fully specified or it may be relative. A relative URL is converted internally to a full URL by pre-pending to it the path to the enclosing setting. R_Scripts are used in two contexts. In both cases, the R_Script acts as a local proxy for an external object:
  • a Query_Script (Q Script) is used to make simple queries of elements 66, either those in a current setting 22 or outside of the setting 22 and even outside the project community 62. In all cases, all information sources are in the current setting 22 either because they are local to that setting 22 or have been imported to it using an appropriate R_Script.
  • Q_Script returns a list of values that match the query. It cannot be used to change any project element 66.
  • Q_Scripts are used in two contexts:
  • the principal value is the list of the data which satisfies the query from each of a list of URLs.
  • Query A query expressed in the PML. Names in the query have to be defined in the context in which the query is evaluated.
  • Query_URLS A list of URLs to be searched.
  • a Watch Script (W_Script) is used to watch for events in a setting.
  • a W_Script is necessarily of the form:
  • the action_script can alter project elements 66 in its local context. Access rights of the action_script to alter elements 66 are the access rights of the action_script owner. Once the guard condition becomes true and the action_script is evaluated, the decision whether to reset the W_Script to be able to check again is determined by its condition_policy. W_Scripts are used:
  • Uninstall Uninstalls the W_Script by making it inactive. Uses self.condition-policy to identify how to uninstall itself. Returns true on success (uninstall complete); false otherwise.
  • Condition_Policy Sets the policy by which the condition gets tested.
  • condition is tested whenever a message from a registered dependent is received (that is, a project element 66 whose change implies the need to check the condition).
  • Other options include evaluating at regular intervals, or evaluating manually.
  • a Monitor is used to present information about a single value, or about a relationship among two or more values, where the values are attributes of subjects of a setting.
  • a Monitor is a specialized Watch Script, in that it includes a guard condition that watches for a change in one or more values.
  • the Action associated with the Monitor presents a view of a particular relationship among these values. In one embodiment, this view if graphical and chosen as an easy way for a user to understand the status of the value or relationship. For example, the relationship between two numbers (e.g., a planned and actual budget number) may be shown as a meter or thermometer, progressing to a "red zone" when the difference between the values approach zero.
  • a Monitor element is defined to have a structure substantially similar to that of Watch Scripts, as defined above, but with additional attributes that contain a list or references to values to be watched, and a way of naming these values so that they can be referenced appropriately in the Action part of the Watch Script.
  • SYSTEM AND SOFTWARE ARCHITECTURE Figure 4 is a block diagram illustrating a network-based communications system 100, according to an exemplary embodiment of the present invention, that may be utilized to implement a project community 10.
  • the system 100 includes a number of client modules 102 that communicate with an application server 104 and a replay server 106 compatible with the Hypertext Transfer Protocol (HTTP) 108 via a network (not shown) such as a Local Area Network (LAN), a Wide Area Network (WAN) or the Internet.
  • HTTP Hypertext Transfer Protocol
  • a web server may front the application and replay servers 104 and 106, or the application server itself may provide the standard function of a web server.
  • the client modules 102 may exchange Extensible Markup Language (XML) packets with the application server 104 utilizing protocol compatible with the HTTP protocol 108.
  • XML Extensible Markup Language
  • a client module 102 may generate requests to the application server 104 or may poll the application server 104 on a periodic basis.
  • the client module 102 may itself be a commercially available web browser, a Java enabled browser, or a browser written in some other computer programming language.
  • the application server 104 and the replay server 106 may each be implemented on any one of a number of commercially available software platforms such as, for example Windows NT ® developed by Microsoft Corp. of Redmond, Washington, the Solaris operating system developed by Sun Microsystems of Mountain View, California, or some variant of the Unix operating system, such as the Linux operating system.
  • the application server 104 is in communication with a database management system (DBMS) 110 that manages the storage and retrieval of data from a database 112.
  • DBMS database management system
  • the application server 104 may communicate with the database management system 110 using the Open Database Connectivity (ODBC) protocol.
  • ODBC Open Database Connectivity
  • the database management system 110 may be an SQL server developed by Microsoft Corp. or by Sybase Inc. of Emeryville, California.
  • Other database management systems are available from Informix Corp. of Menlo Park, California, Oracle Corp. of Redwood City, California, and IBM of Armonk, New York.
  • the application server 104 is also shown to be in communication with a software module referred to as a "toolbridge" 114 via which the application server 104 is able to export information to, and import information from, a number of external application programs (or tools) 116.
  • external tools may include a word processor application 118 (e.g., Microsoft Word), a spreadsheet application 120 (e.g., Microsoft Excel) or an e-mail and calendaring application 122 (e.g., Microsoft Outlook).
  • the toolbridge may support the ability for such external applications to export information to, or import information from, the project community application server 104.
  • the application server creates and extends a history log 124 of some or all events that take place during the operation of the project community.
  • a replay server 106 provides access to this history log 124 for purposes that will be explained below.
  • Figure 5 is a high-level diagrammatic illustration showing the initialization of the application server 104 with an object model 130 and compiled scripts 132.
  • the application server 104 will read an extensible markup language (XML) model 133 (i.e., an XML representation of the project model 60) to initialize the data in the database 112 and populate the application server 104 with an object model 130 (i.e., the application server's representation of the project model 60 in terms of project community 62 structure) and the compiled scripts 132.
  • the compiled scripts 132 are the compiled code representation of scripts as detailed earlier.
  • the structure of the project community 62 typically resides in the application server 104 whereas the data that is presented using the structure is typically stored in the database 112 but may be cached in the application server 104 for performance purposes.
  • the model 133 may be defined in terms of another derivative language of the standard generalized markup language (SGML).
  • FIG. 6 is a block diagram illustrating further architectural details regarding an exemplary client module 102 and an exemplary application server 104.
  • the client module 102 operates to provide a superset of functionality with which to build tools necessary for expression within, and interaction with, the project community 62 by a team member.
  • the client module 102 is characterized in that it provides a non-continuous connection to a project community 62, interprets XML object descriptions, is primarily stateless, and dynamically loads capabilities (both setting specific and role specific applications and tools, and data) as such capabilities are specified.
  • the client module 102 registers itself with the application server 104, which then issues the application module 102 with an identifier. The client module 102 then utilizes this identifier to identify a specific login session for each communication with the application server 104. As there is no continuous connection to the application server 104, all communications are, in the present exemplary embodiment, initiated by the client module 102.
  • system can be implemented to include a continuous connection, whereby the server is aware of the client and can decide to push information to the client.
  • the client module 102 communicates to the application server 104 utilizing HTTP messages specifying POST operations, and utilizes URLs that are specified by the application server 104.
  • the application server 104 communicates to the client module 102 as a response to a particular client query. All information is communicated from the client module 102 to the application server 104 in the form of XML expression.
  • the client module 102 architecture and functionality is focused on the presentation and interpretation of project elements 66 included within the application server 104.
  • the application server 104 encodes project elements 66 in the form of XML expressions that are then communicated to the client module 102.
  • a project element 66 for present purposes, may be regarded as having the following properties:
  • the client module 102 is able to be primarily stateless and to load capabilities dynamically as they are required for the user's interaction with the project community 62.
  • the " IAScheduleltem” tag describes the class of the project element 66 from which the XML statement is generated.
  • the identifier for the relevant project element 66 is "404". Accordingly, the content of the "IAScheduleltem” tag together with the identifier "404" constitutes a composite key for the project element 66.
  • the name of the underlying project element 66 is shown to be “ Concept_Review ", and the attribute "action" specifies URL information to be used in notifying the application server 104 about changes done the project element on the client.
  • a proprietary tag "field” designates a named property of the object.
  • the actual data pertaining to property is located in the text between the start and end portion of the XML expression (i.e., in the pcData portion of the XML expression). All other information concerning a field is encoded in the "attribute" portion of the XML expression.
  • the modeler 52 or instantiator 54 may specify a number of field types. Examples of various field types proposed by the invention are shortString, longString, timeStamp, and number.
  • Project elements 66 may be embedded within other project elements 66, thus creating a tree structure of project elements. This embedding can be either as an explicit field within the field type "project Element” listed above or simply as a direct sub element.
  • project elements 66 may have information specified within a "detail" section there of that allow display states descriptions to the stored on the application server 104 in a per object/per user/per role fashion.
  • the detail section of a project element 66 may contain at least location and size information for display of a project element by binding the display end-user interaction logic of a client module to the description detailed below.
  • a detail section of a project element 66 may also specify the level of detail regarding the project element 66 that is to be presented to a user.
  • Project elements 66 can provide information about how they should be presented by the display and user interaction logic of a client module 102 for viewing by a user. This information is specified within a "viewer" tag section of a corresponding XML expression. An example of such a "viewer” tag section is shown in the above example. A detailed description of the utilization of information contained within a "viewer” tag section is provided below when describing the graphical user interface.
  • the client module 102 is shown to include display and user interaction logic 134 that generates and controls the display of graphic information pertaining to a project community 10 on a display unit (e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) or active matrix display) associated with a computer system (not shown) on which the client module 102 is hosted.
  • a display unit e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) or active matrix display
  • an inte ⁇ reter 135 provides a conduit to marshal logic 136 that marshals information created in the client 102 into XML expressions and to unmarshal logic 138 that unmarshals XML expressions received from the application server 104
  • a communications interface 140 is shown to include an HTTP client 142 and polling logic 144.
  • the HTTP client 142 issues requests to a corresponding HTTP server 152 included within a communications interface 150 of the application server 104. Information from the server 152 is provided
  • the application server 104 also includes marshal and unmarshal logic 154 and 156, that communicate through an interpreter 160 with application objects 162 and database objects 164.
  • the database objects 164 are shown to issue ODBC queries 168 to, and to receive ODBC responses 166 from, the database management system 110.
  • the database management system 110 includes a number of stored procedures 170 that access tables 172 and data 174 stored within the database 112.
  • REQUEST Figure 7 is a flowchart illustrating a method 200, according to an exemplary embodiment of the present invention, by which the application server 104 may handle a request received from a client module 102.
  • the method 200 commences at step 202, where the application server 104 receives an XML packet from a client module 102 via the HTTP server 152 of the communications interface 150 of the application server 104.
  • the XML packet is embodied in a standard HTTP POST request.
  • the unmarshal logic 138 converts the received XML packet to an internal representation.
  • the XML is converted into a tree structure by building instances of an object class named XMLTreeNode with three instance variables: tag, attributes, and elements.
  • tag is a String
  • attributes is an array of key-value pair to represent the attributes
  • elements is an array of XMLTreeNodes if any exists.
  • This format provides the object model representation expected by the server application code.
  • the inte ⁇ reter 160 looks up an Uniform Resource Indicator (URI) portion as a key in a dictionary (not shown) to obtain a handler class.
  • URI Uniform Resource Indicator
  • the handler class is designated as the "default" class at step 211, which provides a classic web server.
  • a determination is then made at decision box 213 whether the internal representation is a valid Unix-like path name. If not, an error is registered at step 215. If so, at step 217, the inte ⁇ reter 160 goes to a default directory to get a specified file, and to look up the Multi-pu ⁇ ose Internet Mail Extension (MIME) for the specified file.
  • MIME Multi-pu ⁇ ose Internet Mail Extension
  • the method 200 proceeds from the decision box 208 to step 210, where the inte ⁇ reter 160 creates an instance of the handler class.
  • the created instance is given control to enable it to acquire information from the internal representation (generated at step 204) and to create an instance of a class matching client request instance (CRI).
  • the instance CRI is the entry point into server behavior.
  • the CRI executes and modifies application objects 162. Specifically, a method associated with the CRI executes, and possibly initiates interaction with an application object.
  • Other application objects may be in the application server 104 on account of being instances of extension classes or DLLs that were loaded when the past matching client request was loaded into the server as part of its working set of extension classes.
  • the objects may be primitives of a project community 10, such as a setting element (IASetting) or a role element (IARole).
  • the other objects may also be database objects 164 that each application object 162 is aware of. Specifically, there may be a many-to-one relationship between database objects 164 and application objects 162, whereas the database objects 164 have a one-to-one relationship with the database tables 172.
  • FIG 8 is a flowchart illustrating a method 230, according to an exemplary embodiment of the present invention, by which the application server 104 may construct a response to a client request.
  • the method 230 commences at step 232, where a response pattern for the received request is retrieved.
  • the CRI created at step 212 shown in Figure 7, knows where to look for the response pattern in an external file or an internal string.
  • the response pattern 240 is an XML-formatted string that represents a pattern for an appropriate response to a specific client request.
  • the XML-formatted string may be parsed into an internal structure in the form of a tree structure 242.
  • a tree walk is executed to generate the internal structure (i.e., a tree structure 242).
  • the tree walk tree treats each node of the tree structure 242 as either a literal or a script.
  • a script may define how to populate the internal structure with live data.
  • a script may be (1) a simple type of executable software (e.g., written in Java or Smalltalk) that returns a value, (2) a switch to select a script by returning a value for the selected script, or (3) a response pattern or a pointer to a file containing a response pattern that returns a populated sub-tree.
  • the internal structure is converted to an XML-formatted string (i.e., an XML packet) that is then propagated to the client module 102 at step 238 as a response to the received client request.
  • an XML-formatted string i.e., an XML packet
  • APPLICATION SERVER Figure 10 is a flowchart illustrating a method 250, according to an exemplary embodiment of the present invention, by which a client module 102 processes a response received from the application server 104 responsive to a client request.
  • a client request may be a specific request issued via the HTTP client 142 within the communications interface 140 of a client module 102 or may be a scheduled poll issued from the polling logic 146 of the communications interface 140. Polling is performed because, although the application server 104 is controlling of the state of the client module 102, the HTTP protocol does not facilitate server-initiated interactions with a client module 102.
  • the response to such a client request is either "no" or an XML packet containing information regarding the change states of any settings.
  • the method 250 is performed with a view to setting up or updating client objects that are inte ⁇ reted by the display and user interaction logic 342 to generate a graphical user interface with which a user can interact. Further details regarding the implementation of the graphical user interface, and user interaction therewith to navigate and operate within the project community 10, are described below.
  • FIG 11 is a block diagram illustrating the structure of an exemplary client setting object 280, according to one embodiment of the present invention.
  • the client setting object 280 is shown to include an identifier 282 that is treated as a string, and a tag name 284 such that the identifier 282 is unique within the tag name 284.
  • the client object 280 may be a setting client object, representative of a setting element within the project community 10 and containing information concerning the setting element.
  • a client setting object 280 will include a process component 286 associated with a process element 32, a subject component 288 associated with a subject element 24, a references component 290 associated with a references element 28 and a tool element 292.
  • a client setting object 280 may also include viewer components 294 that each include a name 296, a class 298 and a version number 300 for the class 298. It should be noted that when one aspect of a client setting object 280 is to be displayed, the client module 102 will generate a client request to the application server 104 to provide the class for appropriate viewers for inclusion within the setting client object 280, unless a default viewer component 294 is provided.
  • the method 250 commences at step 252 at which the client module 102, in response to a client request, receives the XML packet propagated from the application server 104 at step 238 shown in Figure 8.
  • the unmarshal logic 138 within the client module 102 proceeds to unmarshal the received XML packet and to convert the packet into an internal representation.
  • the XML packet may contain prototype information, originated within the response pattern 240, that specifies the internal representation.
  • the inte ⁇ reter 135 performs a walk of the internal representation (that is in the form of a tree structure) in a "depth first" manner looking for XML tag names.
  • the inte ⁇ reter 135 inte ⁇ rets tag names as dispatching into code that in turn can parse more of the internal structure.
  • entering a setting is meant that the user, acting with regard to the user Identity or having assumed a community Role, is given access to and selects a particular setting as the current context in which the user works.
  • entering a setting denotes a context switch for the user.
  • the method 250 proceeds to step 262, where information concerning the setting entered is extracted from the internal structure.
  • a tree walk of the internal structure is again performed for the pu ⁇ ose of examining context. Tools that allow the user to interact with the setting application within the context may be loaded.
  • classes that may be required by viewers 294 of a client object 280 are downloaded from the application server 104 as required.
  • step 266 the method 250 proceeds to step 268, where the context update or setup, as the case may be, is performed and a graphical presentation presented by the display and user interface logic 134 is updated or setup accordingly.
  • the method 250 then terminates at step 270.
  • METHODOLOGY-CLIENT HANDLES USER EVENT Figure 12 is a flowchart detailing a method 310, according to an exemplary embodiment of the present invention, by which a client module 102 may process and respond to the occurrence of a user event.
  • user events may include a request from the user for interaction with the project community 10, for example by importing or exporting data from the project community 10.
  • the request for user interaction may be indicated by the user by the supply of information into a specific text field, by the selection of an action button, or by the selection of a tool presented by the display and user interaction logic 134 via a graphical user interface.
  • the method 310 commences at step 312 with the occurrence of a user action event.
  • the display and user interaction logic 134 determines, at step 314, what information is to be propagated from the client module 102 to the application server 104 responsive to the user action.
  • a graphical user interface element (not shown) associated with the user action is utilized by the client module 102 to fill parameters of an appropriate internal structure.
  • the graphical user interface element will have been specified to pass certain information to the application server 104 responsive to the user action.
  • the graphical user interface element will furthermore have a record of which code within the application server 104 requires notification of the user action, as this information is communicated to the graphical user element from the application server 104. This information is also included within the appropriate internal structure by the client module 102.
  • the marshal logic 136 converts the internal structure into an XML packet that is then propagated to the application server at step 318 from the HTTP client 142 of the communications interface 140.
  • the method 310 then terminates at step 320.
  • the HTTP protocol prevents the application server 104 from advising client modules 102 regarding changes pertaining to a project community 10 hosted on the relevant application server 104. For this reason, the polling logic 146 of each client module 102 periodically polls the application server 104 for the pu ⁇ ose of learning about such changes.
  • each client module 102 and the application server 104 store respective tables of numbers.
  • the table of numbers maintained by the application server 104 is termed an "element change table".
  • the element change table includes a series of object numbers, each associated with an application object (e.g., project element), that are incremented every time the associated application object changes.
  • the table of numbers stored by each client module 102 is termed a "table of client numbers" and corresponds to the element change table that was extant on the application server 104 at the time the relevant client module 102 last polled the application server 104.
  • a change in the state of any of the application objects that should be reflected by the client module 102 may be identified.
  • FIG. 13 is a flowchart describing a method 330, according to an exemplary embodiment of the present invention, by which a client module 102 may poll an application server 104 for the pu ⁇ ose of identifying changes pertaining to a project community 10.
  • the method 330 commences at step 332, with the client module 102 propagating the table of client numbers (in the form of a vector of client numbers) representing the current states of client objects 280 (e.g., setting client objects), to the application server 104. More specifically, a client number may be indicative of the state of a setting client object, presence (i.e., who is within the setting), and monitors, (to be described in further detail below) that are active with respect to the relevant setting client object.
  • the application server 104 examines the received table of client numbers to identify changes that have occurred within the project community 10 since the last client update. To this end, the application server 104 compares the received table of client numbers to the element change table that contains a record of any objects (e.g., subject or reference project elements) hosted on the application server 104 that have changed and that have dependencies.
  • the element change table that contains a record of any objects (e.g., subject or reference project elements) hosted on the application server 104 that have changed and that have dependencies.
  • step 346 METHODOLOGY- APPLICATION SERVER REQUESTS AN EXTERNAL
  • Figure 14 is a flowchart describing a method 350, according to an exemplary embodiment of the present invention, by which the application server 104 may export data to the external tool application 116 via the tool bridge 114.
  • the method 350 commences at step 352 with the occurrence of a user action, via a graphical user interface provided by the display and user interaction logic 134.
  • the user action is of the type that requires application server 104 interaction with an external tool application 116, examples of which are described above with reference to Figure 4. Accordingly, the application server 104 generates an "external tool request". For the pu ⁇ oses of illustration, it shall be assumed that the user action required the generation of a report by a word processor application 118.
  • the application server 104 initiates a call to the toolbridge 114, for example to initiate generation of the report.
  • This call is not implemented using the HTTP protocol, and specifies which external tool application 116 is to be utilized and a response pattern to be utilized by the specified tool application 116.
  • the toolbridge 114 queries the application server 104, using the HTTP protocol, for data that is required to execute the tool request. Depending on the tool request, the toolbridge 114 may issue a series of queries to the application server 104.
  • the application server 104 provides responses, including relevant data, to the toolbridge 114.
  • the toolbridge 114 processes the received responses and translates the responses into a format suitable for the specified tool application 116 (e.g., into a format suitable for Microsoft Word).
  • the toolbridge 114 invokes (which may or may not comprise launching) the specified tool application 116, and provides the tool application 116 with the data received from the application server 104.
  • the toolbridge 114 thereafter stores the resulting work product (e.g., the generated Microsoft Word document).
  • the toolbridge 114 sends information concerning the storage location of the work product to the application server 104. This communication is made utilizing the HTTP protocol.
  • the method 350 then terminates at step 366. While the exporting of data from the application server 104 to a tool application 116 has been described above, the toolbridge 114 may also be utilized for the importing of data from an external tool application 116 to the application server 104 for the pu ⁇ ose of making such data available to a project community 10. Specifically, the application server 104 requests the toolbridge 114 provide a document for the pu ⁇ ose of extracting embedded data from the relevant document.
  • the toolbridge 114 may furthermore be utilized by a user to "command" or utilize a tool application 116 via a client module 102 and the application server 104. Specifically, a user may launch a tool application 116 to save a resulting work product, and send the work product, or reference about the work product, to the project community 10.
  • COMPUTER SYSTEM Figure 15 shows a diagrammatic representation of a machine in the exemplary form of a computer system 400 within which a set of instructions, for causing the machine to perform any one of the methodologies discussed above, may be executed.
  • the computer system 400 includes a processor 402, a main memory 404 and a static memory 405, which communicate with each other via a bus 406.
  • the computer system 400 is further shown to include a video display unit 408 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)).
  • LCD liquid crystal display
  • CRT cathode ray tube
  • the computer system 400 also includes an alpha-numeric input device 410 (e.g., a keyboard), a cursor control device 412 (e.g., a mouse), a disk drive unit 414, a signal generation device 416 (e.g., a speaker) and a network interface device 418.
  • the disk drive unit 414 includes a computer-readable medium 415 on which is stored a set of instructions (i.e., software) 420 embodying any one, or all, of the methodologies described above.
  • the software 420 is also shown to reside, completely or at least partially, within the main memory 403 and /or within the processor 402. The software 420 may further be transmitted or received via the network interface device 418.
  • machine-readable medium shall be taken to include any medium which is capable of storing or encoding a sequence of instructions for execution by the machine and that cause the machine to perform any one of the methodologies of the present invention.
  • the term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic disks, and carrier wave signals.
  • the first form presented is the static presentation format for an instantiated project community.
  • Each value in the form names a project community element which is subsequently defined in this document.
  • Project_Model is that it is a Model; the Model definition is taken from the description of the Project_Modeling_Community. It represents the information needed to form a project community based on a project model. All the settings of the Project_Modeling_Community are required in order to construct this project element, namely the settings named Modeling, Instantiations, and Improvement.
  • Project_Model is the most general description of the way in which all graphic projects are carried out. However, this description can be further refined, either for particular kinds of graphic projects, such as creating a magazine, a brochure, or a user interface for a computer application. A list of such refinements is maintained in the dictionary called Project_Descriptions. Only one Decision_Framework is needed for all these models since decision expectations or needs can be differentiated by choosing different decision topics.
  • Magazine_Model The difference shown here for Magazine_Model is the Pu ⁇ ose, fully described as: To support a community of designers, writers, and project leaders to create Font & Function Number ⁇ Number: 'magazine number'> for Adobe. For Magazine_Model, all the project elements defined for Project_Model are copied with additions as presented in Elements of Magazine_Model.
  • Modelers special setting role given to Modeler
  • the setting subjects listed here are defined in the PML document. They are the settings needed to construct each aspect of the Model.
  • the Project_Model and Project_Decisions are the outcomes of this setting.
  • the decision framework does not as yet contain any items.
  • This role works as an advocate for the client, making sure the company services the client's interests, while also trying to figure out what other types of work the company could do for the client in the future.
  • This role is in charge of the pre- and post- project relationship with the client.
  • Magazine_Model is a refinement of Project_Model.
  • Project_Model represents a graphic design project in which there is one topic (or one design problem), in a Magazine there are several.
  • the Magazine_Model is reused in a series of related project communities. The first being the first time a magazine is designed, the basics of masthead, grid, and number of pages, have to be determined. Subsequent projects reuse these basics but also use the previous project schedule and budget as a starting point for planning.
  • Magazine_Community will include all of the listed templates, including process definition for settings. The last two templates are defined here.
  • Project_Model From Project_Model, include in Magazine_Community all of the named project elements: Phase, Signoff, Schedule, Assign_Resources (a setting), Resource_Allocation (a process), Manage_Budget (a setting), Budgeting_Process (a process), Plan_Project (a setting), Scheduling_Process (a process), andTask (resource of Plan_Project).
  • the Magazine_Community differs from the general project community for graphics projects in several ways. Instead of managing a single signoff, we create instances of TopicjSignoff for each DesignJTopic. Instead of having a single set of concept/refinement/production settings for the whole community, there is a repetition of these per DesignJTopic created. Hence these settings are represented in this community as Templates and instances created as part of the DesignJDevelopment setting whenever a new DesignJTopic is created. See Resources for the definitions.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

L'invention concerne un procédé de création d'une communauté virtuelle (10) fonctionnant sur la base de modèles et possédant au moins un objectif (12). Le procédé consiste a faire une estimation des formes de référence qui constituent des descriptions partielles des éléments respectifs de la communauté virtuelle. On commence à collecter des formes de référence pour créer les éléments de la communauté virtuelle. Les éléments de la communauté virtuelle décrivent les constructions relatives à la structure et au comportement d'un modèle (22) selon lequel est structurée la communauté virtuelle. On peut effectuer le lancement de la collecte des formes de référence en utilisant une structure cadre de décision (34) construite sur la base des entrées dérivées des participants (26) à l'intérieur d'une communauté virtuelle antérieure qui a été lancée au moyen d'un ensemble de formes de référence collectées. Dans un autre mode de réalisation, le lancement de la collecte des formes de référence se fait au moyen d'une structure cadre de décision (34) qui utilise des connaissances (42) spécifiques aux domaines.
PCT/US1999/025948 1998-11-03 1999-11-03 Systeme informatique de gestion des connaissances relatives a un projet WO2000026822A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU37886/00A AU3788600A (en) 1998-11-03 1999-11-03 A computer-implemented project knowledge management facility

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10703698P 1998-11-03 1998-11-03
US60/107,036 1998-11-03
US11870999P 1999-02-05 1999-02-05
US60/118,709 1999-02-05

Publications (2)

Publication Number Publication Date
WO2000026822A1 true WO2000026822A1 (fr) 2000-05-11
WO2000026822A9 WO2000026822A9 (fr) 2000-09-21

Family

ID=26804317

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/025948 WO2000026822A1 (fr) 1998-11-03 1999-11-03 Systeme informatique de gestion des connaissances relatives a un projet

Country Status (2)

Country Link
AU (1) AU3788600A (fr)
WO (1) WO2000026822A1 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004088537A2 (fr) * 2003-04-03 2004-10-14 International Business Machines Corporation Systeme et procede de collationnement d'informations
EP1508867A2 (fr) * 2003-08-22 2005-02-23 Peter Dilger Procédé de génération d'au moins un modéle de référence de projet, procédé de génération d'information de configuration structurée avec un tel modéle de référence de projet et appareil pour la réalisation, la gestion et l'organisation de tels procédés
WO2014133542A3 (fr) * 2013-03-01 2015-06-18 Empire Technology Development Llc Représentation idempotente de nombres en langages extensibles
US9395955B2 (en) 2013-03-18 2016-07-19 Jayarama Marks Programming system and method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043891A (en) * 1985-08-16 1991-08-27 Wang Laboratories, Inc. Document generation apparatus and methods
US5537526A (en) * 1993-11-12 1996-07-16 Taugent, Inc. Method and apparatus for processing a display document utilizing a system level document framework
US5706452A (en) * 1995-12-06 1998-01-06 Ivanov; Vladimir I. Method and apparatus for structuring and managing the participatory evaluation of documents by a plurality of reviewers
US5815415A (en) * 1996-01-19 1998-09-29 Bentley Systems, Incorporated Computer system for portable persistent modeling
US5836011A (en) * 1995-01-20 1998-11-10 International Business Machines Corporation Implementation of teams and roles within a people oriented work environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043891A (en) * 1985-08-16 1991-08-27 Wang Laboratories, Inc. Document generation apparatus and methods
US5537526A (en) * 1993-11-12 1996-07-16 Taugent, Inc. Method and apparatus for processing a display document utilizing a system level document framework
US5836011A (en) * 1995-01-20 1998-11-10 International Business Machines Corporation Implementation of teams and roles within a people oriented work environment
US5706452A (en) * 1995-12-06 1998-01-06 Ivanov; Vladimir I. Method and apparatus for structuring and managing the participatory evaluation of documents by a plurality of reviewers
US5815415A (en) * 1996-01-19 1998-09-29 Bentley Systems, Incorporated Computer system for portable persistent modeling

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004088537A2 (fr) * 2003-04-03 2004-10-14 International Business Machines Corporation Systeme et procede de collationnement d'informations
WO2004088537A3 (fr) * 2003-04-03 2005-05-12 Ibm Systeme et procede de collationnement d'informations
EP1508867A2 (fr) * 2003-08-22 2005-02-23 Peter Dilger Procédé de génération d'au moins un modéle de référence de projet, procédé de génération d'information de configuration structurée avec un tel modéle de référence de projet et appareil pour la réalisation, la gestion et l'organisation de tels procédés
EP1508867A3 (fr) * 2003-08-22 2005-05-04 Peter Dilger Procédé de génération d'au moins un modéle de référence de projet, procédé de génération d'information de configuration structurée avec un tel modéle de référence de projet et appareil pour la réalisation, la gestion et l'organisation de tels procédés
WO2014133542A3 (fr) * 2013-03-01 2015-06-18 Empire Technology Development Llc Représentation idempotente de nombres en langages extensibles
US9417842B2 (en) 2013-03-01 2016-08-16 Empire Technology Development Llc Idempotent representation of numbers in extensible languages
US9395955B2 (en) 2013-03-18 2016-07-19 Jayarama Marks Programming system and method

Also Published As

Publication number Publication date
AU3788600A (en) 2000-05-22
WO2000026822A9 (fr) 2000-09-21

Similar Documents

Publication Publication Date Title
US10304021B2 (en) Metadata-configurable systems and methods for network services
US8302096B2 (en) Methods and systems to perform individual tasks as a composite task
US9070104B2 (en) Cross-context task management
US8543527B2 (en) Method and system for implementing definable actions
US7870512B2 (en) User interface (UI) prototype using UI taxonomy
US20060195494A1 (en) Compiler, system and method for defining, assigning, executing and monitoring processes and tasks in process management applications
US20130117060A1 (en) System for Collaboration and Meeting Management
US20060241997A1 (en) System and method for integrating workflow processes with a project management system
Moore Performance Measures for Knowledge
Glykas Performance measurement in business process, workflow and human resource management
Nikoo et al. A survey on service composition languages
Cozzi et al. Activity management as a web service
WO2000026822A1 (fr) Systeme informatique de gestion des connaissances relatives a un projet
Koster An evaluation method for Business Process Management products
Masuda et al. Direction of digital it and enterprise architecture
Acharya Developing Scheduling System (Back-end)
Vysotska et al. Decision-Making Methods and Models for Intelligent Business Analytics Systems in Online Tourism.
Schuster et al. The mosaic model and architecture for service-oriented enterprise document mashups
Simmons A system for capacity and release planning in a high security Swedish agency
Espinosa Intelligent agents applied to software management
Fitzmaurice Form-centered workflow automation using an agent framework
Ko et al. Design of collaborative e-service systems
Erler Topics in Software Engineering
Maluf et al. Project management tool
Johnson Integrating Synchronous Collaborative Applications with Product Lifecycle Management Workflows

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: C2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

COP Corrected version of pamphlet

Free format text: PAGES 137-140, CLAIMS, REPLACED BY NEW PAGES 137-140; PAGES 1/15-15/15, DRAWINGS, REPLACED BY NEW PAGES 1/15-15/15; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase