Введение 3
1. Определение требований к системе 5
1.1. Основные понятия предметной области 5
1.2. Необходимый функционал создаваемого прикладного решения 5
1.3. Особенности реализации проекта на основе онтологий 8
2. Проектирование системы 10
2.1. Определение и создание основных концептов онтологии 10
2.2. Методы и алгоритмы семантического поиска 10
2.3. Дополнительный функционал решения 11
3. Реализация системы 12
3.1. Выбор программных средств и архитектуры 12
3.2. Реализация основного функционала системы 13
3.3. Реализация дополнительного функционала 13
3.4. Демонстрация работы системы 14
Заключение 16
Список использованных источников 18
Приложение 21
Сейчас информатизация проникает во все сферы нашей повседневной жизни. Кардинально изменились и системы поиска информации. Теперь нам намного реже надо звонить в справочную или советоваться с библиотекарем, ведь большая часть интересующих нас сведений находится всего в паре кликов от нас. Это приводит людей к задаче усовершенствования способов упорядочивания информации и управления доступом к ней. Такие задачи решаются как крупными корпорациями, так и компаниями поменьше, в том числе и путём разработки поисковых систем.
Поисковые системы можно делить по разным признакам, но в контексте данной работы имеет смысл разделение на универсальные и специализированные операционные системы. Универсальные поисковые системы производят поиск по всей Всемирной паутине, специализированные же - только по некоторому её сегменту. Примерами первых являются поисковые системы Google и Яндекс, ко вторым можно отнести поисковые системы отдельных сайтов (таких как kinoposk.ru или hh.ru). Специализированные поисковые системы позволяют учитывать специфику предметной области при обработке запросов, что приводит к получению пользователями более релевантных результатов поиска.
Целью данной работы является создание специализированной поисковой системы на основе онтологии, в которой будет учитываться не только семантика, но и синтаксис запроса. В качестве предметной области была выбрана кулинария в связи с тем, что на её примере можно показать особенности выбранного подхода. К тому же эта предметная область близка многим пользователям.
Для достижения цели работы были поставлены следующие задачи.
1. Изучить предметную область.
2. Провести обзор и анализ различных поисковых систем для определения основных характеристик разрабатываемого продукта.
3. Изучить теоретические основы алгоритмов, используемых для семантического поиска.
4. Спроектировать систему.
5. Реализовать прототип системы.
В первой главе данной работы проводится анализ предметной области. Также производится анализ и обзор существующих поисковых систем для определения основного функционала разрабатываемой системы.
Во второй главе рассматриваются некоторые теоретические основы применяемого для семантического поиска математического аппарата, даётся обзор методов и алгоритмов семантического поиска, а также определяется дополнительный функционал, реализация которого возможна в рамках данного проекта.
В третьей главе описывается архитектура проектируемой системы, а также реализация основного и дополнительного функционала.
В ходе данной выпускной квалификационной работы была разработана система поиска по базе данных кулинарных рецептов с учётом контекста (система семантического поиска).
В рамках данной работы были выполнены следующие задачи:
1. Изучение и анализ предметной области.
2. Обзор и анализ различных поисковых систем в ходе определения требований к основному и дополнительному функционалу реализуемого решения.
3. Изучение теоретических основ семантического поиска и рабты с онтологиями.
4. Проектирование архитектуры системы.
5. Реализация прототипа системы.
Структура сайта была спроектирована на основе анализа краудфандинговых платформ и требований к платформе. На главная странице находится объемная всестороне описывающая проект презентация, основой для которой послужила структура презентации проектов на специализированных научных платформах. Помимо главной страницы, имеются страницы о команде, с новостями, с обсуждением, о том, как поддержать проект, личный кабинет и панель администратора.
Для реализации прототипа были выбраны следующие инструменты: язык проектирования онтологий Protege, язык программирования Java, фреймворк Apache Jena, система управления базами данных PostgreSQL.
Разработанный прототип системы обладает обозначенной в требованиях функциональностью. Пользователь может получать доступ к базе рецептов, производить поиск по ингредиентам, просматривать рецепты, используя графический интерфейс. Также есть возможность усовершенствованного поиска с учётом специфики предметной области.
Данный прототип после проверки на качество и доработки (улучшения графического интерфейса, добавления возможности пополнения базы рецептов) можно выводить в эксплуатацию. Полученную систему сможет использовать любой пользователь компьютера, интересующийся кулинарией.