46420

Визуализация семантического анализа текстов

Дипломная

Информатика, кибернетика и программирование

Технологии анализа естественного языка, моделирования когнитивных процессов понимания, языкового взаимодействия и извлечения информации из текстов объединяются общим термином “Компьютерная лингвистика” (вычислительная лингвистика, computational linguistics)

Русский

2015-01-19

3.57 MB

12 чел.

Визуализация семантического анализа текстов


СОДЕРЖАНИЕ

ВВЕДЕНИЕ…………………………………………………………….4

Глава I. ИСТОРИКО-БИБЛИОГРАФИЧЕСКИЙ ОБЗОР………6

Глава II. РЕЗУЛЬТАТЫ СОБСТВЕННЫХ ИССЛЕДОВАНИЙ.34

  1.  Особенности решения задачи с текстовыми условиями……………...34
  2.  1.1. Время ………………………………………………………….....34

1.2. Деление пространства………………………………………………..37

1.3. Уточнения, связанные с естественными языками……………...……38

  1.  Обзор фундамента CFVR-UGD……………...……………………...40
    1.  Формат представления маркеров и промежутков времени в Radius.42
    2.  Возможный вариант определения объекта……………...………….43
  2.  Интерфейс……………...………………………………………….….44

2.1. Radius……………...…………………………………………………44

2.1.1. Архитектура Radius, взаимодействие режимов……………...……..45

2.1.2.  Режим сцен……………...………………………………………….49

2.1.3.   Режим ресурсов, внешние редакторы……………...…………...…57

2.1.4. Режим геометрии……………...……………………………………64

2.1.5. Возможности расширения: режим материалов, режим настройки/отладки объекта, режим редактирования сцен UGD…………68

2.2. Перспективы развития проекта……………...………………………69

ЗАКЛЮЧЕНИЕ…………….............................................................…….73

ЛИТЕРАТУРА……………...…………………………………………….74

       Условные обозначения, символы, нестандартные сокращения

ЭВМ – электронно-вычислительная машина

РСС расширенные семантические сети

СМИ – средства массовой информации

АЦПУ – аналого-цифровое печатающее устройство 

АСА – автоматический синтаксический анализ

СFVRCertain Frames of Virtual Reality”, создаваемая автором программная платформа имитационного моделирования

UGD – “Underwater game deluxe” (первоначальное название), один из компонентов CFVR, отвечающий за рендеринг и тестирование результатов моделирования

ВВЕДЕНИЕ 

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

Основная часть ранних работ в области представления знаний, то есть науки о том, как преобразовать знания в такую форму, с которой может легко оперировать компьютер, была привязана к языку и подпитывалась  исследованиями в области лингвистики, которые, в свою очередь, основывались на результатах философского анализа языка, проводившегося в течение многих десятилетий. Таким образом, современная лингвистика и бурно развивающаяся наука по созданию искусственного интеллекта, зародившиеся  в середине ХХ века, продолжают расти вместе, пересекаясь в гибридной области, которая и называется обработкой естественного языка или компьютерной лингвистикой. Любые значимые успехи, получаемые ныне исследователями в этой области, являются основой успешного научно-технического и экономического развития как частных фирм, так и на уровне государств. Поэтому исследования и разработки в области автоматической обработки текста в Европе и США привлекают внимание крупнейших частных фирм и государственных организаций самого высокого уровня. Европейский союз уже несколько лет координирует различные программы в области автоматической обработки текста. Например, Human Language Technology Sector of the Information Society Technologies (IST) Programme 1998 - 2000. Один из наиболее интересных проектов в рамках данной программы - SPARKLE (Shallow PARsing and Knowledge Extraction for Language Engineering), в число участников которого входят такие всемирно известные концерны, фирмы и организации, как Daimler-Benz, Xerox Research Centre in Europe и Cambridge University Computer Laboratory. Цель проекта - создание частичных синтаксических анализаторов для основных языков Европейского союза.

В США с 1991 до осени 1998 года существовал проект TIPSTER, организованный Департаментом Обороны и ЦРУ совместно с Национальным Институтом Стандартов и Технологий и Центром военно-воздушных и военно-морских вооружений (SPAWAR). В работе консультативного совета программы участвовали также ФБР, Национальный Научный Фонд и некоторые другие организации. Основной целью программы было сравнение и оценка результатов работы различных поисковых систем и систем реферирования [22].

Глава I. ИСТОРИКО-БИБЛИОГРАФИЧЕСКИЙ ОБЗОР

Компьютерная лингвистика как наука и этапы ее развития

Технологии анализа естественного языка, моделирования когнитивных процессов понимания, языкового взаимодействия и извлечения информации из текстов объединяются общим термином “Компьютерная лингвистика” (вычислительная лингвистика, computational linguistics) [32].

Компьютерная лингвистика возникает как одно из направлений искусственного интеллекта в 50-х годах 20-го века и основные этапы его развития во многом соотносятся с эволюцией подходов и методов в создании искусственного интеллекта в целом.

Толчком к развитию искусственного интеллекта и компьютерной лингвистики послужило, в частности, создание первых ЭВМ в 40-х годах, и, в немалой степени, успешное использование их во время второй мировой войны. Первый этап фундаментального осмысления задач, стоящих перед разработчиками искусственного интеллекта, связывают с классической статьей Тьюринга [57], которая начинается с рассмотрения философски значимого вопроса “может ли машина мыслить” («Can machines think?»). Тьюринг предположил, что о создании искусственного интеллекта можно будет говорить в том случае, если воображаемый компьютер сможет успешно пройти следующий тест: человек, находящийся в другой комнате и задающий вопросы, не может отличить полученные ответы другого человека от ответов машины. Этот тест получил название теста Тьюринга и был подвергнут широкому обсуждению. Важно отметить, что в основе теста лежат проблемы, относящиеся к области автоматической обработки естественного языка и моделирования языкового взаимодействия.

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

В России термин «прикладная лингвистика» получил широкое распространение в 1950-х годах.  Это обстоятельство связано с появлением первых компьютерных систем автоматической обработки текстовой информации (машинного перевода, автоматического реферирования и др.). В русскоязычной литературе распространен подход, при котором термин «прикладная лингвистика» отождествляется с терминами «компьютерная лингвистика», «вычислительная лингвистика», «автоматическая лингвистика», «инженерная лингвистика [3]. Несмотря на большое разнообразие методов, применяемых в различных направлениях прикладной лингвистики,  можно выделить общие характерные для нее аспекты — ведущую роль метода моделирования, экспериментальный характер прикладных методик, комплексное сочетание разных наук.

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

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

Основные черты знака:

  1.  Способность знака выступать как заменитель обозначаемого;
    1.   Нетождественность знака и денотата  - знак  никогда не может полностью заменить обозначаемое;
    2.   Многозначность соответствия «знак-денотат») (конвенциональность обозначений).

Многозначность соответствия «знак-денотат» проявляется как в том, что один и тот же знак может означать разные объекты (омонимия или, иначе, полисемия знака), так и в том, что один и тот же денотат может определяться разными знаками. В последнем случае знаки называются синонимичными.

Даже классификационный индекс документа допускает некоторый произвол в выборе, зависящий от интерпретации индексатора. Если же индексирование выполняется автоматически, то этот элемент произвола загоняется в алгоритм индексирования [34].

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

Таким образом, знак может не только обозначать конкретный денотат, но и указывать его место в мире, его отношение к универсуму. Следовательно, знак — это не только условная метка обозначаемого, но и ярлык, определяющий какие-то свойства обозначаемого. Раздел языкознания, изучающий значение единиц языка, называется  сема́нтика (от древнегреческого σημαντικός — обозначающий). В качестве инструмента изучения применяют семантический анализ [27]. Теория семантического анализа направлена на решение задач, связанных с возможностью понимания смысла фразы и выдачи запроса поисковой системе в необходимой форме. Сема́нтика в программировании — система правил определения поведения отдельных языковых конструкций и определения смыслового значения предложений алгоритмического языка. [9].

 Идея языка как действия была сформулирована в рамках философских исследований лингвистической направленности в ХХ веке. «Грамматическая» модель описания естественных языков была впервые предложена американским лингвистом и психологом  Ноамом Хомским в середине 1950-х годов для анализа английского синтаксиса [39] и независимо от него Джоном Бэкусом для анализа синтаксиса языка Algol-58. На данном этапе выяснилось, что проблема понимания языка является гораздо более сложной, чем представлялось. Для понимания языка требуется понимание предмета и контекста речи, а не только анализ структуры предложений.

Одной из самых ранних работ по устранению неоднозначности является исследование Уилкса [59] по теории семантики предпочтений, позволяющей свести к минимуму количество семантических аномалий.  В этом направлении не без успеха проводились работы и другими авторами, в результате чего получили более широкое распространение методы, основанные на  использовании явной байесовской инфраструктуры [38].

В 1963 году в соавторстве с французским математиком Марселем Шютценберже Хомский систематизировал иерархию классов грамматик и соответствующих им классов формальных языков. Как и семантические сети, контекстно-свободные грамматики (или грамматики структуры словосочета- ний) по сути представляют собой повторное изобретение метода, использовав- шегося еще древнеиндийскими филологами.  В дальнейшем рядом авторов были разработаны другие варианты и разновидности грамматик – грамматика атрибутов, грамматика определенных выражений, грамматика метаморфоз и другие. Наиболее удачными вариантами формальных грамматик, относящихся к вычислительной лингвистике, т.е. машинно-ориентированных грамматик, являются системы, разработанные в рамках проекта Linguistic String Project в университете штата Нью-Йорк [53],  [54] и проекта XTAG в университете штата Пенсильвания [42]. Удачным вариантом системы DCG является Core Language Engine [35].

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

Среди современных направлений компьютерной лингвистики можно выделить следующие:

  1.  Машинный перевод 
  2.  Речевые технологии (в частности, автоматическое распознавание речи,

         ASR)

  1.  Лингвистическое обеспечение информационного поиска 
  2.  Автоматическое извлечение данных (Data Mining)
  3.  Автоматическое реферирование текстов
  4.  Создание электронных лексикографических ресурсов (словарей, онтологий)
  5.  Корпусная лингвистика (создание и использование электронных корпусов текстов)
  6.  Разработка вопросно-ответных систем 

