Präprozessierung mittels XSLT

Ideen und Vorschläge sind willkommen.

Präprozessierung mittels XSLT

Beitragvon surfvive » Mo Sep 23, 2013 10:11 pm

Bei der Frage, wie sich eventuell die Inhaltserschließung diverser Websites verbessern lässt, würde ich gerne einen Vorschlag zur Diskussion stellen, den ich bereits in einem anderen Projekt erfolgreich anwenden konnte.

Grundlage ist die Annahme, dass YaCy jeweils dedizierte Webseiten crawlt, also ein Crawl eines bestimmten Webangebotes (oder Teils davon) vorgenommen wird. Weiter trifft zu, dass Weangebote in der Mehrheit Template-basiert sind, der Inhalt also einer definierbaren Struktur folgt. So lässt sich formal bestimmen, welche Fragmente der Seite inhaltstragend sind und welche für die Indexierung uninteressant sind, oder aber für den Crawler relevant (navigationale Elemente).
Mein Vorschlag wäre, zwischen Crawler und Indexer die Möglichkeit einzuführen, die erfassten Seiten mittels XSL-Skripten manipulieren zu können. Gerade für dedoizierte Crawls könnte ein Transformationsskript etwa die Seiten nach ihrem Inhalt "selektieren", bzw. auf die relevanten Teile "stutzen". So könnte etwa eine News-Seite auf den jeweiligen Artikel reduziert werden (alle umgebenden Elemente werden entfernt) und relevante Links in einer Liste gesammelt angefügt werden. Der Indexer würde dann nur den relevanten Text indizieren, der Crawler hingegen den relevanten Links aus der entsprechenden Liste folgen können. Bei reinen Portal-Seiten könnte der Inhalt hingegen gänzlich verschwinden und nur die Links auf relevante Teile wiedergegeben werden.
Eventuell lässt sich mittels der Skripten auch eine "kleine Heuristik" bauen, die dabei helfen kann relevante Seiten/Elemente zu selektieren. Ich denke, dass dies besonders für spezialisierte Peers interessant sein könnte.
Nachteilig würde sich das ganze sicher auf die Geschwindigkeit des Crawlers auswirken, sodass man abwägen/abschätzen müsste, ob sich tatsächlich Vorteile ergeben.

Ein anderer Vorteil, der sich quasi nebenbei noch ergeben würde: im Rahmen der Transformation kann das Prinzip der Blacklists noch feiner definiert werden, da im Rahmen der Transformation das Wissen über Struktur und Inhalt der Seite vorliegt. Ein solches Skript könnte folglich weitere Links aufgrund der "Umgebung" ausschließen oder gar hinzufügen, bzw. modifizieren.
surfvive
 
Beiträge: 23
Registriert: Do Mai 24, 2012 9:02 am
Wohnort: Hannover

Re: Präprozessierung mittels XSLT

Beitragvon Orbiter » Di Okt 22, 2013 2:05 pm

das ist eine super Idee! Wäre das Anwendungszenario folgendermaßen:
- beim Crawl Start gebe ich so eine XSLT an. Man könnte das so machen, dass man das nur kann, wenn man den Crawl auf eine Domäne begrenzt. Dann kann man eine XSLT angeben, die eben genau auf die Dokumente der Domäne passt.
- der Crawler transformiert alle Dokumente vor dem Parsen

Oder wäre ein allgemeines XSLT-Archiv mit matches für bestimmte URL-regexe besser?
Würdest du Beispiel-XSLTs machen, die z.B. auf mediawiki, phpbb etc passen?
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Präprozessierung mittels XSLT

Beitragvon surfvive » Mo Nov 04, 2013 1:53 pm

Ich habe mir bezüglich der Umsetzung noch keine konkreten Gedaken gemacht. In einem anderen Projekt hatte ich eine bestimmte "Klasse" von Webseiten, daher konnte ich mittels XSLT eine art "Heuristik" basteln, die das entsprechend geeignete Stylesheet ausgewählt hat.

Ich könnte mir beide von Dir vorgeschlagenen Herangehensweisen vorstellen. Zum einen könnte man ein lokales Stylesheet für einen bestimmten Anwendungsfall erstellen, zum anderen könnten auch generische Stylesheets für etwa Foren oder Blogs zur Verfügung gestellt werden. Mir schwebt da etwas, wie ein User-Repository vor, aber das wäre wohl etwas weit gegriffen.
Ich denke eine automatisierte Vorauswahl wäre dann für Massenhoster, wie Blogger, Wordpress oder Foren-Hoster (um beim Beispiel zu bleiben) eventuell möglich.
Man müsste abschätzen, wie stark sich das im Fehlerfall (falsches Stylesheet automatisch gewählt) auswirkt. Eventuell kann man auch ein Pre-Test machen (ähnlich, wie der Test der robots.txt im CrawlStartExpert) einbauen, der versucht einen Stylesheet vorzuschlagen. Andererseits bedeutet das wohlmöglich zu viel Arbeit, um alle Fälle abzudecken.
surfvive
 
Beiträge: 23
Registriert: Do Mai 24, 2012 9:02 am
Wohnort: Hannover

Re: Präprozessierung mittels XSLT

Beitragvon maithly » Mi Dez 11, 2013 1:27 pm

In dem Zusammenhang würde mich nämlich auch interessieren, ob tatsächlich openjdk-6-jre notwendig ist oder ob nicht auch openjdk-6-jre-headless langt. Letztere ist nämlich um einges schmaler, und ich habe nicht so gern so viel Krempel auf dem Server ;-)
maithly
 
Beiträge: 1
Registriert: Mi Dez 11, 2013 1:25 pm

Re: Präprozessierung mittels XSLT

Beitragvon Orbiter » Mi Dez 11, 2013 1:59 pm

openjdk-6-jre-headless sollte reichen. Also es soll per Definition für die linux-Distro reichen.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main


Zurück zu Wunschliste

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron