Главная страница
Навигация по странице:

  • 5.6.1.2. Система управления пространствами

  • 5.6.1.3. Система синхронизации удаленных пространств

  • 5.6.2. Системы поддержки работы виртуальных групп

  • 5.7. Естественно-языковый интерфейс Не надо очеловечивать компьютеры, они этого страсть как не любят!Программистский фольклор

  • 5.7.1. Диалоговые системы Когда много спрашивают - мало думают и плохо помнят.М. Горький

  • 5.7.2. Вопросно-ответные системы Суди о человеке больше по его вопросам, чем по его ответам.Ф. Вольтер

  • Плохому учатся и без учителя. Античный афоризм

  • 5.7.4. Системы искусственного интеллекта Вопрос "может ли компьютер думать" ничуть не более интересен, чем вопрос "может ли подводная лодка плавать" Э. Дейкстра

  • Мысль умирает первой. Надежда

  • инт.среды. 5. Системы программирования


    Скачать 175.93 Kb.
    Название5. Системы программирования
    Дата05.09.2022
    Размер175.93 Kb.
    Формат файлаdocx
    Имя файлаинт.среды.docx
    ТипДокументы
    #663216
    страница7 из 7
    1   2   3   4   5   6   7

    Множество грехов отпадает, если рядом с колеблющимся стоит свидетель его поступков.
    Эпикур


    Система управления версиями файлов предназначена для отслеживания изменений между различными версиями файлов и разделения доступа к ним. Файлы обычно содержат программы на языках программирования и тексты.

    Проиллюстрируем работу с версиями на примере системы SCCS. При передаче файла под ее управление, система создает новый файл (так называемый s.-файл) в подкаталоге с именем SCCS. Именно в этом дополнительном файле будут отслеживаться и храниться все изменения: /имя_файла/SCCS/s.имя_файла

    Укажем операции, наиболее часто выполняемые над файлом, помещенным под систему управления версиями, и проиллюстрируем их работу на рис. 5.7.



    sccs create <имя_файла> - передать файл под управление SCCS.

    sccs get <имя_файла> - извлечь последнюю версию файла, открытую только для чтения.

    sccs edit <имя_файла> - извлечь последнюю версию для редактирования, открытую для записи, и заблокировать возможность открыть файл для редактирования остальным пользователям.

    sccs unedit <имя_файла> - отменить редактирование и исключить информацию о попытке редактирования, дать возможность открыть файл для редактирования остальным пользователям.

    sccs delta <имя_файла> - вернуть измененную версию и добавить комментарий.

    sccs delget <имя_файла> - комбинация Команд delta И get. Другие, наиболее часто применяемые операции выглядят так:

    sccs prt <имя_файла> - вывести протокол изменений файла, включая комментарии.

    sccs dif fs <имя_файла> - выполнить сравнение двух версий файла.

    sccs info <имя_файла> - перечислить все файлы текущего каталога, открытые на редактирование командой edit.

    Обратим внимание на то, что системой отслеживаются именно изменения (дельты) между версиями, а не сами полные версии, что позволяет занимать небольшое количество дискового пространства. Каталог SCCS часто называют репозиторием проекта.

    Как и все широко распространенные программы утилита SCCS имеет надстройки в виде графического интерфейса, например утилиту vertool.

    5.6.1.2. Система управления пространствами

    Система управления рабочими пространствами пользователей предназначена для обмена результатами работы между отдельными разработчиками через объединение результатов в выделенном рабочем пространстве. Система работает на основе модели "копирование-изменение-слияние" и понятия "рабочее пространство".

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

    Две основные команды работы с этими пространствами (рис. 5.8) представляют собой копирование файлов - из пространства-предка в пространство-потомка (например, команда bringover) и обратно (например, команда putback). Обе эти команды имеют одинаковый набор параметров, позволяющих указать пространство-потомка (опция -w), пространство-предка (опция -р), а также список файлов и/или каталогов. Опция -n позволяет не выполнять реальное копирование, а лишь выдать информацию о возможных действиях.



    Модель "копирование-изменение-слияние" отражает схему организации работы с пространствами. Основная последовательность действий такова:

    1. Создается основное мастер-пространство, от которого разработчики порождают свои рабочие пространства.

    2. После внесения изменений в своем рабочем пространстве разработчик передает их в мастер-пространство.

    3. Все разработчики периодически обновляют свои рабочие пространства из мастер-пространства.

    Основная проблема, которая может при этом возникнуть, - это конфликт изменений в том случае, когда разработчик передает измененные файлы в мастер-пространство, но они уже оказываются измененными другим разработчиком. Можно попытаться избежать такой ситуации, выполняя обновления как можно Чаще или установив регламент для внесений изменений.

    Тем не менее если такая ситуация возникла, то требуется выполнить под управлением разработчика слияние файлов, в ходе которого конфликт будет разрешен. Процесс слияния в большинстве случаев требует интеллектуального подхода при принятии решений в формировании итогового файла. Автоматизировать можно лишь сам процесс формирования файла, например, используя утилиту слияния файлов filemerge.

    5.6.1.3. Система синхронизации удаленных пространств

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

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

    5.6.2. Системы поддержки работы виртуальных групп

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

    • видеоконференции;

    • аудиоконференции;

    • средства группового общения в реальном времени (чаты);

    • средства группового общения с разным временем подключения (доски объявлений, форумы);

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

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

    • Необходимость регистрации пользователя при его входе в систему.

    • Строго авторизованный доступ ко всем данным в системе.

    • Сохранение всей переписки и прочих данных в архиве.

    • Использование системы управления версиями текстов для программ и документации.

    Классификация систем поддержки работы групп по предоставляемым ими возможностям общения была предложена Бобом Йохансеном (Bob Johansen).

    • В одно и то же время, в одном и том же месте (same time, same place).. Это классический случай, когда разработчики имеют возможность встречаться в одном помещении в определенное время. Здесь оказываются полезными следующие системы поддержки:

      • система упорядочивания доступа к данным для показов видеозаписей, слайдов и других документов;

      • система проведения мозговых штурмов и процедур принятия решений. Система дает возможность вносить идеи в список сразу после их возникновения. Как правило, такие системы обладают возможностями для быстрого голосования.

    • В одно и то же время, в разных местах (same time, different place). Системы должны обеспечивать общение в реальном времени. Для этого обычно применяются средства аудио- и видеоконференций.

    • В разное время, в одном и том же месте (different time, same place). Это довольно редкая ситуация, когда существует комната группы, но разработчики не имеют возможности собраться в ней в одно и то же время. Разработчику должна быть предоставлена возможность доступа к репозиторию проекта и всей информации, доступной на данном этапе проекта.

    • В разное время, в разных местах (different time, different place). Системы реализуют возможности ведения конференций, форумов и чатов с асинхронным подключением, возможность доступа к репозиторию проекта.

    • Неограниченные возможности доступа к данным (anytime, anyplace). Эта категория оставлена автором классификации на дальнейшее развитие коммуникационных технологий, когда возможности доступа к данным станут практически неограниченными.

    Обратим внимание на то, что часто тип систем поддержки работы виртуальных групп зависит от рода их деятельности.

    • Группы управления. Управляющие работники компаний, находящиеся в удаленных друг от друга подразделениях, обычно используют видеоконференции.

    • Группы проекта. Разработчикам требуется максимально возможное количество средств общения и доступа к репозиториям.

    • Группы сопровождения. Группам необходимы средства связи и быстрый доступ к данным из любого места.

    Приведем несколько наиболее известных систем поддержки виртуальных групп:

    • Facilitate.com (компании Facilitate.com (http://www.facilitate.com/));

    • Consensus@nyWARE (компании Soft Bicycle (http://www.softbicycle.com/));

    • 3-2-1 IntraNet (компании Internet Media Inc.).

    5.7. Естественно-языковый интерфейс

    Не надо очеловечивать компьютеры, они этого страсть как не любят!
    Программистский фольклор


    Системы, обрабатывающие естественно-языковые высказывания, можно разделить на следующие классы:

    • диалоговые системы;

    • интеллектуальные вопросно-ответные системы;

    • автоматизированные обучающие системы и системы контроля знаний;

    • системы обработки связных текстов.

    5.7.1. Диалоговые системы

    Когда много спрашивают - мало думают и плохо помнят.
    М. Горький


    Программа "Элиза" Венценбаума - одна из первых программ, позволяющая вести диалог с пользователем в свободно конструируемой форме на различные темы. Программа ведет диалог, задавая вопросы. Диалог строится с учетом тематически объединенных рубрик. Рубрика - это некоторая смысловая единица, характеризующая определенный набор слов или словосочетаний по тематике задаваемого пользователю вопроса и составленная из слов и словосочетаний, встречающихся в ответах пользователя.

    Рассмотрим пример ведения диалога. Программа предлагает поговорить по некоторым темам, которые выбираются пользователем из меню. Например, выбрана тема "Языки программирования". Программа начинает диалог: "Давайте поговорим о языках программирования. Какому из языков программирования вы отдаете предпочтение?". Первый вопрос выбирается из первой, начальной, рубрики или всех рубрик темы случайным образом. Текущая рубрика запоминается. Пользователь вводит ответ. Например, "На работе я выполняю проект на языке C++, а дома люблю писать программы на языке РЕФАЛ". Программа ищет в рубрикации ключевые слова из ответа пользователя, определяет на их основе, что сказал пользователь, и, основываясь просто на этих ключевых словах пользовательского ответа, случайно выбирает вопрос из текущей рубрики. Если в текущей рубрике не найдено ни одно ключевое слово, система ищет ключевые слова в других рубриках и при нахождении их меняет текущую рубрику. Например, если в какой-либо рубрике темы "Языки программирования" есть слово "C++", которому соответствует вопрос "Сколько лет вы уже программируете на C++?", то программа задает этот вопрос. Остальные ключевые слова, которым соответствуют какие-либо вопросы, запоминаются и ставятся в очередь. Основываясь на ключевых словах (в примере это были слова С++ и РЕФАЛ), накапливается очередь вопросов.

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

    5.7.2. Вопросно-ответные системы

    Суди о человеке больше по его вопросам, чем по его ответам.
    Ф. Вольтер


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

    Достоинства дескриптивно-рубрикационного подхода в том, что рубрики более четко организованы иерархически, и анализ ответа получается более верным, чем в контекстно-зависимом диалоге, рассмотренном в предыдущем разделе. Однако такой подход имеет те же недостатки, что и в случае диалоговых систем.

    5.7.3. Автоматизированные обучающие системы и системы контроля знаний

    Плохому учатся и без учителя. 
    Античный афоризм

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

    • АОС "Катехизис". Семантический анализатор в системе "Катехизис" был основан на разборе семантической маски ожидаемого высказывания. Здесь маска высказывания задавалась обратной польской записью. Причем, в этой записи сначала были записаны негативные дескрипторы, т. е. те, которые не должны быть найдены в ответе пользователя, а потом позитивные. На введенной пользователем строке высказывания разбиралась одна семантическая маска. Если высказывание в целом не соответствовало маске, то оно считалось неверным в контексте заданного вопроса.

    • Разработанная в начале 80-х годов XX века "ОН Микро" была одной из первых автоматизированных обучающих систем, имеющих семантический анализатор ответа обучаемого. Она предназначалась для создания автоматизированных обучающих и контролирующих программ по различным дисциплинам и диагностическим тестам. Семантический анализатор основывался на семантической маске (интегральном образе возможных ответов обучаемого). В этой системе форма записи маски была в виде суперпозиции логических функций, аргументами которых являлись одноместные предикаты наличия или отсутствия в строке ответа обучаемого маскируемых дескрипторов. В маске в качестве аргументов записывались не значения предикатов, а сами дескрипторы, а значения предикатов наличия или отсутствия дескрипторов в строке ответа высчитывались непосредственно при разборе логического выражения. Для повышения скорости разбора логического выражения и минимизации оперативной и дисковой памяти форма записи логического выражения была нетрадиционной. Данная форма представляла некоторый синтез приемов записи полной скобочной и польской обратной записи.

    • Системы учебного назначения "Адонис", "Сценарий", "Hypermethod". Эти системы предназначены для создания мультимедийных обучающих программ. В анализаторе свободно конструируемых ответов применялся эталонный метод и анализ по ключевым словам. Эталонный метод основан на сравнении ответа с заранее подготовленными эталонами. В зависимости от совпадения ответа с одним из эталонов выбирается управляющее воздействие. При анализе по ключевым словам определялось наличие или отсутствие перечисленных в списке дескрипторов в строке ответа. Анализ синонимов в каждой из этих систем реализован посредством оператора "ИЛИ". При анализе ответа пользователя на вопрос, система накладывает на ответ заданную маску и определяет, удовлетворяет ли ответ такой маске или нет. Если ответ удовлетворяет маске, то такой ответ считается верным, и наоборот.

    • Система автоматической верстки обучающих программных средств "Виртуальный клон". Одна из последних разработок в этой области создана в Тульском политехническом университете. Система предназначена для создания мультимедийных обучающих и контролирующих программ. Кроме визуальных компонентов (меню, списка, выборки и т. д.) в системе существует блок семантического анализа. Автор (учитель) задает семантическую маску путем перечисления дескрипторов (слов), назначения перечисленных дескрипторов в определенные рубрики, присваивание дескрипторам определенных семантических весов и определение связок между дескрипторами. Существует понятие жесткой и мягкой связи между дескрипторами. Жесткая связь определяет, что между дескрипторами, следующими в высказывании в определенном порядке, не должно существовать других слов. Мягкая связь определяет то, что дескрипторы должны находиться один после другого, независимо от того, есть ли между ними какие-либо другие слова или нет. Порядок анализа следующий: система берет первый дескриптор с наибольшим семантическим весом из наиболее важной рубрики, которую определяет преподаватель. Отыскивает этот дескриптор в строке ответа, смотрит, существует ли жесткая или мягкая связь с другими дескрипторами, и ищет дескриптор, который находится в связи с этим. И так до тех пор, пока не будет найден дескриптор, который не имеет семантической связи. В этом случае берется дескриптор наиболее значимый по семантическому весу, в наиболее значимой рубрике. Результат определяется по суммарному семантическому весу найденных дескрипторов.

    5.7.4. Системы искусственного интеллекта

    Вопрос "может ли компьютер думать?" ничуть не более интересен, чем вопрос "может ли подводная лодка плавать?"
    Э. Дейкстра

    Мысль умирает первой. 
    Надежда

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

    • Система семантического анализа компании Artificial Life Inc. Компания Artificial Life Inc. (http://www.artificial-life.com/) разработала систему семантического анализа языка на основе шаблонов. Эта система предназначена как для семантического анализа текстов, так и для анализа отдельных фраз, введенных пользователем. Система позволяет анализировать отдельные документы и выдавать краткий отчет, в котором будет отражен семантический смысл документа, или же вести диалог с пользователем на естественном языке. Диалог с пользователем ведется с помощью робота. Робот может отвечать на вопросы, сам задавать вопросы, что-то рассказывать пользователю и изменять тему разговора. Ядром системы является модуль ALife Smart Engine. Этот модуль содержит функции, реализующие алгоритмы семантического анализа. Alife Smart Engine работает исключительно на шаблонах. Шаблон представляет собой направленный граф, составленный из слов, и поэтому существует поддержка нескольких языков. Необходимо только написать в шаблонах слова на соответствующем языке.

    • Семантический словарь Тузова. В. А. Тузовым [Тузов 1990] предложено решение общей проблемы семантического анализа русского языка. На основе введенной пользователем фразы строится суперпозиция логических функций. Алгоритм анализа основан на поиске семантических связок слов в высказывании. Все семантические связки между словами хранятся в специальном словаре. Система сама определяет, какое слово какому подчинено, где подлежащее, сказуемое, наречие, определение и т. д. Полностью реализован анализ взаимодействия слов по синтаксическим признакам, предлогам, приставкам, суффиксам и т. д. На основе найденных связок слов строится суперпозиция логических функций. Недостатками данной системы являются: необходимость наличия словаря слов и их форм, правил сочетания слов, а также постоянное их обновление.
    1   2   3   4   5   6   7


    написать администратору сайта