
ТЕХНОЛОГІЇ МЕНЕДЖМЕНТУ ЗНАНЬ
.pdfмеханічний зв’язок між акселератором і карбюратором (звичайне рішення);
під педаллю ставиться давач тиску, що з’єднується з комп’ю- тером, який керує карбюратором (механізм керування через дроти);
карбюратора немає; бак із пальним розташований на даху автомобіля й паливо вільно тече у двигун; потік палива регулюється затискачем на трубці; натискання на педаль акселератора послаблює затискач (дуже дешево).
Яку саме реалізацію вибере розробник, залежить від таких параметрів, як вартість, надійність, технологічність тощо.
Ключові абстракції визначають словник предметної області, механізми визначають суть проекту. У процесі проектування розробник має придумати не тільки наповнення класів, але й те, як об’єкти цих класів взаємодіятимуть один з одним. Механізм взаємодії розкладається на методи класів. У підсумку протокол класу відображатиме поведінку його об’єктів і роботу механізмів, в яких вони беруть участь.
Отже, механізми – це стратегічні рішення в проектуванні, подібно до проектування структури класів. З іншого боку, проектування інтерфейсу якогось одного класу – це швидше тактичне рішення. Стратегічні рішення потрібно виконувати явно, інакше отримаємо неорганізований набір об’єктів, що кидаються виконувати роботу, розштовхуючи один одного. У найелегантніших, найстрункіших і найшвидших програмах втілені ретельно розроблені механізми.
Механізми відображають лише один із шаблонів, які ми знаходимо в структурованих системах. Так, на нижньому кінці своєрідної біологічної піраміди перебувають ідіоми. Наприклад, в CLOS не прийнято використовувати підкреслення в іменах функцій або змінних, хоча в Ada ця справа звична. Вивчаючи мову, доводиться вчити її ідіоми, які зазвичай передаються у формі фольклору. Однак, ідіоми відіграють важливу роль в кодифікації шаблонів низького рівня. Багато звичних програмістських дій ідіоматичні, і тому розпізнавання таких ідіом дає змогу використовувати конструкції C++ для вираження функціональності поза самою цією мовою зі збереженням ілюзії, що вони є частиною мови.
Місце на верху піраміди займає середовище розроблення. Середовище розроблення – це набір класів, призначених для певної прикладної ситуації. Середовище дає готові класи, механізми й по-
181
слуги, якими можна відразу користуватися або пристосовувати для своїх потреб.
Якщо ідіоми становлять частину програмістської культури, то середовища розроблення – комерційний продукт. Наприклад, Apple MacApp і його спадкоємець Bedrock – середовища, написані на C++ і призначені для побудови ІС зі стандартним інтерфейсом користувача Macintosh. Аналогічну роль для Windows відіграють Microsoft Foundation Classes і ObjectWindows корпорації Borland.
5.4. Висновки
Ідентифікація класів і об’єктів – найважливіше завдання об’єктно-орієнтованого проектування; процес ідентифікації складається з відкриття й винаходу.
Класифікація є проблемою групування (кластеризації) об’єктів. Класифікація – процес послідовних наближень; проблеми
класифікації зумовлені здебільшого, тим, що є багато рівноправних рішень.
Є три підходи до класифікації: класичний розподіл за категоріями (класифікація за властивостями), концептуальна кластеризація (класифікація за поняттями) і теорія прототипів (класифікація за подібністю із прототипом).
Метод сценаріїв – це потужний засіб об’єктно-орієнтованого аналізу, його можна використати для інших методів: класичного аналізу, аналізу поведінки й аналізу предметної області.
Ключові абстракції відображають словник предметної області; їх шукають в самій області або придумують у процесі проектування.
Механізми позначають стратегічні проектні рішення щодо спільної діяльності об’єктів багатьох різних типів.
Запитання для повторення та контролю знань
1.Важливість правильної класифікації.
2.Складнощі класифікації.
3.Ідентифікація класів та об‟єктів.
4.CRC-картки.
5.Ключові абстракції.
6.Ідентифікація механізмів.
182
Розділ 6
ОНТОЛОГІЇ Й ОНТОЛОГІЧНІ СИСТЕМИ
Основні визначення
Моделі онтологій. Онтологічні системи
Системи і засоби подання онтологічних знань
У цьому розділі подано поняття онтології, розглянуто онтологічні системи. Описано моделі онтологій і їх використання під час розроблення інтелектуальних систем. У кінці розділу описано системи та засоби подання онтологічних знань.
6.1. Поняття онтології
Онтологія (від грец. онтос – суще, логос – навчання, поняття) – термін, що визначає вчення про буття, про сутність, на відміну від гносеології – вчення про пізнання. Вже у X. Вольфа (1679–1754), автора терміна “онтологія”, вчення про буття відокремлено від учення про пізнання. Tермін увів у філософську літературу німецький філософ Р. Гокленіус (1547–1628). До цього онтологія була частиною метафізики, наукою самостійною, незалежною і не пов’язаною з логікою, з “практичною філософією”, з науками про природу. Її предмет становить вивчення абстрактних і загальних філософських категорій, таких як буття, субстанція, причина, дія, явище тощо, а сама онтологія як наука домагалася повного пояснення причин усіх явищ.
Зрозуміло, що таке визначення трохи недоречне для практичного використання, але дає поштовх для подальшої конкретизації й обговорення, з огляду на цілі цього видання. У цьому значенні цікавіше визначення онтології, запропоноване в межах розроблення
183
системи стандартів на мультиагентні системи міжнародним співто-
вариством FIPA (Foundation for Intelligent Physical Agents). У
філософському розумінні можна посилатися на онтологію як на певну систему категорій, що є наслідком певного погляду на світ.
Сама система категорій не залежить від конкретної мови: онтологія Арістотеля завжди одна і та сама, незалежно від мови, використаної для її опису.
З іншого погляду, ближчого до понять, пов’язаних зі штучним інтелектом, онтологія – це знання, формально відображені на ґрунті концептуалізації. Концептуалізація, як вже обговорювалося вище, припускає опис безлічі об’єктів і понять, знань про них і зв’язків між ними. Отже, онтологією називається експліцитна специфікація концептуалізації. Формально онтологія складається з термінів, організованих в таксономію, їх визначень і атрибутів, а також пов’язаних з ними аксіом і правил виведення.
Часто набір припущень, що становлять онтологію, має форму логічної теорії першого порядку, де терміни словника є іменами унарних і бінарних предикатів, що називаються відповідно концептами і відношеннями. У простому випадку онтологія описує тільки ієрархію концептів, зв’язаних відношеннями категоризації. У складніших випадках до неї додаються відповідні аксіоми для вираження інших відношень між концептами і для того, щоб обмежити їх передбачувану інтерпретацію. З огляду на вищесказане, онтологія є базою знань, що описує факти, які передбачаються завжди істинними в межах певної спільноти на основі загальноприйнятого значення використовуваного словника.
Ще конкретнішим поняття онтології є у відомому проекті Оntolingua, який активно розробляють у Стенфордському університеті. Тут передбачається, що онтологія – це експліцитна специфікація певної теми.
Такий підхід припускає формальне і декларативне подання деякої теми, яке вміщує словник (або список констант) для посилання до термінів предметної області, обмеження цілісності на терміни, логічні твердження, які обмежують інтерпретацію термінів і те, як вони поєднуються один з одним.
Резюмуючи вищесказане, можна констатувати, що сьогодні розуміння терміна “онтологія” різне, залежно від контексту і цілей його використання. У роботі [44] виділяють такі аспекти інтерпретації цього терміна:
184
1)онтологія як філософська дисципліна;
2)онтологія як неформальна концептуальна система;
3)онтологія як формальний погляд на семантику;
4)онтологія як специфікація “концептуалізації”;
5)онтологія як уявлення концептуальної системи через логічну теорію, що характеризується:
спеціальними формальними властивостями, її призначенням;
6)онтологія як словник, використовуваний логічною теорією;
7)онтологія як метарівнева специфікація логічної теорії. Зазначимо, що перша інтерпретація радикально відрізняється від
інших і пов’язана, як пропонують автори вищезгаданої роботи, з тим, що йдеться про Онтологію (з великої літери) і як філософську дисципліну, що вивчає, за Арістотелем, природу й організацію сущого. У цьому значенні Онтологія намагається відповісти на запитання: “Що є суще?” або, в іншому формулюванні, на запитання: “Які властивості є загальними для всього сущого?”. Коли ж говоримо про онтологію (з маленької літери), то посилаємося на об’єкт, природа якого може бути різною, залежно від вибору між інтерпретаціями 2–7. За другою інтерпретацією, онтологія є концептуальною системою, яку можемо припускати як базис визначеної БЗ. Згідно з інтерпретацією 3 онтологія, на основі якої побудована БЗ, виражається в термінах відповідних формальних структур на семантичному рівні. Отже, ці дві інтерпретації розглядають онтологію як концептуальну “семантичну” сутність, неважливо – формальну чи неформальну, тоді як інтерпретації 5–7 трактують онтологію як спеціальний “синтаксичний” об’єкт. Четверта інтерпретація, запропонована Грубером як визначення онтології для використання в межах ШІ-спільноти, – одна з найпроблематичніших, оскільки точне значення її залежить від розуміння термінів “специфікація” і “концептуалізація”. І разом з тим, саме це визначення найчастіше і використовується сьогодні в роботах з проектування і дослідження онтології.
Для визначеності подальшого викладу вважатимемо, що онтології – це бази знань (БЗ) спеціального типу, які можуть “читатися” і розумітися, відчужуватися від розробника чи фізично розділятися їхніми користувачами.
185
Онтологічний інжиніринг – гілка інженерії знань, яка використовує Онтологію (з великої букви) для побудови онтології (з маленької букви). Зрозуміло, що будь-яка онтологія означає концептуалізацію, але одна концептуалізація може бути основою різних онтологій, і дві різні БЗ можуть відображати одну онтологію.
Історично онтології виникли з гілки філософії, відомої як метафізика, яка вивчає природу реальності та буття. Ця фундаментальна гілка аналізує різноманітні типи моделей буття, часто з особливою увагою до зв’язків між частковим і загальним, внутрішнім і зовнішнім, існуванням і буттям.
У середині 70-х років ХХ ст. дослідники в галузі штучного інтелекту зрозуміли, що збирання знань – це ключ до побудови великих і потужних систем штучного інтелекту. Дослідники обговорювали можливість створення онтологій як інструменту чисельного моделювання, що дає змогу виконувати логічне виведення знань. У 80-х роках ХХ ст. дослідники прийшли до висновку, що термін “онтологія” може використовуватися у двох значеннях. По-перше, онтологія – це компонент систем, що ґрунтуються на знаннях, по-друге, – це змодельована за допомогою формальних засобів частина реального світу.
На початку 90-х років минулого століття робота Тома Грубера “Майбутні принципи проектування онтологій для поширення та колективного використання знань” містила визначення онтології як технічного терміна в комп’ютерних науках. Грубер описував термін “онтологія” як специфікацію концептуалізації деякої області. Це означало, що онтологія – це опис концептів і зв’язків між ними, які існують для деякої множини агентів. Це визначення узгоджується з використанням онтологій як множини визначень концептів, але є загальнішим і звичайно має інший сенс, ніж у філософії. Онтології часто порівнюють з таксономічними ієрархіями класів і з визначеннями класів з категоризацією зв’язків, але не обмежують лише цими формами. Онтології також не обмежуються консервативними визначеннями, на зразок систем теорем та аксіом.
Формування семантичного Webу почалось з розроблення мови RDF консорціумом W3C. Але історія роботи з метаданими у W3C
почалася 1995 року з появою PICS (Platform for Internet Content
Selection). PICS – це механізм для передавання комунікаційних ярликів Web-сторінок від сервера до клієнта. Ці ярлики містили інформацію
186
про вміст Web-сторінок, для прикладу, про рецензовані наукові статті, розміщені на сторінці, чи про авторизацію ресурсу акредитованим дослідником. Також ярлики часто містили публічні дані авторів сторінок, посилання на іншомовні версії сторінки тощо. Замість того, щоб визначити фіксований набір критеріїв, PICS забезпечувала загальний механізм створення ярликових систем. Різні організації визначали власний вміст сайту, залежно від їхніх цілей, необхідності і користувачів. Розроблення PICS мотивувалося тим, що назрівають зміни у Webа, причому ці зміни мали стосуватися здебільшого різних обмежень у США та інших країнах.
Після серії обговорень були ідентифіковані обмеження в PICS, і змінилися функціональні вимоги. Вимоги почали охоплювати загальніші проблеми, ніж асоціація дескриптивної інформації з Інтернетресурсами, ґрунтованими на PICS-архітектурі. Як результат, W3C створив нову робочу групу PICS-NG (Next Generation), яка почала досліджувати загальні проблеми опису ресурсів.
Згодом нова команда розробила попередню специфікацію документу PICSMOD, який визначав новий формат. Цей формат відразу був застосований у кількох, різних за своєю структурою, аплікаціях і залишився незмінним. Побачивши результат, W3C сконсолідував групу для роботи над RDF. Нова група була названа “W3C Resource Description Framework working group”.
Мова RDF стала результатом роботи численних об’єднань спеціалістів, що займалися дослідженням метаданих. У RDF є кілька попередників. Технічно найближчим до RDF був проект MCF, ініційований Раманатаном Гуа в компанії “Apple Computer” і продовжений після купівлі цього проекту компанією Netscape. Ідеї “Dublin Core” та PICS також мали ключове значення для створення RDF.
Специфікація RDF-моделі та її XML-синтаксис був опублікований 1999 року у вигляді W3C-рекомендації. Потім почалася робота над створенням нових пов’язаних специфікацій, які були опубліковані 2004 року.
Історія онтологічних розроблень у комп’ютерних науках доволі давня. Починаючи з 90-х років минулого століття, частина дослідників намагалася поширити ідеї про використання знань у Webі. Ці дослідження передбачали створення різноманітних мов, ґрунтованих на HTML (наприклад, SHOE), на XML(XOL, пізніше OIL) та на фреймах.
187
OWL здебільшого оснований на дослідженнях DARPA (Defense
Advanced Research Projects Agency), які створили мову DAML+OIL.
Вона, своєю чергою, ґрунтувалася на мовах DAML та OIL.
World Wide Web Consortium створив робочу групу “Web Ontology Working Group”, яка функціонувала з 1 листопада 2001 року на чолі з Джеймсом Хендлером та Гусом Скрейбером. Перший робочий документ опублікований в липні 2002 року. Документ став офіційною рекомендацією W3C 10 лютого 2004 року. Групу було розформовано 31 травня 2004 року.
Одним із найскладніших і найдовших етапів у формуванні семантичного Webу є створення SPARQL (Simple Protocol and RDF Query Language) – мови запитів до RDF, яку розробила група DAWG
(RDF Data Access Working Group).
Спочатку, в квітні 2006 року, SPARQL була подана як кандидат W3C рекомендації, але потім її повернули на доопрацювання як робочий стандарт. У червні 2007 року SPARQL знову у кандидатах до рекомендації. 12 листопада 2007 року SPARQL запропоновано до рекомендації і 15 січня 2008 року визнано офіційною рекомендацією W3C.
Мова SPARQL дає змогу робити запити за допомогою триплетів “суб’єкт–предикат–об’єкт”, кон’юнкцій, диз’юнкцій та необов’язкових шаблонів. Існує кілька реалізацій SPARQL для програмних мов, зокрема для Java.
Загалом RDF, SPARQL та OWL створюють цілісну картину засобів семантичного Webу, необхідних для побудови онтологічних моделей.
У книзі “Семантичний Web: введення в майбутнє XML, Web сервісів та управління знаннями” М. Даконта та інші автори описали, що таке RDF, чому вона не набула популярності і чому виникли онтології. Автору дають таке пояснення, що таке RDF. На найпростішому рівні RDF є XML базованою мовою для опису ресурсів. Якщо XML має метадані лише в частині документу, то RDF описує всі метадані, які необхідні для опису знань у документі. Дуже хорошим прикладом використання RDF є опис ресурсів, які є невидимими для користувача, наприклад, аудіофайли.
Модель RDF складається із тверджень (триплетів), кожен з яких складається з суб’єкта, предиката та об’єкта. На рис. 6.1 наведено RDF-твердження.
188

