Yahoo-Pipes-Kurs: „Mein Netzwerk“

Ich habe bereits die Yahoo-Pipes vorgestellt und kundgetan, wie gut ich dieses System finde. Da nicht jeder auf Anhieb weiß, wie man nun so eine Pipe erstellt und ich zudem davon überzeugt bin, dass Pipes sich für viele als sehr nützlich erweisen, schreibe ich hier nun ein kleines Tutorial zu diesem Thema.

Der aufmerksame Besucher meines Blogs hat bestimmt schon in der rechten Spalte der Startseite das Sidebar-Widget „Mein Netzwerk“ entdeckt. Hier werden alle neuen Inhalte meines sozialen Web2.0-Netzwerks angezeigt. Dies bedeutet, dass hier alles das auftaucht, was meine Freunde und Bekannten im Web2.0 publiziert haben. Dies sind zur Zeit Blog-Einträge, Links und Fotos. All diese Inhalte werden umgekehrt-chronologisch in einem Feed aggregiert (gesammelt und zusammengefügt).

Der große Vorteil dieses aggregierten Feeds ist es, dass ich nur noch in ein Feed schauen brauche, um zu sehen, was meine Freunde so treiben. Ohne diesen Feed müsste ich in jeden einzelnen Feed schauen. Das wären in meinem Fall über 10 Feeds. Zudem habe ich durch den zusammengeführten Feed die Übersicht über die zeitliche Dimension.

Ich denke, dass diesen Feed jeder für sein eigenes Netzwerk gebrauchen kann. Hier nun die Anleitung und Einführung zu Yahoo Pipes und der Pipe „Mein Netzwerk“:

Yahoo-Account:

Um die Yahoo-Pipes überhaupt nutzen zu können, brauchst Du einen Yahoo-Account. Also einfach registrieren und/oder anmelden. Nach dem Login bei Yahoo-Pipes einfach auf „create pipe“ klicken und das nachmachen, was ich nun beschreibe.

Pipe: „Mein Netzwerk“

„Mein Netzwerk“ funktioniert folgendermaßen:

  1. Alle Feeds (RSS oder Atom) meiner Freunde, Bekannten und Kollegen abrufen
  2. Alle Feeds in einen Feed zusammenführen und dabei
    • normalisieren
    • Mehrfacheinträge auf jeweils einen reduzieren
    • umgekehrt-chronologisch sortieren
  3. Ergebnis als Feed ausgeben

Mit dieser Auflistung ist das Programm eigentlich schon komplett. Dieses Vorhaben muss also nur noch als Yahoo-Pipe zusammengesetzt werden. Dies sieht im Überblick so aus:

Prinzip von Yahoo-Pipes:

In Yahoo-Pipes wird sozusagen grafisch programmiert. Es werden also die einzelnen Bausteine aus der Bauklötzchenkiste herausgeholt und miteinander verdrahtet.

Es existieren folgende Bauklotzkisten:

  • Sources
  • User inputs
  • Operators
  • Url
  • String
  • Date
  • Location
  • Number
  • My pipes

In unserer Pipe werden wir nur Bauklötze aus den fett-markierten Bauklotzkisten nehmen. Aus „Sources“ nehmen wir einen Bauklotz, um die Feeds zusammenzutragen, aus „Operators“ nehmen wir Bauklötze, um die gesammelten Feeds zu bearbeiten und „My pipes“ werde ich zum Schluss beschreiben und zeigen, welche fantastischen Möglichkeiten sich daraus ergeben.

Feeds sammeln

Zunächst musst Du alle Feeds deines Netzwerks zusammentragen. Hierzu nehmen wir den Baustein „Fetch Feed“ aus den Sources und ziehen ihn aufs Reißbrett.

Hier tragen wir alle Feed-URL’s deines Netzwerks nacheinander ein. Reichen die Felder nicht aus, so einfach auf das „Plus-Symbol“ klicken, um ein weiteres Feed-Eingabefeld zu erzeugen.

Übrigens solltest Du nach Möglichkeit vor allem Feeds nehmen, die schon aggregiert sind. Bei del.icio.us wäre dies der Feed mit dem Namen „Your network“, bei Flickr der Feed zu deinen Kontakten und vielleicht hast Du ja schon mit Feedburner einen passenden Feed zusammengetragen. Die restlichen Feeds wären die, aus den Blogs und ähnlichen Services deiner Freunde.




In Firefox mit rechtem Mausklick auf das Feed-Symbol in der Adressenleiste und Vorschau anzeigen.

Pipe Debugger

Der Pipe-Debugger dient dazu, zu sehen, wie sich die Daten im Verlauf der Pipe verändern und ob sie sich wunschgemäß ändern. Um diese Veränderung an einem bestimmten Punkt der Pipe zu sehen, musst Du einfach auf den Baustein klicken, dessen Ergebnis dich interessiert. Nach einem Augenblick wird das Ergebnis unterhalb der Arbeitsfläche ausgegeben.

