Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК Соврем проблемы ИиВТ.pdf
Скачиваний:
114
Добавлен:
18.02.2016
Размер:
9.22 Mб
Скачать

Министерство образования и науки Российской Федерации

Государственное образовательное учреждение высшего профессионального образования

"ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СЕРВИСА (ПВГУС)"

Кафедра "Информационный и электронный сервис"

СОГЛАСОВАНО

УТВЕРЖДАЮ

Протокол УМС №______

Проректор по УРиКО

от «___»___________20___г.

_________ О.Н. Наумова

Проректор по УМР

«___» _________ 20___г.

_____________ С.П. Ермишин

 

УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС по дисциплине "Современные проблемы информатики и вычислительной техники"

для студентов направления 230100.68 ''Информатика и вычислительная техника''.

Одобрено Учебно-методическим Советом университета

Составители: к.т.н., доцент Жуков Г.П.

Тольятти 2010

Учебно-методический комплекс по дисциплине "Современные проблемы информатики и вычислительной техники" разработан в соответствии с требованиями Государственного образовательного стандарта по направлению 230100.68 "Информатика и вычислительная техника", утвержденного Министерством образования РФ 09 ноября 2009 года.

УТВЕРЖДЕНО

на заседании кафедры "Информационный и электронный сервис".

Протокол № _____ от _____ _______________ 20___ г.

Зав. кафедрой, к.т.н., доц. _________________ В.И.Воловач

УТВЕРЖДЕНО

на заседании Научно-методического совета по специальностям 100101.65 «Сервис», 210303.65 «Бытовая радиоэлектронная аппаратура», 210312.65 «Аудиовизуальная техника», направлениям подготовки 210400.62 «Телекоммуникации», 230100.62 «Информатика и вычислительная техника», 230100.68 «Информатика и вычислительная техника», 230200.62 «Информационные системы», 210100.62 «Электроника и микроэлектроника», 230300.62 «Радиотехника», специальностям СПО 230106.51 «Техническое обслуживание средств вычислительной техники и компьютерных сетей», 210308.51 «Техническое обслуживание и ремонт радиоэлектронной техники (по отраслям)» Протокол № _____ от _____ _______________ 20___ г.

Председатель НМС, к.т.н., доц. ______________ В.И.Воловач

Рецензент:

д.техн.н., профессор каф. «Информационный и электронный сервис» В.К.Шакурский

2

СОДЕРЖАНИЕ

1. Рабочая учебная программа дисциплины……………………………………….…………….......4

1.1.Цели и задачи дисциплины………………………………...…………………………..…….…..…..4

1.2.Структура и объем дисциплина…... ……………………………………………….......................…4

1.3.Содержание дисциплины…………………………...……………………………………………..…5

1.4.Требования к уровню освоения дисциплины и формы текущего и промежуточного контроля………………………………………………………………………………...………………….5

2.Учебно-методическое пособие.…………………………………………………………...………....9

2.1.Тематический план изучения дисциплины……..………………………….………………...…….9

2.2.Руководство по практическим занятиям…..……………………………………...……….………46

2.2.1.Практическое занятие № 1. Тема № 1. Интеллектуальные системы. Семантические экспертные системы ……………………………………………………………………………..……...54

2.2.2.Практическое занятие № 2. Тема № 2. Интеллектуальные системы. Фреймовые экспертные системы……………………………………………………………………………………..53

2.2.3.. Практическое занятие № 3. Тема № 3.Проектирование онтологии в системе Protégé ….....60

2.2.4.Практическое занятие № 4. Тема № 4. Интеллектуальные системы. Семинарское занятие………………………………………………………………………………………..………….103

2.2.5.Практическое занятие № 5. Тема № 5 Организация разработки информационных систем. Семинарское занятие………………..………………………………………………………………….111

2.2.6.Практическое занятие № 6. Тема № 6. Унифицированный язык визуального моделирования Unified Modeling Language (UML).Этапы проектирования информационной системы (ИС) c применением UML …………………………………………………………………………..…………141

2.2.7.Практическое занятие № 7. Тема № 7. Практическая разработка ИС. Порядок выполнения практического задания. Краткая характеристика и отчёт об обследовании предприятия ……..…164

2.2.8.Практическое занятие № 8. Тема № 8. Практическая разработка ИС. Разработка моделей биз- нес-процессов предприятия. Задание 1-7………………………….…………………..………….171

2.2.9.Практическое занятие № 9. Тема № 9. Практическая разработка ИС. Разработка моделей биз- нес-процессов предприятия. Задание 8-21………………………………………………….…….193

3.Учебно-методическое обеспечение дисциплины...………………………..................................214

3.1.Перечень основной и дополнительной литературы…..................................................................214

3.2.Методические рекомендации преподавателю……………………………………………... .......214

3.3.Методические указания студентам по изучению дисциплины………………….......................215

3.4.Учебно-методическая карта дисциплины……………………………………..……………..…..215

3.5.Материально-техническое обеспечение дисциплины……………………….………………….217

3.6.Программное обеспечение использования современных информационно-коммуникативных технологий…………………………………………………..…………………………………………..218

3

1. РАБОЧАЯ УЧЕБНАЯ ПРОГРАММА ДИСЦИПЛИНЫ

1.1. Цели и задачи дисциплины

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

.

Для изучения дисциплины "Современные проблемы информатики и вычислительной техники" студентам необходимо знать дисциплины «Информатика», «Информационные технологии».

семестра

1

2

недельЧисло

17

20

 

 

1.2. Структура и объем дисциплины

 

 

 

Распределение фонда времени по семестрам, неделям, видам занятий

 

Количество часов по плану

Количество часов в неделю

Самостоятельная

 

 

 

 

 

 

 

 

 

работа

всего

лекции

практ.

лабор.

всего

лекции

практ.

лабор.

часов

часов

 

 

занят.

занят.

 

 

занят.

занят.

всего

в неделю

 

 

 

очное отделение

 

 

 

 

117

32

14

-

3

2

1

 

71

4

123

22

18

-

2

1

1

 

83

4

4

1.3. Содержание дисциплины

Распределение фонда времени по темам и видам занятий

 

 

Аудиторные

Самост.работа

Всего

 

 

занятия

Лабораторные

Наименование разделов по темам

Лекции

Практические

 

 

 

 

 

1.

Введение. Математические проблемы информатики. Теория сложности10

14

 

20

44

 

алгоритмов. Общие сведения интеллектуальных системах

 

 

 

 

 

2.

Развитие языков, методов и технологий программирования.

6

 

 

10

16

 

Новые парадигмы программирования. Верификация программ

 

 

 

 

 

3.

Новые принципы и методы вычислений. Системы компьютерной

4

 

 

20

24

 

алгебры

 

 

 

 

 

4.

Системы искусственного интеллекта. Задачи модели и проблемы

4

 

 

8

12

 

человеко-машинного взаимодействия

 

 

 

 

 

5.

Синергетика и информатика

4

 

 

10

14

6.

Концептуальное проектирование систем. Новые технологии из-

10

18

 

46

56

 

влечения знаний из больших баз данных

 

 

 

 

 

7.

Современные архитектуры ВС. Параллельные системы. ВС с

10

 

 

30

40

 

массовым параллелизмом. Развитие вычислительных сетей и

 

 

 

 

 

 

телекоммуникаций.

 

 

 

 

 

8.

Тенденции и перспективы информатики и вычислительной тех-

6

 

 

10

16

 

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

 

 

 

 

 

 

систем. Правовые, экономические, социальные и психологиче-

 

 

 

 

 

 

ские аспекты информатизации деятельности человека

 

 

 

 

 

Итого

54

32

 

154

240

1.4.Требования к уровню освоения дисциплины и формы текущего

ипромежуточного контроля

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

регулярно посещать лекционные занятия;

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

активно работать на практических занятиях;

5

выступать с сообщениями по самостоятельно изученному материалу;

участвовать с докладами на студенческой конференции.

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

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

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

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

Итоговый контроль знаний по дисциплине проводится в форме письменного зачета, экзамена и рейтинга. Для подготовки к экзамену студенты используют приводимый ниже перечень вопросов для подготовки к экзамену, который соответствует содержанию ГОС дисциплины.

Примерный перечень вопросов для подготовки к экзамену по дисциплине «Современные проблемы информатики и вычислительной техники»

ТЕОРЕТИЧЕСКИЕ ВОПРОСЫ

1.Среди способов представления знаний.

2.Общие сведения об управление знаниями.

3.Общая характеристика направления в области интеллектуальных систем Data Mining.

4.Общие сведения обработки текста в интеллектуальных системах.

5.Общие сведения об онтологии.

6.Разработка онтологии.

7.Средства построения онтологий.

8.Область применения компьютерной графики.

9.Protégé программа, назначение, основные элементы главного окна.

10.Инструмент аннотирования на основе онтологии.

11.Методология семейства IDEF (Integrated DEFintion)моделирования сложных систем.

12.Общая характеристика системы управления знаниями.

13.Общая характеристика онтологичекой системы управления знаниями (СУЗ).

14.Задачи управления знаниями с помощью онтологической системы СУЗ.

15.Семантический Web и его применение.

6

16.Общие сведения о метаданных. Унифицированные системы метаданных.

17.Общие сведения о системе метаданных Дублинского ядра DC (Dublin Core).

18.Общая характеристика языков онтологий.

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

20.Общая характеристика кодирования информации.

21.Методы сжатия и форматы данных.

22.Вейвлеты, вейвлет-преобразования их краткая характеристика.

23.Общие сведения о теории эволюции мира.

24.Общая характеристика фрактала.

25.Общая характеристика синергетики.

26.Развитие систем управления предприятиями.

27.Системы управления бизнес-процессами.

28.Общие сведения об архитектуре проектирования систем.

29.Общие сведения об объектно-ориентированном программировании.

30.Общие сведения об компонентно-ориентированных технологий.

31.Общие сведения об сервис-ориентированной архитектурае SOA (Service Oriented Architecture).

32.Общие характеристика сетевых служб.

33.Общие сведения о разработки, управляемой моделями, Model-Driven Development (MDD).

34.Общая характеристика паттерн проектированияи ( шаблон проектирования).

35.Общие сведения о метамодели.

36.Унифицированный язык объектно-ориентированного моделирования Unified Modeling Language (UML).

37.Общие сведения о построении диаграмм использования с помощью унифицированного языка объектно-ориентированного моделирования Unified Modeling Language (UML).

38.Общие сведения о построении диаграмм классов с помощью унифицированного языка объектно-ориентированного моделирования Unified Modeling Language (UML).

39.Общие сведения о построении диаграммы взаимодействия

с помощью унифицированного языка объектно-ориентированного моделирования Unified Modeling Language (UML).

40.Общие сведения о методики проектирования информационных систем на основе UML.

41.Общие сведения о языке XML Metadata Interchange.

42.Общая характеристика интегрированных сред разработки приложений.

43.Интеграция приложений и их классификация.

7

44.Способы интеграции информационных систем.

45.Общие сведения о технологии Workflow (Workflow - поток работ).

46.Общие сведения о технологии SOAP. Протокол SOAP (Simple Object Access Protocol).

47.Общие сведения о Стандарте Universal Description Discovery and Integration (UDDI).

48.Общие сведения о языке Web Service Description Language (WSDL).

49.Общие сведения о комплексной системи интеграции приложений Microsoft BizTalk Server.

50.Общие сведения о языке описания бизнес-процессов Business Process Execution Language (BPEL).

51.Общие сведения описания бизнес-процессов с помощью языке Business Process Execution Language (BPEL).

52.Общие сведения о языке BPML (Business Process Modeling Language).

53.Общие сведения о Интеграции АСУП/АСУТП(автоматизированная система управления технологическим процессом / автоматизированная система коммерческого учёта).

54.Общие сведения о развитии технического обеспечения автоматизированных систем.

55.Общие сведения о тенденции развития вычислительных систем.

56.Общие сведения о технологии Grid.

ПРАКТИЧЕСКИЕ ВОПРСЫ

1.С помощью MS Visio создать физическую диаграмму.

2.С помощью MS Visio создать диаграмму действий.

3.В системе Protege создать класс "корреспондент" (Columnist).

4.В системе Protege создать класс "автор" (Author).

5.В системе Protege создать подкласс Editor (редактор) класс "автор" (Author).

По результатам проведенного экзамена выставляется оценка:

«отлично» – студентам, овладевшим целостными знаниями по дисциплине, активно работающим на практических занятиях, постоянно и творчески выполняющим индивидуальные задания, свободно использующим знаниями, полученными в результате самостоятельной работы (86 балл и выше);

«хорошо» – студентам, владеющим знаниями по основным и дополнительным вопросам дисциплины, активно работающим на практических занятиях, выполняющим различные индивидуальные задания, в достаточной мере разбирающимся в знаниях, полученных в ходе самостоятельной работы (70–85 баллов);

«удовлетворительно» – студентам, владеющим основными вопросами по тематике дисциплины, выполняющим лабораторные работы на достаточном уровне, в основном разбирающимся в темах дисциплины, вынесенных на самостоятельное изучение (51–69 баллов);

8

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

2.УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ

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

2.1. Тематический план изучения дисциплины

Тема 1. Введение. Математические проблемы информатики. Общие сведения о интеллектуальных системах.

Открытые математические проблемы информатики

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

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

Проблемы Гильберта Проблемы Ландау Проблемы тысячелетия Проблемы Смейла

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

Задачи тысячелетия (Millennium Prize Problems) составляют семь математических проблем, охарактеризованных как «важные классические задачи, решение которых не найдено вот уже в течение многих лет». За решение каждой из этих проблем институтом Клэя (Математический институт Клэя — частная некоммерческая организация, расположенная в Кембридже, штат Массачусетс. Был основан в 1998 году бизнесменом по имени Лэндон Клэй (Landon T. Clay) и математиком из Гарварда Артуром Джеффи (Arthur Jaffe). Цель института — увеличение и распространение математических знаний. С этой целью институт выдаёт различные награды и спонсирует многообещающих математиков.) предложен приз в 1 000 000 долларов США. Анонсируя приз, институт Клэя провёл параллель со списком проблем Гильберта, представленным в 1900 году и оказавшим существенное влияние на математиков XX века. Из 23 проблем Гильберта большинство уже решены, и только одна — гипотеза Римана — вошла в список Проблем тысячелетия.

Задачи тысячелетия Равенство классов P и NP Гипотеза Ходжа Гипотеза Пуанкаре

9

Гипотеза Римана Квантовая теория Янга — Миллса

Существование и гладкость решений уравнений Навье — Стокса Гипотеза Берча и Свиннертона — Дайера Список проблем

