Настройка / включение плагина GeoSPARQL через RDF4J API
Я пытаюсь автоматизировать создание репозиториев GraphDB, в которых также должен быть включен плагин GeoSPARQL. Для этого я отправляю 2 оператора INSERT, первый для настройки индекса и точности, а второй для включения плагина. Однако операция conn.prepareUpdate(QueryLanguage.SPARQL, enablePluginStatement).execute() "кажется" выполняется асинхронно. Вместо того чтобы ждать завершения операции индексации (как это происходит при выполнении того же запроса INSERT из Workbench), он почти сразу переходит к следующему оператору, который должен завершить работу хранилища. Когда я выполняю тот же код через отладчик Netbeans, для выполнения одного и того же оператора требуется гораздо больше времени, и индексирование выполняется правильно. Любое понимание этого или аналогичного вопроса?
26609 [main] INFO com.ontotext.config.AbstractParameter - Configured parameter 'deduplicate.construct' to default value 'true'
26610 [main] INFO com.ontotext.config.AbstractParameter - Configured parameter 'reuse.vars.in.subselects' to default value 'false'
26691 [main] INFO com.ontotext.trree.monitorRepository.MonitorRepositoryConnection - Incoming update:
PREFIX : <http://www.ontotext.com/plugins/geosparql#>
INSERT DATA { _:s :enabled "true" . }
26764 [main] INFO com.ontotext.plugin.GeoSPARQL - >>>>>>>> GeoSPARQL: Initializing Lucene indexer...
26863 [main] INFO com.ontotext.plugin.GeoSPARQL -
>>>>>>>> GeoSPARQL: Lucene indexer initialized!
26863 [main] INFO com.ontotext.plugin.GeoSPARQL - >>>>>>>> GeoSPARQL: Initializing indexing process...
32032 [main] INFO com.ontotext.plugin.GeoSPARQL
- >>>>>>>> GeoSPARQL: Indexing completed!
52200 [main] WARN com.ontotext.trree.free.GraphDBFreeSchemaRepository - Closing active connection due to shut down; consider setting the org.eclipse.rdf4j.repository.debug system property
52596 [main] INFO com.ontotext.trree.sdk.impl.PluginManager - Shutting down plugins (DEFAULT)...
1 ответ
Вы можете использовать составную транзакцию как несколько выражений "вставить где" и "удалить где", разделенных; можно увидеть изменения от предыдущих в том же обновлении. В качестве примера:
PREFIX : <http://www.ontotext.com/plugins/geosparql#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>INSERT DATA { _:s :enabled "true" . } ;INSERT DATA { _:s :prefixTree "quad"; :precision "25". }
С завитком:
curl 'http://localhost:7200/repositories/geosparql/statements' -H 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'update=PREFIX : <http://www.ontotext.com/plugins/geosparql#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> INSERT DATA { _:s :enabled "true" . } ; INSERT DATA { _:s :prefixTree "quad"; :precision "25". }'
Вы должны иметь возможность сначала построить индекс, а затем установить точность:
[INFO ] 2019-02-26 12:08:36,331 [repositories/geosparql | c.o.g.s.StatementsController] POST SPARQL update request to repository
[INFO ] 2019-02-26 12:08:36,349 [repositories/geosparql | c.o.p.GeoSPARQL] >>>>>>>> GeoSPARQL: Initializing Lucene indexer...
[INFO ] 2019-02-26 12:08:36,383 [repositories/geosparql | c.o.p.GeoSPARQL] >>>>>>>> GeoSPARQL: Lucene indexer initialized!
[INFO ] 2019-02-26 12:08:36,383 [repositories/geosparql | c.o.p.GeoSPARQL] >>>>>>>> GeoSPARQL: Initializing indexing process...
[INFO ] 2019-02-26 12:08:36,466 [repositories/geosparql | c.o.p.GeoSPARQL] >>>>>>>> GeoSPARQL: Indexing completed!