авыа ыва ыва. Diplomnaya.Rabota._цуеуцеыы1_ — копия. ЫНаучный руководитель ученая степень, должность
Скачать 1.57 Mb.
|
Ыфафыафыа Ывп Ф П Фыв П Фы П Ыфвп Фп ыНаучный руководитель ученая степень, должность «___»_____________201 г. _________ А. Ф. Хасьянов Директор Высшей школы ИТИС «___»_____________201 г. __________________ А.Ф. Хасьянов Казань – 2017 г. СОДЕРЖАНИЕ
ВВЕДЕНИЕ При решении вопросов юридического характера возникает необходимость в получении экспертных юридических консультаций. При этом есть две стороны: потребитель консультации и консультирующее лицо. Физическому или юридическому лицу, обращающемуся за консультацией, требуется в удобном и доступном для него виде, быстро, качественно (с высокой долей уверенности) и недорого (всё вместе - в рамках ограниченности ресурсов) получить консультацию по юридическим вопросам. С другой стороны, консультант вынужден выделять время на проведение консультации. В следствие ограниченности физических возможностей, возможности консультирования ограничены. При увеличении объема обращений за консультациями может снизиться качество, для сокращения количества обращений может повыситься цена консультаций. Описанная проблема несоответствия возможностей консультанта потребностям консультируемого может эффективно решаться автоматизацией. При этом важно, чтобы автоматизированное решение было надежным (чтобы на его решения можно было опираться, чтобы оно было подкреплено ссылками на юридические документы, юридические статьи), предлагало удобный интерфейс для консультируемого (доступность, быстрое решение вопросов), возможность расширения возможностей по консультации для юристов. Для автоматизации решений нам понадобиться экспертная система на основе баз знаний заранее проверенных самими юристами. В качестве пользовательского интерфейса подобрана технология на основе популярного мессенджера Telegram, в котором реализована возможность общения с роботами (далее ботами) Задачи дипломной работы: Подготовка всех технологий для реализации задачи. Разработка и реализация всех библиотек и модулей. Тестирование и обзор интерфейса. Подготовка к выпуску продукта. ВВЕДЕНИЕ В СФЕРУ ЗАЩИТЫ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ Права на созданные изобретения, которые оформлены патентами, называют промышленными, а сам патент - промышленной собственностью (к ней можно отнести и другие объекты деятельности творчества в сфере производства). Между собственностью и патентом существуют следующие признаки: Собственнику, которому принадлежит патент, право пользования и распоряжение патентом; Когда у патента, как и у любого товара, есть меновая стоимость; Защита патента, как и любого имущества собственника, от посягательств со стороны других лиц. Термин «промышленный» обозначает область применения которым охраняется патент. Однако этот термин не совсем точен, так как в законе прописано, что изобретением является объект, который используется не только в промышленности, но и в торговле, сельском хозяйстве, медицине. Авторское право - часть гражданского законодательства, регулирующего отношения по использованию произведений науки, литературы и искусства. Авторское право было введено в России по просьбе вдовы А.С. Пушкина как право наследования сроком на 50 лет. Авторское право можно отнести к произведениям науки, литературы и искусства. Все это есть результаты творческой деятельности. В наше время к объектам авторского права чаще всего относят программы для ЭВМ, базы данных и топологии интегральных микросхем. Вопросы авторского права поднимаются и представляют интерес обычно тогда, когда объекты интеллектуальной собственности создаются или используются в нарушение норм авторского права. Чтобы получить авторские права никакой регистрации не требуется. Срок действия авторского права по законодательству составляет всю жизнь автора и еще 50 лет после его смерти. При нарушении авторских прав в результате судебных заключений обычно осуществляется возмещение ущерба право владельцу. Одна из ключевых особенностей правовой охраны программ для ЭВМ определяется с возможностью применить его как для авторского, так и для патентного права. Обычно стараются защитить структуру и концепцию программы от ее копирования, а также воспроизведения основных инструментов программы с целью продажи и копирования. Помимо того, некоторая часть программы может иметь вполне в себе конкретное техническое значение. Это может определить ее патентоспособность с учетом ее применения для решения технических задач или в комплексе с другими инструментами, которые дают в сам объект признаки отличия этого изобретения. В РФ охрана программ для ЭВМ обеспечена двумя актами: Специальные законы для ЭВМ и Баз Данных; Общий закон, который распространяется на авторское право. База данных - объективная форма представления и организации каких-то данных, построенных таким образом, чтобы к ним был доступ программы ЭВМ для обработки запросов на основе этих данных. Отношения, которые связаны с создание правовой охраны и использованием баз данных, регулируются Законом РФ “О правовой охране программ для ЭВМ и баз данных”. Любой желающий правообладатель может зарегистрировать базу данных и программу для ЭВМ, способом подачи в патентное ведомство. В боте проекта “Робот-Юрист” будет представлена экспертная система, которая будет определять суть проблемы и его решение. Экспертные системы Экспе́ртная систе́ма (ЭС, англ. expert system) — компьютерная система, которая способна частично заменить эксперта-специалиста в разрешении какой-либо проблемы. Современные экспертные системы начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х получили коммерческое поддержание. Предшественники экспертных систем были предложены в 1832 году С. Н. Корсаковым, который создал механические устройства, так называемые «интеллектуальные машины», которые позволяли находить решения по конкретно-заданным условиям, например, определять наиболее подходящие лекарства по наблюдаемым у пациента симптомам заболевания. В информационных технология экспертные системы рассматриваются вместе совместно с базами знания как модели поведения экспертов в выбранной области знаний, которые используют процедуры логического вывода и принятия решений, а базы знаний - как единая база фактов и правил логического вывода в определенной предметной области. База знаний ЭС создаётся при помощи трёх групп людей: Эксперты той проблемной области, к которой относятся задачи, решаемые ЭС (В нашем случае юристы); Инженеры по знаниям, являющиеся специалистами по разработке ИИС; Программисты, осуществляющие реализацию ЭС. пвыафп под собственной лицензией, несовместимой с GNU GPL. Python и Django фреймворки Хочется отметить, что основные принципы как в Ruby, PHP совпадают. Боты с людьми взаимодействуют на HTTP-запросах; для передачи данных используется JSON. Метод getUpdates возвращает список массив из объектов типа Update. Внутри Update находится объект Message. Для стандартного взаимодействия с ботом нас фактически интересует именно объект Message, у которого мы считываем атрибут text, хранящий в себе текст, переданный боту и объект chat, в котором лежит информация о пользователе, инициировавшем общение с нашим Telegram ботом. Также имеется параметр update_id, который служит в качестве offset параметра при вызове метода getUpdates. То есть update_id+1 вернёт все сообщения, поступившие после последнего update_id, при этом все предыдущие сообщения будут удалены. Установка библиотеки очень проста. Библиотека pyTelegramBotApi сам отвечает за все нюансы отправки и получения запросов, позволяет сосредоточиться конкретно на логике. Перед установкой и запуском нужно установить WebHook на нужный адрес и поймать выходной сигнал. Это способствует возвращению поведения с выгрузкой событий вручную. Вся логика будет находиться в классе tornado.web.RequestHandler, который редактор принимает для обработки запросов. После настройки, задаем пару стартовых команд для нашего бота, чтобы проверить его. Телеграмм присылает полностью все сообщение. Необходимость ставить перед командами “/” создано лишь для того, чтобы пользователям было удобно. Это позволяет научить программу отвечать по-человечески. Для того чтобы дать ей возможность получать в группах все сообщения, нужно написать /setprivacy помощнику @BotFather, отключая, таким образом, приватность. Далее в Handler нужно добавить обработчик, в список команд включить речь. Также отправленные сообщения могут быть не только текстовыми, к ним можно прикреплять медиафайлы. После реализации простейших команд мы получаем полноценный бот, который может отвечать на запросы готовыми командами. По сравнению с остальными языками Python показался для решения данной задачи наиболее удобным для меня. Так как в языке Python присутствует большой выбор библиотек, которые более для меня знакомы, и есть плюс в скорости написания. Если даже сравнить, как выглядит реализация на других языках, на языке Python более понятен синтаксис. Для Telegram бота я нашел все соответствующие модули и библиотеки, которые понадобятся мне в создании данного продукта. 2.3 Выбор технологий для использования Для проекта “Робот-Юрист” удобный интерфейс пользователя можно представить несколькими способами: 1. Веб-Приложение; 2. Мобильные приложения; 3. Telegram-бот. Для доступа только к экспертной системе Веб-приложение будет слишком затратным и неудобным для использования в декстопном виде. Для того, чтобы получить экспертную информацию, достаточно будет именить лишь одну страницу. Рассмотрим реализацию данной экспертной системы для мобильных приложений. Для того, чтобы реализовать данное решение в мобильной разработке, нужно владеть несколькими платформами, так как в настоящее время для каждой платформы есть своя операционная система, под которую каждой по отдельности нужно писать мобильное приложение. Также для реализации нам нужно будет написать интерфейс с 0. Создание кнопок, переходов, состояний достаточно затратная обработка информации и так далее. Также мобильная версия должна присутствовать на всех платформах, в том числе iOS, Android, windows Phone. У каждой операционной системы есть свой маркет, в котором нужно приобретать доступ за определенное количество денег, так называемыми сертификатами. Рассмотрим реализацию данной экспертной системы в качестве Бота для мессенджера Telegram. Боты в Telegram способны принять на себя роль экспертной системы лишь потому, что логика поведения совпадает. Благодаря Telegram боту мы можем подключиться к нему с разных платформ, на которых подключен сам мессенджер, а на данный момент это самые популярные платформы что заменяет нам необходимость реализовывать на всех мобильных устройствах, а также в декстопном варианте, что заменяет нам необходимость использования экспертной системой в Веб-Приложении. Одним лишь Telegram-ботом мы получаем доступ к экспертной системе почти со всех платформ, которые наиболее популярны. Более того, для реализации экспертной системы нам не понадобятся особые затраты в разработке, когда мы используем готовые библиотеки и модули. Благодаря команде разработчиков Telegram реализовала простой и отлично документированный API для возможности работы с ботами, привязка ко многим языкам программирования и популярным современным технологиям вышла достаточно быстро. Способов реализации бота на различных языках программирования достаточно. Изначально мы рассмотрели несколько вариантов реализации на разных языках программирования и определили наиболее подходящий для нас это язык Python. 3 Выбор соответствующих модулей и библиотек на языке Python 3.1 Библиотека time. В реализации нам понадобится библиотека time. Мне она пригодилась в бесконечном цикле, который держит бот в запущенном состоянии, обрабатывая возможные ошибки (Рис.3.1). Рис.3.1. 3.2 Библиотека fysom. Для реализации Детерминированного Конечного Автомата нам понадобиться библиотека Fysom. Fysom – это библиотека написанная на JavaScript, позднее переписанная на Python, которая представляет из себя реализацию ДКА, со всеми ограничениями способствующими поддержанию целостности ДКА. В этой переписанной библиотеке есть методы для создания состояний, а также есть возможность задавать условия переходов из одного состояния в другое. Для начала определим, что такое Конечные автоматы. Конечный автомат – это способ представления поведения объекта в виде последовательности его состояний, описывающие реакцию объекта на внешние события, выполнение объектом действий, и изменение его отдельных свойств. В один и тот же момент времени возможна только активность одного состояния. Выходит, что для реализации каких-то действий машина должна иметь свое состояние. Для реализаций конечного автомата нужно начинать с определения состояний и переходов между ними. Конечные автоматы можно описать в виде диаграмм состояний и таблиц переходов. Диаграмма переходов выглядят следующим образом (Рис.3.2.): Рис.3.2. Теперь опишем библиотеку Fysom, использующуюся для реализации данных, в виде конечного автомата для создания экспертных систем. Это библиотека для настраиваемых конечных автоматов. Библиотека представляют собой отличную концептуальную модель для решения многих проблем, с которыми сталкиваются разработчики: от условного интерфейса, мониторинга соединений и управления до инициализации и т.д. Они могут упростить запутанные пути асинхронного кода, их легко протестировать, и они по своей сути помогают избежать неожиданных ловушек краевого случая. Библиотека стремится предоставить нам все необходимые инструменты для моделирования конечных автоматов. Библиотека имеет в себе необходимые команды для моделирования конечных автоматов. 3.3 pyTelegramApi Библиотека для взаимодействия с Telegram ботом pyTelegramApi. Взаимодействие ботов с людьми основано на HTTP-запросах. Библиотека pyTelegramBotAPI, берет на себя все нюансы отправки и получения запросов, позволяя сконцентрироваться непосредственно на логике. РЕАЛИЗАЦИЯ ЭКСПЕРТНОЙ СИСТЕМЫ ДЛЯ БОТА Этапы разработки Подключение всех библиотек; Создание объекта ДКА (fysom); Инициализация ДКА (с состояниями и переходами) Создание Fysom, задаем начальное состояние, задаем переходы, назначаем методы для обработки каждого состояния; Создание объекта для связи с botApi, с передачей токена; В каждый метод обработки состояния мы говорим боту отправить сообщение в соответствии с состоянием(все тексты сообщений и кнопки храним в отдельном файле в каждом отдельном массиве); Создание обработчика нажатий пользователей на кнопки; Описание поведения ДКА в соответствии с callback data полученным от обработчика из пункта 6 (говорим в какое состояние перейти). |