# Manque-t-il une surcouche à RDF ?

En lisant Where Are All The RDF-based Semantic Web Apps? ainsi que les commentaires et les questions et réponses soulevées j'en arrive moi aussi à me/vous poser des questions sur des problématiques auxquelles je réfléchis depuis quelques temps.

En restant très pragmatique (pour faire plaisir à Damien), je me demande comment inclure ces notions :

- confidentialité : je veux savoir qui a quels droits ;
- appartenance : je veux savoir quel en est l'auteur ;
- confiance : je veux pouvoir attribuer un indice de confiance à la relation ;
- temps : les relations dépendent bien souvent de ce facteur, les données devraient avoir une date de péremption ;

pour chaque triplet RDF sans faire tomber la base si je stocke ces metadonnées sous la forme d'autres triplets. Est-ce qu'il ne manquerait pas une couche plus haut niveau pour gérer tout ça ?

PS : et sinon j'ai trouvé un endpoint SPARQL en Python, yay!

### Articles peut-être en rapport

- Wikipedia propulsée par Ubuntu
- Atelier sur RDFa et les microformats pour Paris Web
- D'où vient l'argent ?

### Commentaires

Got le 12/10/2008 :

Deux réponses à ta question :

- Le Semantic Web stack (ou layer cake) intègre depuis le départ une brique "Trust". Pour l'instant, rien n'est prévu de ce côté là au W3C, mais ça viendra comme les autres briques. Pour autant, il faut pouvoir travailler dès maintenant et, pour faire plaisir à Damien, il faut une solution pragmatique d'où ma deuxième réponse

- Tu peux utiliser le principe des graphes nommés (ou named graph, http://www.w3.org/2004/03/trix/ et cf. la spécification de SPARQL). Les triple store (qui respectent strictement les standards du W3C) sont en réalité des quad store, c'est à dire que chaque triple est relié à une URI, c'est le principe des graphes nommés. Tu peux, au sein d'un quad store, relier un ensemble de triples à une URI et un autre ensemble à une autre URI. Cette URI peut elle-même être sujet d'un triple qui te permettra d'indiquer les informations que tu cites dans ton billet. Tu peux ensuite "intercepter" les requêtes des utilisateurs pour y ajouter ce qu'il faut pour tester l'autorisation par exemple. C'est une méthode testée (et approuvée pour un très gros projet que je mène actuellement, toujours pour rester pragmatique). Il est question de cette solution dans cette article : http://www2005.org/cdrom/docs/p613.pdf

Donc, pour résumer, il manque encore des briques, mais il existe dès maintenant des solutions pragmatiques.

David, biologeek le 12/10/2008 :

@Got : merci pour ces réponses, j'avais commencé à m'intéresser aux graphes nommés mais sans être allé assez loin, je vais me replonger dedans. Si tu as d'autres liens (ou un billet sous le coude ;-)) je suis preneur !

Olivier G. le 12/10/2008 :

"les données devraient avoir une date de péremption ;" : plutôt une date de création, la date de péremption d'une donnée que tu récupère risquant de dépendre de beaucoup de paramètres.

David, biologeek le 12/10/2008 :

@Olivier G. : en fait j'aurais dû parler de « durée de vie » d'une relation avec date de naissance/mort. Ça me semble plus juste.

Alex. le 13/10/2008 :

Certains entrepôts stockent même par défaut une date de création à chaque graphe, comme par exemple 3store (il gère également la date d'update). ARC le permet avec l'ajout de triggers, cf http://apassant.net/blog/2008/10/01/lightweight-subpropertyof-subclassof-inference-with-arc2/ et le dernier TimestampTrigger

C'est en effet une solution efficace pour annoter les triplets issus d'un même graphe (auteurs, etc) et utiliser ces annotations dans différents contexte (trust, authentification ...). Le problème se pose quand tu veux dans un même document, assigner des URIs différentes à chaque triplet, ou tu dois passer par une syntaxe comme Trix ou celle proposée récemment par l'INRIA avec RDF/XML source - http://www.w3.org/Submission/rdfsource/

Manuel Vila le 13/10/2008 :

Je crois que tu te poses les bonnes questions. En effet, il manque beaucoup au RDF pour passer de la théorie aux applications.

coulix le 13/10/2008 :

(HS) Steeve Cassidy était mon prof a Maq Uni c'est marrant de le voir ici.

Got le 13/10/2008 :

@David : quelques liens supplémentaires, http://www.w3.org/TR/rdf-sparql-query/#namedGraphs ; http://www.openarchives.org/ore/0.9/primer.html#Named_Graphs (ORE utilise massivement le principe des Named graphs, il n'est pas encore parfait, mais devient de plus en plus intéressant) ; http://www.websemanticsjournal.org/papers/20050909/document.pdf . Par ailleurs, en cherchant les références pour te répondre, je me suis souvenu d'un autre moyen pour gérer ce dont tu parles : POWDER, actuellement en cours de standardisation au W3C, permet d'exprimer des triples sur un groupe de ressources (cf. http://www.w3.org/2007/powder/ et les slides de Fabien Gandon http://www.slideshare.net/fabien_gandon/powder-in-a-nutshell-presentation/). Quant au billet, il faudra attendre un peu, je suis sous l'eau en ce moment :-(

@Manuel Vila : Tu te trompes et mes indications sont une première réponse... RDF et les différentes technologies du Web sémantique (OWL, SPARQL, RDFa et autres) sont tout à fait mures pour être implémentées. Si ce n'était pas le cas, je ne l'implémenterai pas sur un très important projet en ce moment. Bon, évidemment, pour le faire, il faut comprendre le principe même de ces technologies et je constate qu'en un an, tu n'as toujours pas évolué sur ce point. C'est dommage...

David, biologeek le 13/10/2008 :

@Alex : merci pour ces infos, c'est en effet au niveau stockage/requêtes que je m'en inquiète après pour la représentation en rdf/xml ça peut attendre.

@Manuel Vila : ça dépend des applications ;-).

@coulix : la classe !

@Got : oui justement j'étais parti sur POWDER avant de poster, il faut que je finisse de lire la dernière version car ça m'a l'air très intéressant.

Tiens au passage je t'inviterais bien devant une assiette un de ces 4 pour discuter de tout ça (entre autres). Partant ?

Got le 13/10/2008 :

@David : quand tu veux et ce sera avec plaisir, dans la mesure de mes dispos, préviens-moi un peu avant, histoire que je puisse m'arranger :-)