Semantic filesystem for Linux, with relation reasoner, autotagging plugins and a deduplication service
C Shell Makefile Perl Vim script M4
Permalink
Failed to load latest commit information.
.externalToolBuilders RDS implementation with proper update Dec 13, 2014
.settings RDS implementation with proper update Dec 13, 2014
docs RDS implementation with proper update Dec 13, 2014
m4 First commit for 0.8.2 Dec 7, 2014
src Init globally the regex to match triple tags in *.tags metafiles Feb 11, 2017
.autotools RDS implementation with proper update Dec 13, 2014
.cproject add some untraked files Jul 26, 2015
.gitignore add some untraked files Jul 26, 2015
.project RDS implementation with proper update Dec 13, 2014
AUTHORS First commit for 0.8.2 Dec 7, 2014
COPYING First commit for 0.8.2 Dec 7, 2014
ChangeLog First .Trash/ tag implementation (enable at mount with -t or --enable… Jun 5, 2016
Contributors First commit for 0.8.2 Dec 7, 2014
Doxyfile First commit for 0.8.2 Dec 7, 2014
INSTALL First commit for 0.8.2 Dec 7, 2014
INSTALL.GNU First commit for 0.8.2 Dec 7, 2014
Makefile add some untraked files Jul 26, 2015
Makefile.am First commit for 0.8.2 Dec 7, 2014
Makefile.in add some untraked files Jul 26, 2015
NEWS First commit for 0.8.2 Dec 7, 2014
README.md [Fixes #5] Transform readme into markdown Jul 11, 2015
TODO First commit for 0.8.2 Dec 7, 2014
aclocal.m4 add some untraked files Jul 26, 2015
ar-lib add some untraked files Jul 26, 2015
autogen.sh First commit for 0.8.2 Dec 7, 2014
compile add some untraked files Jul 26, 2015
config.h add some untraked files Jul 26, 2015
config.h.in add some untraked files Jul 26, 2015
configure add some untraked files Jul 26, 2015
configure.ac ./configure exits accordingly if libextractor headers are not available Oct 20, 2016
depcomp add some untraked files Jul 26, 2015
install-sh add some untraked files Jul 26, 2015
libtool add some untraked files Jul 26, 2015
ltmain.sh add some untraked files Jul 26, 2015
missing First commit for 0.8.2 Dec 7, 2014
prepare_commit.sh First commit for 0.8.2 Dec 7, 2014
prepare_revision.sh First commit for 0.8.2 Dec 7, 2014
tagsistant_control.txt Add packaging guidelines Jul 10, 2016

README.md

Tagsistant is a semantic file system for Linux, a personal tool to catalog files using tags (labels, mnemonic informations) rather than directories.

Tagsistant replace the concept of directory with that of tag, but since it have to do with directories, it pairs the concept of tag with that of directory. So within Tagsistant a tag is a directory and a directory is a tag.

To be more precise, this is not true with all the directories. First level directories are special. The one called tags/ hosts all the tags. This means that every directory created inside it is infact a tag.

Another, called store/, hosts contents, like files. All the tags created inside tags/ are available inside store/. To tag a file all you have to do is to copy it inside one or more directories under store/.

Another special first level directory is relations/. Inside it you can establish relations between tags using mkdir:

 $ mkdir relations/music/includes/rock
 $ mkdir relations/rock/includes/beatles
 $ mkdir relations/beatles/includes/lennon
 $ mkdir relations/beatles/is_equivalent/the_beatles
 $ mkdir relations/lennon/requires/beatles

A reasoner follows the relations you establish to include objects as a result of your queries. This is an example:

 $ cp ~/let_it_be.mp3 store/lennon/@/
 $ ls store/the_beatles/@/
 let_it_be.mp3

The file let_it_be.mp3 is tagged as lennon, which is included by beatles, which is equivalent to the_beatles, and so is listed.

Tagsistant also comes with a plugin API to extend its behaviour. Some plugins for .ogg, .mp3, .xml, .html and other formats are provided. What they do is add more tags to a file, using specific procedures.

And if a file is copied inside Tagsistant twice, Tagsistant is able to pair the second copy with the first one, keeping it just one.

More information is available at: http://www.tagsistant.net/howto

To compile Tagsistant, clone this repo and do:

$ ./autogen.sh
$ ./configure
$ make

To install Tagsistant, do:

$ make install