RDF et les débats en ligne

Cela fait maintenant deux ans que je travaille dans le cadre de l’ANR intermed sur les débats en ligne. Et après deux ans, nous avons via de nouvelles rencontres, de nouvelles opportunités d’échange sur le sujet. J’en profite alors pour recommander des formats d’échange de données entre différentes applications dédiées aux débats en ligne. Les formats sont des utilisations conjointes de divers vocabulaires RDF.

Il faut dire que ça commence à faire pas mal de temps qu’on nous parle de démocratie participative et que sur le net, il n’y a pas grand chose. Un blog institutionnel par là (voir le travail de blog-territorial et leur livre sur l’usage des blogs dans des collectivités), un élu qui raconte sa vie ici et là, une candidate qui propose une plateforme … En fait si, il y a beaucoup de choses. Il y a beaucoup de forums ou blogs ou l’on peut débattre, quelques wikis aussi. Mais il n’y a pas de réelle plateforme pour les débats qui permette de passer à une grande échelle (de sujets et d’utilisateurs). Il n’y a pas non plus de système qui fasse correctement le lien entre les discussions (en ligne ou non) et les décisions ainsi que leurs mises en application.

L’objectif de l’article n’est pas de dresser un état de l’art de la pratique de débats en ligne mais de proposer des formats d’échanges de données afin de faciliter la création d’une véritable plateforme de débat (ou de transformer le web en une véritable plateforme de débats …).

Dans une vision trés web 2.0, le débat 2.0 permettrait de partager les données entre applications, offrant des possibilité de réutilisation et de traitement de ces données (on veut des Mashups pour le débat !!). Au lieu d’encourager une collectivité à avoir son propre blog et imposer celui-ci comme espace de discussion privilégié des administrés, pourquoi ne pas proposer à la collectivité une application qui lui permette d’aggréger les flux RSS des blogs déjà existant et de synthétiser les critiques qui y sont exprimées.

L’article se compose en deux parties:

  1. La première partie a pour objectif de présenter ce qu’est un débat en ligne et les problématiques d’interopérabilité intrinséque à cette notion.
  2. La deuxième partie présente un ensemble de vocabulaires RDF et leur utilisation conjointe pour représenter les éléments d’une discussion. Les vocabulaires choisis ont leur limite mais l’un des avantages de RDF est que des ponts existent entre les vocabulaires (cf le projet LOD) et que les vocabulaires peuvent être étendus (ajout de classes plus spécialisées, ajout de propriétés, …). La solution de “format” ici présentée n’est donc qu’un début de proposition que nous serons amenés à faire évoluer, cependant, ce qui est présenté ici devrait constituer un noyau stable.

Un débat en ligne c’est quoi ?

Déjà, il m’est très difficile de définir ce qu’est un débat. Alors définir ce qu’est un débat en ligne… Je vous propose un début de définition mais je vous invite à m’aider à la raffiner.

Un débat en ligne c’est un débat supporté (au moins en partie) par des applications web.

Une fois qu’on a dit ça, on n’a pas dit grand chose.

