RDFAoût, votre feuilleton de l'été : pendant un mois, 2 billets par semaine sur le RDFa, à l'attention des lecteurs connaissant déjà le HTML.

Notions abordées dans ce billet : SIOC, SIOCT, héritage de classes, FOAF, chaînage, owl:sameAs...

Décrire du contenu

SIOC

  • URI : http://rdfs.org/sioc/ns#
  • Préfixe usuel : sioc
  • 66 propriétés / 11 classes

Le vocabulaire SIOC décrit les publications des communautés sur le Web, notament en les qualifiant avec 4 classes principales (relations horizontales sur le schéma) et en les liant par des relations inclusives (relations verticales sur le schéma) :

Communauté, espace, conteneur, item... ces classes sont très, voire trop, abstraites. Elles peuvent heureusement être déclinées en classes plus précises (grâce à un mécanisme proche de l'héritage en programmation orienté objet) :

Site, forum, post... c'est plus compréhensible ainsi. Ce sont des classes qui peuvent même être utilisées sans avoir à s'encombrer de la notion de communauté.

SIOC Types

  • URI : http://rdfs.org/sioc/types#
  • Préfixe usuel : sioct
  • 0 propriétés / 39 classes

Pour typer tout type de publications, le projet SIOC met à notre disposition un grand nombre de classes réunies au sein du vocabulaire SIOC Types. Voici une sélection de conteneurs et de leurs items correspondant :

Conteneur Item
sioct:Weblog sioct:BlogPost
sioct:Wiki sioct:WikiArticle
sioct:MessageBoard sioct:BoardPost
sioct:SurveyCollection sioct:Poll

Sans oublier l'indispensable sioct:Comment qui type les commentaires. Car oui, les commentaires peuvent (doivent !) être aussi des ressources ! Pensez-y lors de votre prochain projet Web.

Nous avons déjà utiliser la classe sioc:MicroblogPost dans les exemples de l'épisode trois, allons plus loin :

<div about="http://twitter.com/carlomorelli/status/12185847600" rel="sioc:has_space" resource="http://twitter.com" typeof="sioct:MicroblogPost">
  Quiksilver Italy, here i come. Heading to Milano...
</div>

sioc:has_space est la relation inverse de sioc:space_of.

A quoi ça sert ? Typer les publications est particulièrement intéressant pour les moteurs de recherche comme Google qui, par exemple, pourront distinguer les propos des billets de blogs de ceux des commentaires et les hiérarchiser.

Mais SIOC permet aussi d'autres usages moins attendus et très excitants, comme l'illustre l'encore balbutiant Buxon qui est une sorte d'agrégateur de flux pour les forums, associant la puissance du Web au confort de consultation des newsreaders.

Identifier les auteurs

FOAF

  • URI : http://xmlns.com/foaf/0.1/
  • Préfixe usuel : foaf
  • 62 propriétés / 13 classes

SIOC propose 3 autres classes que nous n'avons pas encore évoquées, sioc:Role, sioc:UserAccount et sioc:Usergroup, qui permettent de décrire les comptes utilisateurs ayant participer aux publications, leurs rôles et leurs groupes.

Reprenons notre exemple favori :

<div about="http://twitter.com/carlomorelli/status/12185847600" typeof="sioct:MicroblogPost">
    Quiksilver Italy, here i come. Heading to Milano...
    <a rel="sioc:has_creator" href="http://twitter.com/carlomorelli">Carlo Morelli</a>
</div>

... qui fait référence à la ressource suivante :

<div about="http://twitter.com/carlomorelli" typeof="sioc:UserAccount" rel="sioc:account_of">
    <div id="me" about="http://twitter.com/carlomorelli#me" typeof="foaf:Person">
        <h1 property="foaf:name">Carlo Morelli</h1>
        <span rel="owl:sameAs" resource="http://www.facebook.com/carlinoo#me"/>
    </div>
</div>

Ces deux derniers exemples produisent le graphe suivant :

Et le dernier exemple comporte quatre nouveautés :

  • Le @rel du premier div n'est pas associé à un @href ou un @resource comme ça a été le cas jusqu'à présent. Il est donc associé au nœud RDF le plus proche : le second div. Ce mécanisme s'appelle le chaînage.
  • On découvre un nouveau vocabulaire, FOAF, qui permet de décrire les personnes physiques ou morales.
  • Le #me du second div permet de créer une nouvelle ressource au sein de la même représentation. C'est nécessaire car, contrairement à dct:creator, sioc:has_creator ne lie pas un contenu directement à un foaf:Agent, mais à un sioc:UserAccount, qui peut être lié par sioc:account_of à un ou plusieurs agents.
  • owl:sameAs est la forme compacte de la propriété http://www.w3.org/2002/07/owl#sameAs qui indique l'identité entre deux ressources et la fusion de leurs graphes : http://twitter.com/carlomorelli#me est la même personne que http://www.facebook.com/carlinoo#me, mais http://twitter.com/carlomorelli n'est pas le même compte que http://www.facebook.com/carlinoo.

XHV, CC, DC, DCT, SKOS, SIOC, SIOCT, FOAF... Nous avons vu au cours des 4 derniers épisodes beaucoup de vocabulaires. Nous allons nous arrêter ici et continuer RDFaoût en consacrant la poignée d'épisodes restante aux usages actuels de RDFa .