JDBC and Virtuoso (in Italian) - dkmfbk/knowledgestore GitHub Wiki
Solo per segnalare ai posteri che ho preparato/testat una nuova implementazione VirtuosoJdbcTripleStore che usa direttamente JDBC. Feature:
- timeout e risultati parziali sono supportati così come prima
- anche il meccanismo di 'uccisione' della connessione di Virtuoso funziona ed è stato rivisto, rendendolo compatibile con l'uso di un pool di connessioni JDBC (cosa che prima non facevamo) e rendendolo più robusto; non ho avuto blocchi del server finora con questo codice - speriamo non ce ne siano
- il logging è più informativo, con ID transazione virtuoso e numero risultati ritornati per query; ho poi fatto delle modifiche quà e là per ridurre il numero di volte che una query è loggata (al momento max due volte: la prima volta così come ricevuta dal client, la seconda così come mandata a Virtuoso)
- l'implementazione della conversione SPARQL <--> SQL Virtuoso è ora più robusta di quella del Virtuoso Sesame e probabilmente più efficiente (causa uso ValueFactory ottimizzata del KS) - difficile da valutare oggettivamente comunque
NOTA: al momento implementiamo soltanto query SPARQL e retrieve statement, ma il componente può essere esteso e chiamare qualsiasi comando si può usare in isql (inclusi log_enable/ttlp/checkpoint per caricamento statement).
DISCLAIMER: per quanto testato, potrebbero esserci bug nascosti. Mandarei comunque online e correggerei nel caso si presentino.
19282 Sep 28 17:16:06> wget --post-data '<x:s> <x:p> <x:o> .' --header 'Content-Type: text/turtle' -O /dev/null http://localhost:9058/sparqlupdate
19283 Sep 28 17:22:43> wget --post-data '<x:s> <x:p> <x:o> .' --header 'Content-Type: text/turtle' -O /dev/null http://localhost:9058/sparqldelete