Vor 20 Jahren am 15.12.2003 wurde YaCy ins Leben gerufen… jedenfalls steht es so in der englischen Wikipedia als “Initial release”.
Ich weiss nicht mehr warum mich Ende 2003 der Heise-Artikel “Microsoft will 2004 eigene Suchmaschine präsentieren” so getriggert hat, aber es war die Zeit, in der Napster, Gnutella und eDonkey zwar illegal aber dennoch überzeugend gezeigt hat, wie sehr ein digitales Distributionsmodell über ein physisches dominieren kann. Es gab damals keine kommerzielle Streaming oder Downloads für Musik und Steve Jobs hatte erst im April 2003 den iTunes Store vorgestellt: der erste digitale Shop für Musik.
So kam es dass ich zum Heise-Artikel den Kommentar “Ich entwickle eine P2P-basierende Suchmaschine. Wer macht mit?” schrieb.
Die Idee, eine Suchmaschine ähnlich zum Filesharing als Peer-to-Peer Netzwerk auszugestalten kam mir spontan, aber nicht ohne eine Vorgeschichte zum Thema Suchmaschinentechnik. 2003 war ich Berater in einem langweiligen Projekt in Wien. Ich hatte gerade erst angefangen in Java zu programmieren und experimentierte in meiner privaten Zeit - abends im Hotel - mit einem selbstgestrickten FTP Server und ein paar Ideen zum Thema Web-Scraping herum; das nächste Projekt drehte sich um einen möglichen http Proxy. Die Software hatte ich bereits unter der “Marke” anomic.de publiziert und das Internet Archive hat eine Kopie davon: Anomic Software
Es war also nicht allzu weit hergeholt dass ich mit Suchmaschinen- und Webtechnologie experimentierte, aber der P2P-Anteil fehlte noch. Der Name war damals noch nicht “YaCy”, sondern der Terminologie meines FTP Severs “AnomicFTPD” folgend hieß YaCy dann erst mal “AnomicHTTPProxy”.
Damals glaubte ich dass der Betrieb eines persönlichen Caching HTTP Proxies ein Mehrwert darstellt (da gab es noch Modems!) um den Internet-Traffic zu beschleunigen und so war die erste Version von YaCy nur ein Proxy und nicht ein Crawler.
Erst im August 2004 kam es zur Ersten Webseite https://yacy.net
Damals besaß ich diesen lüfterlosen Mini-Rechner, einen Lex Light CV860A 533MHz mit 256MB RAM. Das wurde der erste YaCy Peer und war der Seed-Server des Netzwerks.
Die Entwicklung fand damals ohne Versionsverwaltung statt, wir schickten uns einfach diff-Files in Emails. Auf der Suche mach mehr Publikum rief ich Wolfgang Sander-Beuermann von metager.de an um ihn von der Idee eines Scraping Proxy, der eine Suchmaschine anfüttert, zu begeistern. Er lehnte das Konzept ab, eine Suchmaschine braucht einen Crawler meinte er. Weil diese Technik ja bereits bei mir durch das Plasma-Projekt vorhanden war baute ich das kurzerhand ein und so wurde aus dem Proxy ein Crawler. Wolfgang kannte einen Redakteur der Hannoverschen Allgemeinen Zeitung und so kam es zum ersten Artikel “Jedermanns Suchmaschine” in der HAZ: nach einem Jahr Entwicklungszeit, im Dezember 2004.
Im Januar 2005 gab es dann in der c’t 02/2005 einen ganz kleinen Artikel “Suchmaschine sucht Tauschpartner”. Etwa sechs Wochen lang passierte fast gar nichts, es wirkte es hätte das niemand gelesen - und dann kamen Unmengen an Anfragen bei uns rein um mitzumachen. Plötzlich war es undenkbar den Code mit diffs hin- und her zu schicken und das erste Forum entstand und wir richteten eine SVN Repository auf Berlios ein. Seit dem gab es fast jeden Monat neue Zeitungsartikel, es war eine wilde Zeit.
Künstliche Intelligenz in der Zeit vor YaCy
Dabei begann alles eigentlich schon 1997 mit einem kleinen Shareware-Programm für die KI-Zuggenerator Version von dem Brettspiel Abalone: “Abbalone3D” war die digitale Variante des Brettspiels dass ich mit einem Freund zusammen entwickelte.
Wir wohnten nicht am gleichen Ort und der Datenaustausch von rund 1MB für den Programmcode konnte man nicht über ein Modem schicken, das war zur damaligen Zeit entsetzlich viel. Statt dessen schickten wir uns Disketten per Post! Damals konnte man sich so Briefmarken aus dem Briefkartenautomat ziehen und die 1 D-Mark Briefmarke sah genau so aus wie eine 10-Pfennig Marke, nur eine Null fehlte. Ich kaufte die 10-Pfennig Marke und malte eine zusätzliche Null drauf, schon konnte man günstig Megabytes versenden.
→
Wir erfanden damals die Marke “anomic” und so kam es zu dem Web-Auftritt für “AnomicFTPD” und schliesslich “AnomicHTTPD”, dem ersten YaCy.
Ich schloss dann Ende der 90er auch mein Informatikstudium mit Schwerpunkt Künstliche Intelligenz ab. Hier ist der Zusammenhang mit dem Abalone Brettspiel (für den Zuggenerator) und auch mit dem erst kürzlich etwas eingeschlafenen Projekt SUSI.AI, einem privacy-aware Personal Assistant. KI war damals mein primäres Interessensgebiet und bleibt es weiterhin. Aktuell ist 2023 das Thema KI auch wieder sehr interessant geworden, um hier mal ein wenig zu untertreiben. Suchmaschinen spielen hinter den Kulissen eine wichtige Rolle bei den großen Large Language Models, denn diese bestehen zu sehr großen Teilen aus Web-Scrapes. Hier schließt sich der Bogen für YaCy in die Zukunft: ich sehe großes Potential, YaCy als eleganten Datenlieferanten für spezialisierte Sprachmodelle einzusetzen.
Die Zukunft von YaCy
2016 hatte ich die Gelegenheit in einem Vortrag bei der FOSSASIA in Singapur über die Zukunft von Suchmaschinen zu philosophieren. Das Ergebnis ist einfach: die Suchmaschine der Zukunft beantwortet alle Fragen. Wir sind mit ChatGPT und den freien Sprachmodellen jetzt tatsächlich genau dort angekommen: man kann sich einfach ein Sprachmodell lokal installieren und sich selbst einen Dienst produzieren, der alle Fragen beantwortet. Die Suchmaschine der Zukunft ist da - und es ist gar keine Suchmaschine mehr. Wo können wir da mit YaCy hingehen?
Nachdem nichts und niemand Google und deren Monopolstellung angreifen konnte (wir mit YaCy erst recht nicht… trotz der Macht von Peer-to-Peer) schafft es nun die Künstliche Intelligenz. Sprachmodelle haben aber das Problem, dass sie zu generisch sind und keine Spezialkenntnisse z.B. von Unternehmenswissen haben. Wer ein Sprachmodell zu Spezialwissen möchte benötigt das Spezialwissen in Form eines semantischen Suchindexes. Die Technik der ad-hoc Anreicherung von LLMs mit Zusatzwissen nennt sich “Retrieval Augmented Generation”. Eine Suchmaschine, die einen Chat-Prompt als Suchanfrage benutzt, um in einer semantisch indexierten Datenmenge einen geeigneten Kontext für den Prompt zu suchen ist daher die notwendige Komponente, um Sprachmodelle mit Spezialwissen zu erstellen.
YaCy + Künstliche Intelligenz
In diesem Bereich arbeitet nun das neue YaCy Projekt “YaCy Expert”. Schon vor einem halben Jahr begonnen habe ich ein Parallelprojekt zu YaCy erstellt, welches aus einem YaCy Index Export eine semantische Suche für RAG-angereicherte LLMs bereitstellt. YaCy wird somit über dieses neue Projekt zu einem nützlichen Baustein für selbstbetriebene LLM-Chats.
Erst kürzlich habe ich daher die Möglichkeit in YaCy eingebaut, ZIM-Files zu importieren, im Hinblick darauf, die daraus entstandenen YaCy Indexe für YaCy Expert wieder exportieren zu können.
YaCy Chatbots?
Der logisch nächste Schritt wäre ein Projekt, dass mit Hilfe des semantischen Suchindexes aus YaCy Expert dann einen Chatbot baut. Wir wären dann fast genau dort, wo das SUSI.AI Projekt hinwollte. In diesem Sinne könnte man versuchen das SUSI Projekt wiederzubeleben, als Front-End und Framework für YaCy-angereicherte Spezial-Chatbots. Ein wenig habe ich bereits daran gearbeitet. Das ist ein spannendes Thema und eine gute Motivation YaCy auch weit über die 20 Jahre weiterzuentwickeln.