Равенство классов P и NP Гипотеза Ходжа Гипотеза Пуанкаре (доказана) Гипотеза Римана Теория Янга — Миллса

Существование и гладкость решений уравнений Навье–Стокса Гипотеза Берча и Свиннертона-Дайера

Равенство классов P и NP

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

Теория сложности алгоритмов. Оценка сложности алгоритмов Теория алгоритмов - это наука, изучающая общие свойства и закономерности алгоритмов, разно-

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

Разработанные в 1930-х годах разнообразные формальные модели алгоритмов (Пост, Тьюринг, Черч), равно как и предложенные в 1950-х годах модели Колмогорова и Маркова, оказались эквивалентными в том смысле, что любой класс проблем, разрешимых в одной модели, разрешимы и в другой.

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

Существуют теории алгоритмов как: классическая теория алгоритмов (машина Поста, машина Тьюринга, алгоритмически неразрешимые проблемы), асимптотический анализ сложности алгоритмов, включая сложность рекурсивных реализаций, сложностные классы P, NP, NPC, включая проблему P = NP и практический сравнительный анализ алгоритмов. На примере криптосистемы RSA показана практическая важность результатов теории алгоритмов.

ТЕОРИЯ СЛОЖНОСТИ ВЫЧИСЛЕНИЙ И СЛОЖНОСТНЫЕ КЛАССЫ ЗАДАЧ Теоретический предел трудоемкости задачи

10

Рассматривая некоторую алгоритмически разрешимую задачу, и анализируя один из алгоритмов ее решения, мы можем получить оценку трудоемкости этого алгоритма в худшем случае – fa(

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

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

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

= min { ( (D)) }

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

ботает не быстрее, чем с оценкой в худшем случае:

(D) = () Приведем ряд примеров:

Задача поиска максимума в массиве A=(a1,…,an) – для этой задачи, очевидно должны быть про-

смотрены все элементы, и = (n).

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

нование какой–либо другой оценки на сегодня не известно, что приводит нас к оценке =Q (

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

оценка Q () должна быть доказана, как теоретический предел. Сложностные классы задач

В начале 1960-х годов, в связи с началом широкого использования вычислительной техники для решения практических задач, возник вопрос о границах практической применимости данного алгоритма решения задачи в смысле ограничений на ее размерность. Какие задачи могут быть решены на ЭВМ за реальное время?

Ответ на этот вопрос был дан в работах Кобмена (Alan Cobham, 1964), и Эдмнодса (Jack Edmonds, 1965), где были введены сложностные классы задач.

Способы представления знаний

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

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

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

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

11

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

Введение в управление знаниями

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

Среди теоретических предпосылок возникновения knowledge management (КМ) можно выделить следующие.

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

Всфере социологии знания генерируются, главным образом, в коллективах. На макроуровне

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

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

Различают корпоративные знания явные и неявные. Явные знания — это содержание документов организации таких, как письма, статьи, справочники, патенты, чертежи, программное обеспечение и т. п. Неявные (скрытые) знания — это персональные знания, связанные с индивидуальным опытом сотрудников. Часто именно скрытое знание является ключевым при принятии решении и управлении производственными процессами.

Вуправлении знаниями можно выделить следующие этапы:

1.Накопление, часто происходящее стихийно и бессистемно.

2.Извлечение.

3.Структурирование — выделение основных понятий, выработка способов представления информации.

4.Формализация — перевод знаний в машинный формат.

Data Mining

Data Mining (DM) — направление в области интеллектуальных систем, связанное с поиском в больших объемах данных скрытых закономерностей. Data Mining можно интерпретировать как обнаружение знаний в базах данных или как интеллектуальный анализ данных. Дословно DM переводится как добыча данных. Другими словами, это добыча знаний, необходимых для принятия решений в различных сферах человеческой деятельности.

5. Сопровождение (обслуживание) — удаление, корректировка, добавление, фильтрация данных и знаний для поиска информации, необходимой пользователям.

Единого мнения относительно того, какие задачи следует относить к Data Mining, нет. В большинстве источников называются следующие основные задачи:

классификация,

кластеризация,

ассоциация,

последовательность,

прогнозирование,

Задачи обработки текстовой информации

Обработка текста в интеллектуальных системах включает морфологический, синтаксический и семантический анализ.

12

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

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

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

Классификация

Пусть в обучающей выборке имеется множество объектов, объект характеризуется вектором параметров =(x1,x2,x3,...xn), объекты распределены между кластерами множества . Далее объектами будем считать векторы .

При задании нового объекта в виде вектора нужно отнести его к одному из кластеров мно-

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

роятностей гипотез (формуле Бейеса), в соответствии с которой вероятность выбора гипотезы для заданного вычисляется как

|) = (|) () / (), где (|) — вероятность появления объекта в кластере , () — вероятность

того, что произвольный объект обучающей выборки отнесен к кластеру ; () = (| )() — вероятность того, что объект обучающей выборки есть .

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

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

альтернативам — возможным значениям параметра в вершинах для выбора альтернативы используются правила ЕСЛИ…ТО... Правила формируются по имеющейся обучающей выборке.

Терминальные вершины соответствуют гипотезам .

Кластеризация

Кластеризация — разделение множества объектов на группы (классы, кластеры) по тем или иным признакам сходства объектов, т.е. формирование множества классов для объектов не-

13

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

Если множество метризовано, то оценкой близости двух объектов и будет норма вектора || (расстояние между и ). Например:

= max |-| при € [1:] .

Межкластерное расстояние – расстояние между центрами кластеров. Центр -го кластера имеет усредненные координаты

= /,

где – вектор параметров -го объекта, входящего в -й кластер. Один из алгоритмов кластеризации:

1)Все объекты обучающей выборки помещаются в первый кластер;

2)Объект с наибольшим усредненным расстоянием от других объектов переносится во второй кластер;

3)Все объекты с меньшим средним расстоянием до объектов второго кластера, чем до первого, переносятся во второй кластер;

4)Если наибольший диаметр кластеров больше заданного порога, то для кластера с большим диаметром повторяются пункты 1-3, иначе останов. Диаметр кластера определяется как наибольшщее расстояние между парой объектов, принадлежащих кластеру:

Диаметр = Если множество неметризовано, то расстоянием между двумя объектами и будет число

несовпадающих элементов в множествах и .

Метод ближайшего соседа

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

Метод k-ближайшего соседа — разновидность метода ближайшего соседа, в нем в качестве ближайших соседей рассматриваются не один, а k ближайших соседей.

Обычно в памяти хранятся не все прецеденты, а только подмножество "типичных" случаев. Тогда метод называют методом рассуждения по аналогии (Case Based Reasoning, CBR), или рассуждения на основе аналогичных случаев, или рассуждения по прецедентам.

Подход, основанный на прецедентах, условно можно разделить на следующие этапы:

сбор подробной информации о поставленной задаче;

сопоставление этой информации с деталями прецедентов, хранящихся в базе, для выявления аналогичных случаев;

выбор прецедента, наиболее близкого к текущей проблеме, из базы прецедентов;

адаптация выбранного решения к текущей проблеме, если это необходимо;

проверка корректности каждого вновь полученного решения;

занесение детальной информации о новом прецеденте в базу прецедентов.

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

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

14

Метод анализа иерархий

К числу методов принятия решений, используемых в СППР и СУЗ, относится метод анализа иерархий. Он предназначен для выбора одной из множества возможных альтернатив в условиях неопределенности, т.е. в условиях использования неточных, неполных, неколичественных исходных данных. Метод анализа иерархий основан на предпочтениях экспертов.

Применение метода сводится к выполнению следующих процедур

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

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

сравнений. Элементом матрицы парных сравнений альтернативных вершин на некотором иерархическом уровне является балльная оценка эксперта (или усредненная оценка нескольких

экспертов) предпочтительности вершины по сравнению с вершиной . При этом = 1/ Результирующей оценкой предпочтительности альтернативных вершин по отношению друг к другу

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

λmax,

где матрица парных сравнений, λmax — максимальное собственное значение матрицы .

Примечание 1

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

3. На каждом ярусе может быть несколько групп альтернативных вершин и столько же векто-

ров . Для примера рис. 1 на первом ярусе имеется одна группа вершин, обозначенная 01, на втором ярусе — две группы 11 и 12, на третьем ярусе — три группы 21, 22 и 23. Каждой группе соот-

ветствует матрица парных сравнений со своим собственным вектором ( для матрицы вершин

группы 21, — для матрицы вершин группы 22 и т.д.). Пересчет собственных векторов в

вектора предпочтительности вершин по отношению к вершинам нижнего яруса выполняется по формуле

= ,

где — матрица, столбцами которой являются вектора смежных вершин соседнего нижнего яруса.

15

Рис. 1. Пример иерархического дерева

Для примера рис.1 имеем = ; = ; = ;

= [,]; = [,];

=[,].

Трехэлементный вектор в примере выражает предпочтения альтернатив, представленных вершинами A, B, D.

Онтологии

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

Другое определение онтологии дается следующей ее моделью:

, (1)

где — множество понятий предметной области, называемых также концептами,

множество отношений между концептами, — множество функций интерпретации концептов и отношений.

Частные случаи (1):

Простой словарь = , = ; словари часто называют глоссариями, в них наряду с самими концепатми описываются грамматические, стилистические характеристики и примеры использования.

Простая таксономия (т.е. иерархическая система понятий) = .

16

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

Онтологии формально схожи с XML Schema, но отличаются тем, что онтологии являются представлением знаний, а не форматом сообщений.

Для представления онтологий применяют дескриптивную логику, логику первого порядка, графы и семантические сети.

Язык описания онтологий — формальный язык, используемый для кодирования онтологии. Наиболее известные среди них: OWL — ontology web language, стандарт W3C, язык для семантических утверждений, разработанный как расширение RDF и RDFS; KIF (Knowledge Interchange Format или формат обмена знаниями) — основанный на S-выражениях синтаксис для логики; CycL — онтологический язык, использующийся в проекте Cyc, основан на исчислении предикатов с некоторыми расширениями более высокого порядка; DAML+OIL.

Обычно разработка онтологии включает:

определение понятий;

расположение понятий в таксономическом порядке (подкласс – надкласс);

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

заполнение значений слотов экземпляров.

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

Различают варианты разработки онтологий:

нисходящий — разработка начинается с определения самых общих понятий предметной области с последующей конкретизацией понятий;

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

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

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

Средства построения онтологий

Приводимый ниже обзор взят из источника.

Инструменты построения онтологий

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

Система Ontolingua была разработана в KSL (Knowledge Systems Laboratory) Стенфордского университета и стала первым инструментом инженерии онтологий. Она состоит из сервера и языка представления знаний.

Сервер Ontolingua организован в виде набора онтологий, относящихся к Web-приложениям, которые надстраиваются над системой представления знаний Ontolingua. Редактор онтологий – наиболее важное приложение сервера Ontolingua является Web-приложением на основе форм HTML. Кроме редактора онтологий, сервер Ontolingua включает сетевое приложение Webster (получение определений концептов), сервер OKBC (доступ к онтологиям Ontolingua по протоколу OKBC) и Chimaera (анализ, объединение, интегрирование онтологий). Все приложения, кроме сервера OKBC, реализованы на основе форм HTML. Система представления знаний реализована на Lisp.

17

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

Protégé – локальная, свободно распространяемая Java-программа, разработанная группой медицинской информатики Стенфордского университета (первая версия – 1987, последняя Protégé- 2.1.1 – июнь 2004). Программа предназначена для построения (создания, редактирования и просмотра) онтологий прикладной области. Её первоначальная цель – помочь разработчикам программного обеспечения в создании и поддержке явных моделей предметной области и включение этих моделей непосредственно в программный код. Protégé включает редактор онтологий, позволяющий проектировать онтологии, разворачивая иерархическую структуру абстрактных или конкретных классов и слотов. Структура онтологии сделана аналогично иерархической структуре каталога. На основе сформированной онтологии, Protégé может генерировать формы получения знаний для введения экземпляров классов и подклассов. Инструмент имеет графический интерфейс, удобный для использования неопытными пользователями, снабжен справками и примерами.

Protégé основан на фреймовой модели представления знания OKBC (Open Knowledge Base Connectivity) и снабжен рядом плагинов, что позволяет его адаптировать для редактирования моделей, хранимых в разных форматах (стандартный текстовый, в базе данных JDBC, UML, языков XML, XOL, SHOE, RDF и RDFS, DAML+OIL, OWL).

OntoEdit первоначально был разработан в институте AIFB (Institute of Applied Informatics and Formal Description Methods) Университета Karlsruhe (сейчас коммерциализован Ontoprise GmbH) выполняет проверку, просмотр, кодирование и модификацию онтологий. В настоящее время OntoEdit поддерживает языки представления: FLogic, включая машину вывода, OIL, расширение RDFS и внутреннюю, основанную на XML, сериализацию модели онтологии, используя OXML — язык представления знаний OntoEdit (OntoEdit’s XML-based Ontology representation Language). К достоинствам инструмента можно отнести удобство использования; разработку онтологии под руководством методологии и с помощью процесса логического вывода; разработку аксиом; расширяемую структуру посредством плагинов, а также очень хорошую документацию.

Так же как и Protégé, OntoEdit – автономное Java–приложение, которое можно локально установить на компьютере. Свободно распространяемая версия OntoEdit Free ограничена 50 концептами, 50 отношениями и 50 экземплярами. Архитектура OntoEdit подобна Protégé.

OilEd – автономный графический редактор онтологий, разработан в Манчестерском университете в рамках европейского IST проекта On-To-Knowledge. Инструмент основан на языке OIL (сейчас адаптирован для DAML+OIL, в перспективе – OWL), который сочетает в себе фреймовую структуру и выразительность дескриптивной логики (DL -Description Logics) с сервисами рассуждения. Что позволило обеспечить понятный и интуитивный стиль интерфейса пользователя и преимущества поддержки рассуждения (обнаружение логически противоречивых классов и скрытых отношений подкласса).

Из недостатков можно выделить отсутствие поддержки экземпляров. Существующая версия не обеспечивает полную среду разработки – не поддерживается разработка онтологий большого масштаба, миграция и интеграция онтологий, контроль версий и т.д. OilEd можно рассматривать как “NotePad” редакторов онтологий, предлагающий достаточную функциональность, чтобы позволить пользователям строить онтологии и продемонстрировать, как можно использовать механизм рассуждения FaCT для проверки онтологии на непротиворечивость.

