Sie haben bestimmt schon einmal einen spannenden Beitrag gelesen und wollten weiterführende Links besuchen. Defekte Links sind dann eine Ärgernis für Besucher, entwerten die Qualität des Inhalts und auch Suchmaschinen können wohl auch nur abwertend reagieren, wenn viele defekten Links auftreten. Von einer qualitativen Website kann man ordentliche Inhaltspflege erwarten.
Zumindest bei externen Links sind die Möglichkeiten eines CMS sehr begrenzt. Nach dem W3C gibt es keinen verbreiteten Standard, welcher unser System (Linkquelle) über die Löschung eines Linkziels sofort benachrichtigt. Es bleibt nichts anderes übrig als eine periodische Prüfung sämtlicher Links.
Was Drupal bereits bietet
Unter Drupal 6 wurde bereits an diesem Thema gearbeitet. Es gibt bereits zahlreiche Module, welche die Eingabe, Umwandlung und Darstellung von Links. Zusätzlich gibt es das Modul Linkchecker, welches Links extrahiert und regelmässig auf Verfügbarkeit prüft.
Das Modul wurde noch nicht abschliessend auf Drupal 7 portiert und unsere Vision von Linkintegrität geht über die verfügbaren Funktionen noch weit hinaus.
Die Vision von Link-Integrität
Ein optimales System soll alle technischen Möglichkeiten einsetzen, um maximale Link-Integrität zu erreichen. Bei Links sind zwei Fälle zu unterscheiden.
Interne Links
Drupal sollte für interne Links ein umfassendes Verständnis haben. Die Integrität sollte vollständig durch das System selbst garantiert werden. Über allfällige defekte Links nach dem Löschen von Inhalt sollte unmittelbar benachrichtigt oder allenfalls vor dem Ausführen der Aktion rückgefragt werden.
Externe Links
Nach der ersten Verwendung soll möglichst unmittelbar, und darüber hinaus in geeigneten Intervallen, das Linkziel geprüft werden. Informationen über das Link-Ziel sollen gesichert werden.
Wo möglich sollen Techniken wie z.B. Pingback / Trackback eingesetzt werden.
Benutzer-Schnittstelle (User Interface / UI)
Bei der Erstellung von Links soll das System Dialoge zur Verfügung stellen, welche den Benutzer bestmöglichst assistieren. Zieladressen können z.B. bereits bei der Eingabe validiert werden. Bei internen Links kann das System eine effiziente Suche bereitstellen. Ein Autocomplete, welches an der Tabelle der bereits verwendeten Links ansetzt, ist sinnvoll. Extrahierte Metadaten des Linkzieles können bereits im Eingabe-Dialog präsentiert werden.
Benutzer sollen einen Überblick über den Validierungsstatus ihrer Dokumente haben. Bei neuen unerreichbaren Link-Zielen soll der Autor des Dokumentes welches den Link enthält benachrichtigt werden.
Die Historie der Linkprüfungen soll langfristig geführt werden. Pro Link sollen die Prüfungen aufgeführt werden und Entwicklungen über Ereignisse visualisiert werden.
System
Umleitungen sollen wenn möglich automatisch übernommen werden.
Die Häufigkeit von Clicks auf Links soll aufgezeichnet werden, um die Akutheit von falschen Links zu eskalieren.
Zur wissenschaftlichen Beweisführung kann das System zum Zeitpunkt der Link-Verwendung vom Link-Ziel den Inhalt extrahieren und persistieren (Snapshot). HTML wie auch ein Screenshot kann sinnvoll sein.
Beim Auffinden von defekten Links soll entweder der Inhalt komplett deaktiviert, oder aber im Inhalt nur ein einzelner Link deaktiviert und symbolisch ausgezeichnet werden. Bei vorhandenem Snapshot kann auf die letzte persistierte Version verwiesen werden.
Geeignete Events/Hooks erlauben individuellen Modulen auf Ereignisse zu reagieren.
Historisch / Wissenschaftlich VS Aktuell
Der Charakter des Inhalts bestimmt den inhaltlichen Umgang mit defekten Links.
Bei wissenschaftlichen Arbeiten muss der Inhalt - und somit auch die Links - in unveränderter Form erhalten bleiben. Das System soll dann die Arbeit durch das Schaffen von Snapshots in Beweiskraft bei evtl. unerwünschten Änderungen des Ziels unterstützen.
Bei aktuellen Verzeichnissen, Lernbeiträgen, Wissens-Datenbanken uvm. hingegen muss ein Inhalt aufgrund veränderter Umgebung angepasst werden.
Ziel
Das Ziel dieses Projektes ist es, Drupal ein gutes Stück näher an die Vision zu bringen.
Links im HTML/W3C Standard
http://www.w3.org/TR/html40/struct/links.html
W3C Linkchecker
http://validator.w3.org/checklink
Drupal Modul Linkchecker
http://drupal.org/project/linkchecker