Modeling dialogue with mixed initiative in design space exploration Exploration with a generative formalism must necessarily account for the nature of interaction between humans and the design space explorer. Established accounts of design interaction are made complicated by two propositions in Woodbury and Burrow's Keynote on design space exploration. First, the emphasis on the primacy of the design space as an ordered collection of partial designs~version, alternatives, extensions!. Few studies exist in the design interaction literature on working with multiple threads simultaneously. Second, the need to situate, aid, and amplify human design intentions using computational tools. Although specific research and practice tools on amplification~sketching, generation, variation! have had success, there is a lack of generic, flexible, interoperable, and extensible representation to support amplification. This paper addresses the above, working with design threads and computer-assisted design amplification through a theoretical model of dialogue based on Grice's model of rational conversation. Using the concept of mixed initiative, the paper presents a visual notation for representing dialogue between designer and design space formalism through abstract examples of exploration tasks and dialogue integration. Computational design exploration with description formalisms can be explicitly modeled as a form of movement in a structured space of designs. The design space exploration complex presented by Woodbury and Burrow is one such formalism.. In their Keynote Article, Burrow and Woodbury explain the three premises underlying the metaphor of exploration. All three have important ramifications for the work presented in this paper. The first premise posits that the cognitive limits of humans in representing and searching problem spaces can be addressed by modeling designer action as a form of exploration. The second premise posits that a model of design space exploration can amplify designer action through formal mechanisms. The final premise is that the representation of computational exploration is feasible. The need to account for and understand the nature of designer action, amplification of design activities, and the feasibility of encoding formal and structured spaces remains a significant research problem. Woodbury and Burrow present two propositions, namely, the primacy of design space in this discussion, and secondly, the need to support computational amplification.. In the context of this framework for computing exploration, namely, the need to develop a better understanding of what we mean by design space~as opposed to a search or solution space! and how human designers can communicate, control, and coordinate the formal process of exploring such structured space of designs, this paper will address these issues through a discussion of interaction paradigms for designing, Grice's model of rational conversation and mixed initiative.. The formal machinery of design space exploration is explained in the literature~Burrow Woodbury et al., 1999 Woodbury et al., , 2000 ! and is relatively well understood and exemplified in the work of Woodbury and Burrow. However, the problem of incorporating this formal machinery with designer action for amplifying human intention remains an open one.. Interaction paradigms provide a mechanism for introducing human design intent into computational exploration. Several paradigms for human-computer interaction during design exploration have been proposed in the literaturẽ Kochhar, 1994 !. These are classified as manual, semiautomated, automated, and cooperative, reflective of the degree and extent of the division of labor between human and machine. However, with the shift of emphasis implied by the work of Woodbury and Burrow, this neat division of labor model of design interaction is not sufficient to address the complex issues of designer action and amplification. For example, the mimicking of manual human action, such as sketching or sculpting as an interaction model, while compelling, is unsuitable for design space exploration. Manual action necessarily deals with singleton states, not collections or threads of states.. In our research, the mixed-initiative interaction paradigm presents a more fine-grained division of labor, allocating and sharing control over the same task jointly between the user and the system, allowing for multiple threads, recovering from conflict through disambiguation and many other strategies for interaction known from conversational structure. This paper argues that a useful starting point for addressing this problem lies in conceiving the interaction between the formalism and the designer as a rational conversation and proposes a model of dialogue. The concept of mixed initiative is known from studies of human dialogue, applied artificial intelligence, and the design of autonomous goaldirected systems~Ferguson & Allen, 1994; Allen et al., 1996 !. Such a paradigm provides a systematic exposition of how communication, coordination, and control strategies enable a designer to interact with a formal system.. The need for a fine-grained division of tasks, acquiring, sharing, and relinquishing initiative requires a model for synchronizing the input and output modalities between the designer and the exploration formalism. An interaction model addressing these requirements has been proposed in the literature~Datta & Woodbury, 2002 !. The central feature of this model is the maintenance of exploration structure based on conversational dialogue and its computational representation.. This paper describes the representation of dialogue between the designer and state, structure, and moves in the formalism. It presents a visual notation for representing dialogue through abstract examples of exploration tasks that are specifically machine or human driven in an asynchronous fashion. It describes examples of dialogue integration, where the two distinct modalities are combined in a single frame, in a synchronous fashion. It concludes with a discussion of the results from the modeling of the nature of dialogue in design space exploration. This exposition of interaction with formal systems for design support has focused on conversational structure as a model of dialogue. However, as Woodbury and Burrow show, integrating human users and computational formalisms remain a key problem for design space exploration. As borne out by the examples in their paper, the visual feature node presented here demonstrates the case for designer action but remains a limiting case for exploration. The visual feature node representation must allow for what Woodbury and Burrow term "amplification.". The two requirements posed in developing the above dialogue model, dialogue representation and dialogue integration, are addressed through the development of an intrinsic and extrinsic logic for unfolding the components of the visual notation. The feature structure representation and its interaction logic are brought together through the construct, the visual feature node. Framed by Grice's maxims of conversational rationality, the designer is able to participate in a limited dialogue with the description formalism to construct problems, navigate solutions, make choices, and record the history of exploration.. As Woodbury and Burrow state, the design space must be admitted as a primary object of research in the field. To do so, the configuration, structure, and visualization of design space requires further work and need to be addressed. The findings at this stage also indicate a clear demarcation between the discrete modes of thinking about generative design~rules, types, features! and continuous modes of manipulation known from interaction with real-world geometric design problems. This is hinted at on several occasions in Woodbury and Burrow's paper, but no clear direction has emerged. Dialogue needs to be extended from a conversational mode~as described in this paper! to a language designers understand best, visual representations, and geometry. Thus, although some advances have been made in understanding joint responsibility over discrete moves between highly structured states, a clear formulation of mixed initiative~the rationality of dialogue between a formalism and a human designer! in the joint exploration of nontrivial design geometry remains an open problem. The introduction of conversational structure through mixed initiative to design space exploration enables the designer to maintain exploration freedom, preserves the underlying structure of exploration, and permits a finer granularity of dialogue. The characteristics of the model of dialogue presented here can be summarized as follows: 1. Maintenance of exploration freedom: The dialogue model maintains freedom for incorporating the intentional actions of the designer at any state of exploration. The visual feature node provides a unified model for representing the set of problems, subproblems, problem revisions, and associated designs that a designer actually considers. Problems need not be fixed. Designs can be partial or complete with respect to the initial problem formulation. A designer may make varied choices that imply different kinds of design space operations. 2. Preservation of order: The dialogue model enables order preserving exploration. The structure of exploration is represented through the ordering relation of subsumption. The concept of an ordered design space underpins interaction between the designer and the description formalism. In it, the collection of exploration states are ordered by the relation of subsumption. Exploration moves are cast in terms of moves in a design space upward or downward in an information ordering. Mixed initiative provides a principled way for keeping track of additions, deletions, and other forms of change as the exploration progresses without negating the underlying subsumption ordering of possible states. 3. Granularity of dialogue: The dialogue model permits a finer granularity of interaction between the designer and the formalism. It supports incrementality and turn taking in the process of exploration dialogue. Through incrementality, emphasis is shifted from the final results of exploration to its intermediate constructive steps. Through turn taking, the formal movement algorithms are made accessible to the designer. The incremental, turn taking model of interaction permits a sound treatment of exploration nondeterinism, where disjunctions in description queries, alternative constraints, conflicts, and errors can be resolved by user intervention. The representational device of feature structures~Knight, 1989; Kasper & Rounds, 1990! and attribute value logic~P ollard & Moshier, 1990; Franz & Jrg, 1994 ! known from linguistic theories of generation and from the constraint programming literature underpin the notation for modeling language in Carpenter's typed feature structures~Carpen-ter, 1992!. As a representation, typed feature structures are similar to frame-based~Minsky, 1975! and terminological knowledge~Borgida et al., 1989! representation systems. The analogy between feature structures and knowledge representation schemes comes from associating a collection of features or attributes with each node or frame. Each feature represents a slot label and the arcs themselves point to the fillers, creating a network of associations. Feature structures comprise a set of nodes, each of which is labeled by type information. Most knowledge-based systems underpinned by symbolic representation support the "matching of descriptions." This operation, called unification in the field of deduction systems provides the "addition and multiplication" of descriptions.. A transparent exposition of the modalities of the formalism in a visual manner is one way of expressing and integrating the input and output modalities of both user and formalism. This approach is similar to the work of Pielã 1989! in the ASCEND modeling system~Piela et al., 1993!. ASCEND provides a visual and direct manipulation interface for developing and testing incremental constraint programs in the domain of process engineering. In the ICE project~Zeller & Snelting, 1995; Zeller, 1997! an interactive front end enables the user to construct configuration threads through the addition and modification of configuration constraints. The Oz Explorer~Schulte, 1997! is another visual constraint programming tool for supporting the user driven development of constraint programs. A tree visualization of the constraint problem is the central metaphor for exploration of any constraint node in the tree. The user can tailor and program user guided search engines over this tree for the development of constraint programs. FEGRAMED Kiefer & Fettig, 1995 ! employs a fully interactive front end that presents the user with a customized view of feature structures. This feature structure editor can be used for developing and maintaining feature structures in constraintbased systems. The entities of state, structure, and move identified above are formally represented using typed feature structures as the formal substrate as follows:

