Neural Logic Framework for Digital Assistants

Total Page:16

File Type:pdf, Size:1020Kb

Neural Logic Framework for Digital Assistants MEng Individual Project Imperial College London Department of Computing Neural Logic Framework for Digital Assistants Supervisor: Prof. Alessandra Russo Author: Nuri Cingillioglu Second Marker: Dr. Krysia Broda June 16, 2017 Abstract Digital assistants are becoming ubiquitous with consumers across mobile platforms help- ing with everyday tasks. The natural language interface of most assistants are built on machine learning based intent parsing techniques. This design cannot handle higher level abstract reasoning such as defaults while logic programs can incorporate them. In this project we present Kevin, a digital personal assistant with a logical framework built on top of neural networks to provide a flexible execution environment while har- nessing the capabilities of machine learning at a lower level. Kevin demonstrates natural language based logical constructs such as unification and resolution with integrated neural network information retrieval. Acknowledgements I would like to thank: • my parents for their wholehearted support, endless love and perpetual encourage- ment. • my supervisor Prof. Alessandra Russo for giving me this opportunity by accepting the project proposal and allowing me to explore the topic as well as her PhD student Mark Law for his feedback. • my personal tutor Dr. Alistair Donaldson for his support and advice for the years. • my friends for their companionship and solace throughout my degree. Contents 1 Introduction 11 1.1 Motivation.................................... 11 1.2 Objectives.................................... 12 1.3 Challenges.................................... 12 1.4 Contributions.................................. 13 2 Related Work 14 2.1 Natural Language Interactions......................... 14 2.1.1 Turing Test............................... 14 2.1.2 Conversational Agents......................... 15 2.2 Domain-specific Assistants........................... 17 2.2.1 PANDA: Virtual assistant for in-car child entertainment...... 18 2.2.2 Radar: Assistant agent for email and task management....... 18 2.2.3 SimCity game assistant......................... 19 2.2.4 Creating Conversation Flows...................... 20 2.3 Towards Intelligent Assistants......................... 21 2.3.1 Domain Problem............................ 21 2.3.2 Adding Knowledge........................... 22 2.3.3 Retaining Knowledge.......................... 22 2.4 Virtual Assistant Architectures........................ 23 2.4.1 Attorney 209: Adviser for family-based cases............. 23 2.4.2 Project Execution Assistant (PExA)................. 24 2.4.3 Cloud Scale Assistant Architectures.................. 26 2 CONTENTS CONTENTS 2.5 Personalisation & Gender Issues........................ 28 2.5.1 Interaction design............................ 28 2.5.2 Social environment and expectations................. 29 2.5.3 Becoming human-like.......................... 30 2.6 Language Representations........................... 30 2.6.1 Combinatory Categorical Grammar (CCG).............. 31 2.6.2 Abstract Meaning Representation (AMR).............. 31 3 Background 33 3.1 From Conversations to Assistants....................... 33 3.1.1 Personal Digital Assistant, the Definition............... 33 3.1.2 Pragmatism in Agents......................... 34 3.2 Extracting Structured Data.......................... 35 3.3 Logic Programming............................... 36 3.3.1 Negation by Failure........................... 37 3.3.2 SLDNF Resolution........................... 37 3.4 Deep NLP.................................... 39 3.4.1 word2vec................................. 39 3.4.2 Global Vectors (GloVe)......................... 41 3.4.3 Long Short-Term Memory (LSTM).................. 42 3.4.4 Bi-Directional Attention Flow (BiDAF) Model............ 43 4 Logic Framework 46 4.1 Scripting..................................... 46 4.1.1 Tracing an Answer........................... 47 4.2 Facts....................................... 49 4.3 Constraints................................... 50 4.4 Intent parsing.................................. 51 4.4.1 Interactive Rule Constructing..................... 53 4.5 Template IR................................... 54 4.6 Template deduction............................... 55 3 CONTENTS CONTENTS 4.7 Negation by failure............................... 57 4.8 Free Form Integrations............................. 59 4.8.1 Query Redirecting........................... 60 4.8.2 Neural Network Extraction....................... 61 5 Similarity & Unification 64 5.1 Types of Similarity............................... 64 5.1.1 Document Average Similarity..................... 65 5.1.2 Bag-of-words Similarity......................... 66 5.1.3 Maximal Token Similarity....................... 67 5.1.4 Weighted Maximal Token (Fuzzy) Similarity............. 68 5.1.5 Tree Edit Similarity........................... 69 5.1.6 Hybrid Similarity............................ 70 5.2 Sentence Unification.............................. 70 5.2.1 Strict Unification............................ 71 5.2.2 Fuzzy Unification............................ 72 6 Deep Question Answering 74 6.1 Similar Selection................................ 74 6.2 Guided BiDAF................................. 76 6.2.1 Network Architecture.......................... 77 6.2.2 Model Differences............................ 78 6.2.3 Training and Limitations........................ 79 6.2.4 Output Examples............................ 81 7 Implementation 85 7.1 NLP Back End................................. 85 7.1.1 Spacy.................................. 85 7.1.2 CoreNLP................................ 87 7.2 Internal Representation............................. 88 7.2.1 Parse Trees (PTree)........................... 89 4 CONTENTS CONTENTS 7.2.2 Expressions (Expr)........................... 90 7.2.3 Rules (Rule)............................... 91 7.2.4 Knowledge Bases (KB)......................... 92 7.3 Query Pipeline................................. 93 7.3.1 Input Module.............................. 93 7.3.2 Command Module........................... 94 7.3.3 Basic Co-reference........................... 94 7.3.4 Query Evaluation............................ 95 7.3.5 Proof Engine.............................. 96 7.3.6 Resolution (Display).......................... 97 7.3.7 Output Module............................. 98 8 Evaluation 99 8.1 Similarity Metrics................................ 99 8.1.1 Average Based.............................. 100 8.1.2 Token Based............................... 101 8.1.3 Tree Structure Based.......................... 102 8.2 Sentence Extraction............................... 104 8.2.1 Performance............................... 105 8.3 User Interactions................................ 106 8.3.1 Sample Queries............................. 107 8.3.2 Wikipedia Application......................... 108 8.4 Limitations................................... 110 8.4.1 Co-reference resolution......................... 110 8.4.2 Follow-up Queries............................ 111 8.4.3 Single Sentence Selection........................ 113 9 Conclusion 115 9.1 Summary of Work................................ 115 9.2 Future Work................................... 117 9.2.1 Neural Logic Amalgamation...................... 117 5 CONTENTS CONTENTS 9.2.2 Multi Sentence Comprehension.................... 118 A NLP 119 A.1 Part-of-speech Tags (POS)........................... 119 A.2 Dependency Tags (DEP)............................ 119 6 List of Figures 2.1 The Radar system pipeline overview...................... 19 2.2 The SimCity assistant architecture....................... 20 2.3 Recast AI conversation flow representation................... 20 2.4 Attorney 209 architecture overview....................... 24 2.5 Project Execution Assistant (PExA) architecture overview.......... 25 2.6 Project Execution Assistant (PExA) follow up dialogue interaction..... 26 2.7 A generic cloud-based personal assistant architecture............. 27 2.8 Sirius architecture overview with mobile and server components....... 27 2.9 CCG proof of "Marcel proved completeness" using lambda calculus..... 31 2.10 PENNMAN representation of AMR on "The boy wants to go."....... 32 2.11 Graphical representation of AMR on "The boy wants to go."........ 32 3.1 Entity recognition and variable assignment in Wit AI............. 35 3.2 SLDNF operational semantics of goal oriented proof............. 38 3.3 Example search space of SLDNF on list membership............. 38 3.4 Continuous bag-of-words and skip-gram models presented in word2vec [1].. 39 3.5 Word2vec results from TensorFlow [2] example implementation....... 41 3.6 Superlative linear structures in learnt vectors from GloVe.......... 42 3.7 A representation of an LSTM unit....................... 43 3.8 BiDAF model architecture overview...................... 44 3.9 BiDAF model contextual embedding visualisation............... 45 4.1 Graphical representation of a basic rule in logic framework.......... 47 4.2 Query rules for music playing intent in API AI................ 52 7 LIST OF FIGURES LIST OF FIGURES 4.3 Graphical representation of negation by failure................ 58 4.4 Graphical representation of overriding expression proofs with neural networks. 63 5.1 Fuzzy unification example on slightly different sentence structures...... 72 6.1 The architecture of the network used in guided BiDAF............ 77 6.2 Factual answer extraction using guided BiDAF................ 81 6.3 Causal answer extraction using guided BiDAF................. 82 6.4 Failed
Recommended publications
  • Digital Workaholics:A Click Away
    GSJ: Volume 9, Issue 5, May 2021 ISSN 2320-9186 1479 GSJ: Volume 9, Issue 5, May 2021, Online: ISSN 2320-9186 www.globalscientificjournal.com DIGITAL WORKAHOLICS:A CLICK AWAY Tripti Srivastava Muskan Chauhan Rohit Pandey Galgotias University Galgotias University Galgotias University [email protected] muskanchauhansmile@g [email protected] m mail.com om ABSTRACT:-In today’s world, Artificial Intelligence (AI) has become an 1. INTRODUCTION integral part of human life. There are many applications of AI such as Chatbot, AI defines as those device that understands network security, complex problem there surroundings and took actions which solving, assistants, and many such. increase there chance to accomplish its Artificial Intelligence is designed to have outcomes. Artifical Intelligence used as “a cognitive intelligence which learns from system’s ability to precisely interpret its experience to take future decisions. A external data, to learn previous such data, virtual assistant is also an example of and to use these learnings to accomplish cognitive intelligence. Virtual assistant distinct outcomes and tasks through supple implies the AI operated program which adaptation.” Artificial Intelligence is the can assist you to reply to your query or developing branch of computer science. virtually do something for you. Currently, Having much more power and ability to the virtual assistant is used for personal develop the various application. AI implies and professional use. Most of the virtual the use of a different algorithm to solve assistant is device-dependent and is bind to various problems. The major application a single user or device. It recognizes only being Optical character recognition, one user.
    [Show full text]
  • Deep Almond: a Deep Learning-Based Virtual Assistant [Language-To-Code Synthesis of Trigger-Action Programs Using Seq2seq Neural Networks]
    Deep Almond: A Deep Learning-based Virtual Assistant [Language-to-code synthesis of Trigger-Action programs using Seq2Seq Neural Networks] Giovanni Campagna Rakesh Ramesh Computer Science Department Stanford University Stanford, CA 94305 {gcampagn, rakeshr1}@stanford.edu Abstract Virtual assistants are the cutting edge of end user interaction, thanks to endless set of capabilities across multiple services. The natural language techniques thus need to be evolved to match the level of power and sophistication that users ex- pect from virtual assistants. In this report we investigate an existing deep learning model for semantic parsing, and we apply it to the problem of converting nat- ural language to trigger-action programs for the Almond virtual assistant. We implement a one layer seq2seq model with attention layer, and experiment with grammar constraints and different RNN cells. We take advantage of its existing dataset and we experiment with different ways to extend the training set. Our parser shows mixed results on the different Almond test sets, performing better than the state of the art on synthetic benchmarks by about 10% but poorer on real- istic user data by about 15%. Furthermore, our parser is shown to be extensible to generalization, as well as or better than the current system employed by Almond. 1 Introduction Today, we can ask virtual assistants like Amazon Alexa, Apple’s Siri, Google Now to perform simple tasks like, “What’s the weather”, “Remind me to take pills in the morning”, etc. in natural language. The next evolution of natural language interaction with virtual assistants is in the form of task automation such as “turn on the air conditioner whenever the temperature rises above 30 degrees Celsius”, or “if there is motion on the security camera after 10pm, call Bob”.
    [Show full text]
  • Inside Chatbots – Answer Bot Vs. Personal Assistant Vs. Virtual Support Agent
    WHITE PAPER Inside Chatbots – Answer Bot vs. Personal Assistant vs. Virtual Support Agent Artificial intelligence (AI) has made huge strides in recent years and chatbots have become all the rage as they transform customer service. Terminology, such as answer bots, intelligent personal assistants, virtual assistants for business, and virtual support agents are used interchangeably, but are they the same thing? The concepts are similar, but each serves a different purpose, has specific capabilities, varying extensibility, and provides a range of business value. 2018 © Copyright ServiceAide, Inc. 1-650-206-8988 | www.serviceaide.com | [email protected] INSIDE CHATBOTS – ANSWER BOT VS. PERSONAL ASSISTANT VS. VIRTUAL SUPPORT AGENT WHITE PAPER Before we dive into each solution, a short technical primer is in order. A chatbot is an AI-based solution that uses natural language understanding to “understand” a user’s statement or request and map that to a specific intent. The ‘intent’ is equivalent to the intention or ‘the want’ of the user, such as ordering a pizza or booking a flight. Once the chatbot understands the intent of the user, it can carry out the corresponding task(s). To create a chatbot, someone (the developer or vendor) must determine the services that the ‘bot’ will provide and then collect the information to support requests for the services. The designer must train the chatbot on numerous speech patterns (called utterances) which cover various ways a user or customer might express intent. In this development stage, the developer defines the information required for a particular service (e.g. for a pizza order the chatbot will require the size of the pizza, crust type, and toppings).
    [Show full text]
  • Welsh Language Technology Action Plan Progress Report 2020 Welsh Language Technology Action Plan: Progress Report 2020
    Welsh language technology action plan Progress report 2020 Welsh language technology action plan: Progress report 2020 Audience All those interested in ensuring that the Welsh language thrives digitally. Overview This report reviews progress with work packages of the Welsh Government’s Welsh language technology action plan between its October 2018 publication and the end of 2020. The Welsh language technology action plan derives from the Welsh Government’s strategy Cymraeg 2050: A million Welsh speakers (2017). Its aim is to plan technological developments to ensure that the Welsh language can be used in a wide variety of contexts, be that by using voice, keyboard or other means of human-computer interaction. Action required For information. Further information Enquiries about this document should be directed to: Welsh Language Division Welsh Government Cathays Park Cardiff CF10 3NQ e-mail: [email protected] @cymraeg Facebook/Cymraeg Additional copies This document can be accessed from gov.wales Related documents Prosperity for All: the national strategy (2017); Education in Wales: Our national mission, Action plan 2017–21 (2017); Cymraeg 2050: A million Welsh speakers (2017); Cymraeg 2050: A million Welsh speakers, Work programme 2017–21 (2017); Welsh language technology action plan (2018); Welsh-language Technology and Digital Media Action Plan (2013); Technology, Websites and Software: Welsh Language Considerations (Welsh Language Commissioner, 2016) Mae’r ddogfen yma hefyd ar gael yn Gymraeg. This document is also available in Welsh.
    [Show full text]
  • Functional and Logic Programming - Wolfgang Schreiner
    COMPUTER SCIENCE AND ENGINEERING - Functional and Logic Programming - Wolfgang Schreiner FUNCTIONAL AND LOGIC PROGRAMMING Wolfgang Schreiner Research Institute for Symbolic Computation (RISC-Linz), Johannes Kepler University, A-4040 Linz, Austria, [email protected]. Keywords: declarative programming, mathematical functions, Haskell, ML, referential transparency, term reduction, strict evaluation, lazy evaluation, higher-order functions, program skeletons, program transformation, reasoning, polymorphism, functors, generic programming, parallel execution, logic formulas, Horn clauses, automated theorem proving, Prolog, SLD-resolution, unification, AND/OR tree, constraint solving, constraint logic programming, functional logic programming, natural language processing, databases, expert systems, computer algebra. Contents 1. Introduction 2. Functional Programming 2.1 Mathematical Foundations 2.2 Programming Model 2.3 Evaluation Strategies 2.4 Higher Order Functions 2.5 Parallel Execution 2.6 Type Systems 2.7 Implementation Issues 3. Logic Programming 3.1 Logical Foundations 3.2. Programming Model 3.3 Inference Strategy 3.4 Extra-Logical Features 3.5 Parallel Execution 4. Refinement and Convergence 4.1 Constraint Logic Programming 4.2 Functional Logic Programming 5. Impacts on Computer Science Glossary BibliographyUNESCO – EOLSS Summary SAMPLE CHAPTERS Most programming languages are models of the underlying machine, which has the advantage of a rather direct translation of a program statement to a sequence of machine instructions. Some languages, however, are based on models that are derived from mathematical theories, which has the advantages of a more concise description of a program and of a more natural form of reasoning and transformation. In functional languages, this basis is the concept of a mathematical function which maps a given argument values to some result value.
    [Show full text]
  • A Generator of Natural Language Semantic Parsers for Virtual
    Genie: A Generator of Natural Language Semantic Parsers for Virtual Assistant Commands Giovanni Campagna∗ Silei Xu∗ Mehrad Moradshahi Computer Science Department Computer Science Department Computer Science Department Stanford University Stanford University Stanford University Stanford, CA, USA Stanford, CA, USA Stanford, CA, USA [email protected] [email protected] [email protected] Richard Socher Monica S. Lam Salesforce, Inc. Computer Science Department Palo Alto, CA, USA Stanford University [email protected] Stanford, CA, USA [email protected] Abstract CCS Concepts • Human-centered computing → Per- To understand diverse natural language commands, virtual sonal digital assistants; • Computing methodologies assistants today are trained with numerous labor-intensive, → Natural language processing; • Software and its engi- manually annotated sentences. This paper presents a method- neering → Context specific languages. ology and the Genie toolkit that can handle new compound Keywords virtual assistants, semantic parsing, training commands with significantly less manual effort. data generation, data augmentation, data engineering We advocate formalizing the capability of virtual assistants with a Virtual Assistant Programming Language (VAPL) and ACM Reference Format: using a neural semantic parser to translate natural language Giovanni Campagna, Silei Xu, Mehrad Moradshahi, Richard Socher, into VAPL code. Genie needs only a small realistic set of input and Monica S. Lam. 2019. Genie: A Generator of Natural Lan- sentences for validating the neural model. Developers write guage Semantic Parsers for Virtual Assistant Commands. In Pro- templates to synthesize data; Genie uses crowdsourced para- ceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’19), June 22–26, 2019, phrases and data augmentation, along with the synthesized Phoenix, AZ, USA.
    [Show full text]
  • EN-Google Hacks.Pdf
    Table of Contents Credits Foreword Preface Chapter 1. Searching Google 1. Setting Preferences 2. Language Tools 3. Anatomy of a Search Result 4. Specialized Vocabularies: Slang and Terminology 5. Getting Around the 10 Word Limit 6. Word Order Matters 7. Repetition Matters 8. Mixing Syntaxes 9. Hacking Google URLs 10. Hacking Google Search Forms 11. Date-Range Searching 12. Understanding and Using Julian Dates 13. Using Full-Word Wildcards 14. inurl: Versus site: 15. Checking Spelling 16. Consulting the Dictionary 17. Consulting the Phonebook 18. Tracking Stocks 19. Google Interface for Translators 20. Searching Article Archives 21. Finding Directories of Information 22. Finding Technical Definitions 23. Finding Weblog Commentary 24. The Google Toolbar 25. The Mozilla Google Toolbar 26. The Quick Search Toolbar 27. GAPIS 28. Googling with Bookmarklets Chapter 2. Google Special Services and Collections 29. Google Directory 30. Google Groups 31. Google Images 32. Google News 33. Google Catalogs 34. Froogle 35. Google Labs Chapter 3. Third-Party Google Services 36. XooMLe: The Google API in Plain Old XML 37. Google by Email 38. Simplifying Google Groups URLs 39. What Does Google Think Of... 40. GooglePeople Chapter 4. Non-API Google Applications 41. Don't Try This at Home 42. Building a Custom Date-Range Search Form 43. Building Google Directory URLs 44. Scraping Google Results 45. Scraping Google AdWords 46. Scraping Google Groups 47. Scraping Google News 48. Scraping Google Catalogs 49. Scraping the Google Phonebook Chapter 5. Introducing the Google Web API 50. Programming the Google Web API with Perl 51. Looping Around the 10-Result Limit 52.
    [Show full text]
  • Belgium a Logic Meta-Programming Framework for Supporting The
    Vrije Universiteit Brussel - Belgium Faculty of Sciences In Collaboration with Ecole des Mines de Nantes - France 2003 ERSITEIT IV B N R U U S E S J I E R L V S C S I E A N R B T E IA N VIN TE CERE ECOLE DES MINES DE NANTES A Logic Meta-Programming Framework for Supporting the Refactoring Process A Thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Science (Thesis research conducted in the EMOOSE exchange) By: Francisca Mu˜nozBravo Promotor: Prof. Dr. Theo D’Hondt (Vrije Universiteit Brussel) Co-Promotors: Dr. Tom Tourw´eand Dr. Tom Mens (Vrije Universiteit Brussel) Abstract The objective of this thesis is to provide automated support for recognizing design flaws in object oriented code, suggesting proper refactorings and performing automatically the ones selected by the user. Software suffers from inevitable changes throughout the development and the maintenance phase, and this usually affects its internal structure negatively. This makes new changes diffi- cult to implement and the code drifts away from the original design. The introduced structural disorder can be countered by applying refactorings, a kind of code transformation that improves the internal structure without affecting the behavior of the application. There are several tools that support applying refactorings in an automated way, but little help for deciding where to apply a refactoring and which refactoring could be applied. This thesis presents an advanced refactoring tool that provides support for the earlier phases of the refactoring process, by detecting and analyzing bad code smells in a software application, proposing appropriate refactorings that solve these smells, and letting the user decide which one to apply.
    [Show full text]
  • Awareness Watch™ Newsletter by Marcus P
    Awareness Watch™ Newsletter By Marcus P. Zillman, M.S., A.M.H.A. http://www.AwarenessWatch.com/ V6N1 January 2008 Welcome to the V6N1 January 2008 issue of the Awareness Watch™ Newsletter. This newsletter is available as a complimentary subscription and will be issued monthly. Each newsletter will feature the following: Awareness Watch™ Featured Report Awareness Watch™ Spotters Awareness Watch™ Book/Paper/Article Review Subject Tracer™ Information Blogs I am always open to feedback from readers so please feel free to email with all suggestions, reviews and new resources that you feel would be appropriate for inclusion in an upcoming issue of Awareness Watch™. This is an ongoing work of creativity and you will be observing constant changes, constant updates knowing that “change” is the only thing that will remain constant!! Awareness Watch™ Featured Report This month’s featured report will be highlighting my Knowledge Discovery Resources 2008 Internet MiniGuide Annotated Link Compilation. These resources are constantly updated on the Knowledge Discovery Resources Subject Tracer™ Information Blog available at the following URL: http://www.KnowledgeDiscovery.info/ These resources and sites bring you the latest information and happenings in the area of Knowledge Discovery on the Internet and allow you to expand your knowledge both in discovery as well as connected and associated Internet links. 1 Awareness Watch V6N1 January 2008 Newsletter http://www.AwarenessWatch.com/ [email protected] © 2008 Marcus P. Zillman, M.S., A.M.H.A. Knowledge Discovery Resources 2008 An Internet MiniGuide Annotated Link Compilation By Marcus P. Zillman, M.S., A.M.H.A. Executive Director – Virtual Private Library [email protected] This Internet MiniGuide Annotated Link Compilation is dedicated to the latest and most competent resources for knowledge discovery available over the Internet.
    [Show full text]
  • Ringcentral for Google Chrome Extension User Guide Introduction 6
    RingCentral for Google Chrome Extension User Guide RingCentral for Google Chrome Extension | User Guide | Contents | 2 C ontents Introduction ................................ ............................... 4 About RingCentral for Google Chrome Extension ................................ ................... 5 About this Guide ...................................................................... 5 Basics ............................................................................. 5 Installation ................................................................. 7 Verify Installation ............................................................ 8 Login ..................................................................... 9 Minimize and Close Button .................................................... 10 Options .................................................................. 11 Settings .................................................................. 12 Calling ................................................................... 13 Region .................................................................. 14 Status ................................................................... 15 Click to Dial/SMS ........................................................... 15 Authorize ................................................................. 16 Feedback ................................................................. 16 EULA and Version ........................................................... 16 Logout ..................................................................
    [Show full text]
  • Or Directory?
    01_599305_ffirs.qxd 7/15/05 6:50 PM Page iii Google™ Search & Rescue FOR DUMmIES‰ by Brad Hill 01_599305_ffirs.qxd 7/15/05 6:50 PM Page ii 01_599305_ffirs.qxd 7/15/05 6:50 PM Page i Google™ Search & Rescue FOR DUMmIES‰ 01_599305_ffirs.qxd 7/15/05 6:50 PM Page ii 01_599305_ffirs.qxd 7/15/05 6:50 PM Page iii Google™ Search & Rescue FOR DUMmIES‰ by Brad Hill 01_599305_ffirs.qxd 7/15/05 6:50 PM Page iv GoogleTM Search & Rescue For Dummies® Published by Wiley Publishing, Inc. 111 River Street Hoboken, NJ 07030-5774 www.wiley.com Copyright © 2005 by Wiley Publishing, Inc., Indianapolis, Indiana Published by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permit- ted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at http://www.wiley.com/go/permissions. Trademarks: Wiley, the Wiley Publishing logo, For Dummies, the Dummies Man logo, A Reference for the Rest of Us!, The Dummies Way, Dummies Daily, The Fun and Easy Way, Dummies.com, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc.
    [Show full text]
  • The Future of the Internet and How to Stop It the Harvard Community Has
    The Future of the Internet and How to Stop It The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters. Citation Jonathan L. Zittrain, The Future of the Internet -- And How to Stop It (Yale University Press & Penguin UK 2008). Published Version http://futureoftheinternet.org/ Accessed February 18, 2015 9:54:33 PM EST Citable Link http://nrs.harvard.edu/urn-3:HUL.InstRepos:4455262 Terms of Use This article was downloaded from Harvard University's DASH repository, and is made available under the terms and conditions applicable to Other Posted Material, as set forth at http://nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms- of-use#LAA (Article begins on next page) YD8852.i-x 1/20/09 1:59 PM Page i The Future of the Internet— And How to Stop It YD8852.i-x 1/20/09 1:59 PM Page ii YD8852.i-x 1/20/09 1:59 PM Page iii The Future of the Internet And How to Stop It Jonathan Zittrain With a New Foreword by Lawrence Lessig and a New Preface by the Author Yale University Press New Haven & London YD8852.i-x 1/20/09 1:59 PM Page iv A Caravan book. For more information, visit www.caravanbooks.org. The cover was designed by Ivo van der Ent, based on his winning entry of an open competition at www.worth1000.com. Copyright © 2008 by Jonathan Zittrain. All rights reserved. Preface to the Paperback Edition copyright © Jonathan Zittrain 2008. Subject to the exception immediately following, this book may not be reproduced, in whole or in part, including illustrations, in any form (beyond that copying permitted by Sections 107 and 108 of the U.S.
    [Show full text]