Design and implementation of a comprehensive outpatient results manager Prior research has demonstrated that clinicians often fail to review and act upon outpatient test results in a timely and appropriate manner. To address this patient safety and quality of care issue, Partners Healthcare has developed a browser-based, provider-centric, comprehensive results management application to help clinic physicians review and act upon test results in a safe, reliable, and efficient manner. The application, called the Results Manager, incorporates extensive decision support features to classify the degree of abnormality for each result, presents guidelines to help clinicians manage abnormal results, allows clinicians to generate result letters to patients with predefined, context-sensitive templates and prompts physicians to set reminders for future testing. In this paper, we outline the design process and functionality of Results Manager. We also discuss its underlying architectural design, which revolves around a clinical event monitor and a rules engine, and the methodological challenges encountered in designing this application. Failure to follow-up on abnormal diagnostic test results represents one of the most problematic safety issues in the practice of outpatient medicine [1] . When test results are not acted on in a timely and appropriate manner, patientsÕ safety and satisfaction are jeopardized. Prior research has shown that both patients [2] and physicians [3] are concerned with this issue, and results from other studies [4] [5] [6] [7] further highlight the ongoing need to address this gap in quality. Moreover, this issue is beginning to receive more national attention. The Agency for HealthCare Research and Quality (AHRQ) [8] , in a recent set of recommendations issued to patients on how to prevent medical errors, recommends to patients that Ôno news (on test results) is not good news,Õ suggesting that existing results follow-up systems are inadequate to protect patientsÕ safety.. An examination of the traditional paper-based result management system offers some insights into the challenges faced by outpatient physicians as they manage test results for their patients. These results typically become available at varying times between patient visits, when the patient is not in the office to prompt the physician to review these results. To ensure timely review of these results, many clinics devote significant resources to organize the streams of incoming reports from different paper-based sources. For clinics without such resources, the onus falls upon the individual physician to assume that responsibility. Unfortunately, these paper-based systems are not robust and are subject to the frailties of human vigilance and memory [9] . These deficiencies in existing systems are not trivial given the high volume of data that each physician is responsible for reviewing. In a recent review of tests performed on patients followed at the internal medicine practices at the Brigham and WomenÕs Hospital in Boston, MA, we found that a full-time primary care physician on average reviews 930 pieces of chemistry/ hematology data and 60 pathology/radiology reports in a typical week. Moreover, prior research indicates that a significant number of physicians employ largely deficient systems to manage test results: 36% of clinicians do not routinely inform their patients about test results, and only 23% of primary care physicians have a reliable method to ensure that abnormal test results receive the appropriate follow-up [10] .. In terms of patient outcomes, research also shows that clinicians need to improve the way they follow-up on abnormal test results [11] : about one-third of abnormal TSH [6] , pap smears [12] , and mammograms [5] do not receive timely follow-up in accordance with established clinical guidelines. This represents an important quality and safety issue in the outpatient setting as data from malpractice carriers point out that 30% of office-based diagnosis-related malpractice cases can be attributable to failures in the follow-up system [13] . The changing guidelines on disease management offer yet another layer of complexity to this issue.. While test results viewers have been one of the most widely used informatics applications in healthcare [14] [15] [16] , there is, to our knowledge, very limited material in the informatics literature that describes applications designed to help clinicians actively and comprehensively manager all of their patientsÕ test results. Result viewers in typical information systems, for example, are designed only for passive retrieval: clinicians need to access, on their own initiative, the electronic medical record for each patient to see if new results are available for review. While a few institutions have implemented systems that actively notify clinicians about life-threatening test results in the inpatient setting [17] [18] [19] [20] [21] , these systems have generally only addressed selected results that somehow indicate gross deviation in a patientÕs status from expected norms. In outpatient clinical practice, however, results of different types may be important for decision making, even if they are normal or slightly abnormal [22] . Furthermore, the follow-up tasks in the outpatient setting are inherently different in the inpatient setting as physicians cannot closely monitor their patients and follow-up actions require the active and willing participation of the patients [23] .. Clinicians clearly need help: a survey performed within Partners Healthcare (Boston, MA) indicated that 59% of primary care clinicians were not satisfied with their current system of result tracking. Given the high volume of data that need to be reviewed, the complexity of the follow-up tasks involved and the quality gaps in the follow-up of abnormal test results, it is not difficult to see why outpatient clinicians need systems to that help them prioritize, review and act upon streams of test result data. To address these issues around workflow and patient safety, Partners Healthcare has developed the Results Manager (RM), a browser-based, comprehensive, provider-centric tool to help clinicians manage patient test results in a reliable and efficient manner. This paper will highlight its design process, functionality, decision support features and underlying architectural design. It will also discuss the methodological challenges encountered in the design, implementation and maintenance of RM. Results management is an important activity for outpatient clinicians and we have built RM to facilitate this process. The strength of RM lies in its ability to comprehensively address the workflow for test result followup in the outpatient setting: it classifies the degree of abnormality for outpatient test results, provides contextsensitive templates for physicians to generate result letters to patients, presents guidelines for managing abnormal results, suggests reminders for repeat testing in the future and allows clinicians to electronically acknowledge the result. By providing these features in RM, we have satisfied the requirements initially laid out by our user-base. We have also employed iterative design methods to design a user-interface that fits into the cliniciansÕ workflow and we believe our application will reduce the time required for managing test results. In addition, by improving the reliability and efficiency of the test results management process and ensuring that important abnormal test results do not get lost, we believe RM will improve patient safety. Future studies are planned to quantify the impact of RM on safety outcomes.

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


