Конвертер онтологической базы знаний станков и деталей машиностроительного производства в объектную базу данных на основе ANTLR

Автор: Игруша В.А., Сосинская С.С.

Журнал: Онтология проектирования @ontology-of-designing

Рубрика: Прикладные онтологии проектирования

Статья в выпуске: 3 (21) т.6, 2016 года.

Бесплатный доступ

Статья посвящена разработке автоматизированного конвертера, преобразующего базу знаний в виде онтологии, представленной в одном из форматов, допустимых редактором онтологий OntoStudio (OWL или RDF), в объектно-ориентированную базу данных (ООБД) db4o. Впервые предложен подход, основанный на использовании компилятора компиляторов ANTLR (ANother Tool for Language Recognition). Это позволяет сократить трудозатраты и применить программное средство ANTLR для других онтологий, так как разработана грамматика языка описания онтологий, которая не зависит от предметной области базы знаний. Грамматика содержит не только лексические и синтаксические правила для проверки правильности текста, но и правила действий для преобразования элементов онтологии в изоморфные им элементы объектной базы данных.

Еще

Онтология, конвертер, проект, база знаний, класс

Короткий адрес: https://sciup.org/170178724

IDR: 170178724   |   DOI: 10.18287/2223-9537-2016-6-3-278-286

Текст научной статьи Конвертер онтологической базы знаний станков и деталей машиностроительного производства в объектную базу данных на основе ANTLR

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

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

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

Вследствие этих объективных обстоятельств весьма желательно, чтобы информация и знания были структурированы таким образом, чтобы пользователь, в том числе и компьютер, понимал и текст, и смысл документа и обрабатывал его посредством использования известных ему правил с помощью некоторого логического языка, а также был способен вывести новые факты и знания из документа [1].

Онтология - один из способов структурирования знаний путём создания иерархии понятий с их свойствами, правилами и запросами. Понятия вместе с их экземплярами создают объектную базу знаний [2]. Правила позволяют выводить новые экземпляры [3].

С другой стороны, объектно-ориентированные базы данных (ООБД) представляют собой набор классов, образующих иерархию и содержащих свойства, методы, запросы и объекты (экземпляры) классов [4].

Информационная модель данных в области машиностроения требует перехода от неструктурированных данных к таким структурам, которые позволяют получить ответы на нужные запросы за наименьшее время. Для решения этой проблемы был предложен новый подход, сочетающий формирование онтологии, содержащей информацию о технологических возможностях станков и обрабатываемых на них деталей [5], и параллельно с этим проектирование и реализацию хранения той же информации в виде ООБД [6].

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

Рассмотрение ООБД является существенно более эффективным подходом к разработке баз данных по сравнению с широко используемыми реляционными базами данных.

Разработка различных структур представления данных позволит в будущем сравнивать оба способа по скорости обработки запросов и объёму необходимой памяти и переходить от одного к другому для выбора наиболее эффективного в тот или иной период времени.

1 Цель разработки конвертера

Как показано в [6], онтология и ООБД для одной предметной области изоморфны.

Если представить онтологию N={C, A, E, Q, R, P}, а объектно-ориентированную базу данных B={C, S, O, Z, M, D}, где

C - классы;

A - атрибуты;

E - экземпляры классов;

Q - запросы;

R - правила;

P - отчеты;

S - свойства классов;

O - объекты, то есть экземпляры классов;

Z - результаты запросов;

M - методы;

D - отчетные документы, то утверждается, что N=B, так как A=S, E=O, Q=Z, R=M, P=D.

В связи с этим необходимо иметь программное средство для преобразования из одной формы в другую.

Авторами было разработано приложение для сканирования онтологии [6], представленной в формате RDF-файла; этот формат описан в [7]. Такой файл является результатом совместной обработки редакторами онтологий OntoStudio и Protege.

Результатом работы приложения является ООБД db4o.

Однако написание подобного приложения является очень трудоёмкой задачей и потребует больших затрат времени программиста при внесении хотя бы небольших изменений в онтологию, а тем более при разработке расширенной онтологии, что является необходимым, например, при рассмотрении технологии изготовления деталей на станках.

На основании изложенного было принято решение разработать конвертер с использованием ANTLR (от ANother Tool for Language Recognition) - инструментария для создания компилятора языков программирования, который не только проверяет правильность текста на входном языке с точки зрения лексики и синтаксиса, но и преобразует описание с языка описания онтологий в язык ООБД [8].

2    Состав и назначение ANTLR

