УДК 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. Выполняется контроль значений уровней безопасности.
Если в базе данных уже существует утверждение д, имеющее уровень безопасности 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 г.