Часть данных направлений, а также разработка систем автоматического анализа на разных языковых уровнях: морфологических анализаторов (парсеров), систем автоматического синтаксического анализа и т.п. часто выделяют в отдельную область - автоматическая обработка естественного языка (Natural Language Processing, NLP — общее направление искусственного интеллекта и компьютерной лингвистики [5].

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

Но все же первыми системами NLP, способными решать реальные, хотя и весьма узкоспециализированные задачи, стали, по-видимому, системы формирования ответов на вопросы по бейсбольной статистике BASEBALL в 1961 г. [44] и система Lunar, созданная Вудсом для ответов на вопросы об образцах доставленного «Аполлоном» на Землю лунного грунта [61]. В России термин «прикладная лингвистика» получил широкое распространение в 1950-х годах.  Это обстоятельство связано с появлением первых компьютерных систем автоматической обработки текстовой информации (машинного перевода, автоматического реферирования и др.). В русскоязычной литературе распространен подход, при котором термин «прикладная лингвистика» отождествляется с терминами «компьютерная лингвистика», «вычислительная лингвистика», «автоматическая лингвистика», «инженерная лингвистика» [3].

С возникновением нового поколения компьютеров, а также первых языков программирования, начались эксперименты с машинным переводом. В 1960-х годах подобные исследования начались и в СССР. Основной областью разработок стали системы машинного перевода, наиболее известная из которых – ЭТАП – разрабатывается и по сей день в «Лаборатории компьютерной лингвистики» Института Проблем Передачи Информации.

Главный фокус в применении компьютера для анализа естественного языка сместился, с одной стороны, на создание экспериментальных систем, моделирующих коммуникативное человеко-машинное взаимодействие в ограниченной предметной области, с другой стороны, на создание реальных приложений, в той или иной степени использующих ограниченный естественный язык, например, создание Информационно-поисковых систем. В конце 80-х гг. связи с развитием сети Интернет и Всемирной паутины объем доступных в электронном виде текстов возрос в разы. Это привело к качественному скачку в технологиях информационного поиска. Возникли совершенно новые задачи и технологии обработки текстов на естественном языке. Необходимость быстрой обработки огромного потока неструктурированных данных привела к тому, что основной интерес в сфере автоматической обработки естественного языка переместился на разработку статистических методов. Методами статистического анализа решались такие задачи, как выделение тематически значимых элементов из текста, автоматическое разбиение текстов на кластеры, объединенные одной тематикой, например, автоматическое объединение новостных сообщений, относящихся к одному и тому же событию. Такие задачи как распознавание и генерация речи, создание поисковых систем до настоящего времени решаются с минимальным участием лингвистов. Это обусловлено использованием при решении вышеупомянутых задач в основном статистических методов, методов машинного обучения. Однако новый количественный скачок в объеме доступного в сети контента (любое информационно значимое наполнение информационного ресурса (например, веб-сайта)) привел к тому, что на первой план вышла проблема автоматического извлечения релевантной информации и представления ее пользователю в структурированном виде, упрощающем ее дальнейшую обработку. Для решения задач такого класса оказался востребован когнитивный анализ текста, невозможный без более глубокого лингвистического анализа (не только на уровне морфологии, но и на уровне синтаксиса и семантического представления текстов) а также без моделей представления знаний и соотнесения знаний со способом их языкового выражения (разработки лингвистических онтологий и лексикографических ресурсов). “Интернациональный” характер сети привел к повышенному интересу к мультиязычным системам, задача создания систем машинного перевода вновь оказалась среди наиболее актуальных задач прикладной лингвистики. Современные поисковые машины в условиях жесткой конкуренции вынуждены предлагать пользователю все новые сервисы интеллектуального анализа текстов: автоматический анализ новостей: автоматическое объединение текстов, поступающих от новостных агентств в “новостные” сюжеты, определение “тональности” публикации, снабжение текста переводом на язык пользователя (всплывающее окно перевода в Google) и др. [23]. В работе [16] рассматриваются инженерно-лингвистические решения в системах с «полным» лингвистическим анализом – это системы 1-го и 2-го поколений: ДИЕС1, ДИЕС2, Логос-Д и системах с «фактографическим» подходом – интеллектуальных системах поддержки аналитических решений (ИСПАР), где целью анализа является выделение сущностей и связей из текстов – это системы 3-го и 4-го поколений.

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

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

  1.  фонетики (для систем обработки устной речи),
  2.  морфологии, синтаксиса (например, для современных поисковых систем)
  3.  семантики и лексики (например, для создания современных электронных словарных систем и семантического веба)

Лингвистические компоненты автоматического анализа текста

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

  1.  токенизация (Tokenization) (выделение слов и границ предложений);
  2.  морфологический анализ (приведение всех форм слова к одной словоформе).

В зависимости от конкретных задач некоторые системы включают также и другие модули:

  1.  модуль синтаксического анализа (синтаксический парсер), в задачи которого входит представление предложения в виде синтаксической структуры, например,  дерева зависимостей или дерева непосредственных составляющих) или частичного синтаксического анализа (shallow parsing), либо модуль выделения в тексте отдельных словосочетаний (chunker).
  2.  модуль семантического анализа, который, устанавливает семантические отношения между словами в тексте, объединяет различные языковые выражения, относящиеся к одному и тому же понятию и т.п. Работа семантического модуля обеспечивается с помощью различных лексикографических ресурсов, включая инфомарционно-поисковые тезаурусы и лингвистические онтологии.
  3.  модуль разрешения анафоры (anaphora resolution) и др. [49].

На современном этапе технологии создания автоматических морфологических и синтаксических анализаторов (парсеров) достаточно хорошо разработаны. Принципиальным вопросом при разработке парсеров является выбор базовой алгоритмической модели, лежащей в основе. В синтаксическом анализе широко используются порождающие грамматики, в морфологическом - чаще представление в виде конечных автоматов. Что касается методов анализа, то на ранних этапах такие системы строились в основном на алгоритмической основе, сейчас при создании парсеров широко используются различные статистические методы, применяются методы распознавания образов (методы машинного обучения = методы самообучения), в частности, различные статистические модели, нейронные сети, так называемый bootstrapping. В основе перечисленных технологий лежит следующий принцип: на вход системе подается некоторый “обучающий” корпус лингвистически размеченных данных (т.е. снабженных той или иной лингвистической информацией, например, корпус, где каждому слову приписана его морфологическая характеристика) [15].

Анализируя такие обучающие данные, система сама извлекает оптимальные параметры для математической модели, лежащей в ее основе. Дальше эти параметры используются уже в самих анализаторах. В результате, основной фокус перемещается на создание корпусов, снабженных правильной лингвистической разметки и создание необходимых словарных источников, используемых для обучения. Специалистами в области компьютерной лингвистики создаются интегральные пакеты автоматического анализа текста, включающие всю технологическую цепочку лингвистической обработки. Нередко такие системы усиливаются модулем разрешения анафоры и распознаванием именованных сущностей (имен собственных), например, система Gate, NLTK (natural language toolkit) и др. [21].

Проблема автоматического "понимания" повествовательных текстов является одной из актуальнейших в области современных информационных технологий. Под  "пониманием" текста информационной системой подразумевается автоматический процесс соотнесения информации, содержащейся в тексте, с информацией, имеющейся в базе знаний информационной системы. Результатом процесса является представление информации, содержащейся в тексте, на формальном языке базы знаний. Полученное таким образом представление текста часто называют дискурсом текста, а сам процесс получения дискурса – дискурсивным анализом текста. Ключевым моментом дискурсивного анализа является выбор структуры дискурса. Различают два уровня структуры: уровень, на котором представлена система связей и отношений между крупными фрагментами текста, его макроструктура,  и уровень микроструктуры, когда целью анализа становится выявление минимальных дискурсивных единиц текста и первичных связей и отношений между этими единицами [18]. Выделяют  три типа таких первичных связей:

- референциальные, устанавливающие отношения референции для обозначенных в тексте объектов,  а также между объектами текста и имеющимися в базе знаний сущностями;

- временные, отражающие совпадение во времени или временные последовательности процессов, ситуаций, изменений состояний, упоминаемых в тексте;

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

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

Лингвистическое обеспечение поисково-информационных систем

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

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

  1.  автоматическая рубрикация документов – тексты разбиваются на группы по темам и жанрам. Например, пользователя, интересующегося новейшими научными разработками в области мобильных телефонов не интересуют тексты чисто рекламного характера
  2.  автоматическая классификация и кластеризация текстов: разбиение текстов на группы в соответствие с заранее заданным классификатором (классификация) или же на основании тематически близкого содержания (кластеризация). Часто в качестве ответа на запрос пользователя выдается только несколько наиболее релевантных заголовков или резюме, а пользователем далее может более подробно посмотреть документы, попавшие в один кластер. Особенно активно такие технологии применяются в новостных сервисах, где новости по событиям группируются в “новостные сюжеты”, например, www.news.yandex.ru, www.google.ru, и т.д.
  3.   автоматическое реферирование – генерация текста из наиболее значимых предложений документа или группы документов. Активно применяется, например, в новостных сервисах [21].

Обзор ранних работ в области информационного поиска приводится в [52],  здесь же представлен принцип ранжирования вероятностей. В книге [59] приведены современные исследования и разработки, позволяющие эффективно индексировать, применять сжатие и выполнять запросы применительно к совокупности текстов гигабайтовых размеров.

В рамках конференции TREC, организованной Национальным институтом стандартов и технологии (National Institute of Standards and TechnologyNIST) при правительстве Соединенных Штатов, проводятся ежегодные соревнования между системами информационного поиска и публикуются труды с описанием достигнутых результатов.

Задачи извлечения информации из текста, извлечение знаний

(Data Mining)

Бурный рост объема текстов, в которых ведется поиск, привел к тому, что те статистические методы, которые сделали возможным быстрый и эффективный поиск по большим массивам неструктурированных данных, стали “мешать” эффективности этого поиска. Преимущества этих методов - отсутствие необходимости подробного семантического описания предметной области и содержательного анализа текстов, породило и его ограниченность.

В последнее время на первый план выходит задача предварительной “когнитивной обработки” текстов. С одной стороны, борьба с “переизбытком” выдаваемой пользователю информации вылилась в то, что современные системы анализа текстов от задачи информационного поиска: найти документ по заданной тематике, переходят к задаче извлечения информации из текстов (information extraction) и более глубокого анализа извлеченной информации - извлечения знаний (data mining). В результате пользователь по своему запросу получает не “мешок” текстов, а некоторые “суммирующие” данные, определенным образом структурированные. Если приписать тексту некоторые “семантические” метки, это позволит частично уменьшить количество “шума” - текстов не из той области знаний, которая интересует пользователя, и поможет решить проблему омонимии [47]. Таким образом, на первый план выдвигается задача разработки специальных языков и систем, описывающих понятийную структуру той или иной области знаний - тезаурусов и онтологий, в том числе и лингвистически-ориентированных онтологий, создание так называемых универсальных языков.

Новые сервисы, активно использующие лингвистические компоненты анализа (синтаксический и семантический анализ, разрешение анафоры, решают следующие задачи:

  1.  извлечение из текста именованных сущностей - персон, географических названий, названий организаций и т.п. (а также вычисление "популярности" этой сущности на основе частоты ее упоминания);
  2.  извлечению фактов (например, автоматическое извлечение из новостных сообщений информации о выступлении политического деятеля, биографии ньюсмейкера) в СМИ; информации об изменении в финансовом положении некоторой компании и т.п.);
  3.  извлечение мнений (opinion mining/extraction, sentiment extraction/analysis, subjuctivity analysis и т.п., например, для изучения покупательского спроса используется автоматический анализ блогов, в которых обсуждаются те или иные товары или для изучения популярности того или иного политического направления);
  4.  автоматическое реферирование (например, снабжение аннотацией кластера новостных сообщений).

Одними из первых программ по извлечению информации являются Gus [37] и Frump [41].

Новейшие результаты исследований по извлечению информации освещаются на ежегодных конференциях MUC (Message Understanding Conference), спонсором которых выступает правительство США.

Системы, моделирующие языковое взаимодействие

Одним из актуальных вопросов компьютерной лингвистики является моделирование языкового взаимодействия, включая языковое взаимодействия компьютера с человеком. Эта задача рассматривалась как одна из задач искусственного интеллекта [25].

В рамках такой задачи был создан целый ряд экспериментальных систем, призванных проверить модели, таких как процедурная модель Винограда, модель концептуальных схем Шенка и др. Первый обзор проблемы синтеза текстов, изданный на русском языке, появился в 1990 году в сборнике “Искусственный интеллект” [11], [20], [6], [13], [10], [28], [30]. В нем кратко перечислена основная проблематика моделирования языкового взаимодействия: теория дискурса, фокус внимания, референция, проблема представления знаний (основными моделями представления в компьютерных системах автоматического понимания естественных языков, как и во многих других системах искусственного интеллекта являются фреймы и концептуальные схемы) [25].

