Today I made a little experiment using tagfs and freebase. Freebase is a big database with structured data which contains around 12 million entities [1]. These entities are used to describe subjects from the real world. Like movies, persons, places, ... So freebase is perfectly applicable for enriching your own data.
I will show this by an example. I've got some movies on my hard drive which I enjoy watching. One of them is the movie Ink. I store these movies in a movie directory. Every movie gets it's own subdirectory below the movies directory. So the movie Ink is stored on my hard drive below /movies/Ink/Ink.avi
. This enables me to tag my movies for tagfs. My tag file for Ink looks like this:
My Personal Rating: 8 stars
_freebase: type: /film/film, name: Ink, initial_release_date: None
In my experiment I extended tagfs to fetch taggings from freebase. tagfs reads the _freebase
value for each item / movie and executes it as a query to freebase. The query delivers a result like this:
{
"code": "/api/status/ok",
"result": {
"initial_release_date": [
"2009-11-10"
],
"name": "Ink",
"type": "/film/film"
},
"status": "200 OK",
"transaction_id": "cache;cache03.p01.sjc1:8101;2010-09-03T12:38:45Z;0028"
}
tagfs applies the fields initial_release_date
, name
and type
as further taggings. So exporting the tagfs meta data as CSV looks like this:
"name";"name";"type";"initial_release_date";"Titel"
"Ink";"Ink";"_film_film";"2009-11-10";"Ink"
Now I can filter my movies with tagfs using the meta data from the huge freebase community. I've release the experimental freebase integration in tagfs below the freebase branch.