Ich habe mal ein kleines Plugin geschrieben welches den WordPress-Atom-Feed mit der ActivityStream-Syntax erweitert.

 <entry>
  <id>https://notiz.blog/?p=1775</id>
  <author>
    <name>Matthias Pfefferle</name>
    <uri>https://notiz.blog</uri>
  </author>
  <...>
  <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
  <activity:object>
    <activity:object-type>http://activitystrea.ms/schema/1.0/blog-entry</activity:object-type>
    <activity:object-type>http://activitystrea.ms/schema/1.0/article</activity:object-type>
    <id>tag:notiz.blog,2009-07-13:/post/1775</id>
    <title type="html"><![CDATA[Matthias Pfefferle posted a new blog-entry]]></title>
    <link rel="alternate" type="text/html" href="https://notiz.blog/2009/07/14/webstandards-kolumne/" />
  </activity:object>
</entry>Code-Sprache: HTML, XML (xml)

Die Syntax ist dazu gedacht, dem Feed-Parser/Feed-Reader zu erklären um was für einen Eintrag es sich handelt. Bei WordPress sind die <entry />s ausschließlich Blogposts/Artikel…

<activity:object-type>http://activitystrea.ms/schema/1.0/blog-entry</activity:object-type>
<activity:object-type>http://activitystrea.ms/schema/1.0/article</activity:object-type>Code-Sprache: HTML, XML (xml)

…die gepostet wurden.

<activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>Code-Sprache: HTML, XML (xml)

Und für die Dienste wie NoseRub, die die Aktivität gerne in einen Satz packen, gibt’s das ganze auch noch in Prosa.

<title type="html"><![CDATA[Matthias Pfefferle posted a new blog-entry]]></title>Code-Sprache: HTML, XML (xml)

Das ActivityStream Schema definiert übrigens noch ’ne ganze Reihe an weiteren Objekten und Verben, die auf alle möglichen Aktionen im Netz passen. Falls ihr also noch welche findet, die zu WordPress passen könnten… lasst es mich wissen 😉

Es gibt leider aber auch ein paar Probleme mit der Syntax und diversen Feed-Readern, die das zweite <title /> im <activity-object /> mit interpretieren und dann beide Titel ausgeben… aber da ja auch MySpace und Facebook die ActivityStream-Syntax einsetzen ist dieser Fehler sicherlich bald bei jedem Feed-Reader behoben 😉

Viel Spaß beim ausprobieren!

Anlässlich des gestrigen PortableContacts Hackathon bei Six Apart (Impressionen) und dem heutigen PortableContacts-Summit bei myspace beschäftigt sich die aktuelle SocialWeb.TV – Folge fast ausschließlich mit dem neuen „Building-Block“.

Zwar ist die Kritik von Stephen Paul Weber (der DiSo Code-Maschine):

Portable Contacts is an open spec – but it’s a bit of a stretch to call something a few days old and unimplemented as yet a „standard“.

nicht ganz abwegig aber Joseph Smarr (Plaxo), der Initiator von Portable Contacts, überzeugt mit einigen Argumenten warum sich das bald ändern könnte. Portable Contacts baut ausschließlich auf offenen Standards (OAuth, XRDS-Simple, JSON) auf und nutzt die gleiche Vorgehensweise wie die OpenSocial RESTful-API. Diese Eigenschaften machen neue Code-Libraries fast überflüssig (da PC eigentlich nur bestehende Standards sinnvoll verbindet) und gestalten die Implementierung, bei schon implementierter OS RESTful-API, relativ einfach.

Glaubt man der Aussage von Joseph im Video, soll der neue Standard noch bis Ende des Jahres nutzbar gemacht werden. Bei den möglichen Implemtoren hält er sich zwar bedeckt, aber wenn auch „nur“ die beiden oben genannten Veranstalter (Six Apart und myspace) und Plaxo diese Schnittstelle umsetzen kann man (trotz Stephens Kritik) wirklich schon fast von einem Open Standard sprechen.

Bin gespannt auf die Ergebnisse des heutigen Summits…

Anders als bisher angenommen, scheint sich DataAvailability doch immer mehr in Richtung DataPortability zu entwickeln.

Schaut man sich MySpaces DataAvailability etwas genauer an, so baut die API (anders als z.B. Facebook Connect) hauptsächlich auf offene Standards wie z.B. OAuth und der Open Social REST API auf, außerdem hat MySpace vor kurzem OpenID – Support angekündigt und ist der Host des Portable Contacts API Developer Summit.

Ich bin sehr positiv überrascht und hoffe dass MySpace diesen Kurs beibehält und eventuell auch die Portable Contacts API etwas voran treiben wird.

Mehr dazu in der aktuellen Folge von TheSocialWebTV: From MySpace Lunch 2.0 (w/ Arrington Surprise)

Es lebe das OpenWeb 🙂

Nach seinem Artikel über DataPortability und Chris Saads Antwort, äußert sich Chris Messina nochmals sehr kritisch zu dem Thema in der DP Google-Group.

Gerade nach den Pressemeldungen über MySpaces „Data Availability“:

[…] MySpace is announcing a broad ranging embrace of data portability standards today, along with data sharing partnerships with Yahoo, Ebay, Twitter and their own Photobucket subsidiary. […] #

…oder über Googles „Friend Connect“:

As we reported on Friday, Google will be launching its own data portability effort called Friend Connect. […] #

…ist (meiner Meinung nach) einer der treffendsten Punkte in Chris‘ Kommentar:

The behavior indicates […] that the DP-PR machine is simply more effective at taking credit for big moves that they had nothing directly to do with than to promote smaller independent, more „grassroots“ groups who are *actually* making moves towards effective data portability, like Dopplr, like TripIt, like Satisfaction and Twitter and the rest. I don’t believe I’ve seen any press releases go out about them, and yet I would consider them to be on the vanguard giving people access to their data in real-world, useful ways.

Ich muss Chris Messina leider recht geben, keines der groß angekündigten (und mit DataPortability in Verbindung gebrachten) Systeme betreibt wirklich DataPortability (zumindest zum aktuellen Zeitpunkt). Sowohl MySpace als auch Google verwenden zwar offene Standards (Facebook nutzt sogar keinen der erwähnten Standards für „Facebook Connect“) wie OAuth oder OpenID, aber bisher leider nur hinter ihren „Walled Gardens„.
Was ist mit den wahren DP „Helden“ wie Dopplr, Magnolia oder Satisfaction, die wirkliche Anwendungsfälle schaffen und sich dem Ziel der portablen Daten Schritt für Schritt nähern?

Carsten Pötter beschreibt das bestehende Problem auch noch einmal von einer etwas anderen Seite:

DataPortability, Data Availability, Facebook Connect, Google Friend Connect, DiSo,… […] All the mentioned initiatives just lead to confusion. We can’t be sure if we mean the same thing when talking about data portability anymore. It’s probably best to abandon that term and just focus on single issues. Can I export my profile or can it just be accessed by a third party?

Man sollte in Zukunft vielleicht etwas sparsamer mit dem Titel DataPortability umgehen und ihn nicht für jede „simple“ hCard vergeben.