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/> ].