270 likes | 466 Views
Пивоварчик О. В., Лазуркин Д. А., БГУИР, г. Минск. Системы программирования, ориентированные на обработку семантических сетей. Технология проектирования программ, ориентированных на обработку семантических сетей. Теория программирования
E N D
Пивоварчик О. В., Лазуркин Д. А., БГУИР, г. Минск Системы программирования, ориентированные на обработку семантических сетей
Технология проектирования программ, ориентированных на обработку семантических сетей • Теория программирования • Библиотека совместимых ip-компонентов для создания программ • Инструментальные средства, ориентированные на обработку семантических сетей • Методика проектирования программ, ориентированных на обработку семантических сетей • Методика обучения проектированию программ, ориентированных на обработку семантических сетей • Интеллектуальная help-система по технологии проектирования программ
Система программирования, ориентированная на обработку семантических сетей • библиотека ip-компонентов • инструментальное средство проектирования • интеллектуальная help-система по технологии проектирования программ
Базовый язык программирования, ориентированный на обработку семантических сетей В качестве базового языка программирования, предназначенного для эффективной интерпретации семантических сетей, используется язык SCP (SemanticCodeProcessing). SCP – это графовый процедурный язык программирования, ориентированный на переработку нечисловой информации. Особенности языка SCP: • ориентация на использование структурно перестраиваемой (графодинамической) ассоциативной памяти; • хорошая приспособленность к переработке нечисловых структур, в том числе представляющих сложные динамические базы знаний; • ориентация на переработку непосредственно семантических сетей, а не структур (например, списковых), с помощью которых семантические сети кодируются (язык SCP описывает переработку информации непосредственно на уровне семантического кодирования); • возможность реализации механизмов решения задач (логических операций, операций вывода), имеющих различный уровень сложности и поддерживающих различные стратегии решения задач; • возможность через содержимое sc-узла интегрировать процедуры над sc-конструкциями с программами, написанными на традиционных языках и описывающими переработку различных информационных структур. Это обеспечивается тем, что содержимым SC-узла может быть информационный объект любой природы; • высокий потенциал распараллеливания процессов переработки информации в графовой структурно перестраиваемой ассоциативной памяти. SCP является подъязыком базового графового языка SC (Semantic Code). Особенностью этого языка является то, что не только данные, но и сами программы, написанные на языке SCP, представляются в виде SC-конструкций.
SCP-программа • представляется в виде специальным образом устроенной sc-конструкции • хранится в sc-памяти • может входить в состав данных по отношению к другим scp-программам либо по отношению к самой себе
Заголовок scp-программы Множество параметров scp-программы (spar) – это упорядоченное множество программных переменных этой scp-программы. Это множество упорядочено атрибутами 1_, 2_, 3_ и т.д. Параметры, значения которых scp-программа получает из вызвавшей её программы, уточняются атрибутам in_. Параметры, значение которых scp-программа возвращает вызвавшей её программе, уточняется атрибутам out_. Возвращение значений параметров происходит при вызове return-операторов. Множество констант scp-программы (sconst) – это множество константных sc-элементов. Значением scp-константы является узел, обозначающий scp-константу. Множество программных переменных scp-программы (svar) – это множество переменных sc-элементов. Значением переменной scp-программы является sc-элемент, связанный бинарным ориентированным отношением с sc-узлом, обозначающим scp-переменную.
Разбиение scp-операторов по характеру передачи управления • SCP-операторы, при реализации которых осуществляется безусловная передача управления следующему реализуемому оператору; • SCP-операторы, при реализации которых осуществляется условная передача управления одному из двух операторов; • SCP-операторы, завершающие реализацию SCP-программ, т.е. операторы, при реализации которых не осуществляется передача управления одному из операторов этой же SCP-программы.
Разбиение scp-операторов по обозначаемому действию • scp-операторы генерации sc-конструкций • scp-операторы удаления sc-конструкций • scp-операторы ассоциативного поиска sc-конструкций • scp-операторы выборки • scp-операторы проверки условий • scp-операторы изменения свойств sc-элемента • scp-операторы управления scp-процессом • scp-операторы вывода на консоль
SCP-операторы могут перерабатыватьстрого фиксированные SC-конструкции следующих видов • sc-конструкция, состоящая из одного sc-элемента • sc-конструкция, состоящая из трех элементов (первый элемент такой конструкции является SC-узлом, тип которого может быть дополнительно уточнен с помощью атрибута const_,var_, meta_. Второй элемент - SC-дуга, тип которой может быть дополнительно уточнен с помощью атрибутов const_ , var_ , pos_ , neg_ , fuz_ . Третий элемент может быть sc-узлом, sc-дугой или sc-элементом неопределенного типа. Этот элемент может быть дополнительно уточнен с помощью атрибута node _ , arc_ , elem_ , а также с помощью атрибутов const_ , var_ , meta_,pos_ , neg_ , fuz_ • sc-конструкция, состоящая из пяти элементов. Первые три элемента - те же, что и в случае трехэлементной SC-конструкции. Четвертый элемент - SC-дуга, пятый - SC-узел. Все элементы могут быть уточнены с помощью соответствующих атрибутов
Инструментальное средство • Редактор scp-программ • Средство сборки репозитория базы знаний • SCP-интерпретатор • SCP-отладчик Основой инструментального средства является библиотека для моделирования sc-памяти.
Главное окно инструментального средствапроектирования scp-программ
SCP-интерпретатор • Служебные операции интерпретации scp-программ • Операции интерпретации scp-операторов • типа genEl • типа genElStr3 • типа genElStr5 • типа add • и других типов • Операции навигационно-поисковых запросов • Операции генерации по образцу
Возможности scp-отладчика • Работа с точками останова • Пошаговая трассировка • Пошаговая трассировка со входом в вызываемую программу • Отображение значений scp-переменных во время выполнения • Навигация по sc-памяти (использование навигационно-поисковых операций)
Точка останова opiи opj – знаки некоторых scp-операторов. С целью реализации функционала отладки scp-программ был введен тип scp-оператора breakpoint. brk – знак точки останова, установленной на scp-оператор opj.
Сообщения трассировки scp-процесса Следующие сообщения получает закрепленный за scp-процессом слушатель. • Шаг трассировки • Активировалась точка останова • Произошла ошибка в процессе интерпретации scp-программы • SCP-процесс породил дочерний scp-процесс • SCP-процесс завершился
Help-система Help-система представляет собой консультационную программную систему по технологии разработки программного обеспеченияна языке SCP
Help-система • справочная подсистема по технологии проектирования программ на языке SCP; • подсистема мониторинга и анализа деятельности разработчика программ; • подсистема управления обучением по проектированию программ.
Каждая подсистема включает • Базу знаний • Машину обработки знаний • Пользовательский интерфейс
Функции справочной подсистемы • интеллектуальный поиск запрашиваемой информации; • отображение информации: о языке представления знаний, о языке программирования с ориентацией на уровень подготовки разработчика программ, об инструментальном средстве разработки программ, о методике программирования; • генерация ответов на запросы пользователя, логический вывод на основании содержащейся информации в БЗ; • самообучение системы (на основании запросов пользователя система генерирует ответы и формирует новые знания); • анализ программных текстов пользователя и внесение предложений по улучшению их эффективности; • генерация программ по запросу пользователя.
БЗ справочной подсистемы включает • формальное описание языка программирования SCP, операционной семантики SCP • формальное описание языков представления знаний (SCg-язык, SC-ядро, SC-язык множеств, SC-язык отношений, SC-язык числовых систем, гипермедийный SC-язык, дидактический SC-язык, логический SC-язык) • формальное описание инструментальных средств проектирования программ • формальное описание библиотеки IP-компонентов • формальное описание методики проектирования программ: методики использования языка, инструментального средства, библиотеки ip-компонентов • формальное описание методики обучения проектированию программ • формальное описание самой help-системы
Операции машины обработки знаний • навигационно-поисковые операции • операции трансляции информационных конструкций, являющихся запросами пользователя, и представление их в виде семантически эквивалентных sc-конструкций; • операции, использующие логический вывод (например, вывод синтаксиса scp-оператора на основании утверждений, хранящихся в базе знаний); • операции проектирования scp-программ по постановке задачи пользователя или по постановке задачи, сгенерированной самой системой; • операции верификации, тестирования и оптимизации scp-программ; • анализ эффективности scp-программ.
Функции подсистемы анализа и мониторинга деятельности разработчика программ • определение общей информации о разработчике программ; • ведение постоянного мониторинга за действиями пользователя; • анализ действий пользователя; • определение уровня квалификации пользователя; • определение и анализ ошибок.
Функции подсистемы управления обучением разработчика программ • управление обучением разработчика программ в соответствии с определенной методикой обучения; • обеспечение помощи, соответствующей ситуации.
Использование help-системы позволит ускорить изучение языка программирования SCP ипозволит существенно сократить сроки разработки интеллектуальных систем.