Модель предметной области на языке описания онтологий

УДК 002:004.8

© Ю.С. Верхотурова МОДЕЛЬ ПРЕДМЕТНОЙ ОБЛАСТИ НА ЯЗЫКЕ ОПИСАНИЯ ОНТОЛОГИЙ

В статье рассматриваются два средства моделирования предметной области - ER-модель и онтология. Также приведен пример записи данных на языке описания онтологий RDF.

Ключевые слова: ER-модель, концептуальная схема, база знаний, онтология, языки описания онтологий, RDF, OWL.

© Yu.S. Verkhoturova

MODEL OF THE OBJECT DOMAIN IN THE LANGUAGE OF ONTOLOGY DESCRIPTION

The article considers two tools of the object domain modeling - ER-model and ontology. There is also an example of data records in the language of ontology description RDF.

Keywords: ER-model, conceptual scheme, knowledge base, ontology, RDF, OWL.

1. Концептуальная схема и ER- модель как истоки онтологии

Технологии БД сформировались как значимая ветвь информационных технологий в конце 60-х -начале 70-х гг. XX века. Начали производиться системы управления базами данных (СУБД) общего назначения, стали востребованными методологии проектирования БД и реализующий их инструментарий.

В соответствии со сложившимися методологиями проектирования БД начальным этапом этого процесса является формирование спецификации абстрактного представления предметной области (ПО) с помощью подходящих выразительных средств. Этот этап называется концептуальным моделированием ПО, а его результат - концептуальной схемой предметной области (КС/ Концептуальная модель - абстрактное описание предметной области, независимое от аспектов реализации систем, в рамках которых оно используется, определяющее концептуальную структуру и поведение сущностей в предметной области [4].

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

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

2. Онтологический инжиниринг

В середине 90-х гг. в крупных корпорациях, для которых проблемы обработки информации стали критическими, появилось понятие «управление знаниями».

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

Появление знаний как информационных объектов для обработки на компьютерах определило переход от БД к БЗ.

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

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

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

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

3. Языки описания онтологий

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

Существуют традиционные языки спецификации онтологий: Ontolingua, CycL, языки, основанные на дескриптивных логиках (такие как LOOM), языки, основанные на фреймах (OKBC, OCML, F-Logic). Специально для обмена онтологиями через Web были созданы языки RDF, RDFS, DAML+OIL, OWL.

Язык RDF

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

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

Все ресурсы и отношения (свойства) в RDF идентифицируются с помощью URI, что позволяет описывать с помощью RDF как интернет-ресурсы, так и ресурсы, которые не могут быть получены через Интернет (человек, автомобиль, город и т.д.). Например, если информация о том, что И.Иванов является автором ресурса http: //www .example. org/, расположена по адресу

http : //www. example. org/creator#, то в терминах RDF в нотации N-Triple это описание быть выражено следующим образом:

<http://www.example.org/creator#person>

<http://www.example. org/creator#/name>

<http://www .example. org/creator#R Иванов>.

Использованная нотация N-Triple не является стандартной формой записи RDF-описаний - рекомендованный синтаксис для записи RDF является RDF/XML, который более удобен для автоматической обработки, хотя и более сложен для восприятия человеком.

Запись троек в ХМЬ-документах производится иначе, чем в нотации К-Тпр1е. Приведем пример записи ХМЬ-документа, который используется для передачи данных из таблицы «Сведения о количестве земельных участков за 2011 г.» (Табл.1).

Таблица 1

Сведения о количестве земельных участков за 2011 г.

№ п/п Наименование кадастрового района Количество земельных участков в ГКН Количество земельных участков поставлено на учет Количество земельных участков снято с учета Количество земельных участков, по которым проведен учет изменений

1. Баргузинский 11486 845 35 7747

2. Баунтовский 6289 137 987 4194

3. Бичурский 18917 1455 140 18634

4. Джидинский 13208 1506 317 23426

5. Еравнинский 7304 512 108 12629

XML-документ для передачи данных таблицы будет выглядеть следующим образом: <?xml version="1.0" encoding="windows-1251" standalone="no" ?>

<!-- File Name: regions.xml -->

<?xml-stylesheet type="text/css" href="ST01.css" ?>

<!DOCTYPE Region-list [

<!ELEMENT Region-list (REGION*)>

<!ELEMENT REGION (ID,NAME_CR,GKN,REGISTERED,REMOVAL,CHANGES) > <!ELEMENT ID ANY>

<!ELEMENT NAME_CR ANY>

<!ELEMENT GKN ANY>

<!ELEMENT REGISTERED ANY>

<!ELEMENT REMOVAL ANY>

<!ELEMENT CHANGES ANY>

] >

<Region-list>

<REGION >

<ID>1</ID>

<NAME_CR>Баргузинский</NAME_CR>

<GKN>11486</GKN>

<REGISTERED>845</REGISTERED>

<REMOVAL>35</REMOVAL>

<CHANGES>7747</CHANGES>

</REGION>

<REGION >

<ID>2</ID>

<NAME_CR>Баунтовский</NAME_CR>

<GKN>6289</GKN>

<REGISTERED>137</REGISTERED>

<REMOVAL>987</REMOVAL>

<CHANGES>4194</CHANGES>

</REGION>

<REGION >

<ID>3</ID>

<NAME_CR>Бичурский</NAME_CR> <GKN>18917</GKN> <REGISTERED>1455</REGISTERED> <REMOVAL> 140</REMOVAL> <CHANGES>18634</CHANGES> </REGION>

</Region-list>

Теперь рассмотрим, как будет записан RDF-граф, приведенный в примере таблицы.

Субъектом в данном случае будет «кадастровый район» (тэг <REGION> в XML-документе). Предикатами являются уникальный номер региона в таблице (тэг <ID>), наименование (тэг <NAME_CR>), количество земельных участков в ГКН (тэг <GKN>), количество земельных участков, поставленных на учет (тэг <REGISTERED>), количество земельных участков, снятых с учета (тэг <REMOVAL>) и количество участков, по которым произведен учет изменений(<CHANGES>). Соответствующие этим предикатам объекты будут являться конкретными значениями, указанными в таблице (или значениями перечисленных тэгов XML-документа).

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

Задача RDF - это описание ресурсов в Сети, поэтому предположим, что наша таблица находится по адресу http://www.example.org/cadastral-regions#.

<rdf:RDF>

xmlns: regions=”http://www.example.0rg/cadastral-regions#” xmlns: rdf =”http://www.w3.org/1999/02/22-rdf-syntax-ns#”

<regions: region rdf:about=” http://www.example.0rg/cadastral-regi0ns#regi0nl”>

<regions: id>1</regions: id>

<regions: name_cr>Баргузинский</regions: name_cr>

<regions:gkn>11486</regions:gkn>

<regions:registered>845</regions:registered>

<regions: removal>35</regions: removal>

<regions: changes>7747</regions: changes>

</regions: region>

<regions:region rdf:about=” http://www.example.0rg/cadastral-regi0ns#regi0n2”>

<regions: id>2</regions: id>

<regions: name_cr>Баунтовский</regions: name_cr>

<regions: gkn>6289</regions: gkn>

<regions:registered>137</regions: registered>

<regions: removal>987</regions: removal>

<regions: changes>4194</regions: changes>

</regions: region>

<regions:regi0n rdf:ab0ut=” http://www.example.0rg/cadastral-regi0ns#regi0n3”>

<regions: id>3</regions: id>

<regions: name_cr>Бичурский</regions: name_cr>

<regions: gkn>18917</regions: gkn>

<regions:registered>1455</regions:registered>

<regions: removal>140</regions: removal>

<regions: changes>18634</regions: changes>

</regions: region>

</rdf:RDF>

Язык OWL

Другая спецификация - OWL (Web Ontology Language - язык онтологии Web), это язык, созданный для описания онтологии Web. Он совместим с языком RDF, т.е. каждый OWL-документ является также и RDF-документом.

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

Базовым элементом языка OWL является класс всех классов, определяемый как owl: Class, следовательно, любой OWL класс должен быть задан как экземпляр класса OWL класс. Например, если мы хотим определить класс Student (Студент), то должны определить тройку

Student rdf: type owl: Class, которая в XML синтаксисе будет выглядеть следующим образом: <owl:Class rdf:ID= “Student”/>.

В языке OWL также существует два предопределенных класса:

• класс owl:Thing (сущность), который обозначает множество всех индивидов;

• класс owl:Nothung (ничто), обозначающий пустое множество.

Наследование классов в языке OWL задается с помощью конструкции rdfs:subClassOf, а тот факт, что один класс является дочерним классом другого, означает, что все экземпляры дочернего класса являются экземплярами родительского класса.

Свойства в OWL делятся на два класса:

• объектные свойства, используемые для связывания индивидов друг с другом. Объектные свойства - это экземпляры класса owl:ObjectProperty.

• свойства типов данных связывают индивидов с так называемыми значениями типов данных. Свойства типов данных - это экземпляры класса owl:DataTypeProperty.

Язык OWL позволяет описывать различные характеристики классов и свойств, которые обычно задаются как разного рода ограничения на структуру связей между своими экземплярами. Эти ограничения выражаются в виде предопределенных соотношений, называемых в OWL аксиомами [3].

Заключение

Концептуальную схему БД часто называют онтологией ПО, однако это неверно. Хотя онтология и КС являются результатами концептуального моделирования предметной области, они представляют собой различные по характеру представления структуры предметной области.

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

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

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

Литература

1. Добров Б.В., Иванов В.В., Лукашевич Н.В., Соловьев В.Д. Онтологии и тезаурусы: модели, инструменты, приложения. - М.: БИНОМ, 2009. - 173 с.

2. Gruber Thomas.R. A Translation Approach to Portable Ontology Specifications //Knowledge Acquisition. 1993. № 5/2. - P. 199-220.

3. Лапшин В.А. Онтологии в компьютерных системах. - М.: Научный мир, 2010. - 224 с.

4. URL: http://ontology.ipi.ac.ru/index.php/Концептуальная модель предметной области

5. Гаврилова Т.А. Онтологический подход к управлению знаниями при разработке корпоративных систем автоматизации // Новости искусственного интеллекта. 2003. №2. - С. 24-30.

Верхотурова Юлия Сергеевна, аспирант кафедры геометрии Института математики и информатики Бурятского государственного университета. E-mail: bgsha julia@mail.ru

Verkhoturova Yulia Sergeevna, postgraduate student, Buryat State University, Institute of Mathematics and Computer Science, department of geometry. E-mail: bgsha julia@mail.ru