К прикладным системам, включающим модель языкового взаимодействия, относятся такие системы, как:

  1.  вопросно-ответные системы 
  2.  системы генерации текстов.

Метод визуализации в процессе компьютерного моделирования 

Визуализация, как совокупность приемов и методов, имеющих конечной целью  наглядное представление результатов в виде оптического изображения (схем, рисунков,  фотографий, графиков, диаграмм, структурных схем, таблиц, карт и т. д.), намного более полно обеспечивает интерпретацию и анализ полученных данных. Очень эффективно визуализация используется для представления изначально не зрительной информации (например, температуры, плотности населения, распределения уровней электромагнитных полей и т. д.). Считается, что зрение обеспечивает человеку восприятие около 90 %  окружающей его информации. Рассматривание изображений позволяет исследовать пространственные структуры, имеющиеся в объекте; распределение оптических плотностей и цветов — отражает важнейшие сведения о свойствах реальных и виртуальных объектов окружающего мира. Мир визуализации служит отражением набора модельных объектов, соответствующих данной предметной области. Объекты имеют наборы свойств и обладают особенностями. При этом параметры свойств и особенностей могут меняться в течение времени в соответствии с ходом вычисления, что позволяет говорить о поведении объектов вычислительной модели. Мир визуализации можно считать многомерным пространством, в котором в качестве отдельных измерений рассматриваются (вместе с традиционными пространственными измерениями и временем) изменяющиеся свойства, служащие самостоятельными значащими единицами визуального языка.

Вместе с тем, делая не совсем строгое обобщение схемы компьютерного моделирования, можно говорить о физическом, математическом, алгоритмическом и программном уровнях вычислительной модели и о модельных объектах разного уровня (о физических, математических, алгоритмических и программных объектах), которым на разных этапах могут соответствовать визуальные объекты [26].

Под компьютерной визуализацией понимается методика перевода абстрактных представлений об объектах в геометрические образы, что дает возможность исследователю наблюдать результаты компьютерного моделирования явлений и процессов. При этом алгоритмические и программные методики генерации изображения относятся непосредственно к машинной графике [2].

Процесс визуализации с помощью компьютерных программ называется ре́ндерингом (от англ. rendering — изображение, перевод, переложение, интерпретация). Рендеринг — процесс получения изображения по заданной математической модели (алгоритму программы), на основании имеющихся сведений о строении и свойствах некого объекта.

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

Традиционно выделяются следующие подобласти компьютерной визуализации:

- научная визуализация;

- визуализация программного обеспечения;

- информационная визуализация. 

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

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

Исходя из понимания функции компьютера как машины, обрабатывающей и порождающей информацию, следует рассматривать еще один вид визуализации — информационную визуализацию. Термин информационная визуализация относится к визуальному описанию и представлению абстрактной информации, получаемой в результате процесса сбора и обработки данных различного типа и назначения. Как правило, эти данные не имеют естественного и очевидного графического представления. Информационная визуализация объединяет методы научной визуализации и человеко-машинного взаимодействия. Методы информационной визуализации тесно связаны с  дисциплинами, связанными с получением новых знаний из баз данных (data mining или knowledge discovery) и визуальной аналитикой (visual analitics). 

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

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

Методы визуализации могут быть разделены на представления данных в одном, двух и трёх измерениях. Наиболее распространена двумерная визуализация — изображение на плоскости, на листе бумаги или на экране. Однако благодаря развитию компьютерной техники и программного обеспечения всё большую роль начинают играть методы объёмной (3D)-визуализации, как динамической (анимация, псевдостереоскопия), так и стереоскопической.

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

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

Некоторые методы визуализации приведены ниже.

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

2. График. Графики предназначены прежде всего для иллюстрирования математических понятий, функциональных зависимостей или связей между объектами (теория графов).

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

  •  Диаграммы, основанные на применении графов, удобны для представления маршрутов, путей, связей между объектами;
  •  Диаграммы, схожие с графиками, представляют связь между двумя переменными, которые принимают либо дискретный, либо непрерывный набор значений.

Можно говорить о видах отображения как о стандартных или придуманных для данного случая методиках визуального представления данных, своего рода визуальных процедурах, которые при реализации в конкретных визуальных средах и при подстановке реальных данных выводятся на те или иные графические устройства. Кроме этого, в такой “процедуре” (т.е. в виде отображения) могут предусматриваться возможные изменения изображений, включая анимацию, и допустимые способы взаимодействия с картинкой. Именно смена значимых и значащих картинок при возможном взаимодействии с изображением — вот внешняя сторона визуализации. Эти картинки (графические выводы) являются воплощением абстрактного понятия вида отображения [2]. Многие сложности визуального представления информации и запросов к современным информационным системам состоят в том, что (естественно) абстрактные представления проектировщиков о структуре файловых систем и систем баз данных (как правило, это структуры типа “дерево”) предлагаются пользователям в качестве основы для организации запросов. Большинство запросов в визуальных информационных системах (или системах с элементами визуализации) основано на меню и дальнейшей детализации запроса за счет “спуска” по структуре дерева. Существуют примеры информационных визуальных систем, где запрос осуществляется за счет десятка (и более) манипуляций с объектами, переключений между окнами и выбора из меню. Существуют идеи представления данных в пользовательском интерфейсе программы, такие, как: метафора молекулы, комнаты, сферы, метафора «рыбий глаз», «полет над пространством» [1].

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

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

Графические выводы являются воплощением абстрактного понятия вида отображения.

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

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

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

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

При разработке программного обеспечения активно используются системные метафоры, служащие средством взаимодействия и взаимопонимания между проектировщиком и заказчиком - пользователем системы. Системная метафора обеспечивает поддержку ментальной модели участников модели и формирует логическую архитектуру будущей системы [48]. Метафора приписывает объекту признаки и потому обладает гипотетической природой. Следует рассматривать метафоры интерфейса, метафоры визуализации и системные метафоры (метафоры проектирования системы).

Метафоры интерфейса - наиболее популярны в современной литературе. Именно они актуализировали сами исследования в области метафоры. Из достаточно умозрительного рассмотрения одного из феноменов языка теория метафоры превратились в инструмент проектирования конкретных программных систем. Дальнейшее развитие методик представления данных выявило наличие метафор визуализации, как самостоятельного класса метафор “научного” типа. Появилась необходимость в разработке теории компьютерной метафоры, которая рассматривается  как важная составляющая теории человеко-компьютерного интерфейса и теории визуализации. С 80-х годов в связи с визуальным программированием началось  использование понятия метафоры. Например, говорилось, что данная система поддерживает различные графические метафоры, известные в компьютерных науках, в частности конечные автоматы, блок-схемы, графы потоков данных. Соответствующая метафора, в свою очередь, определяла язык визуального программирования, при создании которого осуществляется выбор определенного аспекта программы, выбор графической модели и выбор соответствия между аспектами программы и графикой, одновременно определяющего поведение графической модели. Метафора продолжает быть средством описания новых понятий в компьютерных науках. Опубликованы фундаментальные исследования в области метафоры интерфейса и визуальной метафоры, например работы А. Блэквэлла [36]. В настоящее время в литературе концепция визуальной метафоры интерфейса основана на представлении новых или достаточно необычных для пользователя явлений посредством других явлений, хорошо ему известных из повседневной жизни, причем эти явления должны иметь те же основные свойства, что и явления, которые они объясняют [56]. Определим метафору визуализации как отображение, ставящее в соответствие понятиям и объектам моделируемой прикладной области систему сближений и аналогий и порождающее некоторый изобразительный ряд (набор видов отображения) и набор методов взаимодействия с визуальными объектами.

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

На начальных этапах эпохи развития визуальных языков программирования (конец 70-х – начало 80-х годов) считалось, что “визуальный язык программирования — язык, который использует некоторые визуальные представления (в добавление или вместо слов и чисел) для обеспечения того, что в противном случае было бы выражено в традиционной форме” [55]. Сразу после создания первых ЭВМ под визуализацией результатов счета понимался любой вывод цифр или символов на ленту примитивного печатающего устройства, лист АЦПУ или экран дисплея. Постепенно под визуализацией стал пониматься лишь графический вывод, вывод двумерных графиков или трехмерных поверхностей. Публикация доклада “Визуализация в научных вычислениях” в ноябрьском номере журнала ACM SIGGRAPH Computer Graphics за 1987 год положила начало новой эре в истории компьютерной визуализации.

В известном докладе по визуализации 1987 года сказано, что “визуализация есть способ увидеть невидимое”. Авторы одного из электронных учебных пособий, перефразируя известное высказывание Р. Хэминга (“цель вычислений - понимание (инсайт), а не числа”) для случая визуализации, сформулировали следующее: “цель визуализации - понимание (инсайт), а не картинки”.

Рассмотрение когнитивных аспектов визуализации естественно приводит к необходимости анализа знаковой природы визуализации и, следовательно, вычленения языка визуализации. Тогда очевидно, что проектирование системы визуализации требует, прежде всего, разработки соответствующего языка визуализации. При этом необходим также анализ прикладной области, служащий для выявления подлежащих визуализации сущностей и их особенностей. Чрезвычайно важным представляется также изучение пользователей систем визуализации и создание моделей пользователей, пригодных для описания требований к специализированным системам.

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

Системы и ресурсы для обработки текста

Автоматическая обработка текстов на естественном языке  подразумевает наличие как программных систем, обрабатывающих тексты, так и корпусов, содержащих эти тексты. Общие проблемы создания программных систем рассматриваются в работе [8]. В данной работе под корпусом текстов понимают «набор текстов доступных для машинной обработки, на основе которых можно проводить какие-либо лингвистические исследования» [50].

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

GATE. Система GATE (General Architecture for Text Engineering):

  •  предлагает инфраструктуру для разработки и внедрения программных компонент с целью обработки текста на естественных языках.
  •  определяет архитектуру, то есть способ организации данных и программных компонент, обрабатывающих текст,
  •  предлагает реализацию архитектуры (набор классов, который может встраиваться в программные приложения независимо от GATE),
  •  помогает разрабатывать и использовать компоненты с помощью графического инструментария [40].

Система GATE, написанная на языке Java [7],  [12], [33], [46], имеет модульную структуру, предоставляется на правах лицензии GNU library licence. По мнению специалистов, достоинство GATE заключается в возможности проводить численные измерения текста, которые можно повторять. В работе [45] критикуют систему GATE за плохую масштабируемость и за то, что она плохо справляется с большими коллекциями документов, но все же отмечают «большой потенциал GATE как инструмента для планирования и разработки приложений автоматической обработки текстов в области Information Extraction».

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

В системе GATE предложен следующий способ автоматической аннотации текстовых документов. GATE позволяет связать подстроку текста документа (слово, фраза, предложение) с аннотацией. Аннотации описывают иерархическое разбиение текста, простой пример – это разбиение текста на слова (tokens). Более сложный пример (при полном синтаксическом анализе) – это декомпозиция предложения на именную, глагольную группы слов с выделением главного слова и т.п.

Система GATE позволяет обрабатывать документы на  английском, французском, немецком, арабском, китайском и др. языках. Это определяется наличием соответствующего модуля. Отсутствуют (по крайней мере, неизвестны автору) доступные модули в системе GATE для морфологической обработки русского языка. Возможно поэтому система GATE редко упоминается в системах обработки текстов на русском языке. Исключение представляют работы [31], [43], где представлены архитектура и реализация системы OntosMiner.

