-
Notifications
You must be signed in to change notification settings - Fork 9
Fluidinfo
This is a very brief introduction to Fluidinfo for developers using fluidinfo.js.
To sign up for a Fluidinfo account visit the sign-up page.
The most important concepts behind Fluidinfo can be summarised in five lines:
- Objects represent things (both real or imaginary).
- Tags attach information to objects.
- Namespaces organise tags into meaningful structures.
- Permissions control access and apply only to namespace and tags (objects don't have owners so anyone can tag anything to any object).
- Queries are simple instructions to find and extract interesting information.
Any user can store information in Fluidinfo against any object by attaching a tag to it. A tag has a name and may also associate a value with an object. A value can be text, a number, an image or any other sort of information.
Every user starts with a top-level namespace within which they organise their tags. As a result a tag's name is its full path (including namespaces):
ntoll/books/rating
The tag above belongs to the user ntoll
and, by the looks of it, associates some sort of rating to objects representing books.
Permissions control what a user can do. They only apply to namespaces and tags. A specific permission is associated with an action on a particular namespace or tag. An action will be a verb like read
or write
.
Permissions are expressed as a policy (that is either open
or closed
) and a list of Fluidinfo usernames that are exceptions to the policy.
Fluidinfo has a simple yet powerful query language that makes it easy to find and retrieve interesting information. Queries often read like their description in "natural" English.
There are five basic types of query:
-
Presence checks for the presence of a tag on an object:
has ntoll/books/rating
-
Comparison matches values when compared to something else:
ntoll/books/rating > 7
-
Text matching checks for matching terms in textual values:
ntoll/books/comment matches "fantastic"
-
Set Content checks for a specific value in a set of values:
ntoll/books/authos contains "Frank Herbert"
-
Logical Operations combine all of the above using the
(
,)
,and
,or
andexcept
operators:(ntoll/rating >=7 or onigiri/comment matches "fantastic") except has barshirtcliff/owns
As the fifth example implies, users can make use of any tags for which they have read
permission in their query.
You can find out more about Fluidinfo at the Fluidinfo website. Alternatively, check out various presentations that provide a good overview and introduction to Fluidinfo.