Semantic Modeling for Data Avoiding Pitfalls and Breaking Dilemmas (Panos Alexopoulos) (Z-Library)

Author: Panos Alexopoulos

科学

What value does semantic data modeling offer? As an information architect or data science professional, let’s say you have an abundance of the right data and the technology to extract business gold—but you still fail. The reason? Bad data semantics. In this practical and comprehensive field guide, author Panos Alexopoulos takes you on an eye-opening journey through semantic data modeling as applied in the real world. You’ll learn how to master this craft to increase the usability and value of your data and applications. You’ll also explore the pitfalls to avoid and dilemmas to overcome for building high-quality and valuable semantic representations of data. * Understand the fundamental concepts, phenomena, and processes related to semantic data modeling * Examine the quirks and challenges of semantic data modeling and learn how to effectively leverage the available frameworks and tools * Avoid mistakes and bad practices that can undermine your efforts to create good data models * Learn about model development dilemmas, including representation, expressiveness and content, development, and governance * Organize and execute semantic data initiatives in your organization, tackling technical, strategic, and organizational challenges

📄 File Format: PDF
💾 File Size: 9.0 MB
33
Views
0
Downloads
0.00
Total Donations

📄 Text Preview (First 20 pages)

ℹ️

Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

📄 Page 1
Panos Alexopoulos Semantic Modeling for Data Avoiding Pitfalls and Breaking Dilemmas
📄 Page 2
(This page has no text content)
📄 Page 3
Praise for Semantic Modeling for Data Not only for Semantic Web and ML practitioners, this book illuminates the critical subject of how our clarity and precision in our language and thinking interoperate to make a tremendous impact on the fitness of our software. Highly recommended for analysts, architects, programmers—anyone in software development. —Eben Hewitt, CTO and author of Semantic Software Design and Technology Strategy Patterns Panos’s clear-sighted text offers practical guidance and pragmatic advice to help you avoid the traps of vague, misleading, and just plain wrong semantic modeling. —Helen Lippell, taxonomy and semantics consultant, UK Among the attempts to bring logic, ontology, and semiotics in information engineering, this book is probably one of the best and more complete sources. —Guido Vetere, CEO and cofounder at Isagog
📄 Page 4
(This page has no text content)
📄 Page 5
Panos Alexopoulos Semantic Modeling for Data Avoiding Pitfalls and Breaking Dilemmas Boston Farnham Sebastopol TokyoBeijing
📄 Page 6
978-1-492-05427-6 [LSI] Semantic Modeling for Data by Panos Alexopoulos Copyright © 2020 Panos Alexopoulos. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com. Acquisitions Editor: Jonathan Hassell Development Editor: Michele Cronin Production Editor: Kate Galloway Copyeditor: Kim Cofer Proofreader: Piper Editorial, LLC Indexer: Ellen Troutman Zaig Interior Designer: David Futato Cover Designer: Karen Montgomery Illustrator: O’Reilly Media, Inc. September 2020: First Edition Revision History for the First Edition 2020-08-19: First Release See http://oreilly.com/catalog/errata.csp?isbn=9781492054276 for release details. The O’Reilly logo is a registered trademark of O’Reilly Media, Inc. Semantic Modeling for Data, the cover image, and related trade dress are trademarks of O’Reilly Media, Inc. The views expressed in this work are those of the author, and do not represent the publisher’s views. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.
📄 Page 7
Table of Contents Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Part I. The Basics 1. Mind the Semantic Gap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 What Is Semantic Data Modeling? 4 Why Develop and Use a Semantic Data Model? 7 Bad Semantic Modeling 8 Avoiding Pitfalls 10 Breaking Dilemmas 11 2. Semantic Modeling Elements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 General Elements 14 Entities 14 Relations 16 Classes and Individuals 17 Attributes 19 Complex Axioms, Constraints, and Rules 21 Terms 22 Common and Standardized Elements 23 Lexicalization and Synonymy 24 Instantiation 25 Meaning Inclusion and Class/Relation Subsumption 26 Part-Whole Relation 26 Semantic Relatedness 28 Mapping and Interlinking Relations 28 v
📄 Page 8
Documentation Elements 29 Summary 32 3. Semantic and Linguistic Phenomena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Ambiguity 35 Uncertainty 37 Vagueness 38 Rigidity, Identity, Unity, and Dependence 41 Symmetry, Inversion, and Transitivity 42 Closed- and Open-World Assumptions 43 Semantic Change 43 Summary 46 4. Semantic Model Quality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Semantic Accuracy 50 Completeness 52 Consistency 54 Conciseness 55 Timeliness 57 Relevancy 57 Understandability 58 Trustworthiness 59 Availability, Versatility, and Performance 60 Summary 61 5. Semantic Model Development. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Development Activities 63 Setting the Stage 64 Deciding What to Build 67 Building It 68 Ensuring It’s Good 69 Making It Useful 69 Making It Last 70 Vocabularies, Patterns, and Exemplary Models 71 Upper Ontologies 71 Design Patterns 72 Standard and Reference Models 74 Public Models and Datasets 74 Semantic Model Mining 76 Mining Tasks 76 Mining Methods and Techniques 79 vi | Table of Contents
📄 Page 9
Summary 84 Part II. The Pitfalls 6. Bad Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Giving Bad Names 87 Setting a Bad Example 89 Why We Give Bad Names 90 Pushing for Clarity 91 Omitting Definitions or Giving Bad Ones 92 When You Need Definitions 93 Why We Omit Definitions 94 Good and Bad Definitions 95 How to Get Definitions 96 Ignoring Vagueness 97 Vagueness Is a Feature, Not a Bug 99 Detecting and Describing Vagueness 100 Not Documenting Biases and Assumptions 107 Keeping Your Enemies Close 107 Summary 108 7. Bad Semantics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Bad Identity 109 Bad Synonymy 110 Bad Mapping and Interlinking 113 Bad Subclasses 115 Instantiation as Subclassing 115 Parts as Subclasses 117 Rigid Classes as Subclasses of Nonrigid Classes 118 Common Superclasses with Incompatible Identity Criteria 119 Bad Axioms and Rules 119 Defining Hierarchical Relations as Transitive 119 Defining Vague Relations as Transitive 121 Complementary Vague Classes 121 Mistaking Inference Rules for Constraints 122 Summary 123 8. Bad Model Specification and Knowledge Acquisition. . . . . . . . . . . . . . . . . . . . . . . . . . 125 Building the Wrong Thing 125 Why We Get Bad Specifications 126 Table of Contents | vii
📄 Page 10
How to Get the Right Specifications 128 Bad Knowledge Acquisition 133 Wrong Knowledge Sources 134 Wrong Acquisition Methods and Tools 140 A Specification and Knowledge Acquisition Story 146 Model Specification and Design 146 Model Population 149 Summary 153 9. Bad Quality Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Not Treating Quality as a Set of Trade-Offs 155 Semantic Accuracy Versus Completeness 156 Conciseness Versus Completeness 156 Conciseness Versus Understandability 157 Relevancy to Context A Versus Relevancy to Context B 157 Not Linking Quality to Risks and Benefits 158 Not Using the Right Metrics 160 Using Metrics with Misleading Interpretations 160 Using Metrics with Little Comparative Value 162 Using Metrics with Arbitrary Value Thresholds 162 Using Metrics That Are Actually Quality Signals 164 Measuring Accuracy of Vague Assertions in a Crisp Way 165 Equating Model Quality with Information Extraction Quality 166 Summary 167 10. Bad Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Bad Entity Resolution 169 How Entity Resolution Systems Use Semantic Models 170 When Knowledge Can Hurt You 171 How to Select Disambiguation-Useful Knowledge 172 Two Entity Resolution Stories 178 Bad Semantic Relatedness 181 Why Semantic Relatedness Is Tricky 182 How to Get the Semantic Relatedness You Really Need 183 A Semantic Relatedness Story 184 Summary 187 11. Bad Strategy and Organization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Bad Strategy 189 What Is a Semantic Model Strategy About? 190 Buying into Myths and Half-Truths 192 viii | Table of Contents
📄 Page 11
Underestimating Complexity and Cost 193 Not Knowing or Applying Your Context 195 Bad Organization 196 Not Building the Right Team 196 Underestimating the Need for Governance 200 Summary 202 Part III. The Dilemmas 12. Representation Dilemmas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Class or Individual? 205 To Subclass or Not to Subclass? 208 Attribute or Relation? 211 To Fuzzify or Not to Fuzzify? 212 What Fuzzification Involves 212 When to Fuzzify 220 Two Fuzzification Stories 222 Summary 225 13. Expressiveness and Content Dilemmas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 What Lexicalizations to Have? 227 How Granular to Be? 231 How General to Be? 233 How Negative to Be? 235 How Many Truths to Handle? 237 How Interlinked to Be? 238 Summary 241 14. Evolution and Governance Dilemmas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Model Evolution 243 Remember or Forget? 244 Run or Pace? 244 React or Prevent? 246 Knowing and Acting on Your Semantic Drift 249 Model Governance 255 Democracy, Oligarchy, or Dictatorship? 255 A Centralization Story 257 Summary 258 Table of Contents | ix
📄 Page 12
15. Looking Ahead. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 The Map Is Not the Territory 261 Being an Optimist, but Not Naïve 262 Avoiding Tunnel Vision 263 Avoiding Distracting Debates 263 Semantic Versus Nonsemantic Frameworks 263 Symbolic Knowledge Representation Versus Machine Learning 265 Doing No Harm 266 Bridging the Semantic Gap 267 Bibliography. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Glossary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 x | Table of Contents
📄 Page 13
Preface Knowledge graphs, ontologies, taxonomies, and other types of semantic data models have been developed and used in the data and artificial intelligence (AI) world for several decades. Their use captures the meaning of data in an explicit and shareable way, and enhances the effectiveness of data-driven applications. In the past decade, the popularity of such models has particularly increased. For example, the market intelligence company Gartner included knowledge graphs in its 2018 hype cycle for emerging technologies; and several prominent organizations like Amazon, LinkedIn, BBC, and IBM have been developing and using semantic data models within their products and services. Behind this trend, there are two main driving forces: • Data-rich organizations increasingly realize that it’s not enough to have huge amounts of data. In order to derive value from it, you actually need this data to be clean, consistent, interconnected, and with clear semantics. This enables data scientists and business analysts to focus on what they do best: extracting useful insights from it. Semantic data modeling focuses exactly on tackling this challenge. • Developers and providers of AI applications increasingly realize that machine learning and statistical reasoning techniques are not always enough to build the intelligent behavior they need; complementing them with explicit symbolic knowledge can be necessary and beneficial. Semantic data modeling focuses exactly on building and providing such knowledge. Several languages, methodologies, platforms, and tools are available for building semantic models, coming from different communities and focusing on different model aspects (e.g., representation, reasoning, storage, querying, etc.). However, the overall task of specifying, developing, putting in use, and evolving a semantic model is not as straightforward as one might think, especially as the model’s scope and scale increases. The reason is that human language and thinking is full of ambiguity, xi
📄 Page 14
vagueness, imprecision, and other phenomena that make the formal and universally accepted representation of data semantics quite a difficult task. This book shows you what semantic data modeling entails, and what challenges you have to face as a creator or user of semantic models. More importantly, it provides you with concrete advice on how to avoid dangers (pitfalls) and overcome obstacles (dilemmas). It teaches you some fundamental and enduring semantic modeling prin‐ ciples that remain true, no matter which particular framework or technology you are using, and shows you how you can apply these in your specific context. After reading this book, you will be able to critically evaluate and make better use of existing semantic models and technologies, make informed decisions, and improve the quality and usability of the models you build. Who Should Read This Book This book is for data practitioners who develop or use semantic representations of data in their everyday jobs (knowledge engineers, information architects, data engi‐ neers, data scientists, etc.), and for whom the explicitness, accuracy, and common understandability of the data’s meaning is an important dimension of their work. You will find this book particularly useful if you recognize yourself in one or more of the following situations: • You are a taxonomist, ontologist, or other type of data modeler who knows a lot about semantic data modeling, though mostly from an academic and research perspective. You probably have a PhD or MSc in the field and excellent knowl‐ edge of modeling languages and frameworks, but you have had little chance to apply this knowledge in an industrial setting. You are now in the early stages of an industrial role and you have the opportunity to apply your knowledge to real- world problems. You have started realizing, though, that things are very different from what the academic papers and textbooks describe; the methods and techni‐ ques you’ve learned are not as applicable or effective as you thought. You face dif‐ ficult situations for which there is no obvious decision to be made and, ultimately, the semantic models you develop are misunderstood, misapplied, or provide little added value. This book will help you put your valuable and hard- earned knowledge into practice and improve the quality of your work. • You are a data or information architect, tasked with developing semantic models that can solve the problem of semantic heterogeneity between the many disparate data sources and applications or products that your organization has. For that, you have already applied several out-of-the-box semantic data management solu‐ tions that promised seamless integration, but the results you got were mostly unsatisfactory. This book will help you to better understand the not so obvious xii | Preface
📄 Page 15
dimensions and challenges you need to address in order to achieve the semantic interoperability you want. • You are a data scientist, expert in machine learning and statistical data analysis, and part of a multidisciplinary team that builds semantic models for AI applica‐ tions (e.g., knowledge graphs for virtual assistants). You interact daily with ontol‐ ogists, linguists, and other semantic professionals, but you struggle to understand their lingo and how your skills can be combined with theirs. This book will intro‐ duce you to the basics of semantic data modeling and will help you identify the aspects of it where your expertise can have the biggest impact. • You are a data scientist, expert in machine learning and statistical data analysis, working with data that has been created and semantically described by other peo‐ ple, teams, and organizations. Often, you are unsure about what these semantic data models really represent and whether they are appropriate for the kind of analysis you want to make or solution you want to build. Even worse, you make incorrect assumptions about the data’s semantics, ending up with machine learn‐ ing models and data science solutions that do not work as you had expected. This book will show you how to be more critical toward the semantic models you work with and anticipate/tackle problems that may occur. In a nutshell, this is a book for a broad range of data professionals who want to learn how to “talk semantics” in order to work more effectively together and increase the quality, usability, and value of their data. What to Expect in This Book In this book I will not attempt to give you detailed instructions on how to develop a semantic data model from scratch, or how to use specific semantic modeling lan‐ guages and frameworks. There is already plenty of documentation for that purpose that I’ll point you to. Instead, I will take a helicopter view of the semantic modeling life cycle, discuss fundamental principles and challenges, present relevant technolo‐ gies and resources, and zoom in on particular issues and situations that deserve your attention and require careful treatment. My goal is not to completely cover the field or present recent trends, but to provide you with practical and pragmatic knowledge that will help you to do your job better, both as a creator and a user of semantic models. For that, the book will focus on: Semantic thinking, not just languages or tools Most textbooks and tutorials on semantic modeling assume that producing good semantic models is primarily a matter of using the right language or tool. This book, instead, will teach you the necessary principles and techniques to use the available modeling language or framework correctly, in an effort to avoid the Garbage In, Garbage Out effect. Preface | xiii
📄 Page 16
What doesn’t work Knowing what doesn’t work and why can be a more effective way to improve the quality of a system or process than knowing only what does work, in theory or in only some cases. This book applies this principle to the task of semantic data modeling by focusing on a) identifying as many ways as possible in which things can go wrong, b) what would be the consequences of that, and c) what could be done to avoid such situations. Non-Boolean phenomena Most semantic modeling methodologies and frameworks assume that all human knowledge can be separated into false and true statements, and provide little sup‐ port for tackling “noisy” phenomena like vagueness or uncertainty. The real world, however, is full of such phenomena, and this book will help you not merely handle them, but actually use them to your advantage. Decisions in context Semantic data modeling is challenging, and modelers face many types of dilem‐ mas for which they need to make decisions. Describing successful yet isolated experiments, or “success stories,” rarely helps break these dilemmas. This book focuses on identifying as many difficult situations as possible and showing you how to break through them in your own context. Organizational and strategic aspects A semantic data modeling initiative is rarely a one-off engineering project; instead, it’s a continuous effort of fueling an organization with up-to-date and useful semantic knowledge that serves its business and data strategy. As such, it requires considering not only technical, but also organizational and strategic aspects, including how to productively work with a broad range of stakeholders (executives, technical teams, end users, salespeople, etc.). Throughout the book, I will make reference to and draw lessons from personal expe‐ riences from organizations and semantic-related projects I have worked for, and par‐ ticularly Textkernel, the company I work for as I am writing this book. Textkernel is a Dutch company that develops software for semantically analyzing and matching peo‐ ple’s résumés and job vacancies and, for that purpose, develops and utilizes a knowl‐ edge graph about the HR, recruitment, and labor market domain. Many of the pitfalls and dilemmas you will find in the book are derived from my experience there as the main person responsible for the knowledge graph’s development, application, and evolution. Also, to illustrate many of the book’s arguments, I will draw examples from semantic languages, frameworks, standards, and data models developed by the Semantic Web community, without suggesting that these are the only or the best means to develop semantic data models. The Semantic Web has been an ambitious collaborative effort to enable the publishing of semantic machine-readable and shareable data on the xiv | Preface
📄 Page 17
web. In its effort to achieve that goal, it has produced methods, technologies, and data that exemplify both good and bad practices of data modeling that you should be aware of. Finally, be aware that this book is about modeling data at the conceptual level of abstraction and, as such, does not cover the tasks and challenges of efficiently storing and processing data in data-intensive applications. For that purpose, Martin Klepp‐ man’s Designing Data-Intensive Applications (O’Reilly) and other similar books are great resources to peruse. Book Outline This book is arranged in three parts. In Part I, we discuss fundamental concepts, phenomena, and processes related to semantic data modeling, setting the tone for the rest of the book and establishing a common ground and terminology. In Chapter 1, we discuss in more detail how semantic modeling can contribute to doing better data science and AI, and demon‐ strate how bad modeling practices might undermine this effort. Chapter 2 provides an overview of the most general and common semantic modeling elements that are found in different data modeling frameworks, while Chapter 3 describes some impor‐ tant semantic and linguistic phenomena that characterize human language and think‐ ing, and play an important role in a semantic model’s quality. Chapter 4 describes the quality dimensions that should be considered when evaluating a semantic model, along with basic metrics and measurement methods for each dimension. Finally, Chapter 5, focuses on the development process of a semantic model, looking at the challenges, steps, and activities it involves, and the methodological and technological support that is available for each of them. In Part II, we take a close look at the most common pitfalls we fall into when we develop and apply semantic data models, and discuss concrete methods and techni‐ ques to effectively avoid them. In Chapter 6, we see how we might compromise the human-interpretability of a semantic model by describing its elements in inaccurate and incomplete ways. In Chapter 7, we look at how we might do the same for a mod‐ el’s machine-interpretability by using, in unintended ways, the elements the modeling languages and frameworks provide. In Chapter 8, we examine the circumstances under which we might end up building a semantic model that nobody ever asked for, as well as how the model’s development and quality may suffer from not using the right knowledge acquisition mechanisms. In Chapter 9, we see how a model’s quality is not only affected by mistakes made during its specification and development, but also by bad practices followed when measuring and managing it. Chapter 10 chal‐ lenges the assumption that just because a semantic model has been designed for the same domain or data an application operates in, its semantics are directly applicable and beneficial to it. Finally, Chapter 11 looks at the broader strategic and Preface | xv
📄 Page 18
organizational context where semantic data modeling takes place, and identifies rele‐ vant pitfalls and bad practices that may prevent an organization from successfully executing semantic data initiatives. In Part III, we switch from semantic modeling pitfalls to dilemmas, examining how to effectively deal with situations where we need to choose between alternative cour‐ ses of action, each with its own advantages and disadvantages. In Chapter 12, the dilemmas that concern us are related to choosing between different ways of repre‐ senting the same meaning, even within the same modeling language. In Chapter 13, we deal with dilemmas about what should be included in a semantic model and what can (or should) be left out, so that the model has the right balance of expressivity and content it needs. Chapter 14, in turn, considers the challenges of evolving and gov‐ erning a semantic model and describes how to craft a proper strategy to tackle them. Finally, Chapter 15 brings together some of the recurring themes of this book, and builds on them to envisage the future. Conventions Used in This Book The following typographical conventions are used in this book: Italic Indicates new terms, URLs, email addresses, filenames, and file extensions. Constant width Used for program listings, as well as within paragraphs to refer to program ele‐ ments such as variable or function names, databases, data types, environment variables, statements, and keywords. This element signifies a tip or suggestion. This element signifies a general note. This element indicates a warning or caution. xvi | Preface
📄 Page 19
O’Reilly Online Learning For more than 40 years, O’Reilly Media has provided technol‐ ogy and business training, knowledge, and insight to help companies succeed. Our unique network of experts and innovators share their knowledge and expertise through books, articles, and our online learning platform. O’Reilly’s online learning platform gives you on-demand access to live training courses, in-depth learning paths, interactive coding environments, and a vast collection of text and video from O’Reilly and 200+ other publishers. For more information, visit http://oreilly.com. How to Contact Us Please address comments and questions concerning this book to the publisher: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 800-998-9938 (in the United States or Canada) 707-829-0515 (international or local) 707-829-0104 (fax) We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at https://oreil.ly/semantic-modeling-4-data. Email bookquestions@oreilly.com to comment or ask technical questions about this book. For more information about our books, courses, conferences, and news, see our web‐ site at http://www.oreilly.com. Find us on Facebook: http://facebook.com/oreilly Follow us on Twitter: http://twitter.com/oreillymedia Watch us on YouTube: http://www.youtube.com/oreillymedia Acknowledgments There are many people I would like to thank for the role they played in the realization of this book. First, George Anadiotis, Paco Nathan, and Mike Loukides, who believed in this project and set the wheels in motion. Preface | xvii
📄 Page 20
Second, my reviewers and beta readers who provided meticulous and constructive feedback about the book: Helen Lippell, Thomas Frisendal, Eben Hewitt, Patrick Har‐ rison, George Sigletos, Guido Vetere, Jelle Jan Bankert, Artemis Parvizi, Boris Villa‐ zon Terrazas, Ghislain Atemezing, and Miika Alonen. Of course, all opinions and mistakes in the book are my own. Third, the editorial, design, and production teams at O’Reilly who supported me throughout the development process, put up with my long sentences and sloppy writ‐ ing, and helped me produce a high-quality book: Michele Cronin, Jonathan Hassell, Kate Galloway, Kim Cofer, David Futato, and Karen Montgomery. Finally, I am infinitely grateful to my beloved Spyretta for her patience and support throughout the writing process that has taken almost two years. xviii | Preface
The above is a preview of the first 20 pages. Register to read the complete e-book.

💝 Support Author

0.00
Total Amount (¥)
0
Donation Count

Login to support the author

Login Now
Back to List