Для оценки качества функционирования систем Information Extraction (IE) используются такие метрики, как: точность (Precision), полнота (Recall) и качество (F-measure). В работе [31] предлагается новая система метрик, в которой «аннотация представляется в формате, где явно специфицированы тип выделенного объекта (отношения) и его атрибуты, а также расположение аннотации в тексте относительно его начала (Offsets)». С одной стороны, указание типа объекта и положения подстроки в тексте (Offsets) сужает понятие объекта (именно объектами оперируют метрики точность, полнота и качество). С другой стороны, новые метрики подходят для оценки качества функционирования IE систем, построенных на основе GATE, поскольку тип объекта и положения подстроки в тексте включены в аннотации GATE.

Небольшой обзор систем, подобных GATE, а именно: KIM, TEXTRACT, Textpresso, Ogmios, представлен в работе [45].

Проект Диалинг

В данном подразделе дано краткое описание модулей автоматической обработки текста и морфологических словарей, разработанных рабочей группой Aot.ru [29]. Изначальный проект, посвящённый разработке русско-английского машинного перевода, назывался Диалинг. Разработанный процессор Диалинг включает графематический, морфологический и синтаксическим модули. Программная реализация процессора выполнена на языке C++. «Неоспоримым достоинством процессора Диалинг является его завершённость: программная реализация доведена до уровня промышленного использования, – система характеризуется приемлемой скоростью анализа и устойчивостью на открытом пространстве реальных текстов» (цит. по [24]).

Морфологический словарь, или лексикон, содержит все словоформы одного из языков: английского, немецкого или русского. Словарь предоставляется в двух вариантах: с возможностью редактирования и в бинарном варианте. Оболочка редактирования словаря позволяет выполнять: поиск в словаре по лемме, словоформе, морфологической интерпретации, редактирование словаря. Словарь в бинарном формате предоставляет возможность выполнять: морфологический анализ (получение по словоформе леммы, её свойств, уникального ID леммы, морфологических характеристик входной словоформы1 и морфологический синтез (получение по уникальному ID леммы всей парадигмы слова со всеми словоформами и их морфологическими характеристиками). Бинарное представление словаря оптимизировано для проведения морфологического анализа. Основу этого представления составляет конечный автомат. Работает морфологическое предсказание слов, отсутствующих в словаре [29], [51].

В Институте лингвистики  РГГУ авторами [17] предпринята попытка разработки модуля автоматического синтаксического анализа (АСА) русского текста. Автоматический синтаксический анализ в данном случае рассматривается ими как самостоятельная составная часть системы автоматического понимания естественноязыкового текста, работающая после модулей графематического и морфологического анализа и перед модулем семантического анализа текста. Для этой цели А.М. Баталиной и М.Е. Епифановым создана специальная программная среда ЭСЛА. Предложенный авторами [19] модуль синтаксического анализа является частью анализатора текста русского языка SMART (на нынешний момент разрабатывается), ориентированного на грамматический разбор текстов на литературном русском языке.

               

                                  Резюме

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

В то же время в учебниках, справочниках и словарях по визуальному программированию однозначно констатируется, что даже наиболее популярные системы типа Visual C, Visual BASIC и Delphi, которые осуществляют визуальную поддержку процесса объектно-ориентированного проектирования и программирования, не могут претендовать на звание классических систем визуального программирования, несмотря на распространение такого наименования. Опыты формализации визуальных языков показывают отсутствие значимых результатов для реальных проектов. Следовательно, необходима разработка специализированных систем визуализации, при проектировании которых максимально учитываются нужды конкретных пользователей, решающих конкретный класс задач. Одной из важнейших задач проектирования является обеспечение прагматических свойств систем визуализации, которые должны оцениваться с субъективных, пользовательских позиций. В связи с этим можно сформулировать субъективный, ориентированный на пользователя подход к проектированию специализированных систем визуализации. Уже указывалось, что выделяются три аспекта разработки систем компьютерной визуализации - собственно компьютерная графика, инженерия программного обеспечения и набор “человеческих”, когнитивных факторов, связанных с проблематикой мышления и восприятия пользователя. В связи с нашим подходом в данном исследовании значительное внимание уделяется именно когнитивной составляющей. Два других аспекта, обеспечивающие адекватность в визуализации, воплощены в нашем исследовании в составе технических и программных средств на основе разработанных программных модулей, которые можно использовать автономно для полуавтоматического определения тематики текстовых массивов на языке, близком к естественному.   

   

    Глава II. РЕЗУЛЬТАТЫ СОБСТВЕННЫХ ИССЛЕДОВАНИЙ

  1.  Особенности решения задачи с текстовыми условиями

Созданные нами в ходе выполнения работы  программные компоненты предназначены для работы с текстовыми исходными данными с  использованием методов частичного морфологического и синтаксического анализа на основе правил, не использующих развёрнутые словари  английского языка, с  интерактивным (полуавтоматическим) созданием требуемых списков слов. Код указанных компонентов написан на языке программирования C++ (среда Microsoft Visual Studio 8.0) для ЭВМ с операционными системами семейства Microsoft Windows NT.

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

1.1. Время

Допустим, что решается задача моделирования какого-то явления, и имеется текст, описывающий это явление (а возможно, и другие источники информации: изображения, чертежи, видеозаписи). В этом случае, если возможно, следует объединить всю имеющуюся информацию, которую можно будет использовать.

Введем модель явления, которая будет использоваться в CFVR.

Выделим пространство всех представлений моделируемого явления (назовем его Root), которые потребуются, и введем измерение времени (Timeline) (Рис.1).

Как относятся эти введенные понятия? Можно ли сказать, что Timeline не зависит от других измерений, которые могут быть в Root?

Для простоты предположим, что нет, не зависит. В случае если происходят явления, содержащие зависимость времени, по возможности выполним действия, заменяющие эти явления похожими, но не содержащими таких зависимостей.

Вообще, это возможно не всегда.

Примеры.

“Then I noted the clock. A moment before, as it seemed, it had stood at a minute or so past ten; now it was nearly half-past three!” [58] – т.к. указано слово «показалось», можно интерпретировать действие машины, например, как «замораживание» путешественника на некоторое время, такое, что замедляется скорость восприятия.

«Волшебник замедлил ход времени для всех, кроме себя» - интерпретировать это как внезапное ускорение всех процессов, не связанное со временем.

«Армия роботов переместилась назад во времени» - тяжело представить в модели: например, вставим между началом и концом перемещения новый промежуток, по длине равный «расстоянию во времени». Считаем, что этот промежуток времени требуется для того, чтобы вернуть пространство в исходное состояние… (зависимость времени исчезла).

«Космический исследовательский крейсер Орион плыл в гиперпространстве. Впрочем, слово «плыл» не совсем уместно. В гиперпространстве нет понятий времени, расстояния и даже массы. Человек не может представить этого» [4] – процесс перемещения, в котором задействовано время, не удастся описать в модели, где Timeline обозначает время. Но, если Timeline будет обозначать какую-то величину, которая монотонно возрастает во время такого «перемещения», а остальные могут быть интерпретированы как величины, зависящие от нее, то, возможно, модель может каким-либо образом помочь.

Теперь: с учетом модели будем описывать явления такими диаграммами:

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

Такие «представления» Root (назовем их «World» - мир) могут содержать некоторую информацию, которая может представлять то же, что другие, а может – какую-то другую информацию.

В отличие от Root, все его части на диаграмме, в т.ч. представления, могут относиться не ко всей линии времени, а только к части, или к одному моменту на ней. Для этого введем деление линии времени.

Будем обозначать некоторый момент на линии времени (возможно, еще не определенный), «маркером времени» (рис.2).

В их числе будут вспомогательные «маркеры бесконечности», которые нужны для того, чтобы задавать бесконечные промежутки. Обозначим их « -I », « +I » (Рис.3).

Пусть все маркеры, кроме –I, +I пронумерованы. Промежутки будем задавать так:

« 1 . 2 » - время после маркера 1, до маркера 2, если такое существует.

« 2 . I » - время от маркера 2 и до +I.

« I . 2 » - время от –I до маркера 2.

« 2 . 2 » - момент под маркером 2.

  1.  Деление пространства

Теперь, рассмотрим состояние Root в определенный момент времени. В пространстве распределено что-то, что вызывает те явления, которые нужно описать в задаче. Значит, все это на диаграмме должно входить в World непосредственно, или в какие-то его части (Рис. 4, 5, 6). Причем, т.к. оно тоже может оказаться состоящим из частей, то следует по возможности описывать объекты и их группы похожим образом.

Поэтому, будем добавлять описания частей World как узлы дерева, в котором обозначение World будет корнем, по мере того, как они будут определяться. В общем случае, получившийся мировой граф может перестать быть деревом (из-за того, что один узел будет рассматриваться как часть нескольких узлов-групп).

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

Назовем узлы мирового дерева структурами.

Наконец, если имеются какие-то мировые деревья для всех маркеров времени (это выполняется в любом случае, даже если они  одинаковые или не содержат потомков World), то при анализе новых условий можно интерпретировать их как «ограничения», условия на узлы дерева (причем сначала как ограничения на корневой узел, «Root»).

  1.  Уточнения, связанные с естественными языками

Как будут выглядеть эти ограничения, например, если входными данными был текст на английском языке?

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

Если в тексте описаны чьи-то действия, то упоминание производящих действия будет сильно отличаться от упоминания других объектов; это не означает, что предложение «Механик оказался на станции измельчения руды» не похоже на предложение «На станцию измельчения руды приехал вагон угля». Но в случае субъектов могут быть дополнительные указания на смысл происходящих явлений, связанные с внутренним миром субъекта (которые, однако, нет смысла описывать внутри того же World: ведь они часто происходят с абстрактными понятиями, которые не сильно связаны со структурой основного пространства. Именно для этого нужны дополнительные представления).

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

Далее, смысл, в частности, глаголов, может стать для анализатора более понятным, если известно, в каком подклассе лежит существительное, к которому он относится. И здесь важны не только подклассы объектов и субъектов. Поэтому введем «дерево категорий» - всех полезных в задаче подклассов.

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

Сразу же определим особенности глаголов в том же дереве категорий следующим образом: для корневой категории явлений (которая называется Template) определим наиболее общие значения; значения, определенные в потомках, будут применяться к соответствующим подклассам (хотя, в этом случае будет учитываться возможность выбора любого значения из классов-предков, так как это иногда необходимо). Будем рассматривать простое употребление глагола и употребление глагола с модифицирующим предлогом (модификатором) (напр, «go» и «go for»), как употребление разных глаголов, учитывая при этом, что предлог после глагола может не быть модификатором.

Далее, рассмотрим «NP-объект» - конструкцию из артиклей, числительных, прилагательных, причастий, существительных (напр., «the three little screaming brown birds»).

Прилагательные с точки зрения особенностей синтаксиса обычно не сильно отличаются от существительных (напр., прилагательное может быть употреблено для описания явлений: «the big will not offend the little anymore»). Поэтому не будем относить их к разным классам слов. В этом классе будут и причастия, и некоторые местоимения. Из-за наличия в этом же классе причастий придется учитывать необходимость использования дерева категорий для формирования этого класса.

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

Числительные можно распознавать, только учитывая изменения, вызванные применением этих правил, и особенности употребления (т.к., напр., в случае «You are the one who may go there» слово one будет местоимением, хотя в этом случае распознавание допустимо и имеет смысл, т.к. числительные все равно будут в том же классе слов, способных обозначать явления).

  1.  Обзор фундамента CFVR-UGD

<Заголовок сцены>

 begin scene

 ( <Заголовок Категорий>

  или <Заголовок Маркеров>

  или <Заголовок Промежутков>

  или <Заголовок Структур>

  или <Заголовок Отношений>)

 сколько угодно раз

 end

<Заголовок Маркеров>

 begin markers

 <Определение Маркера>

 сколько угодно раз

 end

<Определение Маркера>

begin marker

 num <int>

 discreet <double>

 continuous <Составной формат времени>

 end

<Cocтавной формат времени>

пока не определен.

<Заголовок Промежутков>

 begin ticks

 <Определение промежутка>

 сколько угодно раз

 end

<Определение промежутка>

 tick <int> def <первый маркер> . <второй маркер>

Категории, структуры и ограничения

<Заголовок категорий>

 begin categories

 <Определение категории>

 end

<Определение категории>

begin category

 name <char[ ]>

 [parent <char[ ]>]

 end

<Заголовок структур>

 begin structure

 <Определение узла>

 end

<Определение узла>

 begin node

 num <int>

 name <char[ ]>

 ctg <char[ ]>

 x <int>

 y <int>

end

<Заголовок ограничений>

 begin relations

 <Временный формат ограничения>

 сколько угодно раз

 end

<Временный формат ограничения>

 arrow 

<Узел1 <UINT>> <Узел2 <UINT>> <метка <char[]>>

 Обработчики CoreRuntime

1.5. Формат представления маркеров и промежутков времени в Radius

Добавим в модель уточнения. Как было сказано выше, явления, связанные с внутренним миром субъекта, описываются не так, как другие. Поэтому допустим, что в этих случаях имеются дополнительные представления, которые взаимодействуют с основным миром через конечное число входов и выходов данных. Эти представления могут быть разных форматов. Выделим обработчики этих форматов в динамические библиотеки (которые находятся в одном каталоге и называются core_runtime_<имя>.dll).

Для того, чтобы в рамках данного модуля core определить постоянные ограничения на данный объект (они могут иметь большой объем), будем использовать бинарные файлы. Лучше, чтобы формат файла был таким, чтобы любое содержимое файла определяло какой-нибудь объект, т.к. в этом случае можно использовать больше алгоритмов для поиска объекта. Т.е. требуется взаимно однозначное отображение из множества объектов во множество цепочек байтов.

Интерфейс:

 DWORD GetCoreRuntimeUID();

 DWORD GetFormatProperties();

 BOOL Plusctor(HINSTANCE pins, LPCSTR HashFile);

void Minusctor();

DWORD RegisterLink(BOOL direction, DWORD id, WORD DataType);

BOOL SendLinkDword(DWORD id, DWORD data);

DWORD RecvLinkDword(DWORD id);

BOOL SendLinkDouble(DWORD id, double data);

double RecvLinkDouble(DWORD id);

 Кроме этого, у этих объектов может быть непостоянное состояние, для которого тоже может быть более или менее удобный формат.

 BOOL LoadState(LPCSTR SnapshotFile);

BOOL SaveState(LPCSTR SnapshotFile);

 Интерпретация формата состояния в общем случае зависит от определения объекта.

 Обработчики CoreRuntime действуют только в том случае, если входы и выходы с чем-то соединены (с объектом, или с отладчиком).

При работе на уровне геометрии определение типа CoreRuntime может производиться не сразу (возможно рассматривать управление объектом как неопределенное).

 Камеры

 Введем вспомогательные типы объектов для того, чтобы возможно было работать с проекциями объектов в пространстве: камеры и боковые виды. Они не могут быть использованы сразу, так как они определяют величины (цвет, координаты), которые зависят от обработчика формата объекта.

 1.6. Возможный вариант определения объекта

 1. Шар

Возможно такое определение объектов: объект – это шар в пространстве (возможно, его размер произвольно меняется со временем), такой, что, если камера или вид обозревает какие-то части его области, то цвет, видимый на камере или виде на соответствующих участках, может произвольно измениться (изначально он черный). Можно теперь допустить, что этот тип объектов определяет категорию Object – подкатегорию самой общей категории (можно назвать ее Template или Templ_auto). Далее, можно считать, что если имеется группа объектов с таким определением, то их группы – тоже такие объекты (т.е. категория допускает вложение).

 2. Локальный объект первого типа.

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

Форматы, которые применяются после этой стадии, зависят от спецификаций конкретных модулей.

Таким образом, в одной цепочке вложения должны быть следующие классы:

 Иерархия структур

 Обработчики формата объекта

  Обработчики Core

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

 Все пространство

 Иерархия структур

  Обработчики формата объекта

   Обработчики Core

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

Дополнительно можно разделить глобальные характеристики сцены (и объектов) на «формат» (правила для этой сцены или типа объектов) и «код» (состав сцены или характеристики конкретного объекта).

Такая  иерархия соответствует введенным ранее диаграммам:

Все пространство (правила, состав, состояние)

Иерархия объектов в соответствии с составом сцены

Объект (тип, характеристики, состояние)

Обработчик Core (тип, основной файл, состояние)

Форматы для объектов, вероятно, должны выбираться вручную, а после выбора форматов должна получиться задача.

2. Интерфейс

2.1. Radius

Будем рассматривать возможности решения поставленной задачи добавлением функций в редактор Radius, созданный мною годом ранее на основе разработанного тогда же языка визуального программирования для выполнения задач обработки исходных данных для создания трёхмерных сцен. Редактор Radius демонстрирует пользовательский интерфейс, пригодный для эффективного преобразования исходных данных для задач имитационного моделирования, позволяет ускорить подготовку данных для создания трёхмерных сцен и обеспечивает широкие возможности импорта данных.

Дополненный в рамках данной работы новыми функциями и модулями  редактор Radius (Рис.7) предназначен для решения задач преобразования исходных данных (в т.ч. текстовых) и задач имитационного моделирования, при этом он обеспечивает организацию связанных файлов данных моделей как единого проекта с автоматическим созданием папок и тегов файла RDP.

Редактор обеспечивает поддержку концепции схем и чертежей в режиме ресурсов с возможностью предварительного просмотра сцены в окне Radius с помощью режима сцен, формирование и сохранение в файлы RDG, предварительный просмотр списка вершин XVB 3.0 (или XVB 2.0), экспорт (без записи тегов) формата DGO.

2.1.1. Архитектура Radius, взаимодействие режимов

Иерархия окон представлена на рис. 8.

 

Редактор Radius имеет 6 основных режимов: Project, Resources, Material, Geometry, Behavior, Scene. Режим можно переключить, выбрав его на нижней панели. Режим Project нельзя выбрать в текущей версии. Каждая кнопка панели имеет индикатор, который может принимать 4 состояния:

  •  режим недоступен/ошибка
    •  режим запущен, файлы не изменены
      •  режим запущен, файлы изменены, есть несохраненные файлы
        •  режим запущен, файлы изменены, все файлы сохранены

Индикаторы нижней панели показаны на рис. 9.

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

Для того, чтобы данные можно было сохранить в Radius, необходимо выбрать папку проекта, в которой будут сохраняться данные. Тогда в этой папке сохраняется файл с расширением RDP, в котором будет указано местоположение всех значимых для Radius файлов, которые находятся в этой папке. Он будет иметь имя, совпадающее с названием папки проекта (в дальнейшем – «имя проекта»). Для удобства при создании проекта в папке проекта создаются папки с названиями 5 режимов Radius, а также папка «uses» для часто используемых файлов с входными данными, и папка «exports» для вывода файлов в форматах, используемых в UGD.

Хранение сохраняемых в проект данных в коде Radius отделено от других функций режимов. Поэтому обычно при переключении режима рабочие данные (в отличие от некоторых временных данных (обычно в редакторах режима ресурсов), которые необходимо сохранять перед выходом из режима) не теряются.

Radius может использовать одну папку для хранения папок нескольких  последовательно созданных проектов. Для её выбора используется следующее окно (Control -> Global Settings) (Рис. 10):

Для правильного создания проектов нужно здесь ввести путь. Проекты создаются с помощью команды меню (она есть во всех режимах) Project -> New Project. В диалоговое окно вводится имя нового проекта; после нажатия «ОК» после ввода правильного имени создаются папки проекта и главный файл проекта (Рис.11).

Есть возможность открыть существующий проект (Команда Project -> Open Project) (Рис. 12). Открывается стандартное окно выбора файла; в данном случае надо выбрать файл RDP, представляющий проект. Фильтр файлов оставляет здесь только файлы RDP.

Команда копирования или (в некоторых режимах) сохранения проекта копирует данные (с замещением) в другой (уже созданный) проект; при этом файл RDP переписывается. В окне копирования (Рис. 13) следует указать файл RDP из папки назначения.

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

В следующем сеансе работы с Radius файлы будут созданы.

2.1.2.  Режим сцен

Режим для применения исходных данных для сцены и предварительного просмотра сцены. Пользовательский интерфейс режима показан на рис. 14. Иерархии классов и окон представлены на рис. 15.

При запуске режим загружает модуль ugdgraph.dll (основной модуль движка UGD) и отображает его вывод в рабочей области Radius. Предварительный просмотр сцены отличается от работы с UGD напрямую тем, что обновление изображения происходит только при движении курсора над рабочей областью. Рабочая папка режима – папка Radius (исключение: модуль ugdgraph.dll загружается из папки UGD). Переключение в режим редактирования Schematic вызывает другой вид. Таким образом, введённые ранее понятия категории, маркера, промежутка, структуры, отношения в интерфейсе представлены соответственно: в виджете «категории» боковой панели, окнами маркеров на линии времени на нижней панели, закрашенной жёлтым цветом области на линии времени (Рис. 16), окнами структур и стрелками между ними.

Дополнение словаря по маркированному тексту и поиск структур в режиме сцен

Для поиска структур используется модуль режима ресурсов TextConv (Рис.17) и режим сцен (в режиме редактирования Schematic).

Входной формат

Текст на английском языке.

Фаза 1. Модуль TextConv.dll (новый модуль режима ресурсов).

Требуется ввести имя файла. После нажатия «Далее» будет проверено, существует ли такой файл.

После повторного использования кнопки «Далее» будет запущен первый шаг предобработки, и далее второй шаг и сохранение результатов.

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

На первом шаге для каждой страницы применяются следующие операции:

  1.  Удаляются символы, кроме символов из диапазонов A-Z, a-z, 0-9, пробелов и символов ( ) . ! ? < > “ , ' - : ; (символы, использующиеся вместо пробела, заменяются на знак пробела).

Выделение абзаца не используется из-за того, что большинство текстов импортируется из форматов HTML, PDF и других, где абзац специально не маркируется.

  1.  Проверяется правильность расстановки скобок и кавычек. Если обнаружена ошибка, анализ останавливается. Для анализа используется алгоритм из [14].
  2.  Удаляются лишние символы пробела.
  3.  Знаки препинания отделяются от слов.
  4.  Отделяются знаки препинания, стоящие подряд. При этом из вариантов отделяемого знака выбирается тот, в котором больше символов (он должен стоять выше в файле punctuation_patterns.dgs)

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

  1.  Страницы объединяются в массив слов, при этом учитывается возможность переноса слова между страницами.
  2.  Проверяется наличие файлов словарей. Если они не найдены, создаются незаполненные словари. Файлы словарей открываются для чтения, и их содержимое копируется в массивы.
  3.  В последовательностях “ . - ”, “ ! - ”, “ ? - ”, “ , - ”, не стоящих в скобках или кавычках, или если тире стоит в начале текста, тире заменяется на знак < (Предполагается, что в исходном файле нет сокращений с точкой. Без этого предположения алгоритмы будут значительно менее эффективными. Если сокращения присутствуют, следует убрать точки).
  4.  Для каждого знака < (т.к. эти знаки не должны быть вложенными; они обозначают диалог) ведется поиск ближайшего знака из < > - . ? ! справа. Этот символ заменяется на >. (Возможны ошибки. Не найден метод, который  позволял бы правильно расставлять кавычки диалога, тем более, что эта операция при корректном выполнении должна изменять размер массива слов)
  5.  Ставится флаг пунктуации для знаков препинания (при этом файл punctuation_patterns.dgs уже игнорируется)
  6.  Для известных союзов ставится флаг “может быть <2-арным союзом” и/или “может быть сложным союзом” (При этом пока не учитывается возможность того, что слово может быть предлогом или названием).
  7.  Из файла prepositions.dgs считываются простые и сложные предлоги, на похожие конструкции ставится отладочный флаг предлога.
  8.  Если слово заканчивается на знак ', проверяется, не выводится ли оно из словарного существительного по правилам образования множественного числа. Если да, ставится флаг.
  9.  Если слово заканчивается на 's, то, если слова нет в списке исключений (let's, where's, what's, who's, how's, when's, there's, that's, he's, she's, it's), оно записывается в список существительных (т.е. туда попадут разные части речи (one's, everybody's), если они могут иметь суффикс принадлежности, даже если в данном случае это сокращение от is).
  10.  Если слово заканчивается на ist / age, установить флаги существительного и глагола. В списке глаголов уже должны быть все исключения из этого правила (напр., assist, enrage), произвести проверку и оставить один флаг.
  11.  Если слово заканчивается на hood / ism / ment / ship / tude / ization, установить флаг существительного.
  12.  Установить флаг для артиклей (a, an, the).
  13.  Если единственное неизвестное слово стоит между артиклем и союзами (кроме and, or, but, yet) или знаком конца предложения, установить флаг существительного.
  14.  Произвести замену числительных и некоторых производных на теги.
  15.  Установить остальные префиксы тегов (с символом ‘$’ в начале).
  16.  Новые определенные слова записать в словарь.
  17.  Вывести результат анализа на экран.

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

 Результаты сохраняются в файле формата dgs

 

