Sistem file yang menggunakan tag, bukan folder?

122

File saya berantakan, saya mencoba menyusunnya ke dalam folder dengan nama yang menggambarkan apa itu dalam pengertian pemecahan kelas rekursif tetapi kemudian saya kesulitan menemukan file itu lagi ketika saya mencarinya (satu file mungkin bisa ada di banyak folder).

Sistem file apa yang memungkinkan saya menemukan file saya dengan kombinasi tag alih-alih menggunakan folder?

Jika ada sistem file seperti itu, saya tidak yakin bagaimana OS akan mengatasinya, karena sangat bergantung pada sistem folder. Saya menemukan tag2find , yang tidak terlalu buruk; itu memecahkan masalah saya dengan menemukan barang untuk saat ini tetapi ini adalah aplikasi, bukan sistem file.

Clinux
sumber
2
(per 2013) Gmail memiliki sistem ini sudah di tempat dengan pesan email Anda. Sekarang agar mereka menerapkannya di Google Drive!
chharvey
pertanyaan ini mirip dengan pertanyaan ini
chharvey
2
Saya telah memikirkan hal ini, sistem seperti itu dapat menyingkirkan folder dan bahkan nama file sama sekali (belum lagi ekstensi yang tidak masuk akal). Sedemikian rupa sehingga jalur, nama, dan pengenal unik dari sebuah file hanya akan menjadi kumpulan tag yang diterapkan padanya. Dan meskipun demikian, mungkin ada lebih dari satu file dengan kumpulan tag yang sama, mengapa tidak. Notasinya bisa sama, misalnya document/report/2015/finance/v2.01urutan tag tidak menjadi masalah. Hal yang hebat tentang ini adalah Anda bisa memberikan beberapa tag dan tidak semua, dan masih mendapatkan file yang Anda inginkan.
Petruza
1
@ Petruza Saya pikir memiliki tag ID unik untuk setiap file mungkin membuat pengelolaan tag menjadi rumit. Nama file akan tetap menjadi properti yang berguna selain tag yang lebih umum.
jiggunjer

Jawaban:

34

Apa yang Anda minta adalah Sistem File Database . Saya mengetahui satu implementasi eksperimental untuk Linux yang disebut DBFS . Microsoft mulai mengembangkan Windows Future Storage (WinFS) - rencananya akan dikirimkan dengan Vista tetapi karena masalah teknis, proyek tersebut ditunda dan sejauh yang saya tahu akhirnya dibatalkan. NTFS juga mampu menyimpan metadata untuk file tetapi tidak untuk perluasan dari sistem file database berfitur lengkap.

Integrasi sistem file seperti itu ke dalam sistem operasi seharusnya tidak terlalu rumit untuk inti dari sistem operasi - itu bisa dengan mudah tetap dengan model hierarki. Bagian yang kompleks adalah shell (grafis) yang harus memperlihatkan struktur dan kapabilitas sistem file kepada pengguna.

Daniel Brückner
sumber
2
ya, WinFS dibatalkan sekitar tahun 2006: p. Mungkin mencoba DBFS beberapa saat.
Clinux
5
Saya yakin mereka juga disebut sistem file semantik , atau sistem file relasional .
jiggunjer
37

Berikut adalah beberapa sistem file yang saya temukan menggunakan google.

TagFS - Makalah "Tag Semantics for Hierarchical File Systems" oleh Stephan Bloehdorn dan Max Völkel, 2006 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.4187

dhtfs - "Sistem file berbasis tag, memberikan hierarki direktori dinamis berdasarkan tag yang terkait dengan file" implementasi yang dapat digunakan, rilis terakhir 2007 http://code.google.com/p/dhtfs/

Tagsistant - Proyek "A reasoning semantic filesystem for Linux dan BSD" sedang dalam pengembangan aktif http://www.tagsistant.net/

Leaftag - "Penandaan untuk desktop Linux" implementasi lain, rilis terakhir 2006 http://www.chipx86.com/w/index.php/Leaftag

Mengenai integrasi dengan OS, saya rasa tidak sesulit itu. OS sangat bergantung pada hierarki sistem file, tetapi sistem file berbasis tag dapat meniru struktur direktori. Misalnya dalam sistem file berbasis tag, jalur /etc/init.dakan memberikan semua file yang diberi tag dengan tepat dua tag yaitu 'etc' dan 'init.d'. Untuk file yang diberi tag dengan tag lain serta dua tag ini, tag tambahannya dapat muncul sebagai direktori di dalam /etc/init.d. Jika ada file a.txt dengan tiga tag yaitu 'etc', 'init.d' & 'asdf' maka 'asdf' akan muncul sebagai direktori di dalam /etc/init.d dan path lengkap dari a.txt akan menjadi / etc / init.d / asdf / a.txt.

binW
sumber
@clinux: Berikut ini satu lagi yang terbaru, Fuse :: TagLayer , meskipun tampaknya hanya-baca.
isync
35

Saya penulis program Linux TMSU yang memungkinkan Anda menandai file dan melihatnya dalam sistem file berbasis tag.

Berikut beberapa contoh penggunaan:

$ 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

Dan sistem file 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

Angka-angka dalam nama file adalah pengidentifikasi yang ada untuk menjaga agar nama file tetap unik. Ini adalah tautan simbolis kembali ke lokasi asli file.

$ 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

Itu masih dalam pengembangan aktif. Pada saat penulisan (Okt 2014) 0.4.2 tersedia tetapi saya akan segera merilis 0.5.0.