Об„єкт
Предикат
URI
Суб‟єкт |
|
|
|
|
|
|
|
|
|
|
Літерал |
Предикат |
|
|
|
|
|
Літерал |
|
|
|
Властивість або асоціація |
|
|
|
|
|||
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 6.1. RDF-твердження
Суб’єкт. Граматично суб’єкт – це іменник, який в реченні виконує певну дію. Наприклад, у реченні “Компанія купує продукт” суб’єктом є “компанія”. У RDF суб’єкт – це ресурс, інформація про який описується в предикаті та об’єкті. Тому для ідентифікації суб’єкта використовується URI (Unified Resource Identifier), наприклад, “http://www.business.org/ontology/#company”.
Предикат. Граматично предикат є дієсловом чи дієслівним зворотом, наприклад, у тому самому реченні “Компанія купує продукт” предикат – “купує”. Інакше кажучи, предикат повідомляє нам щось про суб’єкт. У RDF предикат є зв’язком між суб’єктом та об’єктом. Тому, предикат у RDF подається як URI на зразок: “http:// www.business. org/ontology/#buy” .
Об’єкт. Граматично об’єкт є іменником, якого стосується дія, задана в дієслові (предикаті). У попередньому прикладі об’єктом є “продукт”. У RDF об’єкт – це ресурс або літерал, пов’язаний з предикатом. У
прикладі об’єкт має такий URI: “http://www.business. org/ontology/ #product”, але загалом об’єктом може бути літеральне значення, наприклад, “Змінна дорівнює 5”, де 5 – літеральне значення об’єкта.
Твердження. У RDF сукупність суб’єкта, предиката та об’єкта прийнято називати твердженням. Наприклад, у N3 (Notation3) твердження називають триплетами.
М. Даконта та інші автори у своїй книзі також пояснили причини, чому RDF активно не використовується. По-перше, мова RDF не достатньо добре інтегрується в XML-файли. Це пояснюється тим, що RDF завжди має простір імен, тоді як XML чи XHTMLдокументи можуть описувати лише дані без необхідних інфраструктурних елементів метаданих (таких як простори імен). Хоча RDF-
189

