• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Fluidinfo in a Nutshell
 

Fluidinfo in a Nutshell

on

  • 7,285 views

Introducing key concepts and use cases for Fluidinfo.

Introducing key concepts and use cases for Fluidinfo.

Statistics

Views

Total Views
7,285
Views on SlideShare
7,100
Embed Views
185

Actions

Likes
8
Downloads
33
Comments
1

9 Embeds 185

http://twitter.com 46
http://us-w1.rockmelt.com 41
http://fluidinfo.com 40
http://tweetedtimes.com 31
https://twitter.com 19
http://a0.twimg.com 5
https://si0.twimg.com 1
http://new.fluidinfo.com 1
http://www.twylah.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n \n
  • While this is accurate, it’s not the whole story...\n
  • So what motivates us..?\n
  • \n \n
  • \n \n
  • Tags must be defined before being attached to objects. Every user, application or client starts with their own top-level namespace. Every namespace and tag is itself represented by an object (facilitating meta-tagging).\n
  • Namespaces link domains to data and create trust. Users whose username is a domain name must own the domain in question (so only Amazon could use the namespace amazon.com). \n
  • Domains on data allow you to make a judgement on reliability. \n
  • A conceptual view of an object. Remember the “about” tag is special, optional and unique.\n
  • Different users tag data to the object. Their data is given a context by being attached to the same object identified by the about tag value. \n
  • The values can be of a primitive (searchable) type: numbers, text, booleans etc... OR an opaque type: images, audio, video or any other sort of data.\n
  • Simple\n
  • Really simple.\n
  • What about data control/privacy..? Permissions are usually applied to the “thing” of interest. But we want to make Fluidinfo openly writeable. So we do something different...\n
  • ...we move the location of the permissions.\n
  • Anyone can tag any sort of data to any object. However, users define who can read, create and change their namespaces, tags and data.\n
  • Sort of... :-) A wiki is openly writable just like Fluidinfo. \n
  • 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 data.\n
  • An instant API for data..? A simple way to share and re-use data..?\n
  • Fluidinfo has an simple and consistent API for application developers. End users create an account on Fluidindo but use applications to access, update, search and annotate Fluidinfo.\n
  • Simply by importing data various organisations and cultural artefacts (The Bible) now have an API.\n
  • Fluidinfo has a simple yet powerful query language (so simple, it fits on this slide) that can be used to extract data.\n
  • A BoingBoing.net example. All the articles Mark wrote in 2010.\n
  • Using a Python based client library (notice how I specify which tag values to return)\n
  • The client library makes a call to this URL...\n
  • You get a JSON dictionary back.\n
  • Another example... 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).\n
  • 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.\n
  • Which USV companies have been mentioned in articles on BoingBoing.net and ReadWriteWeb..?\n
  • Objects whose about value is a domain have all been annotated with USV, BoingBoing and RWW information. We found four matches relating to four companies.\n
  • And we can 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\n
  • It’s also possible to find information by interrogating an interesting object for all the tags that are attached to it (that you are allowed to read).\n
  • In conclusion, openly writable objects are tagged with data from lots of different sources.\n
  • A network of annotated data arises.\n
  • A really good summary.\n
  • \n \n

