Formation aux technologies du Web sémantique CCSD, Lyon, 8-10 septembre 2010.

Slides:



Advertisements
Présentations similaires
Association loi LiTeam est une association dédiée aux systèmes d'exploitation et aux logiciels libres.
Advertisements

Logiciels Libres Pour Le Web Concept express… En installer en 3mn …En personnaliser certains.
Créer une base de données MySQL
Créer une base de données MySQL Et création de tables, enregistrements, interaction avec PHP.
StatutLogiciel sous licence GNU General public license (logiciel gratuit et open source) Communauté dutilisateurs Importante communauté dutilisateurs,
INTRODUCTION INTRODUCTION ERGONOMIE Tri par cartes Formulaires Interface Installation Lanceur Documentation TECHNOLOGIES XML + XSL CSS Formulaires génériques.
Formation SIST Méthode de construction des sites SIST nationaux
MySQL et PHP.
Livret de Compétences Académique SEGPA Document de travail
Florence labord MOODLE : Présentation de la plate-forme
PROJET IPAD POUR LE CENTRE DE CRÉATION MULTIPLATEFORME France Séguin, conseillère pédagogique Jacques Therrien, enseignant profil Communication Programme.
A l’orée des vignes.
Portfolio - Dossier de cheminement Techniques de linformatique Rivière-du-Loup.
Traitement de texte ++.
Conseil dArchitecture dUrbanisme et de lEnvironnement de la Guadeloupe.
Configuration Android
Pôle Evaluation Bilan de la journée SPIRAL CONNECT 2010.
Guide dutilisation du site CampusFrance Maroc. Ce petit guide vous permet de visualiser les rubriques importantes afin dutiliser le site Internet et de.
Année Diaporama créé à partir du diaporama officiel de lonisep disponible dans son intégralité et en téléchargement libre sur le site onisep dédié
Chapitre 2 CRUD Enseignants : Wassim M’sallem Matière : Web 2.0
Un blog (pour web log) est un espace de publication personnel, vous permettant de diffuser du contenu sur un espace qui vous est réservé.
1 Les portails Staf2x « its a blog, blog, blog, blog world » Professeurs : Roberto ORTELLI David TOUVET Etudiant : Daniel K. SCHNEIDER Staf-g.
Staf2x - Portails - ORTELLI TOUVET1 Installation de PhpWebSite Commencer par télécharger le portail: Dézipper le fichier.
Présentation et utilisation du logiciel R Komi Sodoké Université du Québec à Montréal Février 2007.
Guide de Préparation d’une soutenance du Projet de Fin d’Etudes
Les guides de formation WS-FTP Comment télécharger un site web sur le serveur de lÉcole.
Introduction : Présentation de Linux Choix d’une distribution
MODEX WEB DOMINIQUE ROSSIN Mysql. La semaine passée index.php?page=contact Page autorisée ? Redirection NON
Premières étapes dutilisation de STSWEB connecté à SCONET.
La fête des lumières 2010 à Lyon (France)
Utilisation et Maîtrise de lInternet dans lenseignement « bonne maîtrise Informatique » « réelle réflexion pédagogique » « appropriation efficace des outils.
Direction générale des technologies de l’information et de la communication (DGTIC) Scénario pédagogique – WebDépôt Mise à la disposition de documents.
Ipchains TP 1 TP 2 TP 3 Installer un serveur web sur votre poste,
CPI/BTS 2 Programmation Web PHP et les Bases de données Prog Web CPI/BTS2 – M. Dravet – 11/03/2004 Dernière modification: 11/03/2004.
Convertisseur OWL vers RDF/RDFS
Guide d’utilisation du site WEB Campus France Maroc www. maroc
Date : Juillet 2014 Formation : TAI Formateur : Tayeb BENDJELTI
Observatic Je crée un diaporama en ligne… Diapo à visionner ou site web.
Configurer son premier site SPIP De Easy PHP à Free en une journée.
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Mise en place d’un Intranet
(Dropbox, Hubic, SugarSync) Chausson / Delrieu / Thibaut.
Un projet d’éducation à la nature et à l‘environnement franco-allemand
Stellarium Atlas Virtuel de la Lune Carte du ciel André Choquette, CAAL janvier 2012.
Guide d’utilisation du site CampusFrance Maroc. Ce petit guide vous permet de visualiser les rubriques importantes afin d’utiliser le site Internet et.
Easy Solutions Création d'un CRM
LibX Catalogue Sudoc  LibX est un module complémentaire pour navigateur web  Il permet un accès rapide à des fonctions de recherche dans des.
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
PHP SpeedBerg Templates EPFL PHP IIème Conférence des WebMasters EPFL 5/12/2001 Tuan Lam E-PFL
Installation UI EGEODE Équipe GRID1 Installation UI EGEODE.
CREATION DE CONTENU POUR ECRAN « INTERACTIF »
SPPPI dédié à l’activité spatiale - commission « environnement, santé et risques lanceurs » - 23 janvier 2009 Les 29 et 30 mai 2008 à Strasbourg Compte-rendu.
Avril Aménagement des locaux La technologie en 6 ème Sommaire : Îlot Dédié à l’objet Avec ordinateur Exemple de laboratoire Synthèse Rompre avec.
Centralisation des sites web d’ELTA & Mise en place d’un serveur NAS
 Les bases de données MySQL
