Traditionelle mehrstufige Hierarchie im Vergleich zur flachen Diskurshierarchie

Ich habe Schwierigkeiten, unsere Organisation davon zu überzeugen, nicht zu einem traditionellen Forum zurückzukehren, das mehrere Hierarchieebenen unterstützt und oft in Klick-und-Run-Qualle mündet. Siehe It’s Time We Talked About Tags.

Ich brauche Argumente, die zeigen, dass dies mit Tags leicht umsetzbar ist, ohne dass etwas in die Suchleiste eingegeben werden muss.

Es wäre großartig, wenn die folgenden Fragen beantwortet werden könnten:

Wir haben ein Netzwerk von lokalen Knotenpunkten (Local Nodes), das weltweit wachsen wird, vergleichbar mit der Kategorie „Local Groups“ auf https://discuss.okfn.org. Dort werden alle Standorte durch Unterkategorien abgedeckt. Das ist die richtige Lösung, wenn man nicht bis auf Stadtebene geht, wie wir es tun müssen.

Ich stelle mir eine Struktur wie folgt vor:

  1. Kategorie: Local Nodes
  2. Tag: Kontinent (muss diskutiert werden, ob das sinnvoll ist)
  3. Unterkategorie: Nation (Nationen sollen gut sichtbar sein, daher ist der Kontinent als Tag gedacht)
  4. Tag: Stadt

Gibt es eine Möglichkeit, nur über Tags zu navigieren, indem man die Hierarchie der Tag-Gruppen nutzt, z. B.:

  1. Von Asien nach Japan navigieren
    1. Kontinente
    2. Nationen
  2. Von Europa nach Rom navigieren
    1. Kontinente
    2. Nationen
    3. Städte

Ich habe noch keine Möglichkeit gefunden, dies über die Navigationsleiste umzusetzen. Ebenso habe ich keine Lösung gefunden, bei der Beiträge automatisch mit dem Namen ihrer Unterkategorie und der übergeordneten Kategorie getaggt werden, um dies zu ermöglichen.

Mir sind folgende Ressourcen bekannt:

Zusätzlich (für den Anfang :slight_smile:):

  1. Wie wird „Suche“ angezeigt und wann erscheint sie in der Tag-Suche?

  2. Integration der Tag-Suche in die Kategoriensuche (ich weiß, dass es oben rechts eine Suchleiste gibt, die jedoch auch Beiträge auflistet)

Am Ende möchte ich in der Kategorie „local-nodes“ eine Weltkarte anzeigen, in die man hineinzoomen kann, um den gewünschten Standort zu erreichen.

Ich hoffe, ich kann die auf Locations Plugin 🌍 gezeigte Karte nutzen, den Data Explorer Plugin Discourse Data Explorer und das Custom Layouts Plugin, eventuell integriert in Discourse Category Banners.

Derzeit kenne ich nur:

Es sollte ungefähr so aussehen:

Ich habe mir das ein wenig überlegt. Ich habe zuvor bereits mit einem dreistufigen Kategoriensystem und verschiedenen tag-basierten Navigationssystemen experimentiert.

Kategorie: lokale Knotenpunkte
Tag: Kontinent (muss noch diskutiert werden, ob das sinnvoll ist)
Unterkategorie: Nation (Nationen sollen gut visualisiert werden, weshalb der Kontinent als Tag dient)
Tag: Stadt

Ich denke, man benötigt im Wesentlichen ein Tag-Auswahlmenü, das spezifisch für eine Tag-Gruppe ist, wobei die Tag-Gruppe durch den Kategorien-Kontext bestimmt wird (um verschiedene Stadtgruppen für Nation-Unterkategorien zu unterstützen).

Was die Einbindung von Karten an anderen Stellen als auf einer Themenliste oder eingebettet in einen Beitrag betrifft: Das Locations-Plugin verfügt über eine komponentenbasierte Karte, die auf einer Kategorienseite eingefügt werden kann.

Beides könnte man über eine Theme-Komponente umsetzen. Falls du Hilfe beim Erstellen einer solchen Komponente brauchst, kann ich dir einige Hinweise geben, wenn du es selbst versuchen möchtest. Alternativ könntest du Pavilion beauftragen, dies für dich zu übernehmen.

Vielen Dank für das positive Feedback. Alles außer der Karte könnten wir also selbst umsetzen :smiley:, aber wir müssten ein wenig programmieren, um das Theme so anzupassen, wie wir es möchten.

