Применение возможностей Python для автоматизации патентно-лицензионной работы | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Технические науки

Опубликовано в Молодой учёный №31 (165) август 2017 г.

Дата публикации: 03.08.2017

Статья просмотрена: 929 раз

Библиографическое описание:

Кучуков, В. А. Применение возможностей Python для автоматизации патентно-лицензионной работы / В. А. Кучуков. — Текст : непосредственный // Молодой ученый. — 2017. — № 31 (165). — С. 8-11. — URL: https://moluch.ru/archive/165/45298/ (дата обращения: 16.11.2024).



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

Ключевые слова: Python, PyQt5, python-docx, программа для ЭВМ, база данных

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

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

Для регистрации в Федеральном институте промышленной собственности необходимо заполнить ряд документов: заявление о государственной регистрации программы для ЭВМ или базы данных, дополнение к заявлению, согласие на обработку персональных данных, согласие на указание сведений об авторе и т.д. [2] В вузе, возможно, потребуется заполнить ряд других документов. При этом они являются юридически значимыми и требуют внимательного заполнения. Даже незначительные отличия в одних и тех же полях документов может привести к отзыву заявок. По данным годового отчета ФИПС за 2016 год, за последние 5 лет подано 66756 заявок на регистрацию программ для ЭВМ и 8914 заявок на регистрацию баз данных, из них зарегистрировано 64417 и 8186 заявок соответственно. Отсюда следует, что 3-8% заявок не проходят регистрацию, что является нежелательным ввиду частой срочной необходимости в данной регистрации и потери уплаченной пошлины.

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

В организациях, таких как вуз, количество регистрируемых результатов интеллектуальной деятельности может достигать десятков и даже сотен в год, поэтому встает вопрос автоматизации заполнения утвержденных форм документов, чтобы избежать ошибок заполнения. Средством для автоматизации был выбран язык программирования Python 3.5, а именно 32-битная версия, поскольку подключаемые в дальнейшем библиотеки требуют именно эту разрядность.

Графический интерфейс. По умолчанию работа в Python ведётся в интерпретаторе, что по существу является консольным приложением. Однако для большинства пользователей использование консоли является неприемлемым, и встает вопрос о разработке графического интерфейса. Для 32-битного Python 3.5 существует библиотека PyQt5, являющаяся расширением фреймворка Qt на язык Python, необходимая для создания графического интерфейса. Интерфейс программы представлен на рисунке 1.

Рис. 1. Интерфейс программы

Интерфейс был создан посредством подключения ряда модулей. Для создания элементов классических пользовательских интерфейсов был подключен модуль QtWidgets, в котором выбирались следующие классы: QApplication, QWidget, QGroupBox, QRadioButton, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QLineEdit, QSpinBox, QScrollArea, QDateEdit, QTextEdit, QComboBox, QMessageBox, QFileDialog, QProgressBar. Рассмотрим их применение. Класс QApplication использовался для создания объекта приложения и для взаимодействия с операционной системой, а именно для получения размеров рабочего стола. Класс QWidget является родителем разработанного класса, а также используется отдельно как контейнер для вложенных элементов. Класс QGroupBox позволяет объединить в группу элементы, например, переключатели QRadioButton, используемые в данной программе для выбора регистрируемого объекта.

Поскольку в программе с динамически изменяемым содержимым абсолютное позиционирование было бы неэффективным, для горизонтального и вертикального выравнивания элементов на форме были использованы соответственно классы QHBoxLayout и QVBoxLayout. Добавление в контейнеры виджетов и других контейнеров происходит с помощью методов addWidget() и addLayout(). Помимо стандартных меток QLabel, кнопок QPushButton, и однострочных надписей QLineEdit в программе использовалось поле ввода целых чисел QSpinBox, которое указывало количество авторов результата интеллектуальной деятельности. При изменении значения в экземпляре QSpinBox происходит вызов функции, которая перерисовывает блок ввода информации об авторах, помещенный в контейнер QScrollArea, предусматривающий возможность прокрутки. В зависимости от переданного значения количества авторов программа уменьшает или увеличивает количество полей ввода.