Voici quelques citations pour m’aider à définir ce qu’est un débat.

  • La version wikipédia : Un débat est une discussion sur un sujet, précis ou de fond, annoncé à l’avance, à laquelle prennent part des individus ayant des avis, idées, réflexions ou opinions divergentes pour le sujet considéré.
  • Dans le décret de 2002 relatif à l’organisation du débat public, on observe qu’un débat public est évalué par une commission (de trois à sept membres), avec un président. Une personne publique ou un maître d’ouvrage porteur du débat doit proposer au président de la commission un dossier à destination du public. Ce dossier peut contenir des documents de références jugés nécessaires pour le débat. Ce dossier est donc évalué par la commission avant que le débat public ne soit organisé. Le porteur du débat peut également proposer des modalités d’action et un calendrier. Sont susceptibles de donner naissance à un débat, des projets d’aménagement ou d’équipement d’intérêt national de l’Etat, des collectivités territoriales, des établissements publics, et des personnes privées entrant dans un ensemble de catégories listées dans le décret. La commission peut estimer que le débat n’a pas lieu d’être et proposer une concertation à la place. Le bilan du débat ou de la concertation, doit être publié et transmis aux décisionnaires.
  • Dans la Loi du 27 février 2002 relative à la démocratie de proximité, Champ d’application et objet du débat public : La Commission nationale du débat public, autorité administrative indépendante, est chargée de veiller au respect de la participation du public au processus d’élaboration des projets d’aménagement ou d’équipement d’intérêt national de l’Etat, des collectivités territoriales, des établissements publics et des personnes privées, relevant de catégories d’opérations dont la liste est fixée par décret en Conseil d’Etat, dès lors qu’ils présentent de forts enjeux socio-économiques ou ont des impacts significatifs sur l’environnement ou l’aménagement du territoire. (…) « En outre, la Commission nationale du débat public veille au respect de bonnes conditions d’information du public durant la phase de réalisation des projets dont elle a été saisie jusqu’à la réception des équipements et travaux. « Elle conseille à leur demande les autorités compétentes et tout maître d’ouvrage sur toute question relative à la concertation avec le public tout au long de l’élaboration d’un projet. « La Commission nationale du débat public a également pour mission d’émettre tous avis et recommandations à caractère général ou méthodologique de nature à favoriser et développer la concertation avec le public. « La Commission nationale du débat public et les commissions particulières ne se prononcent pas sur le fond des projets qui leur sont soumis.
  • (Testard-Vaillant, 2008) parle de La place publique ou de l’espace public qui « est un des concepts fondamentaux de la démocratie. Il désigne le lieu symbolique où peuvent s’exprimer toutes les opinions qui structurent le jeu politique, où l’on traite des questions relevant de la collectivité ».
  • Chez (Vedel, 2003), le débat est une phase séparée de l’information des citoyens et de la délibération. C’est l’une des 3 dimensions (information, débat, délibération) de son cube de la démocratie. Le débat ou la discussion permet de mesurer l’étroitesse ou la fermeture de l’espace public. Le débat est la phase entre l’information et la délibération. Le débat s’inscrit donc dans un processus de prise de décision.
  • (Bidima, 1997 p113 ) : Toute palabre suppose la prédisposition des groupes ou sujets en débat à mettre en péril leur vérité par la confrontation. Il s’établit implicitement un mouvement de corrosion des positions assurées et absolues. Palabrer signifie mettre “ses absolus” devant la possibilité de leur relativisation. Ce jeu entre un absolu qui devient relatif et l’émergence du seul absolu qui est le relatif, constitue l’une des composantes du mouvement de prise et de dépossession de la parole qu’est la palabre.
  • (Callon et al, 2002) définissent l’objectif d’un débat public de la façon suivante : “il doit organiser l’accueil des groupes concernés et faciliter la réduction des incertitudes.”
  • (Fung, 2006) estime que les mécanismes participatifs sont évalués selon trois critéres : la légitimité, l’équité et l’efficacité. Les indicateurs pour cette évaluation sont : le champ de participation (qui peut s’exprimer et qui s’exprime), les modes de communication et de prise de décision, l’impact réel des discussions sur les prises de décision.
  • (Vignaux, 1988) la définition d’Aristote de la discussion dialectique est la suivante : c’est un jeu à deux où le couple de partenaires incarne à la fois deux oppositions binaires, celle de l’affirmation et de la négation, celle de la victoire et de la défaite.
  • (Chabrol, 1999), une opinion est un acte discursif où l’énonciateur « modalise » explicitement ou implicitement l’objet de son énonciation avec les dimensions « possible/impossible », « souhaitable/non souhaitable », « beau/laid », « agréable/désagréable » …

On ne trouve pas vraiment de définition de ce qu’est un débat public sur le site du CNDP. On apprend ce qui justifie la mise en place de débats publics, qui sont les acteurs important dans l’organisation du débat et quel est l’objectif principal d’un débat (consulter et informer le citoyen, le faire participer à l’élaboration d’un projet socio-environnemental qui le concerne). Mais on ne nous fournit pas de définition formelle de ce qu’est un débat.

Un débat s’inscrit dans un processus de prise de décision. Le mot débat peut concerner le processus complet ou une étape uniquement du processus de décision. Dans tous les cas, la discussion est un élément central du débat. C’est un échange qui permet d’exprimer des opinions contraires, des oppositions, de revoir ses certitudes ou incertitudes à la lumière de celles des autres participants dans le but d’aider à prendre une décision. Un débat fait intervenir des acteurs différents : des organisateurs, des évaluateurs, des groupes concernés qui se sont manifestés ou qu’il faut identifier.

Ajoutons que pour certains, la discussion est source de formation et d’information, pour d’autres, il faut déjà être informé pour pouvoir discuter. Pour certain il faut réduire les incertitudes des groupes concernés, pour d’autre, il faut aider le décideur.

