• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Using FluidDB with Django
 

Using FluidDB with Django

on

  • 1,932 views

Slides from my introductory talk to the Django User Group: London (DJUGL) talk in July 2010 at the Guardian.

Slides from my introductory talk to the Django User Group: London (DJUGL) talk in July 2010 at the Guardian.

Statistics

Views

Total Views
1,932
Views on SlideShare
1,930
Embed Views
2

Actions

Likes
0
Downloads
12
Comments
0

1 Embed 2

http://coderwall.com 2

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

    Using FluidDB with Django Using FluidDB with Django Presentation Transcript

    • 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..?