O O O B I O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B I O O O B O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


EFFECTS OF ON- AND OFF-RAMPS IN CELLULAR AUTOMATA MODELS FOR TRAFFIC FLOW We present results on the modeling of on-and off-ramps in cellular automata for traffic flow, especially the Nagel-Schreckenberg model. We study two different types of onramps that cause qualitatively the same effects. In a certain density regime ρ low < ρ < ρ high one observes plateau formation in the fundamental diagram. The plateau value depends on the input-rate of cars at the on-ramp. The on-ramp acts as a local perturbation that separates the system into two regimes: A regime of free flow and another one where only jammed states exist. This phase separation is the reason for the plateau formation and implies a behaviour analogous to that of stationary defects. This analogy allows to perform very fast simulations of complex traffic networks with a large number of on-and off-ramps because one can parametrise on-ramps in an exceedingly easy way. An effective management of transport problems is of great interest in densely populated areas. Therefore the performance optimisation of the existing traffic networks is an important aspect of infra-structural planning 1 . Recent experimental 2, 3, 4, 5, 6 and theoretical studies 7, 8, 9 have provided great evidence that the network performance is largely dominated by the capacity of so-called bottlenecks, i.e. parts of the roads where the capacity is locally reduced. In realistic traffic systems a large variety of possible bottlenecks exists, e.g. road constructions, crossings and lanereductions. If one concentrates on highway networks the reduction of the capacity is often due to on-and off-ramps. Therefore the influence of on-and off-ramps has been discussed, e.g., on-and off-ramps have been used in studies of macroscopic models in order to explain the emergence of synchronised traffic 7, 8 . In this work we present a simulation study of on-and off-ramps using a discrete microscopic traffic model 10, 11 (for reviews, see 12, 13, 14 ) . In order to extract the effects of on-and off-ramps we keep the lattice geometry as simple as possible, i.e. we study a single-lane system with periodic boundary conditions, with an additional on-and off-ramp. Moreover we consider only one type of cars. This choice of the system allows for an easy parametrisation and systematic analysis of ramp effects.. Nevertheless these simplifications do not reduce the practical relevance of our results because the empirical results which have been obtained at multi-lane highways show the large influence of the ramps 3, 4, 6 . Moreover the strong coupling of the lanes at high densities implies that the generic behaviour is found on all lanes 15, 16, 17 . The simulation results show that the maximal capacity of the system depends on the flow at the ramps as well as on different input strategies. In contrast, different output procedures do not affect the results significantly. Starting from this realistic scenario we discuss the relation to periodic systems with stationary defects 18, 19 , i.e. to periodic systems where the mobility of the cars is locally reduced. It turns out that the essential features of traffic systems near ramps are already reproduced by the system with a stationary defect. Moreover we are able to establish a direct relation between on-ramp activity and parametrisation of the defect. Therefore it seems to be possible to achieve a considerable reduction of the computational complexity of network simulation using this kind of implementation of ramps. The influence of on-and off-ramps on the dynamics in microscopic models is not yet analysed to our knowledge. The most important point that is investigated here is the strategy of the cars to change from the acceleration lane to the driving lane. This strategy depends on the individual behaviour of the drivers and might have a considerable influence on the traffic dynamics. In this paper we will present a simple scenario that is able to quantify the effects of on-and off-ramps qualitatively. It will be no restriction to the problem that we will only treat one-lane models. The effects caused by the on-ramps in realistic systems can be explained qualitatively with one-lane models. Therefore the Nagel-Schreckenberg (NaSch) model serves as the basis model for the implementation of on-and off-ramps. Firstly we suggest two different types of on-ramps. It is found that it is not necessary to make a difference in the modelling of the off-ramps because they play a rather inferior role for the traffic dynamics. Afterwards we study the effect of both types on the model qualitatively with the help of suitable observables. It will be shown that there exists a strict analogy of the effect of on-ramps to that of stationary defects. This analogy allows the parametrisation of on-ramps in an exceedingly easy way, so that one can perform very fast, but realistic, simulations of complex traffic networks. Before we start with our considerations concerning the on-and off-ramps, let us remind the reader of the update rules (parallel dynamics) in the NaSch model:. with probability p In this paper we have presented a simple scenario that can quantify the effects of ramps on the traffic dynamics in microscopic models. The model used here is the well known Nagel-Schreckenberg model, a cellular automaton for traffic flow. We have introduced two different types of on-ramps. One type that implies a very inconsiderate behaviour of the drivers and another type that simulates both inconsiderate and cautious behaviour. We have shown that there is no difference between these two types in a qualitative sense. With both types one observes effects very similar to those of stationary effects: in both cases one observes plateau formation in the fundamental diagram as well as phase separation in the system. The only difference lies in the mechanism dividing the system into two macroscopic regions. This analogy is is very important for efficient modelling of complex networks 1 with a multitude of ramps. Usually in simulations of large networks one uses a more realistic approach. In 23 ramps are fed by an external road. Cars try to change to the highway according to the usual lane changing rules. If they could not change the cars wait at the end of the ramp. In our considerations we have also investigated in the influence of ramps on different mutations of the NaSch model like the Slow To Start model 24, 25 and a model with an anticipation rule. The effects caused by the ramps are qualitatively the same as in the NaSch model, but in the model with anticipation one has to use much higher input-rates j in to observe phase separation and plateau formation. This model reacts more robust on the perturbations caused by the cars changing from the acceleration lane to the driving lane 26 .. The effects of ramps have been studied in connection with synchronised traffic recently 7, 8 . For the hydrodynamic models it has been found that the localised perturbation through the ramp flow can induce transitions between different traffic states. In 9 it has been shown using computer simulations and data from measurements on real traffic that on-ramps can induce a first-order non-equilibrium phase transition between free flow and a congested phase. The transition is induced by the interplay of density waves caused by the on-ramps and shock waves moving on the highway.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