Soulignons l’importance du sujet et de l’expression du sujet. L’un des échecs du débat public sur les nanotechnologies semble être d’avoir voulu traiter des Nanos dans leur ensemble (cf le site du débat Nano). La formulation du sujet d’un débat a de l’importance, “êtes vous pour ou contre les nanotechnologies ? ” est différent de “sur les options générales en matière de développement et de régulation des nanotechnologies”.

Et enfin, il ne faut pas sous-estimer l’aspect “image” de l’organisateur du débat public. Un autre facteur d’échec du débat public sur les nanotechnologies est peut-être d’avoir été organisé par le CNDP, organisme d’état jugé comme parti pris dans la discussion par de nombreux participants.

Dans notre approche, jusqu’ici, nous avons utilisé des ressources de départ (en l’occurence des documents html en ligne) comme point d’accroche des discussions. Nous avons adopté la position de l’information avant la discussion. Cependant, les deux approches ne sont pas incompatibles. La discussion permet dans tous les cas de s’informer.

Peut-on considérer qu’il existe déjà des outils de débats en ligne ?

Si l’on considére qu’un débat est une discussion dans laquelle s’expriment des opinions alors oui il existe déjà des outils. Tous les outils de discussion permettent d’exprimer des opinions sur des sujets. Après, le traitement de ces opinions n’est pas toujours une mince affaire (Wilson et al, 2009). Dans ce cas, il existe des solutions pour déceler les opinion, mais limitées par des problématiques de taille et de dynamique. La plupart des solutions de détection d’opinions sont effectuées à posteriori, sur des corpus ciblés et de taille limitée. Pas de fouille d’opinion en temps réel.

Si l’on considére que le débat est un processus de décision à part entiére, alors ce processus peut-être découpé en étapes (information, discussion, décision, ou autre découpage). Chaque étape pouvant être plus ou moins soutenue par des outils en ligne, comment faire en sorte que les données produites puissent être utiles d’étapes en étapes (que ces étapes soient intégralement en ligne, ou intégralement en présentiel ou les deux) ?

Nous sommes dans une vision du débat en ligne ou la phase de discussion est primordiale mais non suffisante. Nous sommes dans une vision du débat ou il y a un complément entre “réel et virtuel” (virtuel au sens de numérique). Dans ce contexte, il existe déjà des applications et d’autres sont à inventer. Cette hétérogénéité d’outils pose avant tout un problème d’interopérabilité.

Par exemple, on peut concevoir un outil pour aider à constituer un réseau. Ce réseau aura ensuite besoin de discuter en ligne et en présentiel. Il y aura donc besoin d’outils de discussion en ligne mais aussi d’outils d’organisation d’événements. Il faudra à un moment trouver des documents de références et en produire (donc outils d’annotations, de bookmarking et outils de co-rédaction). A certains moments il faudra prendre des décisions (besoin d’outils de vote). Et à chaque phase en présence, il faudra se référer à ce qui a été produit en ligne (outils de production de synthèses) et éventuellement faire part de ce qui a été dit en présence via des outils en ligne pour ceux qui n’ont pas pu venir aux événements présentiels…

Soit on imagine faire un outil monolithique qui englobe toutes les fonctionnalités nécessaires au débat, soit on conçoit des outils indépendants en garantissant des ponts entre ces outils.

Nous avons fait le choix de la deuxième solution parce que cela permet de réintégrer des outils déjà existants, cela permet de travailler plus facilement à plusieurs acteurs (chaque acteur pouvant développer un module indépendant), cela permet de prévoir des environnements modulables et adaptables à des formules de débats différents (comme le dit le CNDP, à chaque débat ses modalités d’action).

Nous allons dans la deuxième partie de cet article traiter d’un début de solution pour l’interopérabilité.

RDF c’est quoi et à quoi ça sert pour les débats?

Maintenant que l’on a fait le constat qu’il n’y avait pas de réelle application existante pour les débats en ligne mais qu’il existe un ensemble d’applications pouvant supporter des processus de débats en présences, il faut penser à l’articulation de ces outils en ligne entre eux et à l’articulation de ces outils avec les phases de débats en présentiel.

Le premier problème que cela pose est celui des formats de représentation des données. Il faut des formats ouverts, facile à comprendre par des programmes et par des humains. RDF nous semble donc être un bon candidat.

Qu’est-ce que RDF ?

RDF est un langage de description de méta-données. Une méta-donnée est une donnée sur une donnée. Par exemple, vous accédez à un document : la date de création de ce document, l’auteur de ce document sont des méta-données.

