2013-07-30 3 views
1

Я работаю над динамической системой, которая использует не слишком большую онтологию, чтобы принимать правильные решения на основе полученной информации. Мне нужно создать резервную копию этой онтологии вместе со своими людьми, чтобы система могла быть восстановлена ​​после сбоя, но я не знаю онтологию и сколько людей она содержит, поэтому резервное копирование должно быть как можно более общим.Практическое руководство. Резервное копирование онтологии?

Я бы предпочел, чтобы одна функция могла быть вызвана, просто чтобы сообщить, что моя резервная копия части кода может сделать свою вещь, вместо того, чтобы требовать от онтологического кода вызова метода для каждой отдельной онтологии или для отдельного пользователя.

Использование OWL API, возможно ли это? Могу ли я создать резервную копию моей системы в общем виде?

+0

Когда вы говорите, что не знаете онтологию, вы имеете в виду ее структуру? – keyser

+0

Как вы сейчас храните онтологию? например в памяти (когда программа запускается, классы загружаются или вы читаете какую-то конфигурацию из статических файлов, а затем создаете онтологию на основе этой конфигурации?) – aviad

+0

@ Keyser Ну, мне нужна резервная служба, чтобы быть полностью независимой от онтологии , Так что да, это то, что я говорю. Могу ли я сделать метод: public void backup (OWLOntology ont) {...}, а затем использовать методы сохранения/записи в файл из OWL api для успешной резервной копии? Таким образом, сервис, который хочет инициировать резервное копирование, должен вызываться только одним методом. – Don

ответ

1

Вы можете использовать Jena, он поддерживает постоянные онтологии. Кроме того, вам нужно решить, в каком формате вы будете хранить свою онтологию (XML, JSON и т. Д.), Тогда, например, метод резервного копирования может создавать XML из каждой семантической сущности. Вы можете использовать для этого JAXB/XStream/gson (Java для XML/JSON). Удачи!

+0

Спасибо большое! Теперь, когда вы имеете в виду «семантическое сущность», вы имеете в виду каждый индивид/аксиому и т. Д.? Итак, когда моя резервная копия получает объект OWLOntology, ему нужно разгадать онтологию, а затем разобрать ее на такой структурированный формат, как xml/json, и проще ли восстановить его в будущем? – Don

+0

Да. Вы должны иметь корень своей онтологии и под нее разные типы. Таким образом, процесс резервного копирования будет сканировать рекурсивно из корня каждый отдельный объект, а затем создаст его представление XML/JSON и добавит один большой файл XML/JSON, который будет использоваться для резервного копирования. Кроме того, с помощью Jena API он имеет описанную функциональность из коробки. – aviad

+0

Спасибо большое, я попробую оба и посмотрю, какой из них будет проще всего управлять, когда вся система будет жить. – Don

Смежные вопросы