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.
- Épisode 1 : Au commencement était l'URI
- Épisode 2 : Des triplets partout
- Épisode 3 : Soyez brefs
- Épisode 4 : De vieilles connaissances (1)
- Épisode 5 : De vieilles connaissances (2)
- Épisode 6 : Organiser la connaissance
- Épisode 7 : Contenants, contenus et auteurs
- Épisode 8 : Succès et limites
Notions abordées dans ce billet : SIOC, SIOCT, héritage de classes, FOAF, chaînage, owl:sameAs...
Décrire du contenu
- 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é.
- 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>
Où 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
- 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 à unfoaf:Agent
, mais à unsioc:UserAccount
, qui peut être lié parsioc: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 quehttp://www.facebook.com/carlinoo#me
, maishttp://twitter.com/carlomorelli
n'est pas le même compte quehttp://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 .