Tag Archive for 'Microformats'

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 :)

hCard2QRCode Update

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

Monkeyformats Screencast

Operator Userscripts zukünftig im OpenService XML-Format

Michael Kaply plant einige interessante neue Features für Operator (Firefox Microformats-Addon).

Um User-Skripte vor der Installation nicht erst herunterladen zu müssen, sollen die Skripte von JS auf XML umgestellt werden. Als Basis für das XML-Modell wurde das, von Microsoft spezifizierte, OpenService Format angedacht.

So könnte ein Script z.B. aussehen:

<?xml version="1.0" encoding="utf-8"?>
<openServiceDescription
  xmlns="http://www.microsoft.com/schemas/openservicedescription/1.0">
  <display>
    <name>Find with MapQuest</name>
    <icon>http://www.mapquest.com/favicon.ico</icon>
  </display>
  <homepageUrl>http://www.mapquest.com</homepageUrl>
  <activity category="Map">
    <activityAction context="hCard.adr">
      <execute method="get"
        action="http://www.mapquest.com/maps/map.adp?searchtype=address">
        <parameter name="address" value="{street-address}"/>
        <parameter name="city" value="{locality}"/>
        <parameter name="state" value="{region}"/>
        <parameter name="zipcode" value="{postal-code}"/>
        <parameter name="country" value="{country-name}"/>
      </execute>
    </activityAction>
  </activity>
</openServiceDescription>

Weitere Gedanken zu der “OpenService extension for microformats contexts” oder “Automatic Discovery” findet ihr im Microformats Wiki

MyBlogLog mit hCard & vCard support

Im MyBlogLog-Blog wurden gestern die neuen v/hCard Features von MyBlogLog vorgestellt.

Pfefferle-MyBlogLog.jpg

Der vCard-Export spricht ja eigentlich für sich selbst, aber die hCard-Implementierung bedarf ein paar zusätzlicher Worte. Wie schon in den Kommentaren des letzten Posts so treffend bemerkt wurde, ist es ja eigentlich kein wirkliches Hexenwerk seine Seite zu microfromatieren, umso schöner finde ich es wenn sich jemand dabei Mühe gibt.

MyBlogLog hat der hCard eine eigene Seite spendiert, die man über das hCard-Icon (siehe Bild 1) erreicht…

Pfefferle-MyBlogLog-hCard.jpg

Aber warum macht es Sinn die hCard auf eine extra Seite zu verbannen? Bei mehreren hCards auf einem Profil, wie im Falle von MyBlogLog (auch die Kontakte sind mit hCards ausgezeichnet), bekommt man beim interpretieren (parsen) der Seite das folgende Problem: Welche hCard ist die Richtige?

Der einfachste Weg um auf eine representative Identity zu verweisen ist, eine externe hCard auf der Profil-Seite mit rel-me zu verlinken. Im Fall von MBL sollte man dies über <link rel="me" /> im Header der Profilseite realisieren, da der Action-Stream auch eine hohe Anzahl an rel-me Links aufweist.

<link rel="me" href="http://www.mybloglog.com/buzz/members/pfefferle/hcard" type="text/html" />

Alternativ könnte man auch mit XRDS-Simple auf die hCard-Seite verweisen (siehe auch Service Catalogue):

<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 priority="10">
      <Type>http://www.w3.org/2006/03/hcard</Type>
      <URI simple:httpMethod="GET">
        http://www.mybloglog.com/buzz/members/pfefferle/hcard
      </URI>
    </Service>
    <Service priority="20">
      <Type>http://gmpg.org/xfn/11</Type>
      <URI simple:httpMethod="GET">
        http://www.mybloglog.com/buzz/members/pfefferle/hcard
      </URI>
    </Service>
  </XRD>
</XRDS>

Mal sehen was MyBlogLog als nächstes vor hat :)

Maholo unterstützt Microformats

mahalo-microformats.jpg

…zwar vorerst nur hCard, adr und rel-license auf einer sehr geringen Anzahl von Seiten, aber immerhin ein Anfang. (via)

Beispiel: Paris Hotels

Cognition 0.1-alpha7

Cognition ist ein Parser (Perl 5) für alle möglichen Semantic-Web - und “lowercase semantic web” - Standards:

