По поводу того, в какой последовательности изучать Пролог - тут, наверное, сколько людей, столько и мнений. Изложу своё. (Иногда заглядываю на прологовский форум 
http://progz.ru/forum/viewforum.php?f=10, там частенько обсуждаются вопросы его оптимального изучения и преподавания, но все они выглядят для меня какими-то слишком высокими материями. Наверное, для тех, у кого Пролог основной рабочий инструмент, а не дополнительный (как у меня), мир выглядит по-другому). Во-первых, заведите себе книжек (классикой являются Клоксин-Меллиш, Братко, и Стерлинг-Шапиро, все есть в инете): например, 
http://dstu2204.narod.ru/3sem/lp/bratko.cab, или посмотрите на 
http://progz.ru/forum/viewtopic.php?t=11193, на lib.org.by тоже кое-что есть. Мне в своё время книжка Братко здорово помогла. Изучение, по-моему, лучше начинать с чисто логических вещей, убрав всё процедурное (ввод-вывод, отсечение, динамическое добавление-удаление предложений и т.п.). Поначалу даже лучше и без рекурсии обойтись. Например, рассмотреть задачку типа построения таблиц истинности формул логики высказываний: на базе логических связок с заданными таблицами 
'не'(0,1). 
'не'(1,0). 
'или'(0,0,0). 
'или'(0,1,1). 
'или'(1,0,1). 
'или'(1,1,1). 
и т.п. построить таблицу истинности при помощи заданной формулы, например, 
'->'(X,Y,Result) :- 'не'(X,NotX), 'или'(NotX,Y,Result). 
или помоделировать задачки из анализа логических схем (типа задаём сигналы на входе и смотрим, что будет на выходе или наоборот). Ещё пример - поиск команд в таблице чемпионата по какому-нибудь критерию (типа запросов на выборку в sql). 
2. добавить рекурсию. Типичные задачи: программа "родственные отношения" (есть во всех книжках и в инете), программа поиска пути по карте каких-нибудь транспортных маршрутов или схеме метро (пока без нахождения пути, а просто найти ответ на вопрос: до каких пунктов можно с пересадками добраться из заданного). 
3. рассмотреть понятие составного терма ("структуры"). Здесь примеры на символьную арифметику: дифференцирование, упрощение, раскрытие скобок и т.п. 
4. Списки. Теперь можно добавлять нахождение пути по карте с занесением этого пути в список. Ну и всякие простые операции со списками: member, конкатенация, обращение, etc. Кстати задача Эйнштейна. 
5. Численные расчёты: вычисление факториала, чисел Фибоначчи и т.п. 
6. Основы процедурной семантики (программа "большой, тёмный" из книжки Братко), отсечение. Только самые простые и необходимые вещи типа добавления отсечения в вычисление факториала, чтобы не было переполнения стека. По опыту, студенты коммерческого вуза процедурную семантику не понимают даже после 1 семестра изучения (а многие - и вообще никогда), поэтому лучше их этим сильно не грузить - только самое необходимое. 
7. Метод решения задач "поиск в пространстве состояний". Программа "обезьяна и банан". На эту тему могу дать учебный пример генератора расписаний занятий. 
8. Форматированный вывод, файловый ввод-вывод. 
9. Динамическое добавление-удаление предложений программы. "Самообучающийся факториал", динамическая СУБД. 
10. Метапредикаты (not, =.. , call, functor, clause, etc.) 
11. Предикаты высших порядков (bagof, setof, findall). 
Ну по ходу процесса будет видно: возможно, что-то надо копать глубже, а что-то вообще опустить. 
Наверное, параллельно надо проходить какие-то теоретические основы (например, минут по 10 в начале каждой лекции). По крайней мере, по-моему, обязательно следующее: логика высказываний - логика предикатов 1 порядка - клаузальная форма логики предикатов - клаузы Хорна, т.к. это лежит в основе логич. программирования.
Большое спасибо за интересные и полезные интернет ссылки, мнения и рекомендации.