FSter is the first component we (itsme) are releasing to the development community, as an essential part of Guglielmo that might be reused by other projects and applications with similar needs: you can get it from here.
FSter is a virtual file system implementation based on Fuse technology and exploiting Tracker metadata technology to allow access to files according to the metadata they’re associated to. Practically, FSter enables scenarios such as the following ones:
* browsing the content of a drive (or simply of a folder) according to a user-defined hierarchy or progression of filters based on metadata;
* associating metadata to files whenever operations are performed on them. For example, copying or saving a file in a specific place means storing it along with a description (metadata);
* generating “virtual” files from metadata, e.g., a vCard file that is not really on the file system, but dynamically built from metadata.
In order for you to be able to install, use, and extend FSter, or to contribute in any other way, we have set up some tools online:
* a wiki where you can find detailed information on the project, descriptions and instructions: http://gitorious.org/itsme/pages/Fster
* a bug reporting system (i.e., Bugzilla) where you can file any problem you find in our software: http://bugs.itsme.it
* a mailing lists system where you can subscribe to discussions and interact with us and other developers: http://lists.itsme.it
* an IRC channel where you will find (most of) the itsme technical staff all day long (well, Italian time mainly – i.e., GMT +1): #itsme-dev on irc.freenode.net
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Introducing FSter
1. FSter
Guglielmo’s Hyper File System
Lorenzo Bellini, Roberto Guido,
Marco Loregian, Michele Tameni
<name.surname>@itsme.it
2. What is FSter?
➔FSter is a virtual file system implementation, based
on Fuse technology and exploiting Tracker
metadata technology to allow access to files
according to the metadata they’re associated to
Itsme – Fster: Guglielmo's Hyper File System 2
3. Sample scenarios
➔Browsing the content of a drive, according to a user-
defined hierarchy based on metadata;
➔Associating metadata to files whenever operations are
performed on them;
➔Generating “virtual” files from metadata, e.g., a vCard
file dynamically built from metadata
Itsme – Fster: Guglielmo's Hyper File System 3
4. Requirements and
domain architecture
FSter uses libtracker-client to build
and execute sparql query on
tracker-store
Queries are built according to a
user-defined (XML) filesystem
hierarchy
Itsme – Fster: Guglielmo's Hyper File System 4
5. Configuration file
➔A configuration file defines what the user will see in
FSter directories
➔Configuration files must follow XML 1.0 standards
➔An XML schema of the configuration file is avalaible (Fster.xsd)
Itsme – Fster: Guglielmo's Hyper File System 5
6. Xml element: folder
➔Shows each RDF subject matching with defined
conditions as a folder and:
➔defines both inheritable and self conditions
➔Allows generating a folder name from metadata
➔allows nesting content object inside it
➔defines editing policies for the content
Itsme – Fster: Guglielmo's Hyper File System 6
7. Xml element: set_folder
➔Shows each RDF object used with a specific RDF
predicate as a folder and:
➔defines a RDF predicate to get the set of RDF objects used with it
➔defines inheritable conditions
➔allows nesting content objects inside it
➔defines the editing policies of the content
Itsme – Fster: Guglielmo's Hyper File System 7
8. Xml element: file
➔Shows each RDF subject matching with defined
conditions as a file and:
➔defines self conditions
➔Allows generating a file name from metadata
➔defines whether to expose the real file or a dump of file
metadata from the repository
Itsme – Fster: Guglielmo's Hyper File System 8
9. Examples: Fster media library (1)
➔Media grouped by images, audio and video
Itsme – Fster: Guglielmo's Hyper File System 9
10. Examples: Fster media library (2)
➔Building the SPARQL query for folder element
static GList* collect_children_from_storage (HierarchyNode *node, ItemHandler *parent)
{
(..)
more_statements = condition_policy_to_sparql (&(node->priv->self_policy), parent,
&values_offset);
statements = g_list_concat (statements, more_statements);
if (node->priv->child_policy.inherit == TRUE) {
parent_node = node->priv->node;
while (parent_node != NULL) {
more_statements = condition_policy_to_sparql (&(parent_node->priv-
>child_policy), parent, &values_offset);
statements = g_list_concat (statements, more_statements);
if (parent_node->priv->child_policy.inherit == TRUE)
parent_node = parent_node->priv->node;
else
break;
}
}
sparql = build_sparql_query (NULL, var, statements);
(..)
}
Itsme – Fster: Guglielmo's Hyper File System 10
16. Future development
➔SparQL in the <condition> tag
➔Plugin architecture allowing FSter to render
metadata exposing them in standard format
files (e.g., vcard, ...);
➔User-friendly configuration editing
interface
➔Creation of folders
Itsme – Fster: Guglielmo's Hyper File System 16