An area-efficient universal cryptography processor for smart cards Abstract-Cryptography circuits for smart cards and portable electronic devices provide user authentication and secure data communication. These circuits should, in general, occupy small chip area, consume low power, handle several cryptography algorithms, and provide acceptable performance. This paper presents, for the first time, a hardware implementation of three standard cryptography algorithms on a universal architecture. The microcoded cryptography processor targets smart card applications and implements both private key and public key algorithms and meets the power and performance specifications and is as small as 2.25 mm 2 in 0.18-m 6LM CMOS. A new algorithm is implemented by changing the contents of the memory blocks that are implemented in ferroelectric RAM (FeRAM). Using FeRAM allows nonvolatile storage of the configuration bits, which are changed only when a new algorithm instantiation is required. T HE rapid growth of portable electronic devices with limited power and area has opened a vast area of low-power and compact circuit design opportunities and challenges for VLSI circuit designers. Cellular phones, PDAs, and smart cards are examples of portable electronic products that are becoming an integral part of everyday life. The popularity of these devices necessitates special considerations for their security subsystems. Unlike computer network security systems that impose less stringent limitations on the area and power consumption but put more emphasis on high throughput (several Gigabit/s), portable applications demand security hardware with more restrictions on area and power and less on throughput (several hundred kilobit/s to a few Megabit/s). This difference in requirements dictates a different approach in the design and implementation of the security systems for these devices.. Since next-generation, multipurpose smart cards will be used for a wide range of applications, their security system must implement both private (symmetric) and public (asymmetric) key algorithms, to accommodate various application requirements. Y. Eslami is with the Department of DRAM Research and Development, Micron Technology Inc., Boise, ID 83707 USA (e-mail: yeslami@micron.com).. A. Sheikholeslami and P. G. Gulak are with the Department of Electrical and Computer Engineering, University of Toronto, Toronto, ON M5S 3G4, Canada (e-mail: ali@eecg.utoronto.ca; gulak@eecg.utoronto.ca).. S. Masui Private key algorithms with high throughput are suitable for data communication, while public key algorithms with much lower throughput are suitable for private key exchange and authentication. Among all available algorithms, data encryption standard (DES), advanced encryption standard (AES), and elliptic curve cryptography (ECC), which are approved by standards organizations [1]- [3] , are selected for this application. DES, for past compatibility, and AES, for high security and throughput, are the major candidates for private key algorithms, and ECC is the best candidate for the public key algorithm for its encryption efficiency. RSA, which is also a standard public key algorithm, is not considered in this design for three reasons. First, it is believed that 160-b ECC provides the same level of security as 1024-b RSA. Thus, ECC will be a better choice when implementation area is a key factor in the design. Second, RSA uses binary addition of large numbers and needs binary adders that are either slow for carry propagation or large for look-ahead carry generation. Third, a larger number of bits in RSA means wider buses, which adds to the area and power consumption of the design, both of which are scarce resources in smart cards. A cryptography system can be implemented in either software or hardware. Software implementations allow multiple algorithms to be supported on the same hardware platform, but they are usually slow and cannot meet the required specifications. Moreover, they are considered to be more vulnerable to side-channel attacks compared to other implementations. Side-channel attacks use physical measurements on the device, for example, the power consumption of the processor, to detect the encryption/decryption key [4] - [6] . On the other hand, hardware implementations which support high throughput do not allow for flexibility and, hence, are not suitable for smart cards. Flexible field-programmable gate array (FPGA) implementations are not a good choice either, because they need large area and power which cannot be supported on smart cards.. Based on the physical constraints for smart cards set by the International Standard Organization (ISO) [7] , the maximum chip area on a smart card is limited to 25 mm . Considering the nonvolatile and volatile memories, CPU, and other peripheral circuits required on the chip, it is desirable to fit the security subsystem in as small an area as possible. One of the objectives of this study is to investigate the minimum required chip area for the implementation of the security circuits satisfying the algorithm agility, power consumption, and throughput requirements. Rows 3, 8, and 9 of Table I show the area and power consumption of recently published ASIC implementations of several cryptography algorithms. Although these implementations mostly target high-throughput network applications , TABLE I SOME RECENT CRYPTOGRAPHY ALGORITHM IMPLEMENTATION SPECIFICATIONS (*: BASED ON THE AREA OF A TWO-INPUT NAND GATE WITH FANOUT OF FOUR IN 0.18-m CMOS) they clearly indicate the challenge in fitting three separate dedicated circuits-to implement the three mentioned algorithms (i.e., DES, AES, and ECC)-in a small area. Moreover, the cryptography scircuits should be able to provide encryption/decryption of the data at the maximum data transfer rate of 847.5 kb/ps at a clock frequency of 13.56 MHz set for contactless smart cards [8] . Furthermore, in the case of contactless smart cards, since the power is transferred to the IC via RF signals, the power transfer is limited to 10-20 mW, so the cryptography circuits should ideally be power-aware. RISC processors that implement the cryptography algorithms in software provide a very attractive throughput, area, and power consumption solution [9] . However, since users and manufacturers are still concerned about the vulnerability of software implementations of the cryptography algorithms to side-channel attacks, it is important to design hardware circuits that meet the required specifications and are more immune to these attacks. Considering all of the limitations discussed so far, it is quite challenging to design and implement an algorithm-agile and area-and-power-efficient cryptoprocessor for smart cards with acceptable performance and security. This paper introduces, for the first time, a hardware implementation of a cryptography coprocessor (cryptoprocessor) that implements two standard private-key algorithms (DES and AES), and one standard public-key algorithm (ECC), in a single design that satisfies the power consumption and throughput requirements of smart cards and occupies 2.25 mm in 0.18-m 6LM CMOS. The published works in this area address only a subset of these issues. For example, [10] introduces an energy-efficient reconfigurable cryptography processor that considers public key cryptography only. References [11] and [12] consider ECC only, [13] implements DES, and [14] implements AES only. The FPGA implementation in [15] is a processor that does not support AES and ECC. A reconfigurable architecture to implement six candidate algorithms of AES competition is presented in [16] . This paper is organized as follows. Section II presents an overview of the three cryptography algorithms implemented in this study. A mathematical background for these algorithms can be found in [3] and [17] - [20] . Section III introduces the proposed cryptography engine. The designed cryptoprocessor specifications are presented in Section IV, followed by the implementation details in Section V. Area and power requirements of the design are discussed in Section VI and its performance in Section VII. Possible enhancements to the design presented in this paper are discussed in Section VIII. The conclusions are provided in Section IX. This design presents, for the first time, a universal cryptography processor for smart-card applications that supports both private and public key cryptography algorithms. We achieved this by expressing the primitives of three important algorithms for smart cards (DES, AES, and ECC) in terms of simple logical operations that maximize the number of common blocks among them. This approach resulted in a cryptoprocessor that meets the power consumption and performance specifications of smart cards and occupies 2.25 mm in 0.18-m CMOS when SRAM memory blocks are used. This area represents just 9% of the maximum available smart-card die area of 25 mm . Using FeRAM instead of SRAM memory blocks provides nonvolatile configuration at no extra area overhead.

