Monthly Archive for May, 2008

Blog-Inhalte sinnvoll trennen?

Ich überlege gerade ob es Sinn macht, meinen “Nonsens” in ein anderes Weblog auszulagern…

Irgendwelche Anregungen?

Microformats Testsuites

In den letzten Tagen wurde in der Microformats-Community viel über das Thema standardisiertes Parsen und einheitliches Darstellen der verschiedenen Mikroformate (hCard im speziellen) diskutiert.

Leider gab es bisher keinen einheitlichen “Microformats-Acid-Tests” sondern nur vereinzelte (projektspezifische) Seiten um einige Spezialfälle zu testen.

microformats-testsuites.jpg

Glenn Jones, einer der Macher von ufXtract hat jetzt eine sehr schöne Microformats-Testsuite erstellt, die parser-unabhängig funktionieren soll um eventuelle Interpretationsfehler erkennen und vergleichen zu können.

The Testrunner

Um die Tests so einfach wie möglich zu gestalten, hat Glenn einen einen JavaScript-Testrunner entwickelt (siehe Screenshot). Testen kann man den Runner unter z.B. http://ufxtract.com/testsuite/hcard/1.0/hcard1.htm in dem man einfach Alt + X drückt (CTRL + ALT + X auf dem Mac).

Hier sei nochmal erwähnt warum es so wichtig ist, dass jeder Parser das gleiche (micro)JSON-Format nutzt:

Please note that at this stage the JSON standardisation process can cause a test to be marked as failed when it could be judged to have passed. #

Nur bei einer gleichen JSON-Struktur kann der Output sinnvoll verglichen werden. Eine erste Version der jCard (danke nochmal an Gordon Oheim für sein Engagement) findet man im Microformats-Wiki.

Testsuite-API

Wer die Testsuite für seinen eigenen Parser einsetzen will, sollte sich mal die Testsuite-API zu Gemüte führen.

Rather than just build something in isolation I thought it would be nice to find a way to share this work with the community. #

Großartige Arbeit!

Interessante Links zu dem Thema:

Semantic Excel

Ich wäre im Leben nicht auf die Idee gekommen, in einem Excel-Sheet nach Semantiken zu suchen (oder es semantisch anzureichern)…

Charles Eames hat (2005) einen interessanten Artikel zum Thema “Adding Semantics to Excel with Microformats and GRDDL” geschrieben (es funktioniert wirklich, ich hab’s ausprobiert).

Seine Idee:

Unfortunately, spreadsheets are a mish-mash of structured but meaningless data; there’s no easy way to tell which columns contain data and which ones are headers. To make them useful, we have to add some reusable, stable semantics to them.

Eigentlich hatte aber ein Anderer schon zwei Jahre vorher einen ähnlichen Gedanken… Dan Connolly (eine Semantic-Web Ikone) schrieb 2003 schon über “Grokking Triples from Spreadsheets“.

Sean notes that there are lots of triples in spreadsheets. Yup. After my Aug 2003 trip to Montreal for Extreme, I used gnumeric as an RDF authoring tool to collect all the gas receipts and such; then the Makefile has this stanza to convert it to RDF [...]

Großartig :)

Dezentrales Microblogging

Michael Arrington hat heute einen interessanten Artikel über dezentrales Microbloggen veröffentlicht. “Twitter can be liberated” beschreibt unter anderem auch Chris Saads (Gründer von DataPortability.org) Vorschlag für ein “dezentrales Twitter”.

[...] The net effect of this theoretical platform is to move the publishing to a completely decentralized network, and move the hard part of Twitter into the third party aggregators (which is already a competitive space). There would be no one central bottleneck that could fail. [...]

Ein netter Gedanke…

Interessante Links aus dem Artikel:

XRDSType.net - Type URIs für XRDS-Simple

Angelehnt an die, für Profile-URIs geschaffene URI-Services wie z.B. PURL (oder XMLNS für XML-Namespaces), schafft XRDSType.net einen zentralen und “community-neutral URIspace” für XRDS-Simple Types.

