Dies ist eine Dokumentation für das GRDDL xsl Stylesheet, betreffend dem hCard Microformat und VCARD.

Microformat VCARD (mit FOAF)

vcard

Der Container der Klasse vcard ist der Wurzelcontainer. Jeder Container dieser Klasse wird in einen foaf:Person Datensatz extrahiert. Jeder Inhalt eines solchen Containers wird dem Datensatz dieser Person hinzugefügt. Daten, die ausserhalb eines solchen Containers liegen, werden für FOAF ignoriert.

Der Container kann auch weitere Klassenzugehörigkeiten haben. So kann beispielsweise der vcard Container auch gleichzeitig der Container für den Namen sein. Beispiel:

span class="vcard fn"Donald Duck/span
foaf:Person rdf:ID="..."/

Der Wert für ID wird entweder, falls vorhanden, aus dem id-Attribut des Containers erstellt, oder, falls nicht vorhanden, wird ein Wert mit der xsl-Funktion generate-id() erstellt.

fn

Beispiel 1:

span class="vcard fn"Donald Duck/span

Beispiel 2:

address class="vcard" span class="fn"Donald Duck/span /address
foaf:Person rdf:ID="..." foaf:nameDonald Duck/foaf:name vcard:FNDonald Duck/vcard:FN /foaf:Person

Der fn (formatted name) wird einem foaf:name zugewiesen, sowie einem vcard:FN. Beide html Microformate Beispiele werden in den gleichen Datensatz übersetzt. Dabei ist es unerheblich, welches html-Element für den vcard Container verwendet wird.

n

Beispiel 1

address class="vcard" span class="fn"Donald Duck/span span class="n"Duck;Donald/span /address

Beispiel 2

address class="vcard" span class="fn"Donald Duck/span span class="n" span class="family-name"Duck/span span class="given-name"Donald/span /span /address
foaf:Person rdf:nodeID="..." foaf:nameDonald Duck/foaf:name foaf:given-nameDonald/foaf:name foaf:family-nameDuck/foaf:name vcard:NDuck;Donald/vcard:N /foaf:Person

Der 'N' Datensatz kann entweder alleinstehend eine Liste der Werte für Familienname, Vorname, weitere Namen, Titel und Suffix enthalten (in dieser Reihenfolge), durch Semikolon getrennt, wie in der VCARD Spezifikation aufgeführt, oder er kann untergeordnete Datensätze der Klassen "family-name", "given-name", "additional-name", "honoric-prefix" und "honoric-suffix" enthalten, in beliebiger Reihenfolge, nach hCard Spezifikation.

Falls kein "N" Datensatz vorhanden ist, aber Datensätze der Klassen "family-name", "given-name", "additional-name", "honoric-prefix" oder "honoric-suffix", so wird daraus ein "N" Datensatz erzeugt. Falls weder ein "N" Datensatz vorhanden ist, noch ein Datensatz einer dieser Klassen, dann wird versucht, den Vornamen und den Familiennamen aus dem "FN" Datensatz zu erraten und daraus einen "N" Datensatz zu erstellen. Die Regeln dazu findet man in der microformats hcard Spezifikation.

Referenzen