Фаза 2. В режиме редактирования Schematic режима сцен в командную строку вводится имя входного файла. После нажатия «+» будет запущен один из шагов, и в папке с входным файлом будет создан файл <имя>_dbg.dgs с меткой, обозначающей выполнение какого шага ожидается далее.

Шаг 1. Подозрительные слова после артикля (Рис. 18).

Шаг 2. Автоматическое определение чисел. На этом шаге создается копия входного текста (место копирования задается пользователем), в дальнейшем используется новый адрес файла.

Шаг 3. Незнакомые слова после слов в составе NP-объекта (Рис. 19).

Шаг 4. Выделение структур. После анализа найденные категории и структуры будут готовы к использованию (сохранению в файл проекта).

В случае больших файлов может быть невозможно отобразить все структуры.

Промежуточный формат ContainerMap DGS

begin containermap

 begin timedot 1 атрибуты

 [begin hierarchy

  [begin object 1 ''имя''

   [virtualnode]

   [maxradius значение]

   [begin viewpoint 1

    [begin coordinate 1

     name ''имя''

     rule выражение

    end]

   end]

  end]

 end]

 end

 begin timedot 2 атибуты

 [begin hierarchy

 end]

 end

 

 begin restriction

 (формат не определен)

 end

 ...

end

На рис. 21 показана диаграмма деятельности, соответствующая текстовой части проекта CFVR, которая описывает логику процедур, осуществляемых в этом проекте.

  1.  Режим ресурсов, внешние редакторы

Режим предназначен для создания различных файлов с входными данными, которые могут понадобиться для создания моделей или сцен. Эти файлы могут быть самых разных типов, поэтому для Режима ресурсов (Рис. 22) была выбрана архитектура с подключаемыми редакторами.

Иерархия окон (Рис. 23)

 

Иерархия классов (Рис. 24)

  Окно схемы

 

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

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

Кнопка “Rename

Если на экране отображается Окно Схемы, то “Rename” вызывает диалоговое окно переименования схемы (рис. 25). В текущей версии после переименования может понадобиться перезапустить редактор.

Кнопка “Shelf

В правом нижнем углу Radius в режиме ресурсов находится кнопка “Shelf”, при помощи которой из нескольких схем осуществляется выбор текущей схемы. При нажатии на “Shelf” появляется меню, которое состоит из одного пункта “Empty”, если n=0, и из n пунктов “<имя схемы>”, если n>0. Меню исчезает, если производятся действия с другими частями основного окна, или после повторного нажатия на “Shelf”. Меню реализовано окном со стилем WS_EX_STATICEDGE, или контекстным меню (с помощью класса SI_Toolbar в паре “shellimp_context”) , в котором находится столбец из кнопок.

После выбора схемы она появляется в правой части окна Resource mode, справа от окна выбора типа чертежа, а активная схема переносится в Shelf.

Окно редактора

Это окно находится слева, в нем отображается интерфейс внешнего редактора (если выбран Чертеж с определенным типом).

SlidegrayObject_V_Res1 - широкий разделитель между окном редактора и остальными частями окна режима ресурсов (в дальнейшем Desktop Part), с кнопкой (Быстрое переключение) посередине. С его помощью регулируется отношение размеров окна редактора и Desktop Part, а также закрытие одной из частей. При нажатии кнопки быстрого переключения, если одна из частей закрыта, происходит перемещение (с анимацией) разделителя на противоположный край окна Radius, с развертыванием закрытой части. Если ни она из частей не закрыта, то считается, что кнопка закрывает правую часть. Плавное перемещение разделителя (за край) возможно, даже если одна из частей закрыта. Перемещение разделителя не влияет на отношение размеров собственных частей левой и правой части.

Концепция внешних редакторов

Внешний редактор – это модуль .dll, содержащий класс, работающий с файлами и имеющий графический интерфейс (Radius предоставляет ему (без проверки) дескриптор окна редактора). Собственные ресурсы модулей содержатся в их файлах. Текущая версия Radius поддерживает три внешних редактора – MatriverMaths (MATRIVER client), Meta_N_Automation (Neural network-like finite machine structure editor prototype, прототип редактора нейронных сетей с логическими элементами), MetaReverse (средство просмотра бинарных файлов) (см. соотв. приложения) – и переключение между ними. При закрытии одного из внешних редакторов, его данные пока не сохраняются. Интерфейс взаимодействия с внешними редакторами еще должен дорабатываться (в частности, передача имени файла, запросы на сохранение).

Desktop Part (правая часть)

Desktop Part (Рис. 26) реализована вспомогательным окном, которое занимает всю отведенную область. Основной класс – CDesktopBasement– сразу же инициализирует три дочерних окна,  окно выбора типа чертежа (Type picker), окно схемы (Рис. 27) и узкий разделитель TypePickerBorder.

 Type picker client area 

Имеется в виду содержимое пары файлов Type_picker. В клиентской области имеется вертикальная полоса прокрутки, которая должна быть неактивной, если в клиентской области мало значков.  Несколько значков в стиле Explorer расположены в ряд по вертикали, набор значков разделен на группы (тоже в стиле Explorer): «вычисления», «графика», «физика», «другое». Каждый значок имеет подпись, всплывающую подсказку, и соответствует одному типу создаваемых с помощью режима файлов. Значки можно перетаскивать из клиентской области в окно схемы (Рис. 28), это имеет семантику «назначения» типа объекту из схемы. Назначения сохраняются в файле проекта.

 

Концепция схем

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

Схема отображается в окне в виде набора непересекающихся, не выходящих за пределы окна схемы «окон Чертежей», соединенных стрелками. В отличие от программного обеспечения Vovoid VSX Ultra Artiste, точка входа стрелок в окно Чертежа – единственная, точка выхода стрелок – тоже, и со стрелками нельзя работать непосредственно. Они просто показывают взаимозависимость Чертежей. Чтобы в графе не было циклов, каждый раз при добавлении зависимости производится проверка. Кроме того, может случиться, что Чертежи некоторых типов не могут зависеть от Чертежей некоторых других типов (например, чертежи неопределенного типа не могут зависеть ни от каких чертежей других типов).

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

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

2.1.4. Режим геометрии (Рис. 29).

Режим включается кнопкой «Geometry» на нижней панели.

Режим предназначен для редактирования моделей и подготовки файлов в формате DGO.

В нижней части главного окна находится строка состояния (в дальнейшем информация будет выводиться в правом верхнем углу, на «системной панели»). В ней указывается информация об активном файле (возможно) и общее количество вершин (не выводится информация о количестве фейсов, т.к. текущая версия не поддерживает чтение и добавление фейсов). В будущем эта панель может служить для выбора активного файла и части файла, если он – составной.

Выше находится поле ввода (его можно в дальнейшем сделать панелью меню/действий).

Справа находится боковая панель («системная панель» с кнопками и «панель контекста»).

Остальная часть окна режима ресурсов разделена горизонтальной версией разделителя Slidegray. Выше разделителя – «зона панелей» (она может вмещать несколько строк панелей), ниже – область видов.

Область видов служит для отображения содержимого редактируемого файла. Количество видов регулируется командой View  Change Viewports Layout (переключение схемы видов (Рис.30)). В текущей версии информация о текущей схеме видов не сохраняется в файле проекта, так что при следующем запуске будет восстановлена схема Four_grid (четыре вида сеткой).

Файлы DGO (RDG) могут иметь несколько частей. Следующее окно (Edit  Change Path) предназначено для переключения активной части файла (Рис.31). Если файл не имеет структуры, то его главный раздел называется Root.

Для добавления вершин к файлу используется команда Insert  Vertex (Рис. 32). Эта команда позволяет добавлять 1 (One Vertex или Line Segment), 2 (Complete Line), или 3 (Complete Triangle) вершины за один раз. При этом от выбора режима добавления зависит не формат файла, а лишь количество добавляемых вершин, так что опция Complete Triangle может использоваться для быстрого ввода одиночных вершин. Режим Add Face добавляет тройки целых чисел в раздел faces файла геометрии.

Так как в режим геометрии из проекта может быть загружено до 4 файлов, должна быть команда, переключающая активный файл. Это команда File  Switch File (Рис. 33). Здесь можно ввести номер файла от 1 до числа, указанного ниже. Нумерация файлов соответствует порядку следования инструкций в файле RDP (т.е. этот порядок нужно запоминать).

Схема основной иерархии окон режима геометрии (Рис. 34)

2.1.5. Возможности расширения: режим материалов, режим настройки/отладки объекта, режим редактирования сцен UGD

Несмотря на то, что и видеоплаты, и библиотеки DirectX ориентированы на использование параметров отображения/освещения текстуры в качестве единственной характеристики материала объектов, можно расширить возможности формата DGO поддержкой более сложных характеристик, которые определяли бы внутреннюю структуру объекта. Речь здесь идет о динамических (dynamic) моделях DGO, т.к. для описания статических моделей достаточно характеристики поверхности. Если такие динамические объекты будут считаться обработчиком физики разделяемыми (это возможно при достаточном расширении физического движка), то при «разрезе» объекта с неоднородной поверхностью обработчик должен принимать решение, какие текстуры должны быть применены к новым участкам поверхности. Возможны следующие варианты реализации материала: 1) объёмная текстура (map volume); 2) более предпочтительный вариант – на случай деформации иметь реализацию DGO модели в виде системы частиц MetaMicro уровня детализации выше пятого – при деформации можно заменить сеточное представление на более сложное системное (вот для чего нужен MetaMicro).  При наличии DGB/NNT информации все элементы привязываются к некоторым частицам. При удалении привязанных к соединенным DGB элементам частиц на некоторое расстояние связь между соответствующими элементами должна удаляться автоматически. А если это NNT элементы, то тогда, наоборот, связи должны удерживать частицы.

Режим ресурсов может быть использован для создания таких представлений.

«Режим настройки поведения» Behavior придуман для редактирования DGB связей и параметров, и для отладки готовых объектов.

2.2. Перспективы развития проекта

Проект «Yellow Box» - возможное дополнение к проекту CFVR.

Пользователь загружает изображение, означающее вид из неизвестной камеры или вида, в модуль Radius «CameraMinus1» (CM1) (Рис. 35).

Предполагаем, что все изображенные на нем объекты – локальные объекты первого типа, где каждой грани соответствующих сеток соответствует цвет (то есть, предполагаем, что свет, попадающий в камеру, может отражаться только от границ объектов); затем рассматриваем часть этого светового потока после последнего отражения или, если отражения не было, от источника; получится модель, где свет излучается границами объектов.

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

Введем N точек внутри изображения, M точек на границах изображения, и еще 4 точки в углах изображения. Зафиксируем алгоритм, который по положению точек делит область изображения на треугольники, и будем перемещать точки (Рис. 36).

Поставим в соответствие каждому треугольнику цвет, зависящий от цветов части изображения, расположенной под этим треугольником.

Теперь поместим получившуюся сетку в пространство (Рис. 37) и будем свободно перемещать созданные точки по лучам с началом в одной точке (обозначающим камеру), или параллельно (вид), причем при перемещении точек будем пользоваться системой координат камеры, а при перемещении камеры будем перемещать точки вместе с этой системой.

Этим способом можно получить приближение геометрии объектов.

Сопоставим полученные этим способом редактируемые файлы геометрии категориям, получившимся при поиске структур (при необходимости создавая копии категорий). Категориям будут поставлены в соответствие семантические данные. После этого можно будет продолжить анализ текста.

Этот анализ можно проводить, синтезируя из категорий и вспомогательных слов исходные предложения, созданные на шаге 3 поиска структур. Результаты анализа могут помочь получить дополнительную информацию о геометрии, составе или динамике сцены. Возможны и другие сценарии анализа (напр., вводом ребер дерева синтаксической структуры (Рис.38)).

ЗАКЛЮЧЕНИЕ

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

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

ЛИТЕРАТУРА

1. Авербух В.Л. Использование Трехмерных Метафор Визуализации. / В.Л. Авербух, А.Ю. Байдалин, Д.Р. Исмагилов, А.Ю. Казанцев, С.П. Тимошпольский // International Conference Graphicon 2004, Moscow, Russia, [Электронный ресурс] Режим доступа:http://www.graphicon.ru.

2. Авербух В.Л. К теории компьютерной визуализации / В.Л. Авербух // Вычислительные технологии.- 2005.- Том 10, № 4.- C. 21-51.

3. Баранов А.Н. Введение в прикладную лингвистику / А.Н. Баранов.- М.: Эдиториал УРСС, 2001.- 360 с.

4. Бахшиев А. Круг жизни: Противостояние / А. Бахшиев .- 1999 [Электронный ресурс] Режим доступа: http://snowlands.ru/library/series/circle-of-life-confrontation/view/28.htm

5. Бектаев, К.Б. Математические методы в языкознании: учебное пособие: в 2 частях / К.Б. Бектаев, Р.Г. Пиотровский. – Алма-Ата: КазГУ, 1974. – ч. II. Математическая статистика и моделирование языка. – 334 с.

6. Биркгофф Г. Математика и психология/ Биркгофф Г.// Советское радио.- 1977.-96 c.

7. Блох Дж. Java. Эффективное программирование/ Дж. Блох - М.: Лори, 2002.– 224 с.

8. Брукс Ф. Мифический человеко-месяц или как создаются программные системы: Пер. с англ. / Ф.Брукс - СПб.: Символ-Плюс., 1999. – 304 с.

9. Булич С.К. Семасиология / С.К. Булич // Энциклопедический словарь Брокгауза и Ефрона: В 86 томах (82 т. и 4 доп.). - СПб.: 1890-1907.

10. Вагин В.Н. Достоверный и правдоподобный вывод в интеллектуальных системах / В.Н. Вагин.- Изд-во: ФМЛ.- 2004.- 704 с.

11. Дуда Р. Распознавание образов и анализ сцен/ Р. Дуда, П. Харт.- Мир, 1976.- 507с.

12. Дунаев С. Java для Internet в Windows и Linux/ С. Дунаев.- М.: ДИАЛОГ-МИФИ, 2004.– 496 с.

13. Емельянов В.В. Теория и практика эволюционного моделирования/ В.В. Емельянов, В.В. Курейчик, В.М. Курейчик.- Изд-во: ФМЛ, 2003.- 432 с.

14. Замятин А.П. Языки, грамматики, распознаватели/ А.П. Замятин, А.М. Шур/-Екатеринбург: Изд-во Урал. ун-та, 2007.- 248 с.

15. Коваль С.А. Лингвистические проблемы компьютерной морфологии / С.А. Коваль.- СПб.: Изд-во С.-Петерб. ун-та, 2005.- 151 с.

16. Козеренко Е.Б. Эволюция лингво-семантических представлений в интеллектуальных системах на основе расширенных семантических сетей / Е.Б. Козеренко, И.П. Кузнецов // Труды международной конференции «Диалог 2010».- М.: Институт проблем информатики РАН, 26 мая 2010 [Электронный ресурс] Режим доступа: http://www.dialog-21.ru/dialog2010/materials/html/33.htm)

17. Лахути Д.Г. Разработка средств автоматического синтаксического анализа как модуля системы понимания текста / Д.Г. Лахути, А.М. Баталина, М.Е. Епифанов.- 26 марта 2009 г. [Электронный ресурс] Режим доступа: http://www.raai.org/?pii .

18. Лезин Г.В. Об автоматическом выявлении референциальной связности повествовательного текста, Санкт - Петербургский экономико-математический институт РАН 2010 [Электронный ресурс] Режим доступа: www.dialog-21.ru/ dialog2006/materials/html/Lezin.htm.

19. Леонтьева А. Автоматический синтаксический анализ русских текстов/ А. Леонтьева, И. Кагиров // Санкт-Петербургский институт информатики и автоматизации РАН.- Труды 10-й Всероссийской научной конференции «Электронные библиотеки: перспективные методы и технологии, электронные коллекции» – RCDL’2008, Дубна, Россия, 2008.- с. 397-400.

20. Логическое программирование: сборник статей / Под ред. Агафонова В.Н.- МИР, 1988.- 367 с.

21. Мартыненко Г.Я. Некоторые статистические закономерности концентрации и рассеяния элементов в лингвистических и других сложных системах // Структурная и прикладная лингвистика.- Вып. 1, Изд-во ЛГУ, 1978.– С. 63-79.

Марчук Ю.Н. Основы компьютерной лингвистики: Учебное пособие/ Ю.Н. Марчук.- М., 1999. - 225 с.

22. Михаилян А. Некоторые методы автоматического анализа естественного языка, используемые в промышленных продуктах / А. Михаилян.- 2001 [Электронный ресурс] Режим доступа: http://citforum.ru/programming/ digest/avtestlang.shtml).

23. Новое в зарубежной лингвистике: Вып. XXIV/ Компьютерная лингвистика: Пер. с англ.; сост., ред. и вступ. ст.  Б.Ю. Городецкого.- М.: Прогресс, 1989.- 432 c.

24. Ножов И.М. Морфологическая и синтаксическая обработка текста (модели и программы)/ И.М. Ножов // Дис. ... канд. техн. наук. – М., 2003. [Электронный ресурс] Режим доступа: http://www.aot.ru/technology.html.

25. Поспелов Д.А. Искусственный интеллект: Справочник (Книга 2. Модели и методы) / Д.А. Поспелов.-  1990.- 304 с.

26. Самарский А.А. Математическое моделирование и вычислительный эксперимент / А.А. Самарский // Вест. АН СССР.- 1979.- № 5.- C.38–49.

27. Семантика // Лингвистический энциклопедический словарь: под. ред. В.Н. Ярцева - 1990.- C. 688.

28. Смолин Д.В. Введение в искусственный интеллект: конспект лекций/ Смолин Д.В.- Изд-во: ФМЛ, 2004.- 208 с.

29. Сокирко А.В. Морфологические модули на сайте www.aot.ru / А.В. Сокирко // Компьютерная лингвистика и интеллектуальные технологии. Труды международной конференции «Диалог 2004». «Верхневолжский», 2004.– C. 559-564 [Электронный ресурс] Режим доступа: http://www.aot.ru/docs/ sokirko/Dialog2004.htm].

30. Фурман Я.А. Комплекснозначные и гиперкомплексные системы в задачах обработки многомерных сигналов/ Я.А. Фурман - Изд-во: ФМЛ, 2004.- 456 с.

31. Хорошевский В.Ф. Оценка систем извлечения информации из текстов на естественном языке: кто виноват, что делать / В.Ф. Хорошевский // Десятая национальная конференция по искусственному интеллекту с международным участием (КИИ-2006). г. Обнинск, 2006.– C. 464-478.

32. Шемакин Ю.И. Начала компьютерной лингвистики: Учеб. пособие / Ю.И. Шемакин.- М.: Изд-во МГОУ, А/О "Росвузнаука", 1992.– 81 с.

33. Шилдт Г. Java 2, v5.0 (Tiger) . Новые возможности: Пер. с англ./ Г. Шилдт.- СПб.: БХВ-Петербург, 2005.– 208 с.

34. Шрейдер Ю.А. Логика знаковых систем: Элементы семиотики / Ю.А. Шрейдер - Изд. 2-е.М.: Едиториал УРСС, 2010.- 64 с.

35. Alshawi, H. Ellipsis, comparatives, and generation / H. Alshawi, S.G. Pulman // The Core language engine.- The MIT Press, Cambridge, Massachusetts and London, England.- Chapter 13.- 1992.- p. 251-275.

36. Blackwell A.F. Metaphor in diagrams: Dissertation Submitted for the Degree of Doctor of Philosophy University of Cambridge Darwin College / A.F. Blackwell.- Cambridge, 1998.- 189 p.

37. Bobrow D.G. GUS, a frame driven dialog system/ D.G. Bobrow // Artificial Intelligence.- 1977.-V. 8.- p. 155-173.

38. Charniak E. A Bayesian model of plan recognition / E. Charniak, R. Goldman // Artificial Intelligence.- 1992.-V. 64(1).- p.53-79.

39. Chomsky N. Three models for the description of language / N. Chomsky// IRE Transactions on Information Theory.- 1956.-  V. 2(3).- p. 113-124.

40. Cunningham H. Developing language processing components with GATE, Technical report / H. Cunningham, D. Maynard, K. Bontcheva et al.- University of Sheffield, U.K., 2005 [Электронный ресурс] Режим доступа:  http://www.gate.ac.uk.

41. Delong G. An overview of the FRUMP system/ D.G.Bobrow, R.Kaplan, M.Kay et al. (1977) // In Lehnert W. and Ringle M. (Eds.), Strategies for Natural Language Processing, Lawrence Eribaum, Potomac, Maryland.- 1982.- p. 149-176.

42. Doran C. XTAG system – a wide coverage grammar of English / C. Doran, D. Egedi, B. Hockey et al.// Proceedings of the 15th International Conference on Computational Linguistics (COLING), Kioto, Japan In Nagao M.(Ed.).- 1994.- p. 922-928.

43. Efimenko I.V. Ontosminer family: multilingual IE systems/ I.V. Efimenko, V.F. Khoroshevsky, V.P. Klintsov // In 9-th International Conference "Speech and Computer" SPECOM'2004. Russia, St. Petersburg, September 20-22, 2004.– pp. 716-720.