Zum besseren Verständnis hier zwei Beispiele…

Profile-URI:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">

  <head profile="http://gmpg.org/xfn/11">
...

XRDS-Simple Type:

<Service>
  <Type>http://gmpg.org/xfn/11</Type>
  <URI simple:httpMethod="POST">
    http://twitter.com/pfefferle
  </URI>
</Service>

Zwei wesentliche Aspekte für den Einsatz von XRDSTypes.net (via):

  • Besteht schon eine Profile-URI bzw. XMLNS wird dieser verwendet.
  • XRDSTypes soll ein community-unabhängiger Platz sein, um Type-URIs zu definieren.

Für Microformats könnten also die im Microformats Wiki definierten Profile URIs genutzt werden.

(via Mr. Topf)

XRDS-Simple, eine Einführung

Da XRDS-Simple auch eine zentrale Rolle bei DataPortability spielen wird, hab ich mir das Format nochmal vorgenommen. (Im folgenden Text setze ich, der Einfachheit halber, XRDS mit XRDS-Simple gleich auch wenn es technisch nicht ganz korrekt ist)

XRDS-Simple-Large.png

XRDS-Simple ist in erster Linie eine einfache Form der Service-Discovery, von der Idee her ähnlich wie z.B. die Web Services Description Language (WSDL).
XRDS beschränkt sich, im Gegensatz zu dem wesentlich komplexeren WSDL, auf die Beschreibung der Service URLs/URIs und wie man sie nutzt (POST oder GET).

Vom Aufbau her ist XRDS-Simple dem YADIS Format (OpenID-Autodetection) sehr ähnlich:

<XRDS xmlns="xri://$xrds">
  <XRD xmlns:simple="http://xrds-simple.net/core/1.0"
          xmlns="xri://$XRD*($v*2.0)" version="2.0">
    <Type>xri://$xrds*simple</Type>
    <Service>
      <Type>http://example.net/some_type</Type>
      <URI simple:httpMethod="POST">
        http://example.com/resource
      </URI>
    </Service>
  </XRD>
</XRDS>

Der wichtigste Teil eines Services ist der Type welcher den Typ der URI beschreibt und die URI welche beschreibt unter welcher URI der Service zu erreichen ist.

Ein paar Beispiele für ein paar klassische Services:

FOAF
type
http://xmlns.com/foaf/0.1/
url
http://www.mybloglog.com/buzz/members/pfefferle/foaf
hCard
type
http://purl.org/uF/hCard/1.0/
url
http://www.mybloglog.com/buzz/members/pfefferle/hcard
APML
type
http://www.apml.org/apml-0.6
url
http://notizblog.org/apml/
OPML
type
http://www.opml.org/spec2
url
http://ma.gnolia.com/opml/default/people/pfefferle

Neben dem <Type> kann für die URI auch noch ein <MediaType> (nichts anderes als der MIME-Type (RFC2046)) gesetzt werden, der beschreibt um was es sich bei dem Verlinkten handelt.

Beispiel: <MediaType>text/html</MediaType>

Mit diesem einfachen Prinzip lassen sich auf einfache Weise nahezu alle Services beschreiben.

Vorteile von XRDS-Simple? Meiner Meinung nach gibt es zwei wesentliche Gründe XRDS einzusetzen.

Einheitliche Erkennung

XRDS vereinfacht die automatische Service-Erkennung, da nur noch ein Meta-Tag interpretiert werden muss:

<meta http-equiv="X-XRDS-Location" content="http://example.com/xrds" />

statt jeder Meta-Tag einzeln:

<link rel="meta" type="text/xml" title="APML" href="..." />
<link rel="meta" type="text/xml" title="OPML" href="..." />

One file to detect them all :)

Information Hiding

Ein weiterer wesentlicher Aspekt der Autodetection ist die Sicherheit… nicht jeder möchte seine Attention-Daten (APML) oder seine hCard frei zur Verfügung stellen. Über XRDS-Simple ist es möglich, diese Informationen zu bündeln und z.B. nur über OpenID AX oder OAuth zugänglich zu machen.

