Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > Web sémantique > Ontologies
Ontologies Forum d'entraide sur les ontologies (OWL, RDF, RDFS, etc.).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/09/2012, 08h22   #1
nissam1
Invité régulier
 
Femme nissam
Inscription : 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
nissam1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2012, 16h41   #2
CesarR
Membre habitué
 
Homme
Inscription : juillet 2005
Messages : 82
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Etats-Unis

Informations forums :
Inscription : juillet 2005
Messages : 82
Points : 105
Points : 105
Envoyer un message via MSN à CesarR
Oui c'est possible, aussi bien avec une requete SPARQL, qu'en utilisant Java et OWL API.
CesarR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2012, 21h18   #3
nissam1
Invité régulier
 
Femme nissam
Inscription : novembre 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Femme nissam

Informations forums :
Inscription : novembre 2010
Messages : 16
Points : 6
Points : 6
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
nissam1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2012, 13h46   #4
April Fool
Membre confirmé
 
Avatar de April Fool
 
Homme Information Inexacte
Fou d'avril
Inscription : février 2012
Messages : 97
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 : 97
Points : 206
Points : 206
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ô!
April Fool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2012, 17h40   #5
nissam1
Invité régulier
 
Femme nissam
Inscription : novembre 2010
Messages : 16
Détails du profil
Informations personnelles :
Nom : Femme nissam

Informations forums :
Inscription : novembre 2010
Messages : 16
Points : 6
Points : 6
Merci beaucoup c'est exactement ce que je cherchais
Merci
Nissam
nissam1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h03.


 
 
 
 
Partenaires

Hébergement Web