Недавно я переключился с OWL API на Jena в надежде, что производительность в отношении вставки и запроса данных увеличится.Как вставить/обновить/удалить людей с Jena SDB, сохраняя максимальную производительность?
Итак, я начал с загрузки своей онтологии OWL в тройной магазин на основе MySQL с использованием Jena SDB. Поэтому я использовал
model.read("owl-concepts.turtle")
Jena создает около 1500 узлов в тройном магазине (в таблице Mysql). Первоначально я был немного удивлен большим количеством узлов. Но это кажется разумным, поскольку онтология OWL содержит приблизительно 80 классов OWL с несколькими свойствами данных и объектов.
Для чтения данных (отдельных лиц) из онтологии я использовал интерфейс Jena SDB. Я получил модель и на основе модели ontModel. Я использовал это ontModel изменить индивидуумов, например:
ontModel.createIndividual(...);
ontModel.getIndividual(....);
individual.remove();
Для ontModel я использовал OWL_MEM; в соответствии с документацией это должно означать, что не применяется никаких рассуждений.
Я понял, что на основе описанного подхода изменение индивидуальных данных не так быстро, как я ожидал. В среднем вставка простого человека занимает от 2 до 30 секунд.
Итак, я начал спрашивать: использует ли интерфейс модели в Йене рекомендованный способ изменения данных или этот подход имеет низкую производительность, и вместо этого SPARQL следует использовать для модификации данных? Мой первоначальный план состоял в том, чтобы использовать SPARQL только для запрашивающей части ...
Был бы благодарен за любое мнение экспертов или ваш опыт работы с Йеной.
Jena TDB быстрее, чем Jena SDB. – AndyS