Paul Ruane
sumber
1
Adakah cara untuk menggunakan ini dengan Windows?
Jonathan
1
@Jonathan, ya ada versi Windows lama yang dapat Anda coba. Perhatikan bahwa ini agak bermasalah dan tidak ada dukungan VFS. Saya tetap bermaksud untuk melakukan port yang tepat tetapi saya ingin inti ke kondisi yang baik terlebih dahulu.
Paul Ruane
Kedengarannya luar biasa Paul :)
Jonathan
6

Vista dan Windows 7 mendukung penandaan file. Lihat artikel ini

Johann Strydom
sumber
9
Sayangnya tidak semua jenis file dapat diberi tag seperti itu.
Clinux
4

Coba tagfs . Ini adalah sistem file ruang pengguna berbasis sekering. Ini dapat menunjukkan direktori yang diberi tag dari direktori sumber dalam tampilan filter tag.

Misalnya, Anda memiliki direktori 'vacation india' yang diberi tag 'india' dan 'photos' dan direktori 'vacation spain' dengan tag 'spain' dan 'photos'. Anda dapat memfilter semua foto Anda dengan memasukkan jalur '/ my_mountpoint / photos'.

Direktori ditandai melalui file teks sederhana. File bernama '.tag' dalam direktori berisi tag. Beberapa tag dipisahkan oleh baris baru.

Markus Peröbner
sumber
3

Saya menemukan pertanyaan ini ketika bertanya pada diri sendiri pertanyaan yang sama tentang tag file sistem file. Saya kemudian menemukan aplikasi ini untuk Windows XP / Vista yang disebut TaggedFrog yang dapat melakukan trik. Belum mencobanya, tapi kelihatannya menjanjikan.

Tidak berharap untuk memeriksa 1000-an file! Bagaimanapun, saya akan dipaksa untuk meningkatkan ke Win7 di beberapa titik dan dapat mencoba penandaan aslinya.

KJH
sumber
Saya yakin TaggedFrog juga mendukung versi Windows yang lebih baru.
jiggunjer
2

Ada TagsForAll untuk windows. Ini adalah pengelola file berdasarkan tag. Tag dapat memiliki struktur hierarki. Antarmuka pengguna sangat sederhana tapi bagus. Versi gratis berfungsi penuh dan menyimpan tag dalam database, versi Pro juga menyimpan tag dalam aliran NTFS ke file.

het_passagier
sumber
2

Saya menemukan desain UI Elyse luar biasa. Tetapi ini lebih merupakan sistem statis yang tidak dapat mengawasi folder dan memberi tag file baru dengan tag default secara otomatis.

salah tulis
sumber
1

Saya juga telah memikirkan tentang sistem file berbasis tag sejak lama. Adakah yang pernah berpikir tentang pendekatan yang lebih radikal dan sederhana? Untuk melupakan folder sepenuhnya (folder yang disimulasikan hanya untuk alasan kompatibilitas program), dan letakkan semua tag langsung ke dalam nama file.

(Nama File Klasik) _Tag1_Tag2_Tag3 _..... (Ekstensi File)

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

Saya selalu ingin memasukkan informasi sebanyak mungkin dalam nama file. Anda dapat menemukan semuanya dalam jutaan file di setiap OS yang memungkinkan.

Satu-satunya batasan adalah panjang nama file yang berbeda di setiap OS, dan itu menjadi berantakan dengan sistem saat ini.

OS tingkat lanjut dengan dapat mengakses file seperti ini: Mydocument.txt Dan Tag dapat diedit di tingkat terendah dari OS, seperti mengubah Nama File hari ini. Jika tiba-tiba ada Mydocument.txt yang lain maka secara otomatis diganti namanya menjadi Mydocument (2) .txt dan seterusnya.

Saya tahu ide ini bukannya tanpa masalah tambahan, bahkan tidak disebutkan di sini .....

Tetapi Ide akan menyimpan tag dalam kemungkinan tingkat rendah yang paling dasar, yang dapat diakses dari SEMUA sistem file masa lalu dan masa depan. Dan kesamaan yang dimiliki semua FS adalah nama file.

UntitledArtists
sumber
Ini terdengar seperti implementasi DBFS yang sangat kasar.
Chuu
Anda mencampur apel dan jeruk. Semua yang dilakukan adalah memindahkan struktur hierarki dari direktori ke nama file. Atau dengan kata lain, "semua dalam satu direktori" dan "tag dalam nama file" tidak masuk akal di dunia berbasis tag. Dan tentu saja Anda tidak ingin program aplikasi berurusan dengan 10.000 file sehingga OS harus mengirimkan file secara efisien berdasarkan spesifikasi tag. Jadi aplikasi mengirimkan "tag" ke OS yang diperlukan untuk "mengidentifikasi file" dan ... Anda langsung kembali ke salah satu direktori atau salah satu sistem file alternatif yang disebutkan di sini.
CoolHandLouis
Penjelajah Windows memiliki batas jalur 255 karakter, yang mudah dicapai. Jika tidak, batas tersebut harus ditentukan oleh batas FS pada nama file. Cukup kasar ya, tapi masih ide yang bagus. Jika Anda ingin menyimpan metadata dalam file dan memfilternya pada tingkat yang rendah, mungkin ada cara lain yang kurang terbatas, seperti menambahkan atau menambahkan data ke file, atau memiliki file "sidecar" dengan nama file yang sama tetapi berbeda ekstensi, yang akan berisi metadata. Masalah lainnya adalah mengganti nama tag saja mungkin memerlukan jutaan operasi modifikasi file.
Rolf
Sebenarnya ide ini diimplementasikan oleh TagSpaces .
Arnie97
0

Saya tidak berpikir memiliki (memiliki) dukungan penandaan sendiri tetapi BFS mendukung beberapa fungsi metadata yang cukup keren.

pr1001
sumber