IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Frameworks Discussion :

Ontologies


Sujet :

Frameworks

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Points : 2
    Points
    2
    Par défaut Ontologies
    Bonjour, J'ai une ontologie que je veux manipuler en utilisant jena, (c à d raisonnement sur les classes et les instances, ajout et suppression des instances, recherche d'information). j'ai transférer mon ontologie en fichier OWL. mais pour la suite(ajout, suppression, recherche d'information ) je sais pas comment je peux le faire avec jena(les classes et les méthodes à importer). MERCI

  2. #2
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Citation Envoyé par simplicite.com Voir le message
    Bonjour, J'ai une ontologie que je veux manipuler en utilisant jena, (c à d raisonnement sur les classes et les instances, ajout et suppression des instances, recherche d'information). j'ai transférer mon ontologie en fichier OWL. mais pour la suite(ajout, suppression, recherche d'information ) je sais pas comment je peux le faire avec jena(les classes et les méthodes à importer). MERCI
    T'as regardé la documentation ? Bien que sommaire, elle donne les bases pour apprivoiser l'api.

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    MERCI TOMMY mais je n'y suis toujours pas parvenu

  4. #4
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    J'ai un ou deux petits exemples sous la main :

    Chargement d'une ontologie, avec Pellet comme reasonner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC);
    model.read(inOntology);
    model.prepare();
    Lecture des individus d'un certain type, et lecture de ses propriétés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    OntClass pointClass = model.getOntClass("http://www.w3.org/2003/01/geo/wgs84_pos#Point");
    Iterator<?> i = pointClass.listInstances();
    Collection<Individual> individuals = new ArrayList<Individual>();
    while (i.hasNext()) {
    	Individual individual = (Individual) i.next();
     
    	description = individual.getPropertyValue(property).getString();
    }
    Création d'un nouvel individu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Individual newPoint = newModel.createIndividual(uri, pointClass);
    newPoint.addLabel(label, null);
    ...

    Attention, ce ne sont que des portions de code. Elle peuvent contenir des erreurs que tu corrigeras en t'aidant de la javadoc.

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 74
    Points : 54
    Points
    54
    Par défaut JENA - ONTOLOGY - SPARQL
    Bonjour,

    Je me permet de poster un message ici parce que je rencontre un peu le même problème. Je cherche à extraire des informations d'une ontologie OWL en effectuant des requêtes SPARQL via l'API Jena. J'ai un code source écrit en java, j'ai installé JENA, JAV etc... (là n'est pas le pb)

    Quand je lance mon fichier depuis une console DOS "java -jar 'chemin de jena.jar' fichier.jar" j'ai cette erreur Failed to load Main-Class manifest attribute from jena.jar.

    J'ignore si c'est la bonne méthode, je sais pas s'il faut juste faire le javac, puis le java avec le .class, sachant que dans mon .java j'ai déclaré des package et tout. Avez vous une idée ?

    Merci

  6. #6
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Je pense que tu aurais du créer un autre post pour ton problème...

    Que cherches-tu à faire :
    - Lancer des requêtes SPARQL via la ligne de commande ARQ ?
    - Utiliser l'API SPARQL depuis tes classes Java ?

    Dans le premier cas, je te renvoie à la doc ARQ CmdLine. Dans le deuxième cas, il faut que tu crées ta propre classe de lancement, avec une méthode main et que tu la lances comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp jenalibdir/jena.jar;tonlibdir/tonfichier.jar TaClasseMain
    Remarque : le séparateur est le ';' pour Windows et ':' pour Linux.

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 74
    Points : 54
    Points
    54
    Par défaut
    [QUOTE ]java -cp jenalibdir/jena.jar;tonlibdir/tonfichier.jar TaClasseMain [/QUOTE]

    Mon fichier.jar ?
    Je souhaite interroger mon ontologie en SPARQL en utilisant l'API JENA. J'ai un fichier java dans lequel je spécifie mon ontologie.owl et ma requête SPARQL. Par la suite je me suis dit que je pouvais l'exécuter sous DOS en tapant le java -bla bla bla. Mais "monfichier.jar" ???

  8. #8
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Mon exemple est valable si ta classe java est dans un fichier jar. Si tu as gardé une structure de répertoire, tu n'as pas besoin de le spécifié.

    Cependant, si tu veux juste lancer une requête sparql, tu peux te contenter de l'outil command line de Jena :
    - Tu enregistres ta requête dans un fichier texte.
    - Tu lances ARQ en ligne de commande en indiquant le fichier sqarql et ton ontologie.

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    bon voilà j'ai suivi vos conseils mais toujours pas de résultats.
    si possible me procurer le code complet du chargement d'une ontologie avec jena ceci m'aidera à finaliser les autres.
    merci

  10. #10
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Que signifie
    pas de résultats
    ? As-tu des messages d'erreur, que se passe-t-il ?

  11. #11
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    J'aimerais en savoir plus aussi. La doc est très explicite, le package contient quelques exemples fonctionnels... ca devrait marcher sans soucis !

  12. #12
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    voici ce que j'ai fait :
    veuillez me réctifier . merci


    package mediateur.owlJena;

    import com.hp.hpl.jena.rdf.model.*;
    import com.hp.hpl.jena.ontology.*;
    import com.hp.hpl.jena.util.iterator.*;
    import com.hp.hpl.jena.util.FileManager;
    import java.io.*;
    import java.util.*;

    import com.hp.hpl.jena.ontology.OntClass;
    import com.hp.hpl.jena.ontology.impl.IndividualImpl;

    import com.hp.hpl.jena.ontology.OntModel;
    import com.hp.hpl.jena.ontology.OntModelSpec;

    import com.hp.hpl.jena.rdf.model.ModelFactory;
    import com.hp.hpl.jena.rdf.model.Property;
    import com.hp.hpl.jena.rdf.model.Resource;
    import com.hp.hpl.jena.util.FileManager;
    import com.hp.hpl.jena.util.iterator.ExtendedIterator;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.io.Writer;

    public class test {
    {
    // create an empty model
    Model model = ModelFactory.createDefaultModel();

    // use the FileManager to find the input file
    InputStream in = FileManager.get().open( inputFileName );//le inputFilename quel nom attribué
    if (in == null) {
    throw new IllegalArgumentException(
    "File: " + inputFileName + " not found");
    }


    model.read(in, "", "N3");

    // write it to standard out
    model.write(System.out);
    }
    }

  13. #13
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Je comprends que tu aies du mal à nous donner des informations plus précises : ta classe ne peut absolument pas compiler !
    Il semblerait que la première lecture dont tu aurais besoin n'est pas la doc Jena, mais un tutoriel Java, pour commencer par un Hello World. Puis que tu étudies la gestion de librairies jar, et, enfin, que tu regardes comment on manipule les fichiers. Je passe, pour l'instant, sur les conventions de nommage...

    Je te souhaite bon courage.

    Ceci dit, pour ne pas de laisser mariner, voici une version corrigée, qui compile et qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    package mediateur.owlJena;
     
    import java.io.InputStream;
     
    import com.hp.hpl.jena.rdf.model.Model;
    import com.hp.hpl.jena.rdf.model.ModelFactory;
    import com.hp.hpl.jena.util.FileManager;
     
    public class Test {
     
    	public static void main(String[] args) {
    		// create an empty model
    		Model model = ModelFactory.createDefaultModel();
     
    		String inputFileName = "exemple.n3";
    		// use the FileManager to find the input file
    		InputStream in = FileManager.get().open(inputFileName );
    		if (in == null) {
    			throw new IllegalArgumentException("File: " + inputFileName
    					+ " not found");
    		}
     
    		model.read(in, "", "N3");
     
    		// write it to standard out
    		model.write(System.out);
    	}
    }
    Pour que ça marche, il faut un fichier exemple.n3, au format N3, à l'endroit d'où tu lances ton programme. J'ai fait un essai concluant avec l'exemple ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    @prefix exemple: <http://www.sewatech.fr/exemple#> .
     
    <http://www.sewatech.fr/initiation-java> exemple:is-a "Formation" .
    <http://www.sewatech.fr/administration-jboss> exemple:is-a "Formation" .
    <http://www.sewatech.fr/alexis-hassler> exemple:is-a "Formateur" .
     
    <http://www.sewatech.fr/alexis-hassler> exemple:teach <http://www.sewatech.fr/initiation-java> .
    <http://www.sewatech.fr/alexis-hassler> exemple:teach <http://www.sewatech.fr/administration-jboss> .
    J'espère que ça te décoincera.

  14. #14
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    merci
    mais il se trouve que nos fichiers sont sous format OWL??

  15. #15
    Membre éprouvé
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Points : 1 269
    Points
    1 269
    Par défaut
    Dans ce cas, il faut remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     		model.read(in, "", "N3");
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		model.read(in, "", "RDF/XML");
    C'est écrit dans la documentation de Jena.

  16. #16
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    merci énormement . Ca m'a été très util la preuve est que j'ai pu réaliser le code qui permet d'afficher la hiearchie des classes de mon ontologie.
    je suis passé au stade de la réalisation du code qui permet de citer les individus d'une classe c'est là où je bloque pour le moment. Pouvez-vous m'aider?

  17. #17
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ExtendedIterator<Individual>  it = model.listIndividuals();

    Sers toi de la javadoc : http://jena.sourceforge.net/javadoc/...stIndividuals()

  18. #18
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    bonjour et merci pour votre,
    mais vu que je n'ai pas de notion en java je ne suis pas parvenu à récupérer le résultat de la fonction afin d'afficher les individus un à un

  19. #19
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    j'ai fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Iterator<Individual> monIterateur== model.listIndividuals();
     
    while( monIterateur.hasNewt() ){
    Individual indiv = monIterateur.next();
    .....
    }
    c'est là où je bloque

  20. #20
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Je comprends pas ce que tu veux faire. Le code que tu montre réalise le parcours de tous les individus déclarés de ton ontologie. Sur l'instance que tu récupère à chaque itération, que souhaites-tu en faire ?

    Tu peux récupérer la valeur d'un attribut pour l'afficher, à condition que tu connaisse l'uri qui le défini.

Discussions similaires

  1. Outils pour mapper des ontologies
    Par lahmar.abdel1 dans le forum Ontologies
    Réponses: 0
    Dernier message: 16/07/2009, 17h50
  2. Mapping des ontologies OWL
    Par lahmar.abdel1 dans le forum Ontologies
    Réponses: 4
    Dernier message: 08/07/2009, 12h20
  3. Recherche sémantique de l'information en utilisant des ontologies
    Par Rihab08 dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 30/06/2009, 21h38
  4. Réponses: 0
    Dernier message: 11/02/2009, 22h39
  5. [Jena] Cherche l'API com.hp.hpl.jena.ontology
    Par fafa624 dans le forum Frameworks
    Réponses: 2
    Dernier message: 13/04/2007, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo