12 March 2010

abouttag: A Package for Normalizing FluidDB about tags

The previous post discussed the small number of conventions already in use for about tags in FluidDB. It occurred to me that I could usefully write some code to create about tags following each of these conventions. I’ve just done this (in python) and it’s available from github.

In addition to simply producing the about tags, the package has some normalization capabilities.

I may blog about it more, but you get most of the idea from the following examples.

from abouttag.fluiddb import FluidDB
from abouttag.uri import URI
from abouttag.database import Database
from abouttag.objects import planet, element
from abouttag.location import GEOnet

db = FluidDB()
print db.user(u'njr')
print db.namespace(u'/njr/misc')
print db.tag(u'terrycojones/private/rating/')

print URI(u'FluidDB.fluidinfo.com')
print URI(u'FluidDB.fluidinfo.com/one/two/')
print URI(u'https://FluidDB.fluidinfo.com/one/two/')
print URI(u'http://fluiddb.fluidinfo.com/one/two/')
print URI(u'http://test.com/one/two/?referrer=http://a.b/c')

db = Database()
print db.table(u'elements ')
print db.field(u'Name', u'elements')

print planet(u'mars')

print element(u' helium')

print GEOnet(-2601490, -3577649)

which produces the following:

Object for the user named njr
Object for the namespace njr/misc
Object for the attribute terrycojones/private/rating
field:Name in table:elements

These examples all have normalization turned on, though it can be turned off by adding normalization=False to any of the relevant function calls.

This will become more significant in some other cases where the key for the about tag may require more transformation from the raw input. (For example, I’ve been reading about NACO normalization, which is used by librarians to increase the probability of matching titles and authors successfully; I’m thinking of devising a schema for about tags for books based on this.)

No comments:

Post a Comment