У меня есть онтологическая модель Йены (OntModel), которую я изменяю программно. Первоначально эта модель была создана с использованием default ModelFactory method to create an Ontology model (with no parameters). Проблема заключалась в том, что по мере запуска программы и изменения модели, по умолчанию Jena Reasoner будет запускаться (и запускать, запускать и запускать). Процесс был слишком медленным для того, что мне нужно, и на больших наборах данных закончилось бы нехватка памяти.Toggle Jena Reasoner
Я изменил программу на использование a different ontology model factory method, чтобы создать модель без рассуждения. Это происходило очень быстро и не отображало ни одной из проблем памяти, которые я видел ранее (даже для очень больших наборов данных). Проблема с этим подходом заключается в том, что я могу получить доступ к данным напрямую, используя прямой тип класса (я не могу получить доступ к объектам, используя его родительский класс).
Например, представьте, что у меня было два ресурса класса: «цветок» и «семя». Они наследуются от общего родителя, «растительного материала». Моя программа принимает все «семена», запускает метод «расти», который превращает «семенной» объект в объект «цветок». Метод «расти» работает слишком медленно и исчерпывает память при использовании Reasoner (даже Micro Reasoner). Если я выключу Reasoner, то я не смогу получить доступ ко всем «цветкам» и «семенам», используя класс «растительный материал».
Есть ли предпочтительный способ (счастливая среда) сделать это ... позволяя возможность доступа к объектам с использованием своего суперкласса, а также быть быстрым, а не болотом памяти?
Я искал способ «отключить рассудителя», пока я запускаю свой метод «расти», а затем возвращаю его, как только метод завершится. Возможно ли это как-то?