Zur Boardunity Forenstartseite
  1 links from elsewhere to this Post. Click to view. #1  
Alt 22.11.2007, 21:52
Benutzerbild von LonelyPixel
UNB-Entwickler
 
Registriert seit: 01.2004
Ort: Erlangen
Beiträge: 970

Versionierte Tags?


Diese Frage betrifft die aktuelle Entwicklung meines UNB2. Ich habe zwar schon Code geschrieben, aber der kann jederzeit wieder vollständig geändert werden. Ansonsten bin ich noch tief in der Entwurfsphase, in der ich mir überlege, wie alles zusammenarbeiten soll. Zunächst ein paar Hintergrundinformationen zur Situation:
UNB2 („UNB Components“) wird eine Art Grundsystem, das Funktionen zum Umgang mit Mitteilungen und deren Klassifizierung bereitstellt, wie sie in Webforen, Wikis, CMS, Fotoalben, Weblogs oder Bug-Trackern angewendet werden. Darauf aufbauend kann eine Oberfläche entwickelt werden, die alle diese Fähigkeiten mehr oder weniger spezialisiert zur Verfügung stellt. Als erste Beispielanwendung soll ein hochgradig integrierbares Webforum entstehen.

Fest steht bislang, dass die einzelnen Mitteilungen durch Tags klassifiziert werden. Unterforen soll es keine geben, da das ein schwächeres und redundantes Verfahren wäre. Die Tags können nicht frei eingegeben werden, sondern sind in einer (optional hierarchischen) Liste vorgegeben. Diese Tags können auch als Attribute mit Werten verwendet werden, wie für Metadaten zum Text, z.B. der Ort eines Geschehens oder der Status eines Supportfalls. Außerdem werden Mitteilungen versioniert, d.h. frühere Versionen können wie von Wikis bekannt abgerufen und verglichen werden. Zu den versionierten Daten gehören bislang der Textinhalt, der Betreff/Titel, Datum und Verfasser sowie eine eventuelle Dateianlage. Nicht versioniert werden bislang die Referenzen zu anderen Mitteilungen (durch die u.a. zusammenhängende Diskussionen entstehen), Zugriffslisten, der Seitenname (für Wiki-like-Nutzung) sowie die zugewiesenen Tags.

Dateien sollten wohl am besten wie Mitteilungen behandelt werden: Der Textinhalt bildet die Dateibeschreibung, die Dateianlage wird separat (als Datei oder in der Datenbank) gespeichert, Textinhalt und Dateianlage werden ganz normal versioniert. Ein kurzer Blick in die Wikipedia zeigt, dass zu versionierten Dateien auch versionierte Metadaten gehören, z.B. Dimensionen eines Bilds. Jetzt ließen sich die Metadaten der Dateien eigentlich ganz gut mit den Tags mit Textwerten speichern, ein Tag speichert die Breite, eins die Höhe, eins den Kameratyp und noch eins die Belichtungszeit. Aber leider können sich diese Daten mit neuen Bildversionen ändern, weshalb sie nicht zur Mitteilung sondern zur Mitteilungsrevision gehören.

Die Moderation ist auf beiden Ebenen möglich. Einzelne Revisionen müssen (optional) durch einen Moderator genehmigt werden, bevor sie öffentlich sichtbar sind. Das betrifft sowohl die erste Revision einer neuen Mitteilung als auch bearbeitete Versionen. (In der Wikipedia wird das „stabile Version“ genannt.) Einzelne Versionen können zudem nachträglich gesperrt werden, um sie im Notfall schnell von der Bildfläche verschwinden lassen zu können. Komplette Mitteilungen können ebenfalls gesperrt oder auch versteckt werden.

Eine andere Situation ist folgende: In einem Bug Tracker gibt es neben der eigentlichen Problembeschreibung auch eine Reihe weiterer Felder, wie Komponentenname, Verantwortlichkeiten, Versionsangaben oder den Bearbeitungsstatus. Diese Angaben ändern sich im Lauf der Bearbeitung eines Falls. Hier wäre es u.U. hilfreich, sich die Geschichte der Änderungen dieser Angaben anzusehen. In gebräuchlichen Bug-Tracker-Systemen wird zudem eine „Antwort“ generiert, die über den geänderten Status informiert; diese Mitteilungen werden wie alle Benutzerkommentare ebenfalls an alle Benachrichtigungsempfänger gesendet.
In diesem Rahmen stellt sich mir nun die Frage, ob die Zuordnung von Tags nicht auch versioniert werden sollte. Das bedeutet, dass jede Revision der Mitteilung separate Tags zugeordnet haben kann, und man ihre Geschichte nachvollziehen kann, insbesondere auch, wer wann eine Änderung durchgeführt hat.

Versionierte Tags haben zunächst den offensichtlichen Vorteil, dass die Metadatentabelle der Dateianlagen wegfällt, da sie nicht mehr benötigt wird. Auch für das genannte Szenario für Bug Tracker hätte diese Vorgehensweise einen Vorteil. Doch streng genommen dürfte es wiederum ausreichen, bei Änderung von Attributen eines Supportfalls automatisch eine Antwortmitteilung zu generieren, die über die Änderung Auskunft gibt.

Versionierte Tags haben auch eine Reihe von Nachteilen. Das Problem, dass selbst bei Änderungen, die ausschließlich den Betreff/Titel und nicht den Textinhalt betreffen, eine neue Revision mit identischem Textinhalt abgespeichert werden muss, verschärft sich noch weiter, wenn jede Tag-Änderung zu einer neuen Revision führt. Außerdem wird die Suche nach Tags komplizierter, da jetzt zunächst die letzte freigegebene Mitteilungsrevision gefunden werden muss, deren Tags verglichen werden können. Andererseits ist diese Code-Komplexität für die Suche nach Datei-Metadaten sowieso erforderlich und könnte mit dieser Funktion wiederum vereint werden. Außerdem könnte man beim Freigeben (Genehmigen) bzw. Sperren einer Mitteilungsrevision auch die Nummer der neuesten freigegebenen Revision speichern, was den Table-Join vereinfacht.

Ein anderer Nachteil kommt aus dem Moderationsprozess. Da jede neue Revision zuerst genehmigt werden muss, führt auch die Umklassifizierung (Änderungen an den Tags) einer Mitteilung dazu, dass diese Änderungen genehmigt werden müssen, bevor sie sichtbar werden. Allerdings werden es wohl oft Moderatoren sein, die Tags ändern, und Änderungen durch Moderatoren werden ohnehin automatisch genehmigt. Eine weitere Lösung des Problems könnte sein, für alle neuen Revisionen, bei denen weder Betreff, noch Textinhalt oder Tags mit Werten verändert werden (also nicht irgendwie die Möglichkeit besteht, neuen Text zu veröffentlichen), den Genehmigungsstatus der ursprünglichen Revision zu übernehmen. Bei einfachen Tag-Zuordnungen würde dabei keine erneute Genehmigung notwendig.

So, das war jetzt eine lange Beschreibung meines Anliegens. Ich hoffe, dass mir alle interessierten Leser bis hierhin folgen konnten und ich ein paar Einschätzungen oder neue Ideen von euch erhalten kann. Bei Unklarheiten bitte einfach fragen.
__________________
Yves Goergen
Softwareentwicklung, Fotografie, Webhosting, UNB Components (in Arbeit)
  #2  
Alt 03.01.2008, 12:59
Unregistriert
Gast
 
Beiträge: n/a
Meine bescheidenen 2 Cent:

Dein Konzept von UNB2 scheint extrem auf der Vereinheitlichung aller Inhalte aufzubauen, sei es vom Inhalt her (Blogpost, Forenbeitrag, Dateianhang etc), aber auch von den Metadaten. Und da Metadaten auch nur Daten sind, ist es nur konsequent beide gleich zu behandeln. Du hast dies vor bei Titel und anderen Metadaten, willst aber bei den Tags aufhören? Scheint mir nicht logisch zu sein.

Tags = Metadaten = Daten = zu versionieren.
Bisher habe ich kein CMS gefunden, das diesen zugegebenermaßen mutigen Schritt gegangen ist. Wenn Du dies so realisieren würdest, wäre das ein echtes Alleinstellungsmerkmal und würde UNB2 über die Masse der CMS herausheben.

Die codetechnischen Schwierigkeiten dies performant zu realisieren sind da doch eher nebensächlich :-) Außerdem sollte eine Tagänderung eher selten vorkommen, z.B. bei Moderation oder Neugruppierung von existierenden Inhalten. Also: Nur Mut!

PS: Sehe erst jetzt beim Schreiben dieser Antwort, dass dies auch im UNB Forum diskutiert wird. Jetzt habe ich aber meinen Senf in Worte gefaßt, dann schicke ich ihn auch ab.

Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu

LinkBacks (?)
LinkBack to this Thread: http://boardunity.de/versionierte-tags-t5452.html
Erstellt von For Type Datum
Versionierte Tags? - Unclassified NewsBoard This thread Refback 05.12.2007 14:08

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ideen sammeln für eine andere Art Forum LonelyPixel Entwicklung und Konzeption sozialer Software 34 26.10.2007 13:04
Überarbeitung Boardunity Magazin Jan Stöver Informationen, Anregungen und Kritik 29 22.12.2006 17:43






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24