J'essaye d'analyser le fichier OWL2 en utilisant l'API OWL. Mais j'ai un problème quand j'essaye d'analyser l'étiquette <SubClassOf></SubClassOf>
. S'il vous plaît voir l'exemple ci-dessous.Le contenu analysé est dans l'ordre inverse
<?xml version="1.0"?>
<Ontology xmlns="http://www.w3.org/2006/12/owl2-xml#"
......>
<SubClassOf>
<Class URI="&ontology_people1;Address"/>
<Class URI="&ontology_people1;Location"/>
</SubClassOf>
......
</Ontology>
Le contenu entre <SubClassOf> and </SubClassOf>
sont écrites dans l'ordre. La classe enfant est écrite sur la première ligne et la classe parente est écrite sur la deuxième ligne. Mais je l'analyse et imprime dans la console. Leur ordre est inverse. Pendant ce temps, les autres ne sont pas inverses. Mon code est sur le dessous.
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
File file = new File("src/main/resources/dataSet/PR/person1/ontology_people1.owl");
OWLOntology o = manager.loadOntologyFromOntologyDocument(file);
List<OWLAxiom> subClassOf = o.axioms()
.filter(axiom -> axiom.getAxiomType().toString().equals("SubClassOf"))
.collect(Collectors.toList());
for (OWLAxiom owlAxiom : subClassOf) {
Stream<OWLEntity> owlEntityStream = owlAxiom.signature();
owlEntityStream.forEach(entity->System.out.println(entity.getIRI()));
System.out.println("**************");
}
Pourquoi?
@Ignazio Excusez-moi, vous me avez aidé plusieurs fois, et je sais que vous êtes l'auteur de l'API OWL, pouvez-vous me aider à nouveau ? Je vous remercie ! – ciferlv