O O O B O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Mapping between acoustic and articulatory gestures We propose a method for Acoustic-to-Articulatory Inversion based on acoustic and articulatory 'gestures'. A definition for these gestures along with a method to segment the measured articulatory trajectories and the acoustic waveform into gestures is suggested. The gestures are parameterized by 2D DCT and 2D-cepstral coefficients respectively. The Acoustic-to-Articulatory Inversion is performed using a GMM-based regression and the results are at par with state-of-the-art frame-based methods with dynamical constraints (with an average error of 1.45-1.55 mm for the two speakers in the database). The relationship between an acoustic signal and the corresponding articulatory trajectories is of interest both for practical applications (such as speech coding, robust ASR, or feedback in computer-assisted pronunciation training) and on theoretical grounds, e.g. with respect to human speech perception. Among the different theories of speech perception, three main theories, namely the Motor theory (Liberman et al., 1967) , the Direct realist theory (Diehl et al., 2004) and the Acoustic landmark theory (Stevens, 2002) claim that humans make use of articulatory knowledge when perceiving speech.. The motor theory of speech perception considers the perception of speech as a special phenomenon. According to the theory, speech perception is carried out by analyzing the signal based on the innate knowledge of the articulatory production of the particular sound. Because of the invariance in the production mechanism, signals that differ in acoustic properties by a large amount, can still be perceived as the same phonemic class. A classic example is that even though the acoustic properties of the initial segment /d/ in /da/, /di/ and /du/ are different, it is categorized into the same phonemic class.. The direct realist theory reasons along similar lines as the motor theory, but does not claim that speech perception is largely different from the perception of other kinds of sounds. The theory postulates that the objects of perception in case of speech are articulatory gestures, and not phonemic targets as proposed by the Motor theory. The gestures are inferred from evidence given in the acoustic signal.. The landmark based theory of speech perception also makes use of articulatory gestures in order to explain the phenomenon of speech perception. The theory claims that the segments in speech are encoded by different states of the articulators. Due to the the quantal nature of the mapping between articulatory and acoustic parameters, when moving from a particular encoded configuration of articulators to the next, we can perceive distinct segments in the acoustics.. In this paper, we draw inspiration from the direct realist theory, in that we attempt predicting the shape of articulatory trajectories ('gestures') from acoustic segments of speech. We use a database with simultaneous recordings of acoustics and articulatory trajectories to perform a statistically based acoustic-to-articulatory inversion.. Acoustic-to-articulatory inversion has commonly been performed by applying an inversion-by-synthesis method, in which an articulatory model (such as Maeda's (Maeda, 1988) ) is first used to build a codebook by synthesizing sounds from the entire articulatory space of the model (Atal et al., 1978) . Inversion is then performed by a lookup in the codebook in combination with constraints on smoothness or entropy of the estimated trajectories. Recently, statistically based inversion methods have been able to provide further insight. These methods rely on databases of simultaneously collected acoustics and articulatory data, e.g., Electromagnetic Articulography (EMA) (Wrench, 1999) or X-ray microbeam (Yehia et al., 1998; Toda et al., 2008; Richmond, 2002) . Some researchers have also employed visual information from the databases (such as videos or markers on the face) in order to make better predictions of the articulation (Katsamanis et al., 2008; Kjellström and Engwall, 2009 ). Toutios and Margaritis (2003) have reviewed various data-driven methods. The problem of data-driven inversion is usually tackled using statistical regression methods, using different types of machine learning algorithms, e.g., Linear Regression (Yehia et al., 1998) , Gaussian Mixture Model Regression (Toda et al., 2004a) , Artificial Neural Network Regression (Richmond, 2006) and HMM regression (Hiroya and Honda, 2004) . It is then assumed that the articulatory configuration, given the acoustics, is a random variable with as many dimensions as the number of measured articulator positions.. Most of the methods, both analytical and statistical, have tried to predict area functions or the position of discrete flesh points of the articulators at a particular time instant given the acoustics, rather than trying to predict the shape of the articulatory trajectory or the gestures using the acoustics of an utterance. Several researchers have used dynamic constraints on the articulatory parameters knowing that the movement is along a smooth trajectory (Ouni and Laprie, 2002; Richmond, 2006; Zhang and Renals, 2008) . Özbek et al. (2009) augmented Mel Frequency Cepstral Coefficients (MFCC) with formant trajectories and showed that there is a slight improvement in the prediction of the articulator trajectories.. The above paradigm of predicting the articulator positions at each time instant can be said to draw its inspiration from the motor theory, in that it corresponds to the proposed innate mechanism of mapping the acoustics directly to the articulatory production. In contrast, we propose an inversion method that is closer to the direct realist theory, in that the units of inversion are acoustic and articulatory gestures, rather than articulatory parameters at a single instance of time with smoothing constraints. Such a method of mapping gestures in the acoustic and the articulatory domains has not been tried with success before, because of two reasons. The first problem is that of segmentation. There are no clear or consistent ways of segmenting the acoustics into gestures, whereas segmenting into phonemes is deemed easier because it can be verified with our understanding of speech units. The second problem is parameterizing timevarying acoustic features. Most acoustical analyses deal with short windows of the signal where the signal is considered stationary. In order to map acoustic and articulatory gestures, a time varying parametrization is necessary.. We therefore propose to perform acoustic-to-articulatory inversion by the following method. The utterance is first segmented into acoustic and articulatory units, which we call 'gestures'. The segmentation algorithm we propose is a general algorithm that can be applied to any time-varying data, so both articulatory and acoustic gestures can be detected by the same method. The detected acoustic gestures are then parameterized using length independent time-frequency 2-D cepstral coefficients, which give a time-frequency representation for these segments. The corresponding movement made by the articulators during this acoustic gesture are also parameterized by the same function, which is a Two Dimensional Discrete Cosine Transform (2D-DCT). The corresponding articulatory and acoustic gestures are then modeled as a joint distribution using the multivariate Gaussian Mixture Model (GMM). The correspondence between the acoustic and articulatory gestures are learned using GMM regression (Sung, 2004) which is used to predict the articulatory gestures corresponding to unseen acoustic gestures. We evaluate this inversion method using an EMA corpus of simultaneous acoustic and articulatory measurements. We also compare the proposed method against the standard frame-based inversion method with the same machine learning technique. We found that the proposed gesture based method performed as well as the conventional frame-based inversion method.. This article is structured as follows. First our definition of 'gestures' along with the segmentation strategy is described in Section 2. We then evaluate the segmentation strategy with experiments on the detection of gestures in Section 3, before turning to the main focus of the article, namely the relationship between acoustic and articulatory gestures. The description of the parametrization of the gestures is first given in Section 4. The regression technique used in the acoustic-to-articulatory inversion and a method to evaluate the results are outlined in Sections 5 and 6. The regression experiments performed and their results are then presented in Sections 7 and 8, before concluding with a discussion on the findings made in this study. This article proposes a method of acoustic-to-articulatory inversion based on mapping acoustic gestures to their corresponding articulatory trajectories. The 'Gesture' based method follows a different paradigm than the traditional frame-based method. It draws its inspiration from the Direct Realist theory which supposes a direct correspondence between acoustic and articulatory gestures. The machine learning algorithm used was exactly the same as the traditional frame-based methods. The only difference was in the types of units used for mapping and their parametrization. The frame-based method made use of every single frame of corresponding acoustic features and articulatory positions for making the inversion, while the Gesture based method made use of longer segments of acoustics and articulatory movements, thereby reducing the load on the machine learning algorithm. There was a 4-fold reduction in the number of instances used for training in the Gesture based method which correspondingly reduces the training time for the machine learning based regression models.. While the overall performance of the Gesture based method was comparable with the the frame-based method with dynamic features, the performance over different phoneme classes was found to be more or less even in the Gesture based method. The frame-based methods were found to be partial to vowels and diphthongs which, being longer, contribute to a larger percentage of the frames in the database. The Gesture based method tries to provide only one sample of correspondences for every occurrence of a phoneme thereby avoiding any bias towards particular types of phonemes.. In spite of different types of parameters selected for the gesture detection and their differences in performance, the inversion results were more or less unaffected. This may be attributed to the definition where adjacent gestures overlap with each other. Due to this, small errors in gesture detection may not have a contribution to the inversion. So in principle, any segmentation algorithm may work equally well for Gesture based inversion as long as there is sufficient overlap between adjacent segments. The minimum jerk smoothing with multiple hypothesis could be an important contribution to the overall performance, although it is not easy to speculate on the extent of the importance.. It would be interesting to see the scalability of the Gesture based method towards speaker adaptation. In addition to different sizes and shapes, different speakers may have different strategies in co-articulation. The Gesture based method may be more suitable to model various co-articulation strategies than the frame-based method.. While this paper does not claim to prove the direct realist theory conclusively as against other theories of speech perception, it provides a basis for pursuing research in this direction. This may be an alternative to traditional shorttime stationary (frame-based) approaches towards speech signal processing. While there seems to be a high correlation between gestures in the articulatory domain and gestures in the acoustic domain, the study also finds a high degree of variability in the types of gestures. Earlier studies Neiberg et al., 2008) have shown a non-uniqueness in the mapping between acoustic frames and positions of the articulators in continuous (natural) speech, which may be treated as evidence against the motor-theory of speech perception. It remains to be seen whether this sort of non-uniqueness can be observed even at the gestural level, thus either corroborating or contradicting the direct realist theory.. The gesture based method may be more useful than the frame-based one while driving virtual oro-facial agents (avatars) with articulatory or visual features in cases where the speed of the animation needs to be changed. The different articulatory gestures can be independently controlled quite easily. For example, a gesture corresponding to a particular phoneme may be made slower than others in order to stress on a particular aspect of the utterance.. There are three main contributions from the paper. The first is a method of unsupervised segmentation of gestures (or critical point detection) which can be applied in the same way on both the articulatory and acoustic spaces. The second contribution is the parametrization of acoustic segments using lengthindependent 2D-cepstral coefficients. This form of parametrization using 2D-DCT is suitable for both acoustics and articulatory trajectories. The final contribution is the critical trajectory error measure CT E which could project the error of the estimation in terms of asynchrony between the trajectories, thus giving a more intuitive idea about the level of errors made. The paper also provides insights on two aspects, i.e. the relationship between the critical points in the articulatory and acoustic spaces and also between the gestures. Finally, the paper shows that there is no statistical significance between performing acoustic-to-articulatory inversion using the traditional frame-based method with dynamic constraints on the articulation and the gesture based method using the same machine learning algorithm (GMMR).. Future work will be directed towards speaker adaptation, verifying whether non-uniqueness exists between the mapping of Gestures and implementation of a system which can be used for pronunciation feedback in the form of articulatory gestures. Three main parameters may influence the results of the gesture-based acousticto-articulatory inversion, namely, the level of smoothing for segmenting the acoustic gestures, and the number of 2-D cepstral coefficients for parameterizing the acoustic space along quefrency and meti. We assumed that the same number of meti components are sufficient for parameterizing the articulatory trajectories, although in principle this could be another parameter to optimize. We conducted a 3 × 4 × 3 grid search over the possible parameter choices. Table 2 shows the partial optimization table, i.e., the result of variation over one parameter at a time while keeping the other parameters to the optimal ones. The level of smoothing does not affect the performance of the algorithm substantially, but the best performance was for a detection with a balance between number of insertions and deletions (c.f. Table 1 ). The largest effect is seen by the number of meti parameters Q, as the performance decreases with more than 3 parameters. Figure 10 compares the performances of the traditional frame based acousticto-articulatory inversion methods with the gesture based method proposed in this article. The Gesture based method shows an mRMSE of 1.45mm (0.63 of Standard Deviation) and 1.55mm (0.64 of Standard Deviation) for the male subject (msak) and female subject (fsew) respectively. The figure shows that there is no statistical difference between the gesture-based method and the frame-based one using dynamical constraints. However there is a statistically Table 2 Table comparing the performance of the proposed method for different window lengths (w s ), number of 'quefrency' components (P ) and number of 'meti' components (Q). When one parameter was being optimized, the default setting for the remaining parameters were w s = 40ms, P = 18 and Q = 3. The results presented are the average over the ten-fold cross-validation on the male speaker (msak) using 64 Gaussian GMMR.. significant difference (p < 0.05) between the methods using dynamic features and the MMSE based method. This shows that modeling of dynamics of the articulatory trajectories is important for the inversion.. The different methods showed an asynchrony (based on CT E) in the range of 48-50 ms. Earlier research (Reeves and Voelker, 1993) based on asynchrony between audio and video has shown that an asynchrony of around 40 ms cannot be detected easily by human subjects, but affects their performance in retrieving information from the audio. Thus we can say that the current methods for statistical inversion are close to the point where the error may not be detectable, but will definitely degrade the performance. This effect has been observed in experiments on enhancing speech recognition with estimated articulator trajectories (Wrench and Richmond, 2000; Neiberg et al., 2009 ). While measured trajectories could enhance the speech recognition accuracy, the same was not true when estimated trajectories were used. Figure 11 shows the RMSE estimates from the gesture based inversion algorithm for different phonemes. The error is quite balanced for the different classes of phonemes which is different from the usually reported observations (Richmond, 2002; Hiroya and Honda, 2004 ) that the inversion is better for vowels and diphthongs than for stop-consonants, nasals and approximants. This is probably be due to the better modeling of transients by the Gesture based method. One can also observe that the largest error in terms of RMSE is for the tongue tip which has the maximum variance among the different articulators which is in accordance with previous observations.

O O O O B I O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Specifications, not meta-models In a model-driven development, software engineers will have to manage multiple artifacts expressed in several languages. Current meta-modelling and concrete syntax standards fail to adequately preserve a link between artifacts and the languages in which they are expressed, potentially leading to inconsistencies and misunderstandings both in the production and reuse of artifacts. Standards such as XMI and JMI permit the meta-model of an artifact to be accessed. However, such meta-models primarily define the syntax of a language. A full semantic definition requires a supporting document, the language specification, which is typically not explicitly referenced. In this paper we argue that the role of meta-models and specifications should be combined to eliminate this ambiguity. We describe the possible impact on OMG standards and standardisation processes that this would have. We present an open-source project that implements this philosophy, and a case-study in which a domainspecific language is used to express service-level agreements, the legalistic nature of which imposes strong requirements for semantic accessibility. It is frequently important that the meaning of software development artifacts, such as requirements specifications, models, and even program code, is preserved across time and space. Several people may work in a software development endeavor, and they will communicate not only verbally but through shared artifacts. It is reasonable to expect that any reader or modifier of a software development artifact should be able to understand it in the same terms as its original author. Where ambiguity exists in an artifact, disambiguation may be possible by contacting the author of the artifact, but this is not always true. The author may be unavailable for some reason, or the author and recipient may be the same person, separated only by an interval of time during which the vital information has been forgotten. Development artifacts should be as unambiguous as possible in their meaning, in isolation from the original author and the conditions under which they were authored.. A lack of semantic ambiguity is particularly important in the context of a model-driven development. Although no strong definition of what constitutes such a development exists, it seems likely that the primary type of artifact in such developments will be models, expressed in languages defined using OMG meta-modelling technologies. Furthermore, given the dichotomy that exists in most formulations of the MDA approach between concepts that are in some sense generic, or 'platform-independent', and those that are specific to particular concrete implementations of a system, it seems likely that several languages, or language variants will be used in any given development [9] . Because the meaning of software development artifacts is partly determined by the meaning of constructs in the languages in which they are defined, this proliferation of languages introduces several pitfalls for development. First, the true intent of a developer may not be captured by an artifact because a developer has failed to correctly understand the meaning of a language construct that they have employed, a possibility that increases in likelihood with the number of languages used. Second, it is the claim of this paper that in current MDA standards nothing guarantees that a link between artifact and a full syntactic and semantic definition of the language in which it is written can be followed, potentially leading to ambiguity in later interpretations of the artifact. The latter issue is of acute importance in MDA development as it is a principal claim of the approach that systems can be redeployed as hardware and middleware standards change, depending on the reuse of models over an extended period of time.. In this paper we argue for some relatively minor revisions to existing OMG standards [1] to address these issues. OMG standards represent a strong force for consensus in the MDA community, and we believe this approach lends greater rel-evance to our work than the introduction of radical new modelling approaches. In this paper OMG standards are referred to without additional citation.. In the next section we look at how modelling languages are defined in existing standards. We highlight the role that natural language plays in all approaches, regardless of their apparent degree of 'formality', as the ultimate method of semantic denotation. We also consider various schemes by which definitions of syntactic elements are associated with instances of that syntax.. Based on these analyses we propose that all meta-models should embed some definitive documentation that is at least expressed in natural language, or some form that is ultimately documented in natural language. We call such documented meta-models specifications because in practice they resemble the specification documents published by the OMG. We describe the contribution of this prescription to addressing the twin problems of capturing and retrieving developer intention. Capturing developer intention is assisted because specifications embed language documentation that is accessible whenever the specification is in use. Any tool that utilises the specification, for example as the meta-model accessible via JMI reflection, will also be able to access this documentation and present it to the user. Recovering developer intention is rendered straightforward by the prescription that any artifact should reference its specification, and hence its semantic documentation, and any relevant concrete syntax standards. We discuss the possible impact of these prescriptions on OMG standardisation processes.. Next we describe the UCL MDA tools, a set of commandline interface tools for model-driven development built to conform to the OMG EMOF, OCL, and XMI standards, and JCP JMI standard [7] , but incorporating extensions to enable the approach to domain-specific language development and documentation advocated in this paper.. Finally we describe the use of the UCL MDA tools in the development of a novel domain-specific language for ServiceLevel Agreements (SLAs) in the electronic-service domain, called SLAng. SLAs have a particularly strong need to preserve traceability from the concrete expression of the SLA to the semantics of the language. As potential components of legal agreements the meaning of an SLA must be as completely and precisely defined as possible. Clearly an SLA containing no reference to its semantics is not a sound basis for an agreement as the meaning of the concrete document can be disputed after an agreement has been made. SLAs potentially have a high commercial value, so the consequences of such disagreements can be dire. This example highlights the importance of the association of software engineering artifacts with full definitions of the languages in which they are expressed, as in many cases variations in the interpretation of an artifact can have serious financial repercussions.. The remainder of this paper is structured as follows: In the next section we review approaches taken to defining languages in OMG standards, and the extent to which concrete syntax standards allow reference to be made to the language in which an artifact is written. In Section 3 we outline our proposals for improvements to these standards. In Section 4 we describe the UCL MDA tools, an open source project implementing tool support for these proposals. In Section 5 we describe the SLAng SLA language, a case study for these proposals. Finally, in Section 6 we summarise. In this paper we have outlined a set of minor modifications to OMG standards, particularly language specifications and concrete syntax standards, that help to address two problems in model driven development, namely ensuring that a developer's intentions are accurately captured when working with several possibly unfamiliar languages, and ensuring that those intentions can be faithfully recovered from the resulting artifact by other developers. The modifications ensure that a link is preserved between artifacts and the definition of both the syntax and semantics of the language in which they are defined.. A consequence of these changes, if they are adopted, will be to transform the specifications upon which the MDA relies into technical artifacts. More than was previously the case, there will be the opportunity for the OMG to test and thereby guarantee the quality of their published specifications. In particular it will be possible and desirable to test coherence between informal commentary concerning the rationale behind any specification and technical aspects of the specification, such as OCL constraints.. We have also introduced an open-source project, the UCL MDA tools, which implements the tooling required to support the changes that we have proposed. We described a novel domain-specific language developed using the tools. The language is for SLAs, the legalistic nature of which provided further justification for the common requirement to maintain an explicit link between artifacts and the language in which they are defined. The contents of definitive comments associated with elements should permit the interpretation of the element by a user. It may do this by introducing some intermediate formalism, encoded in the comment text in some manner. It may also unambiguously reference external documentation. However, the semantics should ultimately be interpretable by a human.. We do not prescribe any particular scheme by which unambiguous references should be made between concrete artifacts. However, URIs would be an appropriate choice [6] .. The need to document MOF 2 according to its own standards assumes a new significance in this scheme. For a language specification to be understood the meta-language used to document it must also be understood. In this context we assume that that language will be a revision of MOF. The revised MOF specification will be machine readable, and recursively defined, which might seem to make it harder to understand. However, with reference to the XMI specification, which will still be human readable, and the embedded comments, the specification will nevertheless ultimately be decipherable by a human.. Our recommendation to add a repositoryType attribute is intended to support semantic definition styles that benefit from refinement of the syntactic meta-model of the language. The model-denotational style of semantic definition is the prime example of such an approach.. In practice these modifications would be relatively painless to implement. Existing specifications could be revised into conforming concrete specifications by editing the existing specifications into comments in an XMI file of the meta-model, simultaneously identifying those parts of the documentation that are definitive, and those which are informal. XMI concrete artifacts can be commented using XML comments to identify the XMI concrete syntax specification.. Existing language specifications, such as UML and MOF, include OCL and diagrams in addition to natural language statements and descriptions of meta-models. It is desirable to include this information in our machine-readable specifications. OCL statements form part of the definitive specification of the abstract syntax. They also have a semantic character, in that they rule out instantiations of the metamodel that would be illogical given the language semantics. If a model-denotational approach is taken, OCL constraints may also contribute to the semantic definition. Diagrams are typically informal and assist with the explanation of the language and its semantics.. Three approaches can be taken to including this information in concrete specifications. The OCL and diagrams could be included in documentation elements in an unstructured manner. Existing mechanisms for including this information could be employed: CMOF supports the inclusion of constraints with a constraint meta-element; XMI 2.1 supports the inclusion of diagram information, or other extension elements using an extension element, or XML namespaces. Finally, the information could be incorporated by extending the MOF specification with the OCL and diagram interchange specifications. Future work will consider trade-offs between these approaches. The proposals we have made address the issue of capturing developer intent by ensuring that in any context in which the meta-model would otherwise have been employed, for example to populate the meta-layer model in a JMI repository, the semantic definition of the language is available. Additionally the availability of OCL and diagram types ensures that the semantic documentation is available in as machinereadable a form as possible, maximizing the potential for using this information intelligently in tools. As a first measure, presenting this information to developers in the same context in which they are using a novel language should assist in ensuring that they use the language correctly. The use of a specification in this manner is illustrated in Figure 1 .. The proposals address the issue of recovering developer intent from an artifact by ensuring that artifacts always refer to both any relevant concrete syntax standard employed, and to the concrete specification of the language being used. The concrete syntax is referenced in as unambiguous a manner possible, using a natural language statement included in the artifact. Understanding the concrete syntax permits the recovery of the concrete specification of the language, which is totally definitive of the language. The concrete specification is constructed on similar lines to the original artifact, so can ultimately be understood in the context of a higher-level language, or in the case of MOF, recursively in terms of itself, and whatever concrete syntax standard is being used to describe it. Figure 2 illustrates the process of interpreting a concrete artifact. References in the concrete artifact to concrete and abstract syntax documentation provide a basis for interpretation of the document, traversing up meta-layers until a well-known standard such as MOF is encountered.. Our proposals, if implemented, would possibly have positive consequences for the quality of OMG standards. According to our proposals, specifications may contain both definitive and non-definitive documentation. They may also contain both repository types that are part of the abstract syntax of the language being specified, and other types for Non-definitive comments included in a specification remark on aspects of the specification already inherent in some definitive part. For example, a human-readable explanation is often given for OCL constraints included in a specification. However, the meaning of the OCL constraint is completely defined by the OCL standard, so this explanation does not refine the specification in any way.. However, non-definitive elements should not be misleading. Ideally the non-definitive parts of a specification should be entirely consistent with the definitive parts. Meta-model constraints can be checked to guarantee this to some extend, for example checking that a diagram is consistent with the underlying model. Checking of this kind has not been scrupulously performed in prior OMG standards. In [4] for example, a significant number of syntactic and type errors are discovered in the OCL constraints included in the latest version of UML. In some cases testing will also be necessary. The machine-readable nature of specifications would facilitate this to a great extent. For example, the specification could be used to implement a JMI repository. The consistency of a test suite of instance documents could then be checked to ensure that OCL constraints act consistently with the semantic intent documented in their accompanying non-definitive descriptions. Thus far, this kind of testing has never been performed for an OMG standard.. Testing of semantic elements in specifications is also possible. Although these would not normally be included in a repository, this constraint can be relaxed to allow testing of these elements in the same manner as the syntactic elements.

O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O B O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Taxonomy of exertion games A new set of computationally-augmented games have emerged recently that require the user to move their body. These exertion games are believed to contribute to social, mental and in particular, physical benefits, marking a change in how we perceive computer gaming. However, although these games are a commercial success, research is lacking a theoretical understanding how to analyse existing and guide future designs. We present initial investigations towards a taxonomy of such exertion games with a focus on social aspects, based on work on traditional play and sports. Our contribution lays the foundation for the creation of a theoretical framework on exertion games, expanding our understanding of this exciting new area. An intriguing new type of interaction experience has emerged recently that has captured the attention of the HCI community. This experience can be characterized by a combination of physical activity of the user's body with interactive computing technology. We call them exertion games (and define them later in this paper). These new games are attributed with physical [9] , mental and social benefits [12] [2] , changing what we understand of and how we see interactive gaming [16] .. HCI research in games has suggested that the inclusion of body movements not only changes the player's engagement with the game, but also the nature of that engagement: a transition occurs, from an "emotional" experience to a "social" experience [1] . De Kort hypothesises positive effects of these games "since humans have an intrinsic need to experience their physical and social environments kinaesthetically" [4] . She also found that embodied play can not only change the game experience for the player, but also "radically impact socially situated play". Dourish also highlights the social potential of embodied interactions [5] , and Eriksson proposes that bodily movement is especially suited for interaction that takes place in a social context [6] . Hummels et al. found that the "turn to embodied interaction can get human and social values back in balance" [8] .. Our understanding of interactions that involve physical activity suggests that such an approach can have benefits to gaming experiences in terms of how these games are played, but also how it involves other people. However, there is no theoretical understanding about these effects and how they can be utilized in a way to support the design of interactive experiences. Several researchers in this area have pointed towards this issue, for example de Kort calls for more empirical research in this area [4] . Graves et al. [7] came to the conclusion that more studies are needed to "examine usability and adoption parameters", and Mueller et al. have called for a theoretical framework to identify design issues [13] .. A theoretical framework that focuses on the physical and social aspects of these games could support research in this field and address some of the questions mentioned above. In order to arrive at such a theoretical model, we believe we need a conceptual understanding of existing games first. We therefore propose a taxonomy centred on the issues of exertion and social aspects to serve as groundwork for future theoretical work. Such a taxonomy could be used to describe and analyse existing games, which in turn can support the identification of salient concepts for a theoretical model that explains the new types of interactions these games afford. Research in HCI has investigated the role of the body and associated social aspects previously. For example, Larssen et al. used a theory of embodied actions to analyse movement-based games [10] . The authors investigated the applicability of four different frameworks to analyse an EyeToy game. The EyeToy game with its vision-only approach has very specific design features [6] , quite different to other exertion games, so their findings are limited to a particular set of applications, however, their work inspired us to consider these frameworks when creating categorizations for other games.. Mueller et al. has defined an Exertion Interface [12] and used this to identify remaining issues in the creation of networked exertion games [13] . The authors presented several exemplary games that have informed our taxonomy. Other research introduced the concept of Computer-Supported Collaborative Sport, in allusion to CSCW(ork), to describe computeraugmented sports activities that are characterized by a social aspect [19] . The author of the Bodybug draws on concepts of psychomotor abilities to describe "kinaesthetic" movement interactions, but only tangents the relationship to other people and the environment [11] .. Sinclair et al.'s work [16] aims to identify success factors to guide designers of exertion games to increased health benefits. They have analysed the history of exertion games to recognize such factors. Their work categorized these games based on the activity the user has to perform, but also based on the underlying sensor technology. This can contribute to a useful overview of how the various hardware platforms progressed. However, inspiring future designs based on this categorization could possibly lead to restrictions based on technical limitations.. Another listing of existing systems focuses on differentiating factors in terms of hardware [14] . The authors use them to highlight the importance of matching sensor technology with appropriate gameplay to create compelling user experiences. We agree with their findings, however, the authors were unfortunately not able to identify opportunities for novel advances based on their approach.. In summary, other research has begun to investigate individual aspects of exertion actions and social aspects when users interact with technology, and some systems have been analysed. Technology-focused characterizations have been undertaken to highlight the relationship between bodily action and engagement. However, there is limited understanding of exertion games with a social focus that can provide an encompassing view applicable to the diverse set of systems that have emerged.

B O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O