Кубанский государственный университет
Опубликован: 24.12.2013 | Доступ: свободный | Студентов: 682 / 9 | Длительность: 24:28:00
Лекция 7:

Языки реляционных баз данных

7.8 Гипотеза Сепира-Уорфа и искусственные языки

Как отличить математика от нематематика? Показывая на север, вы спрашиваете, можно ли попасть в точку расположенную от вас на юге. Тот, кто скажет "можно", и будет математик. А кто такой лингвист? Это человек, который сначала учится говорить на языке, а потом понимать его.

А если серьезно, то для лиц с математическим мышлением характерно стремление строить аксиоматические теории, в которых использован минимум исходных предположений и возможно получение нового знания дедуктивным путем. Инженер скорее будет строить реализуемую модель или несколько частных моделей, может быть плохо связанных и обоснованных, но полезных для решения некоторого класса задач. Строгость рассуждений для него не так уж важна. Он знает, что принудительные попытки ввести строгость, например, в администрировании баз данных, могут привести к плачевным результатам. Насколько я понимаю, лингвист строит своеобразные модели, в которых обычно ищутся новые смыслы наблюдаемых явлений. Он не собирается создавать чего-нибудь вроде информационной системы, но использует аналогии, рассуждения на примерах, обосновывает свои положения ссылкой на типичность или массовость явления.

Мне кажется, что в нашей области полезно сочетать особенности этих трех специалистов, насколько это возможно, и там, где это уместно. Знания каждого из них адекватны некоторому аспекту действительности. Небольшую часть этих знаний мы постараемся использовать.

Рассмотрим используемые нами искусственные языки с точки зрения лингвистики естественных языков.

Давно известна гипотеза Сепира-Уорфа, сформулированная, конечно, для естественных языков. Процитируем Уорфа: "Мы выделяем в мире явлений те или иные категории и типы совсем не потому, что они (категории и типы) самоочевидны; напротив, мир предстает перед нами как калейдоскопический поток впечатлений, который должен быть организован нашим сознанием, а это значит — в основном, языковой системой, хранящейся в нашем сознании. . . Мы сталкиваемся, таким образом, с новым принципом относительности, который гласит, что сходные физические явления позволяют создать сходную картину вселенной только при сходстве или, по крайней мере, при соотносительности языковых систем".

Все, что мы можем выразить в языке, является отображением каких-то мысленных структур, связанных с языком. И ничего с этим поделать нельзя. Первая работа Сепира была сделана на материале языков у американских индейцев, у которых нет понятия "отрезок времени". То, что мы называем отрезком времени, для них — процесс. Они четко знают, что есть некая подготовка к действию, совершение действия, что-то после этого действия следует. Они не могут сказать "через три дня", а только "прожив три дня". Наш отрезок времени для них — это процесс, и его нужно каким-то образом пройти. Все мы находимся в плену тех языков, которыми мы владеем. Если индейцы с их языками показались вам примитивными, вспомните, как трудно было после школьного Бейсика осваивать функциональное и логическое программирование. Как сказала одна моя студентка: "Пролог хороший язык, но если бы в него еще добавили циклы!"

По-видимому, гипотеза Сепира-Уорфа в полной мере применима к искусственным языкам. Прежде всего, мы работаем в рамках терминосистем используемых языков программирования и предметной области, которые не всегда четко фиксируются и имеют наклонность меняться со временем. Вы думаете, что русский крестьянин 200 лет тому назад, не смог бы объяснить что такое самолет? "Да это такая лодка, которая крепится под углом к течению, на колесиках к тросу натянутому поперек реки. Она без усилий человека сама идет на другой берег. Потому и называется самолет".

Термин "язык" воспринимается по-разному в компьютерных науках и в лингвистике. В искусственных языках изучаются в первую очередь синтаксис и прагматика, то есть способ употребления. Смыслами данных занимаются не слишком активно. Как вы увидите позже, семантика недостаточно отражается в базах данных, даже если используются модели, названные в "Модель сущность-связь" семантическими. Необходимы усилия для того, чтобы обогатить базу данных смыслами и создать программное обеспечение, которое эти смыслы воспринимает.

