Jena API java pour RDF Lylia Abrouk.

Slides:



Advertisements
Présentations similaires
Cours n° 1 Introduction à la programmation
Advertisements

Cours n° 2 Les entrées-sorties Biliothèque C++ (iostream) –
Masters IIGLI et ILGII – Intranet internet extranet – – Claude Montacié 1 Cours n° 8 Langage HTML.
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
JEE Approfondi Frameworks : Maverick (MVC) JiBX (Persistance XML)
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Cours Web sémantique Langage SPARQL
(Classes prédéfinies – API Java)
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
Les technologies XML Cours 3 : Les APIS XML Janvier Version 1.0 -
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Servlet JAVA.
Principes de programmation (suite)
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Langages de représentation RDF (Resource Description Framework)
Principes de programmation (suite)
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
RDF(S)
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Système d’Exploitation
Structures de données IFT-2000
FICHIERS : Définition : Algorithme général:
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
G-RDF WEB SEMANTIQUE.
Présentation Structures de Données et TDA
Console MMC de Windows 2000 Présenté par Suzanne Savoie Cours 4.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Web sémantique : Web de demain
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI1502 Principes fondamentaux en conception des logiciels
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
Structures de données IFT-10541
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Animateur : Med HAIJOUBI
Le langage C Structures de données
Convertisseur OWL vers RDF/RDFS
JavaScript Nécessaire Web.
4 Introduction des objets. Les chaînes et tableaux
La notion de type revisitée en POO
Programmation objet La base.
Créer des packages.
Web sémantique Par Lydia Carine Mampais KI Bamba SISSOKO
X xx yyy Document XML Résolution d'entités Résolution espaces de nommages Reader Parsing Contrôle de validité structurelle Contrôle arbre bien formé Contrôle.
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Introduction à Visual Studio C++ (VC++)
Martine Toussaint Desir
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
ETNA – 1ème année Guillaume Belmas –
Les sockets.
Web sémantique est pratique documentaire
Projet Campus AAR ANR-13-CORD Point d’avancement INA INA 1 juillet 2014.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Permissions NTFS.
Master 1 SIGLIS Systèmes d’Information pour l’entreprise – Java RMI Stéphane Tallard Mise en œuvre de l’exemple Bonjour RMI Master 1 SIGLIS1 Intégration.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 2 – Java Premiers pas Master 1 SIGLIS1 Java Lecteur - Chapitre 2 - Java Premiers Pas.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
Architecture Client/Serveur
JDBC (Complément de cours) IFT 3030
Apéro Techno Romain Maragou - Aliou Sow Web sémantique.
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
LES CLASSES ET LES OBJETS
Web sémantique et ontologies
Jena API java pour RDF Lylia Abrouk.
Jena API java pour RDF Lylia Abrouk.
Transcription de la présentation:

Jena API java pour RDF Lylia Abrouk

Introduction Jena est une bibliothèque de classes Java qui facilite le développement d’applications pour le web sémantique. Manipulation de déclarations RDF. Lecture et écriture RDF/XML, Notation 3. Stockage en mémoire ou sur disque de connaissances RDF. Langage d’interrogation d’une base RDF. Gestion d’ontologies : RDF-Schema, DAML+OIL, OWL. Logiciel libre (licence BSD) développé par HP. http://jena.sourceforge.net Cours basé sur le tutoriel jena

Utilisation http://jena.sourceforge.net/ Tous les fichiers jar nécessaires à la compilation et à l’utilisation de Jena sont dans lib. Ils doivent tous être présents dans le CLASSPATH pour la compilation ou l’exécution de programmes utilisant Jena.

Exemple <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#"> <rdf:Description rdf:about="http://qqqfoo.com/staff/corky"> <vCard:FN>Corky Crystal</vCard:FN> <vCard:N rdf:parseType="Resource"> <!-- noeud nul --> <vCard:Family>Crystal</vCard:Family> <vCard:Given>Corky</vCard:Given> <vCard:Other>Jacky</vCard:Other> <vCard:Prefix>Dr</vCard:Prefix> </vCard:N> <vCard:BDAY>1980-01-01</vCard:BDAY> <vCard:TITLE>Computer Officer Class 3</vCard:TITLE> <vCard:ROLE> <rdf:Bag> <rdf:li>Programmer</rdf:li> <rdf:li>Scientist</rdf:li> </rdf:Bag> </vCard:ROLE> </rdf:Description> </rdf:RDF>

