Разработки интеллектуальной справочной системы по музыкальным произведениям
Технико-экономическое обоснование разработки интеллектуальной справочной системы по музыкальным произведениям. Задачно-ориентированная спецификация, онтология и содержательная декомпозиция базы знаний проектируемой справочной интеллектуальной системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 04.12.2010 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
123
123
Разработки интеллектуальной справочной системы по музыкальным произведениям
ОГЛАВЛЕНИЕ
Перечень условных обозначений
Введение
1. Технико-экономическое обоснование проектируемой интеллектуальной системы
1.1 Актуальность разработки интеллектуальной справочной системы по музыкальным произведениям
1.2 Категории пользователей системы
1.2.1 Меломан
1.2.2 Начинающий слушатель
1.2.3 Владелец музыкального магазина или интернет-магазина
1.2.4 Исполнитель
1.3 Анализ аналогичных систем
1.3.1 All Music Guide
1.3.2 MusicBrainz!
1.3.3 Музыкальный словарь Гроува
1.3.4 Сравнение аналогичных систем с интеллектуальным справочником по музыкальным произведениям
2. База знаний проектируемой интеллектуальной системы
2.1 Задачно-ориентированная спецификация базы знаний проектируемой интеллектуальной системы
2.1.1 Тестовый сборник вопросов
2.1.2 Список используемых в базе знаний проектируемой интеллектуальной справочной системы ip-компонентов
2.2 Онтология базы знаний проектируемой интеллектуальной системы
2.3 Содержательная декомпозиция базы знаний проектируемой интеллектуальной системы
2.4 Исходные тексты базы знаний прототипа интеллектуальной системы
2.5 Верификация и отладка базы знаний прототипа интеллектуальной системы
2.6 Спецификация разработанной базы знаний интеллектуальной системы и сертификация разработанных ip-компоненто
3. Машина обработки знаний проектируемой интеллектуальной справочной системы
3.1 Задачно-ориентированная спецификация машины обработки знаний проектируемой интеллектуальной справочной системы
3.1.1 Тестовый список задач
3.1.2 Содержательная классификация задач
3.1.3 Список используемых в операциях ip-компонентов
3.1.4 Классификация и спецификация операций проектируемой машины обработки знаний
3.1.5 Декомпозиция операций на подпрограммы и содержательная структура библиотеки программ специфицированных операций
3.2 Алгоритмы и исходные тексты программ, реализующие операции машины обработки знаний прототипа интеллектуальной справочной системы
3.3 Верификация и отладка программ специфицированных операций
3.4 Спецификация разработанных операций и библиотеки программ, сертификация разработанных ip-компонентов
4. Пользовательский интерфейс проектируемой интеллектуальной справочной системы
4.1 Задачно-ориентированная спецификация пользовательского интерфейса проектируемой интеллектуальной системы
4.1.1 Декомпозиция пользовательского интерфейса
4.1.2 Список используемых ip-компонентов пользовательского интерфейса
4.2 Проектирование интерфейсных подсистем
4.3 Верификация и отладка пользовательского интерфейса
4.4 Спецификация разработанного пользовательского интерфейса, сертификация разработанных ip-компонентов
5. Интеграция разработанной системы с другими системами
6. Направления дальнейшего развития прототипа интеллектуальной справочной системы и пути промышленного изготовления спроектированной интеллектуальной системы
7. Вклад в развитие семантических технологий проектирования интеллектуальных систем
7.1 Список выявленных ошибок среды проектирования интеллектуальных систем
7.2 Список предложений по совершенствованию среды проектирования интеллектуальных систем
7.3 Список предложений по совершенствованию семантических технологий проектирования интеллектуальных систем
7.4 Создание и использование ip-компонентов
Библиографический указатель
Перечень условных обозначений
МП - музыкальные произведения
БЗ - база знаний
ИСС - интеллектуальная справочная система
МОЗ - машина обработки знаний
ПИ - пользовательский интерфейс
Введение
Независимо от рода деятельности, возраста и пола, любому из нас приходилось сталкиваться с таким понятием как музыка. И если раньше это было мало распространенным, доступным для узкого круга людей, то в наши дни трудно встретить человека, который никогда не слышал «волшебных» звуков музыки. В наши дни можно говорить о целой музыкальной индустрии, людей и средств, в которой задействовано не меньше, чем в автомобилестроении или разработке IT-технологий. Одни зарабатывают на этом деньги: устраивая звукозаписывающие лейблы и студии, предоставляя свои услуги по записи, продюсированию исполнителей; открывают обычные и интернет-магазины, где успешно и не очень занимаются продажей уже готовой продукции (кассеты, компакт-диски, DVD-диски, и даже, для особых «гурманов», виниловые пластинки с композициями различных жанров и направлений). У других музыка - это способ самовыражения: поиск сподвижников, создание группы, а возможно выступление соло, написание текста и сочинение музыки, затем запись на студии, организация концертов. Третьи выступают в роли потребителей: скупают компакт-диски с альбомами любимых групп и исполнителей, посещают концерты, чтобы вживую услышать кумиров. Не стоит забывать и про тех, для кого музыка это просто приятный фон дома, на работе или в авто, который помогает скрасить серые будни мегаполисов.
Хочу обратить внимание на термины: звукозаписывающие лейблы, компакт-диски, виниловые пластинки, группы, направление, жанры и т.д. и т.п.. И если с пониманием что это и для чего оно нужно помогут справиться какая-нибудь музыкальная энциклопедия или вездесущий Google. То, что делать и у кого просить помощи, когда любимая композиция после н-ного раза прослушивания перестает нравиться, а домашняя коллекция прослушана и переслушана вдоль и поперек. Да, песен и исполнителей в мире много. Есть маленькое «но» - их слишком много! Так в электронной версии «Музыкального словаря Гроува» содержится 27000 композиций поп-музыки или более 50 дней непрерывного прослушивания (если допустить, что средняя продолжительность композиции около 3 минут). А ведь жанров и направлений не меньше сотни! Так и целой жизни будет мало, чтобы переслушать все, что сочинил музыкальный гений человека, и выбрать именно то, что подходит по вкусу.
Можно выделить несколько аспектов проблемы выбора и поиска музыкальных произведений:
- большой объем неструктурированной информации, хранящейся в различных местах;
- трудность формализации, а порой и отсутствие, правил описания и оценки музыкальных произведений;
- формулирование запроса для поиска композиции. Как говорил известный герой не менее известного фильма: «А ну, сочини для меня что-нибудь такое, чтоб душа сначала развернулась, а потом обратно завернулась».
Такие тяжеловесы как Microsoft Corp. и Yahoo Inc. тратят миллиарды долларов, пытаясь отобрать у Google хотя бы небольшой сегмент рынка интернет-поиска. Но параллельно этому, растущие нишевые поисковые системы переосмысляют способ поиска информации, разрабатывая инструменты, которые тщательно ищут истинный смысл слов на веб-страницах вместо того, чтобы просто предоставить список сайтов с совпадающими ключевыми словами, эти претенденты надеются создать сервисы, которые помогут пользователям быстрее находить то, что те ищут. Потребители хотят находить информацию быстрее, и они ищут инструменты, которые помогли бы им сделать это. Такие поисковые системы используют семантическую науку, изучающую смысл слов, чтобы производить более релевантный поиск. Дело в том, что уровень контекста позволяет семантическим поисковым системам представлять информацию в соответствии с тем, как обычно думают люди. Семантический поиск представляет интерес, как для частных предпринимателей, так и для крупных компаний. Ключ к успеху семантического поиска в том, чтобы выдать результаты в контексте. Это сложно, так как объём информации всё возрастает. Причина, по которой люди хотят разрабатывать семантические поисковые системы, в том, что это лучший способ нахождения информации. Учитывая, что объём контента растёт всё быстрее, поисковые системы должны быть более эффективны и работать по образцу того, как думают люди. Подобные инструменты поиска показывают связи между различными документами и сайтами, основываясь не на ссылках, а на информации, содержащейся на страницах с помощью технологии под названием «графики семантических кластеров». Она отображает результаты в виде, который напоминает паучью паутину.
Одним из примеров интеллектуальных «помощников» является Семантическая Справочная Система (SRS), на базе которой была построена справочная система по музыкальным произведениям. SRS состоит из трех компонентов:
База знаний (БЗ),
Машина обработки знаний,
Пользовательский интерфейс.
Уточним задачи компонентов:
База знаний необходима для хранения знаний о предметной области в системе.
Машина обработки знаний необходима для осуществления поиска, навигации и обработки знаний.
Пользовательский интерфейс необходим для осуществления взаимодействия пользователя с системой.
Наполнение базы знаний новыми знаниями значительно улучшит прикладную интеллектуальную систему. Пользователь сможет получить более подробную и более полную информацию о данной предметной области.
Разработка машины обработки знаний переведет прикладную систему на качественно новый уровень - уровень интеллектуального решателя задач предметной области.
В результате разработки пользовательского интерфейса появятся новые возможности, связанные с поиском по базе знаний, редактированием базы, что облегчит пользователям работу с прикладной интеллектуальной системой.
Целью работы является разработка проекта интеллектуальной справочной системы.
Задачи курсового проекта:
· технико-экономическое обоснование проектируемой интеллектуальной справочной системы;
· разработка базы знаний проектируемой интеллектуальной справочной системы;
· разработка машины обработки знаний проектируемой интеллектуальной справочной системы;
· разработка пользовательского интерфейса интеллектуальной справочной системы;
· реализация прототипа интеллектуальной справочной системы.
1. Технико-экономическое обоснование проектируемой интеллектуальной системы
1.1 Актуальность разработки интеллектуальной справочной системы по музыкальным произведениям
Людям, которые желают приобрести музыкальный компакт-диск или скачать композицию из Интернета, не всегда удается затратить на это минимум своего свободного времени и средств и добиться при этом максимальной результативности. Информации содержащейся в буклете компакт-диска или полученной от продавца чаще всего недостаточно для осознанного выбора. Данная интеллектуальная справочная система предназначена для того чтобы облегчить процесс выбора для некомпетентного потребителя музыкальной индустрии.
Перечислим наиболее распространенные вопросы, интересующие людей в отношении музыкальных произведений:
Общие вопросы:
Какие музыкальные жанры существуют?
На каких носителях можно приобрести муз.произведения?
Какие типы музыкальных коллективов бывают?
и т.д.
Вопросы для конкретного произведения:
Кто автор текста, музыки?
Кто исполнитель?
В какой альбом входит?
В каком году издано?
и т.д.
Для нескольких произведений, альбомов, исполнителей:
Что общего между этими альбомами?
и т.д.
Поиск музыкальных произведений:
Поиск по описанию текста, музыки.
Поиск по году издания, жанру, рейтингу в чартах.
Поиск по исполнителю, альбому.
Поиск автора и названия по фрагменту композиции.
Разрабатываемая интеллектуальная система ответит на подобные вопросы пользователя. Дополненная база знаний позволит осуществить расширенный и углубленный поиск. Удобный интерфейс позволит интуитивно и просто найти все интересующие пользователя сведения. Именно поэтому разработка справочника является актуальной и востребованной.
1.2 Категории пользователей системы
Разрабатываемая интеллектуальная справочная система имеет обширную базу знаний и множество функциональных возможностей. Вследствие этого она поддерживает работу широкого круга пользователей. Можно выделить следующие категории пользователей:
· меломан
· начинающий слушатель
· владелец музыкального магазина или интернет-магазина
· исполнитель
Далее приведены портреты пользователей системы.
1.2.1 Меломан
Портрет:
В данную категорию пользователей попадают люди, хорошо владеющие предметной областью. Они знают историю музыки, ориентируются в жанрах и направлениях. Могут четко сформулировать поисковый запрос, определенно знают, что ищут. Они имеют возможность добавить новые знания, отредактировать или уточнить уже имеющиеся.
Функциональные возможности:
· добавление и удаление видеоклипов
· добавление и удаление аудиоматериала
· редактирование имеющихся знаний
· просмотр знаний содержащихся в БЗ
· поиск композиций по ключевым словам, по четким критериям
Цели:
· пополнение своих знаний
· поиск музыкальных произведений
· заимствование своего опыта для менее «продвинутых» пользователей
1.2.2 Начинающий слушатель
Портрет:
В данную категорию пользователей входят люди, которые желают найти для себя новую музыку, но возможно схожую с той, что ранее они слушали. Желающие познакомиться ближе с миром музыки, разобраться в ее жанрах и направлениях, открыть для себя новых исполнителей и группы. Начинающий слушатель не может четко сформулировать поисковый запрос, поэтому для него разработаны специальные возможности поиска.
Функциональные возможности:
· просмотр знаний содержащихся в БЗ
· просмотр видеоклипов
· прослушивание музыкальных композиций
· поиск исполнителя по фрагменту музыкального произведения
· поиск композиций по ключевым словам в описании
· поиск композиций по эмоциональной окраске музыки и текста
· поиск композиций по жанрам
· поиск композиций с помощью временной ленты
· получение ответа на нетривиальные вопросы о музыкальных произведениях
Цели:
· получение базовых знаний в предметной области
· помощь в ориентировании по музыкальным произведениям
· поиск музыкальных произведений по различным признакам
1.2.3 Владелец музыкального магазина или интернет-магазина
Портрет:
В данную категорию пользователей входят люди занимающиеся продажей носителей информации с музыкальными произведениями, клипами, записями концертов и выступлений. Для них главное структурировать информацию о продукции, для облегчения дальнейшей работы. Предоставление информации по имеющемуся ассортименту конечным потребителям.
Функциональные возможности:
· просмотр информации об исполнителях, альбомах и композициях
· добавление информации о новых исполнителях, альбомах, композициях
· поиск музыкальных произведений
Цели:
· пополнение базы знаний новой информацией об исполнителях, альбомах и композициях
· предоставлении информации конечному потребителю
1.2.4 Исполнитель
Портрет:
В данную категорию пользователей входят люди, занимающиеся творческим процессом: написанием музыки, текстов - созданием новых музыкальных произведений. Для них будет интересно просмотреть готовые композиции, чтобы ориентироваться в современной музыке.
Функциональные возможности:
· поиск музыкальных произведений
· сравнение музыкальных произведений
Цели:
· ориентирование в современной музыкальной индустрии
1.3 Анализ аналогичных систем
1.3.1 All Music Guide
Крупная онлайновая музыкальная база данных, принадлежащая организации All Media Guide. Данный продукт является энциклопедией с удобным графическим интерфейсом и поиском по ключевым словам, названиям произведений, альбомов, исполнителей, содержит хорошо проработанную БД с большим количеством информации. Язык интерфейса английский.
1.3.2 MusicBrainz!
Проект создания открытой музыкальной энциклопедии. MusicBrainz хранит сведения о музыке, которая когда-либо была записана, а не саму музыку. Все основные данные, хранимые в MusicBrainz (зафиксированные данные об исполнителях, альбомах, треках и т.п.) считаются общественным достоянием, а дополнительные сведения, такие, как данные о модерациях, распространяются под лицензией Creative Commons non-commercial share-and-share-alike. Язык интерфейса английский.
1.3.3 Музыкальный словарь Гроува
Британское справочное издание, посвящённое академической музыке. Под редакцией Лоры Мейси работает постоянно обновляемая и пополняемая сетевая версия словаря. Годовая подписка на пользование ею составляет 300 долларов. Права на издание и онлайн-версию с 2004 г. принадлежат издательству Оксфордского университета, вследствие чего сайт из Grove Music Online был переименован в Oxford Music Online. Включает в себя более 50000 статей и 28000 биографий, внесенных более чем 6000 ученых со всего мира. Язык интерфейса английский.
1.3.4 Сравнение аналогичных систем с интеллектуальным справочником по музыкальным произведениям
В аналогичных системах не предусмотрен диалог пользователя и системы, то есть, нет возможности задать справочникам вопросы. В отличие от них в интеллектуальной справочной системе по музыкальным произведениям такая возможность есть. Возможность диалога с системой отображает ее интеллектуальные способности в полной мере. Она способно ответить на все многообразие вопросов, которые могут возникнуть у пользователя в процессе поиска композиции, альбома или исполнителя.
Так же можно сказать о том, что у интеллектуальной справочной системе довольно простой интерфейс. Пользователь сможет быстро разобраться с методами получения необходимой ему информации.
2. База знаний проектируемой интеллектуальной системы
2.1 Задачно-ориентированная спецификация базы знаний проектируемой интеллектуальной системы
2.1.1 Тестовый сборник вопросов
Описание тестовых вопросов:
Все известные исполнители.
Фотография конкретного исполнителя.
Альбомы выбранного исполнителя.
Изображение обложки альбома.
Сравнение двух альбомов по их характеристикам.
Композиции входящие в выбранный альбом.
Прослушивание композиции.
Просмотр видеоклипа на выбранную композицю.
Поиск альбома по его характеристикам.
Поиск композиции по ее характеристикам.
Описание музыкального жанра.
Виды носителей.
Авторы текста и композиторы.
Перечень демонстрационных вопросов:
Получение всех исполнителей БЗ.
Описание основных характеристик исполнителя.
Просмотр фотографии исполнителя.
Альбомы выбранного исполнителя.
Просмотр обложки альбома.
Описание основных характеристик альбома.
Композиции входящие в данный альбом.
Описание основных характеристик композиции.
Поиск композиций по рейтингу.
2.1.2 Список используемых в базе знаний проектируемой интеллектуальной справочной системы ip-компонентов
В данной интеллектуальной справочной системе использованы исходные разделы база знаний help-системы:
ИсхБз. SC-ядро
ИсхБз. SCg-язык
ИсхБз. SС-язык множеств
ИсхБз. SС-язык отношений
ИсхБз. SС-язык числовых систем
ИсхБз. Логический SС-язык
ИсхБз. Гипермедийный SС-язык
ИсхБз. Дидактический SС-язык
ИсхБз. SС-язык описания ошибок
ИсхБз. Пользовательский интерфейс SRS
Включение этого компонента в проектируемую систему позволяет уменьшить сроки разработки, так как нет необходимости повторного проектирования данных фрагментов.
2.2 Онтология базы знаний проектируемой интеллектуальной системы
Бинарные отношения:
«альбом*» - бинарное отношение между исполнителем и его альбомами.
«композиция*» - бинарное отношение между альбомом и композициями в него входящими.
«описание*» - бинарное отношение между объектом и параметрами, его характеризующими.
«страна*» - бинарное отношение между исполнителем и страной исполнителя.
«год*» - бинарное отношение между исполнителем и годом его основания.
«вид*» - бинарное отношение между исполнителем и его видом (группа, соло и т.д.).
«обложка*» - бинарное отношение между альбомом и его обложкой.
«год выпуска*» - бинарное отношение между альбомом и годом его выпуска.
«носитель*» - бинарное отношение между альбомом и носителем, на котором он был издан.
«тип записи*» - бинарное отношение между альбомом и типом его записи.
«объем*» - бинарное отношение между альбомом и его объемом.
«награды*» - бинарное отношение между альбомом и его наградами.
«музыка*» - бинарное отношение между композицией и его музыкой.
«текст*» - бинарное отношение между композицией и его текстом.
«время*» - бинарное отношение между композицией и его продолжительностью.
«место в чарте*» - бинарное отношение между композицией и местом в чарте.
«лейбл*» - бинарное отношение между композицией и лейблом звукозаписи.
«композитор*» - бинарное отношение между музыкой композиции и его композитором.
«автор*» - бинарное отношение между текстом композиции и его автором.
«тема*» - бинарное отношение между текстом композиции и его темой.
Всего: 20 бинарных отношений.
«Исполнители» - группа всех исполнителей.
«Альбомы» - группа всех альбомов.
«Композиции» - группа всех композиций.
«Носители» - группа всех носителей.
«Композиторы»» - группа всех композиторов музыки.
«Авторы» - группа всех авторов текста.
Всего: 6 узлов групп.
2.3 Содержательная декомпозиция базы знаний проектируемой интеллектуальной системы
Базу знаний можно поделить на фрагменты, в которых дается описание исполнителей, альбомов, МП и отношений между ними.
Так при описании исполнителя представлены следующие характеристики: страна*, год основания*, вид*. Пример описания одного из исполнителей представлен на рисунке 2.3.1.
Рисунок 2.3.1. - Описание исполнителя
При описании альбома в качестве его характеристик представлены: обложка альбома*, год выпуска*, носитель*, тип записи*, объем*, награды*. Пример описания альбома представлен на рисунке 2.3.2.
Рисунок 2.3.2. - Описание альбома
Пример описания МП представлен на рисунке 2.3.3.
Рисунок 2.3.3. - Описание МП
Пример описания структуры отношений представлен на рисунке 2.3.4.
Рисунок 2.3.4. - Описание структуры отношений
2.4 Исходные тексты базы знаний прототипа интеллектуальной системы
Исходные тексты базы знаний прототипа интеллектуальной системы хранятся в следующих файлах:
8diagrams_album.gwf
bringdaruckus_track.gwf
clapyohands_track.gwf
enterthewutang_album.gwf
familytree_track.gwf
iicons_album.gwf
intro.gwf
naughtybynature_artist.gwf
naughtybynature_struct.gwf
oldergods_track.gwf
povetry`sparadise_album.gwf
protectyaneck_track.gwf
shameonanigga_track.gwf
whatyouwannado_track.gwf
wutangclan_artist.gwf
wutangclan_struct.gwf
wutangforever_album.gwf
elmanana_track.gwf
feelgoodinc_track.gwf
ogreenworld_track.gwf
kidswithguns_track.gwf
lastlivingsouls_track.gwf
intro_track.gwf
demondays_album.gwf
gorillaz_struct.gwf
rockthehouse_track.gwf
doublebass_track.gwf
soundcheck_track.gwf
punk_track.gwf
manresearch_track.gwf
clinteastwood_track.gwf
newgenius_track.gwf
tomorrowcomestoday_track.gwf
54_track.gwf
re-hash_track.gwf
gorillaz_album.gwf
gorillaz_artist.gwf
Пример содержания этих файлов можно увидеть на рисунках 2.3.1, 2.3.2, 2.3.3, 2.3.4.
2.5 Верификация и отладка базы знаний прототипа интеллектуальной системы
Верификация базы знаний в текущей версии интеллектуальной справочной системы по МП не производилась, так как в предыдущей версии системы база знаний была грамотно организована. База была дополнена новыми исполнителями, альбомами и композициями. Дополнение и проверка производилась с помощью SRS Studio.
2.6 Спецификация разработанной базы знаний интеллектуальной системы и сертификация разработанных ip-компонентов
В базе знаний на данный момент содержится 3 исполнителя, 7 альбомов и более 20 композиций.
В качестве ip-компонентов могут быть использованы:
Определения понятий (МП, альбом, исполнитель, жанр и т.д.).
Музыкальные композиции.
Видеоклипы к музыкальным произведениям.
3. Машина обработки знаний проектируемой интеллектуальной справочной системы
3.1 Задачно-ориентированная спецификация машины обработки знаний проектируемой интеллектуальной справочной системы
3.1.1 Тестовый список задач
Под предметными задачами будем понимать все задачи, специфичные для данной предметной области:
· поиск исполнителей по описанию
· поиск информации об исполнителях
· поиск альбомов по описанию
· поиск информации об альбомах
· поиск МП по описанию
· сравнение альбомов
3.1.2 Содержательная классификация задач
Множество предметных задач с точки зрения методов их решения можно разбить на два класса:
· информационно-поисковые задачи, ответы на которые присутствуют в базе знаний решателя предметных задач и, следовательно, их надо только найти;
· задачи, ответы на которые требуется построить.
Среди информационно-поисковых задач можно выделить задачи, в которых цель поиска может быть точно описана «шаблоном» поиска, т.е. результатом решения задачи будут все фрагменты семантической сети базы знаний, удовлетворяющие этому шаблону. Примерами таких задач является
· поиск информации о МП;
· поиск информации об альбоме;
· поиск информации об исполнителе.
Другим классом информационно-поисковых задач являются задачи, результат решения которых не описывается шаблоном, а осуществляется с помощью scp-программы. Примерами таких задач являются:
· сравнение альбомов;
· поиск альбомов по нескольким характеристикам;
· поиск МП по нескольким характеристикам.
3.1.3 Список используемых в операциях ip-компонентов
В данной интеллектуально справочной системе были использованы следующие операции, являющиеся Ip-компонентами, и предоставленные вместе со средой разработки интеллектуальных справочных систем:
all_input
all_output_all_types
analogy
example
graph
lib
logic_queries
logical_hierarhy
paramsProcessing
printSetArcs
printSetElems
main_close
main_open
open
pack_menu
peresechenie
reduce_menu
remove_menu_item
searchEnvironmentSmart
searchPatternEx
synonym_by_node
synonym_by_node_ui
synonym_by_term_ui
tests
ui_io_build_srs
ui_io_copy_scg
ui_io_erase_scg_countur
ui_io_erase_scg_el
ui_io_exec_command
ui_io_gen_srswindow
ui_io_increase
ui_io_load_folder
ui_io_load_scg
ui_io_modify_scg_el_content
ui_io_modify_scg_el_name
ui_io_modify_scg_el_type
ui_io_paste_scg
ui_io_reduction
ui_io_save_scg
ui_io_select_all
ui_registration_type_wnd
ui_show_content
ui_show_content_swf
ui_unregistration_type_wnd
update_menu
ways
whatisknown
3.1.4 Классификация и спецификация операций проектируемой машины обработки знаний
1. Классификация операции all_performers.m4scp.
Название операции: all_performer.
Предметная ориентация: МП.
Входные параметры: нет.
Выходные параметры: все известные исполнители.
Способ вызова: автоматически, при создании окна пользовательского интерфейса.
Спецификация операции all_performers.m4scp.
Идентификатор операции: descr_all_performer.
Полное имя: \operation\ all_performers.m4scp.
Комментарий: операция поиска в БЗ всех известных исполнителей.
Автор: Лукша Н.В.
2. Классификация операции all_albums_this_performer.m4scp.
Название операции: all_albums_this_performer.
Предметная ориентация: МП.
Входные параметры: узел с именем исполнителя.
Выходные параметры: все альбомы данного исполнителя.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции all_albums_this_performer.m4scp.
Идентификатор операции: descr_all_albums_this_performer.
Полное имя: \operation\all_albums_this_performer.m4scp.
Комментарий: операция поиска в БЗ всех альбомов данного исполнителя.
Автор: Лукша Н.В.
3. Классификация операции all_tracks_this_album.m4scp.
Название операции: all_tracks_this_album.
Предметная ориентация: МП.
Входные параметры: узел с именем альбома.
Выходные параметры: все МП данного альбома.
Способ вызова: при выборе альбома из ListBox.
Спецификация операции all_tracks_this_album.m4scp.
Идентификатор операции: descr_all_tracks_this_album.
Полное имя: \operation\all_tracks_this_album.m4scp.
Комментарий: операция поиска в БЗ всех МП из данного альбома.
Автор: Лукша Н.В.
4. Классификация операции country_of_performer.m4scp.
Название операции: country_of_performer.
Предметная ориентация: МП.
Входные параметры: узел с именем исполнителя.
Выходные параметры: страна данного исполнителя.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции country_of_performer.m4scp.
Идентификатор операции: descr_country_of_performer.
Полное имя: \operation\country_of_performer.m4scp.
Комментарий: операция поиска в БЗ страны данного исполнителя.
Автор: Лукша Н.В.
5. Классификация операции kind_of_performer.m4scp.
Название операции: kind_of_performer.
Предметная ориентация: МП.
Входные параметры: узел с именем исполнителя.
Выходные параметры: вид данного исполнителя.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции kind_of_performer.m4scp.
Идентификатор операции: descr_kind_of_performer.
Полное имя: \operation\kind_of_performer.m4scp.
Комментарий: операция поиска в БЗ вида данного исполнителя.
Автор: Лукша Н.В.
6. Классификация операции year_of_foundation.m4scp.
Название операции: year_of_foundation.
Предметная ориентация: МП.
Входные параметры: узел с именем исполнителя.
Выходные параметры: год основания данного исполнителя.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции year_of_foundation.m4scp.
Идентификатор операции: descr_year_of_foundation.
Полное имя: \operation\year_of_foundation.m4scp.
Комментарий: операция поиска в БЗ года основания данного исполнителя.
Автор: Лукша Н.В.
7. Классификация операции type_rec.m4scp.
Название операции: type_rec.
Предметная ориентация: МП.
Входные параметры: узел с именем альбома.
Выходные параметры: тип записи данного альбома.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции type_rec.m4scp.
Идентификатор операции: descr_type_rec.
Полное имя: \operation\type_rec.m4scp.
Комментарий: операция поиска в БЗ типа записи данного альбома.
Автор: Лукша Н.В.
8. Классификация операции vol.m4scp.
Название операции: vol.
Предметная ориентация: МП.
Входные параметры: узел с именем альбома.
Выходные параметры: тип записи данного альбома.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции vol.m4scp.
Идентификатор операции: descr_vol.
Полное имя: \operation\vol.m4scp.
Комментарий: операция поиска в БЗ типа записи данного альбома.
Автор: Лукша Н.В.
9. Классификация операции style_of_track.m4scp.
Название операции: style_of_track.
Предметная ориентация: МП.
Входные параметры: узел с именем альбома.
Выходные параметры: тип записи данного альбома.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции style_of_track.m4scp.
Идентификатор операции: descr_style_of_track.
Полное имя: \operation\style_of_track.m4scp.
Комментарий: стиль МП.
Автор: Лукша Н.В.
10. Классификация операции rewards.m4scp.
Название операции: rewards.
Предметная ориентация: МП.
Входные параметры: узел с именем альбома.
Выходные параметры: тип записи данного альбома.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции rewards.m4scp.
Идентификатор операции: descr_rewards.
Полное имя: \operation\rewards.m4scp.
Комментарий: награды данного альбома.
Автор: Лукша Н.В.
11. Классификация операции type_rec.m4scp.
Название операции: type_rec.
Предметная ориентация: МП.
Входные параметры: узел с именем альбома.
Выходные параметры: тип записи данного альбома.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции type_rec.m4scp.
Идентификатор операции: descr_type_rec.
Полное имя: \operation\type_rec.m4scp.
Комментарий: операция поиска в БЗ типа записи данного альбома.
Автор: Лукша Н.В.
12. Классификация операции rating.m4scp.
Название операции: rating.
Предметная ориентация: МП.
Входные параметры: узел с именем альбома.
Выходные параметры: тип записи данного альбома.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции rating.m4scp.
Идентификатор операции: descr_rating.
Полное имя: \operation\rating.m4scp.
Комментарий: рейтинг данной композиции.
Автор: Лукша Н.В.
13. Классификация операции label_rec.m4scp.
Название операции: label_rec.
Предметная ориентация: МП.
Входные параметры: узел с именем альбома.
Выходные параметры: тип записи данного альбома.
Способ вызова: при выборе исполнителя из ListBox.
Спецификация операции label_rec.m4scp.
Идентификатор операции: descr_label_rec.
Полное имя: \operation\label_rec.m4scp.
Комментарий: поиск лейбла звукозаписи.
Автор: Лукша Н.В.
3.1.5 Декомпозиция операций на подпрограммы и содержательная структура библиотеки программ специфицированных операций
В написанных scp-операциях подпрограммы не использовались.
3.2 Алгоритмы и исходные тексты программ, реализующие операции машины обработки знаний прототипа интеллектуальной справочной системы
· поиск альбома по описанию (файл search_by_param.m4scp)
· входные параметры: узлы, характеризующие искомый альбом;
· выходные параметры: все альбомы подходящие под данное описание.
Алгоритм:
Делаем копию входных параметров.
Проверяем первый параметр.
Находим все альбомы, которые удовлетворяют п.2 и объединяем их в множество 1.
Проверяем второй параметр (если такового нет, переходим п.10).
Находим все альбомы, которые удовлетворяют п.4 и объединяем их в множество 2.
Проверяем третий параметр (если такового нет, переходим в п.9).
Находим все альбомы, которые удовлетворяют п.6 и объединяем их в множество 3.
Находим пересечение множеств 1 и 3 и записываем в множество 1.
Находим пересечение множеств 1 и 2 и записываем в множество 1.
Выводим множество 1 на новый лист.
Пример диалога:
Рисунок 3.2.1 - вопрос «Поиск альбома по описанию»
Рисунок 3.2.2 - ответ на вопрос «Поиск альбома по описанию»
Исходный текст операции:
//#Операция поиска альбома по его описанию
#include "scp_keynodes.scsy"
#include "../seb/planimetry.scsy"
procedure(search_by_param,
[[
sheet_type = "/proc/agents/shell/keynode/SCgSheet";
sheet_title = /"Операция прошла успешно"/;
atr1 = "/proc/keynode/1_";
atr2 = "/proc/keynode/2_";
ui_information;
layout;
"MB_TITLE_QUERY_RESULT" = /"Результат запроса"/;
"MB_TEXT_METKA" = /"Метка"/;
"MB_TEXT_ERROR1" = /"Не равны"/;
"MB_TEXT_ERROR2" = /"А сломалося!"/;
"Альбомы";
"описание*";
"тип записи*"
]],
[{
sheet,
shift,
node,
node1,
node_temp,
node_temp1,
arc,
arc1,
arc2,
attr_arc,
selected_els,
selected_els_copy,
result_set,
result_set1,
result_set2,
temp_node_with_param,
test_node,
node_param,
result,
set_albums_copy,
node_album,
set_album_param,
temp_node,
temp_set_1,
temp_set_2,
temp_set_3,
temp_set_5,
temp_set_0,
resultSet1,
resultSet2,
resultSet3,
resultSet4,
node_out_resSet2,
node_out_resSet3,
node_out_resSet4,
output_set
}],
{[
1_: in_: selected_els,
2_: in_: sheet,
3_: in_: shift
]}
)
genEl([
1_: assign_: node_: output_set
])
genEl([
1_: assign_: node_: result_set
])
genEl([
1_: assign_: node_: result_set1
])
genEl([
1_: assign_: node_: result_set2
])
//#Копия selected_els_copy входных данных
searchSetStr3([
1_: fixed_: selected_els,
2_: assign_: const_: pos_: arc_: arc,
3_: assign_: node_: const_: node,
set3_: assign_: selected_els_copy
])
//#Выделяем один из элементов temp_node_with_param множества selected_els_copy
searchElStr3([
1_: fixed_: selected_els_copy,
2_: assign_: arc_: pos_: const_: arc,
3_: assign_: node_: temp_node_with_param
])
//#Удаляем дугу arc проведенную из selected_els_copy к temp_node
eraseEl([
1_: fixed_: arc
])
//#Делаем копию set_albums_copy всех альбомов
searchSetStr3([
1_: fixed_: "Альбомы",
2_: assign_: const_: pos_: arc_: arc,
3_: assign_: node_: const_: node,
set3_: assign_: set_albums_copy
])
//#Проверяем описание каких альбомов удовлетворяет узел temp_node_with_param
//#Берем один альбом node_album из множества альбомов set_albums_copy
label(other_album)
searchElStr3([
1_: fixed_: set_albums_copy,
2_: assign_: arc_: pos_: const_: arc,
3_: assign_: node_: const_: node_album
],,not_other_album)
//#Удаляем дугу arc проведенную из set_albums_copy к node_album
eraseEl([
1_: fixed_: arc
])
//#Найдем множество set_album_param всех описаний альбома node_album
//#---------------1_проходим первую пару_------------------
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: node_album,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr1,
set1_: assign_: resultSet1
])
searchSetStr3([
1_: fixed_: "описание*",
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: node,
set3_: assign_: resultSet2
])
selectYStr3([
1_: fixed_: resultSet1,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node,
set3_: fixed_: resultSet2
])
searchElStr3([
1_: fixed_: resultSet2,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet2
])
searchSetStr5([
1_: fixed_: node_out_resSet2,
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: const_: node_: node,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr2,
set3_: assign_: resultSet3
])
//#---------------2_проходим тройку_------------------
searchElStr3([
1_: fixed_: resultSet3,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet3
])
searchSetStr3([
1_: fixed_: node_out_resSet3,
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: node,
set3_: assign_: resultSet4
])
//#Альбомы описываются по трем критериям, проверяем каждый из
//#---------------1_Проверка по типу записи_--------------
label(other_handler)
searchElStr3([
1_: fixed_: resultSet4,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet4
],,other_album)
//#Удаляем дугу arc проведенную из resultSet4 к node_out_resSet4
eraseEl([
1_: fixed_: arc
])
//#--------Ищем альбом по его введенному описанию---------
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: node_out_resSet4,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr1,
set1_: assign_: resultSet1
])
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: temp_node_with_param,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr2,
set1_: assign_: resultSet2
])
selectYStr3([
1_: fixed_: resultSet1,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node,
set3_: fixed_: resultSet2
],,other_handler)
genElStr3([
1_: fixed_: result_set,
2_: assign_: const_: pos_: arc,
3_: fixed_: node_album
],other_album,)
label(not_other_album)
////////////////////////////////////////////////////////////////////////
////
//#Выделяем один из элементов temp_node_with_param множества selected_els_copy
searchElStr3([
1_: fixed_: selected_els_copy,
2_: assign_: arc_: pos_: const_: arc,
3_: assign_: node_: temp_node_with_param
],,output)
//#Удаляем дугу arc проведенную из selected_els_copy к temp_node
eraseEl([
1_: fixed_: arc
])
//#Делаем копию set_albums_copy всех альбомов
searchSetStr3([
1_: fixed_: "Альбомы",
2_: assign_: const_: pos_: arc_: arc,
3_: assign_: node_: const_: node,
set3_: assign_: set_albums_copy
])
//#Проверяем описание каких альбомов удовлетворяет узел temp_node_with_param
//#Берем один альбом node_album из множества альбомов set_albums_copy
label(other_album1)
searchElStr3([
1_: fixed_: set_albums_copy,
2_: assign_: arc_: pos_: const_: arc,
3_: assign_: node_: const_: node_album
],,not_other_album1)
//#Удаляем дугу arc проведенную из set_albums_copy к node_album
eraseEl([
1_: fixed_: arc
])
//#Найдем множество set_album_param всех описаний альбома node_album
//#---------------1_проходим первую пару_------------------
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: node_album,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr1,
set1_: assign_: resultSet1
])
searchSetStr3([
1_: fixed_: "описание*",
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: node,
set3_: assign_: resultSet2
])
selectYStr3([
1_: fixed_: resultSet1,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node,
set3_: fixed_: resultSet2
])
searchElStr3([
1_: fixed_: resultSet2,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet2
])
searchSetStr5([
1_: fixed_: node_out_resSet2,
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: const_: node_: node,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr2,
set3_: assign_: resultSet3
])
//#---------------2_проходим тройку_------------------
searchElStr3([
1_: fixed_: resultSet3,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet3
])
searchSetStr3([
1_: fixed_: node_out_resSet3,
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: node,
set3_: assign_: resultSet4
])
//#Альбомы описываются по трем критериям, проверяем каждый из
//#---------------1_Проверка по типу записи_--------------
label(other_handler1)
searchElStr3([
1_: fixed_: resultSet4,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet4
],,other_album1)
//#Удаляем дугу arc проведенную из resultSet4 к node_out_resSet4
eraseEl([
1_: fixed_: arc
])
//#--------Ищем альбом по его введенному описанию---------
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: node_out_resSet4,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr1,
set1_: assign_: resultSet1
])
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: temp_node_with_param,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr2,
set1_: assign_: resultSet2
])
selectYStr3([
1_: fixed_: resultSet1,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node,
set3_: fixed_: resultSet2
],,other_handler1)
genElStr3([
1_: fixed_: result_set1,
2_: assign_: const_: pos_: arc,
3_: fixed_: node_album
],other_album1,)
////////////////////////////////////////////////////////////////////////
label(not_other_album1)
////////////////////////////////////////////////////////////////////////
//
//#Выделяем один из элементов temp_node_with_param множества selected_els_copy
searchElStr3([
1_: fixed_: selected_els_copy,
2_: assign_: arc_: pos_: const_: arc,
3_: assign_: node_: temp_node_with_param
],,output)
//#Удаляем дугу arc проведенную из selected_els_copy к temp_node
eraseEl([
1_: fixed_: arc
])
//#Делаем копию set_albums_copy всех альбомов
searchSetStr3([
1_: fixed_: "Альбомы",
2_: assign_: const_: pos_: arc_: arc,
3_: assign_: node_: const_: node,
set3_: assign_: set_albums_copy
])
//#Проверяем описание каких альбомов удовлетворяет узел temp_node_with_param
//#Берем один альбом node_album из множества альбомов set_albums_copy
label(other_album2)
searchElStr3([
1_: fixed_: set_albums_copy,
2_: assign_: arc_: pos_: const_: arc,
3_: assign_: node_: const_: node_album
],,not_other_album2)
//#Удаляем дугу arc проведенную из set_albums_copy к node_album
eraseEl([
1_: fixed_: arc
])
//#Найдем множество set_album_param всех описаний альбома node_album
//#---------------1_проходим первую пару_------------------
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: node_album,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr1,
set1_: assign_: resultSet1
])
searchSetStr3([
1_: fixed_: "описание*",
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: node,
set3_: assign_: resultSet2
])
selectYStr3([
1_: fixed_: resultSet1,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node,
set3_: fixed_: resultSet2
])
searchElStr3([
1_: fixed_: resultSet2,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet2
])
searchSetStr5([
1_: fixed_: node_out_resSet2,
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: const_: node_: node,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr2,
set3_: assign_: resultSet3
])
//#---------------2_проходим тройку_------------------
searchElStr3([
1_: fixed_: resultSet3,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet3
])
searchSetStr3([
1_: fixed_: node_out_resSet3,
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: node,
set3_: assign_: resultSet4
])
//#Альбомы описываются по трем критериям, проверяем каждый из
//#---------------1_Проверка по типу записи_--------------
label(other_handler2)
searchElStr3([
1_: fixed_: resultSet4,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet4
],,other_album2)
//#Удаляем дугу arc проведенную из resultSet4 к node_out_resSet4
eraseEl([
1_: fixed_: arc
])
//#--------Ищем альбом по его введенному описанию---------
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: node_out_resSet4,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr1,
set1_: assign_: resultSet1
])
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: temp_node_with_param,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr2,
set1_: assign_: resultSet2
])
selectYStr3([
1_: fixed_: resultSet1,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node,
set3_: fixed_: resultSet2
],,other_handler2)
genElStr3([
1_: fixed_: result_set2,
2_: assign_: const_: pos_: arc,
3_: fixed_: node_album
],other_album2,)
////////////////////////////////////////////////////////////////////////
label(not_other_album2)
//////////////////////////
label(output)
////////////////////////////////////////////////////////////////////////
searchSetStr3([
1_: fixed_: result_set,
2_: assign_: const_: pos_: arc_: arc,
3_: assign_: node_: const_: node,
set3_: fixed_: output_set
])
//#Проверим является ли множество result_set1 пустым
searchElStr3([
1_: fixed_: result_set1,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node
],,out)
selectYStr3([
1_: fixed_: result_set1,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node,
set3_: fixed_: output_set
])
//#Проверим является ли множество result_set2 пустым
searchElStr3([
1_: fixed_: result_set2,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node
],,out)
selectYStr3([
1_: fixed_: result_set2,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node,
set3_: fixed_: output_set
])
////////////////////////////////////////////////////////////////////////
label(out)
ui_sheet_create([
1_: assign_: sheet,
2_: fixed_: sheet_type,
3_: fixed_: sheet_title,
4_: fixed_: layout
])
ui_output([1_: fixed_: sheet, 2_: fixed_: output_set])
return()
end
поиск альбома по типу записи (файл search_by_type.m4scp)
входные параметры: узел, содержащий тип записи;
выходные параметры: все альбомы с данным типом записи.
Пример диалога:
Рисунок 3.2.3 - вопрос «Поиск альбома по типу записи»
Рисунок 3.2.4 - ответ на вопрос «Поиск альбома по типу записи»
Алгоритм:
Делаем копию входных параметров.
Находим все узлы альбомов, подходящие под введенное описание и записываем их в множество 1.
Выводим на новый лист множество 1.
Исходный текст операции:
//#Операция поиска альбома по его описанию
#include "scp_keynodes.scsy"
#include "../seb/planimetry.scsy"
procedure(search_by_type,
[[
sheet_type = "/proc/agents/shell/keynode/SCgSheet";
sheet_title = /"Операция прошла успешно"/;
atr1 = "/proc/keynode/1_";
atr2 = "/proc/keynode/2_";
ui_information;
layout;
"MB_TITLE_QUERY_RESULT" = /"Результат запроса"/;
"MB_TEXT_METKA" = /"Метка"/;
"MB_TEXT_ERROR1" = /"Не равны"/;
"MB_TEXT_ERROR2" = /"А сломалося!"/;
"Альбомы";
"описание*";
"тип записи*"
]],
[{
sheet,
shift,
node,
node1,
node_temp,
node_temp1,
arc,
arc1,
arc2,
attr_arc,
selected_els,
selected_els_copy,
result_set,
temp_node_with_param,
test_node,
node_param,
result,
set_albums_copy,
node_album,
set_album_param,
temp_node,
temp_set_1,
temp_set_2,
temp_set_3,
temp_set_5,
temp_set_0,
resultSet1,
resultSet2,
resultSet3,
resultSet4,
node_out_resSet2,
node_out_resSet3,
node_out_resSet4
}],
{[
1_: in_: selected_els,
2_: in_: sheet,
3_: in_: shift
]}
)
genEl([
1_: assign_: node_: result_set
])
//#Копия selected_els_copy входных данных
searchSetStr3([
1_: fixed_: selected_els,
2_: assign_: const_: pos_: arc_: arc,
3_: assign_: node_: const_: node,
set3_: assign_: selected_els_copy
])
//#Выделяем один из элементов temp_node_with_param множества selected_els_copy
searchElStr3([
1_: fixed_: selected_els_copy,
2_: assign_: arc_: pos_: const_: arc,
3_: assign_: node_: temp_node_with_param
])
//#Удаляем дугу arc проведенную из selected_els_copy к temp_node
eraseEl([
1_: fixed_: arc
])
//#Делаем копию set_albums_copy всех альбомов
searchSetStr3([
1_: fixed_: "Альбомы",
2_: assign_: const_: pos_: arc_: arc,
3_: assign_: node_: const_: node,
set3_: assign_: set_albums_copy
])
//#Проверяем описание каких альбомов удовлетворяет узел temp_node_with_param
//#Берем один альбом node_album из множества альбомов set_albums_copy
label(other_album)
searchElStr3([
1_: fixed_: set_albums_copy,
2_: assign_: arc_: pos_: const_: arc,
3_: assign_: node_: const_: node_album
],,not_other_album)
//#Удаляем дугу arc проведенную из set_albums_copy к node_album
eraseEl([
1_: fixed_: arc
])
//#Найдем множество set_album_param всех описаний альбома node_album
//#---------------1_проходим первую пару_------------------
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: node_album,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr1,
set1_: assign_: resultSet1
])
searchSetStr3([
1_: fixed_: "описание*",
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: node,
set3_: assign_: resultSet2
])
selectYStr3([
1_: fixed_: resultSet1,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node,
set3_: fixed_: resultSet2
])
searchElStr3([
1_: fixed_: resultSet2,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet2
])
searchSetStr5([
1_: fixed_: node_out_resSet2,
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: const_: node_: node,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr2,
set3_: assign_: resultSet3
])
//#---------------2_проходим тройку_------------------
searchElStr3([
1_: fixed_: resultSet3,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet3
])
searchSetStr3([
1_: fixed_: node_out_resSet3,
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: node,
set3_: assign_: resultSet4
])
//#Альбомы описываются по трем критериям, проверяем каждый из
//#---------------1_Проверка по типу записи_--------------
label(other_handler)
searchElStr3([
1_: fixed_: resultSet4,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet4
],,other_album)
//#Удаляем дугу arc проведенную из resultSet4 к node_out_resSet4
eraseEl([
1_: fixed_: arc
])
//#--------
searchSetStr5([
1_: assign_: const_: node_: node,
2_: assign_: pos_: arc_: const_: arc,
3_: fixed_: node_out_resSet4,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr1,
set1_: assign_: resultSet1
])
searchSetStr3([
1_: fixed_: "тип записи*",
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: node,
set3_: assign_: resultSet2
])
selectYStr3([
1_: fixed_: resultSet1,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node,
set3_: fixed_: resultSet2
],,other_handler)
searchElStr3([
1_: fixed_: resultSet2,
2_: assign_: const_: pos_: arc,
3_: assign_: node_ : node_out_resSet2
])
searchSetStr5([
1_: fixed_: node_out_resSet2,
2_: assign_: pos_: arc_: const_: arc,
3_: assign_: const_: node_: node,
4_: assign_: pos_: arc_: const_: arc1,
5_: fixed_:atr2,
set3_: assign_: resultSet3
])
//#--------_Выделяем одно из описаний типа записи node_param_----------
searchElStr3([
1_: fixed_: resultSet3,
2_: assign_: const_: pos_: arc,
Подобные документы
Особенности создания интеллектуальной справочной системы по логике, ее технико-экономическое обоснование. Онтология, содержательная декомпозиция, исходные тексты базы знаний, ее верификация и отладка. Тестирование интеллектуальной справочной системы.
курсовая работа [3,4 M], добавлен 14.07.2012База знаний интеллектуальной справочной системы по алгебре дробей со стандартными набором информационно-поисковых операций, пользовательским интерфейсом. Тестирование на стандартных вопросах и шаблонах поиска. Интеграция со смежными предметными областями.
курсовая работа [12,3 M], добавлен 06.05.2011Подготовка к созданию интеллектуальной системы: определение проблемы, поиск эксперта, анализ расходов и прибыли. Стадии разработки прототипной системы, ее развитие до промышленной экспертной системы (ЭС). Оценка, стыковка с программами и поддержка ЭС.
презентация [79,0 K], добавлен 03.01.2014Описание процесса проектирования информационно–справочной системы с помощью среды разработки Delphi 10 Lite, ее использование для регистрации сварочных работ. Функциональное назначение программы и ее логическая структура. Свойства информационной системы.
курсовая работа [1,7 M], добавлен 10.01.2015Описание процесса проектирования информационно–справочной системы с помощью среды разработки PascalABC.Net, ее использование для регистрации обращений в медицинское учреждение. Логическая структура программы, алгоритм ее работы, особенности интерфейса.
курсовая работа [628,8 K], добавлен 07.06.2017Анализ процессов диагностики повреждений трубопровода. Разработка модели продукционной базы знаний: обзор методов представления знаний, описание создания базы знаний и разработки механизма логического вывода. Экономическое обоснование концепции проекта.
дипломная работа [3,0 M], добавлен 16.04.2017Особенности языка ассемблера. Классификация основных информационных систем. Выбор средств разработки автоматизированной справочной системы. Выбор средства проектирования и разработки приложения. Технические условия работы и порядок работы с программой.
дипломная работа [222,2 K], добавлен 25.03.2013Особенности разработки автоматизированной справочной системы по основным элементам языка ассемблера, анализ среды Borland Delphi 7.0. Способы определения трудоемкости разработки программного продукта: этапы расчета сметной стоимости, планирование цены.
дипломная работа [3,2 M], добавлен 03.04.2013Понятие базы знаний для управления метаданными. Особенности баз знаний интеллектуальной системы. Языки, используемые для разработки интеллектуальных информационных систем. Классические задачи, решаемые с помощью машинного обучения и сферы их применения.
реферат [16,9 K], добавлен 07.03.2010Интегрированная среда разработки Lazarus. Среда программных продуктов Lazarus, объекты программных компонентов. Палитра компонентов Standard, Additional. Разработка справочной системы: структура проекта, интерфейс программы, компоненты приложения.
курсовая работа [695,2 K], добавлен 08.01.2023