ANTLR — генератор парсеров, позволяющий автоматически создавать программы лексического и синтаксического анализа на одном из целевых языков программирования (C++, Java, C#, Python, Ruby) по описанию LL - грамматики в расширенной нотации Бэкуса -Наура [8]. В общем случае грамматика относится к классу LL(K) грамматик, если для неё можно построить анализатор, учитывающий K входных символов, расположенных справа от текущей входной позиции. Название LL произошло от слова Left, поскольку анализатор просматривает входную цепочку слева направо и слова Leftmost, поскольку он обнаруживает появление правила по одному или группе символов, образующих левый край цепочки. На практике наибольшее применение имеет класс LL(1) грамматик, для которых анализатор рассматривает только один входной символ, расположенный справа от текущей позиции. Создатели ANTLR утверждают, что многие преимущества при определении действий для правил грамматики являются следствием того, что ANTLR осуществляет разбор сверху вниз. Кроме того, ANTLR выгодно отличается от других подобных программ наличием визуальной среды разработки ANTLRWorks, позволяющей удобно создавать и редактировать грамматики.

ANTLR представляет собой набор, состоящий из двух частей.

  •    Генератора анализаторов - приложения, которое получает на вход описание грамматики и генерирует код для лексического и синтаксического анализатора.

  •    Библиотеки времени выполнения, которая используется для создания конечной программы. Эта библиотека содержит базовые классы для анализаторов, а также классы, управляющие потоками символов, обрабатывающие ошибки разбора, генерирующие выходной код на основе шаблонов и многое другое.

Одна из основных задач, при решении которых используется ANTLR, - разработка трансляторов с языков DSL (Domain Specific Language - язык, специфичный для предметной области), которые генерируют код на языке высокого уровня [9].

В отличие от многих других инструментов создания компиляторов, ANTLR имеет средства для создания не только frontend-части (лексического и синтаксического анализатора), но и возможности backend (генератора кода).

При этом backend может быть организован по-разному, в зависимости от желания пользователя. В статье используется вызов действий (семантических правил, actions) в синтаксическом анализаторе. Действия вызываются синтаксическим анализатором, когда он заканчивает разбирать какую-то грамматическую конструкцию или её часть (см. рисунок 1).

На этом рисунке изображено:

  •    Поток символов - текст программы на исходном языке;

  •    Lexer - лексический анализатор, разбивающий исходный поток символов на отдельные лексемы. На выходе лексический анализатор порождает поток лексем;

  •    Parser - синтаксический анализатор. Просматривает поток лексем и анализирует структуру предложений языка;

  •    Actions - действия (код). Эти действия позволяют генерировать код на языке описания Java [10] который используется в ООБД db4o;

  •    Output Text - окончательный текст на предметном языке.

Рисунок 1 - Организация элементов ANTLR

3    Представление онтологии станков и деталей машиностроительного производства в редакторе OntoStudio

На основе анализа информации, необходимой для описания станков и деталей [11-14], при построении онтологии в редакторе OntoStudio были выделены следующие классы: Станок, Деталь, Материал, Инструмент, Марка материала, Марка инструмента, Нормативные документы.

Каждый класс имеет некоторые свойства. Например, свойства класса Деталь показаны на рисунке 2. Взаимосвязи класса Деталь показаны на рисунке 3.

Local name: Деталь

Properties

Properties

Range

Min

Max

Е Габариты детали

13 string

0

N

X

|Е!геом.тоцность обрабатываемых поверхностей

3 decimal

0

N

X i

Е Имя детали

3 string

0

N

X

Е масса (гр.)

3 integer

0

N

X

Е метод изготовления

Э string

0

N

X

Е Наименование детали

3 string

0

N

X

Е Необходимость приспособлений

3 integer

0

N

X

Е Обозначение детали

Э string

0

N

X

Е Трудоемкость

3 decimal

0

N

X

Е шероховатость поверхностей

3 decimal

0

N

X

Е шероховатость радиусных переходов

S decimal

0

N

X

Q материал

0 Материал

0

N

X

В Обрабатывается

0 Станок

0

N

X

Рисунок 2 - Свойства класса Деталь

Свойства, перечисленные на рисунке 2, могут иметь различные типы - как строка, так и целое число. Свойство «Имя детали» хранит имя детали, свойство «Наименование детали» хранит описание детали, свойство «Габариты детали» хранит габариты детали, измеренные в различных единицах измерения, поэтому было решено выбрать тип String, который в дальнейшем программным путём будет преобразовываться в нужный числовой формат.

Рисунок 3 - Взаимосвязи класса Деталь

На рисунке 3 показано, как в OntoStudio можно визуально показать взаимосвязи свойств одного класса, которые являются экземплярами другого класса. В левой части рисунка изображены экземпляры класса «Деталь», а в правой части можно увидеть, какие свойства класса «Деталь» являются экземплярами других классов.

4    Структура проекта

Рассмотрим, как будет взаимодействовать ANTLR с разработками [5] и [6].

Грамматика описания онтологии на языке Object Logic приведена ниже.

grammar ont_db4o;

query     :       ‘?-‘ usls;

tip : TIP|name_conc ;

usls       :       ((uslo|uslp)’and’?)+;’ uslo      :      NP ‘:’ name_conc;

uslp : concept ′]’; CONSTL : NP’[name_prop ′->’ (NP|CONSTC)’]; (‘true’|’false’); name_conc

