Научная статья на тему 'Методы определения уровней безопасности элементов онтологии'

Методы определения уровней безопасности элементов онтологии Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
204
93
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОНТОЛОГИЯ / УРОВЕНЬ БЕЗОПАСНОСТИ / АЛГОРИТМ / ЛОГИЧЕСКИЕ ВЫВОДЫ / ONTOLOGY / LEVEL SECURITY / ALGORITHM / INFERENCE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Хоанг Ван Кует, Тузовский Анатолий Федорович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The paper considers the principle problems of multilevel security in semantic data. The principles of assigning the security levels of notions, properties and individuums of the ontology have been described. The authors have proposed the algorithms which allow defining the security levels for the main elements of ontology and inferences obtained in logical rules.

Текст научной работы на тему «Методы определения уровней безопасности элементов онтологии»

УДК 004.415

МЕТОДЫ ОПРЕДЕЛЕНИЯ УРОВНЕЙ БЕЗОПАСНОСТИ ЭЛЕМЕНТОВ ОНТОЛОГИИ

Хоанг Ван Кует, А.Ф. Тузовский

Томский политехнический университет E-mail: [email protected]

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

Ключевые слова:

Онтология, уровень безопасности, алгоритм, логические выводы. Key words:

Ontology, level security, algorithm, Inference.

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

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

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

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

Постановка задач и основные понятия

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

или его части. Современные онтологии в основном строятся одинаково, независимо от языка написания, и обычно они состоят из индивидуумов, понятий, атрибутов и отношений.

В базе данных хранятся онтологии и индивидуумы. Под онтологической моделью (онтологией) O понимается знаковая система <C,T,P>, где C={Cb...,C„} - множество элементов, которые называются понятиями (классами), где n - количество понятий в онтологии; T - частичный порядок на множестве С, задающий отношения «подкласс» и «суперкласс»; P={P1,...,Pm} - множество элементов, называющихся свойствами (атрибутами, отношениями), где m - количество свойств в онтологии (двуместными предикатами) [4]. Множество индивидуумов обозначается как Е={ЕЪ..,Е,}, где k- количество индивидуумов.

С целью безопасности доступа к семантическим данным элементу в онтологии и утверждению в базе данных задаются уровни безопасности s, значения которых выбираются из множества меток, например таких, как {неклассифицированный (s=1), конфиденциальный (s=2), секретный (s=3), сверхсекретный (s=4)}. Таким образом, множеству элементов онтологии О соответствует множество уровней безопасности, которое обозначается, как <SC,SP,SE>, где SC - множество уровней безопасности понятий, SP - множество уровней безопасности свойств и SE - множество уровней безопасности индивидуумов [5]. На рис. 1 показана онтология, у которой элементы имеют 4 уровня безопасности.

В онтологии класс Са может являться подклассом класса Сь или суперклассом класса С. В процессе создания онтологий для классов С„, Сь и Сс разработчики могут задать уровни безопасности sa, sb и sc. Таким образом, для класса онтологии может быть задано несколько или ни одного значения уровней безопасности. В этом случае актуальной является задача определения уровня безопасности для каждого элемента онтологии.

Для работы с семантикой информации может быть использован язык Semantic Web Rule Language (SWRL), основанный на объединении языков

Рис. 1. Пример онтологии суровнями безопасности

OWL и RuleML, т. е. объединены онтологии (OWL-DL) и правила [6]. Он позволяет формально описать способ работы с объектами предметной области, а так же закономерности предметной области. С помощью данного языка на основе уже известных семантических данных могут быть получены новые утверждения (т. е. сделаны логические выводы). На рис. 2 показан пример логического правила, написанного на языке SWRL.

(?a rdf: type owl: NamedIndividual) Л (?b rdf: type owl: NamedIndividual) Л (?a rdf: type ontology: Finance_Department) Л (?b rdf: type ontology: Finance_Department) Л (?a ontology: isLeaderDepartmentOf ?b)

