Top Banner
An Introduction to FluidDB http://fluidinfo.com
37

An Introduction To FluidDB - a social database in the cloud

Jan 17, 2015

Download

Technology

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).
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An Introduction To FluidDB - a social database in the cloud

An Introduction to FluidDB

http://fluidinfo.com

Page 2: An Introduction To FluidDB - a social database in the cloud

What?

Page 3: An Introduction To FluidDB - a social database in the cloud

FluidDB is a database “in the cloud” built by Fluidinfo and currently in private-Alpha testing.

Page 4: An Introduction To FluidDB - a social database in the cloud

There is only one FluidDB. All users and applications share the same database.

Page 5: An Introduction To FluidDB - a social database in the cloud

Why..?

Page 6: An Introduction To FluidDB - a social database in the cloud

As Wikipedia is to traditional encyclopaedias so FluidDB is to traditional database solutions.

Page 7: An Introduction To FluidDB - a social database in the cloud

Make the world writeablehttp://www.flickr.com/photos/psd/1428129861/

Page 8: An Introduction To FluidDB - a social database in the cloud

No pre-defined schemahttp://www.flickr.com/photos/juhansonin/3227851094/

Page 9: An Introduction To FluidDB - a social database in the cloud

Create, share, organise and understand information

The Glass Wall http://www.liamdelahunty.com/tips/usability_bbc_redesign_the_glass_wall.php

Page 10: An Introduction To FluidDB - a social database in the cloud

Simplify and enhance the model of control

http://www.flickr.com/photos/chiaramarra/1048662923/

Page 11: An Introduction To FluidDB - a social database in the cloud

How?

Page 12: An Introduction To FluidDB - a social database in the cloud

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.

Page 13: An Introduction To FluidDB - a social database in the cloud

Data structure

subject / predicate / value(similar to RDF)

Page 14: An Introduction To FluidDB - a social database in the cloud

Data structure

object / tag / value(in FluidDB parlance)

Page 15: An Introduction To FluidDB - a social database in the cloud

Objects are tagged with information

http://ntoll.org/images/93.jpg

Page 16: An Introduction To FluidDB - a social database in the cloud

Namespaces and tags are pre-defined by users

ntoll/ratingterrycojones/books/reviewamazon.com/book/titleamazon.com/book/authoramazon.com/book/isbnesteve/books/covertimoreilly/has_read

(Every namespace and tag has a description and is itself represented by an object so meta-tagging is allowed)

Page 17: An Introduction To FluidDB - a social database in the cloud

An object

about = “book:Dune”

id =“e127475b-eb93-48e1-a24f-dde6825b9ed8”

(The about tag is a convention to help indicate what the object represents. It is optional but must be unique)

A basic object:

Page 18: An Introduction To FluidDB - a social database in the cloud

An object

about = “book:Dune”

ntoll/rating = 5ter

rycojones/

books/rev

iew =

“I love

sandworm

s”

amazon.com/books/title =

“Dune”

amaz

on.co

m/b

ooks

/aut

hor =

“Fra

nk H

erbe

rt”

amazon.com/books/isbn =

“87-418-7517-6”

timoreilly/has_read

estev

e/boo

ks/co

ver =

id =“e127475b-eb93-48e1-a24f-dde6825b9ed8”

Page 19: An Introduction To FluidDB - a social database in the cloud

An object

about = “book:Dune”

ntoll/rating = 5ter

rycojones/

books/rev

iew =

“I love

sandworm

s”

amazon.com/books/title =

“Dune”

amaz

on.co

m/b

ooks

/aut

hor =

“Fra

nk H

erbe

rt”

amazon.com/books/isbn =

“87-418-7517-6”

timoreilly/has_read

estev

e/boo

ks/co

ver =

booleanstring (& set)numericopaquenull

id =“e127475b-eb93-48e1-a24f-dde6825b9ed8”

Value Types:

Page 20: An Introduction To FluidDB - a social database in the cloud

Opaque tag values each have a MIME type

type = image/png

Page 21: An Introduction To FluidDB - a social database in the cloud

Other “primitive” types are returned as json

Page 22: An Introduction To FluidDB - a social database in the cloud

A simple and elegant RESTful API

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/*/*/*

https://fluiddb.fluidinfo.com/objects/OBJECT_ID/NAMESPACE(S)/TAG

e.g.

Page 23: An Introduction To FluidDB - a social database in the cloud

snoissimreP(seem to be back-to-front)

Page 24: An Introduction To FluidDB - a social database in the cloud

about = “book:Dune”

ntoll/rating = 5ter

rycojones/

books/rev

iew =

“I love

sandworm

s”

amazon.com/books/title =

“Dune”

amaz

on.co

m/b

ooks

/aut

hor =

“Fra

nk H

erbe

rt”

amazon.com/books/isbn =

“87-418-7517-6”

timoreilly/has_read

estev

e/boo

ks/co

ver =

Traditional:

id =“e127475b-eb93-48e1-a24f-dde6825b9ed8”

Page 25: An Introduction To FluidDB - a social database in the cloud

An object

about = “book:Dune”

ntoll/rating = 5ter

rycojones/

books/rev

iew =

“I love

sandworm

s”

amazon.com/books/title =

“Dune”

amaz

on.co

m/b

ooks

/aut

hor =

“Fra

nk H

erbe

rt”

amazon.com/books/isbn =

“87-418-7517-6”

timoreilly/has_read

estev

e/boo

ks/co

ver =

FluidDB:

id =“e127475b-eb93-48e1-a24f-dde6825b9ed8”

Page 26: An Introduction To FluidDB - a social database in the cloud

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

Page 27: An Introduction To FluidDB - a social database in the cloud

Search(is simple)

Page 28: An Introduction To FluidDB - a social database in the cloud

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

Page 29: An Introduction To FluidDB - a social database in the cloud

er... that’s it(QL fits on one slide and enhancements are coming soon)

Page 30: An Introduction To FluidDB - a social database in the cloud

LIVE DEMO!http://www.flickr.com/photos/8001265@N08/2259250324/

Page 31: An Introduction To FluidDB - a social database in the cloud

Where?

Page 32: An Introduction To FluidDB - a social database in the cloud

• 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

Page 33: An Introduction To FluidDB - a social database in the cloud

• @fluidDB @terrycojones @esteve on Twitter

• #fluidDB on Freenode IRC

• http://groups.google.com/group/fluiddb-users

• http://groups.google.com/group/fluiddb-discuss

Page 34: An Introduction To FluidDB - a social database in the cloud

Lots of 3rd party libraries: http://bit.ly/9vvIal

Java, Clojure, Lisp, .NET, Perl, Python, Ruby, PHP & Javascript (all open-source)

Page 35: An Introduction To FluidDB - a social database in the cloud

We’re listening to youthough the usual caveats apply ;-)

Page 37: An Introduction To FluidDB - a social database in the cloud

Questions / Discussion