:LET_ZAG CHAST;

concept_nasl :       ‘::’ name_conc ; rule : schema : instance : name_prop uslp query; (name_conc ‘[‘ name_prop(‘{0:*}’|’{1:1}’)’*=>’tip’]’ )*; ‘:’name_conc ; :LET_MAL (LET_MAL|LET_ZAG|INT)*; name_inst :name_conc INT+ ;

props :(’[‘ name_prop ‘->’(CONSTC|CONSTL|TEXT) ']’);

CONSTC:      ‘-‘?INT+(‘.’INT+)?;

CHAST : (LET_MAL|LET_ZAG|INT)*         ;

NP      :

TEXT :

‘?’LET_ZAG;

‘”’(LET_MAL|LET_ZAG|INT)+””;

Грамматика состоит из правил. Все правила делятся на лексические и синтаксические.

Лексические правила используются для описания лексем и служат основой для генерации лексического анализатора. Синтаксические правила описывают грамматику языка.

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

В грамматику вставлены Action - символы действия, позволяющие сгенерировать код на языке java.

По грамматике были сгенерированы классы:

  •    Lexer - лексический блок;

  •    Parser - синтаксический блок;

  • Emitter - блок генерации классов db4o на языке Java.

Все эти классы экспортируются в среду разработки Eclipse [15], с помощью которой создаётся программный продукт «Конвертер Онтология - db4o». Взаимодействие всех блоков проекта Конвертер Онтология - db4o показано на рисунке 4.

Грамматика онтологии обрабатывается программой ANTLRWorks, с помощью которой генерируются классы Lexer, Parser и Emitter. Эти классы включаются в состав проекта приложения Конвертер Онтология - db4o на языке Java.

Файлы с онтологией в форматах OWL и RDF поступают на вход приложения. В случае наличия лексических или синтаксических ошибок выдаются сообщения. Например, ■ token recognition error at: " at 3:5

■     mismatched input 4 expecting {'as', 4s', '[', '(', '.', ';', 'V, '-', '*', '/', '%', '&', j', ' Д '<', '>', '?',

extraneous input '5' expecting {'as', 4s', [', '(', '.', ';', 'V', '-', *, '/', %0', '&', j', ^', <, >', '?', ??, VV, '--', &&, j|', ->, = = ', '!=', '< = ', '> = ', <<} at 8:21

no viable alternative at input 'c}'at 15:5

missing '}'at 'EOF'at 15:6.

Если ошибок нет, то генерируются классы ООБД db4o, которые можно включать в любой проект, созданный в среде разработки Eclipse.

Emitter

Грамматика онтологии

Класс Lexer

Классы db4o

Рисунок 4 - Взаимодействие блоков проекта Конвертер Онтология - db4o

Заключение

В статье рассмотрены принципы разработки конвертера для преобразования онтологии в ООБД с использованием программного продукта ANTLR. Это позволило сократить трудозатраты при написании программного кода. Предлагаемая технология может быть распространена на случай расширения описанной онтологии, а также для обратного конвертирования из ООБД в онтологию. Для этого потребуется скорректировать грамматику ANTLR, возможно, включая класс Emitter.

Список литературы Конвертер онтологической базы знаний станков и деталей машиностроительного производства в объектную базу данных на основе ANTLR

  • Хорафас, Д.Н. Системы и моделирование / Д.Н. Хорафас - пер. с англ. Е. Г. Коваленко, В. Я. Алтаева, Б. А. Квасова. - М.: Мир, 1967. - 420 с. - Пер. изд.: Systems and simulation / Dimitris N Chorafas. - New York, 1965. - 240 p
  • Scott W. Ambler. Mapping objects to relational databases. What you need to know and why. - developerWorks® IBM Corporation 2000. Отображение объектов в реляционных базах данных. - URL: http://www.ibm.com/developerworks/library/ws-mapping-to-rdb/ (дата обращения 10.05.2016).
  • Боргест, Н.М. Онтология проектирования: теоретические основы. Часть 1. Понятия и принципы / Н.М. Боргест // Учеб. пособие. - Самара: Изд-во СГАУ, 2010. - 91 с.
  • Рабчевский, Е. Автоматическое построение онтологий. - URL: http://shcherbak.net/avtomaticheskoe-postroenie-ontologij/ (дата обращения 02.06.2016).
  • Сосинская, С.С. Сравнение возможностей программных продуктов OntoStudio и Protege для анализа станочных систем машиностроительного производства / В.А. Игруша, С.С. Сосинская, С.А. Орсоева // Вестник ИрГТУ. - 2015. - № 3. - С. 17-23.
Статья научная