Компютърни технологии за онтологично моделиране
Тази страница е глава от нашия урок „Въведение в онтологичното моделиране“ (щракнете за пълния PDF урок).
Семантичните технологии (Semantic Web) е набор от начини за представяне и използване на информация в електронна форма. Най-добрият начин да разберете същността им е в сравнение с други начини за представяне на информация.
За обработка на структурирана информация се използва релационно представяне (таблици, бази данни). Същността на този подход е да се раздели информацията на метаданни, които описват вида и формата на информационните елементи, и действителните данни, които носят информация за конкретни обекти, явления и техните свойства. По правило информацията се представя в таблична форма. Всяка таблица съхранява информация за определен тип обекти или явления. Таблицата се състои от колони, всяка от които съхранява информация за някакво свойство или връзка на обекта. Описанията на таблиците и колоните са метаданни, докато тяхното съдържание е данни. Наличието на метаданни позволява да се изградят софтуерни алгоритми за обработка на данни, тоест да се прехвърлят някои от задачите за обработка и обработка на информация към компютър.
Семантичните технологиипредставляват следващата стъпка в развитието на машинночетими представяния на информация. Те позволяват внедряването на семантични модели в електронна форма, изградени съгласно принципите, описани в предишния раздел, ви позволяват да прехвърляте информацията, съдържаща се в тези модели, и да я обработвате автоматично, включително получаване на логически заключения въз основа на аксиомите в модела.
Въпреки това, благодарение на усилията на ентусиастите на семантичния уеб, получихменабор от технологии, приети под формата на препоръки или стандарти на W3C, и набор от софтуер с отворен код, който може да се използва за решаване на задачи, които са далеч от доста тесните цели на семантичния уеб. Потенциалът на тези технологии според нас е сериозно подценен. Колкото по-интересно е да се разработят методи за тяхното практическо приложение.
И така, нека разгледаме състава на "технологичния стек" на семантичния уеб.
На първо място е необходим основен начин за изразяване на информацията, представена в семантични модели. По този начинтройна (тройна) се превърна в синтактична структура, състояща се от три елемента:
Подлог Предикат Обект
Разбира се, имената на трите елемента на тройката дадохме произволно, но те отразяват същността им.Субектвинаги е обект модел.Предикате свойството, чиято стойност искаме да зададем за този обект. И накрая,complementможе да бъде или литерал (числова, низова стойност), или друг обект. Разбира се, обектите и свойствата се определят чрез техните уникални идентификатори. Избраните от нас имена на частите от триплета също са удобни, защото съответстват на граматическата структура на най-простата фраза-изявление на естествения език, например: „Кучето е животно“.
Използвайки такива триплети, можете да изразите цялата информация, съдържаща се във всеки семантичен модел. Разбира се, необходимо е да се определи формализъм или набор от правила, според които се формират триплетите. Ще разгледаме тези правила малко по-късно, но засега ще продължим прегледа на семантичните технологии.
Един от крайъгълните камъни на семантичния модел сауникалните идентификатори на обектите. В семантичния уеб е обичайно тези идентификатори да бъдат под формата на URI - универсални идентификатори на ресурси, стандартизирани за Интернет. Така че всичкоидентификаторите в семантичните модели приемат формата:
Трябва да разберете, че този начин на писане на идентификатори е чиста конвенция. Идентификаторът няма нищо общо с http протокола, "името на хост" може да е фиктивно и да не съответства на нито един реален сайт, имената на онтологията и последната (уникална) част от идентификатора се формират произволно и може да няма символ # преди идентификатора. Като цяло URI може да се разглежда просто като низ, който е моделиран с единствената цел за четливост от хора.
Има общоприети онтологии, например FOAF, предназначени да изразяват информация за лица. Такива онтологии имат собствено пространство от имена (първата част от идентификатора е приблизително "http://hostname/ontology"; например за FOAF пространството от имена е http://xmlns.com/foaf/0.1/).
Следващият набор от технологии, които ще разгледаме, се използват за сериализиране на онтологични модели (т.е. запазване на модели във файлове). Тук можем да разграничим логическото и синтактичното ниво: логическото ниво определя принципите и правилата за предаване на семантичното съдържание на онтологиите, а синтактичното ниво определя начините за трансформиране на това значение в последователност от символи.
Има няколко "езика" за писане на семантични модели, като основните са RDF/RDFS и OWL. RDF/RDFS ви позволяват да записвате най-простите факти за обекти, класове и свойства. OWL описва сложни връзки между класове и свойства. Връзката между RDF/RDFS и OWL е доста сложна: от една страна, OWL използва някои изрази от предишни стандарти, като например предиката за членство в типа (rdf:type); от друга страна, той предефинира изрази като тип обект "клас"(owl:Class вместо rdfs:Class - има нюанс в дефиницията на клас за различни OWL диалекти); от друга страна, някои от тези заменени изрази се използват по-рядко от своите предшественици: rdfs:subClassOf се използва по-често от своя аналог owl:subClassOf. Като цяло, на практика, онтологията обикновено е смес от изрази от трите стандарта.
OWL има няколко „диалекта“: остарелият и много опростен OWL Lite, най-често използваният OWL DL (Description Logic) и богатият OWL Full. Една от разликите между OWL DL и OWL Full е, че OWL DL гарантирано оценява всеки булев израз, докато OWL Full не е така. От друга страна, OWL Full позволява, например, да се превърне един субект в клас и индивидуален обект едновременно, което е необходимо при сложни модели. По-нататък в нашата история навсякъде ще загатваме използването на OWL DL. И накрая, има нова версия на стандарта - OWL 2. Той дефинира така наречените OWL профили, които налагат различни ограничения върху възможностите на езика: OWL RL, OWL QL и т.н.
Стандартите предоставят различни синтаксиси за запис на OWL или RDF/RDFS във файл. Най-често срещаният е добре познатият XML. Той също така използва синтаксиса Turtle, който е по-сбит и улеснява "виждането" на тройките в кода.
Ясно е обаче, че работата с модели във файлов режим е изключително неудобна, а в многопотребителски е почти невъзможна. Следователно има софтуерни продукти от класа Triple store - тройни магазини, които функционират подобно на бази данни. Най-известните решения от този клас са Apache Jena, Virtuoso, Sesame, GraphDB и много други. По-специално, можете да създадете троен магазин въз основа наOracle 11g. Магазините на триплетите имат програмни интерфейси, които позволяват достъп до тях от различни инструменти за програмиране, използвайки машини за изводи. Съществува и стандарт SPARQL, който описва програмния интерфейс и синтаксиса на заявките за онтологичните модели; още от името му е очевидна аналогията с езика SQL. Софтуерен продукт, който предоставя SPARQL интерфейс към съдържанието на троен магазин, се нарича SPARQL точка за достъп (SPARQL крайна точка).
Триплетните магазини реализират импортиране на онтологии от RDF/RDFS/OWL файлове, но обикновено не поддържат експорт към тях. Трябва също да се отбележи, че не всички продукти прилагат правилата за конвертиране от OWL към „чисти“ тройки по един и същи начин (вижте документа „OWL 2 Web Ontology Language Mapping to RDF Graphs“), така че резултатите от импортирането на OWL в тройното хранилище зависят от внедряването на софтуера.
Друг интересен клас семантичен софтуер са системите, които поддържат работа с контролиран естествен език. Те ви позволяват да пишете изрази, които се превеждат недвусмислено на OWL в подмножество от естествен език (английски, български и т.н.). На естествен език можете също да задавате заявки към машината за изводи. Вярно е, че синтактичните правила на контролиран език в съвременните реализации са доста ограничени. Пример за такъв продукт е FluentEditor на Cognitum. Има и софтуер, който ви позволява да възстановявате онтологични модели от текст - например ABBYY Compreno.