Categorie invece di cartulari, o u Sistema di File Semanticu per Linux

A classificazione di dati stessu hè un tema di ricerca interessante. Mi piace à cullà l'infurmazioni chì parenu necessarii, è aghju sempre pruvatu à creà gerarchie di repertorii lògichi per i mo schedari, è un ghjornu in un sognu aghju vistu un prugramma bellu è cunvene per assignà tag à i schedari, è aghju decisu chì ùn puderebbe campà. cum'è questu più.

U prublema di i sistemi di schedarii gerarchichi

L'utilizatori sò spessu affruntati cù u prublema di sceglie induve salvà u prossimu novu schedariu è u prublema di truvà i so propri schedari (a volte i nomi di i schedari ùn sò micca intesu à esse ricurdati da una persona).

Una manera di esce da a situazione pò esse sistemi di fugliale semanticu, chì sò generalmente un add-on à u sistema di schedariu tradiziunale. I direttori in elli sò rimpiazzati da attributi semantichi, ancu chjamati tags, categurie è metadata. Aduprà u terminu "categoria" più spessu, perchè ... In u cuntestu di i sistemi di schedari, a parolla "tag" hè qualchì volta un pocu strana, soprattuttu quandu "subtags" è "tag aliases" appariscenu.

L'assignazione di categurie à i fugliali elimina largamente u prublema di almacenà è di ricerca di un schedariu: se vi ricordate (o guess) almenu una di e categurie assignate à un schedariu, allora u schedariu ùn sparirà mai da a vista.

Nanzu, stu tema hè statu suscitatu più di una volta nantu à Habré (i tempi, два, trè, quattru etc.), quì descrive a mo suluzione.

Strada di a Realizazione

Immediatamente dopu à u sognu mintuatu, aghju descrittu in u mo notebook l'interfaccia di cumanda chì furnisce u travagliu necessariu cù categurie. Allora aghju decisu chì in una settimana o duie puderaghju scrive un prototipu cù Python o Bash, è dopu avè da travaglià per creà una cunchiglia gràfica in Qt o GTK. A realità, cum'è sempre, hè stata assai più dura, è u sviluppu hè statu ritardatu.

L'idea originale era di fà prima di tuttu un prugramma cun una interfaccia di linea di cumanda cuncisa è cuncisa chì creà, sguassate categurie, assignate categurie à i schedari è sguassate categurie da i schedari. Aghju chjamatu u prugramma vitis.

Prima tentativu di creà vitis finì in nunda, postu chì assai tempu hà cuminciatu à esse passatu in u travagliu è l'università. U sicondu tentativu era digià qualcosa: per a tesi di u maestru, aghju sappiutu per finisce u prughjettu pianificatu è ancu fà un prototipu di a cunchiglia GTK. Ma sta versione hè diventata cusì inaffidabile è inconveniente chì assai hà da esse ripensatu.

Attualmente aghju utilizatu a terza versione per un tempu assai longu, dopu avè trasferitu parechji milla di i mo schedari in categurie. Questu hè statu ancu assai facilitatu da u cumpletu bash implementatu. Ma certi prublemi, cum'è a mancanza di categurie automatiche è a capacità di almacenà i fugliali di u listessu nome, restanu sempre, è u prugramma era digià piegatu sottu à a so cumplessità. Hè cusì chì aghju ghjuntu à a necessità di risolve i prublemi cumplessi di sviluppu di software: scrive esigenze dettagliate, sviluppà un sistema di teste funziunale, studià l'istruzzioni di imballaggio, è assai di più. Aghju avà ghjuntu à u mo pianu, perchè sta creazione umile pò esse presentata à a cumunità libera. A gestione di u schedariu specificu, cum'è a gestione per mezu di u cuncettu di categurie, suscite prublemi è prublemi inespettati, è in risolve vitis hà generatu cinque prughjetti più intornu à ellu stessu, alcuni di i quali seranu citati in l'articulu. Finu à avà vitis Ùn aghju micca acquistatu una cunchiglia gràfica, ma a cunvenzione d'utilizà categurie di schedari da a linea di cumanda digià sopra à mè qualsiasi vantaghji di un gestore di file gràficu regulare.

