Popis lidí - příklady RDFa

From Semanti-CS Wiki
Jump to: navigation, search

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.

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