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

Ontologies Discussion :

Comment récupérer le nombre de classes, instances, axiomes... ? [Protégé]


Sujet :

Ontologies

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 16
    Points : 20
    Points
    20
    Par défaut Comment récupérer le nombre de classes, instances, axiomes... ?
    Bonjour,

    Je travaille sous protégé 4.1, j'aimerais récupérer certaines caractéristiques d'une ontologie dont je dispose, ces caractéristiques concernent:
    le nombre exacte de classe utilisées dans l'ontologie
    le nombre de relation, d'axiome et d'instance

    Est-ce qu'il est possible de récupérer ces informations par une requête DL query?
    ou par programmation, sachant que j'utilise java et OWLAPI

    Merci d'avance pour vos réponses

    Nissam

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 134
    Points
    134
    Par défaut
    Oui c'est possible, aussi bien avec une requete SPARQL, qu'en utilisant Java et OWL API.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 16
    Points : 20
    Points
    20
    Par défaut
    Bonjour

    Merci pour votre réponse, mais pourriez-vous, s'il vous plait, me donner une piste sur comment y arriver? une fonction à utiliser? une requête?

    Merci d'avance

    Nissam

  4. #4
    Membre actif
    Avatar de April Fool
    Homme Profil pro
    Fou d'avril
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Fou d'avril

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 215
    Points
    215
    Par défaut
    Quel est l'objectif exactement ? Si tu veux simplement savoir combien ton ontologie a de classes, de propriétés, d'axiomes, etc, Protégé 4 te le dit à l'aide de la vue (View) "Ontology metrics". Tu vas dans le menu Window -> Views -> Ontology views -> Ontology metrics. Tu auras le détails de tous les nombres que tu veux.

    Avec DL query, tu pourras lister toutes les classes et tous les individus mais tu n'auras pas leur nombre. Il faudra donc compter le nombre de résultats. En revanche, je ne pense pas que tu puisses obtenir le nombre d'axiomes avec DL query.

    Avec SPARQL, tu peux t'en sortir pour trouver le nombre de classes et de propriétés à condition qu'elles soient bien déclarées (ce qui devraient être le cas si l'ontologie est faite avec Protégé 4). Dans ce cas, tu obtiens le nombre de classes avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT(?c) AS ?nb_class WHERE {
        ?c  a  owl:Class
    }
    Tu obtiens le nombre de propriétés avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT COUNT(?p) AS ?nb_prop WHERE {
        { ?p  a  owl:ObjectProperty }
     UNION
        { ?p  a  owl:DatatypeProperty }
     UNION
        { ?p  a  owl:AnnotationProperty }
    }
    On peut évidemment compter les différentes sortes de propriétés séparément. Pour compter le nombre d'individus, c'est facile si les individus ont été créés avec Protégé 4. Dans ce cas, la requête suivante devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT(?i) AS ?nb_ind WHERE {
        ?i  a  owl:NamedIndividual
    }
    Si on n'a pas créé les individus avec Protégé, c'est plus difficile. Soit on dispose d'un moteur SPARQL qui implémente le régime d'inférence OWL DL (selon les spécifications de SPARQL 1.1 Entailment Regimes), et dans ce cas il suffit d'envoyer la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT COUNT(?i) AS ?nb_ind WHERE {
        ?i  a  owl:Thing
    }
    soit on récupère la liste de toutes les classes définies dans l'ontologie et avec un petit programme (ou bien à la main) on construit la requête qui récupère toutes les instances directes de ces classes. Si l'ontologie est une ontologie OWL bien formée, ça fonctionne. Sinon, on est dans la merde.

    Ça se corse pour le nombre d'axiomes et je ne pense pas qu'on puisse le trouver avec une requête SPARQL.

    Reste la solution avec OWL API qui me semble la meilleure. Il y a des méthodes toute faites pour obtenir ce que tu veux, regarde dans la javadoc.
    7susd bl'ham owsql wuul pô!

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 16
    Points : 20
    Points
    20
    Par défaut
    Merci beaucoup c'est exactement ce que je cherchais
    Merci
    Nissam

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/12/2006, 09h39
  2. Comment récupérer le nombre d'enregistrements effacés ?
    Par Jérôme Lambert dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/10/2006, 09h22
  3. Réponses: 3
    Dernier message: 17/08/2006, 12h03
  4. Réponses: 6
    Dernier message: 14/06/2006, 16h55
  5. Réponses: 1
    Dernier message: 08/11/2005, 14h40

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