В последнее время наблюдается рост популярности редактора OilEd. Он используется как для обучения, так и для исследования. Инструмент свободно распространяется по общедоступной лицензии GPL.

18

WebOnto разработан для Tadzebao – инструмента исследования онтологий и предназначен для поддержки совместного просмотра, создания и редактирования онтологий. Его цели – простота использования, предоставление средств масштабирования для построения больших онтологий.

Для моделирования онтологий WebOnto использует язык OCML (Operational Conceptual Modeling Language). В WebOnto пользователь может создавать структуры, включая классы с множественным наследованием, что можно выполнять графически. Все слоты наследуются корректно. Инструмент проверяет вновь вводимые данные контролем целостности кода OCML.

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

OntoSaurus является Web-браузером для баз знаний LOOM. Он состоит из двух основных модулей: сервера онтологий и Web-браузера для редактирования и просмотра онтологий LOOM с помощью HTML-форм, обеспечивая для них графический интерфейс. OntoSaurus также предоставляет ограниченные средства редактирования, но его основная функция — просмотр онтологий. Но для построения сложных онтологий нужно понимать язык LOOM. Большинство пользователей строят онтологию на языке LOOM в другом редакторе, а затем для просмотра и редактирования импортируют его в OntoSaurus. В OntoSaurus реализованы все возможности языка LOOM. Обеспечиваются автоматический контроль совместимости, дедуктивная поддержка рассуждения и некоторые другие функции.

Конструктор онтологий ODE (Ontological Design Environment), который взаимодействует с пользователями на концептуальном уровне в отличие от инструментов, подобно OntoSaurus, общающихся на символьном уровне. Мотивом для ODE послужило то, что людям проще формулировать онтологии на концептуальном уровне. ODE обеспечивает пользователей набором таблиц для заполнения (концептов, атрибутов, отношений) и автоматически генерирует для них код в LOOM, Ontolingua и FLogic.

KADS22 — инструмент поддержки проектирования моделей знаний согласно методологии CommonKADS. Онтологии составляют часть таких моделей знаний (другая часть — модели вывода). Модели CommonKADS определены в CML (Conceptual Modeling Language). KADS22 – интерактивный графический интерфейс для CML со следующими функциональными возможностями: синтаксический анализ файлов CML, печать, просмотр гипертекста, поиск, генерация глоссария и генерация HTML.

Тема 2. Развитие языков, методов и технологий программирования. Новые парадигмы программирования. Верификация программ

2.1. Развитие языков, методов и технологий программирования.

Первые языки программирования возникли относительно недавно. Различные исследователи указывают в качестве времени их создания 20-е, 30-е и даже 40-е годы XX столетия. Нашей задачей является не установление самого раннего языка, а поиск закономерностей в их развитии.

Как и следовало ожидать, первые языки программирования, как и первые ЭВМ, были довольно примитивны и ориентированы на численные расчеты. Это были и чисто теоретические научные расчеты (прежде всего, математические и физические), и прикладные задачи, в частности, в области военного дела.

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

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

19

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

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

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

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

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

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

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

Одним из таких примеров является язык Fortran, реализующий вычислительные алгоритмы. Другой пример – язык APL, трансформировавшийся в BPL и затем в C. Основные конструкции последнего остаются неизменными вот уже несколько десятилетий и присутствуют в языке C#, который нам предстоит изучить.

Примеры других языков программирования: ALGOL, COBOL, Pascal, Basic.

В 60-х годах возникает новый подход к программированию, который до сих пор успешно конкурирует с императивным, а именно, декларативный подход.

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

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

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

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

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

Различные диалекты языка LISP (в частности, Interlisp, Common Lisp, Scheme), возникли потому, что ядро и идеология этого языка оказались весьма эффективными при реализации символьной обработки (анализе текстов).

20

Другие характерные примеры декларативных языков программирования: SML, Haskell, Prolog. Одним из путей развития декларативного стиля программирования стал функциональный подход, возникший после создания языка LISP.

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

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

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

Языки искусственного интеллекта

В 90-х годах прошлого столетия планировалось появление компьютеров пятого поколения, называемых машинами "искусственного интеллекта". В качестве основных языков программирования в этом, пока неосуществленном, проекте предполагались языки искусственного интеллекта LISP и PROLOG.

Создателем языка LISP (1956-1959 гг.) является Джон Маккарти, которого называют отцом искусственного интеллекта. Именно он первым ввел термин "искусственный интеллект". Основным в языке LISP является понятие рекурсивно определенных функций. Доказано, что любой алгоритм может быть описан с помощью некоторого набора рекурсивных функций. Основные идеи этого языка были позже использованы в языке программирования для детей LOGO, разработанном в 70- е годы в Массачусетском технологическом институте под руководством Сэймура Пейперта. Подмножество языка LOGO, включающее команды для Черепашки, применяется при раннем обучении программированию.

Язык PROLOG разработан во Франции в 1972 году также для решения проблем искусственного интеллекта. PROLOG позволяет в формальном виде описывать различные утверждения, логику рассуждений, заставляет компьютер давать ответы на заданные вопросы.

Современные языки объектно-ориентированного и визуального программирования

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

Первым языком с элементами ООП был язык Симула-67. В Turbo PASCAL, начиная с версии 5.5, появились средства ООП. Итогом развития Turbo PASCAL в этом направлении стало создание фирмой Borland системы программирования DELPHI (Делфи). Использование этой системы, в частности, дает возможность легко и быстро программировать слож-ный графический интерфейс. В 1991 году появилась первая версия языка VISUAL BASIC. Начиная с пятой версии (1997 год) язык стал полностью объектно-ориентированным. По данным на конец 90-х годов прошлого сто-

21

летия количество программистов, использующих для своих разработок VISUAL BASIC, не уступает числу сторонников VISUAL C++ и DELPHI.

В 1985 году лаборатория Bell Labs (США) сообщила о создании языка программирования C++ (СИ++). Этот язык является сегодня наиболее популярным среди языков объектно-ориентирован- ного программирования. С его помощью возможно создание программных приложений, ориентированных на любые машины - от персональных до суперкомпьютеров. Создателем языка является Бьорн Страуструп.

Языки метаданных и онтологий Языки метаданных Семантический Web

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

В основании иерархической пирамиды находятся способы кодирования (форматы) данных, такие как, например, ASCII, UNICODE, графические форматы, а также ссылочные идентификаторы URI (Universal Resource Identifier).

Выше расположен уровень языков разметки HTML и XML (вместе со схемами HTML и XML или таблицами определения типов DTD).

Далее следует уровень с моделью RDF и языком RDFS (RDF Schema), служащими для описания метаданных, их интерпретации и обмена данными между приложениями. Если на уровне языков HTML и XML рассматриваются вопросы, связанные только со структурой документов, то на уровне RDF/RDFS решаются проблемы обеспечения семантической интероперабельности документов.

Верхний уровень занимают модели и языки онтологии, создаваемые на базе RDF/RDFSсредств. К языкам онтологии относятся DAML (DARPA Agent Markup Language), OIL (Ontology Interchange Language), OWL (Web Ontology Language) и др. С их помощью можно устанавливать эквивалентность классов, представлять теоретико-множественные операции над классами и т.п.

Применение семантического Web направлено на повышение эффективности решения следующих проблем:

расширенная навигация в информационном Web-пространстве и многомерный поиск;

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

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

Следует отметить, что для всех языков разметки на верхних иерархических уровнях, представленных на рис. 1, в качестве основы принят язык XML.

22

Рис. 1. Семантический Web

Метаданные

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

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

Существует ряд унифицированных систем представления метаданных. К ним относятся системы:

Dublin Core Metadata Element Set (Дублинское ядро), для различных информационных ресурсов и получившая распространение в библиотечных системах;

GEM, являющаяся частным случаем Дублинского ядра для образовательных ресурсов;

LOM (Learning Object Metadata), разработанная в IEEE и принятая за основу организацией IMS для описания метаданных образовательных ресурсов.

ВWeb-технологиях для описания метаданных различных документов предложены модель RDF и язык RDFS (RDF Schema), используемые в процедурах интерпретации данных и обмена

данными между приложениями.

Модель метаданных RDF

RDF (Resource Description Framework) — модель, предложенная консорциумом World Wide Web Consortium (W3C) для описания метаданных информационных ресуросов в Web. Для представления модели RDF используется язык XML. В получающемся XML-документе RDF-метадан- ные помещаются в контейнер XML с дескриптором rdf:RDF.

Модель состоит из предложений вида субъект - предикат - объект, где субъект — ресурс, о котором идет речь в предложении, предикат — ресурс, являющийся свойством субъекта, объект

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

Команда имеет тренера, его имя Иванов.

Здесь субъектом, предикатом и объектом являются команда, тренер, Иванов соответственно. RDF-модель документа на языке XML есть последовательность элементов Description. Каждый

элемент Description применяется к одному определенному ресурсу и содержит описания свойств ресурса. URI этого ресурса указывается в Description в качестве атрибута about или ID. Например:

<rdf:Description about="http://...">

Свойство может быть URI, строкой символов или элементом Description. Возможно использование нескольких элементов Description как включаемых в модель последовательно, так и вложенных друг в друга. Свойства представляются в виде XML-элементов <предикат>объект</предикат> или <предикат rdf:resource="объект"/>.

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

4.Язык RDFS

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

Язык RDFS предоставляет базовую систему типов для моделей RDF (аналогично Express в STEP). В числе типов имеются некоторые предопределенные типы, такие как Class,

23

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

Как и в XML, в RDFS вводятся теги для задания типов и атрибутов метаданных.

Множество ресурсов, родственных в том или ином смысле, является классом. Классы задаются с помощью тега rdfs:Class, их принадлежность к некоторому надклассу описываются с помощью тега rdfs:Resource. К числу классов относится rdfs:Literal, его экземплярами могут быть, например, string и integer. Экземплярами класса rdfs:Datatype, т.е. типов данных, являются подклассы класса rdfs:Literal. Принадлежность ресурса к конкретному классу задается с помощью свойства rdf:type.

Класс rdf:Property служит для описания свойств ресурсов. Класс свойств rdfs:domain позволяет указать область определения свойства, т.е. классы, к которым это свойство может быть применено. Класс rdfs:range позволяет указать диапазон свойства, т.е. классы, чьи ресурсы могут появиться в качестве значений заданного свойства.

Свойства rdfs:subClassOf и rdfs:subPropertyOf относятся соответственно к подклассу класса и подсвойству свойства.

Дублинское ядро

Hаиболее перспективным средством формирования описательных метаданных для широкого класса цифровых объектов является, по мнению многих ученых, система метаданных Дублинского ядра DC (Dublin Core).

Система Дублинского ядра разрабатывается с 1995 г.

Набор метаданных Дублинского ядра состоит из 15 элементов. Все элементы являются необязательными.

Языки онтологий

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

Одним из развитых языков онтологий является язык Express, созданный для целей информационной поддержки промышленных изделий на различных этапах их жизненного цикла и изложенный в группе стандартов STEP (ISO 10303). Онтологии ряда приложений, выраженные на языке Express и представленные в прикладных протоколах STEP, используются для создания электронных макетов изделий и информационного согласования различных промышленных автоматизированных систем.

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

Шагом на пути перехода от языка XML к языкам онтологий стало создание модели и языка описания обмена метаданными RDF/RDFS, разработанных практически одновременно с XML. Язык RDFS можно рассматривать как надстройку над XML. Отметим, что обычно метаданные интерпретируют как данные о данных, а в базах знаний под метаданными подразумевают синтаксические и семантические правила обработки информации.

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

24

Собственно языки онтологий для Web создаются на базе RDF/RDFS. Так, язык онтологий OIL является расширением RDFS, в котором используются фреймовые представления из моделей искусственного интеллекта.

Язык онтологий DARPA Agent Markup Language (DAML) предложен в 2000 г. Целью DAML и реализующего его программного обеспечения являются динамическая идентификация и интерпретация данных, интероперабельность между программными агентами, представление метаданных и управление знаниями. Объединение языков DARPA и OIL расширило возможности классификации, типизации и описания свойств ресурсов.

Другой язык онтологий OWL (Ontology Web Language), созданный на базе XML, также является элементом стека web-протоколов. В нем используется объектно-ориентированный метод описания предметных областей, реализуется представление о приложении, как о множестве сущностей (объектов) с наборами ограничений и атрибутов, характеризующих свойства и межобъектные связи. В языке есть средства описания версий онтологий и их агрегирования. Предполагается наличие агентов, которые смогут автоматически пополнять базу знаний информацией, вновь появляющейся в Интернет, строить тестирующие системы и т.п.

Примерами редакторов для разработки онтологий могут служить программы Webonto или OilEd (последняя поддерживает языки OIL и RDFS).

Существующие языки онтологий являются декларативными. Основная область применения таких языков, как RDF/RDFS, OIL, DAML, OWL - информационный поиск. Имеются языки, ориентированные на создание экспертных систем, например LOOM. С момента их создания первых языков онтологий прошло пока еще мало времени. Следует ожидать появления более мощных языков, позволяющих описывать как структурные, так и поведенческие аспекты приложений.

Язык OWL

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

Примерами инверсных свойств, описываемых с помощью inverseOf, могут служить большеменьше, родитель-потомок, холоднее-жарче и т.п. В функциональных отношениях и при функциональной инверсии определяемое свойство может не иметь ни одного или иметь только одно значение. Так, для субъекта "человек" свойство "место жительства" является функциональным. Если пара (x,y) объявлена с помощью TransitiveProperty как транзитивное отношение Р и пара (y,z) — экземпляр того же отношения Р, то пара (x,z) также экземпляр отношения Р. Так, отношение "больше" — транзитивное в отличие, например, от отношения "отец-сын". Отношение симметричности задается с помощью характеристики SymmetricProperty, примером такого отношения может служить отношение партнерства.

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

Web-2

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

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

25

например RDF Site Summary или Really Simple Syndication. Другим форматом аналогичного назначения является Atom. Существенной частью спецификации Atom является протокол, работающий поверх HTTP. Активно поддерживается компанией Google.

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

2.2. Новые парадигмы программирования. Верификация программ

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

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

Ценится точность и устойчивость научных расчетов. Язык Фортран — ветеран прикладного программирования , постепенно стал несколько уступать в этой области Паскалю-Си, а на суперкомпьютерах — языкам параллельного программирования, таким как Sisal.