Triplets RDF Création d’un graphe. Ajout d’une ressource. ModelFactory est une fabrique de Model (graphes). createDefaultModel pour un graphe RDF « standard » en mémoire. createFileModelMaker pour un graphe RDF sur disque. createOntologyModel pour une ontologie (RDF-Schema,etc.) . . . Ajout d’une ressource. createResource ajoute une ressource à un Model. Retourne une Resource.

Triplets RDF Jena fournit des classes pour représenter graphes RDF (Model), ressources (Resource), propriétés (Property), littéraux(Literal). http://somewhere/JohnSmith vcard:FN "John Smith" . Exemple : Création d’un triplet ************************************************** //quelques définitions static String personURI="http://somewhere/JohnSmith"; static String fullName="John Smith“; // créer un Model vide Model model=ModelFactory.createDefaultModel(); //créer la ressource Resource johnSmith=model.createResource(personURI); //ajouter la propriété johnSmith.addProperty(VCARD.FN, fullName);

Exemple String personURI = "http://somewhere/JohnSmith"; String givenName = "John"; String familyName = "Smith"; String fullName = givenName + " " + familyName; // créer un Model vide Model model = ModelFactory.createDefaultModel(); // créer la ressource // ajouter des propriétés en cascade Resource johnSmith = model.createResource(personURI) .addProperty(VCARD.FN, fullName) .addProperty(VCARD.N, model.createResource() .addProperty(VCARD.Given, givenName) .addProperty(VCARD.Family, familyName));

Triplets RDF Un Model est un ensemble de Statement. Tout appel à addProperty crée un nouveau Statement. La méthode listStatements() retourne un iterateur StmtIterator qui permet de parcourir tous les Statement d’un Model. hasNext retourne un booléen nextStatement retourne le Statement suivant. Statement permet d’accéder au sujet (getSubject), prédicat (getPredicate) et objet (getObject).

Triplets RDF // liste des déclarations dans le graphe StmtIterator iter = model.listStatements(); // afficher le prédicat, le sujet et l’objet pour chaque déclaration while (iter.hasNext()) { Statement stmt = iter.nextStatement(); // déclaration Resource subject = stmt.getSubject(); // ressource Property predicate = stmt.getPredicate(); // prédicat RDFNode object = stmt.getObject(); // object System.out.print(subject.toString()); System.out.print(" " + predicate.toString() + " "); if (object instanceof Resource) { System.out.print(object.toString()); } else { // objet est un litéral System.out.print(" \"" + object.toString() + "\""); } System.out.println(" .");

Sauvegarde Dans la classe Model : Model write(java.io.OutputStream out, java.lang.String lang, java.lang.String base) lang est le format de sortie du modèle : "RDF/XML" (défaut), "RDF/XML-ABBREV" (RDF/XML plus compact), "N3"  (Notation 3). base : URI de base pour les URI relatives : Enlève base à toutes les URI qui commencent par base.

Sauvegarde Resource johnSmith = model.createResource(personURI) .addProperty(VCARD.FN, fullName) .addProperty(VCARD.N, model.createResource() .addProperty(VCARD.Given, givenName) .addProperty(VCARD.Family, familyName)); //écrire le modèle model.write(System.out, "RDF/XML-ABBREV");

Lire RDF La méthode read de la classe Model permet de lire un document read(java.lang.String url) Lecture d’un document RDF/XML. read(java.lang.String url, java.lang.String lang) read(java.io.InputStream in, java.lang.String base, java.lang.String lang) Lecture sur un flux d’entrée d’un document au format passé, en utilisant l’URI de base passée. Si base est "" pas de conversion des URI relatives. Cette méthode peut être utilisée sur un InputStream retourné par la méthode open de FileManager. FileManager permet d’ouvrir des documents sans se préoccuper du mode d’accès (file, http), et en utilisant un accès plus performant (copie locale d’un document distant).

Lire RDF Model model = ModelFactory.createDefaultModel(); model.read("file:///home/moi/base.rdf", "RDF/XML"); ************************** InputStream in = FileManager.get().open("test.rdf"); if (in != null) model.read(in, "");