11 March 2010

About Tag Conventions in FluidDB

This page documents the conventions for about tags in FluidDB that I am aware of. I will update it periodically when I learn of more conventions or discover errors.

For want of a better alternative, I define each about tag format using a python string format string and as many parameters as are required. I then give real examples, illustrated with fdb (Not that, unlike FluidDB itself, fdb uses leading slashes to introduce tags and interprets /about as /fluiddb/about and /id as an object’s UUID.)

UPDATE 2010/03/12: Rather than just showing the python string format here, I realised it would be useful to write some code to produce about tags following the conventions below. I have just committed a python library called abouttag at github. In addition to performing the rather trivial formatting described below this also does a degree of (optional) normalization of string input, to further reduce the likelihood of unintentional differences. I will gradualy add examples below using the library and will also do a separate post about it.

UPDATE 2010/12/29: I’ve also added in links to some visualization software available at abouttag.com, which shows objects in FluidDB and the tags on them graphically. This software should work with any modern, standards-compiant web brower, which in practice means almost anything except Internet Explorer.

1. FluidDB (fluiddb-1)

The following conventions are used by FluidDB itself when it creates the objects that form the very basis of FluidDB.

1.1. Users

The about tag for the user with name username is:

"Object for the user named %s" % username

$ fdb show -i 8cb0e83b-fa48-490c-a95f-958053db598c /about
Object 8cb0e83b-fa48-490c-a95f-958053db598c:
/fluiddb/about = "Object for the user named njr"

Graphical Example: Object for the user named njr.

1.2. Namespaces

The about tag for the namespace whose name is ns is:

"Object for the namespace %s" % ns
$ fdb show -i fb2e7545-1dd4-4432-8cfc-2fd24db7384b /about
Object fb2e7545-1dd4-4432-8cfc-2fd24db7384b:
/fluiddb/about = "Object for the namespace njr"

$ fdb show -i 9b4846ad-6639-46c2-adb1-e0d87649413d /about
Object 9b4846ad-6639-46c2-adb1-e0d87649413d:
/fluiddb/about = "Object for the namespace miro/elements"

Graphical example: Object for the namespace miro/elements

1.3. Tags

The about tag for the tag tag is:

"Object for the attribute %s" % tag

$ fdb show -i 4f6550a5-7eed-4f45-8046-56f0ac6c4f43 /about
Object 4f6550a5-7eed-4f45-8046-56f0ac6c4f43:
  /fluiddb/about = "Object for the attribute njr/rating"

$ fdb show -a "Object for the attribute fluiddb/about" /about /id
Object with about="Object for the attribute fluiddb/about":
  /fluiddb/about = "Object for the attribute fluiddb/about"
  /id = "873e0311-07d2-42bd-b67f-739d731332da"

Graphical example: Object for the attribute fluiddb/about

Find about tags for the objects FluidDB uses itself here.

2. URLs and URIs (uri-1)

Perhaps the most obvious and common entities for which objects are created in FluidDB are URLs and more generally URIs. So far, probably with barely a conscious decision, almost everyone is using the obvious convention:

URLs and URIs

The about tag for a URL or URI is itself in standard form, for example