44. Green B. BASEBALL: An automatic question answerer / B. Green, A. Wolf, C. Chomsky et al. // In Proceedings of the Western Joint Computer Conference.- 1961.- p. 219-224.

45. Hamon T. A robust linguistic platform for efficient and domain specific web content analysis/ T. Hamon, A. Nazarenko, T. Poibeau et al. // In Proceedings of RIAO, 2007 [Электронный ресурс] Режим доступа: http://arxiv.org/abs/0706.4375.

46. Horstmann C.S Core Java™ 2 volume I - fundamentals, Seventh Edition/ C.S. Horstmann, G. Cornell.– Prentice Hall PTR, 2004.– 784 p. [Электронный ресурс] Режим доступа:  http://horstmann.com/corejava.html.

47. Jurafsky, Daniel. Speech and Language Processing: An Introduction to Natural Language Processing, Speech Recognition, and Computational Linguistics/ D. Jurafsky, J.H. Martin.- 2nd edition.- Prentice-Hall.- 2009.- p.623.

48. Khaled R. System Metaphor in “Extreme Programming”: A Semiotic Approach/ R. Khaled, P. Barr, J. Noble et al.// Presented at OrgSem 2004.- Portugal [Электронный ресурс] Режим доступа:  http://www.orgsem.org/papers/13.pdf.

49. Manning Chris, Schütze Hinrich. Foundations of Statistical Natural Language Processing / Chris Manning, Hinrich Schütze // Computational Linguistics.- MIT Press.- Cambridge, MA: May 1999.- V.- 26(2).- p. 277-279.

50. Meyer C.F. English corpus linguistics: An introduction / C.F. Meyer – Cambridge: Cambridge University Press, 2004.– 168 p.

51. O'Madadhain J. Analysis and visualization of network data using JUNG (preprint). O'Madadhain J., Fisher D., Smyth P. et al.// Journal of Statistical Software. pp. 1-35. 2007 [Электронный ресурс] Режим доступа: http:// jung.sourceforge.net/doc/ JUNG_journal.pdf

52. Robertson S.E. The probability ranking principle in ir. / S.E. Robertson // Journal of Documentation.- 1977.- V. 33.- p. 294-304.

53. Sager N. Natural Language Information Processing: A Computer Grammar of English and Its Applications / N. Sager // Addison Wesley, Reading, Massachusetts.-1981.- p. 89-162.

54. Sager N. The restriction language for computer grammars of natural language / N. Sager, R. Grishman // Communications of the ACM.- 1975.- V. 18.- p. 390-400.

55. Shu N.C. Visual programming languages: a perspective and dimension analysis / N.C. Shu // Visual Languages. N.Y.: Plenum Publ. Corporation, 1986.- P. 11–34.

56. Tscheligi M. An information manipulation environment for monitoring parallel programs / M. Tscheligi, S. Musil // Proc. of the Workshop on Advanced Visual Interfaces, June 1–4, 1994, Bari, Italy.- ACM, 1994.- P. 246–248.

57. Turing, Alan. Computing Machinery and Intelligence / Alan Turing // Mind LIX (236).- October 1950.- pp. 433–460.

58. Wells H.G. The Time Machine: An Invention (1898) / H.G. Wells.- 2002 г. [Электронный ресурс] Режим доступа: http://www.fourmilab.ch/etexts/ www/wells/timemach/html/

59. Wilks Y. An intelligent analyzer and understander of  English / Y. Wilks // Communications of the ACM.- 1975.- V. 18(5).- p. 264-274.

60. Witten I.H. Managing Gigabytes: Compressing and Indexing Documents and Images (second edition)/ I.H. Witten, A. Moffat, T.C. Bell // Morgan Kaufman, San Mateo, California.- 1999.- p. 520.

61. Woods W.A. Progress in natural language understanding: An application to lunar geology / W.A. Woods // In AFIPS Conference Proceedings.- 1973.- Vol. 42.- p.441-450.


Рис. 1. Это символизирует зависимость состояния Root именно от времени

Рис. 2. Деление Root на независимые пространства. Здесь линия на Timeline обозначает «маркер времени»

Рис. 3. Так будет обозначаться состояние Root на промежутке времени 1..2

Рис. 4. Мировое дерево. Когда описания объектов создаются, они всегда принадлежат непосредственно World

Рис. 5. Объект добавляется в группу. Кроме того, могут возникнуть ситуации, в которых объекты перестают образовывать группу; тогда происходит обратная операция (и, возможно, удаление узла группы)

Рис. 6. Если были выстроены два поддерева, а потом обнаружились условия, по которым они должны иметь общий узел, могут потребоваться более сложные процедуры слияния, в результате применения которых у одного узла может появиться несколько предков

Рис. 7. Режим сцен. Общий вид  

Рис. 8. Иерархия окон Radius

Рис. 9. Radius: Индикаторы нижней панели

Рис. 10.  Radius: указание пути для сохранения проектов

Рис.11 . Radius: создать проект

Рис. 12. Radius: открыть проект

Рис. 13. Radius: сохранить проект

Рис. 14. Схема пользовательского интерфейса режима сцен

  1.   Журнал
  2.   Свернуть/развернуть элемент
  3.   Край для изменения размера верхней панели
  4.   Выбор промежутка времени (кнопка Lock, поле ввода и кнопка поиска)
  5.   Кнопки нижней панели (Continuous/Discreet, переключатель режима редактирования сцены, масштаб линии времени)
  6.   переключатель режима программы
  7.   линия времени
  8.   динамическая панель режима сцен
  9.   открыть меню панели редактирования
  10.  панель редактирования
  11.  командная строка/ввод аргумента
  12.  кнопка «принять строку»
  13.  окно структуры
  14.  отношение

Рис. 15. Иерархия классов и окон режима сцен

Рис. 16. Выбор промежутка: использовать кнопку Lock для разблокировки поля ввода, ввести определение промежутка и заблокировать поле

Рис. 17. Модуль TextConv

Рис. 18. Диалоговое окно шага  1 поиска структур

Рис. 19. Диалоговое окно шага 3 поиска структур

Рис. 20. Пример. Результат поиска структур.

Рис. 21. Диаграмма деятельности

Рис. 22. Режим ресурсов Radius

Рис. 23. Схема иерархии окон режима ресурсов Radius

Рис. 24. Схема вложения классов режима ресурсов Radius

Рис. 25. Диалоговое окно переименования схемы

Рис. 26. Режим ресурсов Radius: Desktop Part

Рис. 27. Окно схемы (Schema Window)

Рис. 28. Назначение модуля чертежу

Рис. 29. Режим геометрии Radius

Рис. 30. Режим геометрии Radius: переключение схемы идов

Рис. 31. Режим геометрии Radius: выбор части модели

Рис. 32. Режим геометрии Radius: добавление вершин

Рис. 33. Режим геометрии Radius: добавление вершин

Рис.34. Иерархия окон режима геометрии

Рис. 35. Исходное изображение

ис. 36. Создание плоской сетки по изображению

Рис. 37. Вспомогательная сетка, связанная с камерой

Рис. 38. Пример интерфейса для ввода рёбер дерева синтаксической структуры (в том числе замены сокращений)


 

А также другие работы, которые могут Вас заинтересовать

35277. Вкладені цикли. Багатомірні масиви. Масиви покажчиків 54.5 KB
  Показати використання різних видів синтаксичних конструкцій включаючи індексні вираження і покажчики на тип елементів масиву для доступу до елементів масиву. Поясните організацію збереження елементів масиву.Як відбувається масштабування при послідовному разіменування покажчика імені масиву у процесі доступу до елементів Які синтаксичні конструкції можна використовувати для доступу до елементів масиву 3.Приведіть загальну формулу для масиву Тип Ім'я [N][M][K] при доступі до заданого елемента Ім'я [i][j][k] і поясните її.
35278. Тема: Розробка програм зі складеними типами даних Ціль: виробити практичні навички в написанні програм з ви. 77 KB
  Як виробляється ініціалізація данчленів структури Які особливості ініціалізації масивів і структурчленів структури вкладених структур 6.Чи можна робити неповну ініціалізацію структури не для всіх членів структури 7.У чому відмінність об'єднання від структури 13.Як здійснюється доступ до данчленів структури об'єднання 14Як здійснюється доступ до данчленів структури розташованої в масиві структур.
35279. Тема: Використання покажчиків для роботи зі складеними типами даних Ціль роботи: виробити практичні навичк. 79 KB
  Використовувати покажчики як члени структури а також для доступу до членів структури і роботи з ними.Чи можна використовувати масиви і структури як данчлени структур вкладені оголошення 3.Чи можна використовувати в якості вкладені структури що повідомляється свого типу а також покажчики на структури свого типу 4.Як оголосити покажчик на структуру масив покажчиків на структури Чи існують різні варіанти оголошення 5.
35280. Тема: Використання покажчиків для роботи з функціями Ціль роботи: виробити практичні навички в написанні п 56.5 KB
  Використовувати покажчики для виклику відповідних функцій.Чи можна використовувати покажчики для передачі даних у функції 2.Чи можна використовувати покажчики для роботи з функціями різного типу 7.Як використовувати покажчики для виклику функції 10.
35281. Тема: Розробка програм з використанням класів Ціль роботи: вивчити синтаксичні конструкції для оголошення. 66.5 KB
  Відповідно до індивідуального завдання розробити структуру класу зробити визначення функційчленів класу clss розробити алгоритм використання об'єктів і покажчиків на об'єкти класу для доступу до даних і функцій членам. Перевірити можливість доступу до членів класу в розділах privte public protected.Дайте визначення поняттям: об'єкт клас данчлени класу функціїчлени класу.У чому відмінність між класом і об'єктом класу 3.
35282. Тема: Використання конструкторів і деструкторів Ціль роботи: вивчити і навчитися використовувати механізм. 64.5 KB
  Лабораторна робота № 31 Тема: Використання конструкторів і деструкторів Ціль роботи: вивчити і навчитися використовувати механізм роботи з конструкторами і деструкторами. Відповідно до індивідуального завдання для попередньої лабораторної роботи розробити конструктори і деструктор для заданого класу. Здійснити ініціалізацію об'єктів класу різними конструкторами. 7 Базовий клас Похідний клас Похідний клас транспортний засіб літак дельтоплан Контрольні запитання Навіщо використовуються конструктори і деструктори Яке ім'я має конструктор і...
35283. Використання спадкування для створення ієрархії класів 71.5 KB
  Відповідно до індивідуального завдання розробити структуру базового класу і спадкоємців не менш 3х похідних класів на двох рівнях ієрархії.Скільки базових класів може бути в похідного класу 6.Чи можна задавати специфікатори для базових класів при спадкуванні оголошення довільного класу 8.Як змінюється доступ до елементів базового класу при спадкуванні з різними специфікаторами доступу: з розділів класу із програми з інших класів 9.
35284. Використання віртуальних і покажчиків для роботи з обєктами класів 60.5 KB
  Відповідно до індивідуального завдання на базі лабораторної роботи №22 розробити алгоритм роботи з обєктами базових і похідних класів з використанням покажчиків на базові і похідні класи. 3.При необхідності довести ієрархію класів до 3-4-х рівнів.
35285. Тема. Побудова багаточлена Лагранжа. 43 KB
  Побудова багаточлена Лагранжа. Навчитися будувати багаточлен Лагранжа скласти програму. Індивідуальне завдання Знайти наближене значення функції при даному значенні аргументу за допомогою інтерполяційного багаточлена Лагранжа. Що називають вузлами інтерполяції і як вони Яка ідея методу інтерполяції за допомогою багаточлена Лагранжа.