Bonjour
j'ai une ontologie que je doit instancier de manière automatique et pour cela j'utilise l'API jena, mon probléme est que j'ai une exceptionvoici la représentation de mon ontologie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part java.lang.NullPointerException
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Thing | <div style="margin-left:40px">|-> Humain</div><div style="margin-left:40px"><div style="margin-left:40px">|->Personne</div></div><div style="margin-left:40px">|->Maison</div> avec les propriétés suivantes : Personne -> aPourNom -> nom Personne -> aPourAge -> age Humain -> aPourMaison-> Maison Maison -> aPourNumero -> numero Maison -> aPourVoie -> voie Maison -> aPourId -> id
et voici le code java qui pose problème
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 OntModel modele = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF); try { InputStream reader = new FileInputStream(PATH_ONTOLOGY); modele.read(reader,"","RDF/XML"); OntClass classePersonne = modele.getOntClass(URI + "Personne"); OntClass classeMaison = modele.getOntClass(URI + "Maison"); OntProperty nomProperty = modele.getOntProperty(URI + "aPourNom"); OntProperty numeroVoieProperty = modele.getOntProperty(URI + "aPourNumero"); OntProperty codePostalProperty = modele.getOntProperty(URI + "aPourVoie"); OntProperty villeProperty = modele.getOntProperty(URI + "aPourId"); ObjectProperty adresseProperty = modele.getObjectProperty("URI" + "aPourMaison"); adresseProperty.setDomain(classePersonne); adresseProperty.setRange(classeMaison); //Literal concernant nom de la personne Literal nomLiteral = modele.createTypedLiteral(nom); //Literal concernant l'adresse Literal numeroVoieLiteral = modele.createTypedLiteral(numeroVoie); Literal nomVoieLiteral = modele.createLiteral(nomVoie); Literal idLiteral = modele.createTypedLiteral(id); String individuMaison = URI+"Maison"+nom; String individuPersonne = URI +"Personne"+ nom; modele.createIndividual(individuPersonne, classePersonne); modele.getIndividual(individuPersonne).setPropertyValue(nomProperty, nomLiteral); modele.createIndividual(individuMaison, classeMaison); modele.getIndividual(individuMaison).setPropertyValue(nomVoieProperty, nomVoieLiteral); modele.getIndividual(individuMaison).setPropertyValue(numeroVoieProperty, numeroVoieLiteral ); modele.getIndividual(individuMaison).setPropertyValue(idProperty, idLiteral); modele.write(new FileOutputStream(PATH_ONTOLOGY)); modele.close(); } catch (FileNotFoundException e) { e.printStackTrace(); }
l'instanciation d'une personne ou d'une maison marche (donc URI + noms propriétés ...etc sont bons), le problème survient quand je crée l'ObjecteProperty "aPourMaison" pourtant en ouverant le fichier Owl la représentation me semble correcte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <!-- http://www.my-site.com/Ontology.owl#aPourMaison --> <owl:ObjectProperty rdf:about="&Ontology;aPourMaison"> <rdfs:range rdf:resource="&Ontology;Maison"/> <rdfs:domain rdf:resource="&Ontology;Personne"/> </owl:ObjectProperty>
Partager