Sur la page du W3C consacrée à RDF, la première phrase est : RDF est un modèle standard pour l’échange de données sur le web.

La syntaxe de RDF est basée sur des triplets : sujet-prédicat-objet. Ceci permet d’exprimer des relations binaires entre des ressources. Par exemple, sujet:  Natoine, prédicat : est auteur, Objet : de ce document.

RDF permet de représenter des relations entre des ressources.

RDF permet de typer le lien entre des ressources et de typer les ressources. L’exemple précédent devrait être complété de la façon suivante : sujet : Une Personne identifié comme étant Natoine, est lié : par un lien de type “est auteur”, à une ressource objet : ce document qui est un Billet de blog. On sait que Natoine est une Personne, que le lien est de type est_auteur et que le document est un Billet de Blog. RDF utilise des notions de Classes (Personne, Billet de blog, …), de Relations (est auteur) et d’instances (Natoine est une Personne).

Une ressource est identifiée par une URI. Une URI est un identifiant unique, c’est cette unicité qui est importante. Une URL peut-être utilisée en tant qu’URI.

L’un des intérêts de RDF, c’est que grâce à son mécanisme d’identification des ressources, il est possible à plusieurs personnes de créer des méta-données sur une même ressource et il est possible d’aggréger ces différentes méta-données. RDF semble avoir été inventé pour faire des mashups . Par exemple, le site lastfm va créer un descriptif des musiques que j’écoute. Facebook va créer un descriptif de ma liste d’amis. Dans mon blog je crée un ensemble d’articles. Dans delicious je renseigne les pages web que je lie et les tags que j’utilise. Si ces systèmes proposaient tous des exports RDF des données précitées, je pourrai faire des recoupements comme par exemple savoir quels sont mes amis facebook qui me répondent sur mon blog ou les musiques que nous écoutons en commun, les tags communs que nous utilisons…

Concrétement comment fonctionne RDF?

J’ai présenté dans un article précédent de ce blog un cas d’utilisation du vocabulaire FOAF.

Je vais revenir sur cet exemple pour mieux présenter ce que permet de faire RDF.

La spécification de RDF nous apprend que RDF est un langage de description. Si on y regarde de plus prés, RDF est un méta-langage de description, c’est à dire qu’il permet d’écrire des langages de description (aussi appelés vocabulaires).

RDFS (pour RDF schéma) défini les expressions de base du langage RDF. RDFS définit un ensemble de classes et de propriétés. Dans les classes de RDF, on trouve la classe Classe et la classe Property.

En gros RDF permet d’écrire que Personne est une Classe que cette classe a, entre autres, une Propriété est_auteur. RDF permet aussi de préciser que la Propriété est_auteur permet de relier des instances de la classe Personne et des instances de la classe Document (grâce au Range et au Domain).

Bref, RDF permet de définir des vocabulaires, c’est le cas du Vocabulaire FOAF, donc de fournir un descriptif de classes et de relations entre ces classes.

A partir de ce vocabulaire, et toujours avec la même syntaxe, il devient possible d’exprimer des bases de faits. Il est possible grâce à FOAF de décrire un ensemble d’instances de Personne et les relations entre ces personnes.

Pourquoi définir plusieurs Vocabulaires ?

Il faut peut-être revenir sur la définition de ce qu’est une Ontologie. Le but d’un langage de description est de fournir une syntaxe pour écrire une Ontologie.

Une Ontologie, au sens informatique inspiré du sens philosophique, est une description formelle ou semi-formelle du monde.

Le but ultime est donc de pouvoir décrire le monde dans son ensemble, c’est à dire tous les éléments du monde et leurs relations, toutes les règles,  et ce selon tous les points de vue. Mais aussi de pouvoir raisonner (au sens de créer de nouvelles connaissances) à partir de cette description du monde.

Cependant, il faut constater que ce travail est impossible. Une description du monde dans son ensemble est une tâche colossale, le monde est en évolution constante, le point de vue des uns n’est pas toujours compatible avec le point de vue des autres, …

Du coup au lieu de parler d’Ontologie pour représenter le monde dans son ensemble, on préférera parler d’ontologies légéres permettant de représenter une partie bien définie du monde.

Par exemple, le vocabulaire FOAF permet de faire une ontologie des Personnes et de leurs relations. Le vocabulaire Dublin Core permet de faire une ontologie des documents. Et il existe de nombreuses ontologies pour représenter bien des choses différentes.

Quel format de données utiliser pour les débats ?

