Jena API java pour RDF Lylia Abrouk.

Slides:



Advertisements
Présentations similaires
RDF(S)
Advertisements

Convertisseur OWL vers RDF/RDFS
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.
Web sémantique est pratique documentaire
Jena API java pour RDF Lylia Abrouk.
Web sémantique et ontologies
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Formation web sémantique J.M. Vanel RDF, RDF Schema, SPARQL, OWL, Modélisation, moteurs de règles Licence Creative Commons.
1 Le stage informatique de Masters APIM et PIE (2012/2013) Ivana Hrivnacova Vincent Lafage Basé sur le stage informatique du LAL et IPN par (2005/2006):
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
WIKITTY Base de données orientée documents et API de persistance pour Java.
Java et sockets TCP.
ANNEE ACADEMIQUE Institut Supérieur Emmanuelle D’Alzon de Butembo COURS: THEORIE DE BASE DE DONNEES : 45H PROMOTION: G2 Gestion Informatique.
Interfaçage entre Maple et du code externe
Terminaux virtuels (VTY)
Framework EHop/Ecenvir
Correspondance B2i - Technologie
1.2 Programmes et données Les programmes comme les données sont stockés dans les mémoires (centrales et périphériques) des ordinateurs Informatique.
Environnement de développement des BD
Introduction au Langage Pascal
Environnement du développement de BD ORACLE REPORTS 10g
Session 1 6 mars 2017 Plateforme ICONICS Justine Guégan
Pas de variable globale
Les notions de classe et d'objet
L’utilisation des formulaires pour un exemplarisateur
Objectifs Maîtriser : Un environnement de travail
Jena API java pour RDF Lylia Abrouk.
Monsieur Jourdain du Web de données
Programmation en C++ IO en C++/SL
TP N°2 : les Adresses IP *IP: Internet Protocol
Production de documents pédagogiques et chaîne éditoriale
AIDE A L’UTILISATION DU LOGICIEL LATISPRO
OWL-S.
Principes de programmation (suite)
Installation et Configuration Internet Information Server (IIS 5)
LE MASHUP.
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
L’ordinateur et les fonctions de ses composantes
Module 5 : Gestion des disques.
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
Systèmes Intelligents – M2- BD-IA1 Protégé-OWL Tutorial 8 th International Protégé Conférence Madrid, July 2005 Nick Drummond, Matthew Horridge, University.
Introduction BD TABLES ET DONNÉES champs OU données, types de données
Déductions: appliquer l'IA au logiciel
Programmation en C++ C++ de base
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Type Concret – Type Abstrait
Catherine Cyrot - bibliothèques numériques - Cours 5
Développement d’une Application CORBA
STS Web Services libres Constituer les services libres
Les classes et les objets
Les structures de base Listes chainées. Listes Les listes(similaire aux tableaux) sont des structures informatiques qui permettent de garder en mémoire.
Programmation Web : DOM en PHP
Schéma de conception Factory Method Exemple
Atos, Atos et le poisson, Atos Origin et le poisson, Atos Consulting ainsi que le poisson seul sont des marques déposées d'Atos Origin SA. © 2006 Atos.
Principes de programmation (suite)
LISTES.
STREAMS (et fichiers).
Lecture/Écriture de fichiers (I/O)
LUSTRE Integration to SRM
COURS ADMINISTRATION DE BASES DE DONNÉES IMPORT/EXPORT Karim LABIDI ISET Ch
Catherine Cyrot - bibliothèques numériques - Cours 5
Bases de données Singleton pour la connexion
STS Web Services libres Constituer les services libres
TP N°4 Développement d’ une application
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
Les Commandes de base Linux. 1 L’aide sur les commandes Linux ◦ help : obtenir de l’aide pour une commande interne du shell. Elle permet aussi d'afficher.
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, "");