^ (?a rdf: type ontology: Leader_Finance)

Рис. 2. Пример описания логических выводов на языке SWRL

В данном примере описывается следующее правило: если два человека а и b работают в финансовом отделе, и а руководит b, то следовательно а является начальником данного отдела.

Теперь предположим, что а имеет уровень безопасности $=1, а классу Leader-Finance задан уровень безопасности s=2, тогда в соответствии с данным логическим правилом а является элементом данного класса и ему должен быть задан уровень безопасности s=s=2. Таким образом, необходимо создать метод для определения уровней безопасности элементов, полученных в результате применения логических правил.

Алгоритмы определения уровней безопасности элементов в онтологии

Для построения алгоритмов, позволяющих определить уровни безопасности элементов онтологии, предположим следующие принципы:

• В онтологиях нет элементов, не имеющих уровней безопасности.

• Если элементу не адан начальный уровень безопасности, то его уровень безопасности равен нулю.

• Уровень безопасности подкласса должен быть больше или равен уровню безопасности суперкласса.

• Уровень безопасности объекта должен быть больше или равен уровням безопасности классов, которым он принадлежит.

• Уровень безопасности свойства должен доминировать над уровнем безопасности других свойств, которым оно принадлежит.

• В зависимости от логических операций, каждый индивидуум может принадлежать нескольким классам, следовательно, логические выводы могут обладать некоторыми значениями уровней безопасности.

Алгоритм определения уровней безопасности классов

Понятия или классы - это абстрактные группы, коллекции или наборы объектов. Они могут включать в себя индивидуумы, другие классы, либо же сочетания и того, и другого. Классы онтологии составляют таксономию (иерархию понятий) на основе отношения включения ^иЬс1аддО^. На основе вышеуказанных принципов, алгоритм (алгоритм 1) определения уровней безопасности понятий в онтологии может быть описан следующим образом:

1. Если начальный уровень безопасности дх понятия Сх не создан, то ему присвоено значение равное нулю (^=0).

2. Если понятие Сх является подклассом другого понятия Су, имеющего уровень безопасности д,, то необходимо сравнять уровень безопасности дх с уровнем безопасности ду.

3. Если ду>дх, то дх будет присвоено значение д,, т. е. дх=ду, в противном случае дх=дх и алгоритм заканчивается.

4. Если понятие Сх не является подклассом никакого другого понятия Су, то алгоритм заканчивается.

Схема алгоритма, позволяющего определять уровень безопасности понятия, показана на рис. 3. В результате выполнения алгоритма уровень безо-

пасности каждого понятия будет определён и будет единственным.

-'Х

\?CX ontology l?Cy ontology

жет включать в себя другие свойства или принадлежать им. Уровень безопасности свойства может быть описан в процессе создания онтологии или определён с помощью уровней безопасности других элементов. Способ, позволяющий определить уровни безопасности свойств онтологии, аналогичен подходу, описанному в алгоритме 1. Для этого также необходимо рекурсивно выполнять алгоритм, используемый для определения уровня безопасности одного свойства. На рис. 5 показан способ определения уровней безопасности sx всех свойств Px в онтологии, описанный с помощью языка SWRL.

(?Px rdf: type owl: ObjectProperty) Л noValue (?Px ontology: Level ?sx)^

(?Px ontology: Level 0).

(?Px ontology: Level ?sx) Л (?Px rdfs: subPropertyOf ?Py) Л (?Py ontology: Level ?sy) Л

greaterThan

?sx) ^ drop (1) Л

Рис. 3. Алгоритм определения уровня безопасности понятия

В онтологии класс может одновременно являться подклассом одного класса или суперклассом другого, тогда для определения уровней безопасности всех классов необходимо выполнять рекурсивные операции для разработанного алгоритма. Нарис. 4 показано описание метода определения уровней безопасности для всех классов в онтологии с помощью языка SWRL.

