hi,
Meines Erachtens ist das eigentlich gar nicht so richtig gut möglich, weil in einem Hypertextsystem ja alles mit allem verknüpft ist irgendwie.
Genau hier wäre der Ansatz: Nicht irgendwo verknüpfen, sondern über eine maschinenlesbare Projektverwaltung. Was dazu in Frage kommt: Adjacency List Model versus Nested Sets.
Gut, es gibt die Homepage, die man als Level 1 bezeichnen könnte. Aller Verlinkungen, die sich dort finden, sind Level 2. Alle Verlinkungen, die sich nur auf Level 2 befinden, aber nicht auf Level 1, könnte man als Level 3 bezeichnen.
Genau.
Wie wäre hier Eure Herangehensweise?
Ich habe mich für ein vereinfachtes Adjacency List Model entschieden. Vereinfacht heißt, dass sämtliche Webressourcen in meinem Framework einen parent haben, wobei parent nur eines der Attribute ist für Webressourcen, die jeweils einen eindeutigen URL bekommen. Somit liegt meine Projektverwaltung maschinenlesbar in Form einer Routing-Table vor. Letztere hat einen statischen und einen dynamischen Teil. Der statische Teil beinhaltet die virtuellen Ordner (URLs), welche darunterliegende Anwendungen oder Dokumente als Attribut parent bekommen. Beispielsweise stelle ich ein neues Dokument ein und konfiguriere die Attribute:
<!-- title=High Performance URL Routing -->
<!-- descr=Die Routing Table ist als Binary direkt in ein Perl-Modul kompiliert und wird mit require eingebunden -->
<!-- parent=/notes -->
<!-- no_cache=1 -->
Attribute parent siehe oben. Der parent selbst ist ein virtueller Ordner, konfiguriert in der statischen Routing-Table:
[/notes]
title=Notizen eines Webprogrammierers
descr=Eigene Entwicklungen und Gedanken über das, was Andere so machen
parent=/blog
isa=folder
class=Folder
short=Notizen
In Summa hat jede Webressource (URL) eine Liste von Attributen, wobei allein mit dem parent-Attribut eine Hierarchie dargestellt werden kann. Für eine solche Darstellung wird die gesamte URL-Map einmal durchlaufen, womit sich die Childs als Liste ergeben.
Horst
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.