Le constat est fait, il faut des outils différents pour les différentes phases des débats. Nous proposons d’utiliser RDF pour représenter les données produites par ces débats.

Maintenant, allons-nous proposer un Vocabulaire pour les débats ?

La réponse est non. Comme dit précédement, il existe déjà des outils qui peuvent servir aux débats. Il existe aussi des vocabulaires pour représenter les données produites par ces différents outils.

Nous n’allons donc pas proposer un Vocabulaire unique pour représenter le débat dans son ensemble, nous allons utiliser des vocabulaires existants pour représenter certaines données des débats.

Par exemple, FOAF nous permettra de représenter les liens entre les individus.

SIOC nous permettra de représenter les productions des individus dans des discussions.

Dublin Core et RSS nous permettront de représenter des informations sur les documents de références servant à informer les participants des débats et les documents produits par les débats.

Annotea permettra de représenter des annotations (c’est à dire des liens entre de nouvelles données et des sélections de documents).

Il existe aussi des vocabulaires pour représenter d’autres données comme des événements (cf travail d’état de l’art et LODE de Raphaël Troncy and co), des coordonnées géographiques, des tags (MOAT, NiceTag), …

Nous allons détailler ici des solutions concrétes de représentation des données de la discussion. Pour le reste, il faut bien comprendre que nous nous inscrivons dans cette démarche de choix de vocabulaires pour lesquels il existe des “ponts” vers d’autres vocabulaires. Par exemple, le vocabulaire SIOC définit une classe UserAccount comme étant une sous-classe de OnlineAccount du vocabulaire FOAF. Cette démarche de lier des ontologies les unes aux autres est centrale dans le projet Linking Open Data. Elle accentue encore plus les possibilités d’aggrégations de méta-données sur des ressources.

Concrétement nous représentons quelles informations et comment ?

Profil “minimal” d’un utilisateur

Le profil minimal d’un utilisateur consiste à associer une ressource à un compte utilisateur. Ceci est fait par la classe UserAccount du vocabulaire SIOC.

Un utilisateur en lui-même est représenté par la classe Person de FOAF.

Ceci sert de point de départ à la représentation du réseau social et d’autres informations de profil de l’utilisateur.

Deux exemples suivent ou nous représentons une personne qui posséde un compte utilisateur avec le login Natoine dans la plateforme de débat “debat2.0.org” (plateforme fictive). Le premier exemple part d’une personne et présente l’un de ses comptes. Le deuxième part d’un compte et présente la personne à qui le compte appartient.

<!– Exemple 1 –>

<?xml version =”1.0″ encoding =”utf-8″?>

<rdf:RDF xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:rdfs=”http://www.w3.org/2000/01/rdf-schema#”

xmlns:foaf=”http://xmlns.com/foaf/0.1/”

xmlns:sioc=”http://rdfs.org/sioc/ns#”>

<foaf:Person rdf:about=”http://www.natoine.fr/#me” xml:base=”http://www.natoine.fr”>

<foaf:account>

<sioc:UserAccount rdf:about=”http://www.debat20.com/#natoine” rdfs:label=”natoine”>

<!– Autres informations sur le compte –>

</sioc:UserAccount>

</foaf:account>

<!– Autres informations sur la personne –>

<rdfs:seeAlso rdf:resource=”http://www.natoine.fr/natoine.rdf”/>

</foaf:Person>

</rdf:RDF>

<!– Exemple 2 –>

<?xml version =”1.0″ encoding =”utf-8″?>

<rdf:RDF xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:rdfs=”http://www.w3.org/2000/01/rdf-schema#”

xmlns:foaf=”http://xmlns.com/foaf/0.1/”

xmlns:sioc=”http://rdfs.org/sioc/ns#”>

<sioc:UserAccount rdf:about=”http://www.debat20.com/#natoine” rdfs:label=”natoine”>

<sioc:account_of>

<foaf:Person rdf:about=”http://www.natoine.fr/#me” xml:base=”http://www.natoine.fr”>

<!– Autres informations sur la personne –>

<rdfs:seeAlso rdf:resource=”http://www.natoine.fr/natoine.rdf”/>

</foaf:Person>

</sioc:account_of>

<!– Autres informations sur le compte –>

</sioc:UserAccount>

</rdf:RDF>

Pour un exemple plus complet, voir mon article de blog sur FOAF.