Мы уже освоили язык реляционной алгебры, который играет особую роль эталонного языка в базах данных реляционного типа и определили свойство реляционной полноты.

Заметим, что все естественные языки (ЕЯ) —это наивные модели почти одного и того же окружающего нас мира. Естественно, есть нюансы, определяемые условиями обитания. Естественный язык живет, пока живут его носители и сохраняется их образ жизни. Существует понятие "вмещающая среда". Для естественных языков - это люди, книги, аудио- и видеозаписи, компьютеры и т.д.

Естественные языки складывались в процессе длительной эволюции.

Искусственные языки (ИЯ) существенно отличаются от естественных по происхождению и вмещающей среде, зачастую предполагающей в качестве носителей языка кроме человека еще и компьютер. Сфера их применения существенно уже. Именно поэтому несколько ИЯ часто используются совместно.

Из всех функций ЕЯ в ИЯ в полной мере развита только коммуникативная. Не нужна, естественно, экспрессивная функция (выражение эмоций). Недостаточно развита аккумулятивная функция, обеспечивающая сохранение опыта и знаний или способ обозначения своей идентичности. Обычно, "поговорив" с машиной, мы не можем изменить лексику языка, на котором она с нами общается. В настоящее время знания в базах данных, как правило, не создаются машиной и не аккумулируются. В языках баз данных нет запросов, использующих знания, характерные для предметной области. Например, мы не можем написать запрос на поиск лошадиных фамилий, как в рассказе Чехова "Лошадиная фамилия", в котором персонаж пытается вспомнить фамилию, относящуюся к лошадям, и в самом конце он вспоминает ее — Овсов. Заметим, что использование онтологий уже позволяет решить эту задачу. Подключив онтологии к базам данных, можно формировать необычные запросы, учитывающие не только данные базы, но и их смыслы. Если, например, запрос возвращает пустой ответ, то, может быть, иногда имеет смысл, исходя из семантики задачи, изменить условия запроса и добиться содержательного ответа?

В искусственных языках почти не используется конструктивная функция ЕЯ, которую в контексте ИЯ можно рассматривать как функцию формирования знаний. Например, есть таблицы, в них есть строки определенного формата. А как в базу внести строчку формата, которого нет? Вообще говоря, никак. Даже если заменить вставку строки на команду создания отношения, своего для каждой такой строки, то необходимо сначала выяснить их смысл и определить, что с ними потом делать?

7.8.1 Сочетание двух языков

Существуют смешанные языки программирования, в которых один язык встраивается в другой. Типичный пример — серверные страницы (ASP, JSP, CSP), в которых в текст на одном языке, например HTML, можно вставлять скриптлеты — тексты на другом языке.

В листинге 7.1 показан пример серверной страницы JSP (Java Server Pages). Вмещающий текст написан на HTML, а вставки (выражения, скрипт-леты, объявления) — на Java. Выражение вставляет вычисляемое значение непосредственно в формируемую HTML-страницу. Скриптлет дает часть кода для формируемого метода серверной страницы. Основной язык баз данных табличного или реляционного типа — SQL — с самых первых стандартов предполагался встраиваемым в другие языки: C, Алгол, Кобол, Java и т.д.

<HTML>
<HEAD>
<TITLE>Пример JSP</TITLE>
</HEAD>
<BODY>
<H2>Выражение и скриптлет JSP</H2>
<UL>
<LI>Дата и время: <%= new java.util.Date() %></LI>
<LI><%
java.util.Date hDate = new java.util.Date();
out.println("Дата и время:"+hDate);
%></LI>
</UL>
</BODY>
</HTML>
Пример 7.1. Выражение и скриптлет JSP

Будем называть вербальными искусственные языки, в которых порождаемые инструкции представляют последовательность символов, разделенную на слова. Кроме вербальных языков в информационных системах используют невербальные языки. Это графические, диаграммные языки.