Um einen Überblick über den Fahrplan für die Umsetzung zu bekommen, könntest du bitte das Folgende bestätigen, korrigieren, ergänzen oder darauf antworten?

  1. :question: Sicherstellen, dass wir endlose Tag-Dropdowns erstellen können (nur durch die Seitengröße begrenzt), wobei die Auswahl der Tags auf dem vorherigen Dropdown basiert.
    @angus, kannst du bestätigen, dass dies prinzipiell möglich ist?
  2. :question: Können die Suche nach Kategorien und Tags wie in Punkt 2 der letzten (dritten) Liste gefordert, zusammengeführt werden?
  3. :factory: Eine Tag-Hierarchie etablieren, die mit der im Originalbeitrag (OP) gezeigten vergleichbar ist. Das ist das Fundament; ohne das ist dieses Projekt zum Scheitern verurteilt.
  4. :factory: Automatisches Tagging einführen
    1. :question: :arrow_forward: :factory: Kann dies nur durch ein Plugin erfolgen, wie in Topic auto tagging angedeutet?
      :arrow_right: Siehe Tags: category restrictions, tag groups, relationships
  5. :factory: Die Erweiterung von Locations Plugin 🌍 - #429 umsetzen :star_struck:

Wenn wir diesen Weg gehen, werde ich das großzügige Angebot definitiv annehmen.

Das ist derzeit unwahrscheinlich, da unsere Community gerade ihren allerersten Schritt macht und die Einnahmen auf einem sehr niedrigen Niveau liegen werden; zudem sind wir eine gemeinnützige Organisation.

Dies wird in Set up structured tagging with tag groups and category tag restrictions beantwortet.

Im Prinzip ist alles möglich.

Beispielsweise habe ich zuvor eine dreistufige Kategorienhierarchie erstellt, die auch mehrere Tag-Schnittpunkte auf der Kategorieebene unterstützt.

Dreistufige Kategorienhierarchie mit Multi-Tag-Schnittpunkten und Routenstruktur
scope "/multi" do
  constraints(tag_id: /[^\/]+?/, format: /json|rss/) do
     get '/c/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_category_show'
     get '/c/:parent_category/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_parent_category_category_show'
     get '/c/:grandparent_category/:parent_category/:category/t/:tag_id/*tags' => 'tags#show', as: 'tags_grandparent_category_category_show'

     Discourse.filters.each do |filter|
       get "/c/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_category_show_#{filter}"
       get "/c/:parent_category/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_parent_category_category_show_#{filter}"
       get "/c/:grandparent_category/:parent_category/:category/t/:tag_id/*tags/l/#{filter}" => "tags#show_#{filter}", as: "tags_grandparent_category_category_show_#{filter}"
     end
   end
end

Dies ist komplexer als das, was Sie meiner Meinung nach vorhaben, aber es ist nicht nachhaltig, es sei denn, Sie sind bereit, viel Zeit oder Ressourcen in die Unterstützung zu investieren. Es ist wahrscheinlich, dass es irgendwann kaputtgeht, wenn sich Standard-Discourse ändert.

Vor diesem Hintergrund gibt es zwei Dinge zu verstehen, die die Kategorie-/Tag-Routenstruktur in Standard-Discourse betreffen:

  1. Multi-Tag-Schnittpunkte sind nur siteweit möglich, nicht auf der Kategorieebene. Das heißt, es gibt in Standard-Discourse keine Routen, um eine Themenliste mit Themen in einer bestimmten Kategorie und mit mehr als einem bestimmten Tag anzuzeigen. Wenn Sie dies möchten, müssten Sie die Route hinzufügen.

  2. Kategorienschnittpunkte sind nicht möglich. Das heißt, es gibt in Discourse keine Route, um Themen aus zwei Kategorien auf derselben Ebene anzuzeigen (d. h. zwei übergeordnete Kategorien oder zwei untergeordnete Kategorien).

Sie können dennoch ein vierstufiges System erreichen (was Ihr Ziel zu sein scheint), ohne wesentliche serverseitige Erweiterungen vorzunehmen.

Beispielsweise könnten Sie ausschließlich Tags verwenden, um die vier Ebenen darzustellen. https://thepavilion.io/tags/intersection/events/bug/to-do/high stellt den Schnittpunkt der Tags „events“, „bug“, „to-do“ und „high“ auf Pavilion dar. Sie könnten vier Dropdown-Menüs haben, eines für jede Tag-Gruppe, aus der diese Tags stammen, z. B.

[plugin] [type] [status] [importance]

