Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Тема «Логико-лингвистические
Информационные модели»
Под логико-лингвистической моделью понимается среда для моделирования некоторого класса объектов. В этих моделях выделяют такие компоненты, как синтаксис, семантику, логику и правила вывода. Данная тема открывает широкие возможности для изучения вопросов, пограничных в информатике и лингвистике. Как известно, лингвистика — наука о языке. Языки можно разделить на две группы: естественные и искусственные. Естественные языки (русский, английский и т.д.) мало формализованы; тем не менее свободное описание предмета или процесса на таких языках является своеобразной моделью этого предмета или процесса. Такую модель часто называют вербальной. В определенном смысле можно считать, что любое литературное произведение есть вербальная модель того явления, о котором оно написано. Однако не всякое моделирование (равно как и не всякий информационный процесс) следует считать объектом приложения информатики. Непременным атрибутом языка, на котором строится любая информационная модель, является наличие формализации. Эта формализация может быть очень жесткой (например, язык программирования, в котором почти всегда перестановка двух рядом стоящих символов означает или изменение смысла фразы, или ее обессмысливание); формализация может быть существенно менее жесткой (например, при использовании языка математических формул). В информатике проблемы формализации языка играют важную роль. Большинство ученых, работающих в этой сфере, считают, что любой естественный язык формализован недостаточно для того, чтобы непосредственно строить информационные модели, причастные к информатике. Недостаточная формализация живого языка препятствует эффективному решению таких задач, как машинный перевод, распознавание смысла текстов, вводимых человеком в диалоге «человек-компьютер» (и, как следствие, невозможность создать обучающие компьютерные программы столь же эффективные, как учитель-человек). Во вводной беседе на эту тему уместно ввести учащихся в круг проблем искусственного интеллекта, связанных с моделированием в сфере языка: представление знаний, моделирование рассуждений, компьютерная лингвистика, машинный перевод. Цель — общее развитие учащихся, привлечение их внимания к принципиальным проблемам, имеющим в то же время большое прикладное значение. Говоря о представлении знаний, следует обсудить вопрос: что такое «знание»? Затем, опираясь на имеющиеся у учащихся знания по программированию, уточните, что знания можно подразделить на декларативные и процедурные (способ изложения зависит от того, было ли у учащихся ранее знакомство с идеями, лежащими в основе декларативного программирования). Затем перейдите к вопросу о формах представления (моделирования) знаний и обсудите три типа формальных моделей: логическую, сетевую и продукционную. В отношении чисто логической модели представления знаний уместно ограничиться сообщением о том, что этот путь существует, но в настоящее время потеснен другими. Исчисление предикатов, лежащее в основе логического моделирования знаний, является достаточно сложной математической теорией и рассматривать его в школьном курсе нецелесообразно, тем более что в современной практике компьютерного моделирования оно почти не используется. Обсудите методику введения в сетевые модели представления знаний. Этот способ моделирования опирается на наглядные схемы и вполне доступен. Его основная идея состоит в том, что любое знание можно представить в виде совокупности объектов (понятий) и связей (отношений) между ними. На простом примере реализуйте такое представление и переведите его в графическую форму, а затем поручите учащимся выполнить такое моделирование (на самостоятельно выбранных примерах или предложенных учителем). Пример. Рассмотрим следующий текст: «Из гаража выпущен на линию автобус. Он работает 8 часов и возвращается в гараж. В случае неисправности он следуют в ремонтную зону». Выделим объекты, фигурирующие в этом примере: «автобус», «гараж», «ремонтная зона». Понятия: «работать 8 часов». Отношения: «выпустить на линию», «быть исправным», «быть неисправным», «вернуться в гараж». Теперь построим представление знаний, зафиксированных в этом тексте, ^ виде семантической сети, в которой понятия и объекты представлены в виде вершин сети, а отношения — в виде линий, связывающих соответствующие вершины (рис. 14.6).
Рис. 14.6. Пример семантической сети
В процессе построения модели обратите внимание учащихся на то, что любой текст, описывающий реальные ситуации, всегда можно смоделировать таким образом. Для подтверждения этого предложите им либо построить модели по представленным преподавателем текстам, либо — по собственным (не слишком сложным). Непосредственно в ходе указанных построений у учащихся возникает представление о неоднозначности выполнения задания. Оно вполне справедливо: представление (моделирование) знаний с помощью семантических сетей действительно неоднозначно, что ограничивает применимость этого вида моделирования для решения практически важных задач. При изучении данной темы возникает проблема отсутствия компьютерной поддержки. Поскольку профильный курс информатики без нее вряд ли возможен, то эта тема может рассматриваться лишь как часть профильного курса. Продукционная модель представления знаний реализуется в виде ядра продукции, которое состоит из системы фраз типа «Если А то В» и некоторых вспомогательных элементов. На продукционном принципе моделирования знаний построен язык программирования Пролог, который (вместе с изучением самих принципов) вполне может быть темой профильно-ориентированного курса информатики. Соответствующие вопросы рассматриваются в подразделе 15.7. Разговор о логико-лингвистических информационных моделях уместно использовать и для достижения иных, не указанных выше, общеобразовательных целей — для знакомства с компьютерной лингвистикой. Данная наука также связана с моделированием в сфере языка. Вопросы анализа текстов на естественном языке, машинного перевода, синтеза текстов на естественном языке могут стать темами для рефератов, докладов учащихся. Язык программирования Паскаль как логико-лингвистическая модель. Любой язык программирования является логико-лингвистической моделью языка. Назначением такого языка является запись алгоритма решения задачи в виде, пригодном для ее реализации на ЭВМ. Для изучения данной темы предпочтительным является язык высокого уровня. Так как Паскаль наиболее используем в обучении программированию, дальнейшие обсуждения ограничим им. Поскольку исполнителем программы является ЭВМ, построенная по законам математической логики, то текст любой программы должен быть однозначно интерпретируем. Двусмысленности, свойственные «естественному» языку, здесь неприемлемы. Язык программирования должен быть жёсток и по синтаксису, т. е. правилам приемлемого сочетания символов языка, и по семантике, т.е. смыслу, придаваемому каждой допустимой конструкции. В силу этого встает проблема формального описания правил синтаксиса и семантики языков программирования. В «естественном» языке такая проблема тоже существует; по отношению к синтаксису она регулируется известными правилами правописания, по отношению к семантике — с помощью толковых словарей и т.д. Характерная черта «естественного» языка — принципиальная невозможность сформулировать эти правила полностью, так, чтобы однозначно исчерпать все возможные проблемы. Более того, письменный язык не вполне совпадает с устным, а один диалект естественного языка — с другим. Следует обратить внимание учащихся на то, что в этом проявляется не столько недостаток «естественного» языка, сколько его достоинство, возможность описать не только рационалистическую, но и эмоциональную сферу человека. Проблемы формального описания искусственных языков (языков программирования) возникли при создании первых из них в конце 1940-х — начале 1950-х гг. Естественно, что для подобного описания нужен язык, стоящий «над» тем, который описывается — так называемый метаязык. Из двух чаще всего используемых профессионалами метаязыков в методическом плане представляется более подходящим и простым для понимания язык синтаксических диаграмм Вирта. Еще один методический довод в его пользу — изображение в виде специфического ориентированного графа, что создает некоторое единство при изучении информационных моделей. Цель изучения синтаксических диаграмм состоит в показе идеи построения информационной логико-структурной модели известного учащимся языка. Не следует ставить задачи построения полного набора диаграмм, описывающих язык Паскаль (его можно найти в справочных изданиях). Вначале проведите следующее рассуждение. В любом языке есть изначальные базовые понятия, которые нуждаются не в разъяснении, а в перечислении. В русском языке, например, это буквы кириллицы — они просто есть и не несут особой смысловой нагрузки. В Паскале такую роль играют символы, составляющие алфавит языка, и служебные слова. Признаком такого не нуждающегося в разъяснениях объекта в синтаксической диаграмме является то, что он заключен в овал (или кружок):
Все остальные объекты на синтаксической диаграмме заключаются в прямоугольники. Каждый такой объект нуждается в точном однозначном определении того, что он означает; соответствующее определение дается отдельной для каждого объекта синтаксической диаграммой. Примеры построения синтаксических диаграмм начните с простейших понятий языка. Например, таким примером может быть понятие «программа»: Важную роль на диаграмме играют линии, соединяющие отдельные объекты. В предыдущем примере в этот смысле все просто: линия со стрелкой — направление перемещения по диаграмме. Однако эти линии могут раздваиваться; всякое раздвоение передается словом «или» и означает возможность двигаться по любой ветви. Приводим диаграмму понятия «заголовок», взятую из базовой версии языка Паскаль (обратите внимание учащихся, что пока нет диаграмм для каждого из объектов языка, кроме базовых, описание его не закончено, рис. 14.6):
Рис. 14.6. Диаграмма понятия «заголовок»
С помощью этой диаграммы отрабатываем правильное понимание раздвоений линий. То, что после прямоугольника со словом «идентификатор» линия раздвоилась, означает, что далее следует или символ «точка с запятой», или скобка — в зависимости от смысла выстраиваемой конструкции. Поскольку учащиеся знают основы Паскаля, то на этом этапе методически целесообразно привести примеры содержательных конструкций заголовка — как верные, так и неверные синтаксически: a) program rt; б) program n2 (а, b8); в) program xu (. Вариант в) очевидным образом неверен, но надо доказать это, «проведя пальцем» по синтаксической диаграмме. В этом примере мы использовали то, что учащиеся фактически знают: как можно и нельзя строить идентификаторы. Однако следует подчеркнуть, что пока мы не изобразим синтаксическую диаграмму понятия «идентификатор», наши действия по анализу примера не являются формально полными. Соответствующая диаграмма очень проста:
Методически полезно сопоставить диаграмму с попыткой точного словесного определения, эквивалентного диаграмме. Так, в случае понятия «программа» такое определение очень легко привести: «Программа состоит из последовательно идущих заголовка, блока и точки». Однако словесные эквиваленты быстро усложняются, а иногда становятся неоднозначными. Для доказательства поручите учащимся сформулировать словесно, например, понятие «заголовок». С еще большей очевидностью полезность и однозначность лингвистического моделирование понятий Паскаля проявляется на более сложных конструкциях. Разберите, например, знакомую учащимся конструкцию «оператор множественного ветвления» (рис. 14.7):
Рис. 14.7. Оператор множественного ветвления
Ее полный словесный пересказ весьма длинен, затруднителен и к нему, как правило, можно придраться в связи с неоднозначностью — начинает сказываться неформализованное^ «естественного» (в данном случае русского) языка. Сделайте попытку сопоставления; в качестве домашнего задания можно поручить учащимся проделать то же в отношении различных понятий Паскаля, снабдив их при этом соответствующими синтаксическими диаграммами. В конце изучения данной темы уместно связать однозначность языка программирования, наличие строгого описания смысла конструкций, с процессом трансляции программ. Вопрос этот достаточно сложен, но нетрудно добиться осознания того, что в трансляторе все эти правила заложены и что лексический, синтаксический и семантический анализ текста программы является частью процесса трансляции, так как каждый из учащихся имеет опыт отладки простых программ и видел, что происходит при наличии ошибок. Язык управления учебными исполнителями как логико-лингвистическая модель. Другие логико-лингвистические модели, вполне доступные для изучения, связаны с многочисленными учебными исполнителями. Их использование при изучении информатики является методически полностью оправданным, особенно на ранних этапах. Обсудим план построения соответствующей беседы (урока), базируясь на Черепашке ЛОГО — одном из самых популярных учебных исполнителей. Цель урока — не изучение языка ЛОГО (предполагается, что учащиеся с ним знакомы), а выявление его как логико-лингвистической модели. Однако этот урок вполне уместно сопроводить работой за компьютером. Итак, выбрав некоторую версию «Черепашки» (они довольно сильно различаются друг от друга), начнем разговор о том, что Черепашка ЛОГО есть простейшая модель объекта, который может: • перемещаться по некоторому полю в заданном направлении на заданное расстояние; • менять направление перемещения; • реагировать на достижение границы поля; • оставлять или не оставлять за собой след. Кроме того, «Черепашка» может выполнять достаточно сложные логические предписания (движения в зависимости от условий, циклические движения). Методически урок может быть построен следующим образом. 1. Напомните учащимся о ЛОГО. 2. Сопоставляя движение реальной черепахи с Черепашкой ЛОГО, обсудите, в каком смысле второе является моделью первого (цели моделирования, какие сделаны огрубления и т.д.). 3. Постройте метаязык, описывающий язык управления ЛОГО-черепашкой. Аппаратом для этого может быть язык синтаксических диаграмм Вирта. Возможная последовательность действий: • выявите базовые понятия языка ЛОГО; • выявите основные конструкции; • постройте набор синтаксических диаграмм (частично или полностью, в зависимости от ситуации). |
Последнее изменение этой страницы: 2017-05-05; Просмотров: 621; Нарушение авторского права страницы