Fluidinfo in a Nutshell Fluidinfo in a Nutshell Presentation Transcript

  • Fluidinfo in a Nutshellhttp://www.flickr.com/photos/max78/104677840/
  • Fluidinfo is an openly writeable hosted service for storing, sharing, searching and annotating data.While this is accurate, it’s not the whole story...
  • Fluidinfo aims: • Simple & easy • Openly writeable • Intuitively searchable • No pre-defined schema • Maintain ownership & controlSo what motivates us..?
  • Key Concepts• Objects - represent things*• Tags - define objects’ attributes• Namespaces - organise tags• Permissions - control access * Not in the object oriented sense of “object”.
  • Objects are tagged with informationhttp://ntoll.org/images/93.jpg
  • Namespaces/tags ntoll/rating terrycojones/books/review amazon.com/book/title amazon.com/book/author amazon.com/book/isbn esteve/books/cover timoreilly/has_readTags must be defined before being attached to objects. Every user, application or client startswith their own top-level namespace. Every namespace and tag is itself represented by anobject (facilitating meta-tagging).
  • Namespaces/tags ntoll/rating terrycojones/books/review amazon.com/book/title Trusted amazon.com/book/author domain amazon.com/book/isbn esteve/books/cover Good timoreilly/has_read reputationNamespaces link domains to data and create trust. Users whose username is a domain namemust own the domain in question (so only Amazon could use the namespace amazon.com).
  • Namespaces/tags Seems like a nice guy ntoll/rating terrycojones/books/review Dodgy amazon.com/book/title geezer amazon.com/book/author amazon.com/book/isbn Who the esteve/books/cover hell..? timoreilly/has_readDomains on data allow you to make a judgement on reliability.
  • Objects (in Fluidinfo) represent things Every object has a unique ID about = An id = “book: Dune” object “e127475b-eb93-48e1-a24f-dde6825b9ed8” The unique “about” tag is optional and used to identify what the object representsA conceptual view of an object. Remember the “about” tag is special, optional and unique.
  • r= ove /c ks oo ntoll/ b e/ ev st rating am e azo n.c “87 om/b - 41 o = 8-7 oks/i 517 sbn 5 - 6” = about = An id = “book:Dune” object “e127475b-eb93-48e1-a24f- = am az v iew on /re s” r= timoreill s .co ok rm m er tho /bo wo “D /bo nes and un ok 1973/08 erb s/au ojo ve s e” s/t t” itle ryc I lo y/has_re k H ok ter “ = ran /bo /19 “F om n.c ad = azo amDifferent users tag data to the object. Their data is given a context by being attached to thesame object identified by the about tag value.
  • r= ove /c ks oo ntoll/ Numbers ev e/ b st rating am e azo n.c om 874 /bo = 187 oks 517 /isbn 5 6 = Images about = An id = “book:Dune” object “e127475b-eb93-48e1-a24f- = am az v iew on /re s” r= timoreill s .co ok rm m er tho /bo wo “D /bo nes and un ok 1973/08 erb s/au ojo ve s e” s/t t” itle ryc I lo y/has_re k H ok ter “ = ran /bo /19 “F om n.c ad = azo Text Date/Time amThe values can be of a primitive (searchable) type: numbers, text, booleans etc... OR anopaque type: images, audio, video or any other sort of data.
  • primitive = JSONSimple
  • image/pngReally simple.
  • r= ove /c ks oo ntoll/ b e/ ev st rating am e azo n.c “87 om/b - 41 o = 8-7 oks/i 517 sbn 5 - 6” = about = An id = “book:Dune” object “e127475b-eb93-48e1-a24f- = am az v iew on /re s” r= timoreill s .co ok rm m er tho /bo wo “D /bo nes and un ok 1973/08 erb s/au ojo ve s e” s/t t” itle ryc I lo y/has_re k H ok ter “ = ran /bo /19 “F om n.c ad = azo amWhat about data control/privacy..? Permissions are usually applied to the “thing” of interest.But we want to make Fluidinfo openly writeable. So we do something different...
  • r= ove /c ks oo ntoll/ b e/ ev st rating am e azo n.c “87 om/b - 41 o = 8-7 oks/i 517 sbn 5 - 6” = about = An id = “book:Dune” object “e127475b-eb93-48e1-a24f- = am az v iew on /re s” r= timoreill s .co ok rm m er tho /bo wo “D /bo nes and un ok 1973/08 erb s/au ojo ve s e” s/t t” itle ryc I lo y/has_re k H ok ter “ = ran /bo /19 “F om n.c ad = azo am...we move the location of the permissions.
  • 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, createand change their namespaces, tags and data.
  • Fluidinfo is the database with the heart of a wiki Nivi http://venturehacks.com/Sort of... :-) 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 likea database, nor does it provide an instant API for data.
  • An instant API for data..? A simple way to share and re-use data..?
  • A RESTful API https://fluiddb.fluidinfo.com/objects/OBJECT_ID/NAMESPACE(s)/TAG HTTP ‘GET’ returns the value, HTTP ‘PUT’ adds/updates it etc... Full API: http://api.fluidinfo.com/Fluidinfo has an simple and consistent API for application developers. End users create anaccount on Fluidindo but use applications to access, update, search and annotate Fluidinfo.
  • Simply by importing data various organisations and cultural artefacts (The Bible) now have anAPI.
  • 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 beused to extract data.
  • has boingboing.net/authors/markfrauenfelder and boingboing.net/year=2010A BoingBoing.net example. All the articles Mark wrote in 2010.
  • >>> headers, body = fluidinfo.call(GET, /values, tags=[boingboing.net/title, boingboing.net/created_on, boingboing.net/categories], query="has boingboing.net/ authors/markfrauenfelder and boingboing.net/year=2010")Using a Python based client library (notice how I specify which tag values to return)
  • https://fluiddb.fluidinfo.com/values?query=has+boingboing.net %2Fauthors%2Fmarkfrauenfelder+and+boingboing.net%2Fyear %3D2010&tag=boingboing.net%2Ftitle&tag=boingboing.net %2Fcreated_on&tag=boingboing.net%2FcategoriesThe client library makes a call to this URL...
  • {   "results": {     "id": {       "f2976562-eba6-47e4-94a1-b36ffe9a2ab1": {         "boingboing.net/created_on": {           "value": "2010-10-14 13:14:14"         },         "boingboing.net/categories": {           "value": [             "science",             "technology",             "art and design",             "design"           ]         },         "boingboing.net/title": {           "value": "TED releases iPad app today"         }       },       // etc... for lots of results     }   } }You get a JSON dictionary back.
  • SELECT self-catering-cottage FROM WHERE location NEAR pubs SERVING AND pub HAS rating > 7 INAnother example... It’s currently NOT possible to create queries like this on the web. Data isstored in walled gardens behind websites. Fluidinfo is different because data is stored incontext (i.e. it’s tagged to a shared object).
  • SELECT self-catering-cottage FROM L E WHERE location NEAR pubs SERVING I B S S P O AND pub HAS rating > 7 IN I MBecause everyone’s data is stored in the context of shared objects it means it’s possible tocreate interesting queries using data (for which you have permission to read) from lots ofdifferent sources.
  • has boingboing.net/mentioned and has readwriteweb.com/mentioned and has unionsquareventures.com/portfolioWhich USV companies have been mentioned in articles on BoingBoing.net andReadWriteWeb..?
  • objects about: http://www.twitter.com http://www.etsy.com http://www.boxee.tv http://www.meetup.comObjects whose about value is a domain have all been annotated with USV, BoingBoing andRWW information. We found four matches relating to four companies.
  • {uboingboing.net/mentioned:     {uvalue: [uhttp://boingboing.net/2009/11/06/ vampireotherkinenerg.html,                      uhttp://boingboing.net/2010/01/11/ny- times-on-urban-ca.html,                      uhttp://boingboing.net/2010/10/26/ron- paul-supporter-w.html,                      uhttp://boingboing.net/2002/06/27/ meetup-meatspace-cam.html,                      uhttp://boingboing.net/2004/03/17/ wired-rave-awards.html,                      uhttp://boingboing.net/2006/01/05/net- pug-nabbed-by-cr.html]}, ufluiddb/about:     {uvalue: uhttp://www.meetup.com}, ureadwriteweb.com/mentioned:     {uvalue:  [uhttp://www.readwriteweb.com/archives/ meetup_the_secret_campaign_weapon.php]}}And we can ask Fluidinfo to return what those articles were... (the values of the mentionedtags). Here’s the result for the object about http://www.meetup.com
  • Tags attached to the “about:esteve” object. {“tagPaths”: [ " “twitter.com/username”, " “twitter.com/fullname”, " “tunkrank.com/score”, " “ntoll/met”, " “terrycojones/met”, " “python.org/member”, " “ub.edu/alumni”, " “ub.edu/bsc”, " “uoc.edu/msc”, " ... etc ... ]}It’s also possible to find information by interrogating an interesting object for all the tagsthat are attached to it (that you are allowed to read).
  • object-centred-socialIn conclusion, openly writable objects are tagged with data from lots of different sources.
  • northac kton/m ember terryco jones/m nto et ll/m et ff ntoll northackton per /sta nfo scoble lo i uid eve fl d ntoll/met fom/ fom/ d user taf f esteve gge s widget fo/ blo in le/ flui d co b er s b em flui ceronman din n/m fo/s taff kto nt widget/owns oll fluid c /m tha terr et info/stnor peacelily fluidinfo fom yco fom /de velo aff FOM jon /us p er er es/m te rr et y co FOM jon ff nfo/sta fluidi es aliafshar /m e /me t t ntoll terrycojones r terrycojones/met ve sto timoreilly estor fo/in fluidi nfo/inv uidin fl gfcampbell edyson A network of annotated data arises.
  • i flu sc o flui ceronman din Where Google explores the fo/s taff nt digital world as it is, Fluidinfo is oll flu /m idinfo/ more of a distributed intellectual terr et peacelily fluidinfo fom construction tool. Basically, its a new yco /de staffm/ velo jon use per kind of database for open, typed data r es/m without the overhead of the "ontology" et te rr companies, along with a new kind of ff y o/sta co jon es fluidi nf search engine. Its along the lines of aliafsharme t Metaweb but more flexible, with a very /m et terrycojones different model of data ownership, and with more focus on regular r ojones/met iso timoreilly v people as end users. estor /ad nfo/inv nfo di fluidi flui edyson terry cojon es/m et edyson Esther Dyson nivi http://edventure.com/ http://www.flickr.com/photos/stewtopia/1413191259/ A really good summary.
  • http://fluidinfo.com/