Molecular Surface Abstraction In this paper we introduce a visualization technique that provides an abstracted view of the shape and spatio-physico-chemical properties of complex molecules. Unlike existing molecular viewing methods, our approach suppresses small details to facilitate rapid comprehension, yet marks the location of significant features so they remain visible. Our approach uses a combination of filters and mesh restructuring to generate a simplified representation that conveys the overall shape and spatio-physico-chemical properties (e.g. electrostatic charge). Surface markings are then used in the place of important removed details, as well as to supply additional information. These simplified representations are amenable to display using stylized rendering algorithms to further enhance comprehension. Our initial experience suggests that our approach is particularly useful in browsing collections of large molecules and in readily making comparisons between them. One goal of structural biology is to understand the chemical and physical properties of macro-molecules (especially proteins) and how this enables the chemical reactions behind life's processes. In order to study these large and complex molecules, biochemists rely on visualizations that provide various levels of abstraction. The more abstract visualizations portray a molecule's internal structure. However, protein interactions involve the "functional surface" presented: to a large degree, the internal structure simply exists as scaffolding to place various forces and chemical properties in proper spatial relationships with one another. While visualizations of these functional surfaces exist, they portray all of the detail and complexity of large molecules. The complexity of these visualizations is problematic as they do not afford rapid assessment, and details may obscure larger scale phenomena. To date, the degree of abstraction provided for internal structure has not been shown for external properties.. In this paper, we introduce abstracted molecular surfaces, a visualization technique that provides for abstracted views of the boundary of a molecule and the physical and chemical properties at this boundary. Our goal is to provide simplified visual representations of molecules such that scientists can rapidly assess the most significant features of their surfaces, even when drawn at a small size. Such abstracted views are useful for rapid browsing and comparison, but also to study molecules while unencumbered by small details. Once general notions are determined from the abstracted views, a scientist can make a focused examination of a more detailed representation.. Our abstraction mechanism processes the detailed information about the molecule to provide a visually simplified representation. The shape of the molecular surface is simplified, removing small details to better convey the basic shape. Significant shape features, such as clefts and pockets, become more prominent when the visual clutter of smaller features is removed. A comparison with other display methods is shown in Figure 1 and Figure 2 . Additionally, our abstracted display is more amenable to stylized rendering that accentuates the shape, retains readability at lower resolutions allowing gallery displays, and allows for the use of surface markings to display other information.. Our technique also uses abstraction on properties other than shape. Scalar fields along the surface, such as electrostatic charge, are simplified for clarity, and other properties are displayed as symbols on the surface. These presentations allow significant features to be seen quickly and clearly. We are motivated by an increased need for tools that enable quick and comparative visual analysis. Advances in structural biology, such as high-throughput crystallography and NMR spectroscopy, together with better prediction and simulation, have led to a marked increase in the number of proteins for which the three-dimensional atomic structure is known. Repositories for structural information, such as the PDB [2] , have in turn grown dramatically. This wealth of information creates the need to look at large collections of molecules, requiring quick judgement.. Our technique, detailed in §3, relies on filtering of both the shape and surface fields to form abstractions. We describe how we adapt standard methods for shape smoothing by explicitly removing regions where the methods are likely to fail. §3.2 describes how surface decals can be used to display removed features, as well as other information. §3.3 describes the methods we use for more effectively portraying scalar fields on the surfaces, and §3.4 describes how stylized rendering techniques are used. The symbolic display of smaller features has a number of advantages. It makes shape features more readily apparent from a wider range of viewing directions (Figure 11 ). Symbols are visible in static displays, while shape features often are only obvious in regular displays when the object is moving. At small sizes, sampling issues may make small geometric features difficult to display. With surface textures, texture sampling hardware can perform sampling using mip-mapping, and decals can be omitted at very small sizes.. Displaying symbols as decals on the surface provides a mechanism for indicating a variety of properties about the underlying molecule. Such decaling would be difficult on non-abstracted surfaces: their nonsmoothness would make parameterization difficult, and the small features would obscure the symbols with clutter and occlusion. Because the symbolic display is imprecise, they fit in better with the abstracted surfaces as abstracted surfaces imply a lack of positional precision.. Abstracted surfaces are also more amenable to mesh decimation for performance enhancement. This can be particularly important when displaying multiple molecules simultaneously in an interactive system.. Together, these features of abstracted surfaces suggest that they will be useful in creating gallery views that allow a number of molecules to be shown simultaneously for browsing and comparison. Without a reduction in detail, a gallery of surfaces would be overwhelming. In a gallery display, the size and resolution of each molecule's depiction is limited. There is also less opportunity for interactively rotating each molecule to find views that show shape features.. Many of the the limitations of our initial prototype should be addressed. Better shape feature finding would allow us to translate more of the shape into surface symbols to provide further abstraction. Incorporating dynamics would help us better target unstable features for removal. Better decal design should include textures that help convey shape more precisely. And methods are required to apply decals correctly on decimated meshes and patches with non-planar topology. To be truly useful, abstracted surfaces will need to be integrated into existing tools and workflows.. Our abstraction has been applied to study features at a specific scale. Exploring other scales would require retuning the methods, and possibly designing a new set of feature detectors. Studying molecules at scales much different than the atomic level interactions we consider, such as macro-molecular assemblies, would provide more challenges, including performance.. The most important step for our work is to assess how effective these representations are for scientists. To date, our testing of abstracted molecular surfaces with our biochemist collaborators has been limited, so our observations are anecdotal. In all cases, their initial reactions were extremely positive. They immediately appreciated the simplified views. On molecules familiar to them the views matched what they "expected" them to look like. In several cases they would make comments like "I never noticed that before, I wonder ..." which is particularly encouraging as it implies a new way of looking at things might lead to new hypotheses. In viewing unfamiliar molecules, they were able to spot important functional areas quickly. We have implemented our molecular surface abstraction techniques in our bespoke visualization testbed that runs under Windows on PCs. Our system relies on standard tools for computing the surfaces and other properties. For all examples in this paper, we use MSMS [29] to generate the molecular surface meshes, APBS [1] to compute electrostatic charge distributions, and an implementation of Ligsite [19] to identify putative binding pockets.. We emphasize that abstraction is not the same as changing the probe size. Larger probe sizes will fill in crevices that may be important pockets, while leaving bumpy details that detract from comprehension as shown in Figure 3 . Indeed, abstraction can be applied to surfaces generated with any probe size. All examples in this paper were generated using a probe size of 1.5 Angstroms, (except Figure 3b) .. Figures throughout the paper show the results of our methods applied to various molecules. Figure 10 shows how important aspects of the molecule are made clear by abstraction. Figure 12 provides a gallery of examples.. Major shape features, such as pockets and clefts, become very clear on abstracted surfaces because there are fewer small details to distract the viewer, and the smoothness allows silhouette shading, contouring and ambient occlusion lighting to emphasize the shape.. The asymptotic complexity of our method scales linearly with the number of vertices of the input mesh, which scales (at worst) linearly with the number of atoms in the molecule. This was confirmed empirically in our performance evaluation.. To assess performance of our prototype, we selected 60 proteins of various sizes from the Astex test set [25] . When determining the timings for the abstraction process, we consider smoothing, decal construction, and surface field relaxation; but not the preprocesses to determine the initial mesh, electrostatic charges, or binding pockets. We also exclude the time required to load data from disk and compute ambient occlusion lighting. Timings were performed on a PC with an Athlon 4400 CPU, 2GB of RAM, and NVidia 7900GT graphics.. On our test set, the time needed to perform abstraction ranged between 7 and 113 seconds. These correspond to the smallest molecule in the set (1CBS, 137 residues, 1092 atoms) and the largest (1CX2, 2200, 21764). The expected linear performance scaling was observed.. Once abstracted, the models are displayed in real time using the graphics hardware. Our system maintained at least 30fps on all molecules in the test set. Our ambient occlusion precomputation implementation is not realtime (about 10 seconds for the largest molecule in the test set), but is computed in parallel and its results continuously displayed on the model's surface. The abstracted model, including its ambient occlusion lighting, could be precomputed and stored. Because proteins predominantly interact with other molecules noncovalently, their atomic forces effectively create shells that must fit together. The metaphor of a "lock and key" dates back over a century - [33] cites an 1894 paper by Fisher. While flexible water balloons or bean bags may be more appropriate metaphors than rigid pieces of metal, the central property governing how proteins interact is the nonpenetration of their boundaries. Because the forces fall off rapidly with distance, treating the boundary as a surface (in the mathematical sense) is appropriate.. The definition of this geometric boundary surface is varied. The pioneering work of Richards (see [8] for a historical survey) introduced functional notions of these surfaces. The notion of solvent accessibility leads to molecular surfaces that provide a smooth description of the boundary. The molecular (solvent excluded) surface is the surface that a spherical probe can contact without intersecting the molecule. Connolly provided practical methods for sampling these surfaces [6, 7] , which have subsequently been refined in both efficiency and quality [3, 29, 39] . Even more recent works provide methods, such as in [5] , that can produce high quality representations of these surfaces.. The geometric molecular surface is only one of many properties that contribute to protein interactions. There is considerable evidence that electrostatics play a critical role in protein-protein interactions (see [32] for a survey of early work). Other properties that influence interactions include hydrogen bonds (and a molecule's ability to form them), polarity, and hydrophobicity. Because these properties fall off rapidly with distance, it is reasonable to consider them as scalar fields on the molecular surface when studying molecular interactions.. Molecules are continually in motion. In proteins, the motions range The standard approach (a), drawn with Pymol [11] , shows the molecular surface pseudo-colored (from red to blue) with the charge distribution. Qutemol [34] (b), applies stylized lighting to a space filling representation. (c) applies stylized shading directly to the molecular surface. (d) shows our abstracted surface depicted with stylized rendering. This molecule has binding partners that fit into channels formed in each of its lobes. From this view, one such channel should be visible in the center of the right lobe. This is made more readily visible by abstraction. from thermal vibrations to large conformational changes. This incessant movement, coupled with uncertainty in the measurement of the atomic coordinates, means that any static configuration of a molecule is merely a snapshot of its possible state. Therefore, smaller details of the shape and other fields of the molecule are of reduced significance as they are likely changing continuously.

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


Challenges for the multilingual Web of Data The Web has witnessed an enormous growth in the amount of semantic information published in recent years. This growth has been stimulated to a large extent by the emergence of Linked Data. Although this brings us a big step closer to the vision of a Semantic Web, it also raises new issues such as the need for dealing with information expressed in different natural languages. Indeed, although the Web of Data can contain any kind of information in any language, it still lacks explicit mechanisms to automatically reconcile such information when it is expressed in different languages. This leads to situations in which data expressed in a certain language is not easily accessible to speakers of other languages.The Web of Data shows the potential for being extended to a truly multilingual web as vocabularies and data can be published in a language-independent fashion, while associated language-dependent (linguistic) information supporting the access across languages can be stored separately. In this sense, the multilingual Web of Data can be realized in our view as a layer of services and resources on top of the existing Linked Data infrastructure adding i) linguistic information for data and vocabularies in different languages, ii) mappings between data with labels in different languages, and iii) services to dynamically access and traverse Linked Data across different languages.In this article we present this vision of a multilingual Web of Data. We discuss challenges that need to be addressed to make this vision come true and discuss the role that techniques such as ontology localization, ontology mapping, and cross-lingual ontology-based information access and presentation will play in achieving this. Further, we propose an initial architecture and describe a roadmap that can provide a basis for the implementation of this vision. Tim Berners-Lee envisioned the Semantic Web as "an extension of the current Web in which information is given well-defined meaning, better enabling computers and people to work in cooperation" [2] . Since then, the Web has witnessed an enormous growth in the amount of semantic information published in recent years, which has been stimulated to a large extent by the emergence of the Linked Data initiative [3, 4] . Linked Data is a term referring to the recommended best practices for exposing, sharing, and connecting RDF [23] data via dereferenceable URIs on the Semantic Web. The crucial idea behind Linked data is to "connect data" using Semantic Web techniques and building on current Web infrastructure, thus transforming the Web into a "global database" in which resources are linked across sites and where facts and related knowledge are available for consumption by advanced, knowledgebased web applications. In the rest of this paper we will use the term "Web of Data" exactly in this way. Linked Data has found a wide acceptance among governments 1 , media companies, and academia all over the world [20, 3, 25] . These early adopters have clearly identified the potential benefits of publishing data in Linked Data format and are publishing their data sources following the Linked Data principles. The so called Linking Open Data (LOD) initiative 2 has further stimulated the emergence and adoption of the Linked Data principles in the construction of a web of linked open data. Now that massive amounts of semantic data are becoming available on the Web, the question emerges how end users should access and interact with this wealth of data. As language is the most important means by which humans communicate, it is reasonable to assume that users would find a language-mediated way of accessing the Web of Data intuitive, appealing and effortless. In fact, the traditional Web is language-specific and information can only be accessed across languages if web sites are translated into the corresponding languages. In contrast, the Semantic Web can be assumed to be inherently language-independent, which means that information is given well-defined meaning by formally defining vocabularies or ontologies, building on semantic web languages such as OWL [1] or RDF [23] . In this sense, we argue that the Web of Data and hence the Semantic Web offer a great opportunity to make web information broadly accessible, independent of culture and native language. The main challenge involved in building this "Multilingual Semantic Web" is, however, to bridge the gap between language-specific information needs of users and language-independent semantic content.. In spite of the fact that much of the information available as linked data is by its nature language-independent, many resources also include linguistic information in the form of RDF(S) or SKOS [26] labels (rdfs:label, skos:prefLabel, etc.) which documents how a resource is named in multiple languages. Furthermore, by the use of standards such as the IETF language tags (RFC 5646), which builds on the ISO standard for representing language, script and region (ISO-639, 15924 and 3166 respectively), a general standard for the representation of labels in different languages, dialects, and writing systems has already been established. We also note here that some resources have linguistic information encoded within the label itself (generally, within the URI's fragment identifier). Furthermore, internationalized resource identifiers (IRI) were introduced by RFC 3987 to allow for non-ASCII characters to be included within these identifiers. However, although IRIs allow for constructing more human readable identifiers, they are not intended to represent complex linguistic information. We refer to [28] for an in-depth discussion on the use of local names and labels to describe resources in several natural languages.. Nowadays, most of the ontologies used in the Semantic Web as well as most of the data published according to the Linked Data principles have labels expressed in English 3 only, leading to an English bias in the Semantic Web which does not mirror the actual language distribution in the Web. It is likely that this situation will change as soon as more language communities start publishing their data in the Linked Data format. Indeed, our hypothesis is that this will be a growing trend shortly. At present, there are already many non-English Linked Data sources, e.g., Dogmazic 4 , a French vocabulary of Creative Commons music, GeoLinkedData.es 5 , an open initiative to publish Spanish geospatial data in Linked Data (in Spanish, Catalan, and Galician, among other languages), as well as many other governmental initiatives originating from European Commission directives with the goal of making data of public interest available in an open fashion. Therefore, once monolingual resources in other languages are transformed into the Linked Data format, non-English monolingual Linked Data will increase in size over the years, creating "islands" of monolingual data. This will render the task of providing cross-language access to Linked Data even more challenging. These "islands" of monolingual Linked Data will result in situations in which access is restricted to speakers of the "right language". It is our standpoint that knowledge access which is restricted to speakers of certain languages does not match the open spirit of the Web of Data where most of the information is open and therefore accessible to anybody in principle. Thus, in this paper, we propose an infrastructure that has the potential of creating a level playing field offering equal opportunities for speakers of different languages when accessing web data.. In this article we pose ourselves several simple questions: How can universal access to the Web of Data be guaranteed to users, independent of the language they speak? How can the retrieval of Linked Data be supported if that data is distributed across unconnected monolingual data sources? With these questions in mind, one of the major challenges in future Semantic Web research will be to make sure that no matter in which language ontology terms are expressed, nor in which language the relevant data is published as Linked Data, cross-lingual access to knowledge and data has to be supported. Since the Web of Data is now becoming a reality, and the trend to transform databases into the Linked Data format is acquiring momentum, we need to be ready to manage multilingual access to ontologies and data. The main contribution of this paper is to identify and analyze such challenges as well as to propose a set of specific strategies in order to address them.. The remainder of the article is organized as follows. In Section 2, we present a motivating scenario and raise some specific research questions. Section 3 presents a proposal for architecture of services that might enable us to make the vision of a multilingual Web of Data true. A discussion on the different challenges involved in the creation of a multilingual Web of Data is presented in Section 4 and a roadmap of the tasks ahead is proposed in Section 5. Finally, conclusions are presented in Section 6. The traditional Web is characterized by the fact that information is only available across languages if web sites are translated, thus necessarily leading to duplication of information. The Web of Data has the potential for extending the Web to a truly multilingual Web as information can be published in a language-independent fashion using the RDF data model and following the Linked Data principles. The multilingual Web of Data can be realized, in our view, as a layer of services and resources on top of Linked Data which adds i) linguistic information in different languages ii) mappings between data with labels in different languages, and iii) services to dynamically access and traverse the Linked Data across different languages. All these extensions are challenging, but current Semantic Web and Linked Data technologies are mature enough to render the vision feasible.. In this paper we have discussed the challenges involved in building a multilingual Web of Data and proposed a general architecture for realizing this. A multilingual Web of Data seems feasible given the current state of Semantic Web Technology, but in order to build it we need to understand that in the same way that much of the traditional Web is a Web for people made by people as a collective, a multilingual Web of Data can at best only provide the infrastructure which needs to be "populated" by people, adding mappings between vocabularies in different languages, lexica for ontologies etc. This is, indeed, one of the most challenging aspects of the roadmap towards a multilingual Web of Data envisioned in this paper.

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


GGobi: Evolving from XGobi into an Extensible Framework for Interactive Data Visualization GGobi is a direct descendent of a data visualization system called XGobi that has been around since the early 1990's. GGobi's new features include multiple plotting windows, a color lookup table manager, and an XML (Extensible Markup Language) file format for data. Perhaps the biggest advance is that GGobi can be easily extended, either by being embedded in other software or by the addition of plugins; either way, it can be controlled using an API (Application Programming Interface). An illustration of its extensibility is that it can be embedded in R. The result is a full marriage between GGobi's direct manipulation graphical environment and R's familiar extensible environment for statistical data analysis. This paper describes GGobi, an interactive and dynamic software system for data visualization. GGobi is the result of a significant redesign of the older XGobi (Swayne et al., 1992 (Swayne et al., , 1998 system, whose development spanned roughly the past decade. GGobi differs from XGobi in many ways, and it is those differences that explain best why we are undertaking a radical redesign. Therefore this paper is largely structured as a comparison of GGobi and XGobi. Here are some of the main points: • GGobi's appearance: GGobi's appearance has changed in several ways, some of which can be seen in Figure 1 : 1) It uses a different graphical toolkit with a more contemporary look and feel and a larger set of components. The new toolkit is called GTK+, which explains the initial G in GGobi. 2) With XGobi, there is in general a single visible plot per process; to look at multiple views of the same data, one launches multiple processes. A single GGobi session can support multiple plots, and a single process can support multiple independent GGobi sessions. 3) While XGobi supported essentially a single scatterplot and a subordinate parallel coordinate plot, GGobi supports several types of plots: scatterplots, parallel coordinate plots, scatterplot matrices, and time series plots. Other changes in GGobi's appearance and repertoire of tools include interactive tools to specify and tune color maps, the ability to add variables on the fly, and a new interface for view scaling (panning and zooming).. • Portability: A major advantage of using the new toolkit (GTK+) is portability.. It originated in the Linux R community, but it has been ported to Microsoft Windows TM and is being ported to the Macintosh R . It was complicated to run XGobi on a machine running Windows, because it required installation of an X Window System server. GGobi, on the other hand, runs directly under Windows.. • GGobi's data format: GGobi's data format has been extended significantly from that of XGobi. To describe a set of data for the older XGobi, one creates a set of files with a common base name, with the data in one file, and other files for the variable names, case labels, point colors, point glyphs, lines, and so on. GGobi continues to support this scheme in a limited way.. Linux is a registered trademark of Linus Torvalds. Microsoft Windows is a trademark of Microsoft, Inc.. Macintosh is a registered trademark of Apple Computer, Inc.. However, the new format supports many new features that are too complex to describe in the multiple file format. This new format uses a single file in XML TM , the Extensible Markup Language, which is emerging as a standard language for specifying structured documents and data formats. The use of a single file aids consistency of the different elements of the input, making it easier to validate and maintain. An XML document looks similar to an HTML document, but it allows one to introduce new markup elements. The availability of tools in many different programming languages to read and write XML will help in using a single data file across different applications. The use of XML in GGobi allows complex characteristics and relationships in data to be specified. For example, multiple datasets can be entered in a single XML file, and specifications can be included for linking them. Using the XML format, GGobi can read compressed files and can read files over the network.. • Embedding GGobi in other software: GGobi's ability to interface with other software has become much richer than XGobi's. The designers of XGobi had always intended that it be used in conjunction with some analytical software, but XGobi offers very limited support for such use -one can launch an XGobi process from the S command line, but no live connection is maintained. Interprocess communication was used to maintain a live connection between XGobi and ArcView, but the same approach couldn't be easily used with S. By contrast, GGobi can be treated as a C library and directly embedded in (or linked with) other software, then controlled using an API (Application Programming Interface). This allows GGobi functionality to be integrated into one's own stand-alone application and also provided as an add-on to existing languages and scripting environments. For example, it can be controlled from the R command line or from a Perl or Python script. One can think of this relationship as adding interactive dynamic graphics to the environment of the scripting language, or as adding a programming language and a set of libraries to GGobi.. • Extending GGobi with plugins: Another way to extend GGobi is by developing "plugins". The plugin mechanism allows the authors and other developers to provide add-on extensions to GGobi that are not part of the core design. These might introduce new plot types, new ways to read data (such as databases and files with special formats), or auxiliary tools to view and manipulate data. This facility, in combination with the GGobi API, makes it feasible to create customized versions of GGobi for different audiences and data analysis contexts.. The rest of the paper is structured as follows. Section 2 introduces XML and describes GGobi's data format. Section 3 briefly describes GGobi's graphical user interface (GUI), and then discusses in more detail some of the differences between GGobi's GUI and data management and those of XGobi. Section 4 describes how GGobi can be compiled into a library, embedded in other software and controlled using an application programming interface (API). Section 5 describes the use of plugins to extend ggobi. Finally, section 6 introduces GGobi with an example. In the first part of the example, GGobi is used alone for a preliminary investigation of some data; the second part illustrates how GGobi and R are can be used in conjunction. (R (Ihaka and Gentleman, 1996) is a freely available implementation of the S language (Becker et al., 1988) .) 2 GGobi's data format. The XGobi input format uses a set of files with a common base name and different extensions to specify data, variable names, record labels, point colors and glyphs, edges, connections between records, etc. It has the advantage that each file is easy to describe and read, with line i in one file corresponding to line i in several other files. This simple scheme has its disadvantages, too. If one file is changed, all the others may have to be changed, so it is difficult to extend or modify a set of files. More importantly, it is difficult to specify any other relationships among files than this simple line-to-line correspondence.. GGobi will continue to support this scheme for basic data input: the data, variable and case labels, and point glyphs and colors ("foo.dat", "foo.col", "foo.row", "foo.glyphs", "foo.colors").. The new XML file format makes datasets easier to share and maintain and allows the specification of more complicated relationships within a single dataset and between datasets. It has the single disadvantage that it is no longer easily human-readable, but we consider that a minor concern when compared with the advantages. This smooth integration of R and GGobi is an example of a modern approach to component-based software inter-operability in statistical computing. No single piece of software has to do everything, but any piece of software can be designed to work well with others. GGobi's design was greatly changed so that it could be compiled into a library and controlled via an API; R was changed so that it could accommodate GGobi's event loop along with its own. This software combination may hold special interest for teachers of statistical computing courses. If R or S is already on the syllabus, this environment should make it easier to introduce interactive graphics, and it should also be a good platform for student projects.. We also hope that this combination will encourage other software developers to pursue a component-based strategy instead of "reinventing the wheel" whenever they need a bit of new functionality. By relying on existing software, and designing with that software in mind, new tools can be created that are more powerful, more reliable and more useful than if they are created in a vacuum.

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


