Allora, io ho due file .owl (email.owl e ocha.owl) contenenti due ontologie.
email.owl importa ocha.owl.
Per la gestione delle ontologie, uso il
plugin OWL della libreria Protégé.
Carico le mie due ontologie usando il seguente codice:
String defaultNS="http://tuori.web.cs.unibo.it/ontologia/email.owl#";
FileInputStream fis;
try {
//Carico il modello
fis = new FileInputStream(new File(nomeFileOnto));
JenaOWLModel owlModel=ProtegeOWL.createJenaOWLModelFromInputStream(fis);
owlModel.getNamespaceManager().setDefaultNamespace(defaultNS);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Ovviamente (e devo aggiungere "credo", a questo punto!) caricando email.owl automaticamente dovrei caricare anche ocha.owl...il problema è che quando avvio il programma, mi vengono restituiti i seguenti messaggi:
WARNING: [Local Folder Repository] The specified file must be a directory. (C:\Documents and Settings\Admin\Desktop\Tesi\Ontology Mail Manager\plugins\edu.stanford.smi.protegex.owl) -- LocalFolderRepository.update()
INFO: Loading triples
INFO: Start processing ontology: http://dummy-ontologies.com/dummy.owl Time: Sun Jan 27 14:46:03 CET 2008
WARNING: The system cannot find the ontology http://www.owl-ontologies.com/ocha.owl in any of the repositories. This import will be ignored. -- UnresolvedImportUIHandler.handleUnresolvableImport()
WARNING: [ProtegeOWLParser] Warning: Ignoring import http://www.owl-ontologies.com/ocha.owl -- DefaultProtegeOWLParserLogger.logWarning()
Infatti quando cerco di caricare la DatatypeProperty <ocha:email>
OWLDatatypeProperty dp_ochaEmail=owlModel.getOWLDatatypeProperty("ocha:email");
ottengo l'eccezione:
java.lang.ClassCastException: edu.stanford.smi.protegex.owl.model.impl.DefaultRDFProperty cannot be cast to edu.stanford.smi.protegex.owl.model.OWLDatatypeProperty
at edu.stanford.smi.protegex.owl.model.impl.AbstractOWLModel.getOWLDatatypeProperty(Unknown Source)
at mailValidator.MailValidator.inserisciMetadati(MailValidator.java:358)
at mailValidator.MailValidator.receiver(MailValidator.java:155)
at mailValidator.MailValidator.<init>(MailValidator.java:67)
at mailValidator.MailValidator.main(MailValidator.java:423)
Come posso risolvere il problema?
Forse devo esplicitare l'import?
Come?
Grazie mille a chiunque saprà darmi una mano!
Ciao!