Cognition is a parser for both “upper case Semantic Web” (RDF, RDFa) and “lower case semantic web” (microformats) technologies. It includes modules for exporting parsed data in a variety of formats, including RDF, vCard, iCalendar, Atom and KML.

Die Liste der unterstützten Metadaten und Semantiken ist definitiv zu lang um sie hier zu posten :)

Beispiel: cognified notizBlog

XRDS-Simple und DataPortability

Vor ein paar Wochen wurde XRDS-Simple 1.0 (Draft 1) veröffentlicht. XRDS-Simple ist ein Standard, der auf bestehenden Standards der XRI Community aufbaut, auf den z.B. auch das von OpenID bekannte Yadis-Format basiert.

XRDS-Simple provides a format and workflow for the discovery of resources metadata, and other linked resources. As web services continue to grow, applications utilize a wider range of web services and resources across multiple providers. XRDS-Simple allows providers to document their resources in a machine-readable way, which can be automatically discovered by consumer applications.

XRDS-Simple bietet also ein recht simples Format um auf Services und andere “linked recources” zu verweisen.

XRDS-Simple als zentraler ServiceCatalogue

Wie man dieses Format für das DataPortability Projekt nutzen kann hat Christian Scholz in seinem Post “The first Data Portability Use Case (somewhat technical)” schön zusammengefasst.

Nehmen wir an, ich melde mich bei einem neuen Dienst an und möchte meine Daten, die ich an anderen Stellen im Internet angegeben habe, wiederverwenden. Um nicht alle meine Profil-URLs immer wieder per Hand angeben zu müssen, kam die Idee eines ServiceCatalogues auf.

Der ServiceCatalogue soll an zentraler Stelle alle Informationen die über mich im Web verfügbar sind (z.B. als hCard, XFN, FoaF, usw. formatiert) bereitstellen.

<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 priority="10">
      <Type>http://www.w3.org/2006/03/hcard</Type>
      <URI simple:httpMethod="GET">http://pownce.com/pfefferle</URI>
    </Service>
    <Service priority="20">
      <Type>http://gmpg.org/xfn/11</Type>
      <URI simple:httpMethod="GET" priority="10">http://twitter.com/pfefferle</URI>
      <URI simple:httpMethod="GET" priority="20">http://pownce.com/pfefferle</URI>
    </Service>
  </XRD>
</XRDS>

Das Beispiel zeigt z.B. die URL zu meiner hCard bei Pownce und meinen Freundesnetzen bei Pownce und Twitter. Um diese Information vor unerlaubten Zugriffen zu schützen, könnte die XRDS-Simple URL mit OAuth geschützt oder per OpenID AX angefragt werden.

XRDS-Simple mit AX abfragen

Um XRDS-Simple via AX anzufragen, müsste man zuerst ein AX-Schema definieren:

http://dataportability.org/schema/serviceCatalogue
Label
service catalogue
Description
The url to a XRDS-Simple formatted service catalogue
Example
http://example.org/sc.xrds
Formatting
http://www.w3.org/2001/XMLSchema#anyURI

und unter http://dataportability.org/schema/serviceCatalogue bereitstellen. Leider funktioniert diese Art der Bereitstellung nur wenn einige OpenID-Provider diese AX-ServiceCatalogue-URL auch implementieren.

Die Affen bekommen einen eigenen Käfig

Habt ihr nicht auch das Gefühl dass meine Überschriften immer kreativer werden?

monkeyformats-header

Albert de Klein, der Autor des zuvor erwähnten Monkeyformats-Artikel, hat seiner Idee jetzt eine Webseite spendiert.

Warum Monkeyformats:

Microformat adoptation can use a boost worldwide because it makes the web a better place. Monkeyformats allow users to experience the advantages of microformats on sites they use everyday but that have been lacking semantic markup so far without having to wait for those sites to add them eventually. Although still in its infancy there are already several monkeyformats available that add microformats to some national phone directories in Europe, ticket services, etc.

Auf monkeyformats.org gibts noch ne Reihe weiterer Informationen unter anderem auch eine Anleitung wie man selbst neue Formate erstellt.

Großartige Idee, großartiges Logo und noch großartigerer Name! :)