Enriching software architecture documentation The effective documentation of Architectural Knowledge (AK) is one of the key factors in leveraging the paradigm shift toward sharing and reusing AK. However, current documentation approaches have severe shortcomings in capturing the knowledge of large and complex systems and subsequently facilitating its usage. In this paper, we propose to tackle this problem through the enrichment of traditional architectural documentation with formal AK. We have developed an approach consisting of a method and an accompanying tool suite to support this enrichment. We evaluate our approach through a quasi-controlled experiment with the architecture of a real, large, and complex system. We provide empirical evidence that our approach helps to partially solve the problem and indicate further directions in managing documented AK. The knowledge about a software architecture and its environment is called Architectural Knowledge (AK) (Kruchten et al., 2006) and has resulted in a paradigm shift in the software architecture community (Lago and Avgeriou, 2006; Avgeriou et al., 2007 Avgeriou et al., , 2008 . The most important type of AK are architectural (design) decisions, which shape a software architecture (Jansen and Bosch, 2005) . Other types of AK include concepts from architectural design (e.g. components, connectors) (Tang et al., 2007) , requirements engineering (e.g. risks, requirements), people (e.g. stakeholders and roles), and the development process (e.g. activities) .. There is a growing awareness both in industry and academia that effectively sharing AK, both inside the developing organization and with external actors, is one of the key factors for project success (Lago and Avgeriou, 2006; Avgeriou et al., 2007 Avgeriou et al., , 2008 . Organizations are already exploring this new paradigm by conducting research on the benefits of knowledge-based architecting . The aim of this research is to bring enough evidence to convince the relevant stakeholders to embrace this new way of working by producing and consuming documented AK. In specific, stakeholders need to spend significant effort in documenting the AK, and therefore must be convinced that they will get a good return on their investment. On the other hand, when consuming AK, stakeholders need to trust the credibility of the documented knowledge (e.g. maintainers should have confidence in how upto-date the AK is).. Documenting AK is not new, but has been common practice in the software architecture community over the last years (Clements et al., 2002) . In both heavyweight processes (e.g. the Rational Unified Process (Kruchten, 2000) ) and agile processes (e.g. XP, SCRUM (Beck and Fowler, 2000; Schwaber and Beedle, 2001 )), knowledge is documented to facilitate communication between stakeholders. The essential difference between the former and the latter is that heavyweight processes determine large documents up front, while agile processes produce less documentation, strictly when needed. In essence, the knowledge in both cases is transformed from implicit or tacit knowledge (Nonaka and Takeuchi, 1995) into explicit knowledge (Hansen et al., 1999) . Two types of explicit knowledge can be discerned: documented and formal knowledge. Documented knowledge is expressed in natural language and/or images, while formal knowledge is expressed in formal languages or models with clearly specified semantics (e.g. ADL's, Domain models, etc.).. Architectural Knowledge is mainly represented as documented knowledge in the form of an Architecture Description (IEEE/ANSI, 2000) or Architecture Documentation (Clements et al., 2002 ). An architecture document has several benefits for AK sharing as it allows for: (1) asynchronous communication (not face-to-face) among stakeholders to negotiate and reason about the architecture; (2) reducing the effect of AK vaporization (Jansen et al., 2008b) ; (3) However, when systems grow in size and complexity, so does the architectural documentation. In such large and complex systems, this documentation often consists of multiple documents, each of considerable size, i.e. tens to hundreds of pages. Moreover, it becomes more complex, as within and between these documents, there are many concepts and relationships, multiple views, different levels of abstraction, and numerous consistency issues. Current software architecture documentation approaches cannot efficiently cope with this size and complexity; they are faced with a number of challenges that are outlined here and elaborated in Section 2:. (1) Creating understandable architecture documentation (Clements et al., 2002) ; (2) Locating relevant Architectural Knowledge (de Boer and van Vliet, 2008) ; (3) Achieving traceability between different entities (Hofmeister et al., 2005) ; (4) Performing change impact analysis (Tang et al., 2005b) ; (5) Assessing the maturity of the design (Bass et al., 2003) ; (6) Trusting the credibility of the information (Lethbridge et al., 2003) .. The research problem we address in this paper, is how to manage AK documentation of large and complex systems, in order to deal with these challenges. To partially tackle this problem, we propose an approach that enriches documentation with formal knowledge. The approach consists of a method supported by a tool suite. The key idea of this approach is to enrich software architecture documents by making the AK they contain explicit, i.e. capture this knowledge in a formal model. This formalized AK in turn is used to support the author and reader of the software architecture document with dealing with the aforementioned challenges. The proposed approach is complimentary to current architecture documentation approaches, as it builds upon them in order to transform documented into formal knowledge.. The usage of the process and the tool are demonstrated through a large and complex industrial example. We provide empirical evidence for the benefits of the approach through a quasi-controlled experiment in the context of this example. For reasons of scope and paper size, we only focus on one of the challenges (understandability).. The rest of this paper is organized as follows. Section 2 presents the aforementioned challenges of software architecture documentation in more detail. The next section introduces our method for enriching software architecture documentation with formal AK while Section 4 presents the accompanying tool, the Knowledge Architect. Section 5 explains how our approach, i.e. our method and tool addresses the aforementioned challenges. To exemplify the approach, Section 6 presents an example of the application of our method for a large, complex, and industrial system. We validate our approach with respect to one of the challenges using a quasicontrolled experiment in Section 7. In Section 8, related work is presented and the limitations of the approach are discussed in Section 9. The paper ends with directions for further work in Section 10.. The Knowledge Architect is a tool suite that supports our proposed method by creating, using, and managing AK across documentation, source code and other representations of architectures. We briefly outline the tool suite and then explain how its different parts support the different activities of the method. The heart of the tool suite is an AK repository which provides various interfaces for tools to store and retrieve AK. The AK itself is represented in terms of fundamental units: the Knowledge Entities (KEs). Different tools can interact with the AK repository to manipulate the KEs:. The Document Knowledge Client is a plug-in for Microsoft Word and enables the capture (by annotation) and use of AK within software architecture documents. The validation experiment in Section 7 focuses on the Document Knowledge Client. The Analysis Model Knowledge Clients supports capturing (by annotation) and using AK of quantitative analysis models. Specifically, there are two of such clients: a plug-in for Microsoft Excel (Jansen et al., 2008a ) and a plug-in for Python. The Knowledge Explorer is a tool for analyzing the relationships between KEs. It provides various visualizations to inspect KEs and their relationships. (Broekstra et al., 2002) . Sesame offers functionality to store and query information about ontologies (Antoniou and van Harmelen, 2004) . Domain models are modeled as ontologies, which are expressed in OWL (Web Ontology Language) (Antoniou and van Harmelen, 2004) . The Protégé tool is used to create the OWL definition of the domain model, which is subsequently uploaded to Sesame. To provide some intelligence in the AK repository, Sesame is extended with the inferencer OWLIM (Kiryakov et al., 2005) , which offers OWL lite (W3C, 2004) reasoning facilities. The inferencer is mostly used to automatically generate the inverse relationships that exist between KEs. In this way, a user does not has to manually define them. The Document Knowledge Client uses a custom layer on top of Sesame to access the KEs. This layer provides a more high-level interface to Sesame; no tool developer is needed to understand the querying and low level storing mechanism of Sesame.. The Knowledge Architect tool suite can be used to support the activities of the proposed method, except for the first one. Activity 1 (Identifying documentation issues) is not supported, since it is a manual activity of refining the challenges and selecting the relevant use cases for AK. The AK repository is used to store the domain model resulting from activity 2.. The capturing of AK (activity 3) is supported by the Document Knowledge Client and Analysis Model Knowledge Clients that capture AK from Word documents, Excel analysis models and Python programs.. Using AK (activity 4) is supported by different parts of the Knowledge Architect, depending on the specific use cases that have been selected. For example, the Knowledge Explorer can be used to search for specific AK elements, while the Document Knowledge Client can be used to assess the completeness of the AK.. Integration of AK (activity 5) is naturally implemented in the Knowledge Architect through the central Knowledge Repository that collects all AK, and the combination of the various plug-ins, that store and retrieve the knowledge.. Evolving AK (activity 6) is mostly supported by the Knowledge Explorer, which visualizes the interdependencies between the AK elements and thus facilitates change impact analysis. Changes to the AK can then be edited using the Document Knowledge Client and Analysis Model Knowledge Clients. The central Knowledge Repository is also useful for evolving the AK, allowing for easy management and identification of out-of-date AK and providing a history of its evolution.. The industrial example investigated in this paper is LOFAR (LOw Frequency ARray) (Lofar website): a new radio telescope under construction by ASTRON, the Netherlands Institute for Radio Astronomy. LOFAR is rapidly becoming a European effort, with France, Germany, the United Kingdom, and Sweden having funded stations, with others to be added soon. What makes LOFAR interesting from a software architecture perspective is the fact that it is the first of a new generation of software telescopes (Butcher, 2004) . Software is of paramount importance in the system design, as it is one of the crucial design factors for achieving the ability to communicate and process the 27 Tflop/s data stream in real-time to be fed into scientific applications. The architecture of this large and complex system is described in many different documents, ranging in scope from the entire system and particular subsystems to specific prototype analysis. In this paper, we proposed an approach for enriching architecture documentation with formal AK. This approach addresses to some extent the challenges that current software architecture documentation approaches face: understandability, locating relevant AK, traceability, change impact analysis, design maturity assessment and trust. We illustrated the approach through a large industrial example, by following the method activities and demonstrating the corresponding tool support. Using a quasi-controlled experiment we presented evidence on how the proposed approach helps to tackle one of the challenges: understandability. Based on our experience from LOFAR, the associated ongoing empirical research, and the development of the knowledge architect tooling we see several directions for future work.. In this paper, the focus was on a subset of activities of our generic method (see Section 3). This limited focus left out two important topics concerning documentation enrichment with AK: integration (activity 5) and evolution (activity 6). For the first activity, we already have started to investigate the possibility of integrating different domain models as a way to integrate AK from different sources (Liang et al., 2008) . As for the second activity (evolution of AK), we have already combined the knowledge repository of our tool suite with a version management system that records the evolution of individual AK entities. The initial results for both the integration and the evolution activities look promising, but need to be validated with industrial case studies.. Another direction for future work is to investigate ways to improve the search functionality within the Document Knowledge Client. Currently, relating Knowledge Entities in the tool is based on keyword searches and concept classifications. The results of this search might be improved by using information extraction techniques (Cowie and Lehnert, 1996) that make use of the context of the search, i.e. the Knowledge Entity to be related, its position inside the document, and relationships already defined to other KEs. Furthermore we are looking into ways to make the Knowledge Architect interoperable with other AK management tools, e.g. the just-in time AK sharing portal (Farenhorst et al., 2008) , in order to make more and different kinds of AK available.. In the quasi-controlled experiment, we left out the situation in which subjects could both consume existing formal AK and produce their own. It is interesting to investigate whether this situation is an improvement over the ones presented in this paper. Another direction for the experiment is to replicate it, as to create more samples. This will allow for stronger statistical evidence and testing of the assumption we made in this paper about the normal distribution of our samples. Moreover, we plan to use the data from the experiment in order to investigate how people annotate AK inside documents and therefore better understand the process of producing formal AK. An interesting research question in this respect is whether there exist differences in the way people annotate a software architecture document and how that affects the produced AK. To validate our approach, we conducted a quasi-controlled experiment. The experiment focused on one of the identified challenges (understandability, see Section 2) and on a specific use case (performing incremental architecture review, see Section 6.1). In addition, the focus was on the Document Knowledge Client and did not involve the Explorer. The approach presented in this paper is based on annotating documents to make their knowledge explicit. Similar approaches exists in the context of the semantic web in the form of annotation tools, e.g. MnM (Vargas-Vera et al., 2002) and Annotea (Kahan and Koivunen, 2001 ). However, all of them focus on annotating web pages and plain text, not the Word documents in which software architectures are typically written.. Closely related to annotating is the field of Information Extraction (IE) (Cowie and Lehnert, 1996) , where the challenge is to automatically annotate or extract information from documents or find relevant relationships between annotations and/ or documents. Usually, this involves machine learning, natural language processing, and/or statistical techniques. For example, Ont-O-Mat (Handschuh et al., 2002) uses machine learning to semi-automatically annotate similar documents. Another example is the work of de Boer and van Vliet (2008) , who use latent semantic analysis (Letsche and Berry, 1997) on (architectural) documents to find relationships between these documents. Based on these relationships an order of reading the documentation is suggested.. Most software architecture documentation approaches (Kruchten, 1995; Clements et al., 2002; Hofmeister et al., 2000) use architectural views to describe different aspects of an architecture. This is reflected in the IEEE 1471 standard, i.e. a recommended practice for architecture description of software-intensive systems (IEEE/ ANSI, 2000) . The approach presented in this paper can be used in conjunction with such approaches. Documentation approaches define for each view what concerns are of interest and how they should be described. Our approach provides the necessary glue in the form of traceability to relate the views and their underlying decisions (Duenas and Capilla, 2005; Jansen and Bosch, 2005) together.. Another form to support AK capturing in architecture documentation is by the use of templates. Tyree and Akerman (2005) present such a template for architectural decisions. However, templates typically have difficulty in making multiple relationships between different elements clearly visible. Visualizations like the one in the Explorer (see Section 4.3) are much more capable of dealing with multiple relationships.. In the last couple of years, several AK management tools have been developed. This includes web-based tools like PAKME (Babar et al., 2006) and ADDSS (Capilla et al., 2006) , which focus on design patterns and architectural decisions, or more implementation focused tools like Archium (Jansen and Bosch, 2005) and AREL (Tang et al., 2007) . The main difference between the Knowledge Architect and these AK management tools is that the Knowledge Architect uses specialized plug-ins to integrate with different AK sources, something these other tools do not do.. Compared to the meta-models of these AK management models or general meta-models like Kruchten's ontology Kruchten et al. (2006) , the template from Tyree and Akerman (2005) , or the CORE model , the domain model used in this paper is rather simplistic. Both in the number of concepts and relationships and the provided detail. This is due to two reasons. Firstly, our domain model focuses on AK in software architecture documents in a specific organization instead of AK in general. Secondly, we strived for a minimal model that was just good enough as to make it easier to understand.. The just-in-time AK Sharing portal of Farenhorst et al. (2008) is similar to our AK repository; a central storing location for AK. The main difference between the two approaches is the assumed knowledge management strategy (Hansen et al., 1999; Babar et al., 2007) . The just-in-time AK sharing portal focuses on a personalization strategy, whereas the Knowledge Architect is a codification strategy. Hence, the just-in-time AK sharing portal focuses on knowledge where the AK can be found, instead of modeling this AK itself, such as done with the domain model in our approach.. Besides our quasi-controlled experiment, Falessi et al. (2006) performed an experiment regarding AK. They evaluated whether making decisions, goal, and alternatives explicit in the form of tables improves individual and team decision making. The results of their experiment indicated this indeed seems to be the case.. Another way to formally describe AK is to make use of an Architecture Description Language (ADL) (Medvidovic and Taylor, 2000) . ADLs offer a formal model to express certain concepts and relationships. Often the selection of concepts supported are limited to those of the component & connector (Clements et al., 2002) view. The Knowledge Architect could be extended with a domain model describing the concepts and relationships found in ADLs, thereby making integration with existing ADLs possible.

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


Towards mobility as a network control primitive In the near future, the advent of large-scale networks of mobile agents autonomously performing long-term sensing and communication tasks will be upon us. However, using controlled node mobility to improve communication performance is a capability that the mobile networking community has not yet investigated. In this paper, we study mobility as a network control primitive. More specifically, we present the first mobility control scheme for improving communication performance in such networks. Our scheme is completely distributed, requiring each node to possess only local information. Our scheme is self-adaptive, being able to transparently encompass several modes of operation, each respectively improving power efficiency for one unicast flow, multiple unicast flows, and many-to-one concast flows. We provide extensive evaluations on the feasibility of mobility control, showing that controlled mobility can improve network performance in many scenarios. This work constitutes a novel application of distributed control to networking in which underlying network communication serves as input to local control rules that guide the system toward a global objective. As technology rapidly progresses, diverse sensing and mobility capabilities will become more readily available to devices. For exPermission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. ample, many modern mobile robots are already equipped with various sensing capabilities. As another example, there are presently research activities on low-power robotic insects that move in a variety of ways, including flying and skimming across the surface of water (e.g. [12] ).. Once mobility becomes feasible, we envision that large systems of such mobile autonomous agents performing various important tasks will be soon to come. Communication will undoubtedly be one of the essential functionalities of these mobile networks. The objective of this paper is to explore the novel capability of these networks to optimize their communications using controlled mobility.. One can envision many settings in which mobility can potentially be used to improve network communications. One such scenario is a long term "bugging" deployment of self-organizing mobile sensors whose purpose is to intercept or record, and then report as much data as possible from a target such as an enemy communication tower or command center. If the sensor nodes are able to move into positions that minimize the energy cost of reporting this stream of data out of the network, the amount of useful information the network can transport would be maximized. Similar arguments for mobility can apply to long-term concast data gathering [6] or to aggregation of large data events in a GHT [20] .. One can also imagine mobile networks being uniformly deployed over space with the intention that when a large, geographically dispersed user such as a military division moves in and sets up a base, the network will adapt its configuration in order to best serve the specific communication demands of that user. Such adaptive wireless networks with the capability to autonomously align themselves to fit user needs would be tremendously useful.. In general, long-term deployments which exhibit persistent or habitual communication patterns are prime candidates for the application of mobility to improve network performance. In such settings, the traffic will be regular enough and high enough in volume to warrant nodes expending energy moving in order to more cheaply forward traffic.. There may also exist situations where the power source for mobility is renewable but separate from a non-renewable power source for communications. Such situations could exist in hybrid bio-electronic systems, the simplest example of which is a network of people carrying small radios running on unrechargeable batteries. A more fanciful example is a system of simple living organisms such as insects that are outfitted with radio transmitters and whose motion is controlled by a neuro-electronic interface. In light of the fact that mobility is a capability already perfected by nature, while wireless communication is a human work-in-progress, this type of technological separation of duties might have its merits.. While the previous discussion has motivated some of the potential applications of controlled mobility, there are still few studies in the mobile networking literature on improving communication performance through this capability.. Although mobility has the potential to improve network performance in many settings, there may also exist scenarios in which mobility will be less effective due to various extenuating factors including hardware limitations and traffic patterns. The objectives of this paper, therefore, are to 1) analyze when controlled mobility can improve fundamental networking performance metrics such as power efficiency and robustness of communications; and 2) provide initial design for such networks.. One major issue in using mobility is how to effectively control it. Designing mobility control algorithms for communications is challenging, because any scheme that would achieve the apparent potential of the idea should address the following issues.. • First, the precise nature of any effective mobility control will be application dependent. It is clear that nodes will need to move differently under different traffic patterns, e.g., a single source-destination pair (called a single flow), multiple sourcedestination pairs (called multiflows), or multiple sources and single destination (called concast). Is there a single self-adaptive mobility control scheme that can be applied to such a broad range of scenarios?. • Second, for scalability and robustness purposes, there should not be a central entity who computes the movements of all the nodes. In other words, the mobility-control scheme should be a totally distributed scheme. Is there a mobility control scheme such that although each node makes movement decisions for itself informed by purely local information, the collective system achieves desirable global properties?. • Third, the distributed mobility-control scheme should be able to self-organize the nodes to optimize a performance metric while at the same time satisfying other constraints. For example, although one major objective of a mobility-control algorithm could be to optimize data reporting power efficiency after target detection, it may be important that the network maintain connectivity and/or coverage throughout the operation of the distributed algorithm. Can we design a general mobility-control scheme possessing the flexibility to optimize communication performance while simultaneously conforming to user-imposed connectivity/coverage requirements?. The framework proposed in this paper is the first attempt to design and analyze a system addressing the above issues. The foundation of our system's self-organizing capability is a distributed descent primitive. One inspiration for this primitive is the distributed averaging algorithm used in [13, 20] . The averaging algorithm of Rao et al. [20] operates in virtual space; our system subsumes such averaging as a special case and operates in physical space. Another inspiration of our primitive is the rendezvous algorithm proposed by Lin, Morse and Anderson [17] . The objective of the rendezvous algorithm is to have all nodes in an arbitrary connected network converge to a single point in space by using uniform, distributed, and locally informed mobility control rules. In this paper, we generalize elements of the two algorithms to design a powerful and self-organizing primitive that can achieve diverse configuration goals and that can be gracefully tuned to ensure desirable network properties such as connectivity, coverage, and power efficiency.. We apply our mobility-control primitive to a broad range of traffic scenarios, under different application requirements. For each scenario, we present and formally prove the correctness of our algorithm. We perform extensive simulations to evaluate the effectiveness of controlled mobility. Our evaluations show that there are many scenarios where mobility control can achieve substantial performance gains. For example, in a random network, we simulate a realistic scenario in which 10 Kbps voice stream data flows over a single 1 Km long greedily routed multihop path of mobile nodes capable of moving at around 0.1 m/s. In under a minute, our mobility control is able to guide the network to its optimal routing configuration in which communication uses as little as 50% of the energy originally required. Taking into account the cost of mobility, total energy savings are realized after five minutes.. The remainder of this paper is organized as follows. In Section 2, we discuss related work and compare our approach with previous approaches. In Sections 3, 4, 5 respectively, we present algorithms for optimization of single source-destination pair, multiple sourcedestination pair, and many-to-one traffic patterns. In each section, we include extensive simulation results to analyze when controlled mobility is effective and demonstrate the effectiveness of the presented algorithm. We conclude and discuss future work in Section 6. In this paper, we presented the first mobility control scheme for improving communication performance in wireless networks. Our full mobility scheme is completely distributed, requiring each node to possess only local information. The scheme is self-adaptive, being able to transparently encompass several modes of operation. In particular, we showed how our single scheme improves power efficiency for one flow, multiple flows, and many-to-one concast flows. In addition to empirical verification, we have also formally proved the correctness and convergence of our scheme under mild conditions. We also provided evaluations of the feasibility of mobility control and showed that there are many scenarios where controlled mobility can provide substantial performance improvement.. Although the full strength of controlled mobility can only be demonstrated by completely functional prototypes, the initial design and analysis in this paper show that mobility can be used as one of the effective control primitives to improve network performance.. The focus of this paper is on power efficiency but one can envision that controlled mobility can be also used to improve many other aspects of network performance. The proposed algorithmic framework in this paper can serve as starting point for such further explorations. For example, one possibility with good potential is to use controlled mobility to improve wireless network capacity. Looking beyond communication, we imagine that our mobility algorithms could be used in conjunction with trajectory-based routing [18] or other routing methods as a communication-driven approach to distributed formation of arbitrary spatial layouts of nodes.. In closing, we have elucidated some of the potential uses of controlled mobility in improving network communications. This interface between networking and control theory has been little explored until now and is sure to be a promising and important area for future exploration. Although mobility has been extensively investigated in the mobile networking community, the focus so far has been on random mobility, e.g., [16, 14, 25] , instead of controlled mobility. For example, in [7] , Grossglauser and Tse have shown that the random movement of users can be used to improve network throughput. In [2] Chakraborty, Yau and Lui have studied algorithms that try to predict user movements to reduce power consumption.. Controlled mobility is an active research area in the control theory community; for example see [1] . In the last few years much progress has been made in designing distributed mobile systems and understanding both natural and artificial mobile systems. The focus of these studies, however, is not on network communications. For example, in [3] , Cortes et al. have shown that mobility can be purposefully controlled to implement network coverage; in [15] , Ladd et al. have shown that mobility can be used to improve the accuracy of network localization; in DARPA's self-healing minefield project [5] , mobility is used to improve and maintain network coverage. However, none of these studies considers routing or power efficiency, two of the fundamental issues in networking and communications.. Some inspiration for this work came from the averaging algorithm, which is used in various settings, e.g., [13, 20] . With the intention of providing coordinates over which to perform geographic routing, in [20] Rao et al. let "virtual positions" of nodes converge to the potential energy minimizing configuration of an equivalent network with edges replaced by springs. In the same way in which the converged virtual configuration of Rao et al. reflects the underlying connectivity of the network, our resulting physical configuration reflects the connectivity of the portion of the network in active use i.e. the communicating subgraph. However, there are several major differences between our work. First, our system operates in physical space; thus we must guarantee that connectivity is preserved throughout the actual motions of the nodes. Our nodes also move to a minimum "potential" configuration, but this time with spring potentials assigned only to links actively being used for communication. Lastly, the more general potential functions we minimize are equivalent to the communication energy usage of a configuration. Because of this, rather than averaging, we generalize to a weighted descent method that optimizes realistic transmission cost models and weights neighbors according to their share of local communication volume. Furthermore, our algorithms make no assumptions about the global traffic pattern, wireless environment, or hardware power usage properties.. Another inspiration of this work is the rendezvous algorithm of Lin, Morse, and Anderson [17] . They describe distributed local algorithms for guiding a system of multiple nodes to a single point. In this paper, we combine ideas from the rendezvous algorithm with the generalized averaging scheme to design a powerful and flexible tool that can achieve power optimizing configurations and be gracefully tuned to ensure desirable network properties such as connectivity, coverage.. There is a large literature on power-efficient topology control and routing; for example see [22, 19] . A major difference between our scheme and the previous work is that we leverage mobility while the previous work assumed that mobility cannot be controlled by the communication layers of the network. As a precedent to our work, there was also a previous study [23] on the optimal positions of relay nodes for a single source-destination pair. Under a link cost model of P (d) = a + bd α , where d is distance, α a constant between 2 and 6, and a and b other constants, Stojmenovic and Lin [23] show that over all multihop paths, straight paths are most energy efficient and further that there is a unique hop count for any distance that minimizes the cost of communications. However, the focus of [23] is not on reaching the optimal configuration using a distributed algorithm. Also, the focus of [23] is on a single source-destination pair while we consider multiple source-destination pairs while maintaining connectivity during mobility control.

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


Task Recognition and Person Identification in Cyclic Dance Sequences with Multi Factor Tensor Analysis In this paper, we present a novel approach to recognize motion styles and identify people using the Multi Factor Tensor (MFT) model. We apply a musical information analysis method in segmenting the motion sequence relevant to the keyposes and the musical rhythm. We define a task model by considering the repeated motion segments, where the motion is decomposed into a person-invariant factor task and a persondependent factor style. Given the motion data set, we formulate the MFT model, factorize it efficiently in different modes, and use it in recognizing the tasks and the identities of the persons performing the tasks. We capture the motion data of different people for a few cycles, segment it using the musical analysis approach, normalize the segments using a vectorization method, and realize our MFT model. In our experiments, Japanese traditional dance sequences performed by several people are used. Provided with an unknown motion segment which is to be probed and which was performed at a different time in the time space, we first normalize the motion segment and flatten our MFT model appropriately, then recognize the task and the identity of the person. We follow two approaches in conducting our experiments. In one experiment, we recognize the tasks and the styles by maximizing a function in the tensor subdomain, and in the next experiment, we use a function value in the tensorial subdomain with a threshold for recognition. Interestingly, unlike the first experiment, we are capable of recognizing tasks and human identities that were not known beforehand. We conducted various experiments to evaluate the potential of the recognition ability of our proposed approaches, and the results demonstrate the high accuracy of our model. Recognizing human motion style is an important and challenging task in recognition analysis. Although it is difficult to measure the style of each person categorically, people are largely capable, without intention, of recognizing other individuals by the style of their motions, even under unfamiliar conditions such as a dark environment or a sighting from a far distance. Sometimes, even before confirming the identity of the person by a clue such as a face, under uncertain circumstances, one is capable of recognizing a loved person or a close relative only by his or her motion styles, such as walking style or hand movement. Also, by analyzing the style of a written document or the style of a signature, people are capable of recognizing the identity of the person by whom it was written. This is perhaps done by matching the new probe data to the classes that are already known to the person and selecting the closest class as the identification result.. Motion analysis has attracted a considerable amount of interest in recent years. Within motion analysis, style is a unique factor that symbolizes and demonstrates the individuality of each person. It is known that when people perform dance or move in a certain musical environment, they tend to inject their emotions to produce individual motion styles. Therefore, even though a person repeats the same action again and again, the motion style varies with the change of the time domain as a whole. Unuma et al. [1] decomposed example motions into high and low frequencies using Fourier analysis and analyzed how to model human behaviors with emotions. In [2] , Cao et al, discussed the problem of editing recorded emotional facial motion data. Pullen et al. [3] proposed a technique that decomposed the motion into frequency bands, where lower and higher frequency components represented the base motion and the style of the motion respectively. Brand et al. [4] utilized Hidden Markov Models to detect the style variations in sample data and applied the results to novel dance sequences. In [5] techniques from signal processing were used in analyzing emotional motion. Recently, Hsu et al investigated style and performed style translation [6] between input and output models using an iterative motion warping method.. Several other approaches have been proposed in investigating style in various problems. Tenenbaum et al. introduced a bilinear model [7] for two-factor problems in separating style and content factors. They displayed two-mode examples in extrapolating fonts for unseen letters and translating face postures to new illuminations [8] . Given several sequences of walking silhouettes of different people, Su Lee et al. decomposed the intrinsic body configuration through the action (content) from the appearance (or shape) of the person performing the action (style) [9] and used the results for recognition. The style and content were separated on a nonlinear manifold and applied in interpolating the modes of gait styles and manner of smiling [10] . Gao et al. [11] , [12] proposed a three-model principal component model and recognized the expressiveness in the style of human action when carrying different weights and when varying the walking pace of different people. Kannapan et al. [13] , [14] also recognized the effort in human actions within a threemode principal component analysis (PCA) framework.. Vasilescu used tensor algebra [15] to recognize the hu- In this paper, we present a multi factor tensor (MFT)-based framework for decomposing motion data and recognizing tasks and motion styles or human identities. In our model, we follow a novel approach that considers higher order tensor Factorization [21], [22] . We captured dance sequences performed by different people using a motioncapturing system. The captured motion sequences were segmented by a musical analysis method [23] that considered keyposes and musical rhythm information. All the segmented motion data were mapped on to a human physical model specified beforehand and normalized using a vectorization method.. We define task models by grouping those segments that have similar actions. There are different ways of decomposing the tensors [24] . In the task model, we decompose human motion into a task factor and a style factor. The task is person-invariant and the style is person-dependent. During the motion decomposition process, the MFT model was formulated with the attributes of position, people, and the task, and the tensor was factorized appropriately into different mode spaces.. We adopt two approaches in recognizing tasks and analyzing styles in extrapolated time frames. In one approach we maximize a function in tensor subspace. Under this approach we recognize a motion segment that was performed at a different time in the time space, but we assume that the person and the task type to be probed are already contained in the MFT model. In the other approach we utilize a function value and a threshold in recognizing the motion segment to be probed. In this case, the motion can belong to any person or any type of task that is not used for training in the MFT model. We conducted various experiments and succeeded in showing the efficiency of our framework under different situations.. One of the most valuable contributions of our novel approach is its high accuracy rate in recognizing tasks and motion styles. Also, a major advantage of our approach is its ability to handle both situations described above, such as when the motion segment to be probed belongs to a person or a task that is already contained in the database or when the person and the task category are completely new. The task models that we used for our experiments are not completely separable from each other. Even though two motion segments belong to different tasks, they are often very similar if we focus on particular actions such as when the leg steps forward. Therefore, under numerous seemingly different conditions, our framework produces accurate results.. The remainder of this paper is organized as follows. Section 2 explains segmentation of motion sequence by analyzing music information. Section 3 describes the MFT model and the recognition process with different approaches.. In Sect. 4 we describe our experiments and present the results we achieved. In Sect. 5 we discuss the general issues involving our framework. Finally, in Sect. 6 we present conclusions and describe future work. The most remarkable aspect of our framework is the high accuracy of the recognition results. We are able to segment the dance motion sequence quite efficiently and extract the tasks. Among the two types of approaches that we followed, we were able to achieve a very high accuracy. As stated in certain cases above, from the possible variations of selecting a group for training and for the probed sequence of identification, we selected the set randomly and performed a satisfactory number of tests. We believe that the number of times we conducted the experiments is quite enough to show the potential of our model in task recognition, style identification, and human identity recognition processes, but we plan to perform the testing for many other variations and for different selections in the future. The tasks that we have used in our experiments are from different classes. Some tasks contain common elements (e.g. common body part motions) among different classes. For example, the lower body part motion during several task categories looks similar when performed by the same person and the similarity varies with different people. So the tasks are not separable completely because they contain common style elements [26] of motion.. The weights in the weight matrix are assigned in increasing order considering the number of links to the body center. So the positions directly connected to the body center with only one link have the lowest level of values, and the positions that are connected with another link belong to the second level of values, and so on. We assume that the elasticity of the human body is negligible for some positions directly connected to the body center and that there are no stretching effects compared to other positions. The weights are assigned considering the above factors.. Although segmentation accuracy plays a significant role in the accuracy of the recognition results of our model, we tested our framework when segmentation results were not as accurate by manually segmenting the motion sequence. Even under these circumstances our framework produced a quite similar accuracy rate in recognition. However, our segmentation method relevant to music is very important as it is extremely difficult to manually segment the motion sequences in a huge database. We also tested cases where the number of motion segments in generating

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


Analysis of schema structures in the Linked Open Data graph based on unique subject URIs, pay-level domains, and vocabulary usage The Linked Open Data (LOD) graph represents a web-scale distributed knowledge graph interlinking information about entities across various domains. A core concept is the lack of pre-defined schema which actually allows for flexibly modelling data from all kinds of domains. However, Linked Data does exhibit schema information in a twofold way: by explicitly attaching RDF types to the entities and implicitly by using domain-specific properties to describe the entities. In this paper, we present and apply different techniques for investigating the schematic information encoded in the LOD graph at different levels of granularity. We investigate different information theoretic properties of so-called Unique Subject URIs (USUs) and measure the correlation between the properties and types that can be observed for USUs on a large-scale semantic graph data set. Our analysis provides insights into the information encoded in the different schema characteristics. Two major findings are that implicit schema information is far more discriminative and that applications involving schema information based on either types or properties alone will only capture between 63.5 and 88.1 % of the schema information contained in the data. As the level of discrimination depends on how data providers model and publish their data, we have conducted in a second step an investigation based on pay-level domains (PLDs) as well as the semantic level of vocabularies. Overall, we observe that most data providers combine up to 10 vocabularies to model their data and that every fifth PLD uses a highly structured schema. The related work is structured as follows: We start with related articles that conduct structural and/or semantic analysis of LOD for the purpose of building statistics about the nature of the data and the LOD network. Subsequently, we discuss related work that builds statistics over LOD in order to check for the compliance of the data to guidelines or best practices. Finally, we investigate analyses of LOD that are carried out in the context of query optimization.

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


On the Number of Errors Correctable with Codes on Graphs Abstract-We study ensembles of codes on graphs (generalized low-density parity-check, or LDPC codes) constructed from random graphs and fixed local constrained codes, and their extension to codes on hypergraphs. It is known that the average minimum distance of codes in these ensembles grows linearly with the code length. We show that these codes can correct a linearly growing number of errors under simple iterative decoding algorithms. In particular, we show that this property extends to codes constructed by parallel concatenation of Hamming codes and other codes with small minimum distance. Previously known results that proved this property for graph codes relied on graph expansion and required the choice of local codes with large distance relative to their length. Considerable attention in recent years was devoted to the study of error correction with codes on graphs. In this paper we are interested in estimating the number of errors correctable with codes on graphs constructed as generalizations of LDPC codes. LDPC codes are constructed on a bipartite graph G(V, E), V = V 1 ∪ V 2 by associating code's coordinates with the vertices in one part of G, replicating the values of each vertex on the edges incident to it, and imposing a parity-check constraint at each vertex of the other part of G. The generalization that we have in mind is concerned with replacing the repetition and single-parity-check codes as local codes at the graph's vertices with other error-correcting codes.. Error correction with codes on graphs has been studied along two lines, namely, by computing the average number of errors correctable with some decoding algorithm by codes from a certain random ensemble of graph codes, or by examining explicit code families whose construction involves graphs with a large spectral gap. The first direction originates in the works of Gallager [7] and Zyablov and Pinsker [15] who showed that random LDPC codes of growing length can correct a nonvanishing fraction of errors. Recently the decoding algorithm of [15] was studied by Burshtein [6] who derived an improved estimate of the number of correctable Research supported in part by NSF grants CCF0830699, CCF0635271, DMS0807411, CCF0916919. errors compared to [15] and by Zyablov et al. [14] who provided estimates of the number of errors under the assumption of local single error-correcting (Hamming) codes. The second line of work, initiated in Tanner's paper [12] and in Sipser and Spielman's [10] , pursues estimates of error correction with codes on regular graphs with a small second eigenvalue and ensuing expansion properties. Presently it is known that such codes under iterative decoding can correct the number of errors equal to a half of the designed distance of graph codes [2] . This estimate fits in a series of analogous results for various "concatenated" coding schemes and has prompted a view of graph codes as parallel concatenations of the local codes [2] . However, this result relies on certain restrictive assumptions discussed below.. An extension of Tanner's construction from graphs to hypergraphs was proposed by Bilu and Hoory [4] who showed that such codes (for high code rates) can have minimum distance greater than the best known bipartite-graph constructions. Interestingly, the codes considered in [4] are a direct extension of a construction in [7] in the same way as Tanner's graph codes extend LDPC codes.. As is well known, graphs with high expansion and random graphs share many properties that can be used to prove estimates of error correction. This similarity in the coding theory context was emphasized in our recent work [1] where we showed that ensembles of codes on random graphs and explicit expander-like constructions share many common features such as properties of the minimum distance and weight distribution.. Regarding the proportion of errors corrected by graph codes under iterative decoding, we note one difference between (generalized) LDPC codes on random graphs and explicit constructions based on the graph spectrum. The explicit constructions based on regular graphs depend on the difference between the largest and the second largest eigenvalue of the graph (the "spectral gap"). For this reason, one is forced to rely on local codes with rather large minimum distance d 0 , for instance, d 0 greater than the square root of the degree n of the graph. Even though in the construction of [10] and later works n is kept constant, this effectively rules out of consideration local codes with small minimum distance such as the Hamming codes and the like. The square root restriction is implied by the spectral gap of regular bipartite graphs, and is the best possible owing to the Alon-Boppana bound for graph spectra [9] . The purpose of the present work is to lift this limitation on the distance d 0 by switching from graphs with a large spectral gap to random graphs.. In this paper we obtain new estimates of the number of correctable errors for random ensembles of bipartite-graph and hypergraph codes under iterative decoding. The first part of the paper is devoted to codes on regular bipartite graphs. To construct long graph codes, we assume that the degree of the graph is fixed and the number of vertices in both parts approaches infinity. Assuming that local constraint codes are used to correct 2 or more errors, we show that almost all codes in the ensemble of graph codes are capable of correcting all error patterns of weight that forms a constant fraction of the code length. This is a much less restrictive assumption on the local codes than the one taken in earlier works on decoding of graph codes [2] , [13] . The proof of this result employs some ideas of [1] introduced there for the analysis of the weight distribution of graph codes.. We then observe that if the degree of the graph is allowed to increase then graph codes with local codes of constant distance do not correct a linearly growing number of errors under the proposed iterative decoding. This motivates us to study graph codes with long local codes correcting a growing number of errors that forms a fixed proportion of the degree. The results obtained in this case parallel earlier theorems for product codes and graph codes based on the spectral gap.. In the second part of the paper we establish similar results for codes on hypergraphs, showing that a constant proportion of errors is corrected by an iterative decoding algorithm that combines some ideas of [1] with the results proved for codes on bipartite graphs in the first part of the paper. Constructing the code ensemble based on regular hypergraphs of a fixed degree, we show that they contain codes capable of correcting a constant proportion of errors. The proof involves no assumptions on the distance of the local codes; in particular, we show that networks of Hamming codes correct a fixed proportion of errors under iterative decoding. This fact was previously proved by Tanner [12] under the assumption that the underlying graph is a tree. This assumption is not needed in our results. As in the case of the graph ensemble, we also perform the analysis of the decoding algorithm for the case of growing degree, finding the proportion of errors correctable with hypergraph codes based on long local codes. This paper is dedicated to the memory of Ralf Koetter. The first-named author discussed the problem of estimating the performance of codes on graphs with Ralf in the beginning of 2004. Ralf's idea at that point was to investigate the error correcting capability of codes defined on some distance-regular graph, with local constraints imposed at the vertices of the graph. Presently it is understood that the setting most amenable to analysis is that of codes defined on a regular bipartite graph. Ralf himself made an initial attempt to analyze such codes in a joint paper with Xiangyu Tang [11] . The emphasis in [11] is on the estimation of the largest channel error rate tolerated by graph codes under such decoding. In the present paper, similarly to [10] , [13] and later works, the local codes are decoded up to their correction radius guaranteed by the minimum distance.. , where the set of vertices V consists of two disjoint parts V 1 , V 2 of size m each, all the edges are of the form (u, v), u ∈ V 1 , v ∈ V 2 , and the degree of every vertex v in V is n. Let A[n, R 0 n, d 0 ] be a linear binary code of length n called the local code below. We identify the coordinates of C with the set E and for a vertex v ∈ V denote by x(v) ∈ {0, 1} n the projection of a vector x ∈ {0, 1} N , N = nm, on the edges incident to v. A graph code C(G) is defined as follows:. The ensemble of codes G (A, m) is constructed by associating a code C(G) with a graph G sampled from the set of graphs defined by a random permutation on N elements which establishes how the edges originating in V 1 are connected to the vertices in V 2 . Generalizing this construction, consider an l-partite nregular uniform hypergraph H = (V, E) i.e., a finite set. , and a collection E of l-subsets (hyperedges) of V such that every e ∈ E intersects each V i , 1 ≤ i ≤ l by exactly one element and each vertex v ∈ V appears in exactly n different subsets of E. Aiming at constructing an [N, RN ] binary linear code C by imposing local constraints at the vertices, we again identify the coordinates of C with the (hyper)edges of H. By definition, the code C is formed of the vectors x that satisfy condition (1) for every vertex in V. The ensemble of codes H (A, l, m) in this case is constructed by sampling a random hypergraph from the set of hypergraphs defined by l − 1 independent random permutations on N elements. For i = 1, 2, . . . , l − 1, the ith permutation accounts for the placement of edges between parts. The following is known about the parameters of codes in the graph and hypergraph ensembles considered here. It is easy to see that the rate R of the codes C ∈ H (A, l, m). ) the average value of the minimum distance of codes in the hypergraph ensemble and let. A way to bound the value of δ below using the distribution of distances in the local code A was suggested in [5] , [8] .. More explicit results in this direction were obtained in [1] , [3] . In particular, [1] shows that δ(H ) > 0 if the local distance. . For the bipartite graph ensemble G (A, m) (i.e., for l = 2) this implies that d 0 ≥ 3, i.e., with high probability codes in ensemble are asymptotically good (have nonvanishing rate and relative distance) when the local codes correct one or more errors. For hypergraphs with l = 3 or more parts any local codes (without repeated vectors) account for an asymptotically good ensemble. An explicit lower bound for δ(H ) that depends only on l and d 0 is given by [1] , see Theorem 5.5 below. For the case when n is large and d 0 = δ 0 n, a lower estimate of δ(H ) is given by the solution for x of the following equation [1, Cor. 6] :. Finally, if the local codes are chosen randomly as opposed to a fixed code A used at every vertex of H, then the codes in the (hyper)graph ensemble match the best known linear codes, i.e., reach the asymptotic Gilbert-Varshamov bound on the minimum distance [1] .. Remarks.. 1. An equivalent description of the bipartite code ensemble is obtained by considering an edge-vertex incidence graph of the graph G(V, E), i.e., a bipartite graph. is connected to one vertex in V 1 and to one vertex in V 2 , and there are no other edges inĒ. Thus, for all v ∈ D 1 , deg(v) = 2 and for all v ∈ D 2 , deg(v) = n. The local code constrains are imposed on the vertices in D 2 . By increasing the number of parts in D 2 from two to l, we then obtain the hypergraph codes defined above. This gives an alternate description of the hypergraph code presented in Fig. 1 .. The ensemble of hypergraph codes with local constraints given by single parity-check codes was introduced by Gallager [7, p.12] . The proportion of errors correctable with these codes using the so-called "flipping" algorithm was estimated in [15] . Several generalizations of this ensemble were studied in [1] , [4] .. 2. The derivations of this paper are not specific to binary codes: any local linear codes such as Reed-Solomon codes can be used in the construction with no conceptual changes to the analysis and the conclusions.. III. DECODING ALGORITHMS FOR GRAPH (GENERALIZED LDPC) CODES Even though the ensemble G (A, m) forms a particular case of the ensemble H (A, l, m), in our analysis we employ different decoding algorithms for the cases l = 2 and l ≥ 3. The reason for this is that edge-oriented procedures commonly used for bipartite-graph codes do not generalize well to hypergraphs.. A. Decoding for the ensemble G (A, m). In our estimates of the number of correctable errors for the ensemble G we rely upon the algorithm of [13] which iterates between decoding all the vertices in parts V 1 and V 2 in parallel using some decoding algorithm of the code A. Let C ∈ G (A, m) be a code. For the ease of analysis we assume that the local codes are decoded to correct up to t errors, where t ≥ 0 is an integer that satisfies 2t + 1 ≤ d 0 and d 0 is the distance of the code A. Formally, define a mapping ψ A,t : {0, 1} n → {0, 1} n such that ψ A,t (z) = x ∈ A if x is the unique codeword that satisfies d(z, x) ≤ t and ψ A,t (z) = z otherwise. Let y (i) be the estimate of the transmitted vector before the ith iteration, i ≥ 1, where y = y (1) is the received vector. The next steps are repeated for a certain number of iterations.. Algorithm I (y (1) ). B. Decoding for the ensemble H (A, l, m). For the hypergraph ensemble H (A, l, m) we use the decoding algorithm proposed in [1] . It proves to be the best choice in terms of the number of correctable errors among several possible algorithms for these codes such as the one in [4] and procedures analogous to Algorithm I above.. Let C ∈ H (A, l, m) be a code and let H(V, E), V = V 1 ∪ · · · ∪ V l be the graph associated with it. For every i = 1, 2 . . . , l we will define an i-th subprocedure that decodes the local code A on every vertex in the part V i . Suppose that a vector u ∈ {0, 1} N is associated with the edges e ∈ E. Let v i,1 , . . . , v i,m be the vertices in the part V i of H and let u i,1 = u(v i,1 ), . . . , u i,m = u(v i,m ) be the m subvectors obtained from u upon permuting its coordinates according to the order of edges in V i and projecting it on the vertices v i,1 , . . . , v i,m . In other words, the vector (u i,1 , . . . , u i,m ) is obtained from u using the permutation that establishes edge connections between parts V 1 and V i . The ith subprocedure replaces the vector (u i,1 , . . . , u i,m ) with the vector. The algorithm proceeds in iterations. Let y ∈ {0, 1} N be the received vector. Denote by Y (j) the set of estimates of the transmitted codeword (i.e., the set of N -vectors) stored at the vertices of H before the jth iteration j = 1, 2, . . . . After each iteration, this set is formed as the union of the vectors obtained upon decoding of the vertices in the ith part, i = 1, . . . , l. Decoding begins with setting Y (1) = {y}. After the first iteration we obtain l potentially different vectors (one for each subprocedure) which form the current estimates of the transmitted vector. These vectors form the sets Y (2) i , i = 1, . . . , l. In the next iteration each subprocedure will have to be applied to each of the l outcomes of the preceding iteration. Proceeding in this way, we observe that |Y (j) i | ≤ l j−1 . This algorithm, called Algorithm II below, will only be applied for a constant number s of iterations until we can guarantee that at least one subprocedure has reduced the number of errors to a specified proportion, say from γ 0 N to some γ 1 N, γ 1 < γ 0 . We then let another algorithm take over and decode all the l s candidates. Any low-complexity decoder of graph codes that removes an arbitrarily small positive fraction of errors γ 1 will do at this stage. This is because taking the proportion of errors from γ 0 to γ 1 > 0 can be accomplished in a constant number s of steps, so the number of candidates that this decoder has to handle is at most l s and does not depend on N.. For the case of local codes correcting t ≥ 2 errors we let this algorithm to be the decoding algorithm of bipartitegraph codes (Algorithm I), making sure that γ 1 is below the proportion of errors that are necessarily corrected by this algorithm for the ensemble G (A, m). This is possible because, leaving any two parts of the original hypergraph H to form a bipartite graph G, we obtain a random code from the ensemble G (A, m) which with high probability (over the ensemble) will remove all the residual errors from at least one candidate estimate. For t = 1 this approach fails for the reasons discussed in the next section, so we resort to a procedure in [14] that corrects a small linear fraction of errors for single-error-correcting Hamming codes.. Upon performing the described procedure we obtain a list of at most l s candidate codewords of the code C. . Though the last step of the decoding algorithm described is different from [1] , the main idea is similar to that paper, so we refer to it for a more detailed description and a discussion of the algorithm. We have estimated the proportion of errors correctable by codes from ensembles defined by random l-partite graphs, l ≥ 2. In contrast to the case of expander codes [10] , [13] , [2] , [4] , [1] our calculations cover the case of local codes of arbitrary given length and distance, including small values of the distance. The behavior of code ensembles considered here was examined from a different perspective in [1] where we computed estimates of the expected distance and weight distribution of these codes. The paper [1] and the present work together provide answers to the set of basic questions regarding random networks of short linear binary codes and extend our perspective of concatenated code constructions to the case of sparse regular graphs.

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


On the Failure of Fixed-Point Theorems for Chain-complete Lattices in the Effective Topos In the effective topos there exists a chain-complete distributive lattice with a monotone and progressive endomap which does not have a fixed point. Consequently, the Bourbaki-Witt theorem and Tarski's fixed-point theorem for chain-complete lattices do not have constructive (topos-valid) proofs. Fixed-point theorems state that maps have fixed points under certain conditions. They are used prominently in denotational semantics, for example to give meaning to recursive programs. In fact, it is hard to overestimate their applicability and importance in mathematics in general.. A constructive proof of a fixed-point theorem makes the theorem twice as worthy because it yields an algorithm for computing a fixed point. Indeed, many fixed-point theorems have constructive proofs, of which we might mention Lawvere's fixed-point theorem [5] , Tarski's fixed-point theorem for a monotone map on a complete lattice [8] , and Pataraia's generalization of it to directed-complete posets [6] . Two that have defied constructive proofs are Tarski's theorem for chain-complete posets and the Bourbaki-Witt theorem [1, 10] for progressive maps on chain-complete posets, see Section 5 for their precise statements.. I show that in the effective topos [3] there is a chain-complete distributive lattice with a monotone and progressive endomap which does not have a fixed point. An immediate consequence of this is that both Tarski's theorem for chain-complete posets and the Bourbaki-Witt theorem have no constructive (topos-valid) proofs.. The outline of the argument is as follows. In the effective topos Eff every chain is a quotient of a subobject of the natural numbers, hence it has at most countably many global points. Consequently, the (embedding into Eff of the) poset ω 1 of set-theoretic countable ordinals is chain-complete in the effective topos, even though it is only countably complete in the topos of sets. The successor function on ω 1 is monotone, progressive, and does not have a fixed point. We work out the details of the preceding argument carefully in order not to confuse external and internal notions of chain-completeness and countability. We use [9] as a reference on the effective topos. For the uninitiated, we have included a brief overview of the effective topos in Appendix A. An immediate consequence of Corollary 4.2 is that the following theorems cannot be proved constructively, i.e., in higher-order intuitionistic logic:. 1. Tarski's Theorem [8] for chain-complete lattices: a monotone map on a chain-complete lattice has a fixed point.. 2. Bourbaki-Witt theorem [1, 10] : a progressive map on a chain-complete poset has a fixed point above every point.. The theorems cannot be proved even if we assume Dependent Choice because it is valid in the effective topos. Dito Pataraia [6] proved constructively Tarski's fixed-point theorem for dcpos. A natural question is whether perhaps the Bourbaki-Witt theorem can also be proved constructively for dcpos. The following observation by France Dacar [2] shows that this is not possible because the Bourbaki-Witt theorems for chain-complete posets and dcpos are constructively equivalent.

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