Книга: Учебное пособие по курсу «Нейроинформатика»
Язык описания задачника
Разделы на этой странице:
Язык описания задачника
В языке описания задачника используется ряд ключевых слов, специфических для этого языка. Эти ключевые слова приведены в табл. 17.
Таблица 17. Ключевые слова специфические для языка описания задачника
Идентификатор | Краткое описание |
---|---|
TaskBook | Заголовок описания задачника |
Picture | Поле типа рисунок |
Structure | Заголовок описания структуры задачника |
Source | Описание источника данных |
Field | Начало описания поля |
External | Описание внешнего источника данных |
Список предопределенных констант языка описания задачника приведен в табл. 18. Эти константы используются при указании типа вектора, к которому принадлежит описываемое поле, при указании используемых векторов в запросе на открытие сеанса и при указании типа вектора в запросах на получение или занесение данных.
Таблица 18. Предопределенные константы
Идентификатор | Значение | Смысл |
---|---|---|
tbColor | 1 | Цвет примера |
tbInput | 2 | Входной сигнал |
tbPrepared | 3 | Предобработанные данные |
tbAnswers | 4 | Правильные ответы |
tbReliability | 5 | Достоверность ответа |
tbCalcAnswers | 6 | Полученные ответы |
tbCalcReliability | 7 | Уверенность в ответе |
tbWeight | 8 | Вес примера |
tbEstimation | 9 | Оценки |
tbComment | 10 | Комментарии |
БНФ языка описания задачника
Обозначения, принятые в данном расширении БНФ и описание ряда конструкций приведены в разделе «Описание языка описания компонентов».
<Описание задачника>::= <Заголовок задачника> <Описание структуры задачника> <Описание источника данных> <Конец описания задачника>
<Заголовок задачника>::= TaskBook <Имя задачника>
<Имя задачника>::= <Идентификатор>
<Описание структуры задачника>::= <Заголовок описания структуры> <Описание полей> <Описание цвета><Описание веса> <Конец описания структуры>
<Заголовок описания структуры>::= Structure
<Описание цвета>::= Field<Имя поля цвет> tbColor Color End Field
<Имя поля цвет>::= <Константа типа String>
<Описание веса>::=Field<Имя поля вес> tbWeight Real End Field
<Имя поля вес>::= <Константа типа String>
<Описание полей>::= <Описание поля> [<Описание полей>]
<Описание поля>::= Field<Имя поля> <Тип вектора> {<Описание целого поля> | <Описание действительного поля> | <Описание перечислимого поля> | <Описание поля рисунка> | <Описание текстового поля>} End Field
<Имя поля>::= <Константа типа String>
<Тип вектора>::= {tbInput | tbAnswers | tbReliability | tbCalcAnswers | tbCalcReliability | tbEstimation}
<Описание целого поля>::= {Long | Integer}
<Описание действительного поля>::= Real
<Описание перечислимого поля>::= Enumerated<Список имен значений> ;
<Список имен значений>::= <Имя значения> [, <Список имен значений>]
<Имя значения>::= <Константа типа String>
<Описание текстового поля>::= String <Максимальная длина строки>
<Максимальная длина строки>::= <Константа типа Integer>
<Описание поля рисунка>::= Picture <Размер памяти для рисунка>
<Размер памяти для рисунка>::= <Константа типа Long>
<Конец описания структуры>::= End Structure
<Описание источника данных>::= Source {<Внешний источник> | <Подготовлено в задачнике>}
<Внешний источник>::= <Имя приложения, которому нужно передать запрос> <SQL — запрос>
<Имя приложения, которому нужно передать запрос>::= <Константа типа String>
<SQL — запрос>::= <Константа типа String>
<Подготовлено в задачнике> — В соответствии с порядком описания полей выводятся символьные представления полей, разделенные символом табуляции (байтом содержащим код 9). Примеры (в терминологии баз данных — записи) разделяются символом конца абзаца (переводом строки — байтом, содержащим код 13). Поля рисунки выводятся в виде последовательности <Размер памяти для рисунка> целых чисел, разделенных пробелами, каждое из которых является десятичным представлением числа (от 0 до 255), содержащегося в соответствующем байте области памяти, отведенной для хранения рисунка.
<Конец описания задачника>::= End TaskBook
Описание языка описания задачника
В этом разделе приведено подробное описание дополнительной информации (информации, следующей за типом данных поля) для полей, в блоках описания которых она используется.
Перечислимый тип поля. При использовании перечислимого типа поля в векторах данных хранятся не сами значения, а их номера. Для отображения в редакторе задачника значений полей их необходимо брать из блока описания поля. В списке имен значений блока описания перечислимого поля хранятся символьные константы, первая из которых содержит название состояния, соответствующее неопределенному значению поля; вторая — первому из значений, которые может принимать поле, и т. д.
Строка. Поля типа строка предназначены для хранения символьных строк фиксированной длины. Длина строки задается значением параметра <Максимальная длина строки>.
Таблица 19. Значение первых семи байт поля типа рисунок
Величина | Значение |
---|---|
Б2 * 256 + Б1 | Положительное целое число, задающее размер рисунка по горизонтали в пикселях. |
Б4 * 256 + Б3 | Положительное целое число, задающее размер рисунка по вертикали в пикселях. |
(Б7 * 256 + Б6) * 256 + Б5 | Число цветов, использованных в рисунке |
Рисунок. Поля типа рисунок предназначены для хранения графической информации. Первые семь байт поля имеют смысл, приведенный в табл. 19. В таблице принято обозначение Б1 — величина, хранящаяся в первом байте, Б2 — во втором и т. д. Рисунок разворачивается по строкам, начиная с левого верхнего угла, в непрерывный массив, размером (Б2*256+Б1)(Б4*256+Б3).
Если число цветов равно единице (черно-белое изображение), то каждый следующий байт содержит восемь пикселей изображения. Самый младший бит восьмого байта соответствует левому верхнему пикселю рисунка. Если число цветов равно трем, то каждый байт, начиная с восьмого, содержит информацию о четырех пикселях. Младшие два бита задают левый верхний пиксель рисунка. Если число цветов от 4 до 15, то каждый байт, начиная с восьмого, содержит информацию о двух пикселях. Младшие четыре бита задают левый верхний пиксель рисунка. Если число цветов от 16 до 255, то каждый байт, начиная с восьмого, содержит информацию об одном пикселе. Значение в восьмом байте соответствует левому верхнему пикселю рисунка. При числе цветов от 256 до 65535 каждые два байта, начиная с восьмого, содержат информацию об одном пикселе (первый пиксель имеет цвет номер Б9*256+Б8). Значение в восьмом и девятом байтах соответствует левому верхнему пикселю рисунка. При числе цветов от 65535 до 16777215 каждые три байта, начиная с восьмого, содержат информацию об одном пикселе (первый пиксель имеет цвет номер (Б10*256+Б9)*256+Б8). Значение в восьмом, девятом и десятом байтах соответствует левому верхнему пикселю рисунка.
Альтернативный способ записи рисунка. Предложенный выше способ хорош своей простотой и плох большим объемом данных. Большинство графических форматов файлов (например gif) обеспечивают высокую степень компрессии графической информации. Для использования этой возможности при записи поля графической информации на диск предлагается альтернативный формат. В этом формате первые два байта должны быть нулевыми. Поскольку в основном формате записи рисунков эти два байта формировали размер рисунка по горизонтали, нулевая ширина рисунка служит признаком использования альтернативного формата. Следующие пять байт хранят ascii коды типа графического формата. Используются коды заглавных букв латинского алфавита. Если тип графического стандарта содержит менее пяти символов (pcx, gif), то тип дополняется символами пробела справа. Следующие четыре байта, с восьмого по одиннадцатый, содержат число байт в графическом файле. Начиная с двенадцатого байта, идет информация, содержавшаяся в графическом файле.
Сопоставление элементов векторов правильных ответов, достоверности, вычисленных ответов, уверенности и оценки производится по следующему правилу. Первому полю типа правильный ответ соответствуют первое поле типа достоверность, первое поле типа вычисленный ответ, первое поле типа уверенность, первое поле типа оценка, второму — вторые и т. д.
Неопределенные значения
В практике работы большинство таблиц данных не полны. То есть, часть данных в примерах задачника не известна. Задачник должен однозначно указать предобработчику неизвестные данные. Для этих целей для каждого типа входных данных определено специальное значение — неопределенное. Для передачи неизвестных значений используются следующие величины: 10-40 для действительных чисел и 0 для всех типов качественных признаков.
Пример описания задачника
В этом разделе приведено описания простого задачника для прогнозирования курса американского доллара к рублю. Задачник содержит три примера. В разделе описания данных вместо символа табуляции использован символ «®», а вместо символа конца абзаца — «¶».
TaskBook CursValuty
Structure
Field" Цвет" tbColor Color End Field
Field" Вес" tbWeight Real End Field
Field" Дата" tbCommentReal End Field
Field" Текущий курс" tbInputReal End Field
Field" Курс на следующий день" tbAnswersReal End Field
Field" Достоверность курса" tbReliabilityReal End Field
Field" Предсказанный курс" tbCalcAnswersReal End Field
Field" Надежность предсказания" tbCalcReliabilityReal End Field
Field" Оценка предсказания" tbEstimation Real End Field
End Structure
Source
HFFFF®1.0®01.01.97®5773®5774®1.0®5775®0.1®0.07¶
HFFFF®1.0®02.01.97®5774®5776®1.0®5777®0.01®0.7¶
HFFFF®1.0®03.01.97®5776®5778®1.0®5779®0.2®0.007¶
End TaskBook
- 8.2. Языки программирования Виды программирований
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Реализация языка SQL
- Дальнейшее развитие языка SQL
- Язык программирования Python
- 2. Визуальный язык знают все Жест с ручкой в руках
- Программирование на языке Пролог для искусственного интеллекта
- 1. Оператор Select – базовый оператор языка структурированных запросов
- 2. Унарные операции на языке структурированных запросов
- 3. Бинарные операции на языке структурированных запросов
- Фишка шестая. «Язык пользы»
- Компилятор языка С