Kategorie: Open Web

Hier geht es um Webdesign, Microformats, (X)HTML und CSS, Web2.0, usw.

  • 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">
    ...Code-Sprache: HTML, XML (xml)

    XRDS-Simple Type:

    <Service>
      <Type>http://gmpg.org/xfn/11</Type>
      <URI simple:httpMethod="POST">http://twitter.com/pfefferle</URI>
    </Service>Code-Sprache: HTML, XML (xml)

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

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

    Keine Kommentare zu XRDSType.net – Type URIs für XRDS-Simple
  • 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>Code-Sprache: HTML, XML (xml)

    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
    https://web.archive.org/web/20090825215938/http://www.mybloglog.com:80/buzz/members/pfefferle/foaf/
    hCard
    type
    http://purl.org/uF/hCard/1.0/
    url
    https://web.archive.org/web/20100413121636/http://www.mybloglog.com:80/buzz/members/pfefferle/hcard
    APML
    type
    https://github.com/apml/spec-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" />Code-Sprache: HTML, XML (xml)

    statt jeder Meta-Tag einzeln:

    <link rel="meta" type="text/xml" title="APML" href="..." />
    <link rel="meta" type="text/xml" title="OPML" href="..." />Code-Sprache: HTML, XML (xml)

    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.

    3 Kommentare zu XRDS-Simple, eine Einführung
  • hCard2QRCode verwendet jetzt wenn möglich cURL, sonst wie gehabt file_get_contents()… damit sollte es dann bei den Meisten Hostern laufen…

    Keine Kommentare zu hCard2QRCode Update
  • 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>Code-Sprache: HTML, XML (xml)

    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 🙂

    1 Kommentar zu ULML und der Tag der Arbeit
  • 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:

    3 Kommentare zu Sind eine hCard und ein wenig XFN jetzt schon DataPortability?
  • 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)

    Keine Kommentare zu twitter-API mit Location-Support
  • Neben der flickr-URL (http://www.flickr.com/photos/USERNAME) kann jetzt auch die MyBlogLog-URL (http://www.mybloglog.com/buzz/members/USERNAME) als Yahoo-OpenID verwendet werden. (via)

    Keine Kommentare zu MyBlogLog ist OpenID-Provider
  • 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>Code-Sprache: HTML, XML (xml)

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

    Keine Kommentare zu Operator Userscripts zukünftig im OpenService XML-Format
  • 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" />Code-Sprache: HTML, XML (xml)

    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">
            https://web.archive.org/web/20100413121636/http://www.mybloglog.com:80/buzz/members/pfefferle/hcard
          </URI>
        </Service>
        <Service priority="20">
          <Type>http://gmpg.org/xfn/11</Type>
          <URI simple:httpMethod="GET">
            https://web.archive.org/web/20100413121636/http://www.mybloglog.com:80/buzz/members/pfefferle/hcard
          </URI>
        </Service>
      </XRD>
    </XRDS>Code-Sprache: HTML, XML (xml)

    Mal sehen was MyBlogLog als nächstes vor hat 🙂

    Keine Kommentare zu MyBlogLog mit hCard & vCard support
  • Nachdem sich Benjamin Nowack gestern (via twitter) noch gefragt hat ob es möglich ist, einem Firefox-HTML-Validator RDFa beizubringen…

    wondering if the FF HTML Validator extension could be hacked to support RDFa. Basic QA is a bit too complicated with only the w3.org checker

    …hat er ihn heute auf seiner Webseite veröffentlicht 🙂

    Benjamin Nowacks angepasster Validator basiert auf der HTML Validator Extension for Firefox von Marc Gueury und funktioniert leider vorerst nur unter Windows.

    Zum Download

    Weitere sehr interessante Projekte von Herrn Nowack die man sich auch unbedingt anschauen sollte:

    • ARC – Easy RDF and SPARQL for LAMP systems
    • SPARQLBot – Your Semantic Web Command Line
    Keine Kommentare zu Firefox HTML Validator mit RDFa – Support