Как я могу загрузить две онтологии в одной модели
Я отправил другие вопросы об этой проблеме... Но я думаю, что я близок к решению. У меня есть этот код, который работает ТОЛЬКО с загрузкой "dbpedia.owl". Проблема возникает, когда я добавляю другую онтологию "yag o.nt"... У меня есть "java.lang.OutOfMemoryError: Java heap space" как ошибка... Я попытался изменить значение Xmx (я увеличил его до 2048m)..Но у меня нет результата.. Я не знаю, что мне делать... Помогите мне, пожалуйста.. Если вы знаете, как использовать TDB, вы могли бы опубликовать код, примененный к моему коду?
OntModel ont=ModelFactory.createOntologyModel();
InputStream in=FileManager.get().open("dbpedia.owl");
InputStream i =FileManager.get().open("yago.nt");
ont.read(in,"");
Model schemaModel = FileManager.get().loadModel("yago.nt");
ont.add(schemaModel); // <---THE ERROR IS HERE
Reasoner r = ReasonerRegistry.getOWLReasoner();
r=r.bindSchema(ont);
OntModelSpec p= OntModelSpec.OWL_DL_MEM;
p.setReasoner(r);
OntModel model=ModelFactory.createOntologyModel(p,ont);
ExtendedIterator s=model.listClasses();
while (s.hasNext())
{
OntClass thisClass = (OntClass) s.next();
System.out.println("Found class: " + thisClass.toString());
}
1 ответ
Вы можете читать непосредственно в базу данных, используя набор данных TD и getNamedModel.
Но если вы затем настраиваете постоянную базу данных, почему бы просто не сделать:
tdbloader --loc=DB dbpedia.owl yago.nt
(если.owl вызывает у вас проблемы, сначала преобразуйте в NT или используйте TDB 0.10.X).