=================================== Publication sur le web sémantique =================================== .. include:: common.inc .. only:: html .. ifnotslides:: .. contents:: :local: :depth: 1 Web sémantique et sémantique du web =================================== Problème ++++++++ Comment faire le lien entre * la sémantique formelle des URIs en RDF/RDF-S/OWL, et * leur sémantique « opérationnelle » sur le Web ? → nécessité d'établir de *bonnes pratiques* Les quatres principes du Linked Data ++++++++++++++++++++++++++++++++++++ * Utiliser des URIs pour nommer les choses (= ressources). * Utiliser des URIs HTTP pour pouvoir obtenir des *représentations* de ces ressources. * Fournit ces représentation en utilisant des langages et des protocoles standards (RDF, SPARQL). * Inclure des liens pour permettre de découvrir de nouvelles ressources. .. rst-class:: small d'après Tim Berners-Lee, http://www.w3.org/DesignIssues/LinkedData.html Remarques --------- On ne fait pas mention ici de sémantique, mais... * un minimum de sémantique (RDF) est indispensable pour l'interopérabilité ; * les vocabulaires peuvent être formalisés aussi précisément qu'on le veut (RDF-S, OWL). Sémantique des URIs HTTP ======================== Problème ++++++++ * D'après les principes du *Linked Data*, tout objet d'intérêt devrait avoir un URI déréférenceable (en général ``http:``) * y compris une personne, une organisation, un lieu, un concept... * Or dans la sémantique de HTTP, une *ressource* est un objet *informatique*. → Ce problème est connu sous le nom httpRange-14_ .. _httpRange-14: http://www.w3.org/2001/tag/group/track/issues/14 httpRange14 ----------- .. figure:: _static/Carandache.png :width: 14em par `Caran d'Ache`_ et `Ivan Herman`_ .. _Caran d'Ache: http://en.wikipedia.org/wiki/Caran_d%27Ache .. _Ivan Herman: http://www.ivan-herman.net/ Solution 1 : identificateurs de fragment ++++++++++++++++++++++++++++++++++++++++ * Un URI peut contenir un identificateur de fragment (*fragid*), commençant par ``#`` * HTTP ignore les identificateurs de fragments (ils ne sont même pas envoyés au serveur) * donc la sémantique d'un URI contenant un *fragid* n'est pas contrainte par HTTP : * http://champin.net/  ≠  http://champin.net/#pa Illustration ------------ .. figure:: _static/punning-hash-uris.png :width: 20em source: http://www.jenitennison.com/blog/node/170 Problèmes en suspens -------------------- * La sémantique du fragment est normalement spécifiée par le type de contenu, ce qui pose problème notamment pour la négociation de contenu (types de contenus multiples). * Dans certains types de contenu, la sémantique du fragment est contrainte : * XML, HTML → sous-arbre de l'arbre DOM * ce qui pose problème pour RDFa... Solution 2 : redirection ++++++++++++++++++++++++ * Un code de retour ``200 OK`` signifie qu'on a affaire à une ressource au sens de HTTP (*information resource*) * Tout autre code n'engage pas HTTP sur la nature de la ressource. * Si l'URI identifie un autre type de ressource (*non information resource*), il doit utiliser une redirection *via* ``303 See Also`` * ce qui peut impliquer de la négociation de contenu pour s'adapter au client. * exemple : http://dbpedia.org/resource/Lyon redirige vers http://dbpedia.org/data/Lyon (RDF) ou http://dbpedia.org/page/Lyon (HTML) Illustration ------------ .. figure:: _static/punning-303.png :width: 14em source: http://www.jenitennison.com/blog/node/170 Publier des données =================== Relational mappers ++++++++++++++++++ Outils pour exposer une base de données relationnelle en RDF , comme : * un ensemble de pages RDF, * un point d'accès SPARQL. Nécessite une correspondance (*mapping*) entre les structures relationnelles (tables, colonnes) et la structure de graphe. :standard: http://www.w3.org/2001/sw/rdb2rdf/ :implémentation: http://d2rq.org/ RDFa ++++ * RDFa n'est pas une syntaxe comme les autres, puisqu'elle s'appuie sur HTML et transmet plus d'information que les triplets RDF * RDFa peut être utilisé pour annoter du HTML généré manuellement ou automatiquement (CMS, Wiki, Blog...) Exemple : Drupal_ .. _Drupal: http://drupal.org/node/1089804 Wiki sémantique +++++++++++++++ * Principe: apporter * syntaxe simplifiée * ajout facile de contenu *et de liens* * travail collaboratif * formalisation incrémentale * Plusieurs propositions * `Semantic MediaWiki`_ * Kiwi_ .. _Semantic MediaWiki: http://semantic-mediawiki.org/ .. _Kiwi: http://www.kiwi-project.eu/