(?Cx rdf: type owl: Class) Л noValue (?Cx ontology: Level ?sx)^

(?Cx ontology: Level 0).

Level ?sx) Л Level ?sy) Л (?Cx rdfs: subClassOf ?Cy) Л greaterThan (?sy,?sx)^ drop (1) Л (?Cx ontology: Level ?sy).

Рис. 4. Определение уровня безопасности классов онтологии с помощью языка SWRL

Определение уровней безопасности свойств

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

В онтологии между свойствами также могут задаваться отношения, например, одно свойство мо-

(?Px ontology: Level ?sy).

Рис. 5. Определение уровней безопасности свойств онтологии с помощью языка SWRL

Алгоритм определения уровней безопасности индивидуумов в онтологии

Индивидуумы (экземпляры) - это основные элементы нижнего уровня онтологии. Индивидуумы могут соответствовать как физическим объектам (люди, дома, планеты), так и абстрактным сущностям (числа, слова).

Аналогично алгоритму 1 алгоритм определения уровня безопасности индивидуума создан таким образом:

• если начальный уровень безопасности (дх) индивидуума (Ех) не задан, то его значение равно нулю (дх=0);

• если индивидуум Ех является элементом класса Су, имеющего уровень безопасности ду, то необходимо сравнять дх с уровнем безопасности д;

• если дх<ду, то дх будет присвоено значение ду, т. е. дх=ду, в противном случае дх=дх и алгоритм заканчивается.

Схема алгоритма (алгоритм 2) для определения уровня безопасности индивидуума показана на рис. 6.

В результате выполнения алгоритма 2 уровень безопасности индивидуума в базе данных будет единственным и будет доминировать над уровнем безопасности класса, которому данный индивидуум принадлежит.

В базе данных хранится много индивидуумов, имеющих свой уровень безопасности. С помощью алгоритма 1 могут быть определены уровни безопасности ду всех классов онтологии Су, после этого могут быть определены и уровни безопасности дх всех индивидуумов Ех онтологии с помощью способа описанного языка SWRL, как показано на рис. 7.

г s

y

Рис. 6. Алгоритм для определения уровня безопасности индивидуумов онтологии

(?Ex rdf: type owl: Namedlndividual) Л

noValue (?Ex ontology: Level ?sx) (?Ex ontology: Level 0).

(?Ex ontology: Level ?sx) A (?Ex rdf: type ?Cy) A (?Cy ontology: Level ?sy) A greaterThan (?sy,?sx) ^ drop

(1)

Л

'?Ex ontology: Level

Sy

С помощь описанных выше алгоритмов могут быть определены уровни безопасности всех элементов (понятий, связей, атрибутов, индивидуумов) семантической базы данных. В этом случае уровень безопасности sд утверждения д определяется как максимальное значение из уровней |sa,s^,sr|, где sa - это уровень безопасности субъекта, Sp - это уровень безопасности отношения, sr - это уровень безопасности объекта.

Алгоритм определения уровней безопасности логических выводов

В онтологии логическим правилом R является выражение, обозначающееся как Vxb..., xm (b^..^bk)^q, где k>1 и x1,.,xm - это свободные переменные в Ь1Л.ЛЬк. Каждый bt представляет собой утверждение, имеющее вид [a,P,y], где a, в, у-переменные, константы или OWL аксиомы. Левая часть правила (Ь1Л.ЛЬк) называется телом, а правая часть правила (q) - головой правила. При составлении таких правил необходимо, чтобы все переменные, включаемые в голову, содержались в составе тела правила.

Рис. 7. Определение уровней безопасности индивидуумов с помощью языка SWRL

Уровень безопасности утверждений

