Microformats und JSON

Ich bin vor einiger Zeit schon auf das microJSON Projekt gestoßen und fand die Idee, ein einheitliches JSON Format für alle Microformats zu erstellen, prinzipiell nicht schlecht, deshalb habe ich auch versucht microJSON für mein hCard-Commenting Script einzusetzen.

Bei genauerem Betrachten gibt es bei der jCard aber zwei unschöne Eigenschaften:

  1. Das n Attribut wird in JSON als name dargestellt.
  2. Das fn Attribut wird gat nicht abgebildet.

Da ich, um den Username in den WordPress Kommentaren darzustellen, auf fn angewiesen bin, habe ich mir verschiedene andere „hCard to JSON“ Services angeschaut.

Test-hCard: http://pfefferle.org/static/microformats/hcard-test.html

Überblick der einzelnen JSON Objekte

Optimus:

{
  from: "http://pfefferle.org/static/microformats/hcard-test.html",
  title: "hCard Test",
  hcard: {
    "adr": {
      "street-address": "Street",
      "region": "State",
      "locality": "City",
      "postal-code": "12345",
      "country-name": "Country"
    },
    "email": {
      href: "mailto:mail@examle.org",
      value: "mail@examle.org"
    },
    "fn": "Mustermann Max",
    "org": "Organisation",
    "tel": "111-222-333",
    url: [
      "http://example.org", 
      "http://pfefferle.org/static/microformats/aim:goim?screenname=aim", 
      "http://pfefferle.org/static/microformats/ymsgr:sendIM?yim"
    ]
  }
}Code-Sprache: JavaScript (javascript)

ufXtract:

// ufXtract 
{
  "vcard": [{
    "fn": "Mustermann Max",
    "n": {
      "given-name": ["Mustermann" ],
      "family-name": ["Max" ]
    },
    "adr": [{
      "street-address": ["Street" ],
      "locality": "City",
      "region": "State",
      "postal-code": "12345",
      "country-name": "Country"
    }],
    "org": {
      "organization-name": "Organisation"
    },
    "email": ["mail@examle.org" ],
    "tel": ["111-222-333" ],
    "url": [
      "http:\/\/example.org\/",
      "aim:goim?screenname=aim",
      "ymsgr:sendIM?yim"
    ]
  }]
}Code-Sprache: JSON / JSON mit Kommentaren (json)

hKit Service (hKit + JSON)

json[{
  "fn":"Mustermann Max",
  "adr":{
    "street-address":"Street",
    "postal-code":"12345",
    "country-name":"Country",
    "region":"State",
    "locality":"City"
  },
  "email":"mail@examle.org",
  "org":"Organisation",
  "tel":"111-222-333",
  "url":[
    "http:\/\/example.org",
    "http:\/\/pfefferle.org\/static\/microformats\/aim:goim?screenname=aim",
    "http:\/\/pfefferle.org\/static\/microformats\/ymsgr:sendIM?yim"
  ],
  "n":{
    "given-name":"Mustermann",
    "family-name":"Max"
  }
}]Code-Sprache: JavaScript (javascript)

microJSON (jCard)

{
"vcard":{
  "name":{
    "given":"Mustermann",
    "family":"Max"
  },
  "org":"Company",
  "email":"mail@examle.org",
  "address":{
    "street-address":"Street",
    "postal-code":"12345",
    "country-name":"Country",
    "region":"State",
    "locality":"City"
  },
  "tel":"111-222-333",
  "aim":"aim",
  "yim":"yim",
  "url":"http:\/\/example.org"
}Code-Sprache: JSON / JSON mit Kommentaren (json)

Leider unterscheidet sich jedes dieser JSON Formate (wenn auch teilweise nur gering) vom anderen, was ja prinzipiell kein wirklich großes Problem ist. Zum Problem wird es erst dann, wenn man einen dieser Dienste durch einen anderen ersetzt, da ein solcher Vorgang immer mit Änderungen am Quellcode verbunden ist.

Es ist im SOA Ansatz zwar nicht definiert, dass die Services ähnlich wie bei der Multi-Tier-Architektur austauschbar sein sollten, es würde jedoch eine Menge an Arbeit erspahren.

Microformats sind wohl definierte offene Standards, wieso nicht auch die Austauschformate wohl definieren?

Weiterführende Links:

Matthias Pfefferle
Matthias Pfefferle
@pfefferle@notiz.blog

Ich bin Webworker und arbeite als „Open Web Lead“ @ Automattic. Ich blogge, podcaste und schreibe eine Kolumne über das open, independent und federated social Web. Mehr über mich.

767 Beiträge
830 Folgende
Fediverse Reactions

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Falls du auf diesen Beitrag mit einem Artikel auf deiner eigenen Webseite geantwortet hast, kannst du hier die URL deines Beitrags eingeben. Dabei sollte es sich um die Permalink-URL handeln. Deine Antwort wird dann (möglicherweise nach der Moderation) auf dieser Seite angezeigt. Falls du deine Antwort aktualisieren oder entfernen möchtest, aktualisiere oder lösche deinen Beitrag auf deiner eigenen Webseite und gib die URL des Beitrags erneut ein. (Erfahre mehr über Webmentions.)