Ein Beispiel dazu: XRDS-Simple als zentraler ServiceCatalogue

OAuth discovery

Der Vollständigkeit halber sollte man erwähnen dass XRDS-Simple eigentlich ein “Nebenprodukt” von OAuth Discovery ist.

The first draft of OAuth Discovery published four months ago started a dialog and was the main driver behind the development of XRDS-Simple. #

Mehr zu diesem Thema bei hueniverse oder Chris Messina.

hCard2QRCode Update

hCard2QRCode verwendet jetzt wenn möglich cURL, sonst wie gehabt file_get_contents()… damit sollte es dann bei den Meisten Hostern laufen…

ULML und der Tag der Arbeit

Am “Tag der Arbeit” (1. Mai) wurde ein neues Format veröffentlicht, was sich genau mit dem Thema (Arbeit) befasst (wenn das nicht Liebe zum Detail ist :)). ULML steht für User Labor Markup Language und stellt die Arbeit eines Users in einem Sozialen-Netz (z.B. eine Community oder ein Weblog) dar.

Vom Aufbau und der Idee her ist das ULML sehr ähnlich wie APML aufgebaut:

<?xml version="1.0" encoding="UTF-8"?>
<ulml version="0.1">
  <channel>
    <record>
      <actions>
        <item name="photo" type="upload">120</item>
        <item name="photo" type="tag">330</item>
      </actions>
      <reactions>
        <item name="photo" type="comment">15</item>
      </reactions>
      <network>
       <item name="connection">256</item>
      </network>
    </record>
  </channel>
</ulml>

Ein record besteht aus folgenden Tags:

  • <actions> — a person’s actions (video uploads, bookmarks, tags, comments, votes etc.)
  • <reactions> — other’s reactions to the person’s actions (same types as in actions)
  • <network> — efficiency of the personal social network

Mehr Infos zum Aufbau der XML-Datei findet ihr auf userlabor.org.

Der genaue Sinn dieses Formats hat sich mir noch nicht ganz erschlossen:

We believe that universality, transparency, and accessibility of user labor metrics will ultimately lead to more sustainable service cycles in social web.

Die einzige Möglichkeit die mir spontan einfällt, ist der “Wert” eines Nutzers wenn es z.B. um die Schaltung von Werbung geht.

…ein ULML WordPress Plugin sollte auch nicht wirklich viel Arbeit bereiten :)

Sind eine hCard und ein wenig XFN jetzt schon DataPortability?

Liest man die letzten Meldungen über Digg bei Techcrunch könnte man meinen eine hCard und ein bisschen XFN reichen um DataPortability zu betreiben.

The DataPortability Project has gained another adherent in Digg, which announced on its blog today that it has implemented three under-the-hood enhancements.

Natürlich ist es wichtig, dass Standards wie Microformats oder RDFa eine große Akzeptanz finden und große und bekannte Dienste wie Digg dazu beitragen diese Standards zu verbreiten… aber das ist in meinen Augen noch lange kein Grund von DataPortability zu sprechen, zumal Microformats (meines erachtens) auch nicht der beste Weg sind, Daten auszutauschen.

Es ist langsam an der Zeit Anwendungsfälle für die ganzen angebotenen Standards wie Microformats, OPML, APML und OAuth zu schaffen. Eine hCard oder XFN zu implementieren ist eine Sache von fünf Minuten und sollte für künftige Webseiten State of the Art sein, sie weiterzuverarbeiten macht für mich DataPortability aus.

Das ist DataPortability:

twitter-API mit Location-Support

Seit letzter Woche ist es möglich, das Location-Feld (rechts oben im Profil) über die Twitter-API zu ändern.

Updates the location attribute of the authenticating user, as displayed on the side of their profile and returned in various API methods. Works as either a POST or a GET.

Mal schaun wann es den ersten Twitter-Dienst gibt, der die Location über das L: - nanoformat anpasst, oder wann es eine schöne fireeagle-Anbindung gibt.

(via)




Livecommunity powered by six groups