From operational semantics to abstract machines: preliminary results The operational semantics of functional programming languages is frequently presented using inference rules within simple meta-logics. Such presentations of semantics can be high-level and perspicuous since meta-logics often handle numerous syntactic details in a declarative fashion. This is particularly true of the meta-logic we consider here, which includes simply typed λ-terms, quantification at higher types, and β-conversion. Evaluation of functional programming languages is also often presented using low-level descriptions based on abstract machines: simple term rewriting systems in which few high-level features are present. In this paper, we illustrate how a high-level description of evaluation using inference rules can be systematically transformed into a low-level abstract machine by removing dependencies on high-level features of the meta-logic until the resulting inference rules are so simple that they can be immediately identified as specifying an abstract machine. In particular, we present in detail the transformation of two inference rules specifying call-by-name evaluation of the untyped λ-calculus into the Krivine machine, a stack-based abstract machine that implements such evaluation. The initial specification uses the metalogic's β-conversion to perform substitutions. The resulting machine uses de Bruijn numerals and closures instead of formal substitution. We also comment on a similar construction of a simplified SECD machine implementing call-by-value evaluation. This approach to abstract machine construction provides a semantics directed method for motivating, proving correct, and extending such abstract machines.The operational semantics of functional programming languages is frequently presented using inference rules within simple meta-logics. Such presentations of semantics can be high-level and perspicuous since meta-logics often handle numerous syntactic details in a declarative fashion. This is particularly true of the meta-logic we consider here, which includes simply typed A-terms, quantification at higher types, and p-conversion. Evaluation of functional programming languages is also often presented using low-level descriptions based on abstract machines: simple term rewriting systems in which few high-level features are present. In this paper, we illustrate how a high-level description of evaluation using inference rules can be systematically transformed into a low-level abstract machine by removing dependencies on high-level features of the meta-logic until the resulting inference rules are so simple that they can be immediately identified as specifying an abstract machine. In particular, we present in detail the transformation of two inference rules specifying call-by-name evaluation of the untyped ,\-calculus into the Krivine machine, a stack-based abstract machine that implements such evaluation. The initial specification uses the meta-logic's p-conversion to perform substitutions. The resulting machine uses de Bruijn numerals and closures instead of formal substitution. We also comment on a similar construction of a simplified SECD machine implementing call-by-value evaluation. This approach to abstract machine construction provides a semanticsdirected method for motivating, proving correct, and extending such abstract machines. 'LEMMA 4.4 For all s , t , El k (prove (evaf s t)::nil) iff &:! 1-(prove (eval s t)::nil).Note that El and Ez are not precisely equivalent since t-(prove nil) but E2 Y (prove nil). However we are not interested in this case: we are only interested in atomic prove statements that contain a non-empty stack.The premise of rule (2.3) contains two occurrences of each of the two meta-level variables L' and M' which do not occur in the conclusion. This use of meta-level variables must be removed to approximate more closely an AES-defining proof system. There is some redundancy of information in a stack of provable eval-atoms and by exploiting this fact we can eliminate one set of occurrences of L' and M'. The following proposition explicitly describes this redundancy. PROPOSITION 4.5 Let TI be an £2 proof o f @rove a::nil) and let @rove al:: ... ::a,::nil), for n 2 2, be a node in this proof. Then for all i = 1 , . . . ,n -1, ai has the form (eval s { l , At) ) and ai+l has the form (eval {s1::!,t) v ) for some terms s , s l , ! , t , and v . Operational semantics provides a simple, high-level and elegant means of specifying interpreters for programming languages [13] . Abstract machines provide an intermediate representation of a language implementation that facilitates portability, code optimizations and native machine code generation [2] . In this paper we demonstrate how to take specifications of evaluators in the high-level, flexible style of operational semantics and derive, through simple and formally justifiable steps, abstract machines that implement that evaluator. While providing a direct proof of the correctness of derived abstract machines, derivations also provide guidance for extending such machines and illustrate relationships among various abstract machines.. The work in this paper can be seen as a counterpart to work in semantics-directed compiler generation based on denotational semantics and attribute grammars [l 11. The goal in those settings is to provide methods for constructing provably correct, low-level implementations of programming languages starting from highlevel semantic descriptions of the languages, The idea of transforming interpreters is not new [12, 16, 181. In the setting here an interpreter is given as a set of inference rules and evaluation is described by proof construction in a fixed meta-logic. Transforming interpreters is a process of transforming the inference rules specifying an interpreter using techniques such as foldhnfold and partial evaluation [8]. Our approach is more goal directed than some of these efforts as we have abstract machines as our target implementation. These abstract machines are specified as term rewriting systems and the connection between operational semantics and abstract machines is established by defining a restricted class of operational semantic specifications that have a simple translation to term rewriting systems. Thus our entire translation from operational semantics to abstract machines can be presented using a single meta-logic.. Our meta-logic and others related to it (such as the Logical Framework (LF) [7] and the Calculus of Constructions (CC) [3]) have been investigated by several researchers recently as specification languages for functional programming systems [I, 61 and for logics [5, 171. This logic provides a flexible domain for specifying relations on simple functional programs since such programs can be represented as terms (in several different ways) in this meta-language. In this paper we focus on various evaluation relations, that is, binary relations that relate a functional program with its value (under some assumption of the evaluation strategy). Sets of inference rules will be used to axiomatize such evaluation predicates. This paper is organized as follows. In Section 2 we give a general definition of abstract machines and present the meta-logic in which we specify operational semantics. We then define a class of proof systems in that logic that correspond trivially to abstract machines. Sections 3 and 4 provide an extended example of transforming a high-level specification of call-by-name evaluation of the untyped A-calculus into a specification of an abstract machine. Section 3 presents a translation from an operational semantics using quantification over simply typed A-terms to one using strictly first-order quantification. Section 4 presents a translation from this first-order specification into the class of proof systems defined in Section 2. The resulting proof system is equivalent to the Krivine machine [4] . We briefly comment on how the derivation can be modified to yield other evaluators. We conclude in Section 5.

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


