An Introduction To FluidDB - a social database in the cloud
Upcoming SlideShare
Loading in...5
×
 

An Introduction To FluidDB - a social database in the cloud

on

  • 8,880 views

Introductory material that answers the what, why and how questions relating to FluidDB (a new cloud-based database that simplifies creating, sharing, annotating and reusing information).

Introductory material that answers the what, why and how questions relating to FluidDB (a new cloud-based database that simplifies creating, sharing, annotating and reusing information).

Statistics

Views

Total Views
8,880
Views on SlideShare
7,579
Embed Views
1,301

Actions

Likes
12
Downloads
51
Comments
2

15 Embeds 1,301

http://fluidinfo.com 666
http://www.fluidinfo.com 282
http://skillsmatter.com 162
https://fluidinfo.com 88
http://www.slideshare.net 44
http://smash 33
https://www.fluidinfo.com 9
http://paper.li 7
http://a0.twimg.com 3
http://coderwall.com 2
http://new.fluidinfo.com 1
http://localhost 1
http://localhost:8000 1
http://www.mefeedia.com 1
http://fluidinfo.com:81 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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

An Introduction To FluidDB - a social database in the cloud An Introduction To FluidDB - a social database in the cloud Presentation Transcript

  • An Introduction to FluidDB http://fluidinfo.com
  • What?
  • FluidDB is a database “in the cloud” built by Fluidinfo and currently in private-Alpha testing.
  • There is only one FluidDB. All users and applications share the same database.
  • Why..?
  • As Wikipedia is to traditional encyclopaedias so FluidDB is to traditional database solutions.
  • / http://www.flickr.com/photos/psd/1428129861 Make the world writeable
  • http://www.flickr.com/photos/juhansonin/3227851094/ No pre-defined schema
  • The Glass Wall http://www.liamdelahunty.com/tips/usability_bbc_redesign_the_glass_wall.php Create, share, organise and understand information
  • http://www.flickr.com/photos/chiaramarra/1048662923/ Simplify and enhance the model of control
  • How?
  • Key Concepts • Objects - represent things* • Tags - define object’s attributes • Namespaces - organise tags • Permissions - control access * NOT instantiations of classes as in OO, but simply “objects” in the common-sense use of the term.
  • Data structure subject / predicate / value (similar to RDF)
  • Data structure object / tag / value (in FluidDB parlance)
  • http://ntoll.org/images/93.jpg Objects are tagged with information
  • Namespaces and tags are pre-defined by users ntoll/rating terrycojones/books/review amazon.com/book/title amazon.com/book/author amazon.com/book/isbn esteve/books/cover timoreilly/has_read (Every namespace and tag has a description and is itself represented by an object so meta-tagging is allowed)
  • A basic object: about = An id = “e127475b-eb93-48e1-a24f-dde6825b9ed8” “book:Dune” object (The about tag is a convention to help indicate what the object represents. It is optional but must be unique)
  • r= ove /c ks oo ntoll/ b ve/ te es rating am azo n.c “87 om/b -41 ook = 8-7 517 s/isbn 5 - 6” = about = An id = “e127475b-eb93-48e1-a24f-dde6825b9ed8” “book:Dune” object = am az iew on timoreill v /re s” r= s .c om ok rm er tho /bo wo “D /bo nes and un ok erb s/au ojo ve s e” s/t t” y/has_re ryc I lo itle k H ok ter “ = ran /bo “F om ad n.c azo am
  • r= ove /c ks oo ntoll/ b ve/ te es rating am azo n.c “87 om/b -41 ook = 8-7 517 s/isbn 5 - 6” = about = An id = “e127475b-eb93-48e1-a24f-dde6825b9ed8” “book:Dune” object Value Types: = am az iew on timoreill v /re s” r= s .c om ok rm er tho /bo wo “D /bo nes and un ok boolean erb s/au ojo ve s e” s/t t” y/has_re ryc I lo itle k H ok ter “ = string (& set) ran /bo “F om numeric ad n.c opaque azo am null
  • Opaque tag values each have a MIME type type = image/png
  • Other “primitive” types are returned as json
  • A simple and elegant RESTful API https://fluiddb.fluidinfo.com/objects/OBJECT_ID/NAMESPACE(S)/TAG e.g. https://fluiddb.fluidinfo.com/objects/e127475b-eb93-48e1-a24f-dde6825b9ed8/ntoll/rating HTTP ‘GET’ returns the value, HTTP ‘PUT’ adds/updates it etc... Full API: http://api.fluidinfo.com/fluidDB/api/*/*/*
  • snoissimreP (seem to be back-to-front)
  • r= Traditional: oo ks /c ove ntoll/ b ve/ te es rating am azo n.c “87 om/b -41 ook = 8-7 517 s/isbn 5 - 6” = about = id = “e127475b-eb93-48e1-a24f-dde6825b9ed8” “book:Dune” = am az iew on timoreill v /re s” r= s .c om ok rm er tho /bo wo “D /bo nes and un ok erb s/au ojo ve s e” s/t t” y/has_re ryc I lo itle k H ok ter “ = ran /bo “F om ad n.c azo am
  • r= FluidDB: ks /c ove ntoll/ b oo ve/ te rating am es azo n.c “87 om/b = -41 ook 8-7 517 s/isbn 5 - 6” = about = An id = “e127475b-eb93-48e1-a24f-dde6825b9ed8” “book:Dune” object = am az view on /re s” .c r= timoreill s om ok rm er tho /bo wo “D /bo nes and un ok erb s/au ojo ve s e” s/t t” ryc I lo itle k H ok y/has_re ter “ = ran /bo “F om n.c ad azo am
  • Permissions • Apply to namespaces, tags and tag-values not objects • Scoped by actions (e.g. “see”, “create”, “read”) • Either “open” or “closed” with a list of exceptions
  • Search (is simple)
  • FluidDB’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).
  • er... that’s it (QL fits on one slide and enhancements are coming soon)
  • http://www.flickr.com/photos/8001265@N08/2259250324/ LIVE DEMO!
  • Where?
  • • http://fluidinfo.com - First stop for more • http://fluidinfo.com/accounts/new - Sign up! • http://tickery.net - Twitter on steroids • http://bit.ly/dicP8O - FluidRefreshmentDB • http://fluiddbexplorer.appspot.com - Browser
  • • @fluidDB @terrycojones @esteve on Twitter • #fluidDB on Freenode IRC • http://groups.google.com/group/fluiddb-users • http://groups.google.com/group/fluiddb-discuss
  • Lots of 3rd party libraries: http://bit.ly/9vvIal Java, Clojure, Lisp, .NET, Perl, Python, Ruby, PHP & Javascript (all open-source)
  • We’re listening to you though the usual caveats apply ;-)
  • http://www.flickr.com/photos/cambodia4kidsorg/260004685/ Nicholas Tollervey ntoll@ntoll.org ntoll on Twitter & IRC
  • Questions / Discussion