Here, standard form most often seems to mean lower case for the domain name, no trailing slash, and inclusion of the protocol specifier (http://) etc. So:

http://fluidinfo.com/fluiddb
not fluidinfo.com/fluiddb
not http://fluidinfo.com/fluiddb/

For example, there are a couple of ways of importing bookmarks from del.icio.us to FluidDB (here and here), both of which use the standardized URL of the web page as the object on which to place imported tags and other metadata.

fdb show -a 'http://www.google.com' /about /id
Object with about="http://www.google.com":
  /fluiddb/about = "http://www.google.com"
  /id = "e75abb22-2f3c-45dd-9429-fce0a78f82f2"

Graphical example: http://www.google.com.

Find about tags for URLs and URIs here.

3. Tables (database-1)

Miró is a data analysis package produced by Stochastic Solutions. Miró has direct integration with FluidDB including the ability to publish a dataset (in the form of a table) straight to FluidDB.

Miró is in the process of defining conventions for about tags for the objects it used to represent tables.

There is a post describing the approach to tables available here.

3.1. Tables

The about tag for a table called tablename in is:

"table:%s" % tablename

Object with about="table:elements":
  /fluiddb/about = "table:elements"
  /id = "b898b875-89ad-4b69-bf89-b6a605b79697"

3.1.1. Fields

The about tag for a field named fieldname in a table tablename is:

"field:%s in table:%s" % (fieldname, tablename)

$ fdb show -q 'miro/field-name = "RelativeAtomicMass"' /about
1 object matched
Object 261a1ce8-4a42-45dc-b4be-4206d95b0bbe:
  /fluiddb/about = "field:RelativeAtomicMass in table:elements"

3.1.2. Records

There is no fixed recommendation for the about tag for a database record. Usually, if the record pertains to something, it will be appropriate to store the record data on an on object naturally relating to that thing.

Miró intends always to use about tags of the general for entity:description, where entity is a category of entity, and a description is a (standard-form) description of that entity.

At the time of writing, two tables have been published to FluidDB by Miró, pertaining to elements of the periodic table and to planets (and dwarf planets) in the solar system.

4. Elements of the Periodic Table (element-1)

Miró has published a table of all of the elements of the periodic table to FluidbDB usin the table conventions above.

The about tag it uses for an named Element is:

"element:%s"' % Element

The elements can be identified by querying FluidDB for objects with (among others) the tag miro/elements/Name

$ fdb count -q "has miro/elements/Name"
118 objects matched
Total: 118 objects
$ fdb show -q 'miro/elements/Name = "Hydrogen"' /about
1 object matched
Object 270a8269-f02d-4925-b152-da3934edaa43:
  /fluiddb/about = "element:Hydrogen"

$ fdb show -q 'miro/elements/Z = 92' /about
1 object matched
Object adde1cbf-286b-4d0f-9c8c-57976a473321:
  /fluiddb/about = "element:Uranium"

Graphical example: element:Uranium.

Find about tags for elements here.

5. Planets (planet-1)

Miró has published a table containing the thirteen recognized planets and dwarf planets.

The about tag for an planet (or similar) named Planet is:

"planet:%s" % Planet

This dataset is described in detail at here.

$ fdb show -q 'miro/planets/Name = "Earth"' /about
1 object matched
Object 87551a22-5ef9-49e0-9d74-99f2d4af6776:
  /fluiddb/about = "planet:Earth"

$ fdb show -q 'miro/planets/Name = "Saturn"' /about
1 object matched
Object e06bea33-a000-4294-a7b2-d3245f1481ca:
  /fluiddb/about = "planet:Saturn"

Graphical example: planet:Saturn.

Find about tags for planets here.

6. Location (geonet-1)

Nicholas Tollervey (@ntoll) has been tagging places using the geo FluidDB user. He is using conventions from GEONet, which (among other things) defines a Unique Feature Identifier (UFI) and a Unique Name Identifier (UNI).

The about tag for a place with a given UNI and UFI Nicholas is using is:

"GEOnet%s_%s" % (UNI, UFI)

Objects corresponding to such places can be identified by having a geo/name tag. At the time of writing:

$ fdb count -q "has geo/name"
18950 objects matched
Total: 18950 objects

$ fdb show -q 'geo/name = "Fitful Head"' /about
1 object matched
Object 0a3dfbc6-e6e2-4d8b-8cbc-1c1920fa082b:
  /fluiddb/about = "GEOnet-2596258_-3571222"

Graphical example: GEOnet-2596258_-3571222.

Find about tags for locations here.

7.Twitter Users

The Tickery application stores information about twitter users on objects identified by their twitter ID. A twitter ID is a numeric identifier that remains the same even if twitter users change their twitter name. For example, the twitter ID for @terrycojones is 42983, so tickery stores information about this user on the about having the about tag twitter.com:uid:42983.

You can find the twitter ID for a user using idfromuser.com.

Find about tags for twitter users here

More?

If you are systematically using a convention for about tags in FluidDB, let me know. I plan to try to update this page as more conventions emerge.

2 comments:

  1. I've been tagging some O'Reilly books in FluidDB as part of the API competition. Some of the tags have strings that use Chinese characters, and after I tag a book this way, the View Visual Representation no longer works properly. About Tag just comes up with a blank screen.

    I'm running Firefox 3.6.16 with NoScript on OS X

    ReplyDelete
  2. Hi Michael H

    Yes, sorry about that. I'll try to fix it. The reason is that the original ("book-1" convention) mapped non-European letters from about tags and if you type them into the web app it using the book section it assumes that book-1 convention. The abouttag library now supports a second convention, "book-u", which leaves all letters in words, while still normalizing them to lower case. I need to add support for that into the library.

    I think that if you just specify the about tag explicitly (rather than going through the book section) it should work, but you may have an example where that isn't true, in which case there may be another problem.

    I'll try to add support in the web app for the book-u convention soon.

    Nick

    ReplyDelete

Labels