Теоретическое программирование придерживается публикационной направленности, нацеленной на сопоставимость результатов научных экспериментов в области программирования и информатики. Программирование пытается выразить свои формальные модели, показать их значимость и фундаментальность. Эти модели унаследовали основные черты родственных математических понятий и утвердились как алгоритмический подход в информатике. Стремление к доказательности построений и оценка их эффективности, правдоподобия, правильности, корректности и других формализуемых отношений на схемах и текстах программ послужили основой структурированного программирования и других методик достижения надежности процесса разработки программ, например грамотное программирование . Стандартные подмножества Алгола и Паскаля, послужившие рабочим материалом для теории программирования, сменились более удобными для экспериментирования аппликативными языками , такими как ML, Miranda, Scheme, Haskell и другие. Теперь к ним присоединяются нововведения в C и Java.

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

/параллельное программирование.

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

26

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

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

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

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

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

27

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

Направление развития парадигмы программирования отражает изменение круга лиц, заинтересованных в развитии и применении информационных систем. Многие важные для практики программирования понятия, такие как события, исключения и ошибки, потенциал, иерархия и ортогональность построений, экстраполяция и точки роста программ, измерение качества и т.д. не достигли достаточного уровня абстрагирования и формализации. Это позволяет прогнозировать развитие парадигм программирования и выбирать учебный материал на перспективу компонентного программирования (COM/DCOM, Corba, UML и др.). Если традиционные средства и методы выделения многократно используемых компонентов подчинялись критерию модульности, понимаемой как оптимальный выбор минимального сопряжения при максимальной функциональности, то современная элементная база допускает оперирование поликонтактными узлами, выполняющими простые операции.

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

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

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

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

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

28

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

Литература [21]

Тема 3. Новые принципы и методы вычислений. Системы компьютерной алгебры

Эволюционные методы

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

Эволюционные вычисления составляют один из разделов искусственного интеллекта. При построении систем ИИ по данному подходу основное внимание уделяется построению начальной модели, и правилам, по которым она может изменяться (эволюционировать). Причем модель может быть составлена по самым различным методам, например, это может быть и нейронная сеть и набор логических правил. К основным эволюционным методам относятся методы отжига, генетические, поведения "толпы" (PSO), колонии муравьев (ACO), генетического программирования.

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

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

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

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

Среди ЭМ находят применение также методы, которые в отличие от ГА оперируют не множеством хромосом, а единственной хромосомой. Так, метод дискретного локального поиска (его англоязычное название Hillclimbing) основан на случайном изменении отдельных параметров (т.е. значений полей в записи или, другими словами, значений генов в хромосоме). Такие изменения называют мутациями.

После очередной мутации оценивают значение функции полезности (Fitness Function) и результат мутации сохраняется в хромосоме только, если улучшилась. При "моделировании отжига" ре-

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

В методе PSO (Particles Swarm Optimization) имитируется поведение множества агентов, стремящихся согласовать свое состояние с состоянием наилучшего агента.

Метод колонии муравьев (ACO) основан на имитации поведения муравьев, минимизирующих длину своих маршрутов на пути от муравьиной кучи до источника пищи.

Информация

29

Информация (в обыденном смысле) – это сведения об объектах или явлениях окружающей среды, которые мы запрашиваем в случае возникновения необходимости в них. В Законе Российской Федерации "Об информации, информационных технологиях и о защите информации" информация также определяется, как сведения о лицах, предметах, фактах, событиях, явлениях и процессах независимо от формы их представления.

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

Кодирование информации

Кодирование — представление сообщения (информации) последовательностью элементарных символов.

Рассмотрим кодирование дискретных сообщений. Символы в сообщениях могут относиться к алфавиту, включающему n букв (буква — символ сообщения). Однако число элементов кода k существенно ограничено сверху энергетическими соображениями, т.е. часто n > k. Так, если отношение сигнал/помеха для надежного различения уровня сигнала должно быть не менее q, то наименьшая амплитуда для представления одного из k символов должна быть qg, где g — амплитуда помехи, а наибольшая амплитуда соответственно qgk. Мощность передатчика пропорциональна квадрату амплитуды сигнала (тока или напряжения), т.е. должна превышать величину, пропорциональную (qgk)2. В связи с этим распространено двоичное кодирование с k = 2. При двоичном кодировании сообщений с n типами букв, каждая из n букв кодируется определенной комбинацией 1 и 0 (например, код ASCII).

Сжатие данных

Представление сообщения в виде кода с уменьшенным числом символов за счет уменьшения избыточности или за счет потери малосущественной информации называется сжатием (ком-

прессией) данных. Мерой избыточности является коэффициент избыточности сообщения

опре-

деляемый

по

 

формуле

где — количество информации в сообщении

,

— максимально возможное количество ин-

формации в сообщении той же длины, что и .

Пример избыточности дают сообщения на естественных языках, так, у русского языка находится в пределах 0,3...0,5.

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

где — число минимально необходимых символов для передачи сообщения (практически это

число символов на выходе эталонного алгоритма сжатия); — число символов в сообщении, сжатом данным алгоритмом. Часто степень сжатия оценивают отношением длин кодов на входе и выходе алгоритма сжатия.

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

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

Методы сжатия и форматы данных

30

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

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

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

Предсказывающие (предиктивные) методы основаны на экстраполяции значений амплитуд отсчетов, и если выполнено условие

то отсчет должен быть передан, иначе он является избыточным; здесь и — амплитуды ре-

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

делы "коридора" (допуска ), показанного пунктирными линиями, то происходит передача отсчета. На рисунке передаваемые отсчеты отмечены темными кружками в моменты времени

. Если передачи отсчета нет, то на приемном конце принимается экстраполированное значение.

Рис.1.2. Предиктивное кодирование

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

31

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

При анализе математической модели результатом могут быть общие и частные аналитические решения сформулированной математической задачи и их интерпретации[1].

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

Тема 4. Системы искусственного интеллекта. Задачи, модели и проблемы человеко-машин- ного взаимодействия

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

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

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

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

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

Качество интерфейса сложно оценить количественно из-за разнородности его показателей. Однако набор следующих показателей поможет получить его объективную оценку:

1.Время для достижения заданного уровня знаний и навыков по работе с приложением (время освоения).

2.Сохранение полученных навыков по истечению некоторого времени.

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

4.Субъективная удовлетворенность пользователя при работе с системой по n-бальной шкале. Проблемы :

1-Излишний разум у ПК 2-Налицо две области человеческой деятельности. Одна - прикладная - связана с постановкой и ре-

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

32

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

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

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

Важнейшим аспектом проблемы человеко-машинного взаимодействия стала проблема искусственного интеллекта (ИИ) .

«Философия информации и сложных систем» http://www.filosofa.net/referat-223-15.html http://ole-u.narod.ru/Razdel1.html

Терминология

Термин интеллект (intelligence) происходит от латинского intellectus — что означает ум, рассудок, разум, мыслительные способности человека. Соответственно искусственный интеллект (artificial intelligence) — ИИ (AI) обычно толкуется как свойство автоматических систем брать на себя отдельные функции интеллекта человека, например, выбирать и принимать оптимальные решения на основе ранее полученного опыта и рационального анализа внешних воздействий.

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

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

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

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

33

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

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

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

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

Биологический нейрон

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

