
- •(Конспект лекций)
- •Список сокращений
- •Введение
- •Лекция 1. Языки штучного интеллекта и основы логического программирования Некоторые сведения о языках искусственного интеллекта
- •Введение в логическое программирование Историческая справка
- •Базовые объекты данных
- •Вопросы
- •Переменные
- •Правила
- •Зоны видимости имен
- •Логическая программа
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 2. Процедурная семантика интерпретатора Пролога
- •Метод резолюций
- •Унификация и подстановка
- •Композиция подстановок
- •Вычисление резольвенты
- •Алгоритмы Пролога
- •Стратегии доказательств
- •Процедура поиска доказательства в глубину
- •Пример выполнения логической программы с пошаговым анализом
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 3. Основы программирования в среде Турбо-Пролога
- •Разделы программы
- •Опции компилятора
- •Имена переменных
- •Раздел описаний доменов
- •Разделы описания предикатов и правил
- •Рекурсивные процедуры
- •Моделирование итеративных процедур
- •Основные сведения об арифметических предикатах
- •Внелогические предикаты
- •Работа с файлами
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 4. Списки и управление выводом в Турбо-Пролог-программах Списки
- •Описания списков
- •Шаблон для работы со списками
- •Примеры программ работы со списками
- •Управление формированием вывода Отсечение
- •«Зеленые» и «Красные» отсечения
- •Предикаты not и fail
- •«Циклы» управляемые отказом
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 5. Динамическая база данных в Турбо-Пролог-программах Составные области
- •Операции с динамической базой данных
- •Пример построения проекта с динамической базой данных
- •Ограничения Турбо-Пролога
- •«Циклы» с возвратами
- •Лисп – язык функционального программирования
- •Правильные выражения
- •Базовые предикаты и конструкторы
- •Определяющие выражения функций
- •Условные выражения
- •Выражения для представления циклов
- •Встроенные и определяемые пользователем функции
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 7. Функциональное программирование в среде Лиспа
- •Виды рекурсий Рекурсии по значению и по аргументам
- •Простая рекурсия
- •Параллельная рекурсия
- •Взаимная рекурсия
- •Рекурсии высших порядков
- •Метод накапливающих параметров
- •Функционалы
- •Применяющие функционалы
- •Отображающие функционалы
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 8. Функциональные абстракции и процедурное программирование в Лиспе Представление функции в процессе вычислений Понятие замыкания
- •Создание замыканий
- •Функции с функциональным результатом вычислений и частичные вычисления
- •Функциональные абстракции
- •Формы блоков и связывания переменных
- •Присваивание значений переменным
- •Прочие процедурные формы в Лиспе
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 9. Лисп-методы программирования Программирование, управляемое данными
- •Программирование, управляемое событиями
- •Сопоставление с образцом
- •Списочные образцы
- •Переменные в образцах
- •Образцы с предикатами
- •Продукционное и логическое программирование в Лисп-системах
- •Объектное программирование
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 10. Представление знаний в программах на Лиспе Процедурный подход к представлению знаний
- •Представление знаний на основе продукций
- •Представление продукций
- •Интерпретатор продукций
- •Методы поиска решений
- •Функция для загрузки
- •Разрыв командного цикла и отладка
- •Вычисление s-выражений
- •Функции и формы
- •Типы данных
- •Макросы ввода
- •Lambda-списки
- •Функции ввода/вывода
- •Вычисление форм catch и throw
- •Объектное программирование в Xlisp Создание класса
- •Добавление методов в интерактивном режиме
- •Вопросы для самоконтроля
- •Html-документ Инструментарий создания и редактирования
- •Структура документа
- •Html тэги
- •Информация игнорируемая браузерами
- •Свойства страницы в целом
- •Информация для поисковых систем и стандарты
- •Элементы управления размещением текста и графики
- •Ссылки и протоколы
- •Задание цвета в html
- •Подготовка графики и анимация Графические форматы
- •Подготовка изображений для применения в документе
- •Анимация
- •Вопросы для самоконтроля
- •Управление шрифтами
- •Физические текстовые стили
- •Специальные символы
- •Графика
- •Управление взаимным размещением текста и графики
- •Гипертекстовые и графические ссылки Организация ссылок
- •Графические ссылки
- •Расширенная работа с гиперссылками Типы ссылок в документе
- •Якоря (метки)
- •Атрибут target
- •Изображения-карты
- •Списки и таблицы Виды списков
- •Элементы таблиц
- •Вопросы для самоконтроля
- •Элементы создаваемые тэгом input
- •Простые и графические кнопки
- •Списки выбора
- •Текстовые области
- •Приемы для выравнивания элементов
- •Методы передачи данных к серверу
- •Дизайн web-сайтов Типы сайтов
- •Топология и распределение материала
- •Формат страницы
- •Заглавия и заголовки
- •Навигация
- •Блоки текста
- •Средства позиционирования
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 15. Элементы языка css Язык управления структурой и стилями
- •Размещение css-элементов
- •Адресная модель css
- •Содержимое css-файла или style-контейнера
- •Селекторы
- •Комментарии
- •Применение css в оформлении документов Управление визуализацией
- •Схемы позиционирования
- •Текст и шрифты
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 16. Основы языка Java Script Назначение языка программирования Java Script
- •Тэги для программ на Java Script
- •Основные конструкции языка JavaScript
- •Декларации функций
- •Операторы, операции и выражения
- •Массивы
- •Объектная модель документа
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 17. Объекты и скрипты в html-документах Объекты пользователя
- •Создание объектов
- •Добавление новых свойств и методов
- •Проверка наличия свойств и методов
- •Встроенные объекты языка программирования
- •Обработка особых ситуаций в документе
- •Классификация ситуаций
- •Установление реакции на ситуацию
- •Методы объекта String
- •Программирование работы с метками и гиперссылками
- •Динамическое создание меток и гиперссылок
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 18. Различные аспекты применения скриптов Управление окнами
- •Динамическое формирование документа
- •Управление слоями
- •Объект, соответствующий форме
- •Адресация и именование
- •Свойства и методы
- •Динамическое изменение надписей и изображений на кнопках
- •Форматы документов отличающиеся от html
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Литература
Расширенная работа с гиперссылками Типы ссылок в документе
Тэги a, img и ряд других содержат ссылки к различным файлам, расположенным на серверах сети Internet. Используемые для ссылок строки могут задавать абсолютный путь поиска или относительный путь. Абсолютный путь представляет URI-адрес Internet, а именно, - обозначение службы Internet, имя сервера, имена всех каталогов и подкаталогов, ведущих к файлу, имя файла. Относительный путь указывается относительно местоположения текущего просматриваемого документа. Если в начале строки разместить символы «../», то браузер будет искать файл в каталоге на один уровень выше, или на несколько уровней выше, если используется последовательность символов «../».
Примеры
<a href = “abc.htm”>
Обращение к файлу в текущем каталоге (т.е., там, где расположен просматриваемый документ).
<a href = “../../localFolder/xizfile.htm”>
Обращение к каталогу на 2 уровня выше по отношению к каталогу, где расположен документ; затем обращение к файлу xizfile.htm, расположенному в каталоге localFolder.
<a href = “http://http://auto.search.msn.com/response.asp”>
Задан абсолютный путь к файлу response.asp.
<a href = “ftp://ftp.MyDomain.com/pub/freeware.txt”>
Задан абсолютный путь к файлу freeware.txt. Будет использоваться окно службы ftp для получения файла, если он свободно доступен.
<a href = “mailto:myname@mydomain.com”>
Запрос к службе электронной почты. Будет выведено окно почтового клиента с расположенным в нем адресом mydomain.com.
Якоря (метки)
Для размещения в документе меток, к которым можно ссылаться посредством гипертекстовых ссылок используется атрибут name тэга a.
Пример
<a name = “LazyRiver”> Lazy River Story </a>
Теперь, если в документе расположена ссылка вида:
<a href = “#LazyRiver”> Click here to read the story about Lazy River </a>,
то выполнив щелчок по ней, окно переместится по документу к тому месту, где располагается метка “LazyRiver”.
В тэге a можно одновременно использовать атрибуты href и name.
Пример
<a href = “../references.htm#ref-ISO8879”>…………………</a>
Данная ссылка применяется для выполнения перехода к метке “ref-ISO8879”, расположенной в файле references.htm.
Атрибут target
Атрибут target применяется для указания окна, в котором должен отображаться документ при щелчке по гипертекстовой ссылке. Возможные значения этого атрибута следующие:
_blank – загрузка документа в новом окне,
_self – загрузка документа в окне, из которого вызывается гипертекстовый переход,
_parent – загрузка документа в окне, которое является «окном-родителем» для окна, из которого вызывается гипертекстовый переход,
_top – загрузка документа в исходном окне.
Значением атрибута может быть имя фрейма (понятие не рассматривается, поскольку не входит в последние стандарты по HTML).
Изображения-карты
Изображения-карты позволяют разместить в пределах графики несколько ссылок, связанных с не перекрывающимися областями в пределах изображения. Изображения-карты поддерживаются как со стороны сервера, так и со стороны браузера. При поддержке со стороны сервера на сервер передаются координаты щелчков мыши в области изображения-карты. На сервере хранится файл с координатами форм, расположенных в пределах изображения (описания хранятся в одном из стандартных форматов). Программа-сценарий распознает вхождение координат щелчка мыши в одну из форм и выполняет соответствующую часть программы.
Координаты точки щелчка мыши могут обрабатываться браузером. Но, не все браузеры это поддерживают. Оформление фрагмента HTML-файла, в этом случае, выглядит следующим образом:
<map name = “NavigationBar”>
<area shape = “rect” coords = “14,11,143,82” href = “Contents.html”>
<area shape = “circle” coords = “203,46,38” href = “Home.html”>
……………………………
</map>
……………………………
<img src = “navibar.gif” usemap = “#NavigationBar”>
……………………………
Внутри контейнера map располагаются тэги area, содержащие указание о форме в пределах изображения, ее координатах и URI-ссылку к файлу для передачи к браузеру. С каждым тэгом area можно связать атрибут alt для вывода соответствующей подсказки. Тэг img выводит изображение и ссылается к map-тэгу посредством атрибута usemap.
Возможные значения атрибута shape и соответствующий формат задания описания формы следующие:
default – указывается все изображение,
rect – определяется прямоугольник с координатами углов (левый-x, верхний-y, правый-x, нижний-y),
circle – определяет окружность с указанием координат центра и диаметра (центр-x, центр-y, радиус),
poly – определяет многоугольник (x1, y1, x2, y2, ..., xN, yN).
Координаты указываются относительно левого верхнего угла изображения.
Возможны незначительные модификации оформления изображений-карт с применением контейнеров object и a. Программирование и изображений-карт можно выполнить вручную или с использованием программ подготовки изображений для Web. Например, в Image Ready можно открыть графику, используя различные инструменты нанести на изображение формы окружностей, прямоугольников и т.п., открыть просмотр html-кода и перенести редактором через системный буфер фрагмент кода, связанный с изображением-картой, в разрабатываемый документ.