NOAL WEB SITE noalwebsite.eklablog.com. Présentation du site Le site noal web site est un site informatique avec des astuces, téléchargements légaux et.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Séance /10/ Projet de site dynamique avec Dreamweaver : MyCMS
ICOWS - « Ingénierie des Connaissances & Ingénierie des Ontologies appliquées au Web Sémantique » - 1 / 88 Informatique Internet et ses services avancés.
MATHS - PHYSIQUE INFORMATIQUE ÉLECTRONIQUE - OPTIQUE Sites spécialisés 4 Septembre 2014.
LES BASES DE DONNEES PRÉSENTÉ PAR CATHY ET THIBAULT.
MONTAGE ET INSTALLATION D ’ UN SERVEUR SOUS UBUNTU.
Séminaire de rentrée cours de programmation web & Wordpress
P ROJET WEB « Movie On Rails » Site de critique de films Benoît GUICHARD & Valentin GAILLARD.
Dreamweaver MX Jauneau Marie Claude-Antoine Zarate.
1 CEC A.-CHAVANNE Sites Web et bases de données. 2 UNE BASE DE DONNÉES : POURQUOI ? Manipulation de grandes quantités d’information – représentation des.
1 SEPTEMBRE 2013 LFH – ProD2 et D2F Formation statistique HANDVISION clubs de l’élite.
1 SEPTEMBRE 2015 LFH et PRO D2 Formation statistique HANDVISION clubs de l’élite.
1 Stage Master 2 THYP Wiki Informatique Approches sémantique et ontologique à l’Université Paris 8 14 Septembre 2006.
HECTOR REMI TSTi2D2. * Séquence 1 : Cahier des charges du classeur WEB SIN * Séquence 2 : Conception du classeur WEB SIN * Séquence 3 : Mise en oeuvre.
Transcription de la présentation:

Formation aux technologies du Web sémantique CCSD, Lyon, 8-10 septembre 2010

2 Présentation de la formation Objectif : découvrir les technologies du Web sémantique tant du point de vue théorique que pratique Jour 1 Aspect théorique et Web de données Jour 2 Aspect pratique et Ontologie Jour 3 PHP et Web sémantique

3 Plan de la journée Sélection et traitement des triplets Préparer lenvironnement Gestion des triplets

4 Préparer lenvironnement Télécharger ARC sur le site Créer une base de données MySQL et, éventuellement, un utilisateur dédié avec les droits de création des tables Créer un nouveau répertoire dans votre espace Web et placer le répertoire « arc »

5 Configurer ARC <?php /* Fichier de configuration pour ARC 2 */ $arc_config = array( /* Configuration de l'accès à la base de données MySQL */ 'db_host' => '', /* Domaine de la base de données ; par défaut : localhost */ 'db_name' => '', /* Nom de la base de données */ 'db_user' => '', /* Nom de l'utilisateur de la base de données */ 'db_pwd' => '', /* Mot de passe de l'utilisateur de la base de données */ /* Nom de l'entrepôt RDF Cela permet de créer plusieurs entrepôts distincts avec la même base de données */ 'store_name' => '', /* Nombre d'erreurs maximums avant l'arrêt d'un script 'max_errors' => 100, */ /* Configuration complémentaire en cas de présence d'un proxy 'proxy_host' => ' ', 'proxy_port' => 8080, */ /* Préfixe pour les nœuds blancs 'bnode_prefix' => 'bn', */ /* Formats supportés par l'extracteur de données structurées dans les pages Web */ 'sem_html_formats' => 'rdfa microformats', ); ?>