Evaluating collaborative information-seeking interfaces with a search-oriented inspection method and re-framed information seeking theory Despite the many implicit references to the social contexts of search within Information Seeking and Retrieval research, there has been relatively little work that has specifically investigated the additional requirements for collaborative information seeking interfaces. Here, we re-assess a recent analytical inspection framework, designed for individual information seeking, and then apply it to evaluate a recent collaborative information seeking interface: SearchTogether. The framework was built upon two models of solitary information seeking, and so as part of the re-assessment we first re-frame the models for collaborative contexts. We re-frame a model of search tactics, providing revised definitions that consider known collaborators. We then re-frame a model of user profiles to analyse support for different group dynamics. After presenting an analysis of SearchTogether, we reflect on its accuracy, showing that the framework identified 8 known truths, 8 new insights, and no known-to-be-untrue insights into the design. We conclude that the framework a) can still be applied to collaborative information seeking interfaces; b) can successfully produce additional requirements for collaborative information seeking interfaces; and c) can successfully model different dynamics of collaborating searchers. Although the majority of Information Retrieval (IR) and Information Seeking (IS) systems have been designed for solitary use, recent research has shown that we collaborate on search activities with our colleagues, family, and friends, by asking for guidance, sharing links, and even dividing up tasks (Järvelin & Ingwersen, 2004 , Morris, 2008 , Twidale et al., 1997 . Consequently, several novel search interfaces have been developed recently to support users in collaborating on shared search tasks (Amershi & Morris, 2008 , Morris & Horvitz, 2007a , Morris & Horvitz, 2007b , Smeaton et al., 2006 . Along with the challenge of designing new collaborative search interfaces, however, comes the challenge of evaluating them. Like all evaluations, methods for assessing CIS interfaces will be grounded by a) how we model the nature of collaborative search, and b) how we model successful or efficient CIS behaviour. Consequently, we must first reconsider how much of the underlying existing and often wellestablished, solo-focused, IR and IS theory still applies to Collaborative Information Seeking (CIS) contexts.. In this article, we re-assess a recent search-oriented analytical inspection framework 1 (Wilson, 2008 , Wilson & schraefel, 2007 , Wilson et al., 2009 in the context of collaborative information seeking. The framework was originally designed to evaluate the plethora of solitary information seeking interfaces, but we demonstrate that it can still be used to evaluate CIS interfaces. We do this by first re-framing the underlying IS models used within the framework, and then validating the framework's results by correlating them with existing research. The re-assessment is designed to a) show that the framework can be applied to CIS interfaces; b) show how it can identify additional requirements for CIS interfaces; c) show how it can model different dynamics within collaborative teams, such as experts searching with novices; and d) provide the additional means required for CIS researchers to apply the framework to collaborative search software. Further, by performing this re-assessment we have begun, with two specific examples, the inevitable process of reconsidering the models and default assumptions held by the IS community, in the light of CIS activities.. In the following sections, we first review the history of IS research, especially highlighting where CIS has been addressed, in order to summarise what is already known about collaborative searching and inform our re-assessment of the IS inspection framework. We then present an overview of the original analytical inspection framework, which was developed to assess the extent by which IS interfaces support different search tactics and different user types. We begin our re-assessment by re-framing two established IS models: one of search tactics (Bates, 1979b , Bates, 1979a , and one of searcher profiles (Belkin et al., 1993) . We provide extensive detail of this re-framing, so that these sections alone can be used as a reference when applying our modified inspection framework for CIS interfaces. Further, the re-framing can be used to understand how these two models relate to our developing CIS models and assumptions. In Section 4, we then present an evaluation of a recent freely available CIS interface: SearchTogether (Morris & Horvitz, 2007b) , using our modified analytical framework. The results of the evaluation are then further validated by correlating its findings with known usability issues identified by the designers of SearchTogether. The key points that can be drawn from this section are that a) there has been a recent flurry of search systems that directly support CIS, b) the community's understanding of CIS is becoming more formal but is on-going, and c) the notion of CIS has been identified numerous times implicitly in the history of IS research. Although this latter point is encouraging, the majority of IS research assumes the user is acting solitarily, especially within the Information Retrieval community that has focused on improving performance time and accuracy of document retrieval systems. It remains in question, however, as to how much of IS research still applies. Potentially all IS work may apply to CIS, but perhaps requiring extension. Below we present an evaluation that is designed around IS theory, and show how re-framing the original IS models allows it to accurately inspect CIS interfaces. In this article, we have re-assessed an existing analytical inspection framework for information seeking interfaces in terms of its applicability to collaborative information seeking software. First, in Section 3, we re-framed the analytical inspection framework, and the underlying models used to ground the method, from the perspective of groups of searchers, explicitly collaborating on a shared task. In Section 4, we then describe how this modified framework is applied, using the re-framed models, to an example collaborative information seeking interface: SearchTogether. Through this example, as discussed further in Section 5, we show that a) the framework can be just as easily applied to collaborative search interfaces as individual seeking software, using the new re-framed models; b) that the framework can still provide accurate an accurate analysis of a collaborative search interface; and c) can be used to suggest some redesigns to improve collaborative search interfaces.. We have made three main contributions. First, we have initiated a review of how established information seeking models still apply to collaborative information seeking, by reframing two key models from the perspective of groups of searchers working on a shared task. Re-framing these example models highlights the way that we should reconsider the applicability of existing IS models and assumptions to collaborative settings. Second, we have described an analytical inspection framework, available online, that can be used to evaluate the designs of both new and existing collaborative search interfaces. The framework provides insight into how collaborative search interfaces support different types of search and different individual roles when searching as a group. Third, we have provided an evaluation, and potential design changes, of a freely available collaborative information seeking interface:. SearchTogether. Together these contributions support us in the on-going design and evaluation of interface designs that enable groups of searchers to work together on shared information seeking tasks. The method described above was applied, using the CIS-oriented descriptions of Bates' 32 tactics, by the developers of the framework. The full detail of the results, including the number of moves counted for applying each tactic with each interface element, is available online 2 . Here we present the graphs, which are interactive online, and present the findings conveyed by these graphs.. The first graph, shown in Figure 3 , shows how each of the 32 known search tactics are supported by SearchTogether. Notably, the 5 tallest bars are for the CHECK, PATTERN, STRETCH, SCAFFOLD, and RESCUE tactics, which together relate to some of the key expected benefits of CIS, in the form of monitoring other searchers. PATTERN, for example, represents the tactic of looking for search patterns that find good results. One of the foremost elements of the SearchTogether interface is the visualisation of the queries used by collaborating searchers. The interaction with this query history is very simple. It can support numerous tactics, including CHECK, PATTERN, SCAFFOLD, and BREACH, without requiring any physical moves. Further, it can be used to drive new queries directly, by clicking on the listed terms, with only one mental (choosing) and one physical move (clicking). The prominence of the query histories in the interface and their simple interaction model mean that they provide almost as much total support for search as the basic keyword search function (see Figure 4) .. The next most well-supported tactic is BIBBLE. Of the 32 tactics, BIBBLE inherently depends on other searchers, and is defined by identifying whether anyone else has already searched for a term. A question would first be as to why this is not the most supported tactic in SearchTogether. The answer is that BIBBLE is supported by fewer elements of the interface, mainly the query history. If the summary panel, for example, displayed the queries used to find any recommended results, this would also support BIBBLE. Instead, these other views are better for sparking new ideas (RESCUE, SCAFFOLD, STRETCH), and so together receive a wider range of support throughout the interface.. Many of the remaining medially-supported tactics, such as WEIGH, CORRECT, TRACE, NEIGHBOR, BREACH and FOCUS, are also supported by simply seeing other searchers actions, but in-directly. There is no specific functionality in SearchTogether, to help narrow the FOCUS of the search, except within the usual basic keyword interaction. However, it is easy for searchers to FOCUS their search by using terms from the query histories, for example.. Unusually 3 , the RECORD function is fairly well supported. Users can easily add a result to the search summary (essentially keeping it on RECORD), by simply clicking on the 'Thumbs Up' button (one physical move). With a larger number of moves, however, the user can also add a comment. These two interface elements, as shown in Figure 4 , provide a relatively small contribution to the overall interface, but their simple interaction, especially the 'Thumbs Up/Down' make the RECORD tactic one of the better supported tactics in the system. Several tactics are poorly supported by SearchTogether. It is hard for users to dramatically CUT down their results, or to explore them in any alternative ways than in the order they are delivered (CLEAVE). SearchTogether is ultimately built on top of the major search engine interfaces, which typically also struggle to support these tactics. While there are many new functions in SearchTogether, few of them support these tactics well, or the CONTRARY tactic. SearchTogether does attempt to support them, however, with the Split Search and the Multi-Engine Search. The interaction for these, especially for the mutli-engine search, takes much longer, as the user is required to explicitly allocate search engines to searchers, for example (see Figure 4) . These two searches would provide dramatically more support, potentially more than the basic keyword search, if they had separate buttons placed next to the search box. Multi-Engine search would also provide much greater support if it also automatically allocated each searcher to a different search engine. We can see an example of the minimal affect they currently have by comparing the EXHAUST and REDUCE tactics in Figure 3 , where the multi-engine search and split search should make it much easier for users to EXHAUST the potential results. Looking further at Figure 4 , we see that the summary page provides the third highest amount of support across the SearchTogether interface. This has been discussed to some extent already, as it allows users to spark new ideas for search by monitoring what has already been found. Where keyword search supports 23 of the tactics in a number of physical moves, the summary page supports 7 tactics, with 6 in only one move. Similarly, the query history view supports 5 tactics in only one move, but a further 7 tactics with only one extra physical move (clicking). The split search supports as many tactics as the basic keyword search, but in often twice as many moves. Similarly, the multi-engine search supports the same number of tactics as the basic keyword search, but often in 4 or 5 times the number of moves.. We see that some of the features only provide a relatively small amount of support, however without the Recommend and Thumbs Up/Down features, for example, we would see much less support provided by the summary panel. The chatting function, which provides direct communication with other searchers in the group, does support a wide range of tactics, however there is inherently a large number of steps involved in instant messaging, including waiting for responses and reading them, that dampens its strength compared to the simple interaction with the query histories. Using Table 1 and Figure 5 together, we can see that because the left hand side is higher, on average, than the right hand side, the design of SearchTogether provides a larger amount of support for users who are scanning, than for users who are able to specify what they need. This is supported mainly by the range of interface elements that support users in communicating results and sharing queries. A team of searchers, for example, would usually not be required for finding a single known resource (Type 15). The first and second quarters, and the third and fourth quarters, are typically balanced indicating that SearchTogether supports learners just as well as it supports searchers who are trying to find a particular resource or piece of metadata. The odd eighths of the graph (e.g. Types 1-2, 5-6, etc.) are significantly higher than their even counterparts. This indicates that SearchTogether is highly oriented to searches who need to recognise important results when they find them. Much of the interface is recognising and learning from the queries used and discoveries made by other searchers. Finally, with the heavy emphasis on seeing other users' queries, recommendations, and comments, the interface is highly geared up for searches dealing with metadata, rather than for actually finding specific web pages. Compared to the support for user types provided by just the keyword search function (shown in Figure 6 ), however, it is clear that users with known resources to find are largely unaffected by the design of SearchTogether (the pattern of Types 9-16 are almost identical in Figure 5 and Figure 6 ), and the main effect is in the support provided to users who are scanning for potential resources that may help resolve their information needs. In fact, the most significant beneficiaries of the SearchTogether interface are Types 1-2 and 5-6, who are both scanning and having trouble specifying their needs.. In terms of the CIS roles discussed in Section 3.2, we can see that SearchTogether is a great tool for Prospectors (primarily type 2, and sometimes type 1). The support is less oriented at Miners (primarily type 7 and maybe 8). In comparison to the support provided only by the keyword search function (Figure 6 ), however, the support for Miners (type 7) is still much higher. The balance of the odd and even quarters, in each half, means that Domain Experts and Novices are both well supported. The emphasis on the odd eighths of the graph, however, indicates that the support is particularly geared towards Search Novices. As mentioned already, the additional interface elements in Search Together are focused on learning from others, and so there is little additional functionality aimed at search experts. Although forms of implicit collaboration, such as recommender systems (Resnick & Varian, 1997) and even Google's PageRank (Brin & Page, 1998) , have been well researched, investigation into interfaces for explicit, synchronous and asynchronous, collaborative information seeking has only recently received a flurry of interest. This is surprising given that such collaboration during search has been identified many times in the history of Information Seeking (IS) research, discussed in more detail by Hansen and Järvelin (2005) , and that there has been around 20 years of research into Computer Supported Collaborative Work (CSCW). The recent focus on CIS research, however, is a union of these two areas that extends our ideas of IS research with a subset of the tasks being investigated by CSCW. The method of applying the framework, shown in Figure 1 , remains unchanged, but instead of using the 32 solitary definitions of Bates' tactics, we use the re-framed definitions provided above. Put simply, the evaluator, or team of evaluators, considers how every aspect of every interface in the evaluation can be used to perform each of the 32 tactics. In this case, there is only one interface being evaluated: SearchTogether, and so consequently, we are more simply considering how every element of the SearchTogether interface (listed in Table 2 and shown in Figure 2 ) supports each of the 32 tactics. As is clear from Figure 1 , the evaluators quantify this support for tactics provided by interface elements, by counting the number of 'Moves'. The term 'Moves' used here, is defined by Bates (1979b Bates ( , 1979a as being a set of mental and/or physical actions. These moves are larger than the keystroke level model (Card et al., 1980) , for example, and include things like choosing a keyword term (one mental move), entering the keyword into the search box (one physical move), and pressing the search button (a second physical move). Optional moves, including optionally repeated moves, are not counted. We cannot tell, for example, how many terms a user would enter into a keyword search box, nor whether the user will have to scroll to find their answer. These two examples are not counted, but the entering of a search term would be, as would the scanning of the search results. The process of applying the framework is similar to that of a Cognitive Walkthrough, in that an expert, or for more rigor, a group of experts, consider each element of the search interface in turn, and walkthrough the 'Moves' required to use it to perform each of the 32 tactics. In Cognitive Walkthrough evaluations, groups of experts step through a scenario of use, discussing how clear it will be for the user to use it. There is nothing to stop evaluators from asking the Cognitive Walkthrough questions at the same time as using the framework described here, as each tactic represents a potential scenario of use. Comment on URLs The ability to add a comment to a page being vieweddisplayed in the search summary. 8.. Thumbs Up/Down The ability to rate a page positively or negativelydisplayed in the search summary. 9.. Change Search Session The ability to switch between search sessions. 10.. Peaking The ability to see what someone else is looking at. 11.. Following The ability to peak, but have the pages update as the person you are peaking at follows links. 12.. Change Default Search Engine. The ability to change to a different search engine.

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


Breaching Euclidean Distance-Preserving Data Perturbation Using Few Known Inputs We examine Euclidean distance preserving data perturbation as a tool for privacy-preserving data mining. Such perturbations allow many important data mining algorithms, with only minor modification, to be applied to the perturbed data and produce exactly the same results as if applied to the original data, e.g. hierarchical clustering and k-means clustering. However, the issue of how well the original data is hidden needs careful study. We take a step in this direction by assuming the role of an attacker armed with two types of prior information regarding the original data. We examine how well the attacker can recover the original data from the perturbed data and prior information. Our results offer insight into the vulnerabilities of Euclidean distance preserving transformations. Recent interest in the collection and monitoring of data using data mining technology for the purpose of security and business-related applications has raised serious concerns about privacy issues. For example, mining health-care data for security/fraud issues may require analyzing clinical records and pharmacy transaction data of many individuals over a certain area. However, releasing and gathering such diverse information belonging to different parties may violate privacy laws and eventually be a threat to civil liberties. Privacy-Preserving Data Mining (PPDM) strives to provide a solution to this dilemma. It aims to allow useful data patterns to be extracted without compromising privacy.. Data perturbation represents one common approach in PPDM. Here, the original private dataset X is perturbed and the resulting dataset Y is released for analysis. Perturbation approaches typically face a "privacy/accuracy" trade-off. On the one hand, perturbation must not allow the original data records to be adequately recovered. On the other, it must allow "patterns" in the original data to be recovered. In many cases, increased privacy comes at the cost of reduced accuracy and vice versa. For example, Agrawal and Srikant [1] proposed adding randomly generated i.i.d. noise to the dataset. They showed how the distribution from which the original data arose can be estimated using only the perturbed data and the distribution of the noise.. However, Kargupta et al. [2] and Huang et al. [3] pointed out how, in many cases, the noise can preserves the squared Euclidean distance between data tuples on expectation, but, the associated variance is large. 3 We defer the details of this analysis to future work and do not consider additive noise further in this paper.. Multiplicative perturbation: Two traditional multiplicative data perturbation schemes were studied in the statistics community [16] . One multiplies each data element by a random number that has a truncated Gaussian distribution with mean one and small variance. The other takes a logarithmic transformation of the data first, adds multivariate Gaussian noise, then takes the exponential function exp(.) of the noise-added data. These perturbations allow summary statistics (e.g., mean, variance) of the attributes to be estimated, but do not preserve Euclidean distances among records.. To assess the security of traditional multiplicative perturbation together with additive perturbation, Trottini et al. [17] proposed a Bayesian intruder model that considers both prior and posterior knowledge of the data. Their overall strategy of attacking the privacy of perturbed data using prior knowledge is the same as ours. However, they particularly focused on linkage privacy breaches, where an intruder tries to identify the identity (of a person) linked to a specific record; while we are primarily interested in data record recovery. Moreover, they did not consider. Euclidean distance preserving perturbation as we do.. Data anonymization: Samarati and Sweeney [5] , [18] developed the k-anonymity framework wherein the original data is perturbed so that the information for any individual cannot be distinguished from at least k-1 others. Values from the original data are generalized (replaced by a less specific value) to produce the anonymized data. This framework has drawn lots of attention because of its simple privacy definition. A variety of refinements have been proposed, see discussions on k-anonymity in various chapters in [19] . None of these approaches consider. Euclidean distance preserving perturbation as we do.

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


A model and temporal proof system for networks of processes A model and a sound and complete proof system for networks of processca inwbicbcomponent processes communicate exclusively through mcssages is given. The model, an extdon of the tracemodd,candcscribebotbs*onou8and tlqmJdK~ networks. The pof systan udcs vations (m) makes the proof system simple, c!ompddonalandmodular,siIK!eintcmall cebbchid&ll. nleexpres8ivepoweroftemporal logic makes it possible to prove temporal propertics (safc%y, livencas, gwadcnm, etc.) in the systan. and Anumberoftracmodelscxistfornctworhof pruccw [3,4, 18, 22] (noneofwhi&handlesboth sytachronous and asynchronous networh). 'Ihc aclvantageofatrawnodeItthatanctworkis specified solely by it8 input-output behavior. Thir maka it possible to hide irrelevant information, e.g. tb intemd sof the network. OurPamission to copy without fee aI1 or part of thir nut&l ir granted provided that the copies an not mule or difitributcd for direct commercial advantage, the ACM copyright notice and the title of the publiath and ita date appear, and notice in given that copyinp b by pem~kion of tbc Auocktion for Computing Mlchincry. To copy olbcmke, or to rcpubliah, r&m8 A fee and/or qwcKii porminion.

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


From UML specifications to mapping and scheduling of tasks into a NoC, with reliability considerations This paper describes a technique for performing mapping and scheduling of tasks belonging to an executable application into a NoC-based MPSoC, starting from its UML specification. A toolchain is used in order to transform the high-level UML specification into a middle-level representation, which takes the form of an annotated task graph. Such an input task graph is used by an optimization engine for the sake of carrying out the design space exploration. The optimization engine relies on a Population-based Incremental Learning (PBIL) algorithm for performing mapping and scheduling of tasks into the NoC. The PBIL algorithm is also proposed for dynamic mapping of tasks in order to deal with failure events at runtime. Simulation results are promising and exhibit a good performance of the proposed solution when problem size is increased. Complexity of embedded systems and their applications has grown continuously in later years. As a consequence of such a trend, developers are now compelled to conceive optimal ways in order to perform the design process. Nowadays, platforms are composed of several heterogeneous processing elements (PEs) which are capable of executing applications in a concurrent fashion. Multiprocessor System-on-Chip (MPSoC) is a current paradigm for dealing with the increasing demand for performance, as well as constraints such as power consumption or real time. In order to deal with the ever increasing amount of PEs in the system, interconnection among cores or processors becomes a key issue. An ideal interconnection system must provide full connectivity among the set of PEs which compose the system, minimize the communications delay between any pair of PEs, use the interconnection resources efficiently, and scale easily as the number of PEs increases. Network-on-Chip (NoC) is an interconnection paradigm widely used which represents the best current tradeoff among these issues. Apart from the constraints already mentioned, designer also faces a non-trivial issue of distributing tasks efficiently among the available resources in the system. System Level Design (SLD) is a model-based approach aimed to increase the throughput in the design process [1] . The key in SLD is the modeling of the platform and applications features in an independent way in the early stages of the design process. Models allow the early specification of the application, and the estimation of the platform properties before the implementation of the system. Then, the design space exploration may take place, allowing the making of key implementation decisions very early in the design process.. In SLD, the design process involves the use of two kinds of models: the Platform Independent Model (PIM), and the Platform Specific Model (PSM). PIM models are used as an initial specification of the system, without taking into account implementation details. A PIM describes the behavior and constraints of the system at hand. PSM is a link between the PIM and a specific implementation platform. A PSM provides information about the behavior of the application running on a given platform, as well as allows inferring some figures of merit such as execution time, power consumption, and resources usage.. In developing of the PSM, static mapping and scheduling are two key stages, which consist in deciding the physical placement in the NoC of each processing element, as well as its workload, in terms of executable tasks. This paper proposes a methodology for performing mapping and scheduling of executable tasks starting from a PIM specification, which takes the form of a UML model [2] .. The starting point of such a proposal is an UML specification of the intended application, which consists of two diagrams, i.e., Class and State Machine. A transformation tool chain is responsible for taking the UML model and generating an intermediate representation, which highlights the data dependences, implementation figures of merit, and design constraints. This intermediate representation takes the form of an Annotated Acyclic Directed Task Graph (ADAG) and serves as input to the optimization engine, which is founded on a Population-based Incremental Learning (PBIL) algorithm. The optimization engine performs a design space exploration and decides the workload and placement of each resource of the system.. On the other hand, this paper also proposes taking advantage of the optimization engine based on PBIL algorithms for performing dynamic mapping. Dynamic mapping is performed in execution time as a result of two potential situations: in the first place, it could be desirable reallocating the executable tasks onto the available resources as a consequence of changing operating conditions, such as network traffic or workload. Secondly, dynamic mapping is a way to provide fault tolerance. In the event of a failure of a given resource, the system may adapt itself by reallocating its associated tasks to non-faulty resources.. The proposed dynamic strategy is aimed to implement fault tolerance in the system, as a way to providing some level of reliability. If there is a failure in some of the PEs which compose the system, a PBIL algorithm may find the best reallocation scheme for the tasks which were running on the faulty resources, for the sake of guaranteeing their correct execution.. Among the main contributions of this paper it may be mentioned the availability of a holistic solution, capable of performing static mapping and scheduling of executable tasks, starting from an UML specification. The heart of such mapping and scheduling stage is an optimization engine based on a multiobjective adaptive PBIL algorithm. On the other hand, the same multiobjective adaptive PBIL algorithm is customized for the sake of performing dynamic mapping of tasks aimed to provide fault tolerance by means of the reallocation of tasks that were running in faulty processors in fault-free resources.. The remainder of this paper is organized as follows: Section 2 surveys some of the more relevant reported works in the subject of this paper. Section 3 shows and describes the proposed solution, aimed to perform mapping and scheduling, starting from the UML specification. The modifications made to the basic PBIL algorithm are presented, as well as the fault-tolerance strategy based on dynamic mapping. Section 4 shows the experimental results of testing the proposed approach in the context of a 2D NoC architecture, with a deterministic routing scheme. Final remarks and conclusions are presented in Section 5. A mapping and scheduling solution has been described and tested, using as target architecture a NoC, and starting from a UML specification. The mapping and scheduling problems have been treated as a conjoint optimization problem, and solved by means of a PBIL algorithm. A fault tolerance approach, based on the PBIL optimization algorithm was also presented.. With respect to the adaptive PBIL optimization algorithm, the promising results suggest that it is a better tradeoff in terms of performance, when compared with other reported solutions, such as ILP. Adaptive PBIL algorithm seems to be very suitable for dealing with complex multiobjective problems.. Regarding the mapping of tasks in runtime, the performance of the PBIL approach was assessed in terms of both convergence time and mean degradation of the optimization objectives, as a consequence of the remapping strategy for dealing with node failures. Convergence times resulted to be better for problems of higher size, when compared with reported results with ILP optimization. With respect to the mean degradation of the objectives, it was up to 20% with respect to the original optimized values.. Freddy Bolanos is a professor from the National University of Colombia. Currently, he is a Ph.D. candidate from University of Antioquia. His research interests are in design methodologies for digital and embedded systems, computational tools for design automation and digital signal processing. Nader Bagherzadeh is a professor in University of California, Irvine. He holds a Ph.D. degree from the University of Austin, Texas (USA). Dr. Bagherzadeh is interested in low-power and embedded digital signal processing, computer architecture, computer graphics and VLSI design. Within the area of embedded digital signal processing, Dr. Bagherzadeh is interested in the design and VLSI development of reconfigurable processor architectures and their algorithm mapping for highperformance and low-power applications in mobile communications. This technology can be used for 3G and 4G cellular phones, as well as other telecommunications systems. In the area of computer graphics, Dr. Bagherzadeh has been involved in the development of a new scheme for creating computer-generated three-dimensional models of a scene based on previously recorded images captured with a standard digital video camera. These models can be used for military and civilian simulator applications, as well as movie special effects. Currently, embedded systems designers face a set of conflicting elements, such as performance constraints, applications variability, reasonable prototyping times, and physical world constraints such as power consumption or real-time. SLD is an attempt to overcome these issues, and relies in the idea of using high levels of abstraction at the early stages of the design process [3, 4] . Such a high level specification demands the use of a given language. There has been two main trends in this subject: Unified Modeling Language (UML) [5, 6] , and Architecture Analysis and Design Language (AADL) [7] . These languages are suitable for developing the PIM of the system, which may be customized and constrained by means of profiles and annotations.. Regarding the platforms, the most conspicuous trend on embedded systems design, is the integration of the whole system in a single chip (System-on-Chip, SoC). Such integration implies also the availability of several processing units (multicore and manycore systems) which are often connected by means of a Network-on-Chip (NoC).. As developing the PSM implies the modeling of the target architecture, the high level specification model must be transformed into a common domain semantic, which combines details of both the specification and the platform. Among the several options available for such a purpose, a tool called Task Graphs for Free (TGFF) offers a widely used format to generate and represent PSM models in a standard fashion by means of ADAGs [8] .. The design process of an embedded system which is based on the NoC paradigm implies two critical stages: mapping and scheduling. Such stages affect a set of figures of merit which are often in conflict. For the sake of dealing with the complexity involved with mapping and scheduling, some approaches treat each problem independently [9] [10] [11] . Some other solutions [12] [13] [14] are able to perform these two stages in a joint way, but are restricted to homogeneous architectures, i.e., those multicore architectures which have a set of identical processing elements. Finally, some other reported works disregard the communication assessments in performing mapping and scheduling [15, 16] .. Singh et al. [17] propose a hybrid strategy for mapping and scheduling of applications into heterogeneous architectures (i.e., multicore architectures with several kinds of processing elements). The hybrid nature of such approach implies that mapping and scheduling solutions are calculated in two steps: the computation of tradeoff points and resource throughput analysis is performed in design time, because these computations are the most computingintensive. Then, a run-time optimizer chooses the best tradeoff point for a given application which is going to run in the system. The main problem with this approach is related with its inability for finding new tradeoff points, if new applications need to be mapped onto the NoC.. The work reported in [18] , is aimed to perform mapping in design time for heterogeneous architectures. Both computation and communication assessments are taken into account in the optimization process, which is performed via a simulated annealing algorithm. Such a kind of algorithm may exhibit local-optimum issues [19] . On the other hand, population-based approaches are more robust for dealing with complex optimization problems and multiobjective scenarios [20] .. In the work described in [21] , a solution based on genetic algorithms for performing mapping and scheduling of applications on heterogeneous architectures is described. Genetic algorithms are the most known instance of population-based techniques. The algorithm optimizes the power consumption of the final implementation, while deals with timing constraints. The target architecture is a 2-D mesh, and a wormhole routing schema has been considered for simulating the system. Table 1 summarizes some of the reported solutions for mapping of tasks on NoC-based architectures. Several classification criteria have been taken into account. Second column of Table 1 reports whether the target architecture of the referred approach is homogeneous or heterogeneous. Third column is devoted to the taxonomy of the approaches according with the moment in which such strategies take place: static for design time, Dynamic for runtime, and hybrid. Fourth column shows the nature of the optimization engine.. Some of the reported algorithms in Table 1 are Genetic Algorithms (GA), Simulated Annealing (SA), and Integer Linear Programming (ILP). The common domain semantic or intermediate representation is depicted in fifth column of Table 1 . As can be seen, task graphs are the most common solution regarding this issue. Finally, last column of Table 1 shows the objectives that are taken into account in the optimization process.. As depicted in Table 1 , the current proposal targets heterogeneous architectures. In the same way, the mapping may be static or hybrid, depending on whether a recovery fault strategy is going to be implemented. The optimization engine is based on a PBIL algorithm, which is multiobjective. The intermediate representation or common domain semantic for the proposed solution corresponds to a task graph.

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


Creating contextual help for GUIs using screenshots Contextual help is effective for learning how to use GUIs by showing instructions and highlights on the actual interface rather than in a separate viewer. However, end-users and third-party tech support typically cannot create contextual help to assist other users because it requires programming skill and source code access. We present a creation tool for contextual help that allows users to apply common computer skills-taking screenshots and writing simple scripts. We perform pixel analysis on screenshots to make this tool applicable to a wide range of applications and platforms without source code access. We evaluated the tool's usability with three groups of participants: developers, instructors, and tech support. We further validated the applicability of our tool with 60 real tasks supported by the tech support of a university campus. Contextual help has been shown effective for learning graphical user interfaces [3, 4, 13, 16, 17, 18, 25] . Unlike traditional help based on screenshots or screencasts, contextual help allows users to receive help in the actual interface they are interacting with, rather than in another help interface such as in a web browser or a video player. For example, with contextual help, users can see a dropdown box highlighted in the live interface and an instruction such as "select the WEP key" displayed next to it. Users can immediately practice the step as instructed. In contrast, with traditional help, users may see a captured screenshot of that dropdown box on a webpage. In order to practice the step, users need to switch to the live interface and try to locate the dropdown box that matches the screenshot. Also, they need to remember the instruction they read on the webpage regarding which option to select. This process illustrates traditional help's two usability problems-split attention and delayed practice [21] that could be avoided simply by presenting help contextually.. However, for help designers, it is difficult to create GUI help for other users that can be presented contextually. For instance, to add a contextual highlight to a button, one may need to identify the source code responsible for that button and modify the code to draw highlight on the button [16, 17] . Yet, many GUIs are proprietary. Third-party help designers are prevented from making contextual help to support these GUIs. Alternatively, help designers can use the accessibility API to determine that button's screen location and write an external program to draw highlight directly at that location on the screen [3, 4] . Yet, for many GUIs, such API is either unavailable or unsupported [15] . Moreover, even if both the source code and the accessibility API are available, using them still requires high-level programming skills, a requirement that alienates many users from creating contextual help to assist other users.. In this work, we aimed to democratize contextual help. Specifically, we developed a tool to empower help design- Creating contextual help for a GUI. The window in the far back is the interface of the International Childrenʼs Digital Library. A separate window in the front displays existing help content for this interface. Our tool enables help designers to create help content that can be presented contextually in the actual interface (i.e., yellow callout and red circle) by writing a simple script and taking screenshots, as shown in the editor below. (www.childrenslibrary.org) ers in the general public (e.g., advanced users, computer instructors, third-party tech support) to create contextual help. Rather than requiring advanced programming skills, our tool allows a help designer to apply basic computer skills including taking screenshots and writing simple markup similar to HTML or Wiki. At design time, a help designer can select an interface component by capturing the component's screenshot (e.g.,. ) and then specify the type of contextual help to add to that component using a simple visual markup (e.g., highlight( )). When the help is presented to a user, the pixels on the user's screen are visually searched to locate the component that matches the screenshot. Once the component is found, contextual help can be drawn near the component. This visual search is performed using the Sikuli library [32] , an open-source library for search and automation based on pixel analysis. The generalizability of screen pixels across all applications and platforms, a property already demonstrated by various applications [1, 2, 7, 15, 19, 20, 24, 33] , allows our method to be applicable to any GUI regardless whether the source code or accessibility APIs are available. The ability to locate widgets based on screenshots is provided by the Sikuli Library, an open-source cross-platform library for automating graphical user interfaces based on screenshots [32] . Rendering of contextual help on an interface is achieved by painting on a full screen transparent window that always stays on top. This transparent window is implemented based on Java Swing's JWindow class. The algorithm for tracking the movement of a target and repositioning relevant help content dynamically is implemented in Java. The WISIWYG editor is implemented in Java.

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


Dual Carrier Probing for Spaceborne SAR Imaging Abstract. Spaceborne imaging of the Earth's surface by synthetic aperture radar (SAR) may be adversely affected by the ionosphere that causes distortions of the signals emitted and received by the radar antenna. In our previous publication on the subject [SIAM J. Imaging Sci., 2 (2009) pp. 140-182], we have analyzed those distortions for the inhomogeneous ionosphere described by the cold plasma model. Based on the analysis, we have concluded that the deterioration of SAR images was due to the mismatch between certain parameters of the actual received signal, which is slowed down by the temporal dispersion in the ionosphere, and the corresponding parameters of the matched filter, which is taken as if the propagation were unobstructed. Consequently, to improve the quality of the images, the filter must be corrected. However, to get the appropriate correction, one needs to know some key characteristics of the ionosphere precisely at the time and place the image is taken. To obtain those characteristics, we currently propose probing the terrain, and hence the ionosphere, on two distinct carrier frequencies. We also investigate the performance of the matched filters that were corrected this way and show that the final quality of the images, i.e., their resolution and sharpness evaluated using the SAR ambiguity theory, indeed improves.Key words. synthetic aperture radar, Earth's ionosphere, dispersion of radio waves, image distortions, cold plasma, matched filter, multicarrier probing, correction of the filter, range and azimuthal resolution, image sharpness AMS subject classifications.

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


Completion of overdetermined parabolic PDEs In this paper we apply methods of commutative algebra to analysis of systems of PDEs. More precisely, we show that systems which are parabolic in a generalized sense are equivalent to certain completed systems which are parabolic in the standard sense. We also propose a constructive method to get this completion, and Gröbner basis methods, via symbol modules of the systems, play a central role in practical computations. Moreover, we can easily construct systems which are not parabolic in the generalized sense but nevertheless become parabolic when completed. We continue here the work which was started in ). There we studied elliptic systems and their generalization due to Douglis and Nirenberg (1955) . We showed that while Douglis-Nirenberg theory provides a framework to study certain square systems which are more general than standard elliptic systems, this theory is not needed when we allow overdetermined systems. Indeed, given any DN-elliptic system we can always complete it to an (overdetermined) elliptic system in the standard sense. Moreover, we constructed examples of systems which are not even DN-elliptic, but become elliptic when completed.. In the context of time dependent problems Solonnikov (1965) extended the approach of Douglis and Niremberg to parabolic problems. Again this generalization of parabolicity is convenient when one wants to restrict the attention to square systems. However, there are natural physical models which lead to overdetermined problems anyway, so in general we cannot restrict the attention to square systems only.. In this paper we show that the approach of can be adapted to parabolic problems. Evidently the theory becomes more complicated because we must take into account the special role played by the time variable. However, the conclusions can be stated in a similar way: any S-parabolic system becomes parabolic when completed, and there are systems which are not even S-parabolic initially, but become parabolic when completed. Our completion procedure is constructive; it just requires syzygy computations which can be done using Gröbner basis techniques, for example with the program Singular 1 . There are several reasons why completion processes are important in the theory of PDEs. Many naturally occurring systems are either elliptic, parabolic or hyperbolic, and therefore there is an enormous literature dealing with these standard types of systems. Hence given some arbitrary system it is essential to determine in which class (if any) it belongs. So if a system is initially not parabolic but becomes parabolic when completed, then we can study the properties of solutions or well-posedness of boundary value problems by applying standard results to the completed system.. Of course, there are some results for square S-parabolic systems (Solonnikov, 1965; Eidelman, 1994) , but as far as we know this theory has not been extended to overdetermined case. Anyway even in square case completing the system produces a system with better formal properties which helps in the further analysis of the system. Completion is even interesting from the point of view of numerical computations. For example in (Mohammadi and Tuomela, 2005) it was shown that in elliptic case the completed form of the system is solvable with simpler and more generic numerical methods than the original system. Indeed, complex numerical methods are often required to recover the properties which are missed by considering the initial system.. The structure of the paper is as follows. First we define S-parabolic systems and give some examples of situations where S-parabolic overdetermined systems naturally occur. Then we review and derive necessary results of commutative algebra needed to prove our results on parabolic systems. Next we discuss various completion procedures and their relevance. Finally, we prove our main results, and give examples which illustrate them.

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