Deux remarques :

  • la plupart des propriétés sont définies avec leur propriété inverse. Ici, on a montré qu’il existait une propriété foaf:account et une propriété sioc:account_of qui sont l’inverse l’une de l’autre.
  • Il n’est pas obligatoire de donner toutes les informations au sujet d’une instance. Ici j’utilise la propriété rdfs:seeAlso pour renvoyer à un autre document RDF dans lequel je donne plus d’informations sur la ressource. Cette pratique n’est pas obligatoire mais elle est recommandée. Elle permet d’alléger un document RDF et de guider la recherche d’information sur une ressource.

Participation d’un utilisateur

La participation d’un utilisateur est pour l’instant essentiellement représentée par la classe Post de SIOC. Un Post est un élément de discussion comme il est possible d’en émettre dans un blog ou un forum. L’utilisateur est relié à un Post comme en étant l’auteur grâce à la relation has_creator de SIOC. Cette relation lie le Post au UserAccount de la personne.

Le Post est aussi lié au site, ou espace de discussion, dans lequel il a été émis par la relation has_container de SIOC. Un espace de discussion étant représenté par la classe Forum de SIOC. Un commentaire de blog est représenté par la classe BlogPost de l’extension SIOC types, cette classe BlogPost étant une sous-classe de la classe Post. Un BlogPost est contenu par un Blog qui est une classe spécialisant la classe Forum. Il deviendra peut-être nécessaire de définir d’autres classes étendant la classe Forum pour définir de nouveaux espaces de discussion. Mais il existe déjà pas mal de classes intéressantes, comme une classe Wiki, dans l’extension SIOC types. Il y a aussi d’autres classes et propriétés définies dans SWAN.

Bien d’autres informations peuvent être ajoutées à un Post en utilisant des propriétés de SIOC, ou de Dublin Core et RSS (puisque Dublin Core et RSS permettent d’ajouter des informations sur toutes ressources).

Un exemple ou nous représentons deux posts créés par l’utilisateur Natoine, un dans un forum, un dans un blog :

<?xml version =”1.0″ encoding =”utf-8″?>

<rdf:RDF xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:rdfs=”http://www.w3.org/2000/01/rdf-schema#”

xmlns:foaf=”http://xmlns.com/foaf/0.1/”

xmlns:sioc=”http://rdfs.org/sioc/ns#”

xmlns:dc=”http://purl.org/dc/elements/1.1/”

xmlns:dcterms=”http://purl.org/dc/terms/”

xmlns:content=”http://purl.org/rss/1.0/modules/content/”

xmlns:siocType=”http://rdfs.org/sioc/types”

>

<sioc:UserAccount rdf:about=”http://www.debat20.com/#natoine” rdfs:label=”natoine”>

<rdfs:seeAlso rdf:resource=”http://www.debat20.com/useraccount?p=natoine”/>

<sioc:creator_of>

<!– Premier Post –>

<sioc:Post rdf:about=”http://www.natoine.fr/blog/?p=437″>

<sioc:has_container>

<siocType:Weblog rdf:about=”http://www.natoine.fr/wordpress/?sioc_type=site#weblog”>

<sioc:name>Main blog at natoine</sioc:name>

</siocType:Weblog>

</sioc:has_container>

<dcterms:created>2010-02-01T15:56:28Z</dcterms:created>

<sioc:content>le commentaire libre version texte simple.</sioc:content>

<content:encoded><![CDATA[ le commentaire libre version HTML ]]></content:encoded>

<sioc:topic rdfs:label=”Programmation” rdf:resource=”http://www.natoine.fr/wordpress/?cat=5″/>

<sioc:topic rdfs:label=”Tutoriels” rdf:resource=”http://www.natoine.fr/wordpress/?cat=4″/>

<sioc:links_to rdf:resource=”http://www.natoine.fr/wordpress/?p=393″ rdfs:label=”tutoriel précédent sur la POO java”/>

<sioc:links_to rdf:resource=”http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html” rdfs:label=”la convention de codage recommandée par sun”/>

<sioc:has_reply>

<sioc:Post rdf:about=”http://www.natoine.fr/forum/?p=444″/>

</sioc:has_reply>

<sioc:reply_of>

<sioc:Post rdf:about=”http://www.natoine.fr/wordpress/?p=398″/>

</sioc:reply_of>

</sioc:Post>

<!– Deuxième Post –>

<sioc:Post rdf:about=”http://www.natoine.fr/forum/?p=444″>

<sioc:has_container>

<sioc:Forum rdf:about=”http://www.natoine.fr/wordpress/?sioc_type=site#forum”>

