Building a knowledge base for autonomous control of unmanned vehicles
- Authors: Romanov A.A.1, Rubtsov I.A.1, Svyatov K.V.1, Filippov A.A.1
-
Affiliations:
- Ulyanovsk State Technical University
- Issue: Vol 14, No 1 (2024)
- Pages: 94-106
- Section: ONTOLOGY ENGINEERING
- URL: https://journals.ssau.ru/ontology/article/view/27801
- DOI: https://doi.org/10.18287/2223-9537-2024-14-1-94-106
- ID: 27801
Cite item
Full Text
Abstract
This article presents an approach to building and using a knowledge base for autonomous control of unmanned vehicles (UV). Agriculture is presented as a subject area which features and limitations must be considered. The lack of a sufficient number and level of qualifications of machine operator leads to equipment downtime, a decrease in crop yields and the efficiency of using chemical fertilizers. The use of UV makes it possible to reduce the influence of these factors and the harmful effects on people working in agriculture. The article focuses on taking into account the features and limitations of the subject area when constructing the trajectory of unmanned vehicles and controlling processing facilities. An approach is proposed that consists of separate stages of designing a knowledge base schema, automating the process of filling the knowledge base and organizing the logical inference function. For each stage, developed models and algorithms are presented that help to form and use a knowledge base when solving the problem of autonomous control of unmanned vehicles. The article contains examples and illustrations designed to increase the clarity of the proposed approach.
Full Text
Введение
Применение интеллектуальных систем (ИС) для автоматизации бизнес-процессов позволяет снизить интеллектуальную нагрузку на специалистов большого числа предметных областей (ПрО). Широкое распространение получили ИС, в основе которых лежат методы машинного обучения (МО) и нейросетевые модели. МО высоко ценится разработчиками ИС из-за широких возможностей адаптации к решению задач при наличии достаточной обучающей выборки. Однако пока не решён вопрос объяснимости результатов, полученных с помощью МО.
В ряде работ рассматриваются вопросы построения ИС на основе методов инженерии знаний. Например, в работах [1-5] разрабатываются базы знаний (БЗ) и средства поддержки их жизнеспособности. В отличие от МО БЗ позволяют формализовать знания об особенностях ПрО в форме, которая одинаково понятна как человеку, так и вычислительной машине. В БЗ знания эксперта представлены в явном виде.
В данной работе рассмотрен подход к построению и использованию БЗ для автономного управления беспилотными транспортными средствами (БПТС) в сельском хозяйстве (СХ).
1 Постановка задачи
Задача управления БПТС является актуальной [6-10]. Применение БПТС в СХ позволяет повысить производительность труда, снизить нагрузку и воздействие вредных веществ на персонал. Можно выделить два основных подхода к управлению БПТС, это использование:
- набора географических координат, по которым передвигается БПТС;
- систем машинного зрения.
Для применения БПТС в СХ требуется построение гибридной системы, объединяющей оба подхода, а также включающей подсистему управления средствами обработки СХ полей и культур. Поле является объектом с известными границами, и на нём не предполагается оживлённое движение других объектов. Необходимо построить траекторию движения БПТС с учётом особенностей ПрО. Существует вероятность, что на поле может оказаться посторонний объект, поэтому БПТС должно иметь возможность корректировки траектории. Необходимо также управлять средствами обработки для эффективного расходования удобрений и химикатов. Таким образом, требуется решение следующих подзадач:
- оснащение транспортного средства оборудованием для автономного управления;
- формирование БЗ для построения траектории движения БПТС и управления средствами обработки с учётом особенностей ПрО;
- разработка алгоритма построения траектории движения БПТС;
- разработка модели машинного зрения;
- сбор обучающей выборки для тренировки подсистемы машинного зрения для корректирования траектории движения БПТС;
- сборка системы управления БПТС и средствами обработки.
2 Модель БЗ задачи построения траектории движения БПТС
В работе [11] отмечено, что одной из проблем построения эффективного алгоритма управления БПТС является необходимость учёта особенностей ПрО. Можно выделить следующие особенности ПрО СХ:
- параметры поля: координаты границы поля, характеристики почвы, показатели урожайности СХ культур, история использования поля, наличие вредителей и др.;
- особенности обрабатываемых СХ культур: требования к почве, требования к процессам обработки, требования к удобрениям и химикатам, влияние вредителей и др.;
- особенности процесса обработки: траектория обработки поля, периодичность обработки, требования к средствам обработки, требования к БПТС и др.;
- параметры и особенности БПТС: габариты, угловая скорость, вес, мощность двигателя, поддерживаемые средства обработки, принцип установки средств обработки и др.;
- параметры средств обработки: способ обработки, объём резервуара для химикатов, требования к мощности двигателя БПТС, требования к способу крепления на БПТС и др.
Для формирования БЗ при решении задачи управления БПТС в работах [12-14] предлагается использовать онтологии, основанные на дескрипционной логике (ДЛ) [15]. Это позволяет использовать машины логического вывода для получения новых знаний и проверки логической целостности и непротиворечивости содержимого БЗ с учётом ограничений ПрО. Онтологии позволяют описывать знания в виде продукционных правил. Известны онтологии для ПрО СХ разных уровней [3, 16-19].
Теоретико-множественное представление модели БЗ имеет вид: где – схема БЗ, которая определяет доступное для использования множество классов сущностей ПрО, их свойства, а также отношения между сущностями; ABox – содержимое БЗ; SWRL – множество продукционных правил на языке SWRL [20].
Модель БЗ задачи автономного управления БПТС является фрагментом модели БЗ и представляет собой набор аксиом ДЛ, которые определяют модель знаний БЗ с учётом ограничений и особенностей ПрО решаемой задачи. Таблица 1 содержит операторы ДЛ, которые используются для формализации модели БЗ решаемой задачи.
Таблица 1 – Операторы ДЛ и их соответствие операторам языка OWL
ДЛ | OWL | Описание |
| owl:Thing | Класс верхнего уровня |
| owl:Nothing | Пустой класс |
| A owl:SubClassOf B | Включение классов (родитель-потомок) |
| [A, B] owl:DisjointClasses | Непересекающиеся классы |
| [A, B] owl:equivalentClasses | Эквивалентные классы |
| A and B | Пересечение (конъюнкция) классов |
| R only A | Универсальное ограничение |
| R some A | Экзистенциальное ограничение |
| R exactly n A | Ограничение кардинальности |
TBox модели БЗ формируется администратором БЗ вместе с экспертом данной ПрО.
Для удобства классу добавлено функциональное свойство (ФС) для определения текстового представления имени сущности, которая унаследована остальными классами БЗ: .
Основные классы сущностей модели БЗ для описания особенностей ПрО:
– поле, в пределах которого осуществляется автономное управление БПТС;
– БПТС;
– средства обработки поля, которые могут быть установлены на БПТС;
– СХ культуры, которые могут располагаться на поле;
– объекты, которые могут мешать передвижению БПТС на поле;
– географические координаты.
Все представленные классы являются потомками класса (наследование), а также определены в качестве непересекающихся:
.
ФС класса имеют вид:
,
где и – ФС для определения габаритов БПТС: ширина и длина соответственно;
– ФС для указания значения радиуса разворота БПТС;
– ФС, значение которого соответствует мощности двигателя БПТС.
ФС класса имеют вид:
,
где – ФС для определения требований средства обработки к мощности двигателя БПТС; – ФС, указывающее на тип средства обработки. Возможные значения данного ФС заданы в перечислении .
ФС специфичные для определённых классов средств обработки на примере разбрасывателей удобрений () и полевых опрыскивателей () имеют вид:
;
,
,
где – ФС – значение диаметра разбрасывающих удобрения дисков;
– ФС, указывающее на объём резервуара для химикатов;
классы и являются наследниками класса и наследуют его свойства и . Эти классы объявлены непересекающимися.
Свойства класса имеют вид:
,
где – свойство, определяющее множество средств обработки, которые могут быть применены к данной СХ культуре;
– ФС, значение которого указывает на тип траектории, по которой необходимо перемещаться БПТС, при обработке данной СХ культуры;
– перечисление, содержащее типы траекторий БПТС.
Класс имеет следующие ФС:
,
где и – ФС, определяющие множество координат в виде долготы и широты соответственно.
Свойства класса :
,
где – ФС, задающее тип объекта значением из перечисления , например овраги () и солончаки ();
– свойство для определения множества координат объекта на поле.
Свойства класса :
t,
где – свойство для определения множества координат границы поля;
– ФС для определения СХ культуры, которая находится на поле;
– свойство, указывающее объекты, которые могут быть расположены на поле.
Модель БЗ может уточняться и дополняться в процессе логического вывода с помощью набора продукционных правил.
3 Разработка БЗ для задачи построения траектории движения БПТС
Определены следующие требования к средствам построения и формирования БЗ для задачи автономного управления БПТС. В частности, необходимо наличие средств для:
- формирования схемы () БЗ для описания особенностей ПрО;
- создания продукционных правил, описывающих правила и закономерности ПрО;
- автоматизации формирования содержимого () БЗ на основе схемы ();
- проверки непротиворечивости и целостности знаний, а также получения новых знаний и их интерпретации на основе механизма логического вывода.
3.1 Формирование схемы БЗ и продукционных правил
Для формирования схемы БЗ и продукционных правил на языке SWRL использован редактор онтологий Protégé [21]. Данный редактор основан на библиотеке OWL API, позволяет создавать и редактировать продукции на языке SWRL с помощью библиотеки SWRL API и может использовать машину логического вывода Pellet.
В результате схема БЗ и множество продукций на языке SWRL представляются в виде онтологии на языке OWL.
3.2 Средства для автоматизации формирования содержимого БЗ
Для автоматизации процесса формирования содержимого () БЗ на основе схемы () разработано приложение, основанное на динамической генерации экранных форм для ввода данных на основе структуры метаданных.
В качестве хранилища разработанного приложения используется графовая система управления базами данных (СУБД) Neo4j [22]. Данная СУБД не использует реляционную модель данных и не накладывает ограничения на модель данных, что позволяет загружать в Neo4j данные любой структуры в виде графа без предварительной подготовки. Для выполнения запросов к содержимому Neo4j необходимо знать структуру метаданных. Основным преимуществом использования СУБД Neo4j является поддержка транзакций, что делает возможной коллективную работу по заполнению БЗ несколькими экспертами. Neo4j имеет специальный язык запросов Cypher, который ориентирован для работы с графом и позволяет создавать эффективные запросы к хранилищу.
В качестве источника для получения метаданных используется схема БЗ (). Метаданные позволяют:
- генерировать экранные формы для ввода данных с необходимым набором элементов управления;
- накладывать ограничения на тип и наличие данных для отдельных элементов управления;
- формировать запросы на добавление и извлечение данных из Neo4j.
Теоретико-множественное представление метаданных имеет вид :
где E – множество сущностей ПрО (классы БЗ); A – множество свойств сущностей; R – множество отношений, которые связывают сущность и её свойства; Enum – множество перечислений, которые используются в качестве допустимого множества значений отдельных свойств.
Множество сущностей имеет вид: , где – i-я сущность метаданных. Каждая сущность имеет свойство type для определения типа сущности и свойство name для определения имени (представления) сущности в пользовательском интерфейсе. Представление задаётся через аннотацию (элемент языка OWL) схемы БЗ. Например, для класса Field – .
Множество атрибутов сущностей можно записать как: ,
где – j-й атрибут метаданных. Атрибут метаданных имеет следующие свойства: – тип атрибута, name – представление атрибута, – тип данных атрибута, – признак обязательности заполнения.
Тип данных атрибута может принимать следующие значения: простые типы данных (строка, число, дата, булево); ссылка на другую сущность; коллекция (список).
Например, для свойства создан атрибут со следующими свойствами: .
Множество перечислений можно представить в виде следующего выражения:
,
где – k-е перечисление, в котором: type – свойство для определения типа перечисления, name – представление сущности, – множество значений перечисления. Например, перечисление представлено как .
Множество отношений R имеет вид: , где – l-е отношение между сущностью и её атрибутом , например, .
Для получения метаданных на основе схемы БЗ используется функция вида:
.
Функция реализуется следующим алгоритмом:
- для каждого перечисления схемы БЗ выполнить преобразование:
, например,
.
- для каждого класса схемы БЗ выполнить преобразование:
, например, .
- для каждого свойства i-го класса схемы БЗ выполнить преобразование:
, например,
.
Рисунок 1 – Пример экранной формы для ввода информации о поле
Тип данных атрибута определяется на основе ограничений и типов данных соответствующего свойства схемы БЗ: если у свойства есть экзистенциальное ограничение () и универсальное ограничение ( и свойство не является функциональным, то типом данных атрибута является коллекция, иначе не коллекция.
Итоговый тип данных определяется на основе множества допустимых типов значений из схемы БЗ. Признак обязательности заполнения значения атрибута определяется на основе ограничений схемы БЗ: если у свойства есть универсальное ограничение (, то атрибут должен быть обязательно заполнен.
Для автоматизации процесса заполнения БЗ клиентская часть приложения получает метаданные для генерации интерфейса и данные для отображения в нём. Генерация интерфейса осуществляется следующей функцией:
.
Например, необходимо ввести данные о некотором экземпляре класса . В клиентской части приложения используются полученные метаданные класса для генерации экранной формы приложения, представленной на рисунке 1. Для каждого атрибута на основе значений его свойств создаётся определённое поле ввода. Например, для атрибута создано следующее поле на языке HTML:
<div class="mb-3">
<label for="hasName" class="form-label">Название</label>
<input type="text" class="form-control" id="hasName" required value="данные">
</div>
Как видно из примера разметки, для задания ограничения типа данных используется атрибут type, а для указания обязательности заполнения значения атрибут required тега input. Данные задаются через атрибут value тега input.
Для атрибута HTML-разметка имеет вид:
<div class="mb-3">
<label for="hasBorderCoordinate" class="form-label">Координаты</label>
<br />
<button class="btn btn-primary" type="button">Добавить</button>
<div id="hasBorderCoordinate" class="list-group mt-2"
role="listbox" aria-required="true">
<div class="list-group-item list-group-item-action d-flex flex-row">
<span class="flex-grow-1 align-self-center">данные</span>
<a href="#"><i class="bi bi-trash3"></i></a>
</div>
…
<div class="list-group-item list-group-item-action d-flex flex-row">
<span class="flex-grow-1 align-self-center">данные</span>
<a href="#"><i class="bi bi-trash3"></i></a>
</div>
</div>
</div>
Так как метаданные содержат все требуемые сведения, при необходимости можно легко заменить шаблоны для генерации элементов управления и представлять коллекции значений в виде таблицы.
Для работы с хранилищем данных Neo4j используются следующие функции:
, .
Функция позволяет автоматически генерировать запрос на языке Cypher для создания записи данных в хранилище Neo4j.
Алгоритм работы функции состоит из следующих шагов.
- создание узла для добавляемого экземпляра сущности. Например, для объекта класса : MERGE (e1:Field{name: 'Поле'}).
- поиск атрибутов с типом данных, ссылающихся на экземпляр другой сущности. Например, для класса это атрибуты и . Далее создаются команды для записи в хранилище связанных сущностей. Для атрибута :
MERGE (e2:Coordinate{name: 'Координата'})
MERGE (e2a1:Value{value: '54.19'})
MERGE (e2a2:Value{value: '48.22'})
MERGE (e2)-[:latitude]->(e2a1)
MERGE (e2)-[:longitude]->(e2a2).
- создание узлов для атрибутов, которые не ссылаются на другие сущности:
MERGE (e1a1:Value{value: 'Поле1'}).
- организация связи между экземпляром сущности и его атрибутами:
MERGE (e1)-[:hasName]->(e1a1)
MERGE (e1)-[:hasBorderCoordinate]-(e2).
В результате выполнения представленного запроса сформирован фрагмент графа, показанный на рисунке 2.
Рисунок 2 – Пример содержимого БЗ
Как видно из рисунка 2, данные о поле записываются в БЗ в качестве фрагмента. Жирным начертанием выделена сущность класса , а фоном отмечены значения свойств сущности . На рисунке 2 приведены также примеры представления сущностей других классов: БПТС УАЗ Патриот, опрыскиватель полевой штанговый полуприцепной ОПМ-2505 В, СХ культура картофель, овраг, расположенный на поле. Для всех обозначенных сущностей заданы значения их свойств.
Функция используется для получения данных из хранилища Neo4j. Например, для получения списка всех сущностей класса используется запрос:
MATCH p=(f:Field)-[r*..]->(v) RETURN p.
Для получения конкретного поля будет сформирован следующий запрос:
MATCH p=(f:Field)-[r*..]->(v) WHERE ID(f)=201 RETURN p.
Таким образом, автоматизация формирования содержимого () БЗ снижает нагрузку на эксперта по сравнению с наполнением БЗ средствами редактора Protégé.
3.3 Механизм логического вывода
Графовая СУБД Neo4j поддерживает механизм логического вывода, но возможности его ограничены. Следовательно, необходимо выполнять логический вывод средствами, разработанными специально для онтологий. Функция логического вывода реализуется с помощью библиотек OWL API, SWRL API и машины логического вывода Pellet.
Выполнение функций логического вывода позволяет гарантировать корректность содержимого БЗ, логическую целостность и непротиворечивость ограничениям ПрО. В результате логического вывода на основе множества продукционных правил на языке SWRL в БЗ формируются новые знания. Продукционные правила позволяют изменять логику работы с БЗ без изменения алгоритма автономного управления БПТС, что повышает гибкость алгоритма и его живучесть в процессе эксплуатации системы.
Для реализации логического вывода используются следующие функции:
,
.
Функция на основе метаданных извлекает из Neo4j необходимые данные и записывает их в онтологию в формате OWL. При этом заполняется онтология, положенная в основу схемы БЗ , полученная на этапе формирования схемы БЗ.
Алгоритм работы функции состоит из следующих шагов.
- получить множество классов БЗ на основе метаданных M: .
- для каждой сущности из состава метаданных M выполнить запрос к Neo4j:
MERGE (o: )-[:hasName]->(name).
- создать аксиомы БЗ для определения сущностей для i-го класса БЗ:
.
- получить множество свойств i-го класса из модели метаданных M:
.
- для каждого j-го атрибута сущности из состава метаданных M выполнить запрос к Neo4j: MERGE (o: )-[: ]->(value).
- создать аксиомы БЗ для определения j-го свойства сущностей для i-го класса БЗ: .
Далее запускается машина логического вывода Pellet, которая выполняет логический вывод по содержимому полученной OWL-онтологии. Выполнение множества SWRL-правил позволяет получать новые знания и использовать их для автономного управления БПТС. В случае возникновения ошибок пользователь должен внести исправления.
Например, SWRL-правило, которое позволяет добавить для класса дополнительные свойства и , значения которых указывают на необходимое средство для обработки и тип траектории движения БПТС в зависимости от СХ культуры, имеет вид:
.
Новые свойства класса , сформированные в процессе логического вывода, также могут быть использованы в качестве атомов других SWRL-правил, например для определения подходящих БПТС на основе требований средств обработки к мощности двигателя:
.
Заключение
В статье рассмотрена задача формирования БЗ для автономного управления БПТС с учётом особенностей ПрО СХ.
Предложены информационная модель БЗ, позволяющая учитывать различные особенности и ограничения при решении задачи автономного управления БПТС, и автоматизированный способ формирования схемы БЗ. Для автоматизации процесса формирования содержимого БЗ предложена информационная модель метаданных, которая используется для генерации динамических экранных форм, позволяющих снизить нагрузку на эксперта и реализовать функцию коллективного заполнения БЗ.
Предложен подход к организации логического вывода для проверки логической целостности и непротиворечивости содержимого БЗ перед выполнением задачи автономного управления БПТС. Механизм логического вывода используется также для получения новых знаний на основе множества продукционных правил на языке SWRL, что делает алгоритм построения траектории более гибким.
About the authors
Anton A. Romanov
Ulyanovsk State Technical University
Email: romanov73@gmail.com
PhD, Head of the Department of Information systems, member of the Russian Association of Artificial Intelligence
Russian Federation, UlyanovskIvan A. Rubtsov
Ulyanovsk State Technical University
Email: ria0294@mail.ru
Master degree in Design and Technological Support, Head of the Laboratory of innovative technologies in mechanical engineering
Russian Federation, UlyanovskKirill V. Svyatov
Ulyanovsk State Technical University
Email: k.svyatov@gmail.com
PhD, Head of the Department of computer engineering
Russian Federation, UlyanovskAleksey A. Filippov
Ulyanovsk State Technical University
Author for correspondence.
Email: al.al.filippov@gmail.com
PhD, Associate Professor of the Department of information systems, member of the Russian Association of Artificial Intelligence
Russian Federation, UlyanovskReferences
- Gribova VV, Moskalenko FM, Timchenko VA, Shalfeeva EA. Building Viable Intelligent Systems with Managed Declarative Components [In Russian]. Information and mathematical technologies in science and management. 2018. 3(11). 6-17. doi: 10.25729/2413-0133-2018-3-01.
- Kuzmin VR, Zagorulko YA. Application of an agent-service approach in the development of intelligent decision support systems in the energy sector [In Russian]. Bulletin of Novosibirsk State University. Series: Information technology. 2020. 18(3). 5-18. doi: 10.25205/1818-7900-2020-18-3-5-18.
- Borgest NM, Budaev DV, Travin VV. Ontology of precision agriculture design: problem state, solution approaches [In Russian]. Ontology of designing. 2017. 4(26). 423-442. doi: 10.18287/2223-9537-2017-7-4-423-442.
- Begler AM, Kudryavcev DV, Gavrilova TA. Using ontologies to integrate empirical research data [In Russian]. Russian Conference on Artificial Intelligence (RCAI-2020). 2020. 3-11.
- Borisov VV, Trusov AS, Kulchitskiy PV, Izvozchikova VV. Automation of technical diagnostics of oil and gas equipment [In Russian]. Oil and gas production is the basis of scientific and technological progress and economic stability. 2020. 362-367.
- Xie B, Jin Y, Faheem M, Gao W, Liu J, Jiang H, Cai L, Li Y. Research progress of autonomous navigation technology for multi-agricultural scenes. Computers and Electronics in Agriculture. 2023; 211: 107963. doi: 10.1016/j.compag.2023.107963.
- Hu J, Gao L, Bai X, Li T, Liu X. Review of research on automatic guidance of agricultural vehicles. Transactions of the Chinese Society of Agricultural Engineering. 2015; 31(10): 1–10.
- Liu L, Lu S, Zhong R, Wu B, Yao Y, Zhang Q, Shi W. Computing systems for autonomous driving: State of the art and challenges. IEEE Internet of Things Journal. 2020; 8(8): 6469–6486. doi: 10.1109/JIOT.2020.3043716.
- Badue C, Guidolini R, Carneiro RV, Azevedo P, Cardoso VB, Forechi A, Jesus L, Berriel R, Paixão TM, Mutz F, de Paula Veronese L, Oliveira-Santos T, De Souza AF. Self-driving cars: A survey. Expert Systems with Applications. 2021; 165: 113816. doi: 10.1016/j.eswa.2020.113816.
- Bhalla A, Nikhila MS, Singh P. Simulation of self-driving car using deep learning. 2020 3rd International Conference on Intelligent Sustainable Systems (ICISS). IEEE, 2020. P.519–525. doi: 10.1109/ICISS49785.2020.9315968.
- Teeti I, Khan S, Shahbaz A, Bradley A, Cuzzolin F. Vision-based Intention and Trajectory Prediction in Autonomous Vehicles: A Survey. Proceedings of the Thirty-First International Joint Conference on Artificial Intelligence, IJCAI-22, Lud De Raedt, Ed. 2022; 7: 5630–5637.
- Chen W, Kloul L. An advanced driver assistance test cases generation methodology based on highway traffic situation description ontologies. International Joint Conference on Knowledge Discovery, Knowledge Engineering, and Knowledge Management. Springer, Cham, 2018. P.93–113. doi: 10.1007/978-3-030-49559-6_5.
- Ryu M, Cha SH. Context-awareness based driving assistance system for autonomous vehicles. Int. J. Control Autom. 2018; 11(1): 153–162. doi: 10.14257/ijca.2018.11.1.14.
- Syzdykbayev M, Hajari H, Karimi HA. An ontology for collaborative navigation among autonomous cars, drivers, and pedestrians in smart cities. 4th International Conference on Smart and Sustainable Technologies (SpliTech). IEEE, 2019. P.1–6. doi: 10.23919/SpliTech.2019.8783045.
- The description logic handbook: Theory, implementation and applications. F. Baader (ed.). UK, Cambridge: Cambridge university press, 2003. P.1–23.
- Bhuyan BP, Tomar R, Cherif AR. A Systematic Review of Knowledge Representation Techniques in Smart Agriculture (Urban). Sustainability. 2022; 14(22): 15249. doi: 10.3390/su142215249.
- Saraswathi D, Manibharathy P, Gokulnath R, Sureshkumar E, Karthikeyan K. Automation of hydroponics green house farming using IoT. IEEE International Conference on System, Computation, Automation and Networking (ICSCA). IEEE, 2018. P.1–4. doi: 10.1109/ICSCAN.2018.8541251.
- Urkude G, Pandey M. AgriOn: a comprehensive ontology for Green IoT based agriculture. Journal Green Eng. 2020; 10(9): 7078–7101.
- Jäger M, Nadschläger S, Phan TN, Küng J. Data, information & knowledge sources in the agricultural domain. 26th International Workshop on Database and Expert Systems Applications (DEXA). IEEE, 2015. P.115–119. doi: 10.1109/DEXA.2015.40.
- O'Connor MJ, Shankar RD, Nyulas C, Tu SW, Das AK. Developing a Web-Based Application using OWL and SWRL. AAAI spring symposium: AI meets business rules and process management. 2008. P.93–98.
- Protégé: A free, open-source ontology editor and framework for building intelligent systems: https://protege.stanford.edu.
- Neo4j Graph Database & Analytics: https://neo4j.com.