Нейрон (нервная клетка) является особой биологической клеткой, которая обрабатывает информацию. Он состоит из тела (cell body), или сомы (soma), и отростков нервных волокон двух типов - дендритов (dendrites), по которым принимаются импульсы, и единственного аксона (ахоn) по которому нейрон может передавать импульс. Тело нейрона включает ядро (nucleus), которое содержит информацию о наследственных свойствах, и плазму, обладающую молекулярными средствами для производства необходимых нейрону материалов. Нейрон получает сигналы (импуль-

34

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

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

Кора головного мозга человека содержит около 1011 нейронов и представляет собой протяженную поверхность толщиной от 2 до 3 мм с площадью около 2200 см2. Каждый нейрон связан с 103-104 другими нейронами. В целом мозг человека содержит приблизительно от 1014 до 1015 взаимосвязей.

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

Архитектура и основные составные части систем ИИ

Различные подходы к построению систем ИИ Вспомогательные системы и их место в системах ИИ

Различные подходы к построению систем ИИ

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

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

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

35

Тема 5. Синергетика и информатика

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

Синергетика

Синергетика — новое научное междисциплинарное направление, основанное профессором Штутгартского университета Г.Хакеном, которое занимается изучением систем, состоящих из многих подсистем различной природы и имеющих свойства, которыми не обладали подсистемы. Слово синергетика переводится как "энергия совместного действия" (от греческого: со — совместно, эргос — действие).

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

На вопрос: "Что такое синергетика?" можно дать несколько ответов.

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

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

Можно дать третье определение: синергетика — наука о неожиданных явлениях. Это определение не противоречит, а дополняет предыдущие. Действительно, при медленном плавном и монотонном изменении параметров в системе в некоторый момент "вдруг" появляются автоколебания. Причина — потеря устойчивости.

Анализ причин и законов самоорганизации и составляет предмет синергетики.

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

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

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

Основой синергетики является теория динамических систем.

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

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

36

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

Столь широкий разброс мнений связан с некоторыми необычными особенностями синергетики

иее взаимосвязями с другими науками.

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

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

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

Тема 6. Концептуальное проектирование систем. Новые технологии извлечения знаний из больших баз данных

1.Развитие систем управления предприятиями

Начало истории АСУП отноистся к 60-м годам прошлого века. Все началось с планирования потребностей в материалах, представленного в системах MRP (1961 г.). Функции систем расширялись. Новые системы MRP II стали выполнять планирование в натуральных единицах и в стоимостном выражении, планирование производственных мощностей, моделирование производственных ситуаций, управление складами, снабжением, продажами, спросом и производством, что подготовило появление в 90-е годы систем ERP. В ERP-системах дополнительно реализуются финансовый учет, управленческий учет и финансовый менеджмент, бухгалтерский документооборот, бюджетирование.

По мере активного развития интернет-технологий в 90-ых появляется новое направление деятельности — электронный бизнес (e-business) — термин, которым обозначают методики и органи-

37

зационные принципы, позволяющие предприятию взаимодействовать со своими контрагентами через Интернет. Системы ERP с использованием Интернет-технологий стали называть ERP-2 (Enterprise Resource and Relationship Processing — Управление ресурсами и внешними отношениями предприятия). Их функции — управление производством, продажами и финансовыми процессаи. Традиционная клиент-серверная архитектура в этих системах начинает уступать место распределенным компонентнно-ориентированным технологиям.

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

2.Системы управления бизнес-процессами

Управление бизнес-процессами (BPM — Buseness Performance Management или Buseness Process Management) — включает, во-первых, моделирование, анализ и планирование бизнес-про- цессов, во-вторых, интеграцию приложений. В BPM процессы используются и как спецификации, и как источники кода.

Для целей моделирования в BPM применяют ряд средств. К основным стандартным языкам в области бизнес-моделитрования относятся BPEL (Business Process Execution Language), BPML (Business Process Modeling Language) и XPDL (XML Process Definition Language).

Пользователям удобно представлять разрабатываемые модели на графических языках описания бизнес-процессов, к которым относятся языки диаграмм IDEF, UML, EPC, BPMN (Business Process Modeling Notation). Формальный перевод диаграмм в имитационные модели реализуется в ряде методик диаграммного моделирования. Это, например, трансляция IDEF3-моделей в цветные сети Петри.

Архитектурное проектирование систем

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

Существует несколько парадигм архитектурного проектирования информационных систем:

1.Объектно-ориентированная (ООА, Object-Oriented Architecture);

2.Компонентно-ориентированная (CBA, Component-Based Architecture);

3.Сервисно-ориентированная (SOA. Service-Oriented Architecture) .

Объектно-ориентированное программирование

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

ВООП реализуются инкапсуляция, наследованике и полиморфизм.

Компонентно-ориентированные технологии

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

Сервис-ориентированная архитектура

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

38

Сервис-ориентированная архитектура SOA (Service Oriented Architecture) — архитектура информационной системы, основанная на следующих принципах:

Архитектура является распределенной, компонентно-ориентиррованной;

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

Используются общепринятые стандарты.

Сетевые службы

Термином "Сетевая служба" или "Сетевой сервис" принято обозначать, во-первых, программное обеспечение, предоставляющее определенные услуги по обработке информации и/или доступу к ней и взаимодействующее с распределенными клиентскими приложениями через свой внешний интерфейс, во-вторых, собственно услуги и функции, выполняемые службой. Webслужбой (Web-сервисом) называют сетевую службу, объединяющую приложения, работающие на базе Web-технологий, с использованием открытых стандартов (таких как XML, SOAP, WSDL и UDDI) в качестве Интернет-протоколов. Другими словами, Веб-службы — это программы, доступ к которым осуществляется через Веб (то есть через протокол HTTP), а обмен данными происходит в формате XML

Метамодель

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

Методика IDEF0

Взаимосвязанная совокупность методик IDEF для концептуального проектирования разработана по программе ICAM (Integrated Computer Aided Manufacturing) в США. В этой совокупности имеются методики функционального, информационного и поведенческого моделирования и проектирования.

Методики IDEF (ICAM DEFinition) задают единообразный подход к моделированию приложений, но не затрагивают проблем единообразного представления данных в процессах информационного обмена между разными компьютерными системами и приложениями. Необходимость решения этих проблем в интегрированных АС привела к появлению ряда унифицированных форматов представления данных в межкомпьютерных обменах, среди которых наиболее известными являются форматы IGES, DXF (в машиностроительных приложениях), EDIF (в электронике) и некоторые другие. Ограниченные возможности этих форматов обусловили продолжение работ в направлении создания более совершенных методик и представляющих их стандартов. На эту роль в настоящее время претендует совокупность стандартов STEP.

Методики IDEF0, IDEF1X, IDEF3 получили статус стандартов. Кроме того, имеются методики построения объектно-ориентированных систем IDEF4 и онтологического исследования сложных систем IDEF5 и некоторые другие.

Наиболее известной методикой функционального моделирования сложных систем является методика SADT (Structured Analysis and Design Technique), положенная в основу спецификации IDEF0.

Методика IDEF0 — это более четко очерченное представление методики SADT, рекомендованное к использованию в США в 1981 г. и в России в 2002 г. (рекомендация Госстандарта РФ "Методика функционального моделирования" Р50.1.028-2001). Методика IDEF0 (SADT) — методика, рекомендуемая для начальных стадий проектирования сложных искусственных систем управления, производства, бизнеса, включающих людей, оборудование, ПО. Начиная с момента создания первой версии, методика успешно применялась для проектирования телефонных сетей, систем управления воздушными перевозками, производственных предприятий и др.

39

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

Недостатки SADT-моделей — их слабая формализованность для автоматического выполнения проектных процедур на их основе. Однако наличие графического языка диаграмм, удобного для восприятия человеком, обусловливает полезность и применимость методики SADT.

Описание объектов и процессов в IDEF0 (SADT) выполняется в виде совокупности взаимосвязанных блоков (рис.1.3).

Рис.1.3. Блок ICOM в IDEF0-диаграммах

UML

Идеи системного подхода и их реализация в объектно-ориентированной методологии являются естественной базой современного проектирования и управления сложными системами. Такие понятия как сложная система, структура, состояние, иерархия, событие, пришедшие из системотехники, дополненные понятиями класса, объекта, атрибута, инкапсуляции, отношений обобщения, агрегации и др. стали основой парадигмы объектно-ориентированного проектирования (ООП), широко используемого в современных автоматизированных системах. Идеи ООП воплощены в основных языках, составляющих лингвистическое обеспечение CALS, таких как Express, или UML.

Среди языков, используемых в системах CASE на стадии концептуального проектирования сложных систем, господствующее положение в последнее время занял язык Unified Modeling Language (UML). Он был разработан по инициативе компании Rational Software, основные разработчики Гради Буч (Grady Booch), Ивар Якобсон (Ivar Jacobson) и Джим Рамбо (Jim Rumbaugh). Язык UML поддерживается и развивается консорциумом OMG (Object Management Group), первую версию языка (UML 1.0) OMG выпустила в 1997 г.

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

Разработка модели приложения с помощью языка UML начинается с построения диаграмм использования (use case diagram). Эти диаграммы характеризуют функциональность создаваемой системы с позиций пользователя и служат для отображения взаимодействия пользователей с проектируемой системой. В диаграммах в виде овалов представлены варианты использования, т.е. те функции, которые должна выполнять система (рис.1.3). Пользователи изображаются в виде стилизованных фигурок, ими могут быть не только люди, но и любые внешние образования, пользующиеся услугами проектируемой системы. Благодаря диаграммам использования, определяется и согласовывается внешняя функциональность системы и в итоге формируется техническое задание на разработку этой системы. Далее разрабатываются диаграммы взаимодействия "пользовательсистема", при этом выявляются необходимые объекты приложения, строятся диаграммы классов, формируется компонентная структура ПО.

40

Рис.1.3. Фрагмент диаграммы использования

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

— процедуры класса, как это сделано в примере на рис.1.4. Знаки +, - или # ставится перед именем атрибута или метода, если элемент имеет статус соответственно public, private или protected.

Рис.1.4. Пример изображения класса

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

41

Рис.1.5. Отношения тернарной ассоциации (а), агрегирования и наследования (б) в диаграммах классов

Пример фрагмента диаграммы классов с отношениями обобщения и агрегирования приведен на рис. 1.б.

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

Диаграммы взаимодействия объектов (interaction diagrams) относятся к диаграммам процессов, отражающим поведенческий аспект моделирования. Диаграммы взаимодействия представлены диаграммами последовательностей и кооперации. Кроме них, к диаграммам процессов относятся диаграммы состояний и деятельности.

В диаграммах последовательностей (sequence diagram), называемых также диаграммами сценариев, отражается последовательность событий, заключающихся в воздействиях одного объекта на некоторый другой объект. В этих диаграммах объекты изображаются прямоугольниками и располагаются каждый в своей вертикальной колонке диаграммы. Ось времени направлена вертикально вниз. От каждого объекта параллельно оси времени идут так называемые их линии жизни. Каждое событие изображается горизонтальной линией со стрелкой от линии жизни объекта, посылающего сообщение, к линии жизни объекта, принимающего сообщение. Над этими линиями возможен поясняющий текст. Линии располагаются одна над другой в порядке, в котором события совершаются. Пример диаграммы сценариев дан на рис.1.6, где прямоугольники объектов расположены в верхней части своих колонок.

Следует отметить, что в диаграммах взаимодействия фигурируют объекты, а не классы, что отмечается подчеркиванием имени объекта внутри прямоугольника объекта (на рис.1.6 имена не показаны). В диаграммах кооперации (collaboration diagram) объекты, представленные прямоугольниками, связаны между собой линиями, изображающими сообщения (поток управления). Сообщения упорядочены по времени появления. Около линии указываются порядковый номер сообщения, направление потока и, возможно, некоторые другие поясненияДиаграмма состояний (statechart diagram) представляет собой граф перехода состояний, известный по использованию во многих приложениях, но изображаемый по правилам языка UML. С помощью диаграммы состояний моделируется последовательность событий, происходящих в системе.

42

Рис.1.6. Вид диаграммы сценариев

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

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

Примером программной системы, поддерживающей язык UML, является система Rational Rose компании Rational Software.

Тема 7. Современные архитектуры вычислительных систем. Параллельные системы. ВС с массовым параллелизмом. Развитие вычислительных сетей и телекоммуникаций

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

Наибольшие архитектурные изменения произошли в машинах третьего поколения, в ВС построенных на интегральных схемах можно подразделить на ИС — БИС — СБИС — Микропроцессор (Кил-ЦП). Под кил-ЦП (приставка "кил" - образовано от слова килер) понимается современный микропроцессор, вобравший в себя все современные архитектурные решения и называемый килером в связи со своей дешевизной, а значит и повсеместным использованием при построении современных многопроцессорных вычислительных систем..

PVP (Parallel Vector Process) – параллельная архитектура с векторными процессорами

Основным признаком PVP-систем является наличие специальных векторно-конвейерных процессоров, в которых предусмотрены команды однотипной обработки векторов независимых данных, эффективно выполняющиеся на конвейерных функциональных устройствах. Как правило, несколько таких процессоров (1-16) работают одновременно с общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Несколько узлов могут быть объединены с помощью коммутатора (аналогично MPP). Системы с массовым параллелизмом (МРР).

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

43

Рис. 1.6.1. Архитектура систем с распределенной памятью.

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

Вычислительные сети, в зависимости от способов взаимодействия компьютеров в них, можно разделить на две группы - централизованные и одноранговые. Централизованные сети строятся на основе архитектуры "клиент-сервер".Одноранговые ЛВС основаны на равноправной (peer-to-peer) модели взаимодействия компьютеров.

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

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

Интегрированные среды разработки приложений

CASE-системы часто отождествляют с инструментальными средами разработки ПО, называемыми также интегрированными средами разработки программного обеспечения (IDE — Integrated development environment) или средами быстрой разработки приложений (RAD — Rapid Application Development). Обычно среда разработки включает в себя текстовый и графический редакторы, компилятор и/или интерпретатор, средства автоматизации сборки, отладки, документирования программ и управления версиями. Частный случай IDE — среды визуальной разработки, которые включают в себя возможность визуального редактирования интерфейса программы.

Интеграция приложений

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

44

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

Способы интеграции информационных систем

Способы интеграции различают по нескольким признакам.

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

Рис.1.7.

Тема 8. Тенденции и перспективы информатики и вычислительной техники. Развитие технического обеспечения автоматизированных систем

Суперкомпьютеры XXI века

Рост производительности компьютеров пока подчиняется феноменологическому закону Г.Мура, который гласит, что производительность компьютеров увеличивается в два раза каждые 18 месяцев. В ХХ веке этот закон был применим и к быстродействию (тактовой частоте) микропроцессоров. Сегодня возможности увеличения тактовой частоты исчерпаны, но рост производительности продолжается за счет увеличения числа процессоров в суперкомпьютерах и серверах, а также построения многоядерных персональных компьютеров. При этом справедливость закона Мура сохраняется в отношении степени интеграции СБИС.

Тенденции в развитии вычислительных систем

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

Производительность суперкомпьютеров приближается к петафлопному диапазону. Так, компании IBM и Cray планируют к 2010 г. создать суперкомпьютер с быстродействием более 4 petaflops. (один petaflops = 1015 операций с плавающей точкой в секунду). На ведение работ.уже выделено Cray $250 млн., а IBM — $244 млн.

2.2.Руководство по практическим занятиям

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

45

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

Распределение тем практических занятий по времени

Наименование темы

Тема

Количество

 

практического занятия

дисциплины

часов

1

Интеллектуальные системы. Семантические экспертные систе-

1

4

 

мы.

 

 

2

Интеллектуальные системы. Фреймовые экспертные системы.

2

4

3

Проектирование онтологии в системе Protege

3

4

4

Интеллектуальные системы. Семинарское занятие

4

2

5

Организация разработки информационных систем. Семинарское

5

2

 

занятие.

 

 

6

Унифицированный язык визуального моделирования Unified

6

4

 

Modeling Language (UML)

 

 

7

Практическая разработка ИС. Порядок выполнения практическо-

7

4

 

го задания. Краткая характеристика и отчёт об обследовании

 

 

8

предприятия

8

4

Практическая разработка ИС. Разработка моделей бизнес-процессов

 

предприятия. Задание 1-7

 

 

9

Практическая разработка ИС. Разработка моделей бизнес-про-

9

4

 

цессов предприятия. Задание 8-21

 

 

2.2.1. Практическое занятие № 1. Интеллектуальные системы. Семантические экспертные системы.

Практическое занятие №1 Тема 1. Семантические экспертные системы.

Цель и задачи занятия

Занятие имеет цель закрепить теоретические знания и получить первичный навык создания семантической сети.

План занятия

1.1.Изучение основных теоретических положений о семантических экспертных системах. 1.2.Варианты индивидуального задания для создания семантической сети.

1.1. Изучение основных теоретических положений о семантических экспертных системах

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

Семантика [sematics] – это составная часть науки о языке –лингвистики, изучающий значение единиц языка. В качестве инструмента изучения применяют семантический анализ.

Семантические модели.

Семантическая модель представляет данные об объектах и связях на основе семантической сети – графического отображения межобъектных связей Большая часть семантических моделей создана на базе семантических сетей. Этот термин обозна-

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

46

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

Возьмем, например, следующую фразу: «Программист сел за компьютер и отладил программу». Здесь выделяется три объекта: программист (a1), компьютер (a2) и программа (a3). Эти объекты связаны отношениями: сел за (r1), отладил (r2), загружена в (r3). К отношениям, явно выраженным в тексте, отнесено и отношение «загружена в» («программа загружена в компьютер»).

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

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

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

Обобщенный объект соответствует некоторой собирательной абстракции реально существующего объекта, процесса или явления предметной области. Например, «изделие», «предприятие», «сотрудник» и т.д. Обобщенные объекты фактически представляют определенные классы предметной области.

Индивидный объект – это каким-то образом выделенный единичный представитель (экземпляр) класса. Например, «сотрудник Петров И. Н.»

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

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

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

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

Иерархические отношения между объектами системы имеют двусторонний характер:

«сверху-вниз» и «снизу-вверх». Отношение «снизу-вверх» — это отношение типа «это-естъ» (по-ан- глийски — «is-a»). Например, скорость — это-естъ кинематическая величина, кинематическая величина — это-естъ механическая величина, механическая величина — это-естъ — физическая величина. Отношение «сверху-вниз» — это отношения типа «одним-из» («kind-of»).

Например, одним-из видов физических величин есть механические величины, одним-из видов механических величин есть кинематические величины, одним-из видов кинематических величин есть скорость.

В ряде случаев между связями «род-вид» и «является представителем не делают различий, отмечая, что эти связи задают отношение «общее-частное», используя для формализации таких связей отношения АКО и is_a.

Не менее важно отношение «является частью» (англ. part of). Данное отношение связывает агрегатный объект с его составными частями. Оно позволяет отражать в базе знаний структуру

47

объектов предметной области. Иногда данное отношение обозначают меткой «имеет». Такие отношения являются отношениями по горизонтали.

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

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

Вкачестве примера на рис.1.1 изображена семантическая сеть, представляющая часть знаний

оживотном мире.

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

Рис.1.1. Семантическая сеть о животном мире Успешным будет то наложение, в результате которого фрагмент сети оказывается идентич-

ным подграфу запроса. При этом допускается использование в запросе переменных. Переменная запроса сопоставляется с константой фрагмента сети. Пусть, например, имеется запрос: «Существует ли такая птица Х, которая умеет петь и имеет желтый цвет?», рис.1.2.

Птица

есть

Х

цвет

умеет

48

Желтый

Петь

 

Рис.1.2. Фрагмент сети

Изоморфное вложение подграфа запроса в семантическую сеть, изображенную на рисунке, позволяет дать ответ Х= «канарейка».

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

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

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

При анализе смысла предложений естественного языка важную роль играют глаголы. Предложение можно представить вершиной-глаголом и различными падежными связками (отношениями). Такую структуру называют падежной рамкой. Среди падежных отношений выделяют следующие: агент – отношение между событием и тем кто (что) его совершает); объект – отношение между событием и тем, над чем выполняется действие; инструмент – объект, с помощью которого совершается действие; место – место совершения события; время – время совершения события. При анализе предложения программа находит глагол и ищет в базе знаний соответствующую ему падежную рамку. Затем она связывает значения агента, объекта и т.д. с соответствующими узлами падежной рамки, устанавливая соответствующие падежные отношения между частями предложения. В качестве примера: «Иван закрепил деталь клеем», рис.1.3.

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

Концептуальный граф – это конечный, связанный, двудольный граф.

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

Рис.1.3. Пример отношения между частями предложения

49

используются. При этом ребра могут исходить из вершины понятия и заканчиваться в вер- шине-отношении и наоборот. Чтобы различать эти типы узлов, узлы понятий представим прямоугольниками, а концептуальные отношения – эллипсами, рис.1.4.

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

Рассмотрим предложение: «Иван закрепил деталь стула клеем».

Столяр:

 

Закрепил

Иван

Агент

Объект

Клей

Инструм

Деталь

 

 

ент

 

 

 

Часть

 

 

 

 

Рис.1.4.

Концеп-

 

туальные от-

ношения

Стул

– эллипсами

Та-

 

ким

об-

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

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

2.логические отношения (конъюнкция, дизъюнкция, отрицание, импликация);

3.теоретико-множественные отношения включают в себя отношения «множество-подмно- жество» («род-вид», «класс-подкласс»), «целое-часть», «элемент множества» и т.п.

4.квантифицированные отношения, которые подразделяются на логические кванторы общ-

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

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

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

– отношения «видимости». На рис.1.5 приведен пример дерева пространств, в соответствии с которым, например, из пространства Р6 (пространство-потомок) видимы все вершины и дуги.

Лежащие в пространствах-предках Р4, Р2, Р0, а остальные пространства «невидимы». Отношение «видимости» позволяет сгруппировать пространства в упорядоченные множества – «перспективы». Свойство «невидимости» позволяет повысить эффективность операции поиска в сети.

50