Основные особенности ИЯ, отличающие их от ЕЯ:

  1. ИЯ конструируются эксплицитно (явно), а не складываются в процессах деятельности и общения носителей языка.
  2. ИЯ не могут получать информацию, не имеющую заранее подготовленного шаблона, не могут соотносить ее с уже имеющейся информацией. ИЯ не поддерживают метафорического мышления. В базах данных можно задать только четкий вопрос. То есть можно найти Иванова, но найти людей, в каком-то смысле похожих на Иванова нельзя. Правда, для этого существуют информационно-поисковые системы (ИПС), но пока что с задачей они справляются плохо. Так что и в базах, и в ИПС нужны существенные усовершенствования.
  3. Носители ИЯ качественно неоднородны — человек "с улицы", человек специалист предметной области, человек программист, машина с определенным программным обеспечением и т.д. Выделенные группы также неоднородны. Например, два программиста, работающих с разными объектными языками, не обязательно понимают одинаково все термины объектной технологии.
  4. Обилие невербальных языков и невербальных компонентов ИЯ. Пример языка с вербальной и невербальной компонентой - Query-by-Example, описанный далее в "Язык QBE (Query-by-example)" . Широко применяется встраивание одного вербального языка в другой.
  5. Одновременное использование нескольких языков, своих для каждой модели данных или вида деятельности. Например, создаете интерфейс на Java, по анализу данных выходите в правила на языке Jess, а результаты их работы передаете обратно в Java.
  6. Ограничения на графические языки, вызванные особенностями восприятия и распознавания образов человеком. Известна статья "Волшебное число 7 ± 2", в которой показано, что человек способен одновременно работать с примерно семью кластерами информации — от пяти до девяти в зависимости от способностей человека.

В языках специфичных для предметной области DSL (Domain Specific Language), в системах управляемых моделями MDA (Model Driven Architecture) может сужаться область применения языка а, значит, и число его "носителей". В MDA предполагается существование некоторого универсального интерпретатора. Достаточно разработать модель информационной системы, а интерпретатор обеспечит работу приложения. С одной стороны, это эффективный способ повышения уровня языка разработки. С другой стороны, специфичность языка моделирования может определить узость применения.

Опыт показывает, что если язык или среда разработки используется мало, то он, как минимум, плохо развивается. Например, Eclipse нравится очень многим программистам, и поэтому в 2008 году под Eclipse насчитывалось 1090 утвержденных плагинов, беспрецедентно увеличивших его возможности.

7.8.2 Когнитивное направление в науке

Когнитивизм — это направление в гуманитарной науке, изучающее знание и познание, восприятие мира в процессе деятельности людей, причем ". . . исследуются не просто наблюдаемые действия, а их ментальные репрезентации (внутреннее представление модели), символы, стратегии человека, которые и порождают действия на основе знаний". Иначе говоря, вы можете одно и то же показать в разных формах — в одних это понятно, в других требует какого-то обдумывания, размышления.

За последние два десятилетия когнитивное направление сильно изменило науку. Появились когнитивная лингвистика, когнитивная психология. В настоящее время идет внедрение когнитивизма еще и в компьютерные науки.

Когнитивная лингвистика рассматривает лишь ту часть информации, которая отражается в вербальном языке. То, что называется Usability, — это создание когнитивного интерфейса, т.е. интерфейса понятного человеку. В компьютерных науках уже давно используются вербальные и невербальные языки, а также сочетания невербального и вербального компонентов.

Вы, наверно, обратили внимание, что в математике и компьютерных науках существуют вещи, осваиваемые с большим трудом. Причина в том, что за новыми для обучаемого понятиями еще нет внутреннего естественного для человека образа. У него нет пока возможности, метафорически мысля,

привязать вводимые понятия к уже имеющимся понятиям, а потом их развивать. Следует помнить, что мы создаем приложения, с которыми работают человек и компьютер. Поэтому нужно заботиться не только о компьютере (быстродействие, память, надежность и т.п.), но и о человеке. Человек — самое слабое звено в работе и в процессе создания информационных систем. Если форма представления модели, языка или интерфейса не когнитивна, т.е. с ней в вашем мышлении ничего не связано, то вы многого не понимаете. Очевидно, все, что показывают человеку в интерфейсе, должно быть "схвачено" им, должно работать образное восприятие. Скажем, таблица для человека — это, прежде всего, некий образ, воспринимаемый на уровне подсознания, гештальт.