Благодаря ModelChangedListener я могу отслеживать изменения в Model
, как описано в документации Jena (Обработка событий в Йене).
Model m = ModelFactory.createDefaultModel();
ModelChangedListener L = new MyListener();
m.register(L);
Однако в моем проекте я хочу отслеживать изменения Dataset
для запуска кода после того, как что-то произошло в графе по умолчанию или в одном из именованных графов Dataset
.
Что я хочу сделать, так это просто инициировать события после выполнения такого запроса к Dataset
:
PREFIX d: <http://learningsparql.com/ns/data#>
PREFIX dm: <http://learningsparql.com/ns/demo#>
INSERT DATA
{
d:x dm:tag "one" .
d:x dm:tag "two" .
GRAPH d:g1
{
d:x dm:tag "three" .
d:x dm:tag "four" .
}
}
чтобы обнаружить, что «один» «два» были добавлены к графику по умолчанию, а «три» «четыре» были добавлены к g1.
С помощью этого кода я даже не могу обнаружить изменения, происходящие в графе по умолчанию для Dataset
, не говоря уже об обнаружении изменений в именованных графах.
Dataset ds = RDFDataMgr.loadDataset(ONTOLOGY_PATH);
Model defaultModel = ds.getDefaultModel();
ModelChangedListener modelChangedListener = new MyListener();
defaultModel.register(modelChangedListener);