Eric Badouel - Academia.edu (original) (raw)
Papers by Eric Badouel
International audienceWe address the problem of component reuse in the context of service-oriente... more International audienceWe address the problem of component reuse in the context of service-oriented programming and more specifically for the design of user-centric distributed collaborative systems modelled by Guarded Attribute Grammars. Following the contract-based specification of components we devel-opp an approach to an interface theory for the components of a collaborative system in three stages: we define a composition of interfaces that specifies how the component behaves with respect to its environement, we introduce an implementation order on interfaces and finally a residual operation on interfaces characterizing the systems that, when composed with a given component, can complement it in order to realize a global specification.Nous abordons le problème de la réutilisation des composants dans le contexte de la programmation orientée services et plus spécifiquement pour la conception de systèmes collaboratifs distribués centrés sur l'utilisateur modélisés par des gramma...
INRIA, 2007
Une nouvelle implémentation de l'évaluation des attributs Résumé : Nous introduisons une nouvelle... more Une nouvelle implémentation de l'évaluation des attributs Résumé : Nous introduisons une nouvelle technique pour l'évaluation des attributs d'une grammaire attribuée. Notre algorithme consisteàévaluer un attribut par réductioǹ a une forme normale en utilisant un automate d'arbres opérant sur une représentation arborescente des zippers donnés sous la forme d'une structure de donnée cyclique. Un zipper est une structure de donnée, introduite par Gérard Huet, consistantà représenter un arbre avec son contexte, c'est-à-dire un arbre avec un point focal pointant sur un de ses sous-arbres. Nous mentionnons quelques applications potentielles de cette représentation des grammaires attribuées comme transformations de zippers.
Given a finite state system with partial observers and for each observer, a regular set of trajec... more Given a finite state system with partial observers and for each observer, a regular set of trajectories which we call a secret, we consider the question whether the observers can ever find out that a trajectory of the system belongs to some secret. We search for a regular control on the system, enforcing the specified secrets on the observers, even though they have full knowledge of this control. We show that an optimal control always exists although it is generally not regular. We state sufficient conditions for computing a finite and optimal control of the system enforcing the concurrent secret as desired.
Evaluation of attributes w.r.t. an attribute grammar can be obtained by inductively computing a f... more Evaluation of attributes w.r.t. an attribute grammar can be obtained by inductively computing a function expressing the dependencies of the synthesized attributes on inherited attributes. This higher-order functional approach to attribute evaluation can straightforwardly be implemented in a higher-order lazy functional language like Haskell. The resulting evaluation functions are, however, not easily amenable to optimization when we want to compose two attribute grammars. We present an alternative first-order functional interpretation of attribute grammars where the input tree is replaced by an extended cyclic tree each node of which is aware of its context viewed as an additional child tree. These cyclic representations of zippers (trees with their context) are natural generalizations of doubly-linked lists to trees over an arbitrary signature. Then we show that, up to that representation, descriptional composition of attribute grammars reduces to the composition of tree transducers.
Nous abordons le probleme de la reutilisation des composants dans le contexte de la pro-grammatio... more Nous abordons le probleme de la reutilisation des composants dans le contexte de la pro-grammation orientee services et plus specifiquement pour la conception de systemes collaboratifs distribues centres sur l'utilisateur modelises par des grammaires attribuees gardees. En suivant la demarche de la specification contractuelle des composants, nous developpons une approche de la theorie des interfaces pour les roles d'un systeme collaboratif en trois etapes: on definit une composition d'interfaces qui specifie comment le composant se comporte par rapport a son environnement, on introduit un ordre d'implementation sur les interfaces et enfin une operation de residus sur les interfaces qui caracterise les systemes qui, lorsqu'ils sont composes avec un composant donne, peuvent le completer afin de realiser une specification du systeme global.
Net synthesis can be understood as an algorithmic procedure aimed at constructing a Petri net str... more Net synthesis can be understood as an algorithmic procedure aimed at constructing a Petri net structure from a specification of its intended or desired behaviour, given typically in the form of a transition system or a formal language. The procedure has to decide whether such a specification can be realised and, if the answer is positive, deliver as efficiently as possible a Petri net with the specified behaviour. Such a Petri net is then correct-by-construction, making net synthesis an attractive alternative to the design-and-verify approach to building concurrent and distributed system. If, however, the specification cannot be realised in full, the synthesis procedure is expected to deliver a Petri net approximating the specified behaviour in an optimal way. In this talk we survey the techniques of Petri net synthesis from labelled transitions or from languages and discuss some of their applications to process mining and the supervisory control of discrete event systems.
We address the problem of component reuse in the context of service-oriented programming and more... more We address the problem of component reuse in the context of service-oriented programming and more specifically for the design of user-centric distributed collaborative systems modelled by Guarded Attribute Grammars. Following the contract-based specification of components we devel-opp an approach to an interface theory for the components of a collaborative system in three stages: we define a composition of interfaces that specifies how the component behaves with respect to its environement, we introduce an implementation order on interfaces and finally a residual operation on interfaces characterizing the systems that, when composed with a given component, can complement it in order to realize a global specification.
Revue Africaine de la Recherche en Informatique et Mathématiques Appliquées, 2020
International audience We address the problem of component reuse in the context of service-orient... more International audience We address the problem of component reuse in the context of service-oriented programming and more specifically for the design of user-centric distributed collaborative systems modelled by Guarded Attribute Grammars. Following the contract-based specification of components we devel-opp an approach to an interface theory for the components of a collaborative system in three stages: we define a composition of interfaces that specifies how the component behaves with respect to its environement, we introduce an implementation order on interfaces and finally a residual operation on interfaces characterizing the systems that, when composed with a given component, can complement it in order to realize a global specification. Nous abordons le problème de la réutilisation des composants dans le contexte de la programmation orientée services et plus spécifiquement pour la conception de systèmes collaboratifs distribués centrés sur l'utilisateur modélisés par des gram...
Lecture Notes in Computer Science, 2018
Language oriented programming is an approach to software composition based on domain specific lan... more Language oriented programming is an approach to software composition based on domain specific languages (DSL) dedicated to specific aspects of an application domain. In order to combine such languages we embed them into a host language (namely Haskell, a strongly typed higher-order lazy functional language). A DSL is then given by an algebraic type, whose operators are the constructors of abstract syntax trees. Such a multi-sorted signature is associated to a polynomial functor. An algebra for this functor tells us how to interpret the programs. Using Bekić's Theorem we define a modular decomposition of algebras that leads to a class of parametric multi-sorted signatures, associated with regular functors, allowing for the modular design of DSLs.
Fundamenta Informaticae, 2011
This paper presents the modal interface theory, a unification of interface automata and modal spe... more This paper presents the modal interface theory, a unification of interface automata and modal specifications, two radically dissimilar models for interface theories. Interface automata is a game-based model, which allows the designer to express assumptions on the environment and which uses an optimistic view of composition: two components can be composed if there is an environment where they can work together. Modal specifications are a language theoretic account of a fragment of the modal mu-calculus logic with a rich composition algebra which meets certain methodological requirements but which does not allow the environment and the component to be distinguished. The present paper contributes a more thorough unification of the two theories by correcting a first attempt in this direction by Larsen et al., drawing a complete picture of the modal interface algebra, and pushing the comparison between interface automata, modal automata and modal interfaces even further. The work reported here is based on earlier work presented in [41] and [42].
Fundamenta Informaticae, 2017
Process discovery aims at constructing a model from a set of observations given by execution trac... more Process discovery aims at constructing a model from a set of observations given by execution traces (a log). Petri nets are a preferred target model in that they produce a compact description of the system by exhibiting its concurrency. This article presents a process discovery algorithm using Petri net synthesis, based on the notion of region introduced by A. Ehrenfeucht and G. Rozenberg and using techniques from linear algebra. The algorithm proceeds in three successive phases which make it possible to find a compromise between the ability to infer behaviours of the system from the set of observations while ensuring a parsimonious model, in terms of fitness, precision and simplicity. All used algorithms are incremental which means that one can modify the produced model when new observations are reported without reconstructing the model from scratch.
Texts in Theoretical Computer Science. An EATCS Series, 2015
In this chapter, \( A = \left( {S,\,E,\,\Delta,\,s_0 } \right) \) is a finite initialized transit... more In this chapter, \( A = \left( {S,\,E,\,\Delta,\,s_0 } \right) \) is a finite initialized transition system, reachable and reduced, with set of events \( E = \left\{ {e_1, \ldots e_n } \right\} \). Since the transition relation \( \Delta \subseteq S \times E \times S \) is deterministic it can equivalently be given as a partial map \( \delta :S \times E \to S \) with \( \delta \left( {s,\,e} \right) = s^{\prime} \Leftrightarrow \left( {s,\,e,\,s^{\prime}} \right) \in \Delta \).
Texts in Theoretical Computer Science. An EATCS Series, 2015
In this chapter, we show that P/T-net synthesis may serve not only to obtain compact representati... more In this chapter, we show that P/T-net synthesis may serve not only to obtain compact representations of initialized transition systems—by making explicit the concurrency of some events—but also to obtain distributed implementations thereof.
Texts in Theoretical Computer Science. An EATCS Series, 2015
This chapter aims at giving, for the particular class of elementary net systems, a first account ... more This chapter aims at giving, for the particular class of elementary net systems, a first account of the principles of region-based net synthesis. The next section introduces elementary nets in an informal way. Section 1.2 recalls the corresponding formal definitions needed in this book. Section 1.3 presents the construction of the saturated net version of a transition system, as proposed by Ehrenfeucht and Rozenberg, while Section 1.4 recalls their characterization of net realizable transition systems by the regional axioms. Sections 1.5 and 1.6 focus on admissible sets of regions, namely sets of regions which are sufficient to solve the synthesis problem. The interest is to reduce significantly the search space for admissible sets of regions, which has a direct impact on the efficiency of net synthesis algorithms. Section 1.7 explores the relation between regional partitions of a transition system and sequential components of elementary net systems. We finally explain in Section 1.8 the context of Labelled Partial 2-Structures in which regions were discovered and first applied to elementary net synthesis. The chapter is completed by a series of exercises.
We consider two generalizations of the duality between transition systems and Petri nets. In the ... more We consider two generalizations of the duality between transition systems and Petri nets. In the first, transitions are replaced by paths, that is partial functions from a fixed set Delta to states. This allows to model continuous and/or hybrid systems when Delta represents durations.
Lecture Notes in Computer Science, 2003
We show how the firing rule of Petri nets relies on a residuation operation for the commutative m... more We show how the firing rule of Petri nets relies on a residuation operation for the commutative monoid of natural numbers. On that basis we introduce closed monoidal structures which are residuated monoids. We identify a class of closed monoidal structures (associated with a family of idempotent group dioids) for which one can mimic the token game of Petri nets to define the behaviour of these generalized Petri nets whose flow relations and place contents are valued in the closed monoidal structure.
2009 Ninth International Conference on Application of Concurrency to System Design, 2009
In this paper we revisit the fundamentals of interface theories. Methodological considerations ca... more In this paper we revisit the fundamentals of interface theories. Methodological considerations call for supporting "aspects" and "assume/guarantee" reasoning. From these considerations, we show that, in addition to the now classical refinement and substitutability properties of interfaces, two additional operations are needed, namely: conjunction and residuation (or quotient). We draw the attention to the difficulty in handling interfaces having different alphabetswhich calls for alphabet equalization. We show that alphabet equalization must be performed differently for the different operations. Then, we show that Modal Interfaces, as adapted from the original proposal by Kim Larsen, offer the needed flexibility.
Proceedings of the seventh ACM international conference on Embedded software - EMSOFT '09, 2009
This paper presents a unification of interface automata and modal specifications, two radically d... more This paper presents a unification of interface automata and modal specifications, two radically dissimilar models for interface theories. Interface automata is a game-based model, which allows to make assumptions on the environment and propose an optimistic view for composition : two components can be composed if there is an environment where they can work together. Modal specification is a language theoretic account of a fragment of the modal mu-calculus logic that is more complete but which does not allow to distinguish between the environment and the component. Partial unifications of these two frameworks have been explored recently. A first attempt by Larsen et al. considers modal interfaces, an extension of modal specifications that deals with compatibility issues in the composition operator. However, this composition operator is incorrect. A second attempt by Raclet et al. gives a different perspective, and emphasises on conjunction and residuation of modal specifications, including when interfaces have dissimilar alphabets, but disregards interface compatibility. The present paper contributes a thorougher unification of the two theories by correcting the modal interface composition operator presented in the paper by Larsen et al., drawing a complete picture of the modal interface algebra, and pushing even further the comparison between interface automata, modal automata and modal interfaces.
International audienceWe address the problem of component reuse in the context of service-oriente... more International audienceWe address the problem of component reuse in the context of service-oriented programming and more specifically for the design of user-centric distributed collaborative systems modelled by Guarded Attribute Grammars. Following the contract-based specification of components we devel-opp an approach to an interface theory for the components of a collaborative system in three stages: we define a composition of interfaces that specifies how the component behaves with respect to its environement, we introduce an implementation order on interfaces and finally a residual operation on interfaces characterizing the systems that, when composed with a given component, can complement it in order to realize a global specification.Nous abordons le problème de la réutilisation des composants dans le contexte de la programmation orientée services et plus spécifiquement pour la conception de systèmes collaboratifs distribués centrés sur l'utilisateur modélisés par des gramma...
INRIA, 2007
Une nouvelle implémentation de l'évaluation des attributs Résumé : Nous introduisons une nouvelle... more Une nouvelle implémentation de l'évaluation des attributs Résumé : Nous introduisons une nouvelle technique pour l'évaluation des attributs d'une grammaire attribuée. Notre algorithme consisteàévaluer un attribut par réductioǹ a une forme normale en utilisant un automate d'arbres opérant sur une représentation arborescente des zippers donnés sous la forme d'une structure de donnée cyclique. Un zipper est une structure de donnée, introduite par Gérard Huet, consistantà représenter un arbre avec son contexte, c'est-à-dire un arbre avec un point focal pointant sur un de ses sous-arbres. Nous mentionnons quelques applications potentielles de cette représentation des grammaires attribuées comme transformations de zippers.
Given a finite state system with partial observers and for each observer, a regular set of trajec... more Given a finite state system with partial observers and for each observer, a regular set of trajectories which we call a secret, we consider the question whether the observers can ever find out that a trajectory of the system belongs to some secret. We search for a regular control on the system, enforcing the specified secrets on the observers, even though they have full knowledge of this control. We show that an optimal control always exists although it is generally not regular. We state sufficient conditions for computing a finite and optimal control of the system enforcing the concurrent secret as desired.
Evaluation of attributes w.r.t. an attribute grammar can be obtained by inductively computing a f... more Evaluation of attributes w.r.t. an attribute grammar can be obtained by inductively computing a function expressing the dependencies of the synthesized attributes on inherited attributes. This higher-order functional approach to attribute evaluation can straightforwardly be implemented in a higher-order lazy functional language like Haskell. The resulting evaluation functions are, however, not easily amenable to optimization when we want to compose two attribute grammars. We present an alternative first-order functional interpretation of attribute grammars where the input tree is replaced by an extended cyclic tree each node of which is aware of its context viewed as an additional child tree. These cyclic representations of zippers (trees with their context) are natural generalizations of doubly-linked lists to trees over an arbitrary signature. Then we show that, up to that representation, descriptional composition of attribute grammars reduces to the composition of tree transducers.
Nous abordons le probleme de la reutilisation des composants dans le contexte de la pro-grammatio... more Nous abordons le probleme de la reutilisation des composants dans le contexte de la pro-grammation orientee services et plus specifiquement pour la conception de systemes collaboratifs distribues centres sur l'utilisateur modelises par des grammaires attribuees gardees. En suivant la demarche de la specification contractuelle des composants, nous developpons une approche de la theorie des interfaces pour les roles d'un systeme collaboratif en trois etapes: on definit une composition d'interfaces qui specifie comment le composant se comporte par rapport a son environnement, on introduit un ordre d'implementation sur les interfaces et enfin une operation de residus sur les interfaces qui caracterise les systemes qui, lorsqu'ils sont composes avec un composant donne, peuvent le completer afin de realiser une specification du systeme global.
Net synthesis can be understood as an algorithmic procedure aimed at constructing a Petri net str... more Net synthesis can be understood as an algorithmic procedure aimed at constructing a Petri net structure from a specification of its intended or desired behaviour, given typically in the form of a transition system or a formal language. The procedure has to decide whether such a specification can be realised and, if the answer is positive, deliver as efficiently as possible a Petri net with the specified behaviour. Such a Petri net is then correct-by-construction, making net synthesis an attractive alternative to the design-and-verify approach to building concurrent and distributed system. If, however, the specification cannot be realised in full, the synthesis procedure is expected to deliver a Petri net approximating the specified behaviour in an optimal way. In this talk we survey the techniques of Petri net synthesis from labelled transitions or from languages and discuss some of their applications to process mining and the supervisory control of discrete event systems.
We address the problem of component reuse in the context of service-oriented programming and more... more We address the problem of component reuse in the context of service-oriented programming and more specifically for the design of user-centric distributed collaborative systems modelled by Guarded Attribute Grammars. Following the contract-based specification of components we devel-opp an approach to an interface theory for the components of a collaborative system in three stages: we define a composition of interfaces that specifies how the component behaves with respect to its environement, we introduce an implementation order on interfaces and finally a residual operation on interfaces characterizing the systems that, when composed with a given component, can complement it in order to realize a global specification.
Revue Africaine de la Recherche en Informatique et Mathématiques Appliquées, 2020
International audience We address the problem of component reuse in the context of service-orient... more International audience We address the problem of component reuse in the context of service-oriented programming and more specifically for the design of user-centric distributed collaborative systems modelled by Guarded Attribute Grammars. Following the contract-based specification of components we devel-opp an approach to an interface theory for the components of a collaborative system in three stages: we define a composition of interfaces that specifies how the component behaves with respect to its environement, we introduce an implementation order on interfaces and finally a residual operation on interfaces characterizing the systems that, when composed with a given component, can complement it in order to realize a global specification. Nous abordons le problème de la réutilisation des composants dans le contexte de la programmation orientée services et plus spécifiquement pour la conception de systèmes collaboratifs distribués centrés sur l'utilisateur modélisés par des gram...
Lecture Notes in Computer Science, 2018
Language oriented programming is an approach to software composition based on domain specific lan... more Language oriented programming is an approach to software composition based on domain specific languages (DSL) dedicated to specific aspects of an application domain. In order to combine such languages we embed them into a host language (namely Haskell, a strongly typed higher-order lazy functional language). A DSL is then given by an algebraic type, whose operators are the constructors of abstract syntax trees. Such a multi-sorted signature is associated to a polynomial functor. An algebra for this functor tells us how to interpret the programs. Using Bekić's Theorem we define a modular decomposition of algebras that leads to a class of parametric multi-sorted signatures, associated with regular functors, allowing for the modular design of DSLs.
Fundamenta Informaticae, 2011
This paper presents the modal interface theory, a unification of interface automata and modal spe... more This paper presents the modal interface theory, a unification of interface automata and modal specifications, two radically dissimilar models for interface theories. Interface automata is a game-based model, which allows the designer to express assumptions on the environment and which uses an optimistic view of composition: two components can be composed if there is an environment where they can work together. Modal specifications are a language theoretic account of a fragment of the modal mu-calculus logic with a rich composition algebra which meets certain methodological requirements but which does not allow the environment and the component to be distinguished. The present paper contributes a more thorough unification of the two theories by correcting a first attempt in this direction by Larsen et al., drawing a complete picture of the modal interface algebra, and pushing the comparison between interface automata, modal automata and modal interfaces even further. The work reported here is based on earlier work presented in [41] and [42].
Fundamenta Informaticae, 2017
Process discovery aims at constructing a model from a set of observations given by execution trac... more Process discovery aims at constructing a model from a set of observations given by execution traces (a log). Petri nets are a preferred target model in that they produce a compact description of the system by exhibiting its concurrency. This article presents a process discovery algorithm using Petri net synthesis, based on the notion of region introduced by A. Ehrenfeucht and G. Rozenberg and using techniques from linear algebra. The algorithm proceeds in three successive phases which make it possible to find a compromise between the ability to infer behaviours of the system from the set of observations while ensuring a parsimonious model, in terms of fitness, precision and simplicity. All used algorithms are incremental which means that one can modify the produced model when new observations are reported without reconstructing the model from scratch.
Texts in Theoretical Computer Science. An EATCS Series, 2015
In this chapter, \( A = \left( {S,\,E,\,\Delta,\,s_0 } \right) \) is a finite initialized transit... more In this chapter, \( A = \left( {S,\,E,\,\Delta,\,s_0 } \right) \) is a finite initialized transition system, reachable and reduced, with set of events \( E = \left\{ {e_1, \ldots e_n } \right\} \). Since the transition relation \( \Delta \subseteq S \times E \times S \) is deterministic it can equivalently be given as a partial map \( \delta :S \times E \to S \) with \( \delta \left( {s,\,e} \right) = s^{\prime} \Leftrightarrow \left( {s,\,e,\,s^{\prime}} \right) \in \Delta \).
Texts in Theoretical Computer Science. An EATCS Series, 2015
In this chapter, we show that P/T-net synthesis may serve not only to obtain compact representati... more In this chapter, we show that P/T-net synthesis may serve not only to obtain compact representations of initialized transition systems—by making explicit the concurrency of some events—but also to obtain distributed implementations thereof.
Texts in Theoretical Computer Science. An EATCS Series, 2015
This chapter aims at giving, for the particular class of elementary net systems, a first account ... more This chapter aims at giving, for the particular class of elementary net systems, a first account of the principles of region-based net synthesis. The next section introduces elementary nets in an informal way. Section 1.2 recalls the corresponding formal definitions needed in this book. Section 1.3 presents the construction of the saturated net version of a transition system, as proposed by Ehrenfeucht and Rozenberg, while Section 1.4 recalls their characterization of net realizable transition systems by the regional axioms. Sections 1.5 and 1.6 focus on admissible sets of regions, namely sets of regions which are sufficient to solve the synthesis problem. The interest is to reduce significantly the search space for admissible sets of regions, which has a direct impact on the efficiency of net synthesis algorithms. Section 1.7 explores the relation between regional partitions of a transition system and sequential components of elementary net systems. We finally explain in Section 1.8 the context of Labelled Partial 2-Structures in which regions were discovered and first applied to elementary net synthesis. The chapter is completed by a series of exercises.
We consider two generalizations of the duality between transition systems and Petri nets. In the ... more We consider two generalizations of the duality between transition systems and Petri nets. In the first, transitions are replaced by paths, that is partial functions from a fixed set Delta to states. This allows to model continuous and/or hybrid systems when Delta represents durations.
Lecture Notes in Computer Science, 2003
We show how the firing rule of Petri nets relies on a residuation operation for the commutative m... more We show how the firing rule of Petri nets relies on a residuation operation for the commutative monoid of natural numbers. On that basis we introduce closed monoidal structures which are residuated monoids. We identify a class of closed monoidal structures (associated with a family of idempotent group dioids) for which one can mimic the token game of Petri nets to define the behaviour of these generalized Petri nets whose flow relations and place contents are valued in the closed monoidal structure.
2009 Ninth International Conference on Application of Concurrency to System Design, 2009
In this paper we revisit the fundamentals of interface theories. Methodological considerations ca... more In this paper we revisit the fundamentals of interface theories. Methodological considerations call for supporting "aspects" and "assume/guarantee" reasoning. From these considerations, we show that, in addition to the now classical refinement and substitutability properties of interfaces, two additional operations are needed, namely: conjunction and residuation (or quotient). We draw the attention to the difficulty in handling interfaces having different alphabetswhich calls for alphabet equalization. We show that alphabet equalization must be performed differently for the different operations. Then, we show that Modal Interfaces, as adapted from the original proposal by Kim Larsen, offer the needed flexibility.
Proceedings of the seventh ACM international conference on Embedded software - EMSOFT '09, 2009
This paper presents a unification of interface automata and modal specifications, two radically d... more This paper presents a unification of interface automata and modal specifications, two radically dissimilar models for interface theories. Interface automata is a game-based model, which allows to make assumptions on the environment and propose an optimistic view for composition : two components can be composed if there is an environment where they can work together. Modal specification is a language theoretic account of a fragment of the modal mu-calculus logic that is more complete but which does not allow to distinguish between the environment and the component. Partial unifications of these two frameworks have been explored recently. A first attempt by Larsen et al. considers modal interfaces, an extension of modal specifications that deals with compatibility issues in the composition operator. However, this composition operator is incorrect. A second attempt by Raclet et al. gives a different perspective, and emphasises on conjunction and residuation of modal specifications, including when interfaces have dissimilar alphabets, but disregards interface compatibility. The present paper contributes a thorougher unification of the two theories by correcting the modal interface composition operator presented in the paper by Larsen et al., drawing a complete picture of the modal interface algebra, and pushing even further the comparison between interface automata, modal automata and modal interfaces.