Sobald Sie herausgefunden haben, wie Sie Ihre Hierarchie innerhalb der vorhandenen Discourse-Routenstruktur strukturieren möchten, sind die restlichen Punkte, die Sie aufgeführt haben, nur clientseitige Änderungen und (relativ) unkompliziert.

  1. 3-stufige Kategorienhierarchie

    Gibt es ein Beispiel? Ich weiß nicht, wie das aussehen würde und wo der Code hinzugefügt wird.
    Wo und wie wird die grandparent_category eingeführt, da es keine Standardtools gibt, dies über die Benutzeroberfläche zu tun.
    Hat das etwas mit Pavilion zu tun? Das ist es doch nicht, oder? Der obige Code würde doch die Landing-Seite der Kategorien ändern, oder?

  2. Multi-Tag-Schnittpunkte klingen gut, obwohl sie

    das würde vielleicht erfordern, Kategorien als Hauptnavigationsroute zu überspringen und eine benutzerdefinierte Landing-Seite basierend auf diesen Tags zu erstellen, etwas, das ich in Display tags by tag group - #22 by PackElend gefragt habe
    Das würde ein benutzerdefiniertes Theme erfordern, oder?

  3. nur Tags

    ja, das ist die Idee, wie man beginnt, alles andere kann später geändert werden.
    Solange wir eine ordnungsgemäße Tagging sicherstellen, sollte alles machbar sein, abhängig von Zeit und Frustrationstoleranz :), oder?
    Die Hierarchie wäre wie folgt:

    1. Ebene: lokale Knoten
    2. Ebene: Kontinente
    3. Ebene: Nationen
    4. Ebene: Städte

    Am Anfang verwenden wir ordnungsgemäß nur lokale Knoten als Kategorie und eine Unterkategorie pro Stadt*. Sobald es zu viele Knoten gibt, würden wir auf lokale Knoten und Nationen umsteigen, in der Hoffnung, dass wir unser eigenes Theme erstellen, um die tag-basierte Navigation irgendwie attraktiver zu machen (z. B. gleiche Boxen für Tags wie für Kategorien, wie in Punkt 2 erwähnt).
    Darüber hinaus hoffe ich, dass wir mit meiner kommenden Feature-Anfrage, die im Locations Plugin diskutiert wird, zurechtkommen, da dies in vielen Kategorie-/Tag-Gruppen verwendet werden könnte :angel:.

    Das Wichtigste ist, dass wir Topic Auto-Tagging so schnell wie möglich zum Laufen bringen, sonst haben wir Chaos, bevor wir überhaupt im großen Maßstab beginnen.
    Zusätzlich müssen wir zusätzliche Dropdown-Felder in der Navigationsleiste einführen, die je nach Auswahl mit Tags gefüllt werden. Ich hoffe, es ist kein großes Problem, Unterkategorien mit tag-definierten Dropdown-Feldern zu mischen.
    Ist es einfach, etwas wie das Layout unten zu erreichen?

    1. Layout mit geringer Knotenanzahl
      image
    2. Layout mit höherer Knotenanzahl
      image
  4. Boxen zusammenführen
    Zuletzt, aber nicht minder wichtig, könnte es hilfreich sein, können Sie Boxen wie diese zusammenführen:

image

Das wird nicht funktionieren, da es gegen eine der von mir genannten Einschränkungen verstößt.

Sie können innerhalb einer Kategorie nicht nach zwei Tags filtern.

image

Ich bin mir nicht sicher, aber ich vermute, Sie gehen davon aus, dass Sie, wenn Sie sich in der Kategorie „Lokale Knoten“ befinden und nach „Kontinenten“ filtern, gleichzeitig auch nach Nationen und Städten filtern können. Das wird ebenfalls nicht funktionieren.

Ich denke, das ist Ihr bester Weg.

Verwenden Sie ausschließlich lokale Knoten als Kategorie und eine Unterkategorie pro Stadt.

Ich denke, Sie versuchen, zu viel zukünftige Planung in Ihre aktuellen Bedürfnisse einzubeziehen.

Sobald es zu viele Knoten gibt, würden wir auf lokale Knoten und Nationen umstellen.

Ich verstehe den Wunsch, jetzt die richtige „Struktur“ einzurichten, aber so gut Ihr Service auch sein mag, es wird eine Weile dauern, bis dies für Sie zu einem Problem wird, also Jahre. In diesem Stadium werden sich die Annahmen, auf denen Ihre Community basiert, verändert haben.

Darüber hinaus wird das Problem, dem Sie begegnen, eher eine Frage der Organisation als der Hierarchie sein. Beispielsweise könnten Sie die Unterkategorien der Städte in einer angepassten Navigationsleiste nach Nation gruppieren, wenn Sie möchten. Wenn Sie Diskussionen auf „nationaler“ Ebene führen möchten (fragen Sie sich zunächst, ob das überhaupt sinnvoll ist), könnten Sie einfach eine separate Unterkategorie dafür einrichten.

