SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Using FluidDB with Django
     (making data “social” with FluidDB).


            Nicholas Tollervey
           ntoll@fluidinfo.com
The Agenda:

  What?
   Why?
   How?
  Where?
  Django?
What?
FluidDB is a platform
 for the web of things,
each represented by an
openly writable “social”
         object.
http://www.flickr.com/photos/psd/1428129861/
Why?
http://www.flickr.com/photos/jointhedots/4622191119/
People I know
SELECT self-catering-cottage FROM


WHERE location NEAR pubs SERVING




   AND pub HAS rating > 7 IN
Share, annotate, augment
 and re-use information.
How?
There is only one
FluidDB. All users and
applications share the
    same database.
• Objects - represent things
• Tags - define objects’ attributes
• Namespaces - organise tags
• Permissions - control access
http://ntoll.org/images/93.jpg
Data Structure


entity / attribute / value
Data Structure


object / tag / value
   (in FluidDB parlance)
Data Structure


object / tag / value
              (optional)
Namespaces/Tags
 ntoll/rating
 terrycojones/books/review
 amazon.com/book/title
 amazon.com/book/author
 amazon.com/book/isbn
 esteve/books/cover
 timoreilly/has_read
about =      An                        id =
                       “e127475b-eb93-48e1-a24f-dde6825b9ed8”
“book:Dune”   object
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

                             =                                               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
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
You control who can see,
 read or use your tags.
http://www.flickr.com/photos/fixe/3415776837/



Anyone can tag information
      to an object.
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
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).
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 ...
    ]}
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/fluidDB/api/*/*/*
Social data?
http://www.flickr.com/photos/8001265@N08/2259250324/




Let me demonstrate!
Where?
http://fluidinfo.com/
• Twitter: @fluidDB @terrycojones @esteve & @ntoll
• http://youtube.com/fluiddb
• #fluiddb on Freenode IRC
• http://groups.google.com/group/fluiddb-users
• http://groups.google.com/group/fluiddb-discuss
Lots of 3rd party libraries:

http://fluidinfo.com/developers/libs


 Java, Clojure, Lisp, .NET, Perl, Python, Ruby, PHP &
             Javascript (all open-source)
Django?
http://github.com/fluidinfo/django-fluiddb
Familiar Models

from django_fluiddb import models

class Foo(models.Model):
    bar = models.CharField(‘test/namespace/bar_tag’)
    baz = models.IntegerField(‘test/namespace/baz_tag’)
Familiar Forms

from django_fluiddb.forms import ModelForm

class FooForm(ModelForm):
    class Meta:
        model = Foo
It’s only the FOM underneath
   http://bitbucket.org/aafshar/fom-main/
We’re listening to you
  though the usual caveats apply ;-)
Questions..?

Mais conteúdo relacionado

Semelhante a Using FluidDB with Django

Plant hormone and responses
Plant hormone and responsesPlant hormone and responses
Plant hormone and responsesTre Briercliffe
 
Gourmet Snacks Brochure
Gourmet Snacks BrochureGourmet Snacks Brochure
Gourmet Snacks Brochurebogoblue
 
Save Publishing
Save PublishingSave Publishing
Save PublishingPaul Ford
 
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...Andrea Wiggins
 
The 21st Century Mapping Agency
The 21st Century Mapping AgencyThe 21st Century Mapping Agency
The 21st Century Mapping AgencyEd Parsons
 

Semelhante a Using FluidDB with Django (10)

An Introduction to FluidDB
An Introduction to FluidDBAn Introduction to FluidDB
An Introduction to FluidDB
 
Plant hormone and responses
Plant hormone and responsesPlant hormone and responses
Plant hormone and responses
 
Gourmet Snacks Brochure
Gourmet Snacks BrochureGourmet Snacks Brochure
Gourmet Snacks Brochure
 
2010 Ram 2500 Buffalo
2010 Ram 2500 Buffalo2010 Ram 2500 Buffalo
2010 Ram 2500 Buffalo
 
Save Publishing
Save PublishingSave Publishing
Save Publishing
 
bad architects group - selection
bad architects group - selection bad architects group - selection
bad architects group - selection
 
2010 Ram 3500 Buffalo
2010 Ram 3500 Buffalo2010 Ram 3500 Buffalo
2010 Ram 3500 Buffalo
 
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...
Crowdsourcing Citizen Science Data Quality with a Human-Computer Learning Net...
 
Drupal Optimization
Drupal OptimizationDrupal Optimization
Drupal Optimization
 
The 21st Century Mapping Agency
The 21st Century Mapping AgencyThe 21st Century Mapping Agency
The 21st Century Mapping Agency
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Using FluidDB with Django

  • 1. Using FluidDB with Django (making data “social” with FluidDB). Nicholas Tollervey ntoll@fluidinfo.com
  • 2. The Agenda: What? Why? How? Where? Django?
  • 4. FluidDB is a platform for the web of things, each represented by an openly writable “social” object.
  • 9. SELECT self-catering-cottage FROM WHERE location NEAR pubs SERVING AND pub HAS rating > 7 IN
  • 10. Share, annotate, augment and re-use information.
  • 11. How?
  • 12. There is only one FluidDB. All users and applications share the same database.
  • 13. • Objects - represent things • Tags - define objects’ attributes • Namespaces - organise tags • Permissions - control access
  • 15. Data Structure entity / attribute / value
  • 16. Data Structure object / tag / value (in FluidDB parlance)
  • 17. Data Structure object / tag / value (optional)
  • 18. Namespaces/Tags ntoll/rating terrycojones/books/review amazon.com/book/title amazon.com/book/author amazon.com/book/isbn esteve/books/cover timoreilly/has_read
  • 19. about = An id = “e127475b-eb93-48e1-a24f-dde6825b9ed8” “book:Dune” object
  • 20. 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
  • 21. 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 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
  • 22. snoissimreP (seem to be back-to-front)
  • 23. 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
  • 24. 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
  • 25. You control who can see, read or use your tags.
  • 27. 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. 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 ... ]}
  • 30. 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/fluidDB/api/*/*/*
  • 35. • Twitter: @fluidDB @terrycojones @esteve & @ntoll • http://youtube.com/fluiddb • #fluiddb on Freenode IRC • http://groups.google.com/group/fluiddb-users • http://groups.google.com/group/fluiddb-discuss
  • 36. Lots of 3rd party libraries: http://fluidinfo.com/developers/libs Java, Clojure, Lisp, .NET, Perl, Python, Ruby, PHP & Javascript (all open-source)
  • 39. Familiar Models from django_fluiddb import models class Foo(models.Model): bar = models.CharField(‘test/namespace/bar_tag’) baz = models.IntegerField(‘test/namespace/baz_tag’)
  • 40. Familiar Forms from django_fluiddb.forms import ModelForm class FooForm(ModelForm): class Meta: model = Foo
  • 41. It’s only the FOM underneath http://bitbucket.org/aafshar/fom-main/
  • 42. We’re listening to you though the usual caveats apply ;-)