При вводе сведений об авторах следует упомянуть класс QDateEdit, позволяющий вызывать методом setCalendarPopup(True) календарь для получения даты и тип QDate из модуля QtCore. Объекты класса QDate позволяют получить как сегодняшнюю дату, так и хранить в удобной форме дату, полученную от элемента QDateEdit [3].

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

В целом разработка графического интерфейса с помощью инструмента PyQt5 довольно трудоемкий процесс. И хотя есть средство Qt Designer автоматизирующее разработку дизайна, но выходной файл имеет своё расширение, и файл необходимо целиком подгружать в свой проект, без возможности точной подстройки в коде. Данный файл можно конвертировать в код на языке python, но тогда все дальнейшие изменения придется вносить вручную уже в этом коде.

Экспорт документов. Описанная выше форма способна получить все необходимые данные, однако образцы документов для отправки в ФИПС имеют строгую и довольно сложную форму, которую трудно воссоздать программно, например, в Latex, поэтому возникла задача редактирования именно шаблонов документов ФИПС. Изначально данные шаблоны были представлены в устаревшем формате doc и для редактирования современными средствами были преобразованы в формат docx.

Для работы с документами в формате docx на python существует библиотека python-docx, способная создавать новые и редактировать существующие документы [4]. Функциональность данной библиотеки ограничена, в основном она способна добавлять абзацы, слова, таблицы, строки и столбцы таблиц, но не способна удалять их. Также существуют сложности с редактированием сложных объектов, таких как гиперссылки и флажки, которые присутствуют в формах на регистрацию результата интеллектуальной деятельности. За счет этого пришлось создать ряд шаблонов с уже отмеченными флажками.

Для открытия документов в данной библиотеке предусмотрен класс Document(). Если в скобках атрибуты не указаны, то создается новый документ, если указаны путь и имя в виде строки, то открывается существующий файл, например, "filename.docx".

Документ, с которым ведется работа, имеет несколько упрощенную структуру, а именно состоит из параграфов (paragraphs) и таблиц (tables), доступ к которым осуществляется по индексу. Параграфы состоят из элементов runs, содержащих отдельные слова и элементы. Если параграф задает общий стиль текста, такой как выравнивание, то для элементов runs доступны стилевые свойства, применяемые непосредственно к тексту, а именно различные виды начертания, курсив, подчеркивание и т.д. Каждая таблица имеет массив строк (rows), состоящих из ячеек (cells), таким образом для доступа к первой ячейке первой строки первой таблицы необходимо ввести NameDocx.tables[0].rows[0].cells[0].text. Текст в каждой ячейке состоит из параграфов, взаимодействие с которыми аналогично взаимодействию с параграфами вне таблиц.

Доступ к элементам текста возможет при использовании циклов, например, чтобы вывести содержимое всех параграфов документа NameDocx, необходимо написать следующий цикл:

for paragraph in NameDocx.paragraphs:

for cell in paragraph.cells:

print(cell.text)

Сохранение отредактированного документа возможно с помощью метода save():

NameDocx.save(“New_doc.docx”)

Заключение: Таким образом, применение python и подключенных модулей позволило автоматизировать заполнение документов заявки на регистрацию программы для ЭВМ или базы данных. Однако для использования данной программы на компьютере пользователя должен быть установлен сам Python и модули PyQt5 и python-docx. Существуют модули, например, cx_Freeze, способные создать из кода на языке python исполняемый exe файл, однако данный модуль некорректно работает с модулем python-docx и решить проблему переноса программы на другие компьютеры на данном этапе работы пока не удалось. Однако достигнутые результаты позволяют на 80% сократить время заполнения документов и избежать формальных ошибок.

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

Литература:

