Dead Reckoning - das neue Album kommt am 23. März 2007. Klick um mehr zu erfahren!

Miranda-Kontakte als FOAF exportieren

Alle Kontakte von meinen diversen Adressbüchern und Netzwerken in einer Adressbuchdatei im FOAF-Format zu speichern ist Teil meiner Vision, wie ich mein digitales Leben mit Semantic Web Technologien besser organisieren kann. Ich hab' Beatnik noch nicht ausprobiert, aber das könnte dabei auch ganz hilfreich sein. Das Ganze ist auch Teil meines Plans, semantisches Zeug ein bißchen tiefer in meine Website zu integrieren und schlussendlich zu zeigen, dass wir diese eingezäunten Datensilos von Social Network Plattformen nicht brauchen, aber dazu mehr, sobald ich mit meinen Ideen etwas Fortschritt erreicht habe.

Zunächst mal werden wir nur versuchen, ein paar Kontaktdaten zu konvertieren. Ich bin nicht gerade bei vielen Social Network Seiten angemeldet, weil ich sie nicht mag; ich gebe denen einfach nicht gern meine Daten. Wenn ich also mein soziales Netz mit FOAF selbst verwalten will, wo könnte ich Anfangen, meine Kontakte herzuholen? Die meisten meiner Freunde benutzen ICQ, also wären IM-Kontakte schonmal ein guter Anfang. Glücklicherweise kann ich aus dem Messenger, den ich benutze (Miranda IM), meine ganzen Kontakte in eine relativ simpel handlebare .ini-Datei exportieren. Um das zu tun, klicke auf das Hauptmenü, dann »Kontaktlisten Im-/Export«, dann »Export Kontaktliste«, bestätige die Warnung, wähle die Zieldatei und sag, dass Du Deinen Verlauf nicht speichern willst.

Diese Datei ist recht einfach aufgebaut: zu jedem Kontakt gibt es einen Abschnitt mit einer Nummer und in jedem Abschnitt finden sich mehrere Attribute. Wir werden nur die folgenden brauchen: »ID«, »CListNick«, »CListGroup«, »Proto« und »Hidden«. Jetzt brauchen wir noch etwas, um die Datei parsen zu können. Ich arbeite mit Java und hab' dafür die Bibliothek ini4j eingesetzt. Damit lesen wir die Datei ein und haben dann Zugriff auf die einzelnen Abschnitte und die Attribute eines Abschnitts als Java-Maps. Danach öffnen wir einfach eine andere Datei und schreiben das passende RDF/XML als Plaintext rein (wir brauchen übrigens noch unsere URI um andere mit uns in Beziehung setzen zu können).

Also, wir gehen durch die Abschnitte und überspringen jeden, der das Attribut »Hidden« hat (ich denke mal, das sind die Leute, die einen vergeblich anschreiben wollten oder die auf ignore gesetzt wurden). Wir benutzen das Attribut »CListGroup« um Mitgliedschaftsbeziehungen zu foaf:Groups herzustellen. »CListNick« dient als foaf:nick einer Person. Um »ID« als Identifikationsnummer benutzen zu können, müssen wir erst die passende Eigenschaft finden, wo wir diese reintun können. Daher ordnen wir den Wert in »Proto« (Protokoll) dem Namen eines FOAF-Attributs zu: »JABBER« nach foaf:jabberID, »ICQ« nach foaf:icqChatID und so weiter. Nachdem wir alle Kontakte geschrieben haben, schreiben wir die Gruppen und beenden dann die Datei. Das ist alles.

Jetzt hast Du eine valide FOAF-Datei mit den Daten aus Deiner IM-Kontaktliste. Das Ganze ist noch nicht perfekt, die Personen da drin sind zwar eindeutig durch ihre IM-IDs identifizierbar, aber sie haben noch keine URIs - und die Gruppen, die wir erstellt haben, auch nicht. Außerdem ist die Zuordnung dieser Einträge zu Leuten aus anderen Quellen eventuell nur manuell möglich. LiveJournal hat IM-IDs in seinen FOAF-Daten, aber ich glaube nicht, dass man danach suchen kann, also könnte man die Zuordnung nur mit Leuten machen, deren Account dort man schon kennt.

Mehr Details gibt's in der Java-Datei.




Kommentar hinzufügen Trackback senden