6 Principes de fonctionnement de ARC Simulation dun triple store avec BD Mysql Toutes les interactions avec la base de données MySQL se font en SPARQL Depuis lextérieur via un sparql endpoint Ou directement via des méthodes PHP Convertisseur SPARQL To SQL SPARQL

7 Configurer le SPARQL endpoint <?php include_once('arc/ARC2.php'); include_once('config.php'); /* Compléments par rapport à la configuration initiale */ $config = $arc_config + array ( /* Type de requêtes supportés par le sparql endpoint */ 'endpoint_features' => array( 'select', 'construct', 'ask', 'describe', 'load', 'insert', 'delete', 'dump' /* dump is a special command for streaming SPOG export */ ), 'endpoint_timeout' => 60, /* Temps maximal d'exécution */ 'endpoint_read_key' => '', /* Facultatif : définition d'une clé pour effectuer une requête de lecture */ 'endpoint_write_key' => 'somekey', /* Facultatif : définition d'une clé pour effectuer une requête d'écriture */ 'endpoint_max_limit' => 250, /* Facultatif : Nombre maximal de résultat */ ); /* Instantiation d'un sparql endpoint */ $ep = ARC2::getStoreEndpoint($config); /* Création des tables ARC dans la base si elle n'existe pas */ if (!$ep->isSetUp()) { $ep->setUp(); } /* Méthode pour déclarer le sparql endpoint */ $ep->go(); ?>

Plan de la journée Sélection et traitement des triplets Préparer lenvironnement Gestion des triplets

9 Le principe des graphes nommés Chaque triplet étant indépendant, comment rassembler un ensemble cohérent de triplets ? Principe du graphe nommé Le graphe nommé Ressource pour relier différents graphes Quadruplet Gérer un ensemble de triplets (suppression, ajout, modification) Indiquer la provenance dun ensemble de triplets Exprimer la confiance sur un ensemble de triplets Le principe des graphes nommées est présent dans SPARQL, mais pas encore officiellement dans RDF la syntaxe RDF/XML ne permet pas de lexprimer

10 SPARQL Update LOAD INSERT INTO { ?s foaf:knows ?o.} WHERE { ?s xfn:contact ?o.} INSERT INTO { "baz". } Charger un flux RDF (quelque soit sa syntaxe) accessible à lURI indiqué. Sil sagit dune page HTML, ARC détecte les microformats, microdatas et RDFa et en extrait les triplets RDF. Syntaxe Dans ce cas, lURI chargé est aussi lURI du graphe nommé INSERT Insérer un ensemble de triplets dans un graphe nommé Syntaxe Il est aussi possible dajouter des triplets construits à partir de triplets existants. Dans ce cas, les triplets exprimés sont insérés dans le graphe nommé précisé LOAD INTO Dans ce cas, les triplets sont associés au graphe nommé précisé

11 SPARQL Update DELETE Supprimer des triplets RDF Syntaxe DELETE { "baz". } Dans ce cas, les triplets exprimés seront supprimés DELETE FROM Dans ce cas, tous les triplets associés au graphe nommé seront supprimés DELETE FROM { ?s rel:wouldLikeToKnow ?o.} WHERE { ?s kiss:kissed ?o.} Il est aussi possible de supprimer des triplets à partir de s contraintes exprimées via dautres triplets Ces opérations sont en cours de normalisation dans le cadre de SPARQL 1.1. La syntaxe peut donc encore légèrement variée.