Sie benötigen nicht unbedingt eine hierarchische Struktur in Ihrem Diskussionsforum, die strikt mit der administrativen Hierarchie der Orte übereinstimmt, um die sich die Diskussionen drehen. Sie benötigen eine Hierarchie, die es Ihren Benutzern ermöglicht, die für sie relevanten Inhalte zu finden. Ich verstehe, dass Sie diese beiden Konzepte miteinander verbinden, aber ich bin mir nicht sicher, ob das gerechtfertigt ist. Sich zu sehr auf diese Verbindung zu konzentrieren, kompliziert Ihr Denken zur Forumstruktur unnötig.

Im Grunde denke ich, dass Sie zu viel Aufwand darin investieren, dies strukturell so ähnlich wie den idealen Zustand Ihres Services aus einer Vogelperspektive zu gestalten, also auf einer so großen Skala zu operieren, dass es notwendig wird, Städte nach Nationen und Kontinenten aufzuteilen. Wann und wenn Sie diesen Punkt erreichen, wird die gesamte Natur dieser Entscheidung eine andere sein.

Du hast recht, mein Fehler. Ich habe mich gestern Abend in den Details verirrt.

[1] Ist es nicht möglich, zusätzliche Dropdown-Menüs hinzuzufügen?
Das würde irgendwie eine „erweiterte Suche" simulieren.

Zustimmung. Ich versuche, alten, tief strukturierten Denken mit dem Ansatz von Discourse zu vereinen.

Aber trotzdem, wie du sagst,

Ich bin mir nicht sicher, ob es nur

gibt, da der Fokus auf Projekten in sehr kleinen, geografisch begrenzten Bereichen liegt.
Natürlich werden bestimmte Themen nationale oder globale Bedeutung haben. Wie man das moderiert, alles in den richtigen Kontext stellt und an der richtigen Stelle in Discourse verfügbar macht, ist wahrscheinlich etwas, bei dem Lernen durch Tun gilt.

Wenn wir uns entscheiden, uns nur auf Tags zu verlassen, könnte dein Ansatz der Tag-Schnittmenge enorm helfen.
Bevor wir diesen Schritt tun, müssen wir die Tags- und die Schnittmenge-Startseite so anpassen, dass sie irgendwie genauso aussehen wie die Kategorien-Startseite. Ist das machbar?
Ich denke daran, das Layout von https://se23.life/tags so zu gestalten, dass es mit Boxen gefüllt ist, die „Unter-Tags" enthalten, wie in Higher level of granularity for category & subcategory styling - #7 by PackElend angedeutet (dort habe ich jedoch darum gebeten, die Boxen für Unterkategorien zu verbessern).
Außerdem löst ein Klick auf eine Box oder einen Tag innerhalb einer Box die Abfrage https://thepavilion.io/tags/intersection/tag1/tag2/tag3/... aus. Das Ergebnis wird so gerendert, dass es im gleichen Stil wie die Boxen dargestellt wird (oder wie auch immer wir es für angemessen halten).

Wie du siehst, bin ich immer noch in der mehrstufigen Route gefangen, da es dieselbe Analogie ist, wenn man von der globalen auf die lokale Skala zoomt. Das ist für jeden neuen Benutzer der natürlichste Navigationsweg, um zu seinem lokalen Knoten zu gelangen.
Ich hoffe, du wirst durch

als richtig erwiesen, aber es könnte Bedenken geben, dass eine Ebene durch zu viele Tags überladen wird. Zum Beispiel kann es unübersichtlich werden, wenn alle Städte der USA oder Chinas in den Unterkategorien China bzw. USA enthalten sind.

Zustimmung, aber obwohl ich wahrscheinlich

:grin:. Diese Aussage wird helfen, den tiefen Ansatz zu ent-emotionalisieren.

Kannst du das genauer erklären oder gibt es ein Beispiel dafür?
Ist diese Anpassung der Navigationsleiste irgendwie dasselbe wie zu Beginn dieses Beitrags unter [1] gefordert?

Ich habe Mockups erstellt, die eine mögliche Roadroad visualisieren und postulieren, dass die Ebene „Nation" und „Städte" nicht nebeneinander existieren können, indem man sie jeweils zu Unterkategorien der lokalen Knoten macht.

  1. Startseite sind Kategorien

  2. Startseite sind Kategorien, aber lokale Knoten schießen wie Pilze aus dem Boden

  3. Startseite Tags, ein benutzerdefiniertes Theme sorgt für ein Layout wie bei Kategorien