Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité régulier
    Femme Profil pro nissam
    Inscrit en
    novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Nom : Femme nissam

    Informations forums :
    Inscription : novembre 2010
    Messages : 16
    Points : 6
    Points
    6

    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 : 112
    Points
    112

    Par défaut

    Oui c'est possible, aussi bien avec une requete SPARQL, qu'en utilisant Java et OWL API.

  3. #3
    Invité régulier
    Femme Profil pro nissam
    Inscrit en
    novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Nom : Femme nissam

    Informations forums :
    Inscription : novembre 2010
    Messages : 16
    Points : 6
    Points
    6

    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 Information Inexacte
    Fou d'avril
    Inscrit en
    février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Nom : Homme Information Inexacte
    Localisation : France

    Informations professionnelles :
    Activité : Fou d'avril

    Informations forums :
    Inscription : février 2012
    Messages : 99
    Points : 195
    Points
    195

    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 :
    1
    2
    3
    SELECT COUNT(?c) AS ?nb_class WHERE {
        ?c  a  owl:Class
    }
    Tu obtiens le nombre de propriétés avec :
    Code :
    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 :
    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 :
    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
    Invité régulier
    Femme Profil pro nissam
    Inscrit en
    novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Nom : Femme nissam

    Informations forums :
    Inscription : novembre 2010
    Messages : 16
    Points : 6
    Points
    6

    Par défaut

    Merci beaucoup c'est exactement ce que je cherchais
    Merci
    Nissam

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •