>>> \Alle Themen\Umwelt\Tierschutz\Aktionen\Demos\2015-04-03 Demo in X-Dorf
>>> \Alle Themen\Aktionen\Demos\Umwelt\Tierschutz\2015-04-03 Demo in X-Dorf
Da die Information 'Querschnittsthema' mMn idealerweise an der Beziehung
zweier Topics hängt, könnte ich mir eine mögliche Darstellung der Relationen
ähnlich dem folgenden pseudo JSON Objekt vorstellen, wobei ReferrsTo und
ReferredFrom Referenzobjekte mit den Eigenschaften 'Key' (bezeichnet das zu
referenzierende Topic) und 'Type' (bezeichnet die Art der Relation zwischen
zwei Topics; hier kennzeichnet 'ParentChild' eine Eltern-Kind-Beziehung
(klar) und 'Related' eine Querschnittsthema-Beziehung) enthielten:
TopicTree: [
{
Key:'Alle Themen',
ReferrsTo: [
{ Key:''Umwelt', Type:'ParentChild' },
{ Key:''Aktionen', Type:'ParentChild' }],
ReferredFrom: []
},
{
Key:'Umwelt',
ReferrsTo: [
{ Key:'Tierschutz', Type:'ParentChild' }],
ReferredFrom: [
{ Key:''Alle Themen', Type:'ParentChild' },
{ Key:'Demos', Type:'Related' }]
},
{
Key:'Tierschutz',
ReferrsTo: [
{ Key:'2015-04-03 Demo in X-Dorf', Type:'ParentChild' },
{ Key:'Aktionen', Type:'Related' }],
ReferredFrom: [{ Key:'Umwelt', Type:'ParentChild' }]
},
{
Key:'Aktionen',
ReferrsTo: [{ Key:'Demos', Type:'ParentChild' }],
ReferredFrom: [
{ Key:'Alle Themen', Type:'ParentChild' },
{ Key:'Tierschutz', Type:'Related' }]
},
{
Key:'Demos',
ReferrsTo: [
{ Key:'2015-04-03 Demo in X-Dorf', Type:'ParentChild' },
{ Key:'Umwelt', Type:'Related' }],
ReferredFrom: [{ Key:'Aktionen', Type:'ParentChild' }]
},
{
Key:'2015-04-03 Demo in X-Dorf',
ReferrsTo: [],
ReferredFrom: [
{ Key:'Tierschutz', Type:'ParentChild' },
{ Key:'Demos', Type:'ParentChild' }]
}]
Damit hätten wir wieder die Speicherung, welche ich in der letzten E-Mail
bereits angegeben hatte (ohne den Fehler bei X-Dorf).
Wenn man jetzt einfach so durch die ReferrsTo traversiert, dann bekommt man
folgenden (unschönen) Themenbaum:
Alle Themen
Umwelt
Tierschutz
2015-04-03 Demo in X-Dorf
Aktionen (==> 'Related')
Demos
2015-04-03 Demo in X-Dorf
Umwelt (==> 'Related' ==> Cycle)
Aktionen
Demos
2015-04-03 Demo in X-Dorf
Umwelt (==> Related)
Tierschutz
2015-04-03 Demo in X-Dorf
Aktionen (==> 'Related' ==> Cycle)
Dieser Themenbaum enthält aber wahrscheinlich folgendes Problem:
Topics können mehrfach innerhalb eines Astes (Teilthemenbaum)
erscheinen!
Dies ließe sich nun von der verarbeitenden Plattform (hier X-Tree-M) durch
die Anwendung folgender einfacher Regel beheben:
Ein Topic B wird genau dann im Themenbaum direkt unterhalb von Topic A
angezeigt,
(1) WENN Topic B nicht im direkten Pfad zur Wurzel vorkommt (No Cycle)
UND
(2) WENN alle direkten Eltern von Topic B ('ParentChild' Beziehungen in
ReferredFrom) im direkten Pfad zur Wurzel vorkommen
Durch die Anwendung dieser Regel sähe der Themenbaum beim Traversieren der
ReferrsTo dann folgendermaßen aus:
Alle Themen
Umwelt
Tierschutz
Aktionen
Demos
2015-04-03 Demo in X-Dorf
Aktionen
Demos
Umwelt
Tierschutz
2015-04-03 Demo in X-Dorf