Как я могу загрузить две онтологии в одной модели

Я отправил другие вопросы об этой проблеме... Но я думаю, что я близок к решению. У меня есть этот код, который работает ТОЛЬКО с загрузкой "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).

Другие вопросы по тегам