{"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\/de\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","title":{"rendered":"Kategorien statt Verzeichnisse, oder das semantische Dateisystem f\u00fcr Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Die Klassifikation von Daten ist an sich ein interessantes Thema f\u00fcr Forschungsarbeiten. Ich liebe es, Informationen zu sammeln, die n\u00fctzlich erscheinen, und habe immer versucht, logische Hierarchien f\u00fcr meine Dateien zu erstellen. Eines Nachts hatte ich einen Traum von einem sch\u00f6nen und praktischen Programm zur Kennzeichnung von Dateien mit Tags und beschloss, dass es so nicht weitergehen kann.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"problema-ierarhicheskih-faylovyh-sistem\">Das Problem hierarchischer Dateisysteme<\/h1>\n<p><\/p>\n<p>Nutzer stehen oft vor der Herausforderung, einen geeigneten Speicherort f\u00fcr eine neue Datei auszuw\u00e4hlen, sowie der Schwierigkeit, ihre eigenen Dateien zu finden (manchmal sind die Dateinamen \u00fcberhaupt nicht dazu gedacht, von einer Person erinnert zu werden).<\/p>\n<p><\/p>\n<p>Eine m\u00f6gliche L\u00f6sung sind semantische Dateisysteme, die in der Regel als Erweiterung des traditionellen Dateisystems fungieren. Verzeichnisse werden hier durch semantische Attribute ersetzt, die auch als Tags, Kategorien oder Metadaten bezeichnet werden. Ich werde h\u00e4ufiger den Begriff \u201eKategorie\u201c verwenden, da das Wort \u201eTag\u201c im Kontext von Dateisystemen manchmal seltsam klingt, insbesondere wenn \u201eUntertags\u201c und \u201eAliasnamen f\u00fcr Tags\u201c auftauchen.<\/p>\n<p><\/p>\n<p>Das Zuordnen von Kategorien zu Dateien befreit in hohem Ma\u00dfe von den Problemen der Ablage und der Dateisuche: Wenn man sich (oder ahnt) nur an eine der zugewiesenen Kategorien einer Datei erinnert, wird die Datei nie aus den Augen geraten.<\/p>\n<p><\/p>\n<p>Diese Thematik wurde zuvor mehrfach auf Habr\u00e9 behandelt (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/27581\/\">eins<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/337202\/\">zwei<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/374465\/\">drei<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/81352\/\">vier<\/a><\/noindex> usw.), hier beschreibe ich meine L\u00f6sung.<\/p>\n<p><\/p>\n<h1 id=\"put-k-realizacii\">Der Weg zur Umsetzung<\/h1>\n<p><\/p>\n<p>Unmittelbar nach dem erw\u00e4hnten Traum skizzierte ich in einem Notizbuch ein kommandozeilenbasiertes Interface, das die notwendigen Arbeiten mit Kategorien erm\u00f6glicht. Damals dachte ich, dass ich innerhalb von ein oder zwei Wochen einen Prototyp in Python oder Bash schreiben k\u00f6nnte, und danach m\u00fcsste ich an der Entwicklung einer grafischen Benutzeroberfl\u00e4che mit Qt oder GTK arbeiten. Die Realit\u00e4t stellte sich, wie immer, als viel h\u00e4rter heraus, und die Entwicklung zog sich.<\/p>\n<p><\/p>\n<p>Die urspr\u00fcngliche Idee war, ein Programm mit einer benutzerfreundlichen und pr\u00e4gnanten Befehlszeilenschnittstelle zu erstellen, das Kategorien erstellen, l\u00f6schen, Kategorien Dateien zuweisen und Kategorien von Dateien entfernen kann. Ich nannte das Programm <em>vitis<\/em>.<\/p>\n<p><\/p>\n<p>Der erste Versuch, es zu erstellen <em>vitis<\/em> es endete ohne Ergebnis, da viel Zeit f\u00fcr Arbeit und das Institut aufgebracht wurde. Der zweite Versuch war bereits etwas: Es gelang, das geplante Projekt zur Masterarbeit abzuschlie\u00dfen und sogar einen Prototyp einer GTK-Oberfl\u00e4che zu erstellen. Doch diese Version erwies sich als so unzuverl\u00e4ssig und unhandlich, dass ich vieles neu \u00fcberdenken musste.<\/p>\n<p><\/p>\n<p>Die dritte Version habe ich selbst lange genutzt und dabei mehrere tausend meiner Dateien in Kategorien umgewandelt. Dies wurde unter anderem durch die implementierte Bash-Autovervollst\u00e4ndigung erheblich erleichtert. Einige Probleme, wie das Fehlen automatischer Kategorien und die M\u00f6glichkeit, Dateien mit demselben Namen zu speichern, blieben jedoch bestehen, und das Programm k\u00e4mpfte bereits mit seiner eigenen Komplexit\u00e4t. So kam ich zu der Notwendigkeit, die Probleme der Entwicklung komplexer Software zu l\u00f6sen: Detaillierte Anforderungen zu formulieren, ein System f\u00fcr funktionale Tests zu entwickeln, Anleitungen zur Verpackung zu studieren und vieles mehr. Jetzt habe ich das Ziel erreicht, sodass dieses bescheidene Werk der Community zur Verf\u00fcgung gestellt werden kann. Eine so spezifische Dateiverwaltung wie die Verwaltung \u00fcber das Konzept von Kategorien ber\u00fchrt unerwartete Fragen und Probleme, und deren L\u00f6sung hat um mich herum f\u00fcnf weitere Projekte hervorgebracht, von denen einige im Artikel erw\u00e4hnt werden. <em>vitis<\/em> Bis heute <em>vitis<\/em> habe ich keine grafische Oberfl\u00e4che erworben, aber der Komfort der Nutzung von Dateikategorien \u00fcber die Kommandozeile \u00fcberwiegt f\u00fcr mich bereits alle Vorteile eines herk\u00f6mmlichen grafischen Dateimanagers.<\/p>\n<p><\/p>\n<h1 id=\"primery-ispolzovaniya\">Beispiele zur Verwendung<\/h1>\n<p><\/p>\n<p>Lass uns einfach anfangen \u2014 erstellen wir eine Kategorie:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis create Musik<\/code><\/pre>\n<p><\/p>\n<p>F\u00fcgen wir zum Beispiel ein St\u00fcck hinzu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Musik -f \"The Ink Spots - I Don't Want To Set The World On Fire.mp3\"<\/code><\/pre>\n<p><\/p>\n<p>Den Inhalt der Kategorie \u201eMusik\u201c kann man mit dem Unterbefehl \u201eshow\u201c anzeigen:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Musik<\/code><\/pre>\n<p><\/p>\n<p>Man kann sie mit dem Unterbefehl \u201eopen\u201c abspielen.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Musik<\/code><\/pre>\n<p><\/p>\n<p>Da wir in der Kategorie \u201eMusik\u201c nur eine Datei haben, wird nur sie gestartet. F\u00fcr das \u00d6ffnen von Dateien mit Standardprogrammen habe ich ein separates Dienstprogramm erstellt. <em>vts-fs-open<\/em> (Standardtools wie xdg-open oder mimeopen waren aus verschiedenen Gr\u00fcnden f\u00fcr mich nicht akzeptabel; aber wenn n\u00f6tig, k\u00f6nnen Sie in den Einstellungen ein anderes Dienstprogramm f\u00fcr das universelle \u00d6ffnen von Dateien angeben). Dieses Dienstprogramm funktioniert gut auf verschiedenen Distributionen mit unterschiedlichen Desktop-Umgebungen, daher empfehle ich, zusammen mit vitis auch dieses zu installieren.<\/p>\n<p><\/p>\n<p>Sie k\u00f6nnen auch direkt das Programm angeben, um Dateien zu \u00f6ffnen:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Musik --app qmmp<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kategorien statt Verzeichnisse, oder das semantische Dateisystem f\u00fcr Linux\" src=\"\/wp-content\/uploads\/2019\/06\/4823ff69e03b2e8b9986eedfe0604a9d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Lassen Sie uns weitere Kategorien erstellen und Dateien mit \u201eassign\u201c hinzuf\u00fcgen. Wenn Dateien noch nicht existierenden Kategorien zugewiesen werden, wird eine Anfrage zur Erstellung dieser Kategorien gestellt. Dies kann vermieden werden, wenn man die Option \u2014yes verwendet.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Programmierung R -f \"Einf\u00fchrung in R.pdf\" \"Statistik-Paket R: Theorie der Wahrscheinlichkeiten und Mathematische Statistik.pdf\" --yes<\/code><\/pre>\n<p><\/p>\n<p>Jetzt wollen wir der Datei \u201eStatistisches Paket R: Theorie der Wahrscheinlichkeit und Statistik.pdf\u201c die Kategorie \u201eMathematik\u201c hinzuf\u00fcgen. Wir wissen, dass diese Datei bereits die Kategorie \u201eR\u201c hat und k\u00f6nnen daher den Kategorieweg aus dem Vitis-System verwenden:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Mathematik -v \"R\/Statistik-Paket R: Theorie der Wahrscheinlichkeiten und Mathematische Statistik.pdf\"<\/code><\/pre>\n<p><\/p>\n<p>Gl\u00fccklicherweise erm\u00f6glicht die Bash-Autovervollst\u00e4ndigung, dies einfach zu bewerkstelligen.<\/p>\n<p><\/p>\n<p>Schauen wir uns an, was dabei herausgekommen ist, indem wir das Flag \u2014categories verwenden, um die Liste der Kategorien zu sehen, die jeder Datei zugeordnet sind:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show R --categories<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kategorien statt Verzeichnisse, oder das semantische Dateisystem f\u00fcr Linux\" src=\"\/wp-content\/uploads\/2019\/06\/7bbaf561e6efe407ec8dfcda3a89c3b8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Beachten Sie, dass den Dateien auch automatische Kategorien basierend auf Format, Typ (die Formate vereint) und Dateiendungen zugewiesen wurden. Diese Kategorien k\u00f6nnen bei Bedarf deaktiviert werden. Sp\u00e4ter werde ich unbedingt deren Namen lokalisieren.<\/p>\n<p><\/p>\n<p>F\u00fcgen wir der \u201eMathematik\u201c noch etwas Abwechslung hinzu:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Mathematik -f \"Mathematische Analysis - 1984.pdf\" Perelman_Fesselnde_Mathematik_1927.djvu <\/code><\/pre>\n<p><\/p>\n<p>Und jetzt wird es interessant. Anstelle von Kategorien kann man Ausdr\u00fccke mit den Operationen Vereinigung, Schnittmenge und Differenz schreiben, das hei\u00dft, Mengenoperationen verwenden. Zum Beispiel wird die Schnittmenge von \u201eMathematik\u201c und \u201eR\u201c ein Dateiresultat ergeben.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show R i: Mathematik<\/code><\/pre>\n<p><\/p>\n<p>Ziehen wir die Erw\u00e4hnungen der Sprache \u201eR\u201c aus der \u201eMathematik\u201c ab:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Mathematik R #oder vitis show Mathematik c: R<\/code><\/pre>\n<p><\/p>\n<p>Wir k\u00f6nnen Musik und die Sprache R ohne Ziel zusammenf\u00fchren:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Musik u: R<\/code><\/pre>\n<p><\/p>\n<p>Das Flag -n erm\u00f6glicht es, aus dem Ergebnis der Abfrage die ben\u00f6tigten Dateien nach Nummern und\/oder Bereichen zu \u201eziehen\u201c, zum Beispiel: <code>-n 3-7<\/code>, oder etwas komplizierter: <code>-n 1,5,8-10,13<\/code>. Es ist oft n\u00fctzlich mit dem Subbefehl open, der es erm\u00f6glicht, ben\u00f6tigte Dateien aus der Liste zu \u00f6ffnen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kategorien statt Verzeichnisse, oder das semantische Dateisystem f\u00fcr Linux\" src=\"\/wp-content\/uploads\/2019\/06\/5e9181a711a88368b38d8cd2f2e628f4.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Obwohl wir von der Verwendung der \u00fcblichen Verzeichnisstruktur abweichen, ist es oft n\u00fctzlich, verschachtelte Kategorien zu haben. Lassen Sie uns eine Unterkategorie \u201eStatistik\u201c in der Kategorie \u201eMathematik\u201c erstellen und diese Kategorie der passenden Datei hinzuf\u00fcgen:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis create Mathematik\/Statistik\n\nvitis assign Mathematik\/Statistik -v \"R\/Einf\u00fchrung in R.pdf\"\n\nvitis show Mathematik --categories<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kategorien statt Verzeichnisse, oder das semantische Dateisystem f\u00fcr Linux\" src=\"\/wp-content\/uploads\/2019\/06\/0bb3381f35cfa2fce381ecc66a62701f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wir k\u00f6nnen sehen, dass diese Datei jetzt die Kategorie \u201eMathematik\/Statistik\u201c anstelle von \u201eMathematik\u201c hat (zus\u00e4tzliche Links werden verfolgt).<\/p>\n<p><\/p>\n<p>Es kann umst\u00e4ndlich sein, den vollst\u00e4ndigen Pfad anzugeben, daher erstellen wir einen \"globalen\" Alias:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Mathematik\/Statistik -a Statistik\n\nvitis show Statistik<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kategorien statt Verzeichnisse, oder das semantische Dateisystem f\u00fcr 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\">Nicht nur normale Dateien<\/h2>\n<p><\/p>\n<h3 id=\"internet-ssylki\">Internet-Links<\/h3>\n<p><\/p>\n<p>Um die Speicherung von Informationen zu vereinheitlichen, w\u00e4re es hilfreich, zumindest Links zu Internetressourcen zu kategorisieren. Und das ist m\u00f6glich:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Habr Farbabweichung -i https:\/\/habr.com\/ru\/company\/sfe_ru\/blog\/437304\/ --yes<\/code><\/pre>\n<p><\/p>\n<p>An einem speziellen Ort wird eine Datei mit dem Titel der HTML-Seite und der Endung .desktop erstellt. Dies ist das traditionelle Format f\u00fcr Verkn\u00fcpfungen in GNU\/Linux. Solche Verkn\u00fcpfungen erhalten automatisch die Kategorie NetworkBookmarks.<\/p>\n<p><\/p>\n<p>Nat\u00fcrlich werden Verkn\u00fcpfungen erstellt, um sie zu verwenden:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Farbabweichung<\/code><\/pre>\n<p><\/p>\n<p>Die Ausf\u00fchrung des Befehls \u00f6ffnet im Browser den gerade gespeicherten Link. Kategorisierte Verkn\u00fcpfungen zu Internetquellen k\u00f6nnen als Ersatz f\u00fcr Lesezeichen im Browser dienen.<\/p>\n<p><\/p>\n<h3 id=\"fragmenty-faylov\">Dateifragmente<\/h3>\n<p><\/p>\n<p>Es ist auch hilfreich, Kategorien f\u00fcr einzelne Filefragmente zu haben. Gute Idee, oder? Doch die aktuelle Implementierung betrifft bisher nur gew\u00f6hnliche Textdateien sowie Audio- und Videoformate. Angenommen, Sie m\u00f6chten einen bestimmten Abschnitt eines Konzerts oder einen lustigen Moment aus einem Film markieren, dann k\u00f6nnen Sie bei der Verwendung von 'assign' die Flags \u2014fragname, \u2014start, \u2014finish verwenden. Lassen Sie uns den Vorspann von \"Duck Tales\" speichern:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign vitis assign -c Titelmelodien -f Duck_Tales\/s01s01.avi --finish 00:00:59 --fragname \"Duck Tales intro\"\n\nvitis open Titelmelodien<\/code><\/pre>\n<p><\/p>\n<p>Tats\u00e4chlich findet kein tats\u00e4chliches Trimmen der Dateien statt; stattdessen wird eine Pointer-Datei f\u00fcr das Fragment erstellt, in der der Typ der Datei, der Pfad zur Datei sowie Anfang und Ende des Fragments beschrieben sind. Das Erstellen und \u00d6ffnen von Zeigern auf Fragmente wird speziellen von mir daf\u00fcr entwickelten Programmen delegiert \u2014 mediafragmenter und fragplayer. Das erste erstellt, das zweite \u00f6ffnet. Bei Audio- und Videoaufnahmen erfolgt das Abspielen der Mediendatei von einer bestimmten Position bis zu einer gewissen anderen Position mit dem VLC-Player, sodass dieser auch im System vorhanden sein muss. Zuerst wollte ich das mit mplayer machen, aber dort war das Positionieren aus irgendwelchen Gr\u00fcnden sehr fehlerhaft.<br \/>\nIn unserem Beispiel wird die Datei \"Duck Tales intro.fragpointer\" erstellt (sie wird an einem besonderen Ort gespeichert), und dann wird ein Fragment von Anfang der Datei (da \u2014start bei der Erstellung nicht angegeben wurde) bis zur Marke von 59 Sekunden abgespielt, wonach VLC geschlossen wird.<\/p>\n<p><\/p>\n<p>Ein weiteres Beispiel \u2014 wir haben beschlossen, einen bestimmten Auftritt eines bekannten K\u00fcnstlers zu kategorisieren:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign \u041b\u0435\u043f\u0441 \"\u0421\u043f\u0430\u0441\u0438\u0442\u0435 \u043d\u0430\u0448\u0438 \u0434\u0443\u0448\u0438\" -f \u0413\u0440\u0438\u0433\u043e\u0440\u0438\u0439 \u041b\u0435\u043fc - Konzert P\u0430\u0440\u0443\u0441 - Lieder von Wladimir Wyssozki.mp4 --fragname \"\u0421\u043f\u0430\u0441\u0438\u0442\u0435 \u043d\u0430\u0448\u0438 \u0434\u0443\u0448\u0438\" --start 00:32:18 --finish 00:36:51\n\nvitis open \"\u0421\u043f\u0430\u0441\u0438\u0442\u0435 \u043d\u0430\u0448\u0438 \u0434\u0443\u0448\u0438\"<\/code><\/pre>\n<p><\/p>\n<p>Beim \u00d6ffnen wird die Datei an der gew\u00fcnschten Position geladen und schlie\u00dft nach viereinhalb Minuten.<\/p>\n<p><\/p>\n<h1 id=\"kak-eto-vsyo-rabotaet--dopolnitelnye-vozmozhnosti\">Wie das alles funktioniert + zus\u00e4tzliche M\u00f6glichkeiten<\/h1>\n<p><\/p>\n<h2 id=\"hranenie-kategoriy\">Speichern von Kategorien<\/h2>\n<p><\/p>\n<p>Zu Beginn der \u00dcberlegungen zur Organisation eines semantischen Dateisystems kamen mir drei M\u00f6glichkeiten in den Sinn: durch Speicherung symbolischer Links, mittels einer Datenbank, durch Beschreibung in XML. Die erste Methode setzte sich durch, da sie auf der einen Seite einfach zu implementieren ist, und auf der anderen Seite hat der Nutzer die M\u00f6glichkeit, die Kategorien direkt im Dateisystem anzusehen (was bequem und wichtig ist). Zu Beginn der Nutzung <em>vitis<\/em> Im Home-Verzeichnis des Benutzers wird ein Verzeichnis \"Vitis\" und eine Konfigurationsdatei \".config\/vitis\/vitis.conf\" erstellt. Im ~\/Vitis werden Verzeichnisse entsprechend den Kategorien erstellt, und in diesen Kategorie-Verzeichnissen werden symbolische Links zu den Originaldateien angelegt. Kategorien-Alias sind ebenfalls einfach Links zu ihnen. Nat\u00fcrlich k\u00f6nnte es einige st\u00f6ren, dass ein Verzeichnis \"Vitis\" im Home-Verzeichnis vorhanden ist. Wir k\u00f6nnen auch an einen anderen Ort wechseln:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis service set path \/mnt\/MyFavoriteDisk\/Vitis\/<\/code><\/pre>\n<p><\/p>\n<p>Irgendwann wird klar, dass es wenig sinnvoll ist, verstreute Dateien an verschiedenen Orten zu kategorisieren, da sich deren Standort \u00e4ndern kann. Daher habe ich mir zun\u00e4chst ein Verzeichnis erstellt, in dem ich alles ablegte, und diesen Dingen Kategorien zuwies. Dann dachte ich, dass es sinnvoll w\u00e4re, dies auf programmbasierter Ebene zu gestalten. So entstand das Konzept des \"Dateiraums\". Zu Beginn der Nutzung <em>vitis<\/em> w\u00e4re es hilfreich, so einen Ort einzurichten (dort werden alle ben\u00f6tigten Dateien abgelegt) und die automatische Speicherung zu aktivieren:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis service add filespace \/mnt\/MyFavoriteDisk\/Filespace\/\n\nvitis service set autosave yes<\/code><\/pre>\n<p><\/p>\n<p>Ohne die automatische Speicherung wird beim Gebrauch des Unterbefehls &#171;assign&#187; das Flag &#8212;save ben\u00f6tigt, wenn der Wunsch besteht, die hinzugef\u00fcgte Datei im Dateispeicher zu speichern.<\/p>\n<p><\/p>\n<p>Dar\u00fcber hinaus k\u00f6nnen mehrere Dateispeicher hinzugef\u00fcgt und deren Priorit\u00e4ten ge\u00e4ndert werden, was n\u00fctzlich sein kann, wenn viele Dateien vorhanden sind, die auf verschiedenen Medien gespeichert sind. Ich werde diese M\u00f6glichkeit hier nicht behandeln; Details sind in der Programmhilfe zu finden.<\/p>\n<p><\/p>\n<h2 id=\"migraciya-semanticheskoy-faylovoy-sistemy\">Migration des semantischen Dateisystems<\/h2>\n<p><\/p>\n<p>So oder so kann das Verzeichnis Vitis und die Dateispeicher theoretisch manchmal von einem Ort zum anderen verschoben werden. Um dies funktionsf\u00e4hig zu machen, habe ich ein separates Tool erstellt <em>link-editor<\/em>, das Massenbearbeitungen von Links vornehmen kann, indem es Teile des Pfads durch andere ersetzt:<\/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>Im ersten Fall, nachdem wir von \/mnt\/MyFavoriteDisk\/Vitis\/ in das Home-Verzeichnis umgezogen sind, werden symbolische Links, die mit Aliassen verkn\u00fcpft sind, bearbeitet. Im zweiten Fall werden nach der \u00c4nderung des Standorts des Dateispeichers alle Links in Vitis entsprechend der Anfrage zur Ersetzung eines Teils ihres Pfades aktualisiert.<\/p>\n<p><\/p>\n<h2 id=\"avtomaticheskie-kategorii\">Automatische Kategorien<\/h2>\n<p><\/p>\n<p>Wenn Sie den Befehl <code>vitis service get autocategorization<\/code>, ausf\u00fchren, k\u00f6nnen Sie sehen, dass standardm\u00e4\u00dfig die Zuweisung automatischer Kategorien nach Format (Format und Typ) und Dateiendung (Erweiterung) konfiguriert ist.<\/p>\n<p><\/p>\n<p>Dies ist n\u00fctzlich, wenn Sie beispielsweise etwas unter PDFs suchen oder sehen m\u00f6chten, was Sie an EPUB und FB2 gespeichert haben; Sie k\u00f6nnen einfach die Anfrage ausf\u00fchren<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Format\/MOBI u: Format\/FB2<\/code><\/pre>\n<p><\/p>\n<p>Es hat sich ergeben, dass die Standardwerkzeuge von GNU\/Linux wie file oder mimetype f\u00fcr mich nicht geeignet sind, da sie nicht immer die Formate korrekt identifizieren. Daher musste ich meine eigene Implementierung basierend auf Dateisignaturen und Erweiterungen erstellen. Das Thema der Dateiformaterkennung ist allgemein ein interessantes Forschungsfeld und verdient einen eigenen Artikel. Ich kann bisher sagen, dass ich m\u00f6glicherweise nicht f\u00fcr alle Formate weltweit eine ehrliche Erkennung vorgesehen habe, aber insgesamt funktioniert es bereits recht gut. Allerdings wird EPUB derzeit als ZIP-Format erkannt (was im Grunde gerechtfertigt ist, aber in der Praxis ist dies nicht als normales Verhalten zu betrachten). Bis zu einem gewissen Punkt sollten Sie diese Funktion als experimentell betrachten und mir von Bugs berichten. In seltsamen Situationen kann man immer die Kategorien basierend auf den Dateierweiterungen verwenden, zum Beispiel Extension\/epub.<\/p>\n<p><\/p>\n<p>Wenn die automatischen Kategorien nach Format aktiviert sind, sind auch die automatischen Kategorien aktiviert, die bestimmte Formate wie &#171;Archives&#187;, &#171;Pictures&#187;, &#171;Video&#187;, &#171;Audio&#187; und &#171;Documents&#187; zusammenfassen. F\u00fcr diese Unterkategorien werden ebenfalls lokalisierte Namen erstellt.<\/p>\n<p><\/p>\n<h1 id=\"o-chyom-ne-skazano\">Was nicht gesagt wurde<\/h1>\n<p><\/p>\n<p><em>vitis<\/em> hat sich zu einem sehr vielseitigen Werkzeug entwickelt, und es ist schwierig, alles auf einmal zu erfassen. Kurz erw\u00e4hne ich, was man noch machen kann:<\/p>\n<p><\/p>\n<ul>\n<li>Kategorien k\u00f6nnen gel\u00f6scht und von Dateien entfernt werden;<\/li>\n<li>Suchergebnisse k\u00f6nnen in ein angegebenes Verzeichnis kopiert werden;<\/li>\n<li>Dateien k\u00f6nnen als Programme ausgef\u00fchrt werden;<\/li>\n<li>Der Befehl show hat viele Optionen, zum Beispiel Sortierung nach Name\/\u00c4nderungsdatum oder Zugriff\/Gr\u00f6\u00dfe\/Erweiterung, Anzeige von Dateieigenschaften und Pfaden zu den Originalen, Anzeige von versteckten Dateien und mehr;<\/li>\n<li>Beim Speichern von Links zu Internetquellen k\u00f6nnen auch lokale Kopien von HTML-Seiten gespeichert werden.<\/li>\n<\/ul>\n<p><\/p>\n<p>Alle Einzelheiten finden Sie in der Benutzerdokumentation.<\/p>\n<p><\/p>\n<h1 id=\"perspektivy\">Aussichten<\/h1>\n<p><\/p>\n<p>Oft behaupten Skeptiker, dass &#171;niemand diese Tags selbst setzen wird&#187;. An meinem Beispiel kann ich das Gegenteil beweisen: Ich habe bereits \u00fcber sechstausend Dateien kategorisiert, \u00fcber eintausend Kategorien und Pseudonyme erstellt, und es hat sich gelohnt. Wenn man mit einem einzigen Befehl <code>vitis open Plan<\/code> \u00f6ffnen Sie Ihre To-Do-Liste oder mit einem einzigen Befehl <code>vitis open LaTeX<\/code> das Buch von Stolyarov \u00fcber das Typesetting-System LaTeX \u00f6ffnet, wird es moralisch schwierig, das Dateisystem &#171;auf die alte Art&#187; zu nutzen.<\/p>\n<p><\/p>\n<p>Auf dieser Basis entstehen einige Ideen. Zum Beispiel k\u00f6nnte man ein automatisches Radio machen, das thematische Musik entsprechend dem aktuellen Wetter, Feiertag, Wochentag, Tageszeit oder Jahr spielt. Auch nah am Thema \u2014 ein Musikplayer, der \u00fcber Kategorien Bescheid wei\u00df und Musik anhand von Kategorienoperationen als Mengen abspielen kann. N\u00fctzlich w\u00e4re es, ein Daemon zu erstellen, der den &#171;Downloads&#187;-Ordner \u00fcberwacht und vorschl\u00e4gt, neue Dateien zu kategorisieren. Und nat\u00fcrlich sollte ein ordentlicher grafischer semantischer Dateimanager entwickelt werden. Fr\u00fcher habe ich sogar einen Webdienst f\u00fcr ein Unternehmen zur gemeinsamen Nutzung von Dateien erstellt, aber er hatte keine Priorit\u00e4t und wurde irrelevant, obwohl er ein hohes Niveau an Funktionalit\u00e4t erreicht hatte. (In Verbindung mit gro\u00dfen Ver\u00e4nderungen im System) <em>vitis<\/em>, ist er nun nicht mehr nutzbar.)<\/p>\n<p>\n<b class=\"spoiler_title\">hier ist eine kleine Demo<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Kategorien statt Verzeichnisse, oder das semantische Dateisystem f\u00fcr Linux\" src=\"\/wp-content\/uploads\/2019\/06\/0a8e3829424135a6bf9390d2b2654499.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Fazit<\/h1>\n<p><\/p>\n<p><em>Vitis<\/em> \u2013 ist nicht der erste Versuch, die Arbeitsweise mit Daten radikal zu \u00e4ndern, aber ich hielt es f\u00fcr wichtig, meine Ideen umzusetzen und die Implementierung \u00f6ffentlich unter der GNU GPL-Lizenz zur Verf\u00fcgung zu stellen. Zur Bequemlichkeit wurde ein deb-Paket f\u00fcr x86-64 erstellt, das auf allen modernen Debian-Distributionen arbeiten sollte. Auf ARM gab es einige kleinere Schwierigkeiten (w\u00e4hrend alle anderen Programme, die mit <em>vitis<\/em>, zusammenh\u00e4ngen, normal funktionieren), aber in Zukunft wird auch f\u00fcr diese Plattform (armhf) ein funktionierendes Paket erstellt. Die Erstellung von RPM-Paketen habe ich vorerst eingestellt, da es Probleme mit Fedora 30 gab und es problematisch ist, sich auf viele RPM-Distributionen zu verteilen, aber sp\u00e4ter wird es trotzdem f\u00fcr ein paar von ihnen Pakete geben. Bis dahin kann man nutzen <code>make &amp;&amp; make install<\/code> oder <code>checkinstall<\/code>.<\/p>\n<p><\/p>\n<p>Vielen Dank f\u00fcr Ihre Aufmerksamkeit! Ich hoffe, dieser Artikel und dieses Projekt k\u00f6nnen n\u00fctzlich sein.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/tech.vindex\/vitis\">Link zum Projekt-Repository<\/a><\/noindex><\/p>\n<p>Quelle: <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.1.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\/de\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\udd47Kategorien statt Verzeichnisse, oder Semantisches Dateisystem f\u00fcr Linux | ProHoster","description":"Die Klassifizierung von Daten ist an sich ein interessantes Forschungsthema.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/35687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=35687"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/35687\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/26733"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=35687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=35687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=35687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}