Cone fields and topological sampling in manifolds with bounded curvature Often noisy point clouds are given as an approximation of a particular compact set of interest. A finite point cloud is a compact set. This paper proves a reconstruction theorem which gives a sufficient condition, as a bound on the Hausdorff distance between two compact sets, for when certain offsets of these two sets are homotopic in terms of the absence of µ-critical points in an annular region. Since an offset of a set deformation retracts to the set itself provided that there are no critical points of the distance function nearby, we can use this theorem to show when the offset of a point cloud is homotopy equivalent to the set it is sampled from. The ambient space can be any Riemannian manifold but we focus on ambient manifolds which have nowhere negative curvature. In the process, we prove stability theorems for µ-critical points when the ambient space is a manifold. In modern science and engineering a common problem is understanding some shape from a point cloud sampled from that shape. This point cloud should be thought of as some finite number of (potentially) noisy samples. Topology and geometry are considered very natural tools in such data analysis (see e.g. [14] and [4] ). One reason is because topological invariants are often more stable under noise. We will want to understand the homotopy type of a set -two objects are homotopy equivalent if there is a way to continuously deform one object into another.. Often we wish to know the extent to which we can, and how to, reconstruct shapes from noisy point clouds. Naturally the more restrictions on the space the easier it is to reconstruct. The first area of focus was the study of surfaces in R 3 , motivated by problems such as medical imaging, visualization and reverse engineering of physical objects. Algorithms with theoretical guaranties exist for smooth closed surfaces with sufficient dense samples. The sampling conditions are based on the concept of -sampling. A point cloud of A is an -sample if for every point p ∈ A there is some sample point at distance at most lfs(p) away, where lfs(p) (called the local feature size at p) is the distance from p to the medial axis of A. The Cocone Algorithm produces a homeomorphic set from any 0.06-sampling [1] of a smooth closed surface. This process has been extended to smooth surfaces with boundaries [9] . However given an arbitrary compact set, the best we can hope for is to find some nearby set that is homotopy equivalent. For instance from a point cloud we can not tell apart the original set and the same set with a slight thickening in places.. One of the simplest methods of reconstruction is to use the offset of a sampling. Given a set K, the r-offset of K, denoted K r , is defined to be {x ∈ M : d(x, K) ≤ r}. This is topologically the same as taking the α-shape of data points [12] or taking the Cech complex [6] . This leads to the problem of finding theoretical guarantees as to when an offset of a sampling has the same topology (i.e. homotopy type) as the underlying set. In other words we want to find conditions on a point cloud S of a compact set A so that S r is homotopy equivalent to A. We will in fact find sufficient conditions for S r to deformation retract to A. Clearly this will only work if the point cloud is sufficiently close. Usually "sufficiently close" is interpreted as a bound on the Hausdorff distance between A and S (the Hausdorff distance between A and S, denoted d H (A, S), is the smallest r ≥ 0 such that S ⊂ A r and A ⊂ S r ). Much earlier theory assumes that this Hausdorff distance is less than some measure of geometrical or topological feature size of the shape and show the output is correct. We now survey some of this development.. The medial axis of a compact set A is the set of points p in the ambient space for which there is more than one point in A which is closest to p. The reach of A is the minimum distance between points in A and points in the medial axis of A. It can be thought of as the minimum local feature size. Sampling conditions based on reach include those found in [20] which consider smooth manifolds in R n . Smooth submanifolds have positive reach but a wedge, for instance, does not. To deal with a larger class of sets Chazal, Cohen-Steinerm and Lieutier in [7] introduced the notion of µ-reach. A point is µ-critical when the norm of the gradient of the distance function at that point is less than or equal to µ (a geometric description is expanded on later -see section 3). In particular 0-critical points are critical points of the distance function and every point on the medial axis is a µ-critical point for some µ < 1. The µ-reach of a set is the supremum of r > 0 such that the r offset such not contain any µ-critical points. In [7] and [2] sampling conditions are given in terms of the µ-reach.. Instead of making our bounds in terms of µ-reach, we will only require the absence of µ-critical points in an annular region of A along with a bound on the weak feature size. The weak feature size is the infimum of the positive critical values of the distance function from A. This has several advantages. Firstly, it can mean a significant improvement on the bounds such as in the case of "hairy" objects. Secondly, it can be applied to a larger class of compact sets. Instead of positive µ-reach, all that is necessary for our reconstruction process to work is for A to have positive weak feature size. Compact subsets with a cusp or including two tangential spheres are examples of compact sets with zero µ-reach for all µ > 0 but these still have positive weak feature size. Every semi-algebraic set has positive weak feature size [13] . This follows from the fact that the distance function from a semi-algebraic set has only finitely many critical values.. Example of a cusp and a hairy object One limitation to any of these reconstruction theorems is the requirement of knowing geometric properties of the unknown object we are trying to reconstruct. A shift in perspective can overcome this limitation by considering the geometric properties of the point cloud, which we do know, and can hence prove sufficient conditions for an offset of the original set to deformation retract to an offset of the point cloud. We know the point cloud and hence we know the µ-critical values of its distance function. Theoretical guarantees are given in [7] for when suitable homotopies exist by considering the µ-reach of an offset of the point cloud. Unfortunately there is usually a significant number of small critical values of the distance function to the point cloud. This means the starting offset beyond which µ-reach is considered is significant. Our approach which only considers the existence of µ-critical points in a annular region thus gains a significant advantage.. We note that previous reconstruction theories have been restricted to the case where the ambient space is Euclidean. Another contribution of this paper is to allow the ambient space to be any manifold whose curvature is bounded from below, thus answering an open question asked in [7] . Although we focus on the important case of non-negatively curved manifolds we explore a paradigm of reconstruction which can be applied to manifolds with curvature bounded from below by some κ < 0 with analogous, albeit messier, results. Examples of manifolds with nowhere negative curvature are Stiefel and Grassmannian manifolds. These examples are important because there are many applications where data naturally lies on these manifolds such as in dynamic textures [10] , face recognition [5] , gait recognition [3] and affine shape analysis and image analysis [21] .. Even when restricted to the case where we use µ-reach in Euclidean space we still improve on the previous results whenever µ ≤ 0.945. Our main theorem expressed as a sampling condition is as follows.. Theorem. Let µ ∈ (0, 1), r > 0. Let A be a compact subset of a smooth manifold M with nowhere negative curvature such that the injectivity radius of every point in M is greater than r and A r is homotopic to A. Let S be a (potentially noisy) finite point cloud of A (i.e. a finite set of points). Suppose that either (i) there are no µ-critical points of the distance function from A in {x ∈ M :. Note that a sufficient condition for A a to defamation retract to A is that the weak feature size of A is at least a [15] .. Our approach is to show the existence of a Lipschitz unit vector field whose integral flow induces a deformation retraction from S r to A r−δ or from A r to S r−δ . For the flow of a vector field to have a certain desirable property, we consider sufficient local conditions on potential unit tangent vectors at each point. To this end we define cone fields; cone fields are generalizations of not necessarily continuous unit vector fields where we attach a closed ball in the unit tangent sphere, a "cone", at each point in the manifold. To prove the existence of useful cone fields we need to generalize previous stability results about µ-critical points. A stability result of µ-critical points when the ambient space is Euclidean is proved in [7] . We prove a generalization of this result for when the curvature of the ambient space is bounded from below. It is worth observing that although µ-reach is not stable under Hausdorff distance 1 we do have some stability of an absence of µ-critical points within of annular regions. A quantitative analysis of this phenomenon leads to the theorem.. Alternatively it is the smallest r ≥ 0 such that K ⊂ L r and L ⊂ K r .. Let K • denote the interior of K. Given a metric space X, let K(X) denote the metric space of compact subsets of X with the metric determined by Hausdorff distance.. We want to recall some differential geometry. A useful reference is [17] . The unit tangent bundle of manifold a (M, g), denoted by U T M, is the unit sphere bundle for the tangent bundle T M. It is a fiber bundle over M whose fiber at each point is the unit sphere in the tangent plane;. where T x M denotes the tangent space to M at x. Thus, elements of U T M are pairs (x, v), where x is some point of the manifold and v is some tangent direction (of unit length) to the manifold at x.. The exponential map at x is a map from the tangent space T x M to M. For any v ∈ T x M, a tangent vector to M at x, there is a unique geodesic γ v satisfying γ v (0) = x with initial tangent vector γ v (0) = v. The exponential map at x is defined by exp x (v) = γ v (1). The injectivity radius at a point x is the radiusof the largest ball on which the exponential map at x is a diffeomorphism. Normal coordinates at a point x are a local coordinate system in a neighborhood of x obtained by applying the exponential map to the tangent space at x.. Consider the (n − 1)-dimensional unit sphere, S n−1 , lying inside R n with a metric induced from this embedding. Denote by C(w, β) the closed ball in S n−1 centered at v with radius β. We can view C(w, β) as the intersection of S n−1 with a particular infinite cone;. Here all the angles are in radians. We say C(w, β) is acute if β is acute. Denote by F the fibre bundle over M where each fibre over x ∈ M is the space of non-empty closed balls in the unit tangent sphere at x. F has a natural metric induced from the Hausdorff metric on compact subsets of U T M.. A cone field over a subset U ⊂ M is a section of F restricted to U . A cone field is continuous if it is continuous as a section. We can consider a cone field as a section from U ⊂ M into K(U T M), the space of compact subsets of U T M with Hausdorff metric, and it is continuous if this map is continuous. As a set, we can write cone fields as. Given two cone fields V and W we will write W ≥ V to mean that for any point x the cone at x in V is contained in the cone at x in W .. Let K be a compact subset of R n not containing the origin. We say C(w, β) is a minimal spanning cone for. Lemma 2.1. Let K ⊂ R n be a non-empty compact subset set such that 0 is not in the convex hull of K. Then there exists a unique minimal spanning cone of K which is acute. Furthermore the map from compact subsets of R d which don't have the origin in their convex hull to their minimal spanning cone is locally Lipschitz. If we restrict our attention to compact subsets whose distance to the origin is bounded from below by r we further have that the map sending each compact subset to its minimal spanning cone is Lipschitz with Lipschitz constant bounded from above by 1/r.. Proof. From the compactness ofK we know that, given any v ∈ S n−1 , there is some angle. Observe that for many choices of v here the corresponding β v is not acute. Set β := inf{β v : v ∈ S n−1 }. The map v → β v is clearly continuous and hence the infimum is achieved. Any C(v, β v ) where β v = β is by definition a minimal spanning cone for K.. Since 0 is not in the convex hull of K, there is some set of coordinates such that K lies in the upper half plane. This implies that is some w such thatK ⊂ C(w, π/2) • . This implies that the corresponding angle β w is acute. This means that any minimal spanning cone of K is acute.. Thus all it remains to show is that there is only one w ∈ S n−1 such that β w = β. Suppose that there are two distinct such vectors w 1 and w 2 . NowK ⊂ C(w 1 , β) andK ⊂ C(w 2 , β) and hencê K ⊂ C(w 1 , β) ∩ C(w 2 , β). The angle between w 1 and w 2 must be less that 2β < π as otherwise C(w 1 , β) ∩ C(w 2 , β) would be empty. Let θ = ∠(w 1 , w 2 ). Set w := (w 1 + w 2 )/ √ 2 + 2 cos θ which is a unit vector by construction.. Let x ∈ K and v the unit vector in the direction of x from 0. We have ∠(v, w 1 ) ≤ β and ∠(v, w 2 ) ≤ β but since w 1 , w 2 and v are all unit vectors we have v, w 1 ≥ cos β and v, w 2 ≥ cos β. From the choice of w we have v, w ≥ 2 cos β/ √ 2 + 2 cos θ which implies that ∠(v, w) =: α x is strictly less than β.. Since K is compact we have α := sup{α x : x ∈ K} is attained and α < β. However this implies that K is contained in a cone with an angle smaller than β which is a contradiction. Thus the choice of centre vector w is unique.. Let K be a compact subset of R n whose convex hull does not contain the origin with a corresponding spanning cone C(K). There is some δ > 0 such that K 2δ also does not contain the origin in its convex hull. Let L be a compact subset of. Since L ⊂ K δ we have that the convex hull of L does not contain the origin and hence there exists a minimal spanning cone C(L) furthermore L ⊂ K 2δ and hence L also has a minimal spanning cone. We can consider vectors inside the cone at a point x. We say a vector field X := {(x, v x ); x ∈ U, v x ∈ T x M} is subordinate to the cone field W = {(x, c x )} if v x always lies in c x . We will call a vector field strictly subordinate if the vector at each point lies in the interior of the cone.. Given a compact subset K ⊂ M, a point x ∈ M\K and some R > 0, consider the compact subset exp −1. The straight line segments from 0 to points in exp −1 x K ∩ B(0, R) are sent under exp x to geodesics of length at most R from x to points in K. If 0 is not in the convex hull of exp −1. x K ∩ B(0, R) then by the previous lemma there exists a unique acute minimal spanning cone for exp −1. x K ∩ B(0, R) from 0. Considered as a subset of U T x M, we call this the minimal spanning cone for K from x of length R. If, for some subset U ∈ M, 0 is not in the convex hull of exp −1. x K ∩ B(0, R) for any x ∈ U then we can define over U the minimal cone field for K with length R by assigning to each x the corresponding minimal spanning cone.. In general, even if a minimal spanning cone field exists over U ∈ M it may not be continuous. However we have the following sufficient condition for the minimal cone field to be locally Lipschitz. Proposition 2.2. Let R > 0, and K, L compact subsets of M such that the injectivity radius of every point in K is greater than R, K ⊂ B(x, R) for all x ∈ L, and K ∩ L = ∅. If there exists an acute minimal cone field over L for K of length R then that minimal cone field is Lipschitz.. Proof. Since K and L are compact and K ∩ L = ∅ there is some > 0 such that L ∩ K = ∅ and the injectivity radius for every point in K is at least R + For each fixed y ∈ K we can construct the map. where v y x is the tangent vector to the unique shortest geodesic from x to y with length d(x, y). This is well-defined because of our injectivity radius assumption and because K ∩ L = ∅. The map φ y is smooth. Since L is compact and L ⊂ L • we can conclude that φ y | L is Lipschitz with some Lipschitz constant α y .. Set α := sup{α y : y ∈ K} which is finite as K is compact and the map y → α y is continuous. This means every φ y is Lipschitz with Lipschitz constant bounded from above by α. Now consider the map. and hence φ is also Lipschitz.. Recall that in Lemma 2.1 we showed that the map that sends compact subsets whose distance to the origin is bounded from below by and do not have 0 in there convex hull to their minimal spanning cone is Lipschitz.Since the composition of Lipschitz maps is Lipschitz, we conclude that the minimal spanning cone field is Lipschitz.. We can define the complementary cone for all acute cones. The complementary cone of C(w, β) is C(w, π/2 − β). Given a cone field where the cone at each point is acute we can construct the complementary cone field pointwise. From the triangle inequality on the unit tangent sphere we obtain the following useful lemma. Lemma 2.3. Let v be a vector in some acute cone C and v a vector strictly inside the complementary cone. Then ∠(v, v ) < π/2.

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


Rough fuzzy set based scale space transforms and their use in image analysis In this paper we present a multi-scale method based on the hybrid notion of rough fuzzy sets, coming from the combination of two models of uncertainty like vagueness by handling rough sets and coarseness by handling fuzzy sets. Marrying both notions lead to consider, as instance, approximation of sets by means of similarity relations or fuzzy partitions. The most important features are extracted from the scale spaces by unsupervised cluster analysis, to successfully tackle image processing tasks. Here, we report some results achieved by applying the method to multi-class image segmentation and edge detection, but it can be shown to be successfully applied to texture discrimination problem too. Multi-scale representation is a very useful tool for handling image structures at different scales in a consistent manner. It was introduced in image analysis and computer vision by Marr, Witkin and others who appreciated that multi-scale analysis offers many benefits [3, 8, 11, 15, 25, 26, 33, [35] [36] [37] [38] . The basic idea is to embed the original signal f : R n ! R into a stack of signals filtered at increasing scales, in which the fine details are successively suppressed. The signal filtered at scale r 2 R is a function F : R n · R ! R defined by F(x; r) = (O r (f))(x), where O r is a filter operator depending on r, F is a function in an (n + 1)-dimensional space, called scale space, and the collection of filtered signals is referred to as the multi-scale representation of f. The filter operation O r can be a linear operation (e.g. Gaussian smoothing) or a nonlinear operation (e.g. morphological filter).. Since the scale-space concept was introduced into image analysis and computer vision, its use has been firmly established, and there has been an emerging interest in incorporating scale-space operators as part of high-level computer vision tasks [21] . The output of the scale-space representation can be used for a variety of early visual tasks, from feature detection and feature classification to shape computation [25] . Several techniques for multi-scale morphological analysis exist, such as pyramids [8, 18] , size distributions, granulometries [7, 27] , morphological curvature scale space [24] . They are used to quantify the amount of detail in an image at different scales, with a consequent large variety of applications.. In this paper we propose to make scale space accordingly to the notion of rough fuzzy sets, realizing a system capable to efficiently cluster data coming from image analysis tasks. The hybrid notion of rough fuzzy sets comes from the combination of two models of uncertainty like vagueness by handling rough sets [28] and coarseness by handling fuzzy sets [39] . Rough sets embody the idea of indiscernibility between objects in a set, while fuzzy sets model the ill-definition of the boundary of a sub-class of this set. Marrying both notions lead to consider, as instance, approximation of sets by means of similarity relations or fuzzy partitions. The proposed multi-scale mechanism, based on the model of rough fuzzy sets, named C-calculus, introduced by Caianiello [9] is adopted to spread out local into more global information. The extracted features at different scales are clustered by minimizing the fuzziness of the output layer. This constitutes a fast algorithm for computing scale spaces, and applying them to image processing. We report results for (i) edge detection, (ii) region-based image segmentation, and (iii) texture segmentation.. The remainder of this paper is organized as follows. Section 2 briefly review the basic notions we shall adopt in the rest of paper. Section 3 presents the idea underlying our proposed approach and Section 4 reports how constructing scale spaces by adopting a fuzzy neural network. In Section 5 the effectiveness of the proposed model is shown when applied to some computer vision problems. Conclusions are drawn in Section 6. The paper reports a method for facing image analysis tasks based on rough fuzzy set scale space transforms, combined with unsupervised cluster analysis, which can be used for edge detection, region-based segmentation and texture separation. The advantages of using the proposed scale-space transform reside in capturing a reduced number of scale space entries, all characterizing different (fuzzy) aspects of the same object in the image.. The integration of the rough fuzzy set based scale space transform and neural clustering is also proposed for the realization of a specialized network. The integration is made by a hierarchical approach, subdividing the network in two sub-networks. The preprocessing sub-network is specialized to detect the relevant features inside each meaningful region by a multiresolution fuzzy method, while the second sub-network self-organizes to cluster in a fuzzy manner the features in a restricted number of classes.. The capability to extract well-defined and descriptive regions, also in real images, while the computational capability does not increase, makes valid the proposed approach and puts the basis for more insights in the study of such a system.

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


Iterative-Improvement-Based Heuristics for Adaptive Scheduling of Tasks Sharing Files on Heterogeneous Master-Slave Environments Abstract-The scheduling of independent but file-sharing tasks on heterogeneous master-slave platforms has recently found important applications in Grid environments. The scheduling heuristics recently proposed for this problem are all constructive in nature and based on a common greedy criterion which depends on the momentary completion time values of the tasks. We show that this greedy decision criterion has shortcomings in exploiting the file-sharing interaction among tasks since completion time values are inadequate to extract the global view of this interaction. We propose a three-phase scheduling approach which involves initial task assignment, refinement, and execution ordering phases. For the refinement phase, we model the target application as a hypergraph and, with an elegant hypergraph-partitioning-like formulation, we propose using iterative-improvement-based heuristics for refining the task assignments according to two novel objective functions. Unlike the turnaround time, which is the actual schedule cost, the smoothness of proposed objective functions enables the use of iterative-improvement-based heuristics successfully since their effectiveness and efficiency depend on the smoothness of the objective function. Experimental results on a wide range of synthetically generated heterogeneous master-slave frameworks show that the proposed three-phase scheduling approach performs much better than the greedy constructive approach. I N this work, we investigate the scheduling of independent but file-sharing tasks on heterogeneous master-slave environments. This framework has recently been studied in [7] , [8] , [9] , [15] , [16] for adaptive scheduling of parameter-sweep-like applications in Grid environments. Such applications arise in the Application Level Scheduling (AppLeS) project [7] . In this framework, input files, which can be requested by multiple tasks, are initially stored in the master processor and slave processors have different network access bandwidths and computing powers. The objective is to find a schedule that minimizes the turnaround time of the target application on the given masterslave platform.. In Grid systems, the environment variables such as the execution times of tasks on heterogeneous processors and the bandwidth values of the network dynamically change due, respectively, to the loads of the processors and the congestion in the network. Since creating a good schedule depends on the quality of the information used, the system state must be monitored by an information agent to enable the generation of better schedules for the execution of the target application. Such an agent can estimate the network bandwidths and task-execution times by previous executions, machine benchmark values, or information provided by users. These estimations can be useful to create an adaptive scheduling tool. In our model, we assume that task-execution times and network bandwidth values remain constant during each schedule period, however, the dynamic nature of the processors and network is assumed to be modeled by using up-to-date values for these environment variables obtained by an information agent before each schedule generation period.. Task scheduling in such heterogeneous environments is harder than scheduling in homogeneous ones and it is an important problem for today's computational Grid [14] which contains highly heterogeneous environments. In a heterogeneous environment, highly interacting tasks which need the same files as inputs might have different favorite processors so that it may not be feasible to assign them to the same processor because of appropriate resource utilization. Even if such tasks may have the same favorite processor, that processor might have relatively low bandwidth so that assigning these tasks to that processor can increase the file transfer time, although this decision decreases the file transfer amount.. Several heuristics were recently proposed for the target framework. Casanova et al. [8] , [9] extended three heuristics, namely, MinMin, MaxMin, and Sufferage, which were initially proposed in [21] for scheduling independent tasks. They used these extended heuristics in the AppLeS Parameter Sweep Template (APST) project [7] . They also proposed a new heuristic XSufferage exclusively for APST. After this work, Giersch et al. [15] , [16] proposed several different heuristics which reduce the time complexity while preserving the quality of schedules. All these scheduling heuristics are based on the greedy choices that depend on the momentary completion time values of tasks. We show that this greedy decision criterion cannot use the file sharing information effectively since completion time values are not sufficient to extract the global view of the interaction among the tasks.. Instead of the direct construction of schedules, we propose a three-phase scheduling approach which involves initial task assignment, refinement, and execution ordering phases. For the refinement phase, we propose an elegant hypergraph-partitioning-like formulation with two novel smooth objective functions. The effectiveness and efficiency of the iterative-improvement heuristics, which are widely and successfully used for hypergraph partitioning, depend on the smoothness of the objective functions they improve, but the actual schedule cost does not have this property. Fortunately, the smoothness of proposed objective functions enables the use of these heuristics for refining the task assignments successfully. The first assignment objective function represents an upper bound, while the second one represents a lower bound for the turnaround time of a schedule. The former one corresponds to a pessimistic view, while the latter one corresponds to an optimistic view for the execution scheme. Experimental results on a wide range of synthetically generated heterogeneous master-slave frameworks show that the proposed three-phase scheduling approach performs much better than the existing greedy constructive heuristics.. The rest of the paper is organized as follows: The details of the scheduling framework are presented in Section 2. Section 3 discusses the structure and flaws of the existing constructive heuristics. The background material on hypergraph partitioning problem and iterative-improvement heuristics is given in Section 4. Section 5 presents and discusses the models and methodologies used in the proposed refinement phase. Our implementation scheme and the complexity analysis for the proposed three-phase approach are given in Section 6. Section 7 briefly mentions the modifications needed for adapting the proposed approach to the clustered master-slave framework. The experimental evaluation of the proposed approach is presented in Section 8. Section 9 concludes the paper. As seen in Table 5 , choosing the best result of the cheap heuristics does not suffice to obtain a better performance than a single run of the expensive MinMin and Sufferage heuristics. However, as also seen in the table, much higher improvement ratios are obtained in the refinement of the cheap heuristics in IIS compared to those of the expensive heuristics. As a result, IIS outperforms the refined version of MinMin, Sufferage, and XSufferage as seen in the "Yes" columns. These experimental findings confirm our rationale behind using the cheap scheduling heuristics in the initial task assignment phase. Table 6 summarizes the results of the experiments conducted to compare the performance of the proposed IIS heuristic with the existing constructive heuristics. Besides IIS, 36 heuristics given in [15] and all four heuristics given in [8] were implemented. Table 6 displays the relative scheduling performances of the 10 best scheduling heuristics ranked according to the their average performances. The last column of the table also shows the relative runtime performances of these 10 heuristics. For each scheduling instance, the relative runtime performance of every heuristic was calculated by dividing the execution time of the heuristic to that of the fastest heuristic.. As seen in Table 6 , the proposed IIS heuristic performs significantly better than all existing heuristics on the average. For example, Sufferage and XSufferage, which are the second best heuristics for the basic and clustered master-slave platforms, produce 25.1 percent and 16.4 percent worse schedules than IIS on the average, respectively. This relative performance gap is much higher for computation-intensive applications so that IIS produces at least 30 percent better schedules than all other heuristics for r ¼ 10 and 5. In fact, IIS is always the best heuristic for all scheduling instances except the communication-intensive ones in the clustered master-slave platform with r ¼ 0:2 and 0.1. That is, IIS achieves the actual relative performance exactly equal to 1 except for those scheduling instances.. The above findings are in concordance with the experimental results given in [15] , which state that the scheduling The table shows the improvements in the UB and LB stages required to obtain one unit improvement in the execution time.

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