2015-07-30 1 views
1

i'am en utilisant la dernière version de raisonneur de granulés avec l'API OWL:inférences Enregistrer Pellet utilisant l'API OWL

OWLOntologyManager manager=OWLManager.createOWLOntologyManager(); 
OWLOntology fist_ontology=manager.loadOntologyFromOntologyDocument......... 
................ 
OWLOntology last_ontology=manager.loadOntologyFromOntologyDocument.......... 

reasoner=PelletReasonerFactory.getInstance().createReasoner(last_ontology); 
manager.addOntologyChangeListener(reasoner); 

Plusieurs ontologies sont chargés avec le gestionnaire. Maintenant, je dois sauvegarder dans un fichier toutes les inférences faites par Pellet pour toutes les ontologies chargées avec le gestionnaire, mais je ne trouve aucun exemple. Quelqu'un peut m'aider ? Je vous remercie !

Répondre

1

J'ai résolu:

List<InferredAxiomGenerator<? extends OWLAxiom>> gens = new ArrayList<>(); 
     gens.add(new InferredSubClassAxiomGenerator()); 
     gens.add(new InferredClassAssertionAxiomGenerator()); 
     gens.add(new InferredDisjointClassesAxiomGenerator()); 
     gens.add(new InferredEquivalentClassAxiomGenerator()); 
     gens.add(new InferredEquivalentDataPropertiesAxiomGenerator()); 
     gens.add(new InferredEquivalentObjectPropertyAxiomGenerator()); 
     gens.add(new InferredInverseObjectPropertiesAxiomGenerator()); 
     gens.add(new InferredObjectPropertyCharacteristicAxiomGenerator()); 
     gens.add(new InferredPropertyAssertionGenerator()); 
     gens.add(new InferredSubDataPropertyAxiomGenerator()); 
     gens.add(new InferredSubObjectPropertyAxiomGenerator()); 

     InferredOntologyGenerator iog = new InferredOntologyGenerator(reasoner, gens); 
     OWLOntology infOnt = manager.createOntology(); 
     iog.fillOntology(datafactory, infOnt); 
     manager.saveOntology(infOnt,new RDFXMLDocumentFormat(),IRI.create(new File("D://file.owl"))); 
0
public void flushToFile() { 
     reasoner.flush(); 
     //System.out.println(reasoner.isEntailed(ax5)); 
     InferredOntologyGenerator gen = new InferredOntologyGenerator(reasoner); 
     gen.fillOntology(factory, newOntology); 
     try { 
      manager.saveOntology(newOntology, new FileOutputStream(new File("D:\\XYZ\\OutputNew.owl"))); 
     } catch (OWLOntologyStorageException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

Vous pouvez utiliser ce api pour sauver l'ontologie dans un fichier. Aussi pour votre compréhension détaillée concernant le fonctionnement, vous pouvez passer par ce lien: - tells about the working of a pellet reasoner and swrl rules

+0

Seules les inférences de base seront ajoutées si vous ne spécifiez pas le type d'inférence qui devrait être inclus dans l'ontologie. – Discipulos