Designez vos URIs en RDF (2)
Suite à une petite discussion de couloir avec Got, je m’aperçois qu’une courte note sur le design des URIs en RDF ne suffira pas. De plus, je l’ai certainement mal exprimé.
Je reprends donc différemment mon explication.
Quand vous appelez une ressource, vous ne savez pas quels liens cette ressource peut avoir avec d’autres ressources.
Il faut soit parcourir une représentation de la ressource elle même, soit aller consulter l’existence d’un lien dans dans une ressource créé spécialement pour gérer les liens. Or on pourrait vouloir (et il faudrait expliciter des usages) connaître au moins certains liens de la ressource, uniquement en connaissant son URI.
Comment faire ?
- Quand on écrit une URI comme
/parent/enfant
on indique une relation de filiation entre des ressources
- Quand on écrit des caractères de ponctuation dans les variables de chemin c’est généralement pour indiquer qu’il n’y a pas de relation hiérarchique entre les ressources :
/parent/enfant1;enfant2
- On peut également utiliser les variables de requêtes pour passer des paramètres à un programme :
/chercher/?q=%duseh&d%E9ut=20
Mais toujours rien, dans ces exemples (tirés de RESTful Web Services p.125 ed. française), qui me permette de connaître les liens vers d’autres URIs (mise à part la relation hiérarchique) et toujours simplement en lisant l’URI.
Ainsi je pourrais avoir une URI sur ma personne qui soit :
/organisation/people/Christian Fauré[foaf:homepage rdf:resource= »http://www.christian-faure.net »/]
Avec cet exemple (bidon dans sa syntaxe), je peux donc connaître, à la simple lecture de l’URI, un lien typé vers une autre ressource.
Je peux donc exprimer des liens entre des ressources, autrement que par un lien dans la représentation de la ressource (lien html par exemple) ou par la consultation d’un référentiel extérieur (un fichier RDF ou un end point RDF).
Il y a peut-être une économie de ces liens passés en variable de chemin qu’il faut trouver car, même si la norme HTTP n’impose aucune limite de longueur des URIs, les serveurs et client web imposent d’autres contraintes (2083 caractères pour IE par exemple).
Je ne vois pas vraiment le rapport avec RDF, à moins que tu parles d’une syntaxe de ce style là ?
[Reply]
Il a fallu passer à quelque chose d’un peu plus fort… les clients 😉
[Reply]
Bonsoir Christian,
C’est un sujet passionnant que nous avons cherché à aborder dans notre livre sur le Web 2.0 et, par chance, la section qui couvre ce problème est disponible sur le web…
Je pense que la principale limitation à mettre des informations dans les URIs est que ces informations ne doivent pas limiter leur stabilité.
Il faut donc éviter de coder sous forme de hiérarchie les organisations qui peuvent changer (ce serait par exemple une mauvaise idée de placer un employé sous son service puisqu’il peut changer de service sauf si au contraire, on veut identifier la fonction qu’il a dans ce service à un moment donné).
Eric
[Reply]