Bonjour à tous,
Je travaille actuellement sur le développement d'un système à base de règles SWRL et d'une ontologie OWL.
Je développe le système et je test actuellement les librairies SQWRL afin de pouvoir exécuter mes règles (dans mon fichier .owl) dans mon système.
Pour simplifier, j'ai une classe Environment, qui possède une propriété hasSituation, avec pour range une Situation.
J'ai une règle (toute simple, juste pour le test), qui set la valeur de la propriété hasSituation du seul environnement que j'ai dans mon ontologie
Environment(?e) -> hasSituation(?e,DangerousSituation)
DangerousSituation étant un individual de la classe Situation.
J'execute la règle comme suit :
Le résultat de la requête me donne bien l'individual d'Environnement que j'ai créé auparavant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SQWRLQueryEngine queryEngine = SQWRLQueryEngineFactory.create(owlModel); SQWRLResult result = queryEngine.runSQWRLQuery("rule1");
Le problème est que lorsque j'interroge la valeur de hasSituation
La valeur est égale à null.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 OWLIndividual environnement = clsEnvironnement.createOWLIndividual("environnement"); Collection<OWLProperty> properties = owlModel.getUserDefinedOWLProperties(); [...] OWLProperty situation = null; for (Iterator it = properties.iterator(); it.hasNext();) { OWLProperty property = (OWLProperty) it.next(); if(property.getBrowserText().equals("hasSituation")) situation=property; } environnement.getPropertyValues(situation);
Je dois certainement rater quelque chose, mais je ne vois pas quoi...
Par avance, merci !
Partager