Popis lidí - příklady RDFa
Pro popis lidí používáme obecně uznávaný slovník FOAF, ze kterého budeme používat hlavně pojmy označené jako stabilní. Kromě FOAFu využíváme i některé doplňkové slovníky jako bio.
Contents
Základní popis osoby
Pro každou osobu bychom předně měli určit jméno a také specifikovat, že popis se týká osoby.
<div typeof="foaf:Person"> <span property="foaf:name">Jméno Přijmení</span> </div>
Pokud chcete rozlišit křestní jméno od přijmení, aby se taková data daly po automatizovaném přečtení lépe řadit, lze použít samostnatné vlastnosti.
<div typeof="foaf:Person"> <span property="foaf:firstname">Jméno</span> <span property="foaf:surname">Přijmení</span> </div>
Osobní stránka
<div typeof="foaf:Person"> ... <div><a href="http://priklad.cz/" rel="foaf:page">http://priklad.cz/</a></div> </div>
Kontaktní informace
Specifikovat lze různé kontaktní informace od telefonu, přes e–mail až po kanály instantní komunikace. Pro ukázku uvedeme ty nejdůležitější z nich.
<div typeof="foaf:Person"> ... <div><a href="mailto:emailova@adresa.cz" rel="foaf:mbox">emailova@adresa.cz</a></div> <div property="foaf:skypeID">skype ID</div> </div>
Základní biografie a zájmy
Pomocí zmiňovaného doplňku FOAF_bio můžeme doplnit klíčová slova vážící se k osobě a také krátký popis osoby.
<div typeof="foaf:Person"> ... <div property="bio:olb">Krátká biografie člověka</div> <div property="bio:keywords">klíčová slova, oddělené čárkou</div> </div>
Propojení s uživatelskými účty v jiných webových aplikacích
<div typeof="foaf:Person">
...
<ul rel="foaf:account">
<li typeof="foaf:OnlineAccount">
<a href="http://www.delicious.com/" rel="foaf:accountServiceHomepage" property="foaf:accountName">Delicious</a>:
<span property="foaf:accountName">uzivatelskejmeno</span>
</li>
<ul>
</div>
Problémem takového zápisu je, že neobsahuje odkaz přímo na profilovou stránku takového účtu. Lze navrhnout i vhodnější snippety. Nicméně vlastnost pro identifikaci profilové stránky není ustálená, resp. žádná specifická není ve FOAF definována. Dá se vybrat obecná vlastnost stránky, kterou lze z definice přiřadil i online účtu.
<div typeof="foaf:Person">
...
<ul rel="foaf:account">
<li typeof="foaf:OnlineAccount">
<a href="http://twitter.com/uzivatelskejmeno" rel="foaf:page">Twitter účet</a>:
<span property="foaf:accountName" content="uzivatelskejmeno" />
<span rel="foaf:accountServiceHomepage" resource="http://twitter.com/" />
</li>
<ul>
</div>
Jeden kompletní příklad
Uvažujme reálnou HTML stránku jednoho z autorů tohoto manuálu, kterou jsme doplnili o představené značkování.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa 1.0"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:bio="http://purl.org/vocab/bio/0.1/"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<head about="" typeof="foaf:Document">
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title property="foaf:name dc:title">Popis lidí – příklady RDFa</title>
</head>
<body>
<div typeof="foaf:Person">
<h1><span property="foaf:firstname">Josef</span> <span property="foaf:surname">Petrák</span></h1>
<p><em property="bio:olb">IT konzultant a svobodný vývojář zajímající se o programování sémantických
webových aplikací</em></p>
<p><strong>Klíčové zájmy</strong>: <span property="bio:keywords">sémantický web, sociální sítě, RDFa,
webové aplikace, SPARQL</span></p>
<p><strong>E–mail</strong>: <a href="mailto:me@jspetrak.name" rel="foaf:mbox">me@jspetrak.name</a></p>
<p><strong>Skype</strong>: <span property="foaf:skypeID">jspetrak</span></p>
<p><strong>WWW</strong>: <a href="http://jspetrak.name/" rel="foaf:page">http://jspetrak.name/</a></p>
<ul rel="foaf:account">
<li typeof="foaf:OnlineAccount">
<a href="http://twitter.com/padacek" rel="foaf:page">účet na Twitteru</a>
<span property="foaf:accountName" content="padacek" />
<span rel="foaf:accountServiceHomepage" resource="http://twitter.com/" />
</li>
<li typeof="foaf:OnlineAccount">
<a href="http://linkedin.com/in/jspetrak" rel="foaf:page">účet na LinkedIn</a>
<span property="foaf:accountName" content="jspetrak" />
<span rel="foaf:accountServiceHomepage" resource="http://linkedin.com/" />
</li>
</ul>
</div>
</body>
</html>
Výsledná RDF data si lze zobrazit pomocí aplikace [RDFa Distiller]. Obsažen je stručný popis samotné webové stránky, osoby a jejích online účtů.
@prefix bio: <http://purl.org/vocab/bio/0.1/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dist: <http://www.w3.org/2007/08/pyRdfa/distiller#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xhv: <http://www.w3.org/1999/xhtml/vocab#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<uploaded:> a foaf:Document ;
dc:title "Popis lidí – příklady RDFa" ;
foaf:name "Popis lidí – příklady RDFa" .
[ a foaf:Person ;
bio:keywords "sémantický web, sociální sítě, RDFa, webové aplikace, SPARQL" ;
bio:olb "IT konzultant a svobodný vývojář zajímající se o programování sémantických webových aplikací" ;
foaf:account
[ a foaf:OnlineAccount ;
foaf:accountName "padacek" ;
foaf:accountServiceHomepage <http://twitter.com/> ;
foaf:page <http://twitter.com/padacek>
],
[ a foaf:OnlineAccount ;
foaf:accountName "jspetrak" ;
foaf:accountServiceHomepage <http://linkedin.com/> ;
foaf:page <http://linkedin.com/in/jspetrak>
] ;
foaf:firstname "Josef" ;
foaf:mbox <mailto:me@jspetrak.name> ;
foaf:skypeID "jspetrak" ;
foaf:surname "Petrák" ;
foaf:page <http://jspetrak.name/> ].