-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create project from owl file #230
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.