Семантические метаданные М={д,...,д,} - это наборы семантических утверждений (триплетов) д, которые имеют вид д=(а,Р,у), где а - это субъект утверждения (понятие, или индивидуум - контекстные метаданные некоторого понятия), в - объект (экземпляр - индивидуум, контекстные метаданные некоторого понятия), у - отношение между субъектом и объектом. При этом понятия и отношения должны быть определены в онтологии О, а индивидуумы описываются контекстными метаданными онтологической базы знаний. Примерами утверждений являются следующие триады < С,Р, С>, <Е,Р,Е>, <С,Р,Е>, <Е,Р,У>, <с,р,миы>,

<сдгах,лгш>, <Е,р,ииьь>, <Е,ти,т1Е>, где С - понятие; Е - индивидуум понятия; Р -связь; А - атрибут; V- значение атрибута (текстовое или числовое) [7]. Для контроля доступа пользователей к утверждению необходимо сравнить их уровни доступа с уровнем безопасности утверждения.

Рис. 8. Алгоритм определения уровней безопасности логических выводов

В семантических технологиях f называется функцией отображения только в случае, когда она удовлетворяется следующими условиями:

• „/"сохраняет все константы f (constant)=constant);

• Еслиf[xiyi,Zi])=[ai,Pi,yi] иf([x1,y1,z.1])=[a1,e1,y2], то a1=a2;

• VAb)eM, (i=1...k);

Тогда с помощью функции отображения логическое правило R выводит утверждение д=[a,P,y](f(q)=[a,P,y]).

Алгоритм определения уровней безопасности логических выводов с использованием правил может быть описан следующим образом:

1. Определяется уровень безопасности каждого логического вывода.

Если существует функция отражения f:

b1,...,bk—>дl,..., д гдеДbl)=д,•••, то:

• генерируется отражение д=f(q) (по определению - существуют логические выводы). После отражения получим утверждение д, которое должно иметь уровень безопасности s;

• генерируется значение для уровня безопасности логического вывода с использованием выражения s=MAX(sa,Se,sr);

• генерируется пара безопасности S;=^,s) (утверждение, уровень безопасности).

2. Выполняется контроль значений уровней безопасности.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Если в базе данных уже существует утверждение д, имеющее уровень безопасности s', который большее уровня безопасности логического вывода (s>s), то s присваивается значение s'. В противном случае, т. е. если (s'<s), то значение

СПИСОК ЛИТЕРАТУРЫ

1. Berners T The Semantic Web // Scientific American. - 2001. -V. 120. - № 3. - P. 220-225.

2. Хоанг Ван Кует. Многоуровневая безопасность для семантических данных // Вестник науки Сибири. - 2012. - № 5 (6). -С. 93-100.

3. Хоанг Ван Кует, Тузовский А.Ф. Контроль логических выводов в семантических данных // Известия Томского политехнического университета. - 2012. - Т. 320. - № 5. - С. 148-151.

4. Тузовский А.Ф., Ямпольский С.В. Системы управления знаниями (методы и технологии) / под общ. ред. В.З. Ямпольско-го. - Томск: Изд-во НТЛ, 2005. - 260 с.

уровня безопасности логического вывода будет равно s.

3. Безопасность (д^) добавляется к множеству пар (утверждение, уровень безопасности) безопасности S семантических метаданных M.

На рис. 8 показан алгоритм для определения уровней безопасности логических выводов.

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

Заключение

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

5. Хоанг Ван Кует, Тузовский А.Ф. Алгоритмы для контроля доступа и модификации семантических данных // Электронные средства и системы управления. - 2012. - Т. 26. - № 2. -C. 41-45.

6. Ian H. SWRL: A Semantic Web Rule Language Combining OWL and RuleML. 2004. URL: http://www.w3.org/Submission/SWRL/ (дата обращения: 21.05.2012).

7. Тузовский А.Ф. Формирование семантических метаданных для объектов системы управления знаниями // Известия Томского политехнического университета. - 2007. - Т. 310. - № 3. -С. 108-112.

Поступила 24.02.2013 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.