
- •5.4. Висновки 182
- •1.1. Основні означення менеджменту знань
- •1.1.1. Структура менеджменту знань
- •Маркетинґ Проектування Підготовка виробництва Виробництво Збут.
- •1.1.2. Формування знань
- •1.1.3. Введення даних
- •1.1.4. Адміністрування
- •1.1.5. Мотивація
- •1.1.6. Особливості впровадження мз
- •1.2. Менеджмент знань
- •1.3. Базові поняття менеджменту знань
- •1.3.1. Видобування знань
- •1.3.2. Системи пізнання
- •1.3.3. Організація доступу до знань
- •1.3.4. Інновації в області автоматизації
- •1.3.5. Менеджмент знань та інформації
- •1.3.6. Менеджмент знань та Інтернет
- •1.4. Онтологічний інжиніринґ
- •1.4.1. Системи керування знаннями
- •1.4.2. Онтологія
- •1.5. Висновки
- •9. Базові поняття менеджменту знань.
- •2.1. Поле знань
- •2.1.1. Мова опису поля знань
- •2.1.3. «Піраміда» знань
- •2.2. Стратегії одержання знань
- •2.3. Теоретичні аспекти видобування знань
- •2.3.1. Психологічний аспект
- •2.3.2. Лінгвістичний аспект
- •2.3.3. Гносеологічний аспект видобування знань
- •2.4. Теоретичні аспекти структурування знань
- •2.4.1. Історична довідка
- •2.4.2. Ієрархічний підхід
- •2.4.3. Традиційні методології структуризації
- •2.4.4. Об'єктно-структурний підхід (осп)
- •3.1. Класифікація методів практичного видобування знань
- •3.2. Комунікативні методи
- •3.2.1. Пасивні методи
- •3.2.2. Активні індивідуальні методи
- •3.2.3. Активні групові методи
- •3.3. Текстологічні методи
- •3.3.1. Методи структурування
- •3.3.2. Еволюція систем одержання знань
- •4.1. Латентні структури знань і психосемантика
- •4.1.1. Семантичні простори і психологічне градуювання
- •4.1.2. Методи багатовимірного градуювання
- •4.1.3. Використання метафор для виявлення «прихованих» структур знань
- •4.2. Метод репертуарних решіток
- •4.2.1. Основні поняття
- •4.2.2. Методи виявлення конструктів. Метод мінімального контексту
- •4.2.3. Аналіз репертуарних решіток
- •4.2.4. Автоматизовані методи
- •4.3. Керування знаннями
- •4.3.1. Що таке «керування знаннями»?
- •4.3.2. Керування знаннями і корпоративна пам'ять
- •4.3.3. Системи omis
- •4.3.4. Особливості розроблення омis
- •4.4. Візуальне проектування баз знань як інструмент пізнання
- •4.4.1. Від понятійних карт до семантичних мереж
- •4.4.2. База знань як пізнавальний інструмент
- •4.5. Проектування гіпермедіа бд і адаптивних навчальних систем
- •4.5.1. Гіпертекстові системи
- •4.5.2. Від мультимедіа до гіпермедіа
- •4.5.3. На шляху до адаптивних навчальних систем
- •5.1. Важливість правильної класифікації
- •5.1.1. Класифікація й об’єктно-орієнтовне проектування
- •5.1.2. Труднощі класифікації
- •5.2. Ідентифікація класів і об'єктів
- •5.2.1. Класичний і сучасний підходи
- •5.2.2. Об’єктно-орієнтований аналіз
- •5.3. Ключові абстракції й механізми
- •5.3.1. Ключові абстракції
- •5.3.2. Ідентифікація механізмів
- •5.4. Висновки
- •6.1. Поняття онтології
- •6.2. Моделі онтології й онтологічної системи
- •6.3. Методології створення і «життєвий цикл» онтології
- •6.4. Мови опису онтологій
- •6.4.1. Види owl
- •6.4.2. Структура онтологій
- •7.1. Онтологія як засіб формалізації та алгоритмізації знань в інтелектуальній системі
- •7.1.1. Аналіз підходів до навчання онтологій
- •7.1.2. Загальні принципи проектування онтологій
- •7.1.3. Формати та стандарти подання інформації
- •7.1.4. Засоби для створення онтології
- •7.2. Технологія розроблення онтологій в редакторі Protégé
- •7.2.1. Еволюція Protégé
- •7.2.2. Protégé-owl. Мова Web онтологій owl
- •7.2.3. Основні терміни та поняття у Protégé-owl
- •7.2.4. Методика розроблення онтології засобами Protégé
- •Створення й експлуатація онтології
- •7.2.5. Створення онтології
5.3. Ключові абстракції й механізми
5.3.1. Ключові абстракції
Пошук і вибір ключових абстракцій. Ключова абстракція — це клас або об'єкт, що входить у словник ПО. Найголовніша цінність ключових абстракцій полягає в тому, що вони визначають межі нашої проблеми: виділяють те, що входить у нашу систему й тому важливе для нас, і усувають зайве. Завдання виділення таких абстракцій специфічні для предметної області. Правильний вибір об'єктів залежить від призначення ІС і ступеня детальності опрацювання інформації.
Як ми вже відзначали, визначення ключових абстракцій містить у собі два процеси: відкриття й винахід. Ми відкриваємо абстракції, слухаючи фахівців із ПО: якщо експерт про неї говорить, то ця абстракція дійсно важлива. Винаходячи, ми створюємо нові класи і об'єкти, які не обов'язково є частиною предметної області, але корисні під час проектування або реалізації системи. Наприклад, користувач банкомату говорить "рахунок, зняти, покласти"; ці терміни — частина словника предметної області. Розробник системи використовує їх, але додає свої, такі як база даних, диспетчер екрану, список, черга і таке інше. Ці ключові абстракції створені вже не предметною областю, а проектуванням.
Найпотужніший спосіб виділення ключових абстракцій — зводити задачу до вже відомих класів і об'єктів. Через відсутність таких повторно використовуваних абстракцій ми рекомендуємо користуватися сценаріями, щоб виконувати процес ідентифікації класів і об'єктів.
Уточнення ключових абстракцій. Визначивши кандидатів на ролі ключових абстракцій, ми повинні оцінити їх за такими критеріями. Програміст має задавати собі запитання: Як створюються об'єкти класу? Як можна копіювати і/або знищувати об'єкти класу? Які операції можуть бути виконані над цим об'єктом? Якщо відповіді на ці запитання дати важко, то, можливо, загальна концепція не зрозуміла, і краще сісти й подумати ще раз, ніж відразу розпочати програмування.
Визначивши нові абстракції, ми маємо знайти їх місце в контексті наявних класів і об'єктів. Не варто намагатися робити це строго зверху вниз або знизу вгору. Немає особливої необхідності будувати ієрархію класів, починаючи з найвищого класу, і потім доповнювати її підкласами. Частіше ви створюєте кілька незалежних ієрархій, усвідомлюєте їх загальні риси й виділяєте один або кілька суперкласів. Треба кілька проходжень вверх й вниз ієрархією, щоб створити програмний проект. Це лише спостереження, яке базується на досвіді й підтверджує той факт, що об’єктно-орієнтоване проектування — процес послідовних наближень. Найчастіші реорганізації в ієрархії класів — це відомість співпаданих частин двох класів в один і поділ класу на два нових.
Важко відразу розташувати класи й об'єкти на певних рівнях абстракції. Іноді, знайшовши важливий клас, ми можемо пересунути його нагору в ієрархії класів, тим самим збільшуючи ступінь повторності використання коду. Це називається просуванням класу. Аналогічно, можемо дійти висновку, що клас занадто узагальнений, і це ускладнює успадкування: відбувається семантичний розрив або конфлікт зернистості. В обох випадках ми намагаємося виявити зчеплення або недостатню зв’язність абстракцій і зм'якшити конфлікт.
Програмісти часто байдуже відносяться до правильного найменування класів і об'єктів, але насправді дуже важливо відобразити в позначенні класів і об'єктів сутність описуваних ними предметів. Програми необхідно писати ретельно, як художню літературу, думаючи про читача, і про комп'ютер. При ідентифікації лише одного об'єкту необхідно придумати імена: для нього, для його класу і для модуля, у якому клас оголошений. Помножте на тисячу об'єктів і сотні класів, і ви зрозумієте, яка це складна проблема.
Існують такі правила:
об'єкти варто називати іменниками: theSensor або shape;
класи варто називати узагальненими іменниками: Sensors, Shapes;
операції-модифікатори варто називати активними дієсловами: Draw, moveLeft;
операції-селектори повинні містити запит або форму дієслова "to be": extentOf, isOpen;
підкреслення й використання великих літер — на ваш розсуд, постарайтеся лише не суперечити самі собі.