An association analysis approach to biclustering The discovery of biclusters, which denote groups of items that show coherent values across a subset of all the transactions in a data set, is an important type of analysis performed on real-valued data sets in various domains, such as biology. Several algorithms have been proposed to find different types of biclusters in such data sets. However, these algorithms are unable to search the space of all possible biclusters exhaustively. Pattern mining algorithms in association analysis also essentially produce biclusters as their result, since the patterns consist of items that are supported by a subset of all the transactions. However, a major limitation of the numerous techniques developed in association analysis is that they are only able to analyze data sets with binary and/or categorical variables, and their application to real-valued data sets often involves some lossy transformation such as discretization or binarization of the attributes. In this paper, we propose a novel association analysis framework for exhaustively and efficiently mining "range support" patterns from such a data set. On one hand, this framework reduces the loss of information incurred by the binarization-and discretization-based approaches, and on the other, it enables the exhaustive discovery of coherent biclusters. We compared the performance of our framework with two standard biclustering algorithms through the evaluation of the similarity of the cellular functions of the genes constituting the patterns/biclusters derived by these algorithms from microarray data. These experiments show that the real-valued patterns discovered by our framework are better enriched by small biologically interesting functional classes. Also, through specific examples, we demonstrate the ability of the RAP framework to discover functionally enriched patterns that are not found by the commonly used biclustering algorithm ISA. The source code and data sets used in this paper, as well as the supplementary material, are available at A wide variety of data sets, such as microarray gene expression data, earth science data and stock market measures, are real-valued, and several binary data sets have real-valued versions as well, such as reliability scores attached to edges in protein-protein interaction networks and word frequencies in document data sets. These data sets can be represented as a matrix M, where M i j denotes the value of item j in transaction i. An important type of unsupervised analysis performed on such real-valued data sets in several domains, such as biology, is the discovery of biclusters, which are groups of items that show coherent values across a subset of transactions or examples, and thus represent a coherent sub-matrix in M, unlike clustering, where each cluster is discovered using all the transactions. An important example of the utility of biclustering is the discovery of transcription modules from microarray data, which denote groups of genes that show coherent activity only across a subset of all the conditions constituting the data set, and may reveal important information about the regulatory mechanisms operating in a cell [21] . However, since the "coherence" of a bicluster can be defined in several ways, different formulations of the biclustering problem have been proposed in the literature. For instance, Figure 1 illustrates a classification of biclusters proposed by Madeira et al [22] , particularly in the context of microarray data. They classified different types of biclusters into four categories: (i) constant value biclusters (Figure 1(a) ), (ii) constant row ( Figure 1(b) ) or column biclusters, (iii) biclusters with coherent values, where each row and column is obtained by addition or multiplication of the previous row and column by a constant value (Figure 1(c) ), and (iv) biclusters with coherent evolutions, where the direction of change of values is important rather than the coherence of the values (Figure 1(d) ). Each of these types of biclusters holds different types of significance for discovering important knowledge from real-valued data sets.. Given the importance of these types of biclusters , a wide variety of algorithms have been developed to find them [22] . Some of the prominent algorithms include ISA [20] , SAMBA [37] , Cheng and Church's biclustering method [10] (CC), xMotifs [24] , CTWC [15] , OPSM [5] , LCD [29] and co-clustering techniques [13, 32] . Although the principles underlying these algorithms hold for a wide variety of real-valued data, most of them algorithms were developed for or tested using the analysis of microarray data [26] , particularly to find transcription modules i.e. the groups of genes that are co-expressed under a subset of conditions. Similar biclusters have been found to be useful for other types of data as well, including genomic data, such as genetic interaction data [29] integrated data sets [36] . Interestingly, each of these biclustering algorithms can be viewed from a conceptual perspective according to the classification of biclusters shown in Figure 1 . For instance, while SAMBA and co-clustering are designed to find constant value biclusters shown in Figure 1 (a), Cheng and Church's method can naturally find both constant value and constant row or column biclusters (Figure 1(b) ). Similarly, xMotifs is meant to find biclusters with constant columns in a gene expression data matrix (counterpart of (Figure 1(b) ), while OPSM is designed to find coherent trends of up-or down-regulation in biclusters, and thus is suitable for find biclusters like the ones shown in Figure 1 (d).. However, despite the differences in all these biclustering methods in terms of the type of biclusters they seek, they suffer from some common issues. First, most of the approaches are top-down greedy schemes that start with either all rows and columns, and then iteratively eliminate them to optimize the objective function [13, 32, 10, 15, 29] , or they start with a random initial seed and use heuristics to converge to the final bicluster [20, 37, 5] . In either case, the scheme is unable to search the space of all possible biclusters exhaustively. In particular, small patterns tend to get overshadowed by noise and/or by larger biclusters. Another critical issue with at least some of the biclustering methods is with their inability to identify overlapping biclusters. For instance, while ISA, SAMBA and OPSM can find overlapping biclusters, co-clustering (which is designed to only look for disjoint patterns) and Cheng and Church's method (which masks the identified bicluster with random values in each iteration) find it hard to discover such biclusters. Interestingly, pattern mining algorithms in association analysis [1, 9, 17] also produce biclusters as their result, since the patterns consist of items that are supported by a set of transaction (For this reason, we will use the terms pattern, itemset and bicluster interchangeably in the rest of this paper.). These algorithms enable the exhaustive and efficient discovery of all patterns satisfying the specified thresholds, and these patterns can also overlap with each other. However, traditional association analysis algorithms can only find constant value biclusters (Figure 1(a) ) in binary data. Most common efforts to make these techniques usable for real-valued data include discretization [33, 14, 30] , binarization [4, 12, 11, 23] , and rank-based transformations [8] . However, these data transformation-based approaches face several challenges in addressing the bicluster discovery problem. Most importantly, since all the real values constituting a data set have been transformed to fixed values apriori, these techniques can not distinguish between the different types of biclusters shown in Figure 1 , which are defined completely on the basis of these real values, and thus can not ensure the discovery of biclusters of a specific type. Similar challenges are faced by the binarization-based biclustering method BiMax proposed by Prelic et al [28] . Some approaches have also been proposed to mine association patterns directly from real-valued data [18, 35, 16] . However, they do not capture some key properties of complex real-valued data sets, such as the distinction between positive and negative values, and the need for values of items in a transaction to be within a range to ensure coherence.. In this paper, we present a novel association pattern discovery framework for data sets where all the attributes are real-valued, i.e. they may take any values in R. This framework is best suited for the type of biclusters shown in Figure 1(b) , namely the constant row biclusters, which subsume the constant value biclusters shown in Figure 1(a) . The coherence over the rows in these biclusters is ensured using the novel range support measure, an integral component of our proposed framework, which ensures that the values of the items constituting a meaningful pattern are coherent for a substantial fraction of transactions in the data set. Since this measure is anti-monotonic, it can be used within an Apriori-like framework [1] to exhaustively discover all the constant row patterns, that satisfy the specified constraints in a given data set (It can also be used to produce constant column biclusters by transposing the original data matrix). Thus, on one hand, this framework reduces the loss of information incurred by discretization-and binarization-based approaches, and on the other, it enables the exhaustive discovery of coherent biclusters, which is currently a limitation of the commonly used biclustering algorithms. We refer to this framework as the RAP (RAnge support Pattern) discovery framework, and the resultant patterns as RAP patterns.. In order to understand the relative effectiveness of our range support-based association analysis methods, we compare RAP's performance with Cheng and Church (2000)'s algorithm [10] (CC) and the Iterative Signature Algorithm (ISA) [20] in the context of microarray data analysis. Comparison with CC is natural, since both RAP and CC find constant row biclusters. ISA, which is one of the most widely used biclustering algorithms, is chosen as a representative of the general class of biclustering algorithms. Thus, comparison against ISA is expected to help indicate the complementarity between biclusters generally found by biclustering techniques and specific constant row patterns found using association analysis. To make this study manageable, other algorithms are excluded from this comparison, either because they are focused on biclusters other than constant row biclusters (eg., OPSM), or are known to have poor performance (eg., xMotifs [28] ), or find nonoverlapping biclusters (eg., co-clustering). The latter algorithms may not be appropriate for biological data, since genes and proteins are known to be multi-functional [27] .. More specifically, in this comparison, we present experiments based on an objective evaluation measure and functional analysis of patterns and biclusters derived from microarray data. Objective evaluation using the mean squared error (MSE) error shows that the patterns derived using our framework indeed capture the constant row model accurately. In functional analysis, we analyze the ability of RAP patterns for extracting co-expression modules (groups of genes) from microarray data that are also functionally coherent, i.e., contain genes that perform the same function in an organism, as indicated by their enrichment by interesting functional classes in the GO Biological Process ontology [2] . This enrichment is measured as the probability of a group containing the same number of genes as the given pattern having the same or better annotations by a given class by random chance [7] , and the lower this probably the more enriched a gene group is with a given functional class. These experiments show that the real-valued patterns discovered by the RAP framework are better enriched by small functional classes, which are considered very interesting for biological analysis [25, 38, 40] , than the relatively larger biclusters produced by the CC and ISA algorithms. We also demonstrate the ability of RAP to find novel patterns using specific examples of functionally enriched patterns, as well as functions that are covered by patterns discovered by RAP but not by ISA. These results assert the utility of range support patterns as a potential method for discovering novel coherent biclusters from real-valued data sets in general, and functional modules from microarray data in particular.. The rest of the paper is organized as follows. We provide a brief overview of the CC and ISA algorithms in Section 2. The concepts related to range support patterns are defined and their properties are discussed in Section 3. Section 4 details the experimental methodologies adopted for evaluating the efficacy of range support patterns, and the results obtained. We present a summary of the findings in Section 5, and conclude with the limitations of the proposed framework and possible approaches to address them in Section 6. In this paper, we presented an efficient framework named RAP (RAnge support Patterns) for directly mining association patterns from real-valued data sets. This algorithm is based on the novel anti-monotonic range-support measure, which ensures that the values of the attributes constituting a meaningful pattern are coherent for a substantial fraction of transactions in the data set. The patterns generated by this algorithm are focused on finding constant row/column biclusters, for which no exhaustive discovery algorithm is currently available. On one hand, this framework reduces the loss of information incurred by discretization-and intervalizationbased approaches, and on the other, it enables the exhaustive discovery of coherent biclusters, which is currently a limitation of the commonly used biclustering algorithms.. We compared the efficacy of the range support patterns discovered from microarray data with biclusters produced by Cheng and Church's algorithm for discovering constant row/column biclusters, and ISA, a commonly used biclustering algorithm, using the mean squared error (MSE) coherence measure and their functional enrichment in terms of GO biological process annotations. RAP patterns are found to have the lowest MSE scores among all the sets of biclusters evaluated. In terms of functional enrichment also, the RAP patterns are significantly more enriched by small and specific functional classes as compared to the generally larger in size ISA and CC biclusters, thus indicating their potential for making novel biological discoveries, such as the functions of unannotated genes. We also illustrated that RAP can complement standard biclustering algorithms by finding gene groups not discovered and covering functions not captured by the latter. In summary, these results demonstrate the ability of the RAP framework for discovering previously unavailable knowledge from real-valued data sets.

O B I 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 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 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 I 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 B 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 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 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 B 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 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 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 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 O O O O O O O O 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 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 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 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 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 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 B I 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 B 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 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 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 B I 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 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 B 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 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 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 B I O O O O O O O O O O O B I O O O O B I 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 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 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 B I 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 B 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 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 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 B I O


DocCloud: A document recommender system on cloud computing with plausible deniability Recommender systems select the most interesting products for costumers based on their interests. The move of a recommender system to a cloud faces many challenges from the perspective of the protection of the participants. Little work has been done regarding secure recommender systems or how to cope with the legal liability of the cloud provider and any virtual machine inside the cloud.We propose DocCloud, a recommender system that focused on the protection of all participants against legal attacks. We present the architecture of DocCloud and analyze the security mechanisms that the system includes. Specifically, we study the properties of plausible deniability and anonymity of the recommenders and intermediate nodes. This way, nodes can recommend products to the customers while deny any knowledge about the product they are recommending or their participation in the recommendation process. Many of the most successful shops on the Internet provide suggestions to their customers. These suggestions are usually based on the previous experience of users with the shop, or the features of the products the customers are currently viewing.. A recommender system is an automatic system that, given a set of available products and a model that captures the interests of a user, outputs a list of products that the system estimates will be of interest to the user. We identify five different roles in a recommender system: merchants that provide documents and document descriptions, or profiles; customers that request recommendations according to their user profiles; indexers that reply to queries; repositories that provide access to final documents and intermediate nodes that route messages from merchants and customers to indexers and repositories.. We explore the recommendation of documents that can be distributed electronically and may show high peaks of activity followed by long periods of silence, such as video or audio content. The dynamic structure that cloud systems show makes them a convenient approach for providing the service of recommendation and distribution of multimedia content. However, regardless of the cloud paradigm that the recommender system follows, the participants of a cloud may be accused or prosecuted of copyright infraction.. In this paper, we will use the different roles that exist in a cloud system and other additional mechanisms to protect requests and recommendations, and minimize the legal responsibility that a recommender systems faces. Recently, a new kind of attack against intermediate nodes has appeared. A new international treaty on copyright protection known as the Anti-Counterfeiting Trade Agreement (ACTA) is being negotiated at the moment of writing this paper. After some initial secrecy, the consolidated text is now public [38] . Article 2.15 deals with the liability of legal persons, and states that ''the provisions of this section shall apply to inciting, aiding and abetting the offenses referred in article 2.14''. 1 . The penalties proposed by this article ''include imprisonment as well as monetary fines''. Thus, not only is downloading or providing a protected document punishable under the ACTA, but so too is abetting downloading. ACTA was not ratified by the European Parliament in July, 2012 [24] However, it shows a trend among legislators throughout the world to make people who aid or even incite the downloading of copyrighted documents liable of copyright infringement. This is the case with the Stop Online Piracy Act (SOPA) and the Protect Intellectual Property Act (PIPA) in the United States, and the Sinde-Wert law in Spain. Most of these bills are currently under intense debate, but they have something in common with ACTA: they make companies liable for users' actions if the companies do not respond to a copyright infringement notification. The reader should take note that the entity that makes documents available, the one that recommends documents, and the one that distributes them may be not the same. This way, a participant recommending or distributing a document may be unaware of its legal status. In this case, we believe that recommending is dangerously close to inciting, which is punishable according to ACTA. This situation is even worse for the recommender system if it includes mechanisms to upload and/or download the protected document.. Recently, the administrators of the direct download site Megaupload were arrested in New Zealand on behalf of the American FBI [40] . According to the FBI, this action ''directly targets the misuse of a public content storage and distribution site to commit and facilitate intellectual property crime''. In April, 2009, the administrators of The Pirate Bay, a popular document indexer that does not host any document, were found guilty of complicity in the provision of unauthorized access to copyrighted content and were sentenced to 1 year in jail and nearly 3 million euros in damages by a Swedish court [36] . The high cost of a lawsuit, the criminal charges against the defendants and the long wait time to get a ruling persuaded other site administrators (Filesonic, Fileserve, Uploaded.to, VideoBB, FileJungle, UploadStation, FilePost, UploadBox, x7.to, 4shared, etc.) either changed their policies or announced a voluntary shutdown [9] . Glorioso et al. [12] analyze some court decisions and conclude that, according to US jurisprudence, intermediate nodes in the communication channel, even at the network level such as ISPs, are threatened with legal attacks. The main argument for prosecutors is that the ''making available'' of copyrighted documents also includes the indexers of the system.. The security service that protects indexers from legal prosecution is plausible deniability. In the common law context, plausible deniability [41] refers to circumstances where a denial of responsibility or knowledge of wrongdoing cannot be proved as true or untrue due to a lack of evidence proving the allegation. Hermoni et al. [13] defined deniability for the field of information security as the property that the user has if they can claim that their actions are legitimate. Ref.. [13] understands deniability as an absolute property that actors have by mixing up legitimate and not legitimate documents in the indexers. We introduce plausible deniability as the property that an actor achieves if he cannot make a probabilistic distinction between legitimate and not legitimate documents, or the process to make this distinction is too long and complex.. We focus our efforts on the protection of all participants of the system against legal attacks. As such, we are interested in the provision of plausible server deniability and document deniability as defined in [13] , and we will provide plausible deniability to intermediate nodes and the cloud provider.

B 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 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 B 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I 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 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 B I O O O O O O O


Concurrency control in groupware systems Abstract. Groupware systems are computer-based systems that support two or more users engaged in a common task, and that provide an interface to a shared environment. These systems frequently require fine-granularity sharing of data and fast response times. This paper distinguishes real-time groupware systems from other multi-user systems and discusses their concurrency control requirements. An algorithm for concurrency control in real-time groupware systems is then presented. The advantages of this algorithm are its simplicity of use and its responsiveness: users can operate directly on the data without obtaining locks. The algorithm must know some semantics of the operations. However the algorithm's overall structure is independent of the semantic information, allowing the algorithm to be adapted to many situations. An example application of the algorithm to group text editing is given, along with a sketch of its proof of correctness in this particular case. We note that the behavior desired in many of these systems is non-serializable. Real-time groupware systems are multi-user systems where the actions of one user must quickly be propagated to the other users. An example that many find easy to relate to is the multi-player game. Here the movement of one player's token, perhaps a tank or spaceship, triggers updates on the displays of all players. Other examples can be found in the area of computer-supported cooperative work [CSCW86, CSCW88]. For instance, in real-time computer conferencing [Sari&j] , the users, who are often at different locations, communicate through a software medium. This software might allow the users to view and modify a shared graph structure [Stef87] or edit a shared outline [Elli88a] . Our research group has been studying, and experimenting with these types of systems for several years. We now recognize that there are significant challenges in implementing these systems that typically do not arise in other applications. Some of these challenges [Elli88b] reside in the areas of group interfaces, access control, social protocols, and coordination of group operations. For instance, groupware introduces new complexities to the user interface: the interface must depict group activity, and designers must weigh the need for group focus against the potential for distraction. Concurrency control also has novel aspects within groupware as we will demonstrate in this paper. An invocation of a groupware system is informally called a session. Sessions in which we have participated are typically Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by pemksmn of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific pemkion. 0 1989 ACMO-89791~317-S/89/0005/0399 $1. 50 an hour or two in length but may be much shorter or much longer. At any point in time, a session consists of a group of users called the participants. The session provides each participant with an interface to a shared context, for instance participants may see synchronized views of evolving data. The system's response time is the time necessary for the actions of one user to be reflected by their own interface; the notification time is the time necessary for one user's actions to be propagated to the remaining users' interfaces.. Real-time groupware systems are characterized by the following: * highly interactive -response times must be short. * real-time -notification times must be comparable to response times. * distributed -in general, one cannot assume that the participants are all connected to the same machine or even to the same local area network. * volatile -participants are free to come and go during a session. *ad hoc -generally the participants are not following a pre-planned script, it is not possible to tell a priori what information will be accessed. *focused -during a session there is high degree of access conflict as participants work on and modify the same data. *external channel -often participants are connected by an external (to the computer system) channel such as an audio or video link.. It is useful to distinguish groupware systems from other multi-user systems. For example, both database management systems and timesharing operating systems support multiple users. However neither of these are groupware since they provide little notification -if one user performs some action, perhaps inserting a tuple or creating a process, other users are not normally notified of the action and may only learn of it by explicitly querying the system. One example of groupware is GROVE (GROUP Outline Viewing Editor) [Elli88a] , an outline editor which we implemented in the Software Technology Program at MCC. It is intended for use by a group of people simultaneously working on a textual outline. GROVE supports multiple views of the outline, each view is displayed in a group window (a window replicated over a set of machines). A window may be private, shared, or public. A GROVE group window is shown in Figure 1 . Participants can modify the underlying outline by performing standard editing operations (insert, delete, cut, paste, etc.) in the window, they may also open and close parts of the outline (using the small buttons on the left side) or change the read and write permissions of outline items. In addition to displaying views, group windows also indicate who is using the window. The window in Figure 1 will appear on the workstations of the three users shown along the bot-addition to displaying views, group windows also indicate cations do not appear to be suitable in this context. In the who is using the window. The window in Figure 1 will appear following we identify some of the issues related to concuron the workstations of the three users shown along the botrency control in groupware systems and then discuss the tom border. An important characteristic of this system is that edits performed by any participant are rather immediately seen on the screens of all participants (real-time notification). . These editors allow a group of users to work on the same document, however each user typically works on their own section at their own pace. As a result sessions are less focused and are longer in duration (days or even weeks in length); also real-time notification may not be necessary because of the asynchronous nature of participants' actions. Given these distinctions, the remainder of this paper will concentrate upon real-time groupware, although we will simply use the term "groupware systems.". In this paper we present an algorithm for concurrency control in groupware systems. The next section explores issues related to concurrency control in this context and describes problems with alternative approaches. In Section 3 we provide a model for groupware systems. The algorithm is developed in Section 4 and applied to GROVE in Section 5. Discussion of its correctness is presented in Section 6.

B I O B B O B B O O B O B O O O B O O O O B O O O O O O O O O O B O O O B O B O O B O O B O B B B O O O B O O O B I B O B O B I O B B B O O O O O O O B O O O O B O O O B O O O O O B O O O O B O O O O O O O O O O O B O O O O B O O O B O O O O O O O O O O O B O B B O O O O O O O O O O O B O O O B O O O O B O O O O O B O O B B B 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 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 O O O B O O O O O O O B O O B O O O O O O O B 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 B O O O O O O O O O O B B O O O O O O O B O O O B 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 B I O O O O O B O O O O O O B 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 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 B 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 B B B B O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B O O O B O O O O O B O O O B B 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 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 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 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 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 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 B O O O 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 B 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 B 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 B O O O O B O O B B O O B O O O B O B I O B B 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 B O B O O O O O O O O O O O O O O O B O O O O O


Efficient mutation testing by checking invariant violations Mutation testing measures the adequacy of a test suite by seeding artificial defects (mutations) into a program. If a mutation is not detected by the test suite, this usually means that the test suite is not adequate. However, it may also be that the mutant keeps the program's semantics unchangedand thus cannot be detected by any test. Such equivalent mutants have to be eliminated manually, which is tedious.We assess the impact of mutations by checking dynamic invariants. In an evaluation of our JAVALANCHE framework on seven industrial-size programs, we found that mutations that violate invariants are significantly more likely to be detectable by a test suite. As a consequence, mutations with impact on invariants should be focused upon when improving test suites. With less than 3% of equivalent mutants, our approach provides an efficient, precise, and fully automatic measure of the adequacy of a test suite. How do we know a test suite is adequate in finding defects? Among the best ways is mutation testing: seeding defects into a program and checking whether the test suite finds them. Such defects can be created automatically, using a set of mutation operators to change ("mutate") random program parts. A mutation that is not detected ("killed") by the test suite indicates that the test suite was unable to Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. detect the seeded defect-and therefore is likely to miss similar, true defects in the code. Test managers can use such results to improve their test suites such that they detect these mutants.. Mutation testing has been shown to be an effective measurement for the quality of a test suite [2] and superior to commonplace assessments such as coverage metrics [27, 8] . However, mutation testing is known to be very expensive. A well-known issue is its large usage of computing resources. A less known, but far more significant cost, though, comes from the problem of equivalent mutants. These are mutants that leave the program's overall semantics unchanged-and therefore cannot be caught by any test suite: The result of mutation testing-"surviving" mutations not found by the test suite-thus mixes the most valuable and the least valuable mutations in one set. Therefore, when one assesses surviving mutants, one must first eliminate equivalent mutants. This problem is widespread; its solution is tedious. In an experiment on a sample of 20 random mutations on the 12,000-line JAXEN program [9] , we found 40% of the nondetected mutations to be equivalent. On average, it took us 30 minutes to assess one single mutation for equivalence. If we had assessed all 4,110 non-detected mutations, this task would have cost us 2,055 hours, or two person-years; actually, it can be assumed that the ratio of equivalent mutants increases further as we improve the test suite.. The problem of assessing mutation equivalence has been noted before, but rarely quantified. Frankl et al. [8] state:. Although our experiments were designed to measure effectiveness, we also observed that using these criteria, particularly mutation testing, was costly. Even for these small subject programs, the human effort needed to check a large number of mutants for equivalence was almost prohibitive.. In the past, a number of efforts have been attempted to reduce the cost of equivalent mutants. Various heuristics based on mutant similarity have been suggested [3] . Static program analysis, in particular path constraints, can detect many cases of equivalent behavior [20] . Program slicing can assist in narrowing down the impact of a mutation [11] . Genetic algorithms have been suggested to specifically evolve mutants detected by at least one test case [1] . None of these techniques has yet been shown to scale to large programs.. In this work, we suggest an alternate, novel way to eliminate equivalent mutants. Our approach is based on the assumption that a non-equivalent mutant must impact not only the program code, but also the program behavior-just The JAVALANCHE process. After learning dynamic invariants from test suite execution, JAVALANCHE instruments the program with invariant checkers (Step 1), generates mutations (Step 2), runs the test suite on each mutation (Step 3), and ranks mutations by the number of violated invariants. Finally, the tester (Step 4) improves the test suite to detect the top-ranked mutations.. like a defect must impact program execution to produce a failure. To characterize the "normal" behavior, we use dynamic invariants, learning pre-and postconditions for every function as observed during its executions. Our hypothesis is that a mutation which violates such invariants causes different behavior-and therefore is much more likely to also violate the program's semantics than a mutation which satisfies all learned invariants. We actually propose that testers focus on those mutations that violate the most invariants (i.e. have the greatest impact on program behavior), and still are not caught by the test suite. Our framework, named JAVALANCHE, is summarized in Figure 1 .. In this paper, we explain how to assess the impact of mutations using dynamic invariants, and we demonstrate the usefulness of our approach by empirically showing that mutations that violate invariants are much less likely to be equivalent. After giving a motivating example (Section 2) and introducing our mutation framework (Section 3), the paper makes the following contributions:. 1. We present a scalable, effective, and efficient method to learn the most common invariants (Section 4) and to check them (Section 5).. 2. We demonstrate a novel method for classifying and ranking the impact of changes (mutations) on invariants (Section 6).. 3. Our evaluation shows that focusing on mutations with the highest impact has a low ratio of equivalent mutants (Section 7)-making mutation testing efficient and applicable in practice.. After discussing the related work (Section 8), Section 9 closes with conclusion and consequences. The results of our case study suggest that developers should not only focus on those mutations that violate invariants, but that they actually should focus on those mutations that violate the most new invariants-which is exactly the ranking produced by JAVALANCHE.. Whenever mutation testing results in a large number of undetected mutants, it thus seems a good idea to prioritize the mutants by their impact on invariants:. 1. By focusing on those mutants with the highest impact on invariants, one creates a bias towards nonequivalence. This is good, as this minimizes the number of equivalent mutants to deal with.. 2. As these invariants are originally learned from test suite executions, this implies a bias towards mutations whose induced behavior differs most from the "normal" behavior as characterized by the test suite. By repeatedly re-learning invariants, this favors diversity in the test suite-a diversity that is based on program semantics (i.e., invariants) rather than program structure (i.e., standard coverage criteria). We consider such semantic diversity to be a desirable feature of test suites.. 3. Focusing on high-impact mutants also implies focusing on those areas where a defect can create the most damage across the program execution. Again, we consider such a focus a very valuable property of a test suite. Our results also indicate that it is generally useful to focus on those mutations that violate the most invariants. Even in a program with few violating mutants like BARBECUE, which did not benefit much from ranking (see the discussion in Section 7.4.3), the top-ranked mutations consistently yielded better detection results than the average mutation.. Finally, our results also place an upper bound on the number of equivalent mutants. Omitting BARBECUE due to its low number of violating mutants, the detection rate for the top 5% of violating mutations (Figure 7) is 92-100%, with an average of 97%. Thus, only 3% of these high-impact mutations were undetected, placing an upper bound on the number of equivalent (undetectable) mutants. (Note that in Section 7.2, only 17% of this small high-impact set were actually found to be equivalent, suggesting an even lower overall rate.) This very low rate is what makes our approach to mutation testing efficient. On average, focusing on the top 5% of invariant-violating mutants yields less than 3% of equivalent mutants. The results of this manual inspection indicate that mutants that violate invariants are more than twice as likely to be non-equivalent:. Violating Mutants. For 10 out of the 12 inspected mutants (10/12 = 83%), we could write a test that triggers the mutant. Most of these mutations impacted tracking input line numbers, a feature not covered by the JAXEN test suite. We failed to write tests for the remaining two mutants and therefore consider them to be equivalent.. Non-Violating Mutants. We were able to write tests for only 4 out of the 12 mutants (4/12 = 33%), and failed to do so for 7 of the remaining mutants. We did not categorize one mutant, since the behavior of the mutant depends on the system locale.. A Fisher Exact Value test confirms the statistical significance of the difference at p = 0.036. We therefore accept our hypothesis H1-with a grain of salt, as the size of our sample set was small. In our sample, mutants that violate several invariants are less likely to be equivalent.. Our results are summarized in Table 6 . Let us compare the detection rate of invariant-violating mutants (VMs) versus non-violating mutants (NVM) (columns 4 and 5). With the exception of ASPECTJ, all projects show a higher detection rate for VMs. The difference is statistically significant according to the χ 2 test. The difference can be dramatic: In JAXEN, for instance, 98% of invariant-violating mutants are detected versus 44% of the non-violating mutants. This also means that in JAXEN, the rate of equivalent mutants across all generated invariant violators is not higher than 2%.. Mutants that violate invariants are more likely to be detected by actual tests.. Our results can be easily summarized. For ASPECTJ, there is a clear trend: The higher the ranking of a mutation (= the more invariants it violates), the higher its likelihood to be detected by the full test suite. This is shown in Figure 7 : The x axis shows the subset considered, ranging from 5% (the top 5% mutations which violated the most invariants) to 100% (all mutations that violated at least one invariant. The y axis shows the respective detection rate.. This trend holds for all projects (see Figure 7) , except for BARBECUE, the project with the lowest number of violating mutants: Just as ASPECTJ, the project with the highest number of violating mutants, benefits from ranking, it is reasonable to assume that the low number of violating invariants in BARBECUE prevents a meaningful ranking. Still, even focusing on the top 5% still yields a higher detection rate than average.. In all seven projects, higher-ranked mutations are more likely to be detected than all mutations (violating or nonviolating). For all projects except BARBECUE, higher-ranked mutations are always more likely to be detected than the average across all violating mutations. In the rightmost columns of Table 6 , we have shown the detection rate of the 5%, 10%, and 25% violating mutations with the highest impact. All detection rates are higher than those of 100% non-violating mutations (column five), thus confirming H3.. The more invariants a mutant violates, the more likely it is to be detected by actual tests. Again, this implies that the undetected high-impact mutants will also have a low rate of equivalent mutants. As discussed in Section 1, manually checking if a mutant is equivalent requires a lot of effort. We therefore restricted our evaluation to one project (JAXEN) and twelve samples for each group. The non-violating mutants were chosen randomly; the twelve violating mutants were those that had the highest number of violations.. For each mutant, we first examined the source code around the mutant; we then tried our best to come up with a test case to trigger the mutant. If it was not possible to come up with such a test, we considered the mutant to be equivalent. Assessing the 24 mutants took us 12 person-hours (i.e., 30 minutes per mutant on average), plus additional time to write test cases for non-equivalent mutants.. 3 All times were measured on a 16-core 2.0GHz AMD Opteron 870 machine with 32 GB RAM; we used up to 7 cores and 2 GB RAM per core. Note that CPU time does not depend on the number of cores.. Our setup for H2 is straight-forward: We execute the test suite to learn dynamic invariants, identify surviving mutants and classify them as violating or non-violating.. Our experimental setup for H3 is the same as for H2 discussed in Section 7.3.3, except that we now compare the detection rate of the top n% of the invariant-violating mutants, where n ranges from 5-100.

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 O O O O O O O O O O O O O O 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 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 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 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 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 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 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 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 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 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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


Automatic refinement of an expressive speech corpus assembling subjective perception and automatic classification This paper presents an automatic system able to enhance expressiveness in speech corpora recorded from acted or stimulated speech. The system is trained with the results of a subjective evaluation carried out on a reduced set of the original corpus. Once the system has been trained, it is able to check the complete corpus and perform an automatic pruning of the unclear utterances, i.e. with expressive styles which are different from the intended corpus. The content which most closely matches the subjective classification remains in the resulting corpus. An expressive speech corpus in Spanish, designed and recorded for speech synthesis purposes, has been used to test the presented proposal. The automatic refinement has been applied to the whole corpus and the result has been validated with a second subjective test. There is a growing trend towards the use of speech in human-machine interaction. In this field, the inclusion of automatic emotion recognition or expressive speech synthesis can improve communication by making it more natural. One of the most important challenges in the study of expressive speech is the development of oral corpora with authentic emotional content. The naturalness of the locutions depends on the strategy used to obtain the emotional speech. The main debate centres on the relation between authenticity and the degree of control during the recording. Campbell (2000) and Schrö der (2004) proposed four emotional speech sources: (i) natural occurrences obtained from spontaneous human interaction which present the most natural emotional speech, although this approach does have some drawbacks due to the lack of control of its content, i.e. insufficient quality of sound and the difficulty in labelling; (ii) elicitation of authentic emotions in the laboratory is a way of compensating some of the problems detected in natural situations, although full-blown authentic emotions are rarely achieved; (iii) stimulated emotional speech created by reading texts with verbal content related to the target emotion. The difficulty of comparing utterances with different texts can be counteracted by increasing the corpus size so that statistical methods can be used to generalize acoustic models of emotion; and (iv) acted emotional speech by reading the same sentences with different emotions which allows direct comparisons of prosody and voice quality. However, the greatest obstacle in this case is the lack of authenticity in the expressed emotion. The databases used for conducting emotional speech synthesis are usually based on acted speech (Douglas- Cowie et al., 2003) , where a professional speaker reads a set of texts (with or without emotional content) and simulates the emotions to be produced. Another important aspect is the purpose of the speech and emotion research. It is necessary to distinguish between the processes of perception (centred on the speaker) and those of expression (centred on the listener) (Schrö der, 2004) . The objective of the former is to establish the relationship between the emotional state of the speaker and the quantifiable parameters of speech that usually deal with the recognition of emotions from the speech signal. The latter are focused on shaping the speech parameters in an effort to transmit a certain emotional state. According to (Devillers et al., 2005) , one of the main challenges is the identification of oral indicators which are attributable to the emotional content and not simple characteristics of conversational speech.. The paper proposes an expressive speech corpus from stimulated speech which provides enhanced expressiveness. Although the corpus has been designed for use in different tasks related to research in expressive speech synthesis, this work combines techniques commonly applied in processes of perception and expression. On one hand, the production of the corpus follows the guidelines of listenercentred studies given the fact that it is oriented to speech synthesis. On the other hand, we apply techniques of emotion recognition in order to validate its expressive content and refine the recorded speech database. The refinement is conducted by an automatic system designed to emulate the subjective criteria used in the identification of emotions from speech. The system is trained with the results of a subjective evaluation, which is carried out on a small part of the corpus. Once the system has been trained, it is able to check the complete corpus content and perform an automatic pruning of the unclear utterances, i.e. with expressive styles that are different from the intended. The proposed refinement is performed on the corpus described in the paper and the final results are validated through a second subjective test.. A review of (Devillers et al., 2005; Cowie et al., 2005; Ververidis and Kotropoulos, 2006) provides a deep insight into databases and feature extraction methods covering recent advances in speech and emotion research. These tutorials review previous studies such as those of (Murray and Arnott, 1993; Cowie et al., 2001; Scherer, 2003; Douglas-Cowie et al., 2003; Schrö der, 2004) . To the best of our knowledge, the automatic refinement of an expressive speech corpus in order to obtain a content that closely correlates with subjective classification has not yet been proposed.. The remainder of this paper is organized as follows: Section 2 presents the design, recording and segmentation of a stimulated expressive speech corpus oriented to speech synthesis in Spanish. Section 3 describes the subjective evaluation of a reduced but significant set of the corpus by means of a listening test. Section 4 is devoted to an initial objective validation which is carried out by using techniques of automatic emotion identification. Section 5 describes the proposed method to refine the content of the recorded speech database. There is a general discussion in Section 6, and finally, Section 7 provides conclusions and outlines future work. There is a high consensus in the speech-synthesis research community regarding the benefits of obtaining emotional speech through acted or stimulated speech regardless of the drawbacks in terms of authenticity. In order to overcome this problem, an assessment of the expressiveness of the recorded utterances is required. At first glance, subjective evaluation appears to be the best method for this purpose.. However, an exhaustive evaluation of the whole database is too costly for large corpora, which are generally required in corpus-based speech synthesis. Nevertheless, to the best of the author's knowledge, a precise and objective evaluation of expressiveness is yet to be developed. Our findings represent a step further on the path to creating a practical and efficient evaluation able to cover this need.. The paper has presented a method to automatically refine a complete expressive speech corpus. First the design, creation and initial objective validation of an expressive corpus have been described. The results of the perceptual tests led to the design of a system that emulates the subjective criteria featured in emotion identification from speech.. The system's training performs an attribute selection that maps the results of a subjective evaluation carried out on a small part of the corpus. The resulting unclear set is validated along with a clear set by means of a second subjective test, which was performed by Spanish and nonSpanish listeners. According to the results, the system's automatic decision and the subjective perception seem to be closely correlated.. Therefore, it can be concluded that the proposed system is able to erase the unclear utterances in terms of expressiveness (i.e. with emotion/style different to that expected). As a result, the whole initial corpus can be automatically refined using this system. The results are encouraging since the final corpus content shows a higher match with perceptual classification. However new improvements could be introduced in different parts of the proposed method: (i) the previous subjective test and the rules to determine the expressiveness level of the evaluated utterances and (ii) the tuning of the automatic system (the acoustic parameterization, the attribute selection method and the combination of new classification algorithms). The next stage of our investigations will study the convenience of using the proposed method for expressive speech synthesis. The refined corpus could be used in the acoustic modelling of expressive speaking styles by predicting prosodic parameters from text and in the unit database of a corpus-based synthesizer. It would be interesting to compare the results with the ones achieved from the original corpus. The aim of this paper is to present the method developed to solve the problem which arises when the quality of the utterances produced by speakers does not meet the desired expressiveness. This is a common problem in the development of corpora for expressive speech synthesis. The main idea of the method consists in subjectively evaluating part of the speech corpus and training an automatic classifier to recognize bad utterances in the remainder of the corpus.. An experimental study of this method has been carried out with the Spanish expressive speech corpus, also presented in this paper, recorded from advertising texts in different expressive styles. The aim of this corpus was to achieve different expressive styles with sufficiently varied acoustics but with sufficient coherence intra-style in order to use it in our current research in speech synthesis (prosody and voice quality modeling and synthesis methods). In a broad sense, expressive speech covers, among other things: emotional speech as it is well known, narrative style for story telling (Theune et al., 2006) , good/bad news (Pitrelli et al., 2006) , soccer announcements (Krstulovic et al., 2007) , etc. Therefore, the developed corpus is an additional example of expressive speech data oriented to research instead of a specific application.. The results achieved in the refinement of this corpus are determined by some adjustments of the system. If this method is applied to other data, the main aspects to be considered are the following. Firstly, the heuristic rule defined to reach the consensus among the evaluators should be adapted to the results of the partial subjective test. This adjustment could be manual or included in the automatic process. Secondly, recall and precision have been equally weighted with the F 1 measure. If it is preferable to have a good recall of the unclear class as opposed to achieving good precision, F 2 measure can be used which weights recall twice as much as precision. In this case, the number of utterances classified as unclear would increase and, therefore, it would be necessary to review these utterances in order to decide if they can be deleted from the corpus. If the number of deleted utterances was very high, it would be necessary to repeat their recording with the aim of avoiding a reduction of the intended coverage.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


The Robust Network Loading Problem Under Hose Demand Uncertainty: Formulation, Polyhedral Analysis, and Computations We consider the Network Loading Problem (NLP) under a polyhedral uncertainty description of traffic demands for which we give a compact multi-commodity formulation and state a nice decomposition property obtained from projecting out the flow variables. This property considerably simplifies the resulting polyhedral analysis and computations by doing away with metric inequalities, an attendant feature of the most successful algorithms on NLP. Then we focus on the hose model of demand uncertainty description. We study the polyhedral aspects of NLP under hose demand uncertainty and use the results as the basis of an efficient Branch-and-Cut algorithm supported by a simple heuristic for generating upper bounds. We also provide the results of some computational experiments on well-known network design instances. For a given undirected graph G, the Network Loading Problem (NLP) deals with the design of a least cost network by allocating discrete units of facilities with different capacities on the links of G so as to support expected pairwise demands between some endpoints of G. In this work, we relax the assumption of known demands and study robust NLP with polyhedral demands to obtain designs flexible to fluctuations in demand. Our aim is to design least cost networks which remain operational for any feasible realization in a prescribed demand polyhedron. Since deterministic NLP is strongly NP-hard there have been various efforts for solving it as efficiently as possible through the use of alternative formulations, heuristics, and by a thorough polyhedral analysis ( [6] , [8] ). Although the polyhedra of feasible flows for the single commodity problem with two facility types is fully characterized ( [7] ), the same problem with multi-commodity flows remains very hard, and its solution requires the use of metric inequalities to define the corresponding projection cone ( [6] , [7] ).. Against this background, our main contribution to the rather limited literature on robust NLP is to consider a quite general definition of demand uncertainty and present an efficient single-stage approach to handle the problem. For the single-stage robust NLP under polyhedral demands, we are not aware of any attempt other than [5] where uncertainty was incorporated into the design of fiber optic networks with an emphasis on modeling rather than on a detailed polyhedral analysis and branch-and-cut.. An interesting feature of our MIP formulation for NLP with polyhedral uncertainty is that we avoid the use of metric inequalities due to a decomposition property obtained from a projection on the design components. [7] characterizes all extreme rays of the related projection cone for the deterministic singlecommodity case using a similar projection. However, only necessary conditions were obtained for the deterministic multi-commodity variant, which is difficult since the coupling bundle constraints prevent the decomposition of the problem into single commodity subproblems. For our problem, we by-pass that difficulty using the observation that the existence of a multi-commodity flow can be certified by checking the existence of many single commodity flows. Although this result considerably simplifies the formulations, the problem still remains difficult. Hence we make a thorough polyhedral analysis based on which we present valid inequalities for robust NLP with arbitrary number of facilities and arbitrary capacity structures as the second main contribution of the present work. Finally, we develop a Branchand-Cut algorithm and use it to solve several well-known network design instances.. In Section 2 we briefly summarize how we handle robust NLP with polyhedral demands (N LP pol ) and briefly mention our B&C algorithm in Section3. We give a sample of computational results in Section 4 and conclude with Section 5. The interested reader can refer to [2] for a more detailed discussion. In this paper we study the Network Loading Problem under a polyhedral definition of traffic demands. We discuss the design of a network which is capable to support infinitely many non-simultaneous demand realizations. Based on a compact formulation and a decomposition property we briefly mention our detailed polyhedral analysis for the hose demand model. The polyhedral analysis formed the basis of an efficient Branch-and-Cut algorithm equipped with a heuristic for computing upper bounds. Our computational results revealed that projecting out the flow variables and using our Branch-and-Cut algorithm is quite effective for both single and two-facility problem types. We also work on the problem with another demand polyhedron and we hope to discuss our results in the conference as well.

O O B I I O O O O O B I 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 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 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 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 O O O O O O O O O O O O O O O O O O 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 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 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 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 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