Preface

Both the authors became hooked on Fluidinfo through reading obscure material on the Web by its visionary creator, Terry Jones (@terrycojones).

Nick Radcliffe (@njr) had known Terry from conferences in the late 1980s and early 1990s, when they both did PhDs focusing on representation issues in genetic algorithms. They lost contact for over a decade, but then Radcliffe stumbled upon Terry’s personal website, which included a set of papers “rejected by numerous journals and conferences.” These discussed information storage and espoused the view that operating systems and the Internet focus on the wrong organizational structure. The papers mapped out a vision in which, rather than being placed in particular locations, data was simply dropped into a storage system and annotated with metadata in the form of attributes that could be used to search, query, relate, and locate different items. From today’s perspective, Terry was describing, before they had really been invented, not just tagging in the sense we are familiar with from Delicious, Flickr, and Gmail, but a more sophisticated version where tags could have values and be queried. He coupled this metadata-driven approach with a focus on search that seems unremarkable today, but which was far from mainstream then. Radcliffe got in touch and has been involved in Fluidinfo and its antecedents since then. After two previous abandoned implementations, Terry sold his flat to fund the creation of what has become Fluidinfo, Inc., that company that builds the Fluidinfo software and runs the Fluidinfo service.

Nicholas Tollervey (@ntoll) first learned of Fluidinfo when Tim O’Reilly (@timoreilly) addressed the following tweet to Robert Scoble (@scobleizer):

@Scobleizer Have you connected with @terrycojones? I believe he’s in Barcelona, doing really interesting work that ought to be on your radar.[1]

Nicholas watched and rewatched Scoble’s four-part video interview with Terry and came to the conclusion that Terry was either mad or on to something. He tracked Terry down and sent him a long email asking for clarification on many aspects of Fluidinfo. He was somewhat surprised, some months later, to receive a detailed and enthusiastic reply from Terry, which also invited him to read the new, very dry Fluidinfo API Reference. Unlikely as it sounds, this confirmed Nicholas’s hunch that Terry was on to something and he embarked on a series of “hacks” to explore the capabilities and potential of Fluidinfo. When Fluidinfo gained funding he joined the company as “Guy #3”.

Organization of this Book

Chapter 1, What Is Fluidinfo?, introduces Fluidinfo and covers key concepts at a high level.

Chapter 2, Fluidinfo from the Command Line, introduces the Fluidinfo Shell, Fish, a powerful tool for issuing commands directly to Fluidinfo using a simple command language.

Chapter 3, Social Data, shows how you can use a variety of web-based applications to read and write Fluidinfo data. It also shows how some of the applications reuse and build upon each other’s data.

Chapter 4, Programming with Fluidinfo, explores Fluidinfo from the perspective of the software developer. Basic use of the RESTful interface is shown, using the fluidinfo.py Python library.

Chapter 5, Programming with FOM, introduces developers to a higher-level view of Fluidinfo. The Fluid Object Mapper (FOM) library is introduced to build a simple Python utility.

Chapter 6, Programming Fluidinfo with JavaScript, shows an asynchronous programmatic approach using the JavaScript library fluidinfo.js to build AJAX web applications.

Chapter 7, Fluidinfo’s RESTful API, explores Fluidinfo’s low-level HTTP API.

Chapter 8, Advanced Use of the Fluidinfo Shell, explores advanced uses of Fish and some of the more arcane details of the Fluidinfo permissions system.

Chapter 9, Conventions for the About Tag, discusses conventions for the primary identifier used in Fluidinfo, the about tag, as well as some more philosophical issues about the design of information architectures.

Finally, Appendix A, contains a reference guide to the Fluidinfo query language.

Versions

This version of this book documents the version of Fluidinfo with release date 2012-01-10T00:34:00Z, API version 1.14. The release date and API version for the live version of Fluidinfo may be found at http://fluiddb.fluidinfo.com/about/fluidinfo/fluiddb/release-date and http://fluiddb.fluidinfo.com/about/fluidinfo/fluiddb/api-version respectively. The change log is at http://doc.fluidinfo.com/fluidDB/api/changelog.html. The version of Fish documented is version 4.00. The current documentation for Fish is available at http://fluiddb.fluidinfo.com/about/fish/fish/index.html.

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 elements such as variable or function names, databases, data types, and keywords.

Constant width bold

Shows commands or other text that should be typed literally by the user.

Constant width italic

Shows text that should be replaced with user-supplied values or by values determined by context.

Tip

This icon signifies a tip, suggestion, or general note.

Caution

This icon indicates a warning or caution.

Using Code Examples

This book is here to help you get your job done. In general, you may use the code in this book in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O’Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product’s documentation does require permission.

We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: “Getting Started with Fluidinfo by Nicholas J. Radcliffe and Nicholas H. Tollervey (O’Reilly). Copyright 2012 Nicholas Tollervey, Nicholas Radcliffe, 978-1-449-30709-7.”

If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at .

Safari® Books Online

Note

Safari Books Online is an on-demand digital library that lets you easily search over 7,500 technology and creative reference books and videos to find the answers you need quickly.

With a subscription, you can read any page and watch any video from our library online. Read books on your cell phone and mobile devices. Access new titles before they are available for print, and get exclusive access to manuscripts in development and post feedback for the authors. Copy and paste code samples, organize your favorites, download chapters, bookmark key sections, create notes, print out pages, and benefit from tons of other time-saving features.

O’Reilly Media has uploaded this book to the Safari Books Online service. To have full digital access to this book and others on similar topics from O’Reilly and other publishers, sign up for free at http://my.safaribooksonline.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:

http://shop.oreilly.com/product/0636920020738.do

To comment or ask technical questions about this book, send email to:

For more information about our books, courses, conferences, and news, see our website 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

The authors would like to thank the entire Fluidinfo team, not only for creating the system that is this book’s focus, but also for responding positively to various requests to change features in time for the book’s release. All the members of the team have supported the creation of the book in multiple ways, and we are duly grateful. Terry Jones, in particular, has read multiple drafts of most, if not all chapters, and has our special thanks. We are grateful also to Davison Avery (@otoburb) for giving us detailed feedback on a draft of the book.

We’d also like to thank Andy Oram (@praxagora), our O’Reilly editor, for helping us through and being patient when deadlines, to borrow from Douglas Adams’s comment, made that whooshing noise as they went past, and Teresa Elsey (@teresaelsey), for some very sharp copy editing, which tightened up the text considerably.

The book would not have been possible, in its current form, without the work of various people writing libraries and services around Fluidinfo, importing data into it, and generally kicking its tires. If we attempt to mention them all, we will inevitably miss some, but we have to call out specially Ali Afshar (@aliafshar), who wrote the initial implementation of FOM, Sanghyeon Seo (@sanxiyn), who wrote the initial implementation of Fluidinfo.py, and Eric Seidel (@gridaphobe), who undertook the gargantuan task of importing a dump of the entire MusicBrainz (public) database to Fluidinfo.

We would also like to thank Becky Hogge (@barefoot_techie). Becky provided an early version of her work Barefoot into Cyberspace at a Book Hack Day event in London, the result of which is the web application described in Chapter 6.

Additionally, Nicholas Radcliffe would like to thank both his parents, each of whom read and gave feedback on early drafts of various chapters. Nicholas Tollervey would like to thank his wife, Mary, and their three children, Penelope, Sam, and William, for their ever-cheerful patience and teasing.

Get Getting Started with Fluidinfo now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.