{"id":35687,"date":"2019-10-31T22:05:46","date_gmt":"2019-10-31T19:05:46","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux\/"},"modified":"2019-10-31T22:05:46","modified_gmt":"2019-10-31T19:05:46","slug":"kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","title":{"rendered":"Categorii \u00een loc de directoare, sau Sistem de fi\u0219iere semantic pentru Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Clasificarea datelor este o tem\u0103 interesant\u0103 pentru cercetare. \u00cemi place s\u0103 colec\u021bionez informa\u021bii care par utile \u0219i am \u00eencercat mereu s\u0103 creez ierarhii logice de directoare pentru fi\u0219ierele mele. Odat\u0103 am visat o aplica\u021bie frumoas\u0103 \u0219i convenabil\u0103 pentru etichetarea fi\u0219ierelor \u0219i am decis c\u0103 nu pot continua s\u0103 tr\u0103iesc a\u0219a.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"problema-ierarhicheskih-faylovyh-sistem\">Problema sistemelor de fi\u0219iere ierarhice<\/h1>\n<p><\/p>\n<p>Utilizatorii se confrunt\u0103 adesea cu dilema alegerii locului de salvare pentru un nou fi\u0219ier \u0219i cu dificultatea de a g\u0103si propriile fi\u0219iere (uneori numele fi\u0219ierelor nu sunt concepute pentru a putea fi re\u021binute de c\u0103tre oameni).<\/p>\n<p><\/p>\n<p>O solu\u021bie pot fi sistemele de fi\u0219iere semantice, care sunt de obicei o extensie a sistemului de fi\u0219iere tradi\u021bional. Directorile din acestea sunt \u00eenlocuite cu atribute semantice, cunoscute \u0219i sub denumirea de etichete, categorii, metadate. Voi folosi mai des termenul \u201ecategorie\u201d, deoarece \u00een contextul sistemelor de fi\u0219iere cuv\u00e2ntul \u201eeticheta\u201d poate p\u0103rea uneori ciudat, mai ales c\u00e2nd apar \u201esubetichete\u201d \u0219i \u201epseudonimele etichetelor\u201d.<\/p>\n<p><\/p>\n<p>Atribuirea de categorii fi\u0219ierelor reduce considerabil problemele legate de locul de stocare \u0219i de c\u0103utarea fi\u0219ierelor: dac\u0103 \u00ee\u021bi aminte\u0219ti (sau intuie\u0219ti) m\u0103car una dintre categoriile atribuite fi\u0219ierului, acesta nu va mai disp\u0103rea niciodat\u0103 din vedere.<\/p>\n<p><\/p>\n<p>Aceast\u0103 tem\u0103 a fost abordat\u0103 anterior pe Habr (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/27581\/\">unu<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/337202\/\">doi<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/374465\/\">trei<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/81352\/\">patru<\/a><\/noindex> \u0219i altele), aici \u00eemi voi descrie solu\u021bia.<\/p>\n<p><\/p>\n<h1 id=\"put-k-realizacii\">Calea c\u0103tre implementare<\/h1>\n<p><\/p>\n<p>Imediat dup\u0103 visul men\u021bionat, am descris \u00eentr-un caiet o interfa\u021b\u0103 de linie de comand\u0103 care s\u0103 furnizeze func\u021bionalitatea necesar\u0103 gestion\u0103rii categoriilor. Atunci am decis c\u0103 \u00een termen de o s\u0103pt\u0103m\u00e2n\u0103-dou\u0103 pot scrie un prototip folosind Python sau Bash, iar apoi va trebui s\u0103 lucrez la crearea unei interfe\u021be grafice pe Qt sau GTK. Realitatea, ca de obicei, s-a dovedit a fi mult mai dur\u0103, iar dezvoltarea s-a prelungit.<\/p>\n<p><\/p>\n<p>Conceptul ini\u021bial a fost s\u0103 creez mai \u00eent\u00e2i o aplica\u021bie cu o interfa\u021b\u0103 de linie de comand\u0103 convenabil\u0103 \u0219i concis\u0103, care s\u0103 permit\u0103 crearea \u0219i \u0219tergerea categoriilor, atribuirea acestora fi\u0219ierelor \u0219i eliminarea lor din fi\u0219iere. Am numit aplica\u021bia <em>vitis<\/em>.<\/p>\n<p><\/p>\n<p>Prima \u00eencercare de a crea <em>vitis<\/em> s-a terminat f\u0103r\u0103 succes, deoarece o mul\u021bime de timp a \u00eenceput s\u0103 fie consumat\u0103 pentru munc\u0103 \u0219i studii. A doua \u00eencercare a fost deja ceva: am reu\u0219it s\u0103 finalizez proiectul g\u00e2ndit pentru diserta\u021bia de master \u0219i s\u0103 creez chiar \u0219i un prototip al interfe\u021bei GTK. Dar acea versiune s-a dovedit at\u00e2t de nesigur\u0103 \u0219i incomod\u0103, \u00eenc\u00e2t a trebuit s\u0103 reg\u00e2ndesc multe aspecte.<\/p>\n<p><\/p>\n<p>\u00cen a treia versiune, am \u00eenceput s\u0103 o folosesc efectiv pentru o perioad\u0103 \u00eendelungat\u0103, clasific\u00e2nd c\u00e2teva mii de fi\u0219iere \u00een categorii. Acest lucru a fost \u00een mare parte datorat implement\u0103rii complet\u0103rii automate \u00een bash. Dar unele probleme, cum ar fi lipsa automat\u0103 a categoriilor \u0219i posibilitatea de a stoca fi\u0219iere cu nume identice, au r\u0103mas, iar programul deja se \u00eenclina sub propria complexitate. A\u0219a am ajuns la necesitatea de a rezolva problemele dezvolt\u0103rii de software complex: s\u0103 scriu cerin\u021be detaliate, s\u0103 dezvolt un sistem de testare func\u021bional\u0103, s\u0103 studiezi instruc\u021biunile de pachetare \u0219i multe altele. Acum am ajuns la ceea ce mi-am propus, astfel c\u0103 aceast\u0103 modest\u0103 crea\u021bie poate fi prezentat\u0103 comunit\u0103\u021bii libere. O gestionare at\u00e2t de specific\u0103 a fi\u0219ierelor, cum este cea prin conceptul de categorii, ridic\u0103 \u00eentreb\u0103ri \u0219i probleme nea\u0219teptate, iar \u00een rezolvarea lor <em>vitis<\/em> a generat \u00een jurul s\u0103u \u00eenc\u0103 cinci proiecte, unele dintre acestea fiind men\u021bionate \u00een articol. P\u00e2n\u0103 ast\u0103zi <em>vitis<\/em> nu am ob\u021binut o interfa\u021b\u0103 grafic\u0103, dar comoditatea utiliz\u0103rii categoriilor de fi\u0219iere din linia de comand\u0103 dep\u0103\u0219e\u0219te pentru mine orice avantaje ale unui manager de fi\u0219iere grafic obisnuit.<\/p>\n<p><\/p>\n<h1 id=\"primery-ispolzovaniya\">Exemple de utilizare<\/h1>\n<p><\/p>\n<p>S\u0103 \u00eencepem cu ceva simplu - s\u0103 cre\u0103m o categorie:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis create Muzic\u0103<\/code><\/pre>\n<p><\/p>\n<p>S\u0103 ad\u0103ug\u0103m pentru exemplu o compozi\u021bie:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Muzic\u0103 -f \"The Ink Spots - I Don't Want To Set The World On Fire.mp3\"<\/code><\/pre>\n<p><\/p>\n<p>Putem vizualiza con\u021binutul categoriei \u201eMuzic\u0103\u201d cu subcomanda \u201eshow\u201d:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Muzic\u0103<\/code><\/pre>\n<p><\/p>\n<p>O putem reda folosind subcomanda \u201eopen\u201d<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Muzic\u0103<\/code><\/pre>\n<p><\/p>\n<p>Deoarece avem \u00een categoria \u201eMuzic\u0103\u201d doar un singur fi\u0219ier, acesta va fi lansat. Pentru a deschide fi\u0219ierele cu programele implicite, am creat un utilitar separat <em>vts-fs-open<\/em> (instrumentele standard precum xdg-open sau mimeopen nu m-au mul\u021bumit din mai multe motive; \u00eens\u0103, dac\u0103 este nevoie, \u00een set\u0103ri po\u021bi specifica o alt\u0103 unealt\u0103 pentru deschiderea universal\u0103 a fi\u0219ierelor). Aceast\u0103 unealt\u0103 func\u021bioneaz\u0103 bine pe diferite distribu\u021bii cu medii de lucru diferite, a\u0219a c\u0103 recomand s\u0103 instalezi \u0219i aceasta \u00eempreun\u0103 cu vitis.<\/p>\n<p><\/p>\n<p>De asemenea, po\u021bi specifica direct programul pentru deschiderea fi\u0219ierelor:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Muzic\u0103 --app qmmp<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Categorii \u00een loc de directoare, sau Sistem de fi\u0219iere semantic pentru Linux\" src=\"\/wp-content\/uploads\/2019\/06\/4823ff69e03b2e8b9986eedfe0604a9d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>S\u0103 cre\u0103m \u00eenc\u0103 categorii \u0219i s\u0103 ad\u0103ug\u0103m fi\u0219iere folosind \u201eassign\u201d. Dac\u0103 fi\u0219ierele sunt atribuite unor categorii inexistent, se va solicita crearea acestora. O solicitare suplimentar\u0103 poate fi evitat\u0103 folosind flagul \u2014yes.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Programare R -f \"Introducere \u00een R.pdf\" \"Pachet statistic R: teoria probabilit\u0103\u021bilor \u0219i matstatistica.pdf\" --yes<\/code><\/pre>\n<p><\/p>\n<p>Acum dorim s\u0103 ad\u0103ug\u0103m fi\u0219ierului \u201ePachet statistic R: teoria probabilit\u0103\u021bilor \u0219i statistica matematic\u0103.pdf\u201d categoria \u201eMatematic\u0103\u201d. \u0218tim c\u0103 acest fi\u0219ier are deja categoria \u201eR\u201d \u0219i prin urmare putem folosi calea categoric\u0103 din sistemul Vitis:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Matematic\u0103 -v \"R\/Pachet statistic R: teoria probabilit\u0103\u021bilor \u0219i matstatistica.pdf\"<\/code><\/pre>\n<p><\/p>\n<p>Din fericire, completarea automat\u0103 bash va permite s\u0103 facem acest lucru cu u\u0219urin\u021b\u0103.<\/p>\n<p><\/p>\n<p>S\u0103 vedem ce a rezultat, folosind flagul \u2014categories, pentru a vedea lista categoriilor pentru fiecare fi\u0219ier:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show R --categories<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Categorii \u00een loc de directoare, sau Sistem de fi\u0219iere semantic pentru Linux\" src=\"\/wp-content\/uploads\/2019\/06\/7bbaf561e6efe407ec8dfcda3a89c3b8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Observa\u021bi c\u0103 fi\u0219ierelor le-au fost atribuite \u0219i categorii automate \u00een func\u021bie de format, tip (care une\u0219te formate) \u0219i extensie. Aceste categorii pot fi dezactivate, dac\u0103 se dore\u0219te. \u00cen cur\u00e2nd voi face o localizare a denumirilor lor.<\/p>\n<p><\/p>\n<p>S\u0103 ad\u0103ug\u0103m pentru diversitate ceva \u00een \u201eMatematic\u0103\u201d:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Matematic\u0103 -f \"Analiz\u0103 matematic\u0103 - 1984.pdf\" Perelman_Distrac\u021bie_matematic\u0103_1927.djvu <\/code><\/pre>\n<p><\/p>\n<p>\u0218i acum devine interesant. \u00cen locul categoriilor, putem scrie expresii care implic\u0103 opera\u021biuni de unire, intersec\u021bie \u0219i diferen\u021biere, adic\u0103 putem folosi opera\u021bii asupra mul\u021bimilor. De exemplu, intersec\u021bia \u201eMatematic\u0103\u201d cu \u201eR\u201d va produce un singur fi\u0219ier.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show R i: Matematic\u0103<\/code><\/pre>\n<p><\/p>\n<p>S\u0103 sc\u0103dem din \u201eMatematic\u0103\u201d men\u021bion\u0103rile limbajului \u201eR\u201d:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Matematic\u0103 R  #sau vitis show Matematic\u0103 c: R<\/code><\/pre>\n<p><\/p>\n<p>Putem unifica f\u0103r\u0103 scop muzica \u0219i limbajul R:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Muzic\u0103 u: R<\/code><\/pre>\n<p><\/p>\n<p>Flagul -n permite \u201eextrac\u021bia\u201d din rezultatul interog\u0103rii a fi\u0219ierelor dorite dup\u0103 numere \u0219i\/sau intervale, de exemplu, <code>-n 3-7<\/code>, sau ceva mai complex: <code>-n 1,5,8-10,13<\/code>. Este adesea util cu subcomanda open, care permite deschiderea fi\u0219ierelor dorite din list\u0103.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Categorii \u00een loc de directoare, sau Sistem de fi\u0219iere semantic pentru Linux\" src=\"\/wp-content\/uploads\/2019\/06\/5e9181a711a88368b38d8cd2f2e628f4.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>De\u0219i ne \u00eendep\u0103rt\u0103m de utilizarea ierarhiei obi\u0219nuite a directorilor, este adesea util s\u0103 avem categorii \u00eenv\u0103luite. S\u0103 cre\u0103m subcategoria \u201eStatistic\u0103\u201d \u00een categoria \u201eMatematic\u0103\u201d \u0219i s\u0103 ad\u0103ug\u0103m aceast\u0103 categorie fi\u0219ierului corespunz\u0103tor:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis create Matematic\u0103\/Statistic\u0103\n\nvitis assign Matematic\u0103\/Statistic\u0103 -v \"R\/Introducere \u00een R.pdf\"\n\nvitis show Matematic\u0103 --categories<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Categorii \u00een loc de directoare, sau Sistem de fi\u0219iere semantic pentru Linux\" src=\"\/wp-content\/uploads\/2019\/06\/0bb3381f35cfa2fce381ecc66a62701f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Putem observa c\u0103 acest fi\u0219ier are acum categoria \u201eMatematic\u0103\/Statistic\u0103\u201d \u00een loc de \u201eMatematic\u0103\u201d (linkurile suplimentare sunt urm\u0103rite).<\/p>\n<p><\/p>\n<p>A apela la calea complet\u0103 poate fi inconvenient, a\u0219a c\u0103 vom crea un pseudonim \u201eglobal\u201d:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Matematic\u0103\/Statistic\u0103 -a Statistic\u0103\n\nvitis show Statistic\u0103<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Categorii \u00een loc de directoare, sau Sistem de fi\u0219iere semantic pentru Linux\" src=\"\/wp-content\/uploads\/2019\/06\/619c27802802fd93594d3c0050dd78e8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"ne-tolko-obychnye-fayly\">Nu doar fi\u0219iere obi\u0219nuite<\/h2>\n<p><\/p>\n<h3 id=\"internet-ssylki\">Linkuri de internet<\/h3>\n<p><\/p>\n<p>Pentru a uniformiza stocarea oric\u0103rei informa\u021bii, ar fi util, cel pu\u021bin, s\u0103 categorisim linkurile c\u0103tre resursele de internet. \u0218i acest lucru este posibil:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Habr Anomalie de Culoare -i https:\/\/habr.com\/ro\/company\/sfe_ro\/blog\/437304\/ --yes<\/code><\/pre>\n<p><\/p>\n<p>\u00centr-un loc special va fi creat un fi\u0219ier cu titlul paginii HTML \u0219i cu extensia .desktop. Acesta este formatul tradi\u021bional pentru un shortcut \u00een GNU\/Linux. Aceste shortcuturi primesc automat categoria NetworkBookmarks.<\/p>\n<p><\/p>\n<p>Este evident c\u0103 shortcuturile sunt create pentru a fi folosite:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Anomalie de Culoare<\/code><\/pre>\n<p><\/p>\n<p>Executarea comenzii duce la deschiderea \u00een browser a linkului salvat recent. Shortcuturile categorisite pentru surse de internet pot \u00eenlocui marcajele din browser.<\/p>\n<p><\/p>\n<h3 id=\"fragmenty-faylov\">Fragmente de fi\u0219iere<\/h3>\n<p><\/p>\n<p>De asemenea, este util s\u0103 ai categorii pentru fragmentele de fi\u0219iere separate. O propunere bun\u0103, nu? Dar actuala implementare se refer\u0103 doar la fi\u0219ierele text obi\u0219nuite, audio \u0219i video. De exemplu, trebuie s\u0103 marchezi un anumit moment dintr-un concert sau o scen\u0103 amuzant\u0103 dintr-un film, atunci c\u00e2nd folose\u0219ti assign po\u021bi utiliza flagurile \u2014fragname, \u2014start, \u2014finish. S\u0103 salv\u0103m intro-ul din \u201ePovestirile ra\u021belor\u201d:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign vitis assign -c Intro-uri -f Duck_Tales\/s01s01.avi --finish 00:00:59 --fragname \"Intro Duck Tales\"\n\nvitis open Intro-uri<\/code><\/pre>\n<p><\/p>\n<p>De fapt, nu se face nicio t\u0103iere a fi\u0219ierelor, \u00een locul acestuia se creeaz\u0103 un fi\u0219ier-\u021bint\u0103 pentru fragment, care descrie tipul de fi\u0219ier, calea c\u0103tre fi\u0219ier, \u00eenceputul \u0219i sf\u00e2r\u0219itul fragmentului. Crearea \u0219i deschiderea \u021bintelor pentru fragmente este delegat\u0103 utilitarelor, realizate de mine special pentru aceste scopuri \u2014 mediafragmenter \u0219i fragplayer. Primul creeaz\u0103, iar al doilea deschide. \u00cen cazul fi\u0219ierelor audio \u0219i video, redarea fi\u0219ierului media de la o anumit\u0103 pozi\u021bie p\u00e2n\u0103 la o alt\u0103 pozi\u021bie se face cu ajutorul player-ului VLC, a\u0219a c\u0103 acesta trebuie s\u0103 fie \u0219i \u00een sistem. La \u00eenceput am vrut s\u0103 fac acest lucru pe baza lui mplayer, dar acolo, din motive necunoscute, pozi\u021bionarea \u00een punctul necesar era foarte instabil\u0103.<br \/>\n\u00cen exemplul nostru se creeaz\u0103 un fi\u0219ier \u201eDuck Tales intro.fragpointer\u201d (care este plasat \u00eentr-un anumit loc), apoi se red\u0103 fragmentul de la \u00eenceputul fi\u0219ierului (deoarece \u2014start nu a fost specificat la creare) p\u00e2n\u0103 la un marcaj de 59 de secunde, dup\u0103 care VLC se \u00eenchide.<\/p>\n<p><\/p>\n<p>Un alt exemplu \u2014 am decis s\u0103 categorisim o anumit\u0103 interpretare la un concert al unui artist cunoscut:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Lep\u0441 \"Salva\u021bi-ne sufletele\" -f Grigori Lep\u0441 - Concert P\u0103curi - piesele lui Vladimir Vysotski.mp4 --fragname \"Salva\u021bi-ne sufletele\" --start 00:32:18 --finish 00:36:51\n\nvitis open \"Salva\u021bi-ne sufletele\"<\/code><\/pre>\n<p><\/p>\n<p>La deschidere, fi\u0219ierul va fi inclus la pozi\u021bia dorit\u0103 \u0219i se va \u00eenchide dup\u0103 patru minute \u0219i jum\u0103tate.<\/p>\n<p><\/p>\n<h1 id=\"kak-eto-vsyo-rabotaet--dopolnitelnye-vozmozhnosti\">Cum func\u021bioneaz\u0103 totul + func\u021bionalit\u0103\u021bi suplimentare<\/h1>\n<p><\/p>\n<h2 id=\"hranenie-kategoriy\">Stocarea categoriilor<\/h2>\n<p><\/p>\n<p>La \u00eenceputul g\u00e2ndirii asupra organiz\u0103rii unui sistem de fi\u0219iere semantice, mi-au venit \u00een minte trei metode: prin stocarea link-urilor simbolice, printr-o baz\u0103 de date, prin descrierea \u00een XML. Prima metod\u0103 a c\u00e2\u0219tigat, deoarece, pe de o parte, este simpl\u0103 de implementat, iar pe de alt\u0103 parte, utilizatorul are posibilitatea de a vizualiza categoriile direct din sistemul de fi\u0219iere (ceea ce este convenabil \u0219i important). La \u00eenceputul utiliz\u0103rii <em>vitis<\/em> \u00cen directorul de acas\u0103 al utilizatorului se creeaz\u0103 un director \u201eVitis\u201d \u0219i un fi\u0219ier de configurare \u201e.config\/vitis\/vitis.conf\u201d. \u00cen ~\/Vitis se creeaz\u0103 directoare corespunz\u0103toare categoriilor, iar \u00een aceste directoare-categorii se creeaz\u0103 linkuri simbolice c\u0103tre fi\u0219ierele originale. Pseudonimele categoriilor sunt de asemenea doar linkuri c\u0103tre acestea. Desigur, prezen\u021ba directorului \u201eVitis\u201d \u00een directorul de acas\u0103 poate deranja pe cineva. Putem schimba locul \u00een care dorim:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis service set path \/mnt\/MyFavoriteDisk\/Vitis\/<\/code><\/pre>\n<p><\/p>\n<p>La un moment dat devine clar c\u0103 fi\u0219ierele dispersate \u00een diferite locuri sunt greu de categorisit, deoarece loca\u021bia lor se poate schimba. A\u0219a c\u0103, pentru \u00eenceput, mi-am creat un director \u00een care am aruncat totul \u0219i i-am dat toate categoriile. Apoi am decis c\u0103 ar fi bine s\u0103 organizez acest proces la nivel de programare. A\u0219a a ap\u0103rut conceptul de \u201espa\u021biu de fi\u0219iere\u201d. La \u00eenceputul utiliz\u0103rii. <em>vitis<\/em> imediat ar fi util s\u0103 configur\u0103m un astfel de loc (acolo vor fi stocate toate fi\u0219ierele de care avem nevoie) \u0219i s\u0103 activ\u0103m salvarea automat\u0103:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis service add filespace \/mnt\/MyFavoriteDisk\/Filespace\/\nvitis service set autosave yes<\/code><\/pre>\n<p><\/p>\n<p>F\u0103r\u0103 salvare automat\u0103, c\u00e2nd se folose\u0219te subcomanda &#171;assign&#187;, va fi necesar\u0103 op\u021biunea &#8212;save, dac\u0103 se dore\u0219te salvarea fi\u0219ierului ad\u0103ugat \u00een spa\u021biul de fi\u0219iere.<\/p>\n<p><\/p>\n<p>Mai mult dec\u00e2t at\u00e2t, putem ad\u0103uga mai multe spa\u021bii de fi\u0219iere \u0219i schimba priorit\u0103\u021bile acestora, ceea ce poate fi util atunci c\u00e2nd sunt foarte multe fi\u0219iere \u0219i acestea sunt stocate pe suporturi diferite. Aici nu voi analiza aceast\u0103 op\u021biune, detalii pot fi citite \u00een ajutorul programului.<\/p>\n<p><\/p>\n<h2 id=\"migraciya-semanticheskoy-faylovoy-sistemy\">Migrarea sistemului de fi\u0219iere semantice<\/h2>\n<p><\/p>\n<p>A\u0219a sau altfel, directorul Vitis \u0219i spa\u021biile de fi\u0219iere pot teoretic s\u0103 se mute din loc \u00een loc. Pentru a le face func\u021bionale, am creat un utilitar separat <em>link-editor<\/em>, care poate edita \u00een mas\u0103 linkuri, \u00eenlocuind p\u0103r\u021bi ale c\u0103ii cu altele:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">cp -r \/mnt\/MyFavoriteDisk\/Vitis\/ ~\/Vitis\nlink-editor -d ~\/Vitis\/ -f \/mnt\/MyFavoriteDisk\/Vitis\/ -r ~\/Vitis\/ -R\ncp -r \/mnt\/MyFavoriteDisk\/Filespace\/ ~\/MyFiles\nlink-editor -d ~\/Vitis\/ -f \/mnt\/FlashDrive-256\/Filespace\/ -r ~\/MyFiles -R<\/code><\/pre>\n<p><\/p>\n<p>\u00cen primul caz, dup\u0103 ce ne-am mutat din \/mnt\/MyFavoriteDisk\/Vitis\/ \u00een directorul personal, se editeaz\u0103 leg\u0103turile simbolice asociate cu aliasurile. \u00cen al doilea caz, dup\u0103 ce se schimb\u0103 amplasarea spa\u021biului de fi\u0219iere, toate linkurile din Vitis se schimb\u0103 conform cererii de \u00eenlocuire a p\u0103r\u021bii c\u0103ii lor.<\/p>\n<p><\/p>\n<h2 id=\"avtomaticheskie-kategorii\">Categorii automate<\/h2>\n<p><\/p>\n<p>Dac\u0103 rul\u0103m comanda <code>vitis service get autocategorization<\/code>, putem vedea c\u0103, \u00een mod implicit, categorii automate sunt configurate \u00een func\u021bie de format (Format \u0219i Type) \u0219i extensia fi\u0219ierelor (Extension).<\/p>\n<p><\/p>\n<p>Este util, de exemplu, c\u00e2nd trebuie s\u0103 g\u0103sim ceva printre PDF-uri sau s\u0103 vedem ce avem stocat din EPUB \u0219i FB2, putem executa pur \u0219i simplu cererea<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Format\/MOBI u: Format\/FB2<\/code><\/pre>\n<p><\/p>\n<p>S-a \u00eent\u00e2mplat astfel \u00eenc\u00e2t instrumentele standard GNU\/Linux, cum ar fi file sau mimetype, nu m-au mul\u021bumit din cauza c\u0103 nu determin\u0103 \u00eentotdeauna corect formatul; a trebuit s\u0103 creez propriul algoritm bazat pe semn\u0103turile fi\u0219ierelor \u0219i extensiile acestora. \u00cen general, subiectul determin\u0103rii formatelor fi\u0219ierelor este interesant pentru cercetare \u0219i merit\u0103 un articol separat. Deocamdat\u0103, pot spune c\u0103, de\u0219i nu am prev\u0103zut recunoa\u0219terea corect\u0103 pentru toate formatele din lume, totu\u0219i, \u00een general, func\u021bioneaz\u0103 deja destul de bine. Totu\u0219i, pentru EPUB, formatul este determinat ca ZIP (ceea ce este justificat, dar pe teren nu ar trebui considerat un comportament normal). P\u00e2n\u0103 la unele timpuri, considera\u021bi aceast\u0103 posibilitate ca fiind experimental\u0103; raporta\u021bi bug-urile. \u00cen situa\u021bii neobi\u0219nuite, se pot utiliza categorii bazate pe extensiile fi\u0219ierelor, de exemplu, Extension\/epub.<\/p>\n<p><\/p>\n<p>Dac\u0103 sunt activate autocatogoriile pe format, de asemenea vor fi activate autocatogoriile care grupeaz\u0103 anumite formate de tip: &#171;Archives&#187;, &#171;Pictures&#187;, &#171;Video&#187;, &#171;Audio&#187; \u0219i &#171;Documents&#187;. Pentru aceste subcategorii vor fi, de asemenea, create denumiri localizate.<\/p>\n<p><\/p>\n<h1 id=\"o-chyom-ne-skazano\">Despre ce nu s-a spus<\/h1>\n<p><\/p>\n<p><em>vitis<\/em> s-a dovedit a fi un instrument foarte complex \u0219i este dificil de acoperit totul dintr-o dat\u0103. Voi men\u021biona pe scurt ce altceva se mai poate face:<\/p>\n<p><\/p>\n<ul>\n<li>categoriile pot fi \u0219terse \u0219i \u00eendep\u0103rtate de la fi\u0219iere;<\/li>\n<li>rezultatele cererilor pe expresii pot fi copiate \u00eentr-un director specificat;<\/li>\n<li>fi\u0219ierele pot fi lansate ca programe;<\/li>\n<li>comanda show are numeroase op\u021biuni, cum ar fi sortarea dup\u0103 nume\/data modificarilor sau acces\/size\/extensie, afi\u0219area propriet\u0103\u021bilor fi\u0219ierelor \u0219i a c\u0103ilor c\u0103tre originalele acestora, inclusiv afi\u0219area fi\u0219ierelor ascunse etc.;<\/li>\n<li>la salvarea link-urilor c\u0103tre surse de internet, se pot salva \u0219i copii locale ale paginilor HTML.<\/li>\n<\/ul>\n<p><\/p>\n<p>Toate detaliile pot fi g\u0103site \u00een documenta\u021bia pentru utilizatori.<\/p>\n<p><\/p>\n<h1 id=\"perspektivy\">Perspective<\/h1>\n<p><\/p>\n<p>Adesea, scepticii spun c\u0103 &#171;nimeni nu va marca ace\u0219ti tag-uri&#187;. Din experien\u021ba mea, pot demonstra contrariul: am categorisit deja peste \u0219ase mii de fi\u0219iere, am creat peste o mie de categorii \u0219i pseudonime, \u0219i a meritat. C\u00e2nd, cu o echip\u0103, <code>vitis open Plan<\/code> deschizi lista task-urilor tale sau c\u00e2nd cu o singur\u0103 comand\u0103 <code>vitis open LaTeX<\/code> deschizi cartea lui Stolyarov despre sistemul de tip\u0103rire LaTeX, devine moral greu s\u0103 folose\u0219ti sistemul de fi\u0219iere &#171;pe vechi&#187;.<\/p>\n<p><\/p>\n<p>Pe aceast\u0103 tem\u0103 apar o serie de idei. De exemplu, s-ar putea face un radio automat care s\u0103 porneasc\u0103 muzic\u0103 tematic\u0103 conform vremii actuale, s\u0103rb\u0103torilor, zilei din s\u0103pt\u0103m\u00e2n\u0103, orei sau anului. De asemenea, apropiat de tem\u0103 este un player muzical care \u0219tie despre categorii \u0219i poate reda muzica \u00een func\u021bie de expresia cu opera\u021bii asupra categoriilor, ca asupra mul\u021bimilor. Ar fi util s\u0103 se fac\u0103 un demon care s\u0103 monitorizeze catalogul &#171;Downloads&#187; \u0219i s\u0103 ofere categorisirea noilor fi\u0219iere. \u0218i, desigur, ar trebui s\u0103 se realizeze un manager de fi\u0219iere semantice grafice normal. C\u00e2ndva am realizat pentru o companie un serviciu web pentru partajarea fi\u0219ierelor, dar nu a fost o prioritate \u0219i a devenit irelevant, de\u0219i a atins un nivel ridicat de func\u021bionalitate. (\u00cen leg\u0103tur\u0103 cu schimb\u0103rile mari \u00een sine. <em>vitis<\/em>, nu mai este potrivit pentru utilizare.)<\/p>\n<p>\n<b class=\"spoiler_title\">aici este o mic\u0103 demonstra\u021bie<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Categorii \u00een loc de directoare, sau Sistem de fi\u0219iere semantic pentru Linux\" src=\"\/wp-content\/uploads\/2019\/06\/0a8e3829424135a6bf9390d2b2654499.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Concluzie<\/h1>\n<p><\/p>\n<p><em>Vitis<\/em> \u2014 nu este prima \u00eencercare de a schimba radical stilul de lucru cu datele, dar am considerat important s\u0103-mi implementez ideile \u0219i s\u0103 public realizarea \u00een acces deschis sub licen\u021ba GNU GPL. Pentru comoditate, a fost realizat un pachet deb pentru x86-64, care ar trebui s\u0103 func\u021bioneze pe toate distribu\u021biile moderne Debian. Pe ARM au ap\u0103rut unele dificult\u0103\u021bi (de\u0219i toate celelalte programe asociate cu <em>vitis<\/em>, func\u021bioneaz\u0103 normal), dar \u00een continuare va fi compilat un pachet func\u021bional \u0219i pentru aceast\u0103 platform\u0103 (armhf). Am oprit temporar crearea pachetelor RPM din cauza problemelor cu Fedora 30 \u0219i a complexit\u0103\u021bii dispers\u0103rii pe multe distribu\u021bii RPM, dar mai t\u00e2rziu totu\u0219i se vor face pachete pentru c\u00e2teva dintre ele. \u00centre timp, se pot utiliza <code>make &amp;&amp; make install<\/code> sau <code>checkinstall<\/code>.<\/p>\n<p><\/p>\n<p>V\u0103 mul\u021bumesc tuturor pentru aten\u021bie! Sper c\u0103 acest articol \u0219i acest proiect vor putea fi utile.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/tech.vindex\/vitis\">Link c\u0103tre depozitul proiectului<\/a><\/noindex><\/p>\n<p>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/457328\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439. \u042f \u043b\u044e\u0431\u043b\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043a\u0430\u0436\u0443\u0449\u0443\u044e\u0441\u044f \u043d\u0443\u0436\u043d\u043e\u0439, \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u0432\u043e \u0441\u043d\u0435 \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u043a\u0440\u0430\u0441\u0438\u0432\u0443\u044e \u0438 \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u044d\u0433\u043e\u0432 \u0444\u0430\u0439\u043b\u0430\u043c, \u0438 \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u0430\u043a \u0436\u0438\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0447\u0430\u0441\u0442\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26733,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35687","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439, \u0438\u043b\u0438 \u0421\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f Linux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:05:46+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:05:46+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Categorii \u00een loc de directoare, sau un sistem de fi\u0219iere semantice pentru Linux | ProHoster","description":"Clasificarea datelor este o tem\u0103 interesant\u0103 de studiu.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439, \u0438\u043b\u0438 \u0421\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f Linux | ProHoster","og:description":"\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:05:46+00:00","article:modified_time":"2019-10-31T19:05:46+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35687","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 00:23:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:57:46","updated":"2026-01-22 00:23:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/35687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=35687"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/35687\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/26733"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=35687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=35687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=35687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}