Fluidinfo: Publishing in an Openly Writeable World. Introduction: Given by Nicholas Tollervey (@ntoll) at Pearson’s “From Book to Tablet: How Data is changing publishing” event. 2011/04/13 London.
Jan 15, 2015
Fluidinfo: Publishing in an Openly Writeable World.
Introduction: Given by Nicholas Tollervey (@ntoll) at Pearson’s “From Book to Tablet: How Data is changing publishing” event. 2011/04/13 London.
Fluidinfo is an openly writeable hosted service for
storing, sharing, searching and annotating data.
While this is accurate, it’s not the whole story... How does it work..?
Objects are tagged with information
http://ntoll.org/images/93.jpg
In Fluidinfo, objects represent things (anything). Tags attach/associate data to objects. Tags are organised with Namespaces (creating meaning, context and *trust*).
https://twitter.com/#!/novaspivack/status/4999653280
This is a good example of the sort of thing that Fluidinfo does. But we don’t just do tweets! Objects can represent anything. Anyone can tag any object with information.
Namespaces/tags
ntoll/ratingterrycojones/ratingamazon.com/book/titleamazon.com/book/authoramazon.com/book/isbnesteve/books/covertimoreilly/has_read
Tags & namespaces must be defined before they are used. They provide stricture for the data. Every user starts with their own empty top-level namespace for them to use. (My top level namespace is “ntoll”).
Namespaces/tags
ntoll/ratingterrycojones/ratingamazon.com/book/titleamazon.com/book/authoramazon.com/book/isbnesteve/books/covertimoreilly/has_read
Trusted domain
Good reputation
Namespaces link domains and users to data thus creating trust. Users whose username is a domain name must own the domain in question (so only Amazon can use the namespace amazon.com).
Namespaces/tags
ntoll/ratingterrycojones/ratingamazon.com/book/titleamazon.com/book/authoramazon.com/book/isbnesteve/books/covertimoreilly/has_read
Emerging behaviour
Emergence/evolution trumps ontology or imposed taxonomy! Namespaces and tags allow users to build a schema from the bottom up. We’re seeing conventions (such as the “rating” tag) emerge.
Permissions apply to namespaces, tags and values. Users retain control of their data.
Fluidinfo stays writeable.
Anyone can tag any sort of data to any object. However, users define who can read, create & change their namespaces, tags & data. The permission system is also a part of the mechanism for creating trust: you know only I (ntoll) can use tags in the “ntoll” namespace.
A concrete example: Let’s look at an object in Fluidinfo that represents a book - we’ve been working with O’Reilly media and have their catalogue in Fluidinfo.
Red = Objects, Blue = Namespaces, Grey = Tags.
Lots of tags on an openly writeable object. Context adds value.
Most tags have an associated value (in this example we’re looking at the value of oreilly.com/summary - the blurb on the back of the book). But notice ntoll/owns - actually it doesn’t have a value. By virtue of its existence it’s communicating something interesting!
•An object for everything•Openly writeable•No pre-defined schema•Maintain ownership & control
Summary so far...
Fluidinfo is the database with the heart
of a wiki
Nivi http://venturehacks.com/
This is a common reaction and it’s sort of right... :-) A wiki is openly writable just like Fluidinfo...
As Wikipedia is to traditional encyclopaedias so Fluidinfo is to traditional databases.
But a wiki doesn’t have permissions to facilitate privacy and ownership, a query language like a database, nor does it provide an instant API for access to your data.
An instant API for data..? A simple way to share and re-use data..? A more finely grained way to share content (contrast with the monolithic set of documents that is the WWW). Also, with an openly writeable API publishing is a bi-directional activity.
An API is what smart web companies build so that
other innovative companies and developers can build tools and
services on top of their underlying databases and
services.
Hugh McGuirehttp://librivox.org/
http://radar.oreilly.com/2010/09/beyond-ebooks-publisher-as-api.html
Why have an API..? Hugh nails it.
We are a long, long way from publishers thinking of
themselves as API providers -- as the Application Programming Interface for the
books they publish. But we've seen countless times that value grows when data is opened up
(sometimes selectively) to the world. That's really what the Internet is for; and that is
where book publishing is going. Eventually.
Hugh McGuirehttp://librivox.org/
http://radar.oreilly.com/2010/09/beyond-ebooks-publisher-as-api.html
And in the context of this evening’s topic: “From Book to Tablet: How Data is changing publishing”: value is in the content (not the medium), content has moved to the Web (but monolithic HTML). Fluidinfo = a platform making content available in a more controlled & finely grained way.
Some more examples: simply by importing data various organisations and cultural artefacts (e.g. The Bible) now have an API. E.g. Every BoingBoing article has an associated object & there are boingboing.net/* tags attached to these objects.
Fluidinfo’s Query Language• Equality & Inequality: To find objects based on the numeric values or
exact textual values, e.g., tim/rating > 5, or geo/name = "Llandefalle".
• Textual: To find objects based on text matching their tag values, for example, sally/opinion matches “fantastic”.
• Presence: Use has to request objects that have a given tag. For example, has sally/opinion.
• Set contents: The contains operator can be used to select objects with a matching value in a set of strings. The query mary/product-reviews/keywords contains "kids" would match the object with a tag called /mary/product-reviews/keywords and value ["cool", "kids", "adventure" ].
• Exclusion: Exclude objects with the except keyword. For example has nytimes.com/appeared except has james/seen. The except operator performs a set difference.
• Logic: Query components can be combined with and and or. For example, has sara/rating and tim/rating > 5.
• Grouping: Parentheses can be used to group query components. For example, has sara/rating and (tim/rating > 5 or mike/rating > 7).
Fluidinfo has a simple yet powerful query language (so simple, it fits on this slide) that can be used to extract data.
WHERE location NEAR pubs SERVING
SELECT self-catering-cottage FROM
AND pub HAS rating > 7 IN
It’s currently NOT possible to create queries like this on the web. Data is stored in walled gardens behind websites. Fluidinfo is different because data is stored in context (i.e. it’s tagged to a shared object).
WHERE location NEAR pubs SERVING
SELECT self-catering-cottage FROM
AND pub HAS rating > 7 IN
IMPOSS
IBLE
Because everyone’s data is stored in the context of shared objects it means it’s possible to create interesting queries using data (for which you have permission to read) from lots of different sources.
has boingboing.net/mentioned and has readwriteweb.com/mentioned and has unionsquareventures.com/portfolio
This query is an example of Fluidinfo’s query language (notice the simplicity). It’s asking: which USV companies have been mentioned in articles on BoingBoing.net and ReadWriteWeb..?
http://www.twitter.comhttp://www.etsy.comhttp://www.boxee.tvhttp://www.meetup.com
Objects about:
Tada! We found four matches relating to four companies. Fluidinfo is currently the *ONLY* place where you can make queries like this!
{u'boingboing.net/mentioned': {u'value': [u'http://boingboing.net/2009/11/06/vampireotherkinenerg.html', u'http://boingboing.net/2010/01/11/ny-times-on-urban-ca.html', u'http://boingboing.net/2010/10/26/ron-paul-supporter-w.html', u'http://boingboing.net/2002/06/27/meetup-meatspace-cam.html', u'http://boingboing.net/2004/03/17/wired-rave-awards.html', u'http://boingboing.net/2006/01/05/net-pug-nabbed-by-cr.html']},u'fluiddb/about': {u'value': u'http://www.meetup.com'},u'readwriteweb.com/mentioned': {u'value': [u'http://www.readwriteweb.com/archives/meetup_the_secret_campaign_weapon.php']}}
We can even ask Fluidinfo to return what those articles were... (the values of the */mentioned tags). Here’s the result for the object about http://www.meetup.com (A Python representation of the JSON object Fluidinfo sent down the wire).
object-centred-social
In conclusion, openly writable objects are tagged with data from lots of different sources. There’s an easy query language to extract information. Our permission model allows users to retain ownership & control of their data and is the mechanism for building trust.
ntoll
ceronman
timoreilly
aliafshar
esteve
terrycojones
fluidinfo
scoble
gfcampbell edyson
peacelily
widget
FOM
FOM
northackton
fluidinfo/staff
fluidinfo
/staff
fluidinfo/staff
fluidinfo/staff
fluidinfo
/staff
fluidinfo/investor fluidinfo/investor
nort
hack
ton/
mem
ber
northackton/member
ntoll/met
ntoll/met
ntoll/met
terrycojones/met
terrycojones/met
terrycojones/met
terrycojones/met
scoble
/blogge
d
widget/owns
fom
/dev
elop
er
fom/developer
ntoll/met
fom/user
fom/user
Everyone’s data sits within a network of annotations...
ceronman
timoreilly
aliafshar
terrycojones
fluidinfo
edyson
peacelily
fluidinfo/staff
fluidinfo
/staff
fluidinfo/staff
fluidinfo/staff
fluidinfo/investor fluidinfo/adviso
r
ntoll/met
ntoll/met
terrycojones/met
terrycojones/met
terrycojones/met
scoble
/blogge
d
fom/developer
fom/user
nivi
terrycojones/met
Esther Dyson http://edventure.com/
http://www.flickr.com/photos/stewtopia/1413191259/
edyson
Where Google explores the digital world as it is, Fluidinfo is more of a distributed intellectual
construction tool. Basically, it's a new kind of database for open, typed data without the overhead of the "ontology" companies, along with a new kind of search engine. It's along the lines of
Metaweb but more flexible, with a very different model of data ownership, and with more focus on regular
people as end users.
A really good summary to end with.
http://fluidinfo.com/
Please feel free to get in touch with me! ntoll @ the obvious place. Also @ntoll on Twitter.