An Introduction To FluidDB - a social database in the cloud

8,424 views

Published on

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).

Published in: Technology
2 Comments
12 Likes
Statistics
Notes
No Downloads
Views
Total views
8,424
On SlideShare
0
From Embeds
0
Number of Embeds
1,305
Actions
Shares
0
Downloads
56
Comments
2
Likes
12
Embeds 0
No embeds

No notes for slide

An Introduction To FluidDB - a social database in the cloud

  1. 1. An Introduction to FluidDB http://fluidinfo.com
  2. 2. What?
  3. 3. FluidDB is a database “in the cloud” built by Fluidinfo and currently in private-Alpha testing.
  4. 4. There is only one FluidDB. All users and applications share the same database.
  5. 5. Why..?
  6. 6. As Wikipedia is to traditional encyclopaedias so FluidDB is to traditional database solutions.
  7. 7. / http://www.flickr.com/photos/psd/1428129861 Make the world writeable
  8. 8. http://www.flickr.com/photos/juhansonin/3227851094/ No pre-defined schema
  9. 9. The Glass Wall http://www.liamdelahunty.com/tips/usability_bbc_redesign_the_glass_wall.php Create, share, organise and understand information
  10. 10. http://www.flickr.com/photos/chiaramarra/1048662923/ Simplify and enhance the model of control
  11. 11. How?
  12. 12. 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.
  13. 13. Data structure subject / predicate / value (similar to RDF)
  14. 14. Data structure object / tag / value (in FluidDB parlance)
  15. 15. http://ntoll.org/images/93.jpg Objects are tagged with information
  16. 16. 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)
  17. 17. 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)
  18. 18. 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
  19. 19. 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
  20. 20. Opaque tag values each have a MIME type type = image/png
  21. 21. Other “primitive” types are returned as json
  22. 22. 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/*/*/*
  23. 23. snoissimreP (seem to be back-to-front)
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. Search (is simple)
  28. 28. 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).
  29. 29. er... that’s it (QL fits on one slide and enhancements are coming soon)
  30. 30. http://www.flickr.com/photos/8001265@N08/2259250324/ LIVE DEMO!
  31. 31. Where?
  32. 32. • 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
  33. 33. • @fluidDB @terrycojones @esteve on Twitter • #fluidDB on Freenode IRC • http://groups.google.com/group/fluiddb-users • http://groups.google.com/group/fluiddb-discuss
  34. 34. Lots of 3rd party libraries: http://bit.ly/9vvIal Java, Clojure, Lisp, .NET, Perl, Python, Ruby, PHP & Javascript (all open-source)
  35. 35. We’re listening to you though the usual caveats apply ;-)
  36. 36. http://www.flickr.com/photos/cambodia4kidsorg/260004685/ Nicholas Tollervey ntoll@ntoll.org ntoll on Twitter & IRC
  37. 37. Questions / Discussion

×