SlideShare a Scribd company logo
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

More Related Content

PDF
Using FluidDB with Django
PDF
FluidDB in a Nutshell
ZIP
FluidDB for Dummies
PDF
An Introduction to FluidDB
PDF
Zen and-the-art-of-build-script-maintenance-skillsmatter
PDF
Cloud Computing - PaaS
PDF
Transforming your business with PaaS
PDF
Fluidinfo in a Nutshell
Using FluidDB with Django
FluidDB in a Nutshell
FluidDB for Dummies
An Introduction to FluidDB
Zen and-the-art-of-build-script-maintenance-skillsmatter
Cloud Computing - PaaS
Transforming your business with PaaS
Fluidinfo in a Nutshell

Similar to An Introduction To FluidDB - a social database in the cloud (20)

PPTX
Unexpected insights from our summon usability study
PDF
ePortfolios: Documenting Life Long Learning of Professionals to Reflect Pract...
PPT
Engelsen shane visual_resumestoryboard
PDF
Blaze 4 july 2011
PDF
Oreck spread
RTF
Scan0002
PPTX
Hit a Grand Slam with Legal Research
PPT
Dental amalgam
PDF
Making social media work for you | StreetGames National Conference 2013
PDF
Neonatal Hearing Screening 2009 Europe
PDF
Neonatal Hearing Screening
PDF
Neonatal Hearing Screening 2009 Europe Monika Lehnhardt Yerevan
PDF
NEM_Diggers_and_Dealers_Final
PDF
NEM_Diggers_and_Dealers_Final
PDF
URBAN: Orientation
PDF
Conversation Clusters: Grouping Conversation Through Human Computer Dialog
PDF
Diagonal paper
PDF
COH Online- The future of screening for distress in cancer settings (February11)
Unexpected insights from our summon usability study
ePortfolios: Documenting Life Long Learning of Professionals to Reflect Pract...
Engelsen shane visual_resumestoryboard
Blaze 4 july 2011
Oreck spread
Scan0002
Hit a Grand Slam with Legal Research
Dental amalgam
Making social media work for you | StreetGames National Conference 2013
Neonatal Hearing Screening 2009 Europe
Neonatal Hearing Screening
Neonatal Hearing Screening 2009 Europe Monika Lehnhardt Yerevan
NEM_Diggers_and_Dealers_Final
NEM_Diggers_and_Dealers_Final
URBAN: Orientation
Conversation Clusters: Grouping Conversation Through Human Computer Dialog
Diagonal paper
COH Online- The future of screening for distress in cancer settings (February11)
Ad

Recently uploaded (20)

PPT
Teaching material agriculture food technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Advanced IT Governance
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
Teaching material agriculture food technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
The Rise and Fall of 3GPP – Time for a Sabbatical?
Review of recent advances in non-invasive hemoglobin estimation
Dropbox Q2 2025 Financial Results & Investor Presentation
The AUB Centre for AI in Media Proposal.docx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Advanced IT Governance
20250228 LYD VKU AI Blended-Learning.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Unlocking AI with Model Context Protocol (MCP)
Big Data Technologies - Introduction.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Advanced Soft Computing BINUS July 2025.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Chapter 3 Spatial Domain Image Processing.pdf
Network Security Unit 5.pdf for BCA BBA.
Ad

An Introduction To FluidDB - a social database in the cloud

  • 1. An Introduction to FluidDB http://fluidinfo.com
  • 3. FluidDB is a database “in the cloud” built by Fluidinfo and currently in private-Alpha testing.
  • 4. There is only one FluidDB. All users and applications share the same database.
  • 6. As Wikipedia is to traditional encyclopaedias so FluidDB is to traditional database solutions.
  • 7. / http://www.flickr.com/photos/psd/1428129861 Make the world writeable
  • 9. The Glass Wall http://www.liamdelahunty.com/tips/usability_bbc_redesign_the_glass_wall.php Create, share, organise and understand information
  • 11. How?
  • 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. Data structure subject / predicate / value (similar to RDF)
  • 14. Data structure object / tag / value (in FluidDB parlance)
  • 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. 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. 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. 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. Opaque tag values each have a MIME type type = image/png
  • 21. Other “primitive” types are returned as json
  • 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. snoissimreP (seem to be back-to-front)
  • 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. 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. 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
  • 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. er... that’s it (QL fits on one slide and enhancements are coming soon)
  • 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. • @fluidDB @terrycojones @esteve on Twitter • #fluidDB on Freenode IRC • http://groups.google.com/group/fluiddb-users • http://groups.google.com/group/fluiddb-discuss
  • 34. Lots of 3rd party libraries: http://bit.ly/9vvIal Java, Clojure, Lisp, .NET, Perl, Python, Ruby, PHP & Javascript (all open-source)
  • 35. We’re listening to you though the usual caveats apply ;-)
  • 36. http://www.flickr.com/photos/cambodia4kidsorg/260004685/ Nicholas Tollervey ntoll@ntoll.org ntoll on Twitter & IRC