<sioc:name>Main forum at natoine</sioc:name>

</sioc:Forum>

</sioc:has_container>

<dcterms:created>2010-03-01T15:56:28Z</dcterms:created>

<sioc:content>le commentaire libre version texte simple.</sioc:content>

<content:encoded><![CDATA[ le commentaire libre version HTML ]]></content:encoded>

<sioc:topic rdfs:label=”Programmation” rdf:resource=”http://www.natoine.fr/wordpress/?cat=5″/>

<sioc:topic rdfs:label=”Tutoriels” rdf:resource=”http://www.natoine.fr/wordpress/?cat=4″/>

<sioc:has_reply>

<sioc:Post rdf:about=”http://www.natoine.fr/forum/?p=445″/>

</sioc:has_reply>

<sioc:reply_of>

<sioc:Post rdf:about=”http://www.natoine.fr/blog/?p=437″/>

</sioc:reply_of>

</sioc:Post>

</sioc:creator_of>

</sioc:UserAccount>

</rdf:RDF>

De la même façon que précédemment, puisque il existe des propriétés inverses, il est possible de décrire un site web et l’ensemble des messages qu’il contient. Par exemple, vous pouvez accéder à l’export SIOC des données de ce blog.

La description d’un Post peut déclarer qui en est l’auteur par la relation sioc:has_creator.

Un graphe de discussion

Un graphe de discussion s’obtient en liant des Posts par les status de réponses. Un Post peut être une réponse à un ou plusieurs autres Post par la relation reply_to de SIOC. Un Post peut avoir des réponses par la relation has_reply de SIOC.

Des POSTS peuvent être des réponses les uns aux autres sans nécessairement provenir d’un même espace de discussion.

Il est aussi possible de dire qu’un Post fait référence à une autre ressource par la relation links_to de SIOC.

Documents de référence

Les documents de référence sont des ressources web HTML ou vidéo ou audio. En utilisant les vocabulaires Dublin Core et RSS, on peut décrire la plupart des informations utiles sur ces documents comme qui en est auteur, le contenu, la date de mise en ligne … On peut éventuellement utiliser la classe Document de FOAF. Si le document est d’une autre ressource que texte, il est possible d’utiliser d’autres vocabulaires.

Plutôt que de détailler des exemples ici, je vous invite à consulter un exemple simple sur le site de Dublin Core et un exemple de RSS1.0 utilisant le module Dublin Core.

Annotations

Les annotations telles que nous les définissons recouvrent toute pratique visant à ajouter des données sur des documents ou des sélections de documents.

On peut alors considérer un Post sur un blog comme étant une annotation d’article de blog, un Post sur un forum comme étant une annotation de la discussion dans son ensemble ou du Topic de celle-ci.

Les annotations faisant référence à des pratiques classiques de discussion sur le web comme les blogs ou forums ont été présentées précédemment.

Nous allons ici détailler un type d’annotations : les annotations portant sur des sélections de document.

Nous nous basons sur le vocabulaire Annotea pour représenter ce type d’annotations.

Les éléments important à représenter dans une annotation :

  • L’annotation en elle-même, représentée par la classe annotea:Annotation
  • La ressource annotée, liée à l’annotation par la propriété annotea:annotates
  • L’emplacement exact annoté, ou la sélection de la portion de ressource annotée, lié à l’annotation par la propriété annotea:context.
  • Le corps de l’annotation, ou la nouvelle information apportée par l’annotation, liée à l’annotation par la propriété annotea:body.

Dans le cas d’une ressource HTML annotée, l’emplacement exact, la sélection est précisée par l’utilisation d’un XPointer.

Dans notre cas, la plupart des annotations que nous représentons sont dites discursives. Les informations ajoutées à des portions de documents sont des commentaires saisis par les utilisateurs dans le cadre d’une discussion. Je vous renvoie à la thèse de Gaëlle Lortal pour en savoir plus sur l’annotation discursive. Dans ce contexte, nous avons choisi de représenter le corps de l’annotation par la classe Post de SIOC.

Un exemple d’annotation discursive :

<?xml version =”1.0″ encoding =”utf-8″?>

<rdf:RDF xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”

xmlns:rdfs=”http://www.w3.org/2000/01/rdf-schema#”

xmlns:sioc=”http://rdfs.org/sioc/ns#”

xmlns:dc=”http://purl.org/dc/elements/1.1/”

xmlns:annotea=”http://www.w3.org/2000/10/annotation-ns”

>

<annotea:Annotation rdf:about=”http://www.natoine.fr/annotation/?p=479″>