Частным случаем семантических сетей являются сценарии, или однородные семантические сети. Сценарий – это структурированное представление, описывающее стереотипную

Рис.1.5. Дерева пространств

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

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

Ф5

Ф2

Ф7

Ф7

Ф3

Ф6

Ф4

Рис.1.6. Пример сценария

Вершины сети задают следующие факты: Ф1 – станок простаивает; Ф2 – на рабочем месте нет рабочего; Ф3 – станок неисправен; Ф4 – в цехе нет заготовок; Ф5 – обеденный перерыв; Ф6 – рабочий покинул станок в рабочее время; Ф7 – рабочий находится в столовой.

51

Сценарий включает следующие компоненты.

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

Результаты или факты, которые являются истинными, когда сценарий завершается.

Предположения, которые поддерживают контекст сценария. Множество предположений описывают принятые по умолчанию условия реализации сценария.

Роли являются действиями, которые совершают отдельные участники.

Сцены. Сценарий состоит из последовательности сцен, каждая из которых представляет временные аспекты сценария.

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

<сценарий: название роли: список ролей (участники сценария)

цель: ключевое событие сценария, посылки и следствия ключевого события

сцена 1: наименование сцены

 

(ход сцены)

 

сцена 2: наименование сцены

 

(ход сцены)

(место, время проведения сценария,

………………………………….

побочные эффекты)

Сцена N: наименование сцены

 

(ход сцены)>

 

1.2.Варианты индивидуального задания для создания семантической сети.

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

 

Таблица 1.1.

 

Варианты индивидуального задания

Номер варианта

Наименование техники

1

Вычислительная техника

2

Телевизионная техника

3

Аудиовизуальная техника

4

Радиотехника

5

Бытовая техника

6

Техника для досуга

7

Военная техника

8

Техника связи

9

Транспортная техника

10

Техника полиграфии

11

Ядерная техника

12

Робототехника

13

Промышленная техника

14

Водная техника

15

Электротехника

1.3. Задания для самостоятельной работы по теме №1

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

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

Разработать концептуальные отношения представленное эллипсами

Назначение инструментов графического редактора Paint и основы работы с ними.

52

Вопросы для самоконтроля.

Назовите основные объекты предметной области, отображаемые в семантической сети. Настройка страницы графического редактора Paint, подготовка данных к печати.

Рекомендуемая литература по теме №1

Представление знаний в ИС. http://www.twirpx.com/files/informatics/knowledge/ Практическое занятие № 5. Семантические экспертные системы http://www.twirpx.com/file/5574/

Евгенев Г.Б. Интеллектуальные системы проектирования. – М., Изд-во МГТУ им. Н.Э. Баумана, 2009. – 334 с.

Современные проблемы информатики и вычислительной техники. http://bigor.bmstu.ru/?cnt/? doc=Default/142_problems.cou

Семантические сети. http://www.lnup.ru/development/semanticnet/

2.2.2. Практическое занятие № 2. Интеллектуальные системы. Фреймовые экспертные системы

Практическое занятие№2 Тема 2 Фреймовые экспертные системы

Цель и задачи занятия

Занятие имеет цель закрепить теоретические знания и получить первичный навык создания фреймовых сетей.

План занятия

2.1.Изучение основных теоретических положений о фреймовых экспертных системах. 2.2.Варианты индивидуального задания для создания фреймовых сети.

2.1. Изучение основных теоретических положений о фреймовых экспертных системах.

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

Фреймы впервые были предложены для представления знаний в 1975 г. По определению фреймы – это структуры данных, предназначенные для представления стереотипных ситуаций. Когда человек оказывается в новой ситуации, он извлекает из памяти ранее накопленные блоки знаний, имеющие отношение к текущей ситуации, и пытается применить их. Эти блоки знаний и представляют собой фреймы. Вероятно, знания человека организованы в виде сети фреймов, отражающих его прошлый опыт. Например, легко можно представить типовой номер в гостинице. Обычно он имеет кровать, ванную комнату, шкаф для одежды, телефон и т.д. Детали каждого конкретного номера могут отличаться от приведенного описания. Но они легко уточняются, когда человек оказывается в конкретном номере: цвет обоев, положение выключателей.

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

53

(Имя фрейма:

Имя слота 1 (значение слота 1) Имя слота 2 (значение слота 2)

………………………………….

Имя слота К (значение слота К)).

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

Совокупность фреймов, моделирующая какую-либо предметную область, представляет собой иерархическую структуру, в которой фреймы соединяются с помощью родовидовых связей. На верхнем уровне иерархии находится фрейм, содержащий наиболее общую информацию, истинную для всех остальных фреймов, рис.2.1. Фреймы обладают способностью наследовать значения характеристик своих родителей, находящихся на более высоком уровне иерархии. Так, фрейм АФРИКАНСКИЙ СЛОН наследует от фрейма СЛОН значение СЕРЫЙ характеристики ЦВЕТ. Значения характеристик фреймов могут передаваться по умолчанию фреймам, находящимся ниже них в иерархии, но если последние содержат собственные значения

Рис.2.1. Фрейм

данных характеристик, то в качестве истинных принимаются именно они. Это обстоятельство позволяет легко учитывать во фреймовых системах различного рода исключения. В частности, во фрейме АЗИАТСКИЙ СЛОН значением слота ЦВЕТ будет КОРИЧНЕВЫЙ, а не СЕРЫЙ, которое могло бы в нем находиться, если бы предпочтение при выборе отдавалось не собственному значению, а наследуемому от фрейма СЛОН.

54

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

Фреймы иногда делят на две группы – фреймы-описания и ролевые фреймы. Фрейм-описа-

ние:

(Фрукты:

виноград (болгарский, 20 т) яблоки (джонатан, 10 т) вишня (владимирская, 200 кг)).

Ролевой фрейм: (Перевезти:

что (прокат, 200кг) откуда (Алчевск) куда (Москву)

чем (железнодорожным транспортом) когда (в ноябре 2002 г.))

В ролевом фрейме в качестве имен слотов выступают вопросительные слова, ответы на которые являются значениями слотов.

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

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

Процедура-слуга запускается по запросу при обращении к слоту. Например, при обращении к слоту «оплата» будет активизирована процедура «Prise», которая определит стоимость проживания в номере за сутки.

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

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

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

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

55

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

Во фреймовых системах используется три способа управления выводом: с помощью механизма наследования; с помощью процедур-демонов; с помощью присоединенных процедур.

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

Рис.2.2. Простейшая иерархическая структура фрейма

Пример связи IS-A и A-KIND-OF (связь последнего типа иногда записывается как AKO) показан на рисунке.

56

Рис.2.3. Пример связи IS-A и A-KIND-OF

Каждый подкласс или экземпляр класса наследует слоты своего суперкласса. Если подкласс (экземпляр класса) и суперкласс имеют слоты с совпадающими именами, то определения значений слотов, сделанные внутри подкласса (экземпляра класса), перекрывают определения суперкласса. Например, ответ на вопрос: «Способен ли пингвин Федя летать?» будет отрицательным. При поиске ответа на этот вопрос фрейм-экземпляр «пингвин Федя» наследует все слоты фрейма «пингвины». Значение слота «способность летать» фрейма «пингвины» перекрывает значение одноименного слота «птицы».

Более сложная ситуация возникает, если фрейм имеет несколько is_a или ako связей. В этом случае говорят о множественном наследовании.

57

Рис.2.4. Структура множественного наследования фрейма

Другая возможность вывода во фреймовых системах основана на использовании проце- дур-демонов.

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

58

если значением слота «вид» является «императорский пингвин», то вернуть значение 100-120 см, иначе вернуть значение 40-50 см.

Процедуры «если-добавлено» и «если-удалено» активизируются при записи и удалении значений из слота. Например, процедура «если-добавлено» может активизироваться, когда слот «вид» получит значение. Если новое значение – «галапагосский пингвин», то записать в слот «красная книга» значение «да». Таким образом, процедуры «если-добавлено» и «если-удалено» устанавливают зависимость значений одного слота от значений другого.

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

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

2.2.Варианты индивидуального задания для создания фреймовой сети.

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

Таблица 2.1.

 

Варианты индивидуального задания

Номер варианта

Наименование техники

1

Вычислительная техника

2

Телевизионная техника

3

Аудиовизуальная техника

4

Радиотехника

5

Бытовая техника

6

Техника для досуга

7

Военная техника

8

Техника связи

9

Транспортная техника

10

Техника полиграфии

11

Ядерная техника

12

Робототехника

13

Промышленная техника

14

Водная техника

15

Электротехника

2.3. Задания для самостоятельной работы по теме №2

Изучить фреймовые структуры данных.

Разработать сложную фреймовую структуру данных с несколько is_a или ako связями (множественным наследованием).

.

Разработать концептуальные отношения представленное эллипсами

Назначение инструментов графического редактора Paint и основы работы с ними.

Вопросы для самоконтроля.

Назовите основные объекты предметной области, отображаемые в семантической сети. Настройка страницы графического редактора Paint, подготовка данных к печати.

59

Рекомендуемая литература по теме №2

Представление знаний в ИС. http://www.twirpx.com/files/informatics/knowledge/ Практическое занятие № 4. Фреймовые экспертные системы http://www.twirpx.com/file/5574/

Представление знаний. http://www.williamspublishing.com/PDF/978-5-8459-1156-8/part.pdf

Евгенев Г.Б. Интеллектуальные системы проектирования. – М., Изд-во МГТУ им. Н.Э. Баумана, 2009. – 334 с.

Современные проблемы информатики и вычислительной техники. http://bigor.bmstu.ru/?cnt/? doc=Default/142_problems.cou

2.2.3. Проектирование онтологии в системе Protege

Практическое занятие№3

Тема 3 Проектирование онтологии в системе Protege. Цель и задачи занятия

Занятие имеет цель закрепить теоретические знания и получить первичный навык проектирования онтологии в системе Protege.

План занятия

3.1.Изучение основных теоретических положений проектирования онтологии в системе Protege. 3.2.Варианты индивидуального задания для проектирования онтологии в системе Protege.

3.1.Изучение основных теоретических положений проектирования онтологии в системе Protege

Онтология описывает основные концепции (положения) предметной области и определяет отношения между ними.

Процесс построения онтологий состоит из создания следующих блоков:

• Классов и их свойств (classes, properties).

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

Ограничения по слотам (также известных как аспекты/грани (slot facets), иногда называемые ограничения ролей).

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

составляют базу знаний.

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

Зачем создавать онтологию?

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

60

сайте Amazon.com). Во многих дисциплинах сейчас разрабатываются стандартные онтологии, которые могут использоваться экспертами по предметным областям для совместного использования и аннотирования информации в своей области. Например, в области медицины созданы большие стандартные, структурированные словари, такие как SNOMED и семантическая сеть Системы Унифицированного Медицинского Языка (the Unified Medical Language System). Также появляются обширные общецелевые онтологии. Например, Программа ООН по развитию (the United Nations Development Program) и компания Dun & Bradstreet объединили усилия для разработки онтологии UNSPSC, которая предоставляет терминологию товаров и услуг.

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

Почему возникает потребность в разработке онтологии? Вот некоторые причины:

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

Для возможности повторного использования знаний в предметной области.

Для того чтобы сделать допущения в предметной области явными.

• Для отделения знаний в предметной области от оперативных знаний.

Для анализа знаний в предметной области.

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

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

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

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

61

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

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

Как создать онтологию?

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

Практически, создание онтологий включает:

1.Определение классов в онтологии,

2.Организация классов в некоторую иерархию (базовый класс -> подкласс),

3.Определение слотов и их допустимых значений,

4.Заполнение значений слотов для экземпляров классов.

Как определить, правильно ли создана онтология?

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

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

• Процесс разработки обязательно должен быть итеративным.

Концепции в онтологии должны быть максимально близки к объектам

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

С чего начать?

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

Разработка простейшей системы

Основные положения

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

62

Кто ответственный за каждый раздел в газете?

Каково содержимое каждой статьи в разделе и кто автор?

Перед кем отчитывается каждый автор?

Каково расположение и расходы на каждую статью?

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

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

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

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

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

Создание проекта

Перед началом работы, вы должны создать новый проект в системе Protege. Для этого:

1.Запустите Protege. Если у вас уже открыт проект, просто сохранитесь и перезапустите программу. После того как программа запустилась, появляется диалог приветствия, предлагающий создать новый проект, открыть последний проект или посмотреть документацию.

Рисунок 1. Окно приветствия.

2.Щелкните мышкой по кнопке Create New Project.... Появится диалоговое окно "Create New Project", позволяющее выбрать тип проекта. Если у вас нет необходимости в специальном фор-

мате для ваших файлов, просто нажмите кнопку Finish - будет выбран формат файла по умолчанию Protege Files (.pont and pins).

63

Рисунок 2. Окно создания нового проекта.

3.Откроется окно проекта Protege. Новый проект всегда открывается в области просмотра классов (Classes view). Видно, что в этой области на данный момент находятся только внутренние системные класс Protege: THING и SYSTEM-CLASS. Никаких экземпляров классов создано к этому моменту не будет.

 

Рисунок 3. Область просмотра классов

 

Сохранение проекта

 

 

Во время работы с программой вы

можете захотеть сохранить промежуточные измене-

 

ния, для этого:

 

1.

Щелкните кнопку сохранить проект

, вы также можете выбрать пункт Save project из меню

 

файл File

 

64

Рисунок 4. Окно сохранения проекта

2. Для того чтобы указать место, куда будет сохранен Ваш проект,

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

Рисунок 5. Окно выбора имени файла проекта.

3.Введите имя файла проекта (например, "tutorial").

4.Нажмите кнопку Select.

5.Вы вернетесь в окно сохранения файлов проекта, нажмите OK и проект будет сохранен.

Рисунок 6. Завершение сохранение проекта.

Создание классов

Основное окно программы Protege состоит из закладок (tabs) которые отображают различные аспекты модели знаний. Наиболее важной закладкой, когда вы только начинаете делать проект, является закладка классов (Classes). Обычно классы соответствуют объектам или ти-

65

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

Классы в Protege отображаются в виде иерархии наследования (inheritance hierarchy), которая располагается в области просмотра называемой Class Browser (или навигатор классов) в левой части закладки классов. Свойства классов выбранных в текущий момент в навигаторе, будут отображены в редакторе классов справа. Ниже вы узнаете, как создавать классы, подклассы, изменять иерархию классов, создавать абстрактные классы и добавлять дополнительные базовые классы к существующим классам.

Создание класса "Корреспондент"

