obdasystems / sparqling-ws

RESTful web services for Sparqling: point and click SPARQL editor based on Grapholscape
MIT License
0 stars 0 forks source link

SimpleDeductiveClosure non termina su ontologia ISTAT #10

Closed giacomoronconiobda closed 2 years ago

giacomoronconiobda commented 2 years ago

Ho aspettato 10 minuti dopodiché ho stoppato.

ISTAT-SIR_v1.1.37.graphol.zip

valeriosantarelli commented 2 years ago

ISTAT è l'unica su cui si verifica? Ad esempio, INAIL, Wolf, qualcuna di quelle che abbiamo fatto per Almawave?

Un tempo così lungo mi fa pensare o ad un errore di qualche tipo oppure a un loop che si crea da qualche parte, ovviamente non può essere nè un problema di parsing nè di tempo di chiusura, l'ontologia di per sè non è enorme.

NonnonePalmiro commented 2 years ago

Probabilmente vuol dire che dobbiamo riscrivere l'algoritmo.

NonnonePalmiro commented 2 years ago

Il file dell'ontologia non viene proprio parsato. Questa è l'eccezione ritornata dal parser:

[Fatal Error] :1:1: Content is not allowed in prolog. Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. at com.obdasystems.sparqling.parsers.GraphOLParser_v3.parseOWLOntology(GraphOLParser_v3.java:474) at com.obdasystems.sparqling.engine.TestOntologyProximityManager.main(TestOntologyProximityManager.java:25) Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at com.obdasystems.sparqling.parsers.GraphOLParser_v3.parseOWLOntology(GraphOLParser_v3.java:185) ... 1 more

NonnonePalmiro commented 2 years ago

Questo se lo lancio dal branch "owlapi". Se lo lancio dal branch "master" il progetto non compila proprio e mi ritorna C:\Users\Utente\Documents\IntelliJ-Ultimate\sparqling-ws\src\main\java\com\obdasystems\swagger\tools\ImportCode.java:4:15 java: package sun.awt does not exist

valeriosantarelli commented 2 years ago

Probabilmente vuol dire che dobbiamo riscrivere l'algoritmo.

Eh no appunto, intendevo che mi pare difficile sia un problema di algoritmo, più probabile infatti che sia un errore di parsing, oppure di una cosa specifica nell'ontologia (tipo un assioma particolare) che gli dà problemi.

valeriosantarelli commented 2 years ago

Il file dell'ontologia non viene proprio parsato. Questa è l'eccezione ritornata dal parser:

[Fatal Error] :1:1: Content is not allowed in prolog. Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. at com.obdasystems.sparqling.parsers.GraphOLParser_v3.parseOWLOntology(GraphOLParser_v3.java:474) at com.obdasystems.sparqling.engine.TestOntologyProximityManager.main(TestOntologyProximityManager.java:25) Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at com.obdasystems.sparqling.parsers.GraphOLParser_v3.parseOWLOntology(GraphOLParser_v3.java:185) ... 1 more

Bisognerebbe vedere lo stack trace intero per trovare l'errore prodotto dal parser corretto (ovvero quello corrispondente alla sintassi OWL in cui viene tradotto il graphol). Qui sta semplicemente dicendo che il parser SAX fallisce perchè l'intestazione dell'ontologia non è quella che si aspetta, il che è normale dato che sicuramente non serializziamo in quel formato (più probabilmente in FunctionalStyle).

NonnonePalmiro commented 2 years ago

No ma è il Graphol (che quindi è in xml) che non vine parsato correttamente. La cosa strana è che lo stesso file viene aperto da Eddy senza problemi....

valeriosantarelli commented 2 years ago

Eh si, credo sia la stessa identica ontologia ISTAT che vediamo noi durante il progetto. Cioè, l'abbiamo fatta proprio noi.

NonnonePalmiro commented 2 years ago

Esportando l'owl da eddy e lavorando direttamente su quello, la chiusura deduttiva viene fatta in circa 10 secondi

valeriosantarelli commented 2 years ago

Siamo sicuri che non sia un problema del parser che dal Graphol cerca di ricavare l'OWL che poi viene dato in pasto all'algoritmo di chiusura deduttiva? Mi sembra comunque strano perchè quell'ontologia Monolith la gestisce senza problemi...

NonnonePalmiro commented 2 years ago

Certo che è un problema del parser, solo che è un problema delle librerie standard per XML non del codice nostro. Ho provato a caricare la stessa ontologia su monolith e il parser di mastro se la mangia senza problemi

giacomoronconiobda commented 2 years ago

Era sbagliato il modo in cui veniva usato il parser nella classe di test di @NonnonePalmiro.