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...
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 - o...
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
          ...
A basic object:


    about =        An                        id =
                           “e127475b-eb93-48e1-a24f-dd...
r=
                                                                                               ove
                    ...
r=
                                                                                               ove
                    ...
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

         ...
snoissimreP
 (seem to be back-to-front)
r=
Traditional:                                                                              oo
                          ...
r=
FluidDB:                                                                                 ks
                           ...
Permissions

• Apply to namespaces, tags and tag-values not objects
• Scoped by actions (e.g. “see”, “create”, “read”)
• E...
Search
(is simple)
FluidDB’s Query Language
 •   Equality & Inequality: To find objects based on the numeric values or
     exact textual valu...
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 o...
• @fluidDB @terrycojones @esteve on Twitter
• #fluidDB on Freenode IRC
• http://groups.google.com/group/fluiddb-users
• http:...
Lots of 3rd party libraries:
http://bit.ly/9vvIal

Java, Clojure, Lisp, .NET, Perl, Python, Ruby, PHP &
            Javasc...
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
Upcoming SlideShare
Loading in …5
×

An Introduction To FluidDB - a social database in the cloud

8,207 views
8,089 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,207
On SlideShare
0
From Embeds
0
Number of Embeds
1,305
Actions
Shares
0
Downloads
55
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

×