Мы хотим знать происхождение каждой статьи, и потому мы начнем с задания типов сотрудников или служб, которые могут создавать статьи. Для начала создадим новый класс "корреспондент" (Columnist):

1.Выберите закладку классов.

2.Найдите область в навигаторе классов (Class Browser), где отображается иерархия классов (Class Hierarchy, в окне Protege слева). Эта область отображает иерархию классов, с выделенным текущим выбранным классом.

Рисунок 7. Область отображения иерархии классов

3. Проверьте: по умолчанию класс :THING (вещь, нечто) должен быть выделен. Почти все классы в данном примере будут созданы на уровень ниже класса THING. Другой класс :SYSTEM_CLASS используется для определения структур различных форм Protege.

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

66

Рисунок 8. Редактор класса

5.В активном поле редактора классов введите "Columnist". В системе Protege приняты правила наименования, когда первая буква в каждом слове в имени класса пишется в верхнем регистре, а остальные буквы в нижнем, при этом слова разделяются символом подчеркивания.

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

7.Если при изменении имени класса у вас возникли проблемы, посмотрите в панель редактора классов справа в главном окне Protege. Стандартное имя нового класса должно быть отображено и выделено в поле Name. Если правильное стандартное имя отображается, но не выделено, просто щелкните на поле Name мышкой, для того чтобы его отредактировать. Если имя неправильное, тогда скорей всего вы выбрали неверный класс в области отображения иерархии классов (Class Hierarchy), щелкните на нужном классе.

Создание класса "Автор"

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

1.Выделите класс :THING. Если вы этого не сделаете, то вы создадите класс, который будет подклассом класса Columnist.

2.Нажмите кнопку создать класс (Create class) и наберите с клавиатуры имя класса: Author.

3. Нажмите ввод для завершения создания класса.

67

Рисунок 9. создание класса "Автор"

Создание подклассов класса "Автор"

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

1.Выберите класс "Author" в области отображения иерархии классов.

2.Нажмите кнопку "создать класс" (Create class) и переименуйте новый класс в News_Service (служба новостей). Помните, что когда бы вы не создавали новый класс, он будет создан как подкласс текущего выбранного класса. Также заметьте, что когда вы создаете первый

подкласс класса, то иконки или ► появляются слева от него. Вы можете использовать эти

иконки для того чтобы показать или скрыть подклассы класса. Продолжая разрабатывать онтологию, создадим еще один подкласс класса Автор (Author).

3. Выберите класс Автор (Author) в навигаторе классов (Class Browser).

4.Нажмите кнопку Create Class и переименуйте созданный класс в Editor (редактор).

68

Рисунок 10. Создание класса "Редактор".

Изменение иерархии классов

На данной стадии разработки, можно заметить что "Автор" (Author) и "Корреспондент" (Columnist) находятся на одном уровне в создаваемой иерархии, в то время как "Служба новостей" (News_Service) и "Редактор" (Editor) являются подклассами класса Автор (Author). С точки зрения концепции и служба новостей, и редактор, и корреспондент, все могут являться авторами (источниками) статей, т.е. понятие "Автор" является общим для всех этих трех классов. Значит, текущее

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

Таким образом, мы хотим модифицировать нашу иерархию, чтобы класс "Корреспондент" (Columnist) стал подклассом класса Автор (Author), правильно отражая структуру предметной области.

Для этого необходимо сделать следующее:

1. Щелкните на классе Columnist (Корреспондент) и перетащите (drag-n- drop) его на класс Author (Автор).

69

Рисунок 11. Изменение иерархии классов

2. Класс Columnist будет удален с предыдущего места в иерархии и создан в новом, но уже как подкласс Author.

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

Создание абстрактных классов

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

1.Выберите класс "Author" в области иерархии классов (Class Hierarchy). Далее в редакторе классов (справа от навигатора классов), найдите меню Роль (Role), оно должно находиться прямо под именем класса.

70

Рисунок 12. Выбор меню Role

2. Щелкните по списку в меню Role и выберите "Abstract".

3.Заметьте, что когда вы меняете роль класса, иконка в перед именем

класса меняется на . Такая иконка означает, что класс является абстрактным ( соответственно означает конкретный класс).

Рисунок 13. Маркировка абстрактных классов

Создание класса "Работник"

Теперь настало время создать класс "работник" (Employee). Этот класс подразумевает под собой любого работника газеты, независимо от того является ли он автором или нет.

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

1. Выберите класс :THING в навигаторе классов. Несмотря на то, что некоторые авторы являются служащими газеты, мы не хотим, чтобы класс "Employee" (работник) был подклассом класса Автор (Author).

2.Нажмите кнопку Create Class " и переименуйте вновь созданный класс в Employee.

71

Рисунок 14. Добавление класса Employee

Добавление дополнительного базового класса к существующему подклассу

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

1. Выберите класс Columnist (корреспондент) в навигаторе классов.

Рисунок 15. Выделение класса в навигаторе иерархии классов

3. Найдите панель базовых классов (Superclasses) в нижней левой части окна системы Protege (под навигатором классов). Заметьте, что когда выбран класс Columnist (корреспондент), его базовый класс (Автор) отображается в панели Superclasses.

Рисунок 16. Панель базовых классов.

3. Нажмите кнопку Add Superclass (добавить базовый класс), в верхнем правом углу панели базовых классов (Superclasses). Появится диалоговое окно, отображающее все классы, созданные на тот момент времени, в виде иерархии.

72

Рисунок 17. Выбор базового класса.

4.Выберите класс "Employee" (работник) и нажмите OK. Теперь класс "корреспондент" (Columnist) имеет два базовых класса (Автор и Работник). Оба класса показаны в панели базовых классов.

Рисунок 18. Обновленный список базовых классов.

5. Заметьте, что рядом с именем класса "Employee" появилась иконка . Щелкните по ней, для того чтобы развернуть дерево подклассов и увидеть детей класса "работник" (Employee). Как видим, класс "корреспондент" теперь присутствует в двух местах в навигаторе классов: как подкласс класса Автор (Author) и еще раз как подкласс класса "Работник" (Employee).

Рисунок 19. Обновленная иерархия классов

Добавление базового класса с помощью перетаскивания (drag-n-drop)

Существует еще одна возможность задания базового класса - при помощи механизма перетаскивания (drag-n-drop):

1. Выберите класс Редактор (Editor) в навигаторе классов. 2.Удерживая нажатой левую кнопку мыши, перетащите класс Editor

73

(редактор), так чтобы он находился над классом Employee (работник). Класс Employee автоматически будет выделен.

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

Рисунок 20. Добавление базового класса с помощью перетаскивания

Для удаления базового класса от некоторого подкласса, выберите класс, который должен быть удален в панели отображения базовых классов (Superclasses), и нажмите кнопку удаления базового класса (Remove Superclass ).

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

Создание слотов

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

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

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

Создание слота (используя закладку слоты (Slots tab))

Для создания слота есть несколько способов. Один из них - это создать слот используя закладку "Slots", а затем связать его с одним или более классами. Вернемся к нашему примеру, для того, чтобы создать слот name, используя закладку Slots, необходимо:

1.Щелкнуть на закладку Slots. Заметьте, что расположение элементов управления на закладке слотов, схоже с закладкой классов, а именно, готовые слоты отображаются слева в области просмотра, а редактирование слотов возможно c помощью редактора (справа).

74

Рисунок 21. Добавление слота

2. Нажмите кнопку создать слот (Create Slot ) в правом верхнем углу панели отображения иерархии слотов (Slot Hierarchy). Будет создан новый слот. Также как и при создании класса, ему присваивается стандартное имя, в нашем случае "tutorial_Slot_0" (имя будет автоматически выделено, после создания слота).

3.Перед переименованием слота, убедитесь, что стандартное имя выделено в редакторе слота. Наберите новое имя слота (в нашем случае name). Рекомендованные правила наименования, таковы, что имя слота должно быть написано в нижнем регистре, при этом разные слова разделяются подчеркиванием. Такое наименование (классы с большой буквы, слоты с маленькой) помогает отличить классы от слотов в созданной онтологии.

4.Заметьте, что слот имеет по умолчанию тип значения String (строка). Тип накладывает ограничения на то, какие значения может принимать слот. Строковый слот, к примеру, может при-

нимать в качестве значений алфавитно-цифровые строки (включая пробелы).

Для этого простого слота мы не будем менять никаких аспектов/граней (facets) в редакторе слотов.

Связывание слота с классом

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

Вернемся к закладке классов и откроем на редактирование класс Автор (Author). Любой из атрибутов, который вы создаете или связываете с классом, будет отображаться в редакторе классов, справа от навигатора классов. Мы уже использовали редактор классов для смены имени нового класса, а также для изменения роли класса Автор. Теперь мы будем использовать редактор классов для просмотра и именования слотов. Для того чтобы связать слот name с классом:

1.Щелкните на закладке классов.

2. Выделите класс Автор в панели отображения иерархии классов (Class Hierarchy). По-

смотрите на редактор классов (справа), в этой области отображается поле имя, роль

класса,

а также документация и ограничения (constraints). Под этими полями расположена,

па-

нель шаблонов слотов (Template slots), которая занимает всю оставшуюся

 

75

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

Рисунок 22. Связывание слота с классом.

3. Для добавления слотов к классу, нажмите кнопку Add Slot . Кнопки управления слотами находятся в верхнем правом углу панели шаблонов слотов (Template slots).

Рисунок 23. Панель инструментов шаблонов слотов.

4.После того как вы нажмете кнопку, появится диалог выбора слота, в котором будет отображен список всех доступных слотов в вашем проекте (в алфавитном порядке, за исключением системных классов Protege, которые будут видны в самом низу списка).

Рисунок 24. Список доступных слотов

5.Выберите name и нажмите OK

76

Рисунок 25. Новый слот в списке шаблонов

Если вы посмотрите теперь на панель шаблонов слотов (Template slots), то увидите, что слот name был добавлен в список, и вместе с ним отображаются его свойства, в нашем случае это мощность (количество элементов типа) и сам тип (строка, String).

Создание слота из закладки классов

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

1. Выберите класс Employee в панели иерархии классов.

2. Нажмите кнопку создать слот (Create Slot ), в правом углу панели шаблонов слотов, будет вызвано окно добавления слота:

Рисунок 26. Окно создания слота

3. Наберите salary (зарплата) в поле имя (Name), нажмите ввод.

77

4.Вернитесь в главное окно (при этом не обязательно закрывать окно редактирования, т.е. можно оставить его открытым и вернуться туда позже для редактирования свойств слота). Заметьте, что теперь новый слот показывается в панели шаблонов слотов, когда выбран класс "Работник" (Employee).

Рисунок 27. Новый слот в списке шаблонов

Слоты и наследование

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

Слот name (имя) уже связан с этим классом через механизм наследования.

При этом иконка для слота отличается от той, которая использовалась для класса Автор (Author), а именно, для наследованных слотов

используется иконка .

78

Рисунок 28. Отображение наследованных слотов

Подклассы более чем с одним базовым классом наследуют слоты от всех базовых классов. К примеру, если Вы выберите класс Editor (редактор), то увидите, что он наследует слот name (имя) от Автора, и слот зарплата (salary) от Работника. Множественное наследование одна из основополагающих возможностей Protege.

Рисунок 29. Пример множественного наследования

Создание аспектов/граней (facets) слота

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

79

ми/гранями (facets), могут быть созданы, как на закладке классов (используя диалог спецификации слота), так и на закладке слотов (используя редактор слота).

Создание аспектов слота "зарплата"

Мы можем определить несколько аспектов для слота зарплата который был создан ранее. 1.Выберите класс "работник" (Employee) в панели иерархии классов.

2. Щелкните два раза на слоте "зарплата" в панели шаблонов слотов (Template slots), для того чтобы открыть форму выбора вида слота. Когда вы редактируете слот, Вы можете выбрать, будут ли изменения применяться к слоту и всем классам, связанным со слотом (вверх поиерархии до самого верхнего класса), или вы просто хотите чтобы изменения коснулись текущего класса и всех его детей.

Рисунок 30. Выбор формы отображения слота.

3.В нашем случае, мы хотим просмотреть и отредактировать слот верхнего уровня. Потому убедитесь, что режим просмотра слотов верхнего уровня (View top-level slot) выбран и нажмите OK. При этом изменение определения слота будет затрагивать всю онтологию.

Рисунок 31. Редактирование слота salary.

80

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

Рисунок 32. Выбор типа значения

5.Введите 0 (ноль) в поле Minimum (минимальное значение). Таким образом , мы можем быть уверены, что теперь любое значение для поля "зарплата" будет не отрицательным.

Рисунок 33. Ввод минимального значения

6.Закройте, диалог редактирования слота, и Вы сможете увидеть, что описание слота в панели шаблонов слотов изменилось. В колонке тип теперь указан Float а минимальное значение = 0 появилось в колонке Other facets (другие аспекты).

Рисунок 34. Обновленное описание слота

81

Создание отношения между классами

Система Protege также позволяет вам создавать слоты, которые могут быть использованы для описания отношений между классами, которые не определены в иерархии классов. Для этого существуют слоты Instance (экземпляр) или Class (класс). К примеру, "Редактор" (Editor) может быть ответственным за одного или более работников. Мы можем создать новый слот, который бы описывал связь между "Редактором" и "Работником": 1. Выберите класс "Редактор" (Editor) в навигаторе классов.

Рисунок 35. Редактирование класса Editor

2. Нажмите кнопку Create Slot для того чтобы создать и связать новый слот с классом "Редактор" (Editor).

Рисунок 36. Создание нового слота

82

3. В открывшейся форме редактирования, наберите в поле имя (Name) responsible_for (ответственный за).

Рисунок 37. Поле для ввода имени слота

4. Выберите Instance (экземпляр) из списка типов значений (Value Type).

Рисунок 38. Список типов значений слота

Новое поле, доступные классы (allowed classes), будет отображено под меню тип значения (Value Type).

Рисунок 39. Панель Allowed classes

5.Нажмите кнопку Add Class (справа сверху на панели Allowed classes) . Появится окно выбора классов, где будут показаны все классы проекта. Выберите класс "Работник" (Employee) и нажмите OK.

Рисунок 40. Выбор классов из списка

6. Чтобы разрешить редактору, быть ответственным более чем за одного сотрудника, поставьте галочку в пункте multiple, в панели мощности (cardinality).

83

Рисунок 41. Панель cardinality

После завершения шагов 1..6, слот форма для responsible_for будет выглядеть следующим образом:

Рисунок 42. Окончательный вид редактора слота responsible_for

