Research

Guarded Attribute Grammars (GAG) is a model of cooperative work based on task resolution. A task is solved by dividing it into smaller tasks, solving these sub tasks and combining their results to produce the required output. The decomposition of tasks into smaller tasks is modeled as rewriting rules using the productions of an attribute grammar. The inherited and synthesized attributes of the grammar respectively model the input and output parameters of tasks, while the semantics rules are used to enforce data-flow between a task and its sub tasks, and between sibling tasks. Each task is executed as a co-routine that produces eagerly its output while consuming lazily its input: a piece of information is accessed from its input only when needed and a piece of information is produced in its output as soon as it can be computed. Constraints on the input parameters of tasks are used to restrict the applicability of a rule in a given configuration. These constraints are guards that are evaluated against the effective input values, an operation that filters applicable rules for each pending tasks. Enacting a GAG model is done lazily, that is, a rule is enabled if and when its guard becomes satisfied.

In his PhD thesis in collaboration with CESPA
(Centre d’épidémiologie et de santé publique des armées, Marseille) Robert Nsaibirni used the GAG model for a health surveillance system with distributed. Rodrigue Djeumen and Willy Kengne use it respectively for a system of urban crowdsourcing and for the choreography of services in the context of their ongoing PhD theses.

The current prototype of GAGs is written in the context of Active Workspaces.The Active Workspaces based on Guarded Attribute Grammars (AW/GAG) is a declarative model for the specification of distributed collaborative user-centered and data-driven process. The idea behind the model is to have independent user-work spaces communicating asynchronously by exchanges of services. Each user workspace (described by a specific GAG) contains the specification of the services the user offers, their enacted instances, and references to services offered by other users. We have developed a domain specific language, embedded in Haskell, (AW/GAG-DSL) that includes a GAG execution engine, a work space graphical interface and a middleware in charge of communication between workspaces, user administration and task assignment.In AW/GAG-DSL the GAG execution engine is nested with the graphical interface (through callback functions) which does not facilitate its use in other contexts. In the project we aim to develop various tools (as for example workflows for crowd, wikis, dynamic forms, deliberative platforms) which may use different assumptions (eg decentralized versus distributed, offline versus online) and different technologies but share the GAG model as their central concept.
We therefore wish to develop an independent (if not autonomously executable) DSL for the GAG engine in the form of a Haskell library. This DSL will itself import two DSLs: one for writing guards and the other for semantic rules, that will contain some basic functions and may import specific libraries depending on the application targeted. Any specific application will use this engine (through its API) with the needed libraries for writing guards and semantic rules and it will implement, as appropriate, communication between actors, session management, database management, graphical interface… Such an application can be developed in a language other than Haskell if appropriate mechanisms are available for synchronization with the GAG engine.

Our objective for the first year will focus on the following results

  • A first stable version of the (higher-order version of the) GAG engine with its Application Programming Interface and a corresponding documentation.
  •  A study of some usage scenarios with the adapted technologies. For collaborative work in distributed mode: Active workspaces; in client-server mode: crowdsourcing, wikis, deliberation platform.

During the following two years we will develop some of these applications in connection with the project objectives (gathering of information, workflow in the crowd, deliberation, and collaborative construction of expertise).

Comments are closed.