Klickst Du nun auf „Fetch Feed“ so siehst Du alle Einträge der Feeds in der Reihenfolge, wie Du sie angegeben hast. Da dies nicht das ist, was wir haben möchten, müssen wir also noch einiges an diesem zusammengetragenen Ergebnis ändern.

Pipe normalisieren

Zunächst: Was bedeutet die „Pipe normalisieren“?

Am Ende der Yahoo-Pipe möchten wir einen verwertbaren Feed bekommen. Damit Yahoo-Pipe die Daten entsprechend ausgeben kann, müssen sie in definierten Feldern vorliegen. Diese sind hauptsächlich:

title (bzw. item.title)
Der Titel des jeweiligen Eintrags.
link (bzw. item.link)
Der Link des jeweiligen Eintrags.
description (bzw. item.description)
Die Beschreibung bzw. das Exzerpt des jeweiligen Eintrags.
pubDate (bzw. item.pubDate)
Das Veröffentlichungsdatum des jeweiligen Eintrags.

Da wir nun verschiedenste Feeds zusammenführen, kann es sein, dass ein Feld eines Feeds anders heißt und so im Ergebnis nicht so dargestellt werden würde, wie gewünscht. Es kann auch sein, dass wir für bestimmte Einträge andere Werte verarbeiten möchten. So interessiert mich z.B. bei Fotos nicht der Upload-Zeitpunkt, sondern der Zeitpunkt der Aufnahme des Fotos. All diese Faktoren erfordern es, sich im Debugger die einzelnen Einträge mal anzuschauen und vor allem auf die oben erwähnten Felder zu achten. Yahoo-Pipes bietet viele Operatoren, um die Daten so zu formen, wie wir sie haben möchten.

Jetzt normalisieren wir die diversen Feeds, damit wir das gewünschte Ergebnis erreichen. Bei Flickr-Fotos interessiert mich z.B. nicht das Upload-Datum des betroffenen Fotos, sondern wann das Foto geschossen wurde. So überschreibe ich den Wert "pubDate" (Publikationsdatum) mit "item.dc:date.Taken" (Aufnahmedatum des Fotos). Einige Feeds beinhaltet statt des Werts "pubDate" den Wert "item.issued". Deshalb erzeugen wir den Wert "pubDate", indem wir den Wert "item.issued" dort hinein kopieren. Dies alles machen wir mit dem Operator „Rename“, welcher auch zum Kopieren genutzt werden kann. Also einfach „Rename“ in die Arbeitsfläche ziehen und mit dem „Fetch Feed“ verbinden und entsprechend parametrisieren.

Schließlich müssen wir nur noch eventuelle doppelte Einträge löschen. Dies erledigt der Operator „Unique“, welchen wir mit „Rename“ verbinden. Als Merkmal zum Ausfiltern nehme ich den Link des Eintrags. Dieser Wert heißt: "item.link".

Pipe sortieren

Durch die Normalisierung können wir die Pipe nun nach „pubDate“ absteigend sortieren. Dies erledigen wir mit dem Operator „Sort“, welchen wir mit „Unique“ verbinden.

Pipe output

Jetzt ist die Pipe im Grunde fertig. Das Ergebnis müssen wir nun einfach ausgeben, indem „Sort“ mit „Pipe output“ verbunden wird. „Pipe output“ sorgt dafür, dass die Pipe ihrerseits einen Feed als Ergebnis liefert.

Fertig! Und weiter!

Die Pipe ist nun fertig und kann verwendet werden. Nach dem Speichern und ausführen über den Link „Run Pipe…“ bekommst Du das Ergebnis präsentiert. Dort gibt es den Button „Subscribe“, worüber Du an den Feed-Link gelangst.

Anfangs erwähnte ich noch den Bauklötzchenkasten „My Pipes“ und betonte die fantastischen Möglichkeiten, die sich hiermit ergeben. Der Grund ist: Bei jeder weiteren Pipe, die Du zusammenbaust, kannst Du deine bereits erstellten Pipes als Baustein mit einbauen. Wenn Du also z.B. eine eigene Web-Suche mit Yahoo-Pipes zusammenbaust, kannst Du die Pipe „Mein Netzwerk“ mit in die Websuche einbauen und so eine Suche realisieren, die zunächst Suchergebnisse aus deinem Netzwerk auflistet und danach aus dem restlichen Web. Dies ist nur ein Beispiel. Der Phantasie sind da kaum Grenzen gesetzt.

Vorlage

Und hier ist die Vorlage für „Mein Netzwerk“: My Network Template. Einfach auf „Clone“ klicken und die entsprechenden Feeds in den „Feed Fetch“-Baustein eintragen.