Esempi di usu

Cuminciamu sèmplice - crea una categuria:

vitis create Музыка

Aghjunghjemu una cumpusizioni cum'è un esempiu:

vitis assign Музыка -f "The Ink Spots - I Don't Want To Set The World On Fire.mp3"

Pudete vede u cuntenutu di a categuria "Music" cù u sottucumandamentu "mostra":

vitis show Музыка

Pudete ghjucà cù u sottucumanda "apertu".

vitis open Музыка

Perchè Se avemu un solu schedariu in a categuria "Music", allora solu quellu chì lanciarà. Per u scopu di apre i schedari cù i so prugrammi predeterminati, aghju fattu una utilità separata vts-fs-open (Arnesi standard cum'è xdg-open o mimeopen ùn mi cunvene micca per parechje ragioni; ma, se qualcosa, in i paràmetri pudete specificà un'altra utilità per l'apertura di u schedariu universale). Questa utilità funziona bè in diverse distribuzioni cù diversi ambienti di travagliu, per quessa, ricumandemu di stallà cù vitis.

Pudete ancu specificà direttamente u prugramma per apre i schedari:

vitis open Музыка --app qmmp

Categorie invece di cartulari, o u Sistema di File Semanticu per Linux

Creemu più categurie è aghjunghje i schedari usendu "assign". Se i schedari sò attribuiti à categurie chì ùn esistenu micca, vi sò invitati à creà. Una dumanda inutile pò esse evitata usendu a bandiera -yes.

vitis assign Программирование R -f "Введение в R.pdf" "Статистический пакет R: теория вероятностей и матстатистика.pdf" --yes

Avà vulemu aghjunghje a categuria "Matematica" à u schedariu "Pacchettu statisticu R: teoria di probabilità è statistiche matematiche.pdf". Sapemu chì stu schedariu hè digià categurizatu cum'è "R" è per quessa pudemu usà u percorsu di categuria da u sistema Vitis:

vitis assign Математика -v "R/Статистический пакет R: теория вероятностей и матстатистика.pdf"

Per furtuna, u cumpletu di bash facilita questu.

Videmu ciò chì hè accadutu, utilizendu a bandiera --categories per vede una lista di categurie per ogni schedariu:

vitis show R --categories

Categorie invece di cartulari, o u Sistema di File Semanticu per Linux

Da nutà chì i schedari sò ancu categurizzati automaticamente per furmatu, tipu (unisce furmati) è estensione di u schedariu. Queste categurie ponu esse disattivate se vulete. Più tardi, certamente localizeraghju i so nomi.

Aghjunghjemu qualcosa à "Matematica" per a varietà:

vitis assign Математика -f "Математический анализ - 1984.pdf" Перельман_Занимательная_математика_1927.djvu 

È avà e cose diventanu interessanti. Invece di categurie, pudete scrive l'espressioni cù l'operazioni di unione, intersezzione è sottrazione, vale à dì, aduprate operazioni nantu à i setti. Per esempiu, l'intersezzione di "Math" cù "R" hà da risultatu in un schedariu.

vitis show R i: Математика

Sottraimu riferimenti à a lingua "R" da "Matematica":

vitis show Математика  R  #или vitis show Математика c: R

Pudemu cunghjuntà senza scopu a musica è a lingua R:

vitis show Музыка u: R

A bandiera -n permette di "tirà" i fugliali richiesti da u risultatu di a dumanda per numeri è / o intervalli, per esempiu, -n 3-7, o qualcosa di più cumplicatu: -n 1,5,8-10,13. Hè spessu utile cù u subcumandamentu apertu, chì permette di apre i schedari desiderati da una lista.

Categorie invece di cartulari, o u Sistema di File Semanticu per Linux

Mentre simu alluntanati da l'usu di una ghjerarchia di repertoriu cunvinziunali, hè spessu utile per avè categurie nidificate. Creemu una subcategoria "Statistica" sottu a categuria "Matematica" è aghjunghje sta categuria à u schedariu appropritatu:

vitis create Математика/Статистика

vitis assign Математика/Статистика -v "R/Введение в R.pdf"

vitis show Математика --categories

Categorie invece di cartulari, o u Sistema di File Semanticu per Linux

Pudemu vede chì stu schedariu hà avà a categuria "Math / Statistics" invece di "Math" (i ligami extra sò tracciati).

L'indirizzu di u percorsu sanu pò esse inconveniente, creemu un alias "globale":

vitis assign Математика/Статистика -a Статистика

vitis show Статистика

Categorie invece di cartulari, o u Sistema di File Semanticu per Linux

Micca solu i schedarii regulari

ligami Internet

Per unificà l'almacenamiento di ogni infurmazione, saria utile, à u minimu, categurizà ligami à e risorse Internet. È questu hè pussibule:

vitis assign Хабр Цветоаномалия -i https://habr.com/ru/company/sfe_ru/blog/437304/ --yes

Un schedariu serà creatu in un locu speciale cù l'intestazione di a pagina HTML è l'estensione .desktop. Questu hè u formatu di shortcut tradiziunale in GNU/Linux. Tali shortcuts sò automaticamente categurizzati cum'è NetworkBookmarks.

Naturalmente, i shortcuts sò creati per esse utilizati:

vitis open Цветоаномалия

Eseguisce u cumandamentu face chì u ligame appena salvatu sia apertu in u navigatore. I shortcuts categurizzati à e fonti Internet ponu serve cum'è un sustitutu per i marcati di u navigatore.

Frammenti di schedari

Hè ancu utile per avè categurie per pezzi individuali di schedari. Ùn hè micca una mala dumanda, eh? Ma l'implementazione attuale finu à avà afecta solu i fugliali di testu chjaru, i fugliali audio è video. Diciamu chì avete bisognu di marcà una certa parte di un cuncertu o un momentu divertente in un filmu, allora quandu si usa assignà pudete aduprà e bandiere -fragname, -start, -finish. Salvemu u screensaver da "DuckTales":

vitis assign vitis assign -c Заставки -f Duck_Tales/s01s01.avi --finish 00:00:59 --fragname "Duck Tales intro"

vitis open Заставки

In realtà, ùn ci hè micca un tagliu di fugliale; invece, hè creatu un schedariu di puntatore à u fragmentu, chì descrive u tipu di schedariu, u percorsu à u schedariu, u principiu è a fine di u frammentu. A creazione è l'apertura di punters à i frammenti hè delegata à l'utilità chì aghju fattu apposta per questi scopi - sò mediafragmenter è fragplayer. U primu crea, u sicondu apre. In u casu di registrazioni audio è video, u schedariu media hè lanciatu da una certa à una certa pusizioni cù u lettore VLC, cusì deve esse ancu in u sistema. À u principiu, vulia fà questu basatu nantu à mplayer, ma per qualchì mutivu era assai stortu cù u pusizzioni in u mumentu ghjustu.
In u nostru esempiu, u schedariu "Duck Tales intro.fragpointer" hè creatu (hè piazzatu in un locu speciale), è dopu un fragmentu hè ghjucatu da u principiu di u schedariu (poi chì -start ùn era micca specificatu quandu crea) finu à u 59. seconda marca, dopu à quale VLC chjude.

Un altru esempiu hè quandu avemu decisu di categurizà una sola performance in un cuncertu di un artista famosu:

vitis assign Лепс "Спасите наши души" -f Григорий Лепc - Концерт Парус - песни Владимира Высоцкого.mp4 --fragname "Спасите наши души" --start 00:32:18 --finish 00:36:51

vitis open "Спасите наши души"

Quandu hè apertu, u schedariu serà inclusu in a pusizione desiderata è chjude dopu quattru minuti è mezu.

Cumu funziona tuttu + funzioni supplementari

Custode categurie

À l'iniziu di pensà à l'urganizazione di un sistema di schedariu semanticu, vinni in mente trè manere: per u almacenamentu di ligami simbolichi, per una basa di dati, per una descrizzione in XML. U primu mètudu hà vintu, perchè ... da una banda, hè faciule d'implementazione, è da l'altra banda, l'utilizatore hà l'uppurtunità di vede categurie direttamente da u sistema di schedari (è questu hè cunvenutu è impurtante). À u principiu di usu vitis U cartulare "Vitis" è u schedariu di cunfigurazione ".config/vitis/vitis.conf" sò creati in u cartulare di casa di l'utilizatori. I direttori chì currispondenu à e categurie sò creati in ~/Vitis, è i ligami simbolichi à i fugliali originali sò creati in questi repertorii di categurie. L'aliasi di categurie sò ancu solu ligami per elli. Di sicuru, a prisenza di u cartulare "Vitis" in u cartulare di casa ùn pò micca cunvene à certi persone. Pudemu cambià à qualsiasi altru locu:

vitis service set path /mnt/MyFavoriteDisk/Vitis/

À un certu puntu, diventa chjaru chì ùn hè pocu sensu per categurizà i schedari spargugliati in diversi lochi, postu chì a so situazione pò cambià. Dunque, per principià, aghju creatu un repertoriu per mè stessu, induve aghju stupidu dumped tuttu è hà datu tutte e categurie. Allora aghju decisu chì saria bellu di formalizà stu mumentu à u livellu di u prugramma. Hè cusì chì u cuncettu di "spaziu di u schedariu" apparsu. À u principiu di usu vitis Ùn saria micca male à stallà immediatamente un tali locu (tutti i schedari chì avemu bisognu seranu guardati quì) è attivà l'autosave:

vitis service add filespace /mnt/MyFavoriteDisk/Filespace/

vitis service set autosave yes

Senza autosave, quandu si usa u sottucumandamentu "assign", a bandiera --save serà necessaria se vulete salvà u schedariu aghjuntu à u spaziu di u schedariu.

Inoltre, pudete aghjunghje parechji spazii di fugliale è cambià e so priorità; questu pò esse utile quandu ci sò assai schedari è sò almacenati in diversi media. Ùn cunsideraghju micca sta pussibilità quì; i dettagli ponu esse truvati in l'aiutu di u prugramma.

Migrazione di u Sistema di File Semanticu

In ogni casu, u repertoriu Vitis è i spazii di i schedari ponu in teoria volte move da un locu à un locu. Per fà u travagliu, aghju creatu una utilità separata link-editor, chì ponu edità in massa ligami, rimpiazzà parti di u percorsu cù altri:

cp -r /mnt/MyFavoriteDisk/Vitis/ ~/Vitis
link-editor -d ~/Vitis/ -f /mnt/MyFavoriteDisk/Vitis/ -r ~/Vitis/ -R
cp -r /mnt/MyFavoriteDisk/Filespace/ ~/MyFiles
link-editor -d ~/Vitis/ -f /mnt/FlashDrive-256/Filespace/ -r ~/MyFiles -R

In u primu casu, dopu avè passatu da /mnt/MyFavoriteDisk/Vitis/ à u cartulare di casa, i ligami simbolichi assuciati cù l'alias sò editati. In u sicondu casu, dopu avè cambiatu u locu di u spaziu di u schedariu, tutti i ligami in Vitis sò cambiati à novi in ​​cunfurmità cù a dumanda di rimpiazzà una parte di a so strada.

Categorie automatiche

Sè vo eseguite u cumandamentu vitis service get autocategorization, pudete vede chì per automaticamente, e categurie automatiche sò attribuite da u formatu (Format è Type) è l'estensione di l'archivi (Extension).

Questu hè utile quandu, per esempiu, avete bisognu di truvà qualcosa trà i PDF o fighjate ciò chì avete guardatu da EPUB è FB2, pudete simplificà a dumanda.

vitis show Format/MOBI u: Format/FB2

Hè accadutu chì l'arnesi standard GNU/Linux, cum'è u schedariu o mimetype, ùn mi cunvene micca precisamente perchè ùn anu micca sempre determinatu currettamente u formatu; aghju avutu a mo propria implementazione basata nantu à e firme è estensioni di file. In generale, u tema di definisce furmati di schedari hè un tema interessante per a ricerca è meriteghja un articulu separatu. Per avà possu dì chì forse ùn aghju micca furnitu un veru ricunniscenza per tutti i formati in u mondu, ma in generale hè digià travagliatu bè. True, EPUB avà definisce u furmatu cum'è ZIP (in generale, questu hè ghjustificatu, ma in pratica ùn deve esse cunsideratu cumportamentu normale). Per u mumentu, cunsiderà sta funzione sperimentale è signalate qualsiasi bug. In situazioni strane, pudete sempre aduprà categurie di estensione di file, per esempiu, Extension/epub.

Se l'autocategories per furmatu sò attivate, l'autocategories chì raggruppanu certi furmati per tipu sò ancu attivate: "Archivi", "Immagini", "Video", "Audio" è "Documenti". I nomi localizzati seranu ancu fatti per queste sottucategorie.

Chì ùn hè micca dettu

vitis Hè diventatu un strumentu assai multiforme, è hè difficiule di copre tuttu in una volta. Lasciami menzionare brevemente ciò chì pudete fà:

  • categurie ponu esse sguassati è sguassati da i schedari;
  • i risultati di e dumande d'espressione ponu esse copiati in u repertoriu specificatu;
  • i schedari ponu esse eseguiti cum'è prugrammi;
  • U cumandamentu di mostra hà parechje opzioni, per esempiu, l'ordine per nome / data di mudificazione o accessu / dimensione / estensione, chì mostra e proprietà di u schedariu è i percorsi à l'uriginali, chì permettenu a visualizazione di i schedarii nascosti, etc.;
  • Quandu salvate i ligami à e fonti Internet, pudete ancu salvà copie lucali di e pagine HTML.

Tutti i dettagli ponu esse truvati in l'aiutu di l'utilizatori.

Prospetti

I scettichi spessu dicenu chì "nimu ùn metterà sti tags stessu". Utilizendu u mo propiu esempiu, possu dimustrà u cuntrariu: aghju digià categurizatu più di sei mila schedarii, creatu più di mille categurie è alias, è vale a pena. Quandu una squadra vitis open План apre a vostra lista di cose da fà o quandu cù un cumandamentu vitis open LaTeX Quandu avete apertu u libru di Stolyarov nantu à u sistema di layout LaTeX, hè digià moralmente difficiule d'utilizà u sistema di schedari "a manera antica".

Nant'à sta basa, nascenu una quantità di idee. Per esempiu, pudete fà una radiu automatica chì accende a musica tematica secondu u tempu attuale, vacanze, ghjornu di a settimana, ora di ghjornu o annu. Ancu più vicinu à u tema hè un lettore di musica chì sapi di categurie è pò ghjucà musica per spressione cù operazioni nantu à categurie cum'è in set. Hè utile per fà un daemon chì monitorerà u cartulare "Downloads" è offre à categurizà novi schedari. È, sicuru, duvemu fà un gestore di file semanticu gràficu normale. Una volta, aghju ancu creatu un serviziu web per l'impresa per l'usu cullettivu di i schedari, ma ùn era micca una priorità è hè diventatu irrilevante, ancu s'ellu hà ottinutu un altu livellu di rendiment. (A causa di cambiamenti maiò in u vitis, ùn hè più utilizable.)

eccu un pocu demo

Categorie invece di cartulari, o u Sistema di File Semanticu per Linux

cunchiusioni

vitis Ùn hè micca u primu tentativu di cambià radicalmente u stilu di travaglià cù e dati, ma aghju cunsideratu impurtante per implementà e mo idee è rende l'implementazione publicamente dispunibule sottu a licenza GNU GPL. Per comodità, un pacchettu deb hè statu fattu per x86-64; duverebbe travaglià in tutte e distribuzioni Debian muderni. Ci sò stati difficultà minori nantu à ARM (mentre chì tutti l'altri prugrammi ligati à vitis, travaglià bè), ma in u futuru un pacchettu di travagliu serà compilatu per sta piattaforma (armhf). Aghju cessatu di creà pacchetti RPM per ora per via di prublemi nantu à Fedora 30 è a difficultà di sparghje in parechje distribuzioni RPM, ma i pacchetti più tardi seranu sempre fatti per almenu un paru di elli. Intantu pudete aduprà make && make install o checkinstall.

Grazie à tutti per a vostra attenzione! Spergu chì questu articulu è stu prughjettu pò esse utile.

Link à u repositoriu di u prugettu

Source: www.habr.com

Add a comment