Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема_4_Семантичні та фреймові моделі.doc
Скачиваний:
34
Добавлен:
19.04.2015
Размер:
364.03 Кб
Скачать

2.5. Фрейми та об'єктно-орієнтоване програмування.

Поняття фрейму, яке розглядається в теорії штучного інтелекту, та поняття об'єкта (в іншій термінології - класу), тісно пов'язані між собою. Парадигма об'єктно-орієнтованого програмування випливає з об'єктно-орієнтованого сприйняття світу, що складається з великої кількості об'єк­тів. Вони є порівняно незалежними, але постійно взаємодіють між собою. Кожний об'єкт має певні властивості та вміє виконувати деякі функції. Можна вважати, що об'єктна модель є конкретизацією абстрактнішої фреймової моделі.

У [1] сформульовано деякі важливі визначення.

Об'єктом називається абстракція, що характеризується станом, поведінкою та ідентифікованістю; сукупності схожих об'єктів утворюють клас; терміни "екземпляр класу" та "об'єкт" рівноправні.

Стан об'єкта характеризується переліком (як правило, статичним) усіх його властивостей і поточними (як правило, динамічними) значен­нями кожної з цих властивостей.

До цього можна додати, що "статичний перелік властивостей" є харак­теристикою всього класу, а "поточні динамічні значення" - характерис­тикою окремого об'єкта, або екземпляра класу. Опис окремого екземпляра на основі загального опису класу можна отримати, якщо визначити конк­ретні значення властивостей.

Поведінка визначається тим, як об'єкт функціонує та реагує на зовнішні події; поведінку прийнято характеризувати в термінах зміни станів об'єктів та передачі повідомлень між об'єктами; поточний стан об'єкта є сумарним результатом його поведінки.

Ідентифікованість - це така властивість об'єкта, яка відрізняє його від усіх інших об'єктів.

Важливим є те, що об'єкти слід розглядати як абстракції певних сутностей, тобто об'єкт описує властивості даної сутності, що є найважливіши­ми з певної точки зору. При цьому для екземплярів класу спільними є всі характеристики, а не лише деякі. Точніше, спільним є перелік характе­ристик, а не конкретні значення; екземпляри одного класу можна розріз­няти між собою саме за рахунок того, що характеристики різних екземпля­рів класу мають різні значення.

Об'єкти та класи мають такі найважливіші властивості [1]:

  1. Абстрагування - виокремлення в описі класу найважливіших характеристик деякої сутності, що відрізняють її від усіх інших сутностей.

  2. Інкапсуляція - елементи об'єкта, що визначають його властивості та поведінку, повинні бути відокремлені один від одного. Інакше ка­жучи, клас повідомляє про свої функціональні можливості, але при­ховує від зовнішнього світу особливості реалізації цих можливостей і свою внутрішню будову.

Слід відмітити, що в програмуванні термін "інкапсуляція" часто вжи­вається у вужчому значенні, а саме: в класі можуть бути описані про­цедури (методи), що визначають його поведінку.

  1. Модульність - об'єкт складається з окремих відносно самостійних модулів.

  2. Ієрархія - об'єкти та класи є ієрархічно упорядкованими. Зокрема, вони утворюють ієрархію класів та ієрархію об'єктів. Успадкування (наслідування) пов'язане саме з цими ієрархіями, в пер­шу чергу - з ієрархією класів.

Існує багато об'єктно-орієнтованих мов програмування, тобто мов, які безпосередньо підтримують об'єктну модель та об'єктно-орієнтовану парадигму програмування. Історично першою була мова Smalltalk. Зараз популярними є Delphi (візуальна реалізація Паскалю), С++ (стандарт де-факто в сфері об'єктно-орієнтованого програмування), Java. Також роз­виваються технології об'єктно-орієнтованих баз даних [1].

Контрольні запитання.

1. Дайте неформальне визначення семантичної мережі.

2. Дайте формалізоване визначення семантичної мережі.

3. Намалюйте семантичну мережу, що описує деякий набір фактів з до­вільної предметної області.

4. Охарактеризуйте трирівневу архітектуру семантичних мереж.

5. Що таке концептуальний граф?

6. Який елемент семантичної мережі відповідає тріаді "об'єкт — атри­бут — значення"?

7. Опишіть процес асиміляції нової інформації в рамках моделі семан­тичних мереж.

8. Охарактеризуйте повну і модальну асиміляцію нової інформації.

9. Охарактеризуйте відомі підходи до логічного виведення на семантич­них мережах. Який з них є основним?

10. Як пов'язане логічне виведення на семантичних мережах з відношен­ням "Є"?

11. Опишіть механізм блокування наслідування за наявності винятків. На­ведіть приклади.

12. Охарактеризуйте поняття перехресного пошуку на семантичних мере­жах.

14. Що таке розділені семантичні мережі?

15. Що таке процедурні семантичні мережі?

16. Охарактеризуйте визначення фрейма як структури даних для опису пев­ного поняття.

17. Що означає мінімальність опису у визначенні фрейму, що було дано М. Мінським?

18. Яким чином можна описати об'єкт на основі фреймової моделі?

19. Яким чином описи конкретних об'єктів утворюються з описів відпо­відних фреймів?

20. Опишіть схему поповнення первинних описів на основі фреймових моделей.

21. Що таке приєднана процедура?

22. Що таке мережі подібностей і відмінностей? Опишіть їх можливі за­стосування.

23. У чому полягає зв'язок між семантичними мережами і фреймами?

24. Що таке сценарій?

25. Опишіть послідовність подій з деякої предметної області у вигляді сце­нарію, що залежить від ролей і змінних.

26. Поясніть зв'язок між фреймовими моделями та об'єктно-орієнтовани­ми моделюванням і програмуванням.

27. Дайте визначення об'єкта та класу за Г. Бучем.

28. Перелічіть та охарактеризуйте основні властивості об'єктів і класів.