Что же мы создали? Мы создали слот, который может содержать один или более экземпляров класса "работник" в качестве значения. Позднее, когда мы будем создавать экземпляры класса "Редактор" и захотим указать, за каких работников он несет ответственность, мы сможем выбрать один или более экземпляров класса "работник", чтобы заполнить responsible_for слот.

Создание экземпляров классов

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

В этой секции, мы создадим два экземпляра класса редактор:

1. Перейдите на закладку экземпляров (instances). Закладка имеет три

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

84

 

Рисунок 43. Закладка экземпляров классов (instances)

2.

Раскройте список подклассов класса "работник" (Employee).

3.

Выберите класс редактор (Editor). Кнопка Create Instance станет активной, означая,

что можно создать экземпляр класса.

Рисунок 44. Подготовка к созданию экземпляра

4.Нажмите кнопку Create Instance . Экземпляр создан и появилась форма редактора экземпляра. Видно, что на ней много полей, по одному полю для каждого созданного слота. Используйте

эти поля, для того чтобы заполнить слоты значениями. Заметьте, что отображение для класса Редактор (Editor) в панели иерархии классов (Class Hierarchy) изменилось

85

после того, как был создан новый экземпляр класса. Единица в скобках означает, что этот класс имеет один экземпляр.

Рисунок 45. Вид редактора класса с экземпляром

5. Введите Chief Honcho в поле Имя (Name).

Рисунок 46. Имя экземпляра

6.Введите 15000 в поле зарплата (salary). Заметьте, что символы в этом поле будут подсвечены красным цветом, если что-то другое, нежели число в формате с плавающей запятой будет введено. В системе Protege, при попытке ввода значений, которые не удовлетворяют ограничениям слота, значения подсвечиваются красным цветом.

Рисунок 47. Значение слота salary

Теперь закладка экземпляров выглядит следующим образом (заметим, что экземпляр в навигаторе экземпляров (Instance Browser) все еще имеет стандартное имя, такое как "tutorial_instance_0"). Как изменить имя будет показано в следующем разделе.

86

Рисунок 48. Навигатор экземпляров

Создадим еще один экземпляр класса Редактор (Editor):

1. Нажмите кнопку Create Instance в навигаторе экземпляров (Instance Browser).

Рисунок 49. Добавление второго экземпляра

2. Наберите Mr. Science в поле имя (name).

Рисунок 50. Имя второго экземпляра

87

3. Введите 60000 в поле зарплата (salary).

Рисунок 51. Значение слота salary для второго экземпляра

Теперь, так как вы создали более чем один экземпляр класса, вы можете определить отношения (связи) между ними, к примеру, вы могли бы сказать, что "Chief Honcho" будет ответственным за работу "Mr. Science". Перед тем, как это сделать, для того чтобы работа с экземплярами была легче, необходимо указать слот отображения для класса "Редактор" (Editor). Система Protege будет показывать значение слота отображения, каждый раз при выводе на экран экземпляра класса. О том, как это сделать, будет рассказано в следующем разделе.

Установка слота отображения

Для каждого класса в вашей онтологии, вы можете указать, что один из его слотов будет слотом отображения. Система Protege будет показывать значение этого слота, при каждом выводе экземпляра класса на экран. Если слот отображения не будет указан, то будет выведено стандартное имя, сгенерированное системой (например, "tutorial_Instance_0"). Обычно очень полезно устанавливать слот отображения для классов, которые будут иметь экземпляры. На самом деле, вы можете выбрать слот отображения даже до того, как будут созданы экземпляры класса.

Для того чтобы указать слот отображения для класса "Редактор" (Editor).

1.Выберите закладку экземпляров (Instances).

2.Выберите класс "Редактор" в панели иерархии классов.

3.Нажмите кнопку, меню экземпляров (стрелочка вниз), в верхней правой части навигатора экземпляров.

Рисунок 52. Кнопки панели иерархии экземпляров

4. Выберите пункт задать слот отображения (set display slot).

Рисунок 53. Выбор слота отображения

5.Выберите поле имя (name) из списка.

6. Вид списка экземпляров, в навигаторе экземпляров, поменяется, чтобы показать новые значения слота отображения. Экземпляры класса "Редактор" (Editor) теперь будут перечислены, как значения слота имя (name). Начиная с этого момента, вы можете перебирать экземпляры класса "редактор' по его имени везде, где будет появляться список экземпляров классов.

Создание отношений (связей) между экземплярами классов

В этом разделе, мы модифицируем экземпляр Chief Honcho и сделаем так, чтобы он стал ответственным за экземпляр Mr. Science:

1. Перейдите на закладку экземпляров (instances), разверните класс "работник" (Employee) в панели иерархии классов (Class Hierarchy) и выберите класс "редактор" (Editor). Экземпляры редактора теперь показаны в навигаторе экземпляров (Instance Browser.

88

Рисунок 54. Экземпляры класса Editor

2.Выберите Chief Honcho в навигаторе экземпляров. Слоты для Chief Honcho будут показаны в редакторе экземпляров, включая слот responsible_for (ответственный за). Заметьте, что система Protege использует имена слотов в форме редактора, но автоматически заменяет подчеркивания в пробелы и переводит в верхний регистр первую букву каждого слова.

3.Нажмите кнопку Add Instance , справа сверху рядом с полем Responsible For.

Рисунок 55. Кнопки поля Responsible For

4.Откроется окно диалога с двумя панелями. Слева будет показана иерархия доступных классов для слота responsible_for.

Рисунок 56. Окно установки отношений

5. Выберите класс Editor (редактор). Справа будут показаны все экземпляры класса. Выберите Mr. Science и нажмите ОК.

89

Рисунок 57. Отношение класса Editor

6. Вы только что создали отношение (связь) в своей онтологии, которая гласит, что работник Chief Honcho является ответственным за работника Mr. Science.

Рисунок 58. Вид редактора классов после добавления отношения

Настройка формы ввода

Для каждого класса в вашей онтологии, Protege генерирует форму по умолчанию, которую вы можете использовать для ввода данных экземпляра. Формы содержат поля ввода данных, или "виджеты" для каждого слота связанного с классом. Для разных типов данных слотов существуют разные типы "виджетов", например, Protege использует текстовый "виджет" (TextFieldWidget) для слотов с типом данных строка, целочисленный "виджет" (IntegerFieldWidget) для полей, у которых значение представлено как целое число, "виджет" список экземпляров (InstanceListWidget) для слотов, у которых в качестве типа установлен экземпляр класса и при этом мощность (количество элементов) больше одного и т.д.

Если вам не подходит стандартная форма, созданная Protege, вы можете изменить ее с помощью закладки форм (Forms). Среди других возможностей, вы можете изменить размер "виджетов", перемещать их по форме, скрывать и даже менять тип "виджета".

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

90

Изменение размера "виджета"

Вы можете изменить размер выбранного "виджета", растянув его за угол или границу, для этого:

1. Перейдите на закладку Формы.

2.Удостоверьтесь, что именно класс "редактор" (Editor) выбран в навигаторе форм (Form Browser) слева. Затем, выберите FloatFieldWidget для слота salary (зарплата), щелкнув на нем в редакторе формы справа. В этом случае он будет подсвечен зеленым. Заметьте, что выбранный тип виджета в списке "Selected Widget Type" справа сверху указывает на то, что это "виджет" используется для ввода элементов с плавающей запятой (FloatFieldWidget).

Рисунок 59. Редактор формы

3.Щелкните по правой границе "виджета", и удерживая кнопку мыши нажатой, перетащите ее, чтобы изменить размер "виджета". Попытайтесь выровнять правую границу "виджета", так чтобы она совпадала с правой границей "виджета" имя (name).

91

Рисунок 60. Измененная форма "виджета"

4. Заметьте, что иконка перед формой класса Editor (редактор) в навигаторе форм изменилась. Новая иконка указывает, форма этого класса была изменена, и больше не является стандартной.

Перемещение "виджета"

Вы можете изменить положение "виджета" на форме, также при помощи перетаски-

вания:

1.Выберите InstanceListWidget ("виджет" для редактора экземпляров) для слота responsible_for (отвественный за).

2.Перетащите его на правый верхний угол формы, так чтобы верхняя граница "виджета" совпадала с верхней границей "виджета" слота "имя" (name).

92

Рисунок 61. Вид формы "виджета" после перемещения

Изменение кнопок "виджета"

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

1.Два раза щелкните на InstanceListWidget ("виджете" экземпляров) с именем "Responsible For"

вредакторе форм.

Рисунок 62. Окно конфигурации "виджета"

2.Перейдите на закладку кнопки.

93

Рисунок 63. Редактор кнопок "виджета"

3. Установите галочку для пункта Show Delete Instance Button (показывать кнопку удаления).

Рисунок 64. Добавление кнопки Delete Instance.

4. Нажмите ОК. "Виджет" для слота responsible_for (ответственный за) теперь имеет пять кнопок.

Рисунок 65. Вид "виджета"с кнопкой Delete Instance

Скрытие "виджета"

Вы можете скрыть "виджет" так, чтобы он не был виден на форме и в редакторе экземпляров (при этом информация из онтологии не удаляется). Например, вы хотите скрыть "виджет" для слота salary (зарплата). Для этого:

1. Выберите FloatFieldWidget (виджет для поля с плавающей запятой) под названием Salary в редакторе формы.

94

Рисунок 66. Редактирование FloatFieldWidget

2. Выберите "<none>" из списка выбора типа "виджета" (Selected Widget Type).

Рисунок 67. Список выбора типа "виджета"

3. "Виджет" для слота salary (зарплата) больше не виден в редакторе формы.

95

Рисунок 68. Форма с скрытым "виджетом"

Отображение скрытого "виджета"

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

1.В навигаторе форм, нажмите кнопку View Form Customizations (посмотреть изменения формы) Я , сверху справа.

Рисунок 69. Навигатор форм

2. В диалоге конфигурации формы, вы сможете увидеть список слотов и соответствующих им "виджетов".

Рисунок 70. Диалог конфигурации формы

3.Щелкните по "<none>" справа от поля salary (зарплата), а затем выберите FloatFieldWidget ("виджет" для полей с плавающей точкой).

96

Рисунок 71. Выбор виджета для слота salary

4. Нажмите OK.

Рисунок 72. Окончательный вид конфигурации формы.

5. "Виджет" будет снова виден в редакторе формы.

Использование расположения по умолчанию

Если вы хотите отменить все свои изменения, то система Protege позволяет вернуть все «виджеты» на форме в стандартное положение, в соответствии с их текущим размером.

Для того чтобы расположить "виджеты" стандартным образом:

1. Выберите форму класса редактор (Editor) в навигаторе форм.

2.Нажмите кнопку Remove Form Customizations (удалить изменения формы) К в верхнем правом углу навигатора форм.

3.Форма будет выровнена по стандартам Protege. Все скрытые виджеты будут показаны снова. Иконка, информирующая о том, что форма была изменена, будет заменена на =.

Создание и сохранение запросов

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

Создание запроса

Предположим, что вам интересно найти всех работников, которые имеют зарплату больше чем 75000$ в год. Для этого создадим запрос: 1. Щелкните на закладке запросов.

97

Рисунок 73. Редактор запросов

2.Щелкните на кнопке Select Classes ■ (выбрать классы) чуть повыше текстового поля Class (класс) в панели запросов.

Рисунок 74. выбор класса

3.Выберите класс "работник" (Employee) из панели выбора классов, затем нажмите ОК.

4.Теперь класс Employee (работник) отображается в текстовом окне Class (класс).

Рисунок 75. Класс запроса

5.Нажмите кнопку выбора слота (Select Slot ■ ) чуть выше текстового поля Slot (слот).

6.Выберите salary (зарплата) в диалоговом окне выбора слота и нажмите

ОК

Рисунок 76. Выбор слота.

98

7.Меню справа от поля Slot (слот) теперь активно, и текстовое поле в правом дальнем углу напоминает, что тип значение выбранного слота число с плавающей запятой.

Рисунок 77. Меню запроса.

8.Выберите "is greater than" (больше чем) в выпадающем списке. Затем, введите "75000" в поля ввода под надписью Float.

Рисунок 78. Выбор типа запроса "is greater than"

Запуск запроса

Теперь, когда вы создали запрос, вы можете запустить его и посмотреть результаты. 1. Для запуска, нажмите кнопку поиска (Find) в нижнем правом углу панели запросов.

Рисунок 79. Панель запросов.

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

Рисунок 80. Результаты запроса.

Cохранение запроса

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

1. Нажмите кнопку добавить запрос в библиотеку (Add to Query Library ) справа от поля query name (имя запроса).

99

Рису-

нок 81. Кнопка Add to Query Library

2.Наберите sample_query в окне ввода имени запроса.

Рисунок 82. Имя запроса

3. Нажмите ОК. Имя будет показано в поле query name (имя запроса) и запрос будет отображен в панели библиотеки запросов (Query Library).

Рисунок 83. Панель библиотеки запросов

Загрузка запроса

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

сов.

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

Рисунок 84. Кнопка Clear

2. Выберите sample query в библиотеке запросов внизу экрана.

Рисунок 85. Окно библиотеки запросов

3. Нажмите кнопку retrieve query .

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

Рисунок 86. Объединение запросов

5. Для запуска запроса нажмите кнопку Find (поиск).

Рисунок 87. Запуск запроса

3.2.Варианты индивидуального задания создания проект в системе Protege

В соответствии с приведенным в таблице 3.1 вариантом задания, создать проект в системе Protege

101

Таблица 3.1.

Номер варианта

Варианты индивидуального задания

Наименование файла проекта

1

tutorial ME101-1

2

tutorial ME101-2

3

tutorial ME101-3

4

tutorial ME101-4

5

tutorial ME101-5

6

tutorial ME101-6

7

tutorial ME101-7

8

tutorial ME101-8

9

tutorial ME101-9

10

tutorial ME101-10

11

tutorial ME101-11

12

tutorial ME101-12

13

tutorial ME101-13

14

tutorial ME101-14

15

tutorial ME101-15

3.3. Задания для самостоятельной работы по теме №3

Изучить процесс построения онтологий.

Изучить систему Protégé: назначение, запуск программы, основные элементы главного окна, последовательность работы по созданию проекта.

Вопросы для самоконтроля.

Что такое онтология и зачем её создают?

Назовите блоки процесса построения онтологий. Что практически включает создание онтологий? Рекомендуемая литература по теме №3

Д.И. Муромцев. Онтологический инжиниринг знаний в системе Protege. - СПб: СПб ГУ ИТМО, 2007. - 62 с. http://window.edu.ru/window_catalog/files/r54429/itmo240.pdf

102