In Tracker’s trunk we have support for volumes. This means that we track removable devices appearing and disappearing. A removable device that disappears means that in your search result you wont see the resources that are on the disconnected removable device.
In trunk we keep a separate table with volume registrations for this.
In master we simply use the ontology. Which also means that we now make this information available to you as metadata in a clean way.
Some examples. List all the volumes that we know about:
tracker-sparql -q "SELECT ?o ?m ?z WHERE { ?o a tracker:Volume ; tracker:mountPoint ?m ; tracker:unmountDate ?z }"
That will return something like this (wrapping the line):
urn:nepomuk:datasource:/org/freed../Hal/devices/volume_uuid_XXX_ABCDE, file:///media/USBStick, 2009-04-01T13:38:20
The ones that we know about but aren’t mounted:
tracker-sparql -q "SELECT ?o ?m WHERE { ?o a tracker:Volume ; tracker:mountPoint ?m ; tracker:isMounted false } "
The ones that we know about and are mounted:
tracker-sparql -q "SELECT ?o ?m WHERE { ?o a tracker:Volume ; tracker:mountPoint ?m ; tracker:isMounted true } "
Let’s just for fun list the volumes that got unmounted before a specific date and didn’t get mounted anymore:
tracker-sparql -q "SELECT ?o ?m WHERE { ?o a tracker:Volume ; tracker:mountPoint ?m ; tracker:isMounted false ; tracker:unmountDate ?z . FILTER (?z < \"`date -u +"%Y-%m-%dT%H:%M:%S%z"`\") }"
I'd like to add that replacing HAL isn't our intention. Not at all. We depend on HAL to track this information ourselves. We need to know the availability of a volume and because we link every file resource to the volume's resource we can that way know about the availability of a resource.
It's under Tracker's own ontology prefix, and it's not really to be considered as decided or stable ontology API yet. We might change some things about it. It wasn't even a design goal to make this publicly accessible.
Why am I showing it? Well, because it's a nice way to explain one of our sprint tasks for the the next two weeks. I promised you guys that I would talk about what we are up to at Tracker. So here you have it!