<annotea:annotates rdf:resource=”http://www.jeanSallantin.fr/homepage”/>

<annotea:body>

<sioc:Post rdf:about=”http://www.natoine.fr/wordpress/?p=401″ dc:title=”IPC ou communication inter portlet 2. JSR286″>

<rdfs:seeAlso rdf:resource=”http://www.natoine.fr/wordpress/index.php?sioc_type=post&amp;sioc_id=401″/>

</sioc:Post>

</annotea:body>

<annotea:context>

http://www.jeanSallantin.fr/homepage#xpointer(id(”Main”)/p[2])

</annotea:context>

</annotea:Annotation>

</rdf:RDF>

Nous ne développons pas dans cet article de blog le cas des annotations de type Tag. Il existe actuellement plusieurs solutions pour représenter les tags.

Par exemple, s’il s’agit d’un domaine auquel la ressource fait référence, on peut utiliser la propriété topic de SIOC, on peut aussi dans ce cas utiliser la classe Concept de SKOS, il est possible de désambiguïser le sens d’un tag en faisant référence à une définition de wikipédia en passant par l’ontologie MOAT. Enfin, il existe un vocabulaire Nice Tag Ontology permettant de préciser le sens d’une action de tagging.

A ce sujet, je vous recommande de suivre les travaux de Freddy Limpens et Alexandre Monnin. Nous sommes encore en train de travailler sur l’utilisation des résultats de ces travaux dans notre contexte.

Ce qu’il manque !!!

Nous venons de voir plusieurs données qu’il est essentiel de représenter pour des débats en ligne. Cependant, il en manque encore.

En particulier, il n’est pas encore possible de représenter une opinion ou de typer un Post (c’est un contre-argument, une conclusion, …). Et ceci est central comme exposé précédemment. Le travail du VoCamp à Paris donne pas mal de pointeurs sur ce sujet, notamment des vocabulaires comme ARGDF. Enfin, les travaux sur NiceTag sont trés prometteurs à ce sujet. Cependant, NiceTag se concentre essentiellement sur le sens de l’activité de tagging et non sur l’activité d’annoter. Il est possible de dire qu’un tag exprime un désaccord en spécialisant la relation nt:isRelatedTo. Mais il n’est pas encore possible de dire qu’une annotation discursive exprime un désaccord.

Pour l’instant j’entrevois deux possibilités :

  • soit on ajoute dans le corps d’une annotation une action de tagging exprimant le désaccord. Mais ceci créera une redondance d’information. Une action de tagging lie la ressource taggée à la ressource représentant le tag par la propriété isRelatedTo. Il faudrait donc répéter l’information de quelle ressource est taggée alors que celle-ci est déjà exprimée par la propriété annotates de l’annotation.
  • soit les vocabulaires NiceTag et Annotea évoluent. Pour ma part je considére qu’une action de tagging est un cas particulier d’une action d’annotation. Il me semble qu’alors la propriété isRelatedTo est une propriété inverse et plus spécialisée de la relation annotates … Piste à suivre

Il n’existe pas à ma connaissance de vocabulaire définissant une classe Debate.

Je n’ai pas présenté de solutions permettant de représenter les groupes d’opinion ou stakeholders (parties prenantes). Il est sûrement possible d’utiliser des notions de groupes comme celles présentées dans FOAF. Dans ces groupes, il serait sûrement intéressant de représenter les rôles de chacun. Ceci pose la question de la légitimité de la prise de parole au nom d’un groupe. Est-ce que n’importe qui membre d’un groupe s’exprime nécessairement au nom de ce groupe ?

Enfin, je ne discute pas de la nature des ressources (ce qui est identifié par une URI). C’est à dire que je ne discute pas du fait qu’une ressource soit accessible par le web ou non (voir l’ontologie IRW à ce sujet). Du coup, il serait intéressant de se demander ce que peut être une annotation sur une ressource comme la tour eiffel par exemple (la tour eiffel a une URI, donc est une ressource, mais n’est pas accessible par le web).Bien entendu le travail de représentation des débats n’est pas fini. Ce que je propose ici est l’utilisation de vocabulaires existant pour une représentation de l’activité d’un réseau social au cours d’une discussion. Je m’appuie beaucoup sur les propositions de A.Passant dans sa thèse. Essentiellement, je n’ai fait qu’ajouter le lien entre les annotations d’Annotea et les Post de SIOC.

Leave a Reply

Your email address will not be published. Required fields are marked *