Create project from owl file#230
Conversation
|
@mnamici ho aggiunto le modifiche che avevamo detto ma ho dovuto lasciare l'emit del segnale nel |
b9d0f64 to
57137da
Compare
|
Ho separato le modifiche e aggiunto un paio di correzioni minori. |
Loads ontology metadata from an owl 2 file and creates a new project from it.
Used to create a project from an OWL 2 file.
Adds a new kwarg to provide a path to an owl 2 file and a new signal emitted when the project is successfully created from the owl 2 file.
Used to pass an owl 2 file path to the session for project creation.
57137da to
b9d0f64
Compare
|
Ho aggiunto i fix per il nome del progetto. La soluzione finale è un pò diversa da quella fatta insieme ora il nome non lo passiamo al loader ma lo settiamo nella sessione per non rompere l'uso dell'api dei loader. Si può procedere con la gestione degli assiomi import e le correzioni sulla gestione di iri/versione di cui abbiamo parlato. |
b9d0f64 to
c500bee
Compare
| ontologyV = None | ||
| else: | ||
| ontologyIRI = ontologyID.getOntologyIRI().get().toString() | ||
| ontologyURI = ontologyID.getOntologyIRI().get().toURI().toString() |
There was a problem hiding this comment.
Mentre dal punto di vista della specifica OWL questa operazione è corretta, in pratica non ci basta perché la maggior parte delle volte l'ontologia non è accessibile dal web. Dobbiamo scrivere qui il path al file dell'ontologia, che poi viene propagato nel file graphol.
EDIT: mi riferisco alla riga 870
eddy/core/loaders/owl2.py
Outdated
| ontologyV = None | ||
| else: | ||
| ontologyIRI = ontologyID.getOntologyIRI().get().toString() | ||
| ontologyURI = ontologyID.getOntologyIRI().get().toURI().toString() |
There was a problem hiding this comment.
Stessa cosa qui, va inserito il path al file altrimenti non riusciamo a caricarla nuovamente.
EDIT: mi riferisco alla riga 117
|
Ho eliminato la funzione |
|
Per quanto riguarda il getImports non è un problema se è duplicato, perché la funzione di creazione da file owl la stiamo realizzando indipendente dal plugin. Comunque per ora va bene, lasciamolo sono nel plugin (idealmente dovremmo avere il test di uguaglianza degli oggetti ImportedOntology così da evitare l'aggiunta doppia). Per il resto c'è da fare una modifica. Se provi ad importare una qualsiasi ontologia con 1 import, il quale non risolve alla IRI specificata, l'operazione termina con una eccezione. Prova ad esempio ad importare la seguente ontologia: Ontology(<http://www.semanticweb.org/my/ontology/>
<http://www.semanticweb.org/my/ontology/1.0/>
Import(<http://www.movieontology.org/ontology/>))Guardando lo stacktrace il problema sta nel modo con cui configuri il manager.getOntologyLoaderConfiguration()
.setMissingImportHandlingStrategy(MissingImportHandlingStrategy.SILENT)in qualcosa del genere: config = manager.getOntologyLoaderConfiguration()
config = config.setMissingImportHandlingStrategy(MissingImportHandlingStrategy.SILENT)
manager.setOntologyLoaderConfiguration(config)perché l'oggetto Questo chiaramente fa si che la creazione del progetto vada a buon fine, ma gli import mancanti vengono proprio ignorati, senza neanche una notifica. |
No description provided.