об’єкти серіалізуються так само, як і XML-об’єкти, все ж існувала проблема інтеґрації RDF у XHTML та XML. Виправивши синтаксис, робоча група W3C із RDF вирішила проблему інтеграції. Для прикладу, існують спеціальні утиліти на зразок SMORE, які вміють читати вкладені RDF-документи в HTML та XHTML.
Рис. 6.2. Порівняння використання технологій RDF та XML
По-друге, мова RDF складніша, ніж XML, яка, своєю чергою, не є достатньо читабельною для розробників і через це є складною. Складність RDF полягає в тому, що насправді в RDF-документах існують і дані, і метадані, які також мають складний синтаксис. Тобто у роботі з RDF треба знати не лише ієрархічну структуру даних, але й ієрархічну структуру метаданих, які тісно між собою переплітаються.
Автори книги навели статистику (рис. 6.2) щодо кількості книжок, програмних продуктів та сайтів компаній, присвячених використанню RDF та XML відповідно. Статистика показує, що використання XML істотно перевищує RDF, і що більше реальні програмні продукти з використанням RDF фактично не створюються.
Отже, виникла гостра необхідність створити нову мову, яка б описувала знання на вищому рівні абстракції, ніж звичайні Webресурси, як це робить RDF. Тому виникла мова OWL. Вона була покликана змінити типову архітектуру систем з метою перетворити дані у знання, а системи зробити ближчими до реального світу. На рис. 6.3 наведено типовий процес роботи зі знаннями.
190