12 LOAD : Charger des triplets <?php $url=$_GET['url']; include_once('arc/ARC2.php'); include_once('config.php'); /*Instantiation*/ $store = ARC2::getStore($arc_config); /*Si les tables ne sont pas crées, création des tables */ if (!$store->isSetUp()) { $store->setUp(); } /* Chargement du flux distant */ if (isset($url)) { $load="LOAD "; if ($rows = $store->query($load)) { $added_triples = $rows['result']['t_count']; echo $added_triples." triplets ont été ajoutés "; } else { print "Vous n'avez pas saisi d'URL à charger"; } ?> Renvoie un tableau Exploitation du tableau

13 Plan de la journée Sélection et traitement des triplets Préparer lenvironnement Gestion des triplets

14 SELECT : effectuer une requête <?php include_once('arc/ARC2.php'); include_once('config.php'); /* Instantiation de l'entrepôt à partir de la configuration */ $store=ARC2::getStore($arc_config); /*Si les tables ne sont pas crées, création des tables */ if (!$store->isSetUp()) { $store->setUp(); } $query="PREFIX skos: SELECT DISTINCT ?s ?nom WHERE { ?s skos:subject ; rdfs:label ?nom. FILTER (lang(?nom)='fr') }"; $res=$store->query($query); if($store->getErrors()) { print_r($store->errors); echo "***\nQuery = $query"; } else { print_r($res); } ?>

15 Le tableau de réponse Array ( [query_type] => select [result] => Array ( [variables] => Array ( [0] => s [1] => nom ) [rows] => Array ( [0] => Array ( [s] => [s type] => uri [nom] => Anakin Skywalker [nom type] => literal [nom lang] => fr ) [1] => Array ( [s] => [s type] => uri [nom] => Luke Skywalker [nom type] => literal [nom lang] => fr ) [query_time] => )

16 Exploiter le tableau de réponses <?php /* [SNIP] */ $query="PREFIX skos: SELECT DISTINCT ?s ?nom WHERE { ?s skos:subject ; rdfs:label ?nom. FILTER (lang(?nom)='fr') }"; $res=$store->query($query); if($store->getErrors()) { print_r($store->errors); echo "***\nQuery = $query"; } else { print " "; foreach ($res['result']['rows'] as $result) { print " ".$result['nom']." "; } print " "; } ?>

17 Utiliser des classes (1) class store { public $store; public function __construct() { $this->init(); } private function init() { global $arc_config; $this->store = ARC2::getStore($arc_config); /*Si les tables ne sont pas crées, création des tables */ if (!$this->store->isSetUp()) { $this->store->setUp(); } public function do_query($query) { global $debug; $prefix=" PREFIX dbpprop: PREFIX dbowl: $res = $this->store->query($prefix." ".$query); if($debug && $this->store->getErrors()) { print_r($this->store->errors); echo "***\nQuery = $query"; die(); } return $res; }

18 Utiliser des classes (2) class personnage { public $uri; public function __construct($uri, $lang='en') { $this->store=new store; $this->uri=$uri; $this->lang=$lang; $infos="SELECT ?label ?abstract ?affiliation ?page WHERE { uri."> dbowl:abstract ?abstract; rdfs:label ?label; dbpprop:affiliation ?affiliation; foaf:page ?page. FILTER (lang(?abstract)='".$lang."') FILTER (lang(?label)='".$lang."') }"; $infosquery=$this->store->do_query_row($infos); $this->query=$infos; $this->result=$infoquery; $this->description=$infosquery['abstract']; $this->nom=$infosquery['label']; $this->affiliation=$infosquery['affiliation']; $this->wikipedia=$infosquery['page']; }

19 Créer de nouvelles pages en exploitant les classes <?php include ('./class.php'); $uri=$_GET['uri']; $personnage=new personnage ($uri,'fr'); ?> nom ?> Encyclopédie Star Wars nom ?> Description : description ?> wikipedia ?>">En savoir plus sur Wikipedia Affiliation : affiliation ?> Accueil | Semantic Web Labs | Les Petites cases

20 Remote store : interroger un sparql endpoint distant Il est tout à fait possible dinterroger un sparql endpoint distant ce qui permet de mixer différentes sources de données Arc ne dispose pas de système de cache. Attention donc à la perte de connexion !! <?php /* configuration */ $remoteconfig = array( /* remote endpoint */ 'remote_store_endpoint' => ' ); /* instantiation */ $remotestore = ARC2::getRemoteStore($remoteconfig); $query="SELECT ?label WHERE { planet."> rdfs:label ?label FILTER (lang(?label)='fr')}"; $result = $remotestore->query($query, 'row'); print $result['label']; ?>

21 CONSTRUCT : récupérer ou créer des triplets Ce type de requêtes permet de récupérer un ensemble de triplets stockés dans le triple store pour les manipuler localement, de « re-modéliser » des nouveaux triplets à partir des triplets existants voire dappliquer des règles dinférence. Deux parties Construction des triplets cible Une ressource a pour titre une étiquette Recherche dans les triplets existants Une ressource a pour étiquette une étiquette. ?resource dc:title ?label ?resource rdfs:label ?label CONSTRUCT { } WHERE { }

Merci pour votre attention Gautier Poupeau Antidot | GSM: +33 (0) F-75 Paris | mailto: Blog : Les petites cases | Twitter petites cases