Sistema de arquivos que usa tags em vez de pastas?

122

Meus arquivos estão uma bagunça, eu tento estruturá-los em pastas com nomes que descrevem o que eles são no sentido de quebra de classe recursiva, mas mais tarde tenho problemas para encontrar o arquivo novamente quando vou procurá-lo (o único arquivo pode existem em muitas pastas).

Qual sistema de arquivos me permitirá encontrar meus arquivos por uma combinação de tags em vez de usar pastas?

Se houvesse esse sistema de arquivos, não tenho certeza de como os sistemas operacionais lidariam, sendo tão profundamente dependente do sistema de pastas. Me deparei com tag2find , o que não é tão ruim; resolve meu problema de encontrar coisas por enquanto, mas é um aplicativo, não um sistema de arquivos.

clinux
fonte
Relacionados: stackoverflow.com/q/876188/89771
Alix Axel
2
(a partir de 2013) O Gmail já possui esse sistema com suas mensagens de email. Agora, faça com que eles o implementem no Google Drive!
chharvey
esta pergunta é semelhante a esta
chharvey
2
Eu pensei sobre isso, esse sistema poderia se livrar de pastas e até mesmo nomes de arquivos (sem mencionar as extensões absurdas). De maneira que o caminho, o nome e o identificador exclusivo de um arquivo sejam apenas o conjunto de tags que são aplicadas a ele. E mesmo assim, poderia haver mais de um arquivo com o mesmo conjunto de tags, por que não? A notação pode ser a mesma, por exemplo, document/report/2015/finance/v2.01na qual a ordem das tags não importa. O melhor de tudo é que você pode fornecer algumas tags e não todas, e ainda assim chegar ao (s) arquivo (s) que deseja.
Petruza 4/12/15
1
@Petruza Acho que ter uma tag de identificação exclusiva para cada arquivo pode dificultar o gerenciamento de tags. Os nomes de arquivos ainda seriam uma propriedade útil, além de tags mais gerais.
jiggunjer 21/09

Respostas:

34

O que você está pedindo é um sistema de arquivos de banco de dados . Conheço uma implementação experimental para Linux chamada DBFS . A Microsoft começou a desenvolver o Windows Future Storage (WinFS) - planejava ser enviado com o Vista, mas devido a problemas técnicos, o projeto foi adiado e, até onde sei, finalmente foi cancelado. O NTFS também é capaz de armazenar metadados para arquivos, mas não para uma extensão de um sistema de arquivos de banco de dados completo.

A integração de um sistema de arquivos em um sistema operacional não deve ser tão complicada para o núcleo do sistema operacional - ela pode simplesmente seguir o modelo hierárquico. A parte complexa é o shell (gráfico) que deve expor a estrutura e os recursos do sistema de arquivos ao usuário.

Daniel Brückner
fonte
2
sim, o WinFS foi cancelado por volta de 2006: p. Pode experimentar DBFS algum tempo.
clinux 16/07/10
5
Acredito que eles também sejam chamados sistemas de arquivos semânticos ou sistemas de arquivos relacionais .
precisa saber é o seguinte
37

Aqui estão alguns sistemas de arquivos que eu achei usando o google.

Artigo TagFS - "Semântica de tags para sistemas de arquivos hierárquicos", de Stephan Bloehdorn e Max Völkel, 2006 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187

dhtfs - "Sistema de arquivos com base em tags, fornecendo hierarquias de diretórios dinâmicos com base em tags associadas a arquivos", uma implementação utilizável, última versão 2007 http://code.google.com/p/dhtfs/

Tagsistant - "Um sistema de arquivos semântico de raciocínio para Linux e BSD" em desenvolvimento ativo http://www.tagsistant.net/

Leaftag - "Marcando para a área de trabalho Linux" outra implementação, última versão 2006 http://www.chipx86.com/w/index.php/Leaftag

Na integração com sistemas operacionais, não acho que deva ser tão difícil. Os sistemas operacionais são profundamente dependentes da hierarquia do sistema de arquivos, mas o sistema de arquivos baseado em tags pode imitar a estrutura de diretórios. Por exemplo, em um sistema de arquivos baseado em tags, o caminho /etc/init.dfornecerá todos os arquivos marcados com exatamente duas tags, por exemplo, 'etc' e 'init.d'. Para arquivos marcados com outras tags e com essas duas tags, suas tags extras podem aparecer como diretórios dentro de /etc/init.d. Se houver um arquivo a.txt com três tags, por exemplo, 'etc', 'init.d' e 'asdf', 'asdf' aparecerá como diretório dentro de /etc/init.d e o caminho completo de a.txt se tornará / etc / init.d / asdf / a.txt.

binW
fonte
@clinux: Aqui está outro recente, Fuse :: TagLayer , embora pareça ser somente leitura.
Isync
35

Sou o autor do programa Linux TMSU que permite marcar arquivos e visualizá-los em um sistema de arquivos baseado em tags.

Aqui está um exemplo de uso:

$ tmsu tag track.mp3 music genre=indie-rock good year=1999
$ tmsu tag melody.mp3 music
$ tmsu tag DC123.jpg photo landscape country=italy year=2014
$ tmsu files music year = 1999
./song.mp3

E o sistema de arquivos virtual:

$ mkdir mp
$ tmsu mount mp
$ ls mp
query  tags
$ ls tags
country  genre  good  landscape  photo  music  year
$ ls tags/music
genre  good  track.1.mp3  melody.2.mp3 year

Os números nos nomes de arquivos são identificadores que existem para manter os nomes de arquivos exclusivos. Esses são links simbólicos para os locais originais dos arquivos.

$ ls tags/music/good  # you can drill down
genre  track.1.mp3  year
$ ls "query/music and good"  # this directory gets automatically created
track.1.mp3

Ainda está em desenvolvimento ativo. No momento da redação deste artigo (outubro de 2014), o 0.4.2 está disponível, mas lançarei o 0.5.0 em breve.

Paul Ruane
fonte
1
Alguma maneira de usar isso com o Windows?
314 Jonathan
1
@ Jonathan, sim, existe uma versão antiga do Windows que você pode tentar. Observe que é um pouco complicado e não há suporte para VFS. Eu mantenho a intenção de fazer uma porta adequada, mas quero levar o núcleo a um bom estado primeiro.
Paul Ruane
Sons incrível Paul :)
Jonathan
6

Vista e Windows 7 suportam a marcação de arquivos. Veja este artigo

Johann Strydom
fonte
9
Infelizmente, nem todos os tipos de arquivos podem ser marcados dessa maneira.
clinux
4

Tente tagfs . É um sistema de arquivos de espaço do usuário baseado em fusível. Ele pode mostrar diretórios marcados de um diretório de origem em uma exibição de filtro de marcações.

Por exemplo, digamos que você tenha um diretório 'férias na Índia' com as tags 'Índia' e 'fotos' e um diretório 'férias com a Espanha' com as tags 'Espanha' e 'fotos'. Você pode filtrar todas as suas fotos digitando o caminho '/ my_mountpoint / photos'.

Os diretórios são marcados através de um arquivo de texto simples. Um arquivo chamado '.tag' no diretório contém as tags. Várias tags são separadas por novas linhas.

Markus Peröbner
fonte
3

Me deparei com essa pergunta enquanto fazia a mesma pergunta sobre as tags de arquivo do sistema de arquivos. Encontrei este aplicativo para Windows XP / Vista chamado TaggedFrog que pode fazer o truque. Ainda não tentei, mas parece promissor.

Não estou ansioso para passar por milhares de arquivos! De qualquer forma, serei forçado a atualizar para o Win7 em algum momento e posso tentar sua marcação nativa.

KJH
fonte
Acredito que o TaggedFrog também suporta versões mais recentes do Windows.
precisa saber é o seguinte
2

TagsForAll para Windows. É um gerenciador de arquivos baseado em tags. Tags podem ter estrutura hierárquica. A interface do usuário é muito simples, mas agradável. Versão gratuita totalmente funcional e salvar tags no banco de dados, versão Pro salvar tags também dentro do fluxo NTFS para um arquivo.

het_passagier
fonte
2

Achei que o design da interface do usuário do Elyse é maravilhoso. Mas é mais um sistema estático que ele não pode monitorar a pasta e marcar automaticamente um novo arquivo com uma marca padrão.

misssprite
fonte
1

Eu estive pensando também em um sistema de arquivos baseado em tags há muito tempo. Alguém já pensou em uma abordagem mais radical e simples? Para esquecer as pastas completamente (pastas simuladas apenas por motivos de compatibilidade de programas) e colocar todas as tags diretamente no nome do arquivo.

(Nome clássico do arquivo) _Tag1_Tag2_Tag3 _..... (Extensão do arquivo)

Mydocument_tag-based-file-system_tags_file-system_stackoverflow_folder_file-name_tagfs.txt

Eu sempre gosto de colocar o máximo de informações possível no nome do arquivo. Você pode encontrar tudo em milhões de arquivos em todos os sistemas operacionais possíveis.

O único limite é o tamanho diferente do nome do arquivo no evey OS e fica confuso com os sistemas atuais.

Um sistema operacional avançado com acesso a um arquivo como este: Mydocument.txt E as tags podem ser editadas no nível mais baixo do sistema operacional, como alterar o nome do arquivo hoje. Se de repente houver outro Mydocument.txt, ele será renomeado automaticamente para Mydocument (2) .txt e assim por diante.

Eu sei que essa idéia não está isenta de problemas adicionais, nem mesmo mencionada aqui .....

Mas a Idea está prestes a armazenar tags na possibilidade mais básica de baixo nível, que pode ser acessada em TODOS os sistemas de arquivos passados ​​e futuros. E o que todos os FS têm em comum é o nome do arquivo.

Artistas sem título
fonte
Isso soa como uma implementação muito grosseira de um DBFS.
Chuu
Você está misturando maçãs e laranjas. Tudo isso faz é mover a estrutura hierárquica do diretório para o nome do arquivo. Ou, em outras palavras, "tudo em um diretório" e "tags nos nomes de arquivo" não fazem sentido em um mundo baseado em tags. E, é claro, você não gostaria que os aplicativos tivessem que lidar com 10.000 arquivos, para que o sistema operacional entregasse arquivos com eficiência, com base em uma especificação de marca. Portanto, o aplicativo envia ao sistema operacional as "tags" necessárias para "identificar o arquivo" e ... você volta aos diretórios ou a um dos sistemas de arquivos alternativos mencionados aqui.
CoolHandLouis
O Windows Explorer possui um limite de caminho de 255 caracteres, que é facilmente alcançado. Caso contrário, o limite deve ser determinado pelo limite de FS nos nomes de arquivos. Muito bruto, sim, mas ainda assim uma boa idéia. Se você deseja armazenar os metadados no arquivo e filtrá-los em um nível baixo, pode haver outras maneiras menos limitadas, como anexar ou anexar dados ao arquivo ou ter um arquivo "sidecar" com o mesmo nome de arquivo, mas com um nome diferente. extensão, que conteria os metadados. Outro problema é que simplesmente renomear uma tag pode exigir milhões de operações de modificação de arquivo.
Rolf
Na verdade, essa ideia foi implementada pelo TagSpaces .
Arnie97
0

Eu não acho que tinha (tem) suporte de marcação por si só, mas o BFS suporta algumas funcionalidades bem interessantes de metadados.

pr1001
fonte