1. Кузнецова Л. А. Рынок интеллектуальной собственности и его развитие в России: автореф. дис. на соиск. учен. степ. канд. эконом. наук: – Воронеж.–2013.–23 с.

2. Кучуков В.А. Особенности оформления документов для государственной регистрации программ для ЭВМ и баз данных // Молодой ученый. — 2016. — №16. — С. 254-256.

3. Python 3 и PyQt 5. Разработка приложений / Н. А. Прохоренок, В. А. Дронов. — СПб.: БХВ-Петербург, 2016. — 832 с

4. Sweigart A. Automate the Boring Stuff with Python: Practical Programming for Total Beginners. – No Starch Press, 2015.

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


Ключевые слова

база данных, программа для ЭВМ, python, PyQt5, python-docx

Похожие статьи

Перспективы развития адаптации AutoCAD с помощью Clojure

Рассмотрены современные способы автоматизации камеральных изыскательских работ на примере адаптации САПР AutoCAD с помощью функционального языка программирования Clojure.

Создание и заполнение базы данных «Студенты»

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

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

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

Проектирование информационной системы интернет-магазина

В данной работе представлены этапы и методы разработки информационной системы интернет-магазина. Определены функциональные требования к информационной системе и разработаны модели на языке моделирования UML, которые в дальнейшем будут использованы дл...

Интересные возможности программы Excel

В данной работе рассмотрены базовые принципы работы с программой Microsoft Excel. Исследуется применение возможностей программы Microsoft Excel для создания электронных таблиц, диаграмм и программных макросов в практических задачах.

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

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

Оценка возможности использования среды разработки программного обеспечения GitLab в задачах управления проектами

В статье рассматриваются инструменты управления проектами и преимущества интеграции Jira и GitLab для команд разработчиков программного обеспечения.

Формирование функциональных требований для форума начинающих программистов

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

Интеграция различных приложений с платформой 1С:Предприятие по протоколу OData

В статье рассмотрены различные способы интеграции сторонних программ с платформой 1С:Предприятие, выявлены достоинства и недостатки данных подходов, обосновано преимущество протокола OData перед остальными способами интеграции.

Основные функция веб-приложения с учетом анализа современных CMS-систем

В работе проведен анализ современных коммерческих и свободно распространяемых CMS-систем, описана структура разработанного веб-приложения на основе фреймворка Zend Framework и его база данных.

Похожие статьи

Перспективы развития адаптации AutoCAD с помощью Clojure

Рассмотрены современные способы автоматизации камеральных изыскательских работ на примере адаптации САПР AutoCAD с помощью функционального языка программирования Clojure.

Создание и заполнение базы данных «Студенты»

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

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

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

Проектирование информационной системы интернет-магазина

В данной работе представлены этапы и методы разработки информационной системы интернет-магазина. Определены функциональные требования к информационной системе и разработаны модели на языке моделирования UML, которые в дальнейшем будут использованы дл...

Интересные возможности программы Excel

В данной работе рассмотрены базовые принципы работы с программой Microsoft Excel. Исследуется применение возможностей программы Microsoft Excel для создания электронных таблиц, диаграмм и программных макросов в практических задачах.

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

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

Оценка возможности использования среды разработки программного обеспечения GitLab в задачах управления проектами

В статье рассматриваются инструменты управления проектами и преимущества интеграции Jira и GitLab для команд разработчиков программного обеспечения.

Формирование функциональных требований для форума начинающих программистов

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

Интеграция различных приложений с платформой 1С:Предприятие по протоколу OData

В статье рассмотрены различные способы интеграции сторонних программ с платформой 1С:Предприятие, выявлены достоинства и недостатки данных подходов, обосновано преимущество протокола OData перед остальными способами интеграции.

Основные функция веб-приложения с учетом анализа современных CMS-систем

В работе проведен анализ современных коммерческих и свободно распространяемых CMS-систем, описана структура разработанного веб-приложения на основе фреймворка Zend Framework и его база данных.

Задать вопрос