RDF СХЕМА МЕТАДАННЫХ ИСИР.
Роль технологий Semantic Web в архитектуре ИСИР.


А.А. Бездушный (МФТИ), А.Н. Бездушный (ВЦ РАН), А.Б. Жижченко (ЦНТК РАН), М.В. Кулагин (ЦНТК РАН), В.А. Серебряков (ВЦ РАН)

Аннотация

В работе анализируются основные концепции Semantic Web и перспективы его использования. Приводится сопоставление парадигмы Semantic Web с традиционными парадигмами программирования. Описывается применение RDF(S) в новой Java-архитектуре ИСИР [ISIRn], опирающейся на открытые стандарты W3C: Semantic Web, XML технологии, и на применение open-source решений. Даётся обзор RDF-схемы метаданных ИСИР РАН.

Resource Description Framework

"Semantic Web - это расширение Web, в котором информации придаётся определённая семантика, позволяя людям и машинам работать вместе" - примерно такое определение дают своим работам члены W3C Semantic Web Activity [SW]. Целью этого проекта является внедрение в Web таких технологий, которые позволят существенно повысить уровень интеграции информации, обеспечить развитую машинную обработку данных, дадут возможность выдавать более адекватные ответы на поисковые запросы и т.д.

Текущее состояние Web характеризуется слабой структурированностью данных, низким уровнем их взаимосвязи. Распространение XML-технологий дает возможность структурировать информацию, обеспечить синтаксическую интероперабельность приложений. Semantic Web является логическим продолжением развития Web - от гипертекстовых страниц к XML-данным, а от XML - к смысловому содержанию и объединению разбросанной в Web информации.

Semantic Web базируется на модели данных Resource Description Framework (RDF), которая позволяет объединить информацию из различных источников, включая базы данных и системы инженерии знаний. RDF может быть наиболее полезен в обеспечении совместного использования информации, смысл которой может одинаково интерпретироваться различными программными агентами. Второй базовый компонент Semantic Web - это RDF/XML-синтаксис, который позволяет представить RDF-данные в XML-виде. Следующий уровень в пирамиде технологий Semantic Web занимает язык RDF Schema - язык описания словарей RDF-терминов (классов и свойств Web-ресурсов). RDFS служит фундаментом для более богатых языков описания онтологий предметной области, которые позволяют адаптировать к Web системы логики и обеспечить семантическую обработку данных.

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

RDF/XML-синтаксис позволяет записать граф в последовательной форме, пригодной для обмена данными. Этот синтаксис достаточно гибок - он допускает различные формы записи одного и того же графа, различные сокращенные формы.

RDF-схема (RDFS) представляет собой систему типов для Semantic Web. RDFS позволяет определить классы ресурсов и свойства как элементы словаря, и специфицировать, какие свойства, с какими классами могут быть использованы. RDFS выражает эти словари средствами RDF, предоставляя набор предопределённых ресурсов и свойств с обозначенной для них смысловой нагрузкой, которые могут быть использованы для описания новых RDF-словарей.

Таким образом, любое RDFS-описание представляет собой "обычные" RDF-данные - данные о классах и свойствах. RDFS позволяет определить уникальные (идентифицируемые URI) классы ресурсов, представляющие концептуальную модель конкретной предметной области, и уникальные (идентифицируемые URI) свойства, интересующие нас в этой области. Принадлежность ресурса к конкретному классу задается с помощью свойства rdf:type, представляемого в графе дугой от экземпляра к классу. Описываемые в словаре классы сами являются экземплярами предопределённого класса rdfs:Class, свойства же являются экземплярами rdf:Property. RDFS позволяет указать, каким классам присущи заданные свойства, и ресурсы какого класса могут появиться в качестве значения заданного свойства. Эта информация указывается в словаре с помощью свойств rdfs:domain и rdfs:range соответственно. RDFS позволяет связать классы (rdfs:Class) отношениями множественного наследования (rdfs:subClassOf). В RDFS-модели, как и в обычном объектном подходе, классам свойственен полиморфизм. То есть, экземпляр подкласса всегда может сыграть роль экземпляра своего суперкласса, и появиться как субъект или объект свойства, для которого в качестве соответственно range или domain был указан суперкласс. Свойства также могут быть связаны отношениями множественного наследования (rdfs:subPropertyOf). Наследование свойства означает более узкую специализацию этого свойства, уточнение смысла и сужение границ использования.

Ниже приведен пример двух RDF-графов, один из которых соответствуют RDF-схеме некоторой предметной области, а второй - конкретным данным.

С введением механизмов определения словарей, деятельность Semantic Web выходит на новый уровень. На данный момент различные организации по стандартизации предлагают стандартные словари для описания ряда предметных областей. Использование таких публичных словарей (или сопоставление с ними) позволяет "незнакомым" приложениям обмениваться информацией друг с другом, точно так же, как человек, попавший в чужую страну без знания языка, всё равно сможет в ней общаться - с помощью "стандартного" языка жестов, или, например, угадывая латинские, греческие, славянские корни в словах. В качестве примера таких инициатив стандартизации можно упомянуть инициативу Dublin Core [DC], предоставляющую минимальный набор свойств для идентификации ресурсов Web; Publishing Requirements for Industry Standard Metadata (PRISM), определяющую словарь метаданных для издательских организаций, Electric Power Research Institute Common Information Model, указывающую общую семантику для энергетических систем, RDF Site Summary для описания каналов новостей Web-порталов и многие другие инициативы.

Язык RDFS предоставляет лишь базовые возможности для описания словарей предметных областей, но он легко может быть расширен дополнительными примитивами моделирования, более детально и специализировано описывающими нужные аспекты классов и свойств. Механизм расширения внутренне присущ RDFS, поскольку для описания схем используется модель данных RDF, которая позволяет расширить описание любых ресурсов дополнительной информацией. Предопределённый словарь "мета-типов" RDFS также может быть расширен под нужды приложения, благодаря чему появляется возможность добавлять в язык новые примитивы.

Расширяемость позволяет RDFS стать фундаментом для более богатых языков концептуального моделирования - языков описания web-онтологий предметных областей. Цель таких языков - указать дополнительную машинно-интерпретируемую семантику ресурсов, то есть сделать машинное представление данных более похожим на положение вещей в реальном мире. Использование богатых языков концептуального моделирования позволит адаптировать к Web большое количество наработок в области систем инженерии знаний и баз знаний. Привлечение к Web систем логики и искусственного интеллекта составляет вершину "пирамиды Semantic Web", обеспечивая адекватный поиск информации и её машинную интерпретацию.

Первыми предложениями по описанию онтологий на базе RDFS были DAML-ONT (DARPA Agent Markup Language) [DAML] и European Commission OIL (Ontology Inference Layer) [OIL]. На базе этих двух предложений возникло совместное решение - DAML+OIL [DAML+OIL], которое привело к созданию в рамках инициативы Semantic Web отдельной группы, ответственной за пересмотр этого решения и стандартизацию языка описания Web-онтологий (OWL - Web Ontology Language) [OWL].

Однако ориентированность языков описания онтологий на системы математической логики делает их слишком тяжеловесными для огромного количества приложений, которым достаточно простого языка описания словарей - RDFS. И это правильно, каждая ступень в пирамиде Semantic Web - это ступень, на которой многие приложения могут остановиться, согласно своим собственным требованиям к данным и их использованию.

Сопоставление RDF(S) с другими парадигмами

Система типов RDFS похожа на многие общепринятые системы типов, как в ER-моделировании, объектно-ориентированном программировании и UML, и т.п. Инициатива Semantic Web не ставит перед собой цели создать новую модель данных, напротив, она ориентируется на интеграцию различных моделей данных с целью получения информации из соответствующих источников. RDFS отличается от этих стандартных систем типов в нескольких существенных аспектах, которые являются следствием глобализации и децентрализации информационной системы, к которой мы приходим, "выходя" в Web из установленных моделью данных рамок. В каком-то смысле RDF(S) есть адаптация этих моделей к Web. Рассмотрим сопоставление примитивов RDFS и модели данных объектно-ориентированного программирования (согласно [RDF Premier]).

Один из архитектурных принципов Web состоит в том, что кто угодно может расширить описание существующих ресурсов [TBL-98], то есть "кто угодно может сказать, что угодно, о чём угодно". Это означает, что отношение между двумя объектами может храниться отдельно от любой другой информации об этих объектах. Это сильно отличается от того, к чему мы привыкли в обычных объектно-ориентированных системах, в которых считается, что информация об объекте хранится внутри объекта: определение класса объекта подразумевает указание места хранения его свойств. Такое отличие является следствием децентрализации и адаптации к положению вещей в реальном мире. Например, один человек может определить автомобиль, как нечто, имеющее колёса, вес и размер, но не предвидеть цвет. Это не остановит другого человека от утверждения, что его машина - красная, используя некоторый словарь цветов.

Из этого архитектурного принципа Web следует основное отличие парадигмы RDFS от объектной парадигмы - это её свойство-центричность. Свойства (отношения, предикаты) в RDFS являются объектами первого уровня, как и классы: они идентифицируются URI и определяются независимо от классов, тогда как в объектной и ER парадигмах свойства (атрибуты) указываются в "теле" класса, смысл свойств с одинаковыми названиями в разных классах может быть различен. Впрочем, такой подход уже использовался, например, в X.500, LDAP, где свойства и их характеристики описываются отдельно от класса, а потом "привязываются" к нужным классам. Он оправдывает себя в системах, ориентированных именно на хранение разнообразной слабоструктурированной информации.

Вместо того, чтобы описывать классы в терминах свойств (структуры), имеющихся у него, как это делается в объектно-ориентированных системах, RDFS описывает свойства в терминах классов, к которым они применимы, указывая rdfs:domain (область применения свойства) и rdfs:range (область значений свойства). Различие между этими подходами может показаться только синтаксическим, но на самом деле есть существенная разница, которая связана как раз с глобализацией информационной системы при адаптации её к Web, где "кто угодно может сказать, что угодно, о чём угодно". Например, если кем-то определен класс ex:Book со свойством ex:author, принимающим значения типа ex:Person, то это не запрещает другим разработчикам придать классу ex:Book дополнительное свойство my:publisher, достаточно лишь указать этот класс в rdfs:domain нового свойства my:publisher. Это не требует переопределения класса, причем создатели класса могут быть в неведении данного факта. В то же время в ООП потребовалось бы переопределить и перекомпилировать класс.

Кроме того, RDFS вообще не требует, чтобы у свойства была задана область применения - свойство без domain может быть использовано для описания любого ресурса, независимо от его класса. Определение свойства без указания области применения позволяет использовать его в будущем в ситуациях, которые не могли быть предвидены в момент разработки схемы. Именно так поступает Dublin Core, предоставляя словарь стандартных свойств, пригодных для описания любого Web-ресурса, для которого они окажутся полезными.

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

RDF Schema, напротив, предоставляет информацию о схеме как дополнительное описание ресурсов, но не указывает, как это описание должны использоваться приложениями. Приложение вольно по своему усмотрению считать RDF-данные соответствующими схеме или нет, если в описании отсутствует некоторое свойство, требуемое схемой, либо присутствуют свойства, не указанные в схеме. Одно приложение может интерпретировать RDFS-описания как шаблон для генерации данных, и проверять соответствие данных областям значений свойств, то есть интерпретировать описания схемы так же, как они интерпретируются в ОО языке программирования. Другое приложение может интерпретировать RDFS-описания как дополнительную информацию о данных, которые оно получает. Например, если оно получит RDF-данные с указанием свойства ex:author, содержащим значение без указания типа, то может заключить на основе описания схемы, что это значение является ex:Person. Третье приложение может получить данные, в которых свойство ex:author содержит ресурс типа ex:Student, и использовать информацию схемы как базис для предупреждения, что данные могут содержать ошибку. Хотя, возможно, где-то существует RDFS-описание, решающее эту проблему, например, указывающее, что ex:Student подкласс ex:Person.

Итак, RDFS утверждения всегда описательны. Они могут, конечно, интерпретироваться как "предписывающие", но только если приложение желает их так интерпретировать. Всё, что делает RDFS-описание - это предоставляет приложениям дополнительную информацию "для размышления".

Интеграция в Semantic Web систем баз знаний, математической логики и инженерии знаний в состоянии принести двойную прибыль. Во-первых, для механизмов Web (таких как поиск информации) становится доступным большое количество баз знаний, созданных в области медицины, биологической химии и пр. С другой стороны, появляется возможность адаптации к Web самих технологий, наработанных в области математической логики и инженерии знаний, что позволит поисковым системам и программным агентам самостоятельно анализировать предоставленную информацию.

Однако прямой перенос этих технологий невозможен в силу глобальности и децентрализации, которую мы наблюдаем в Web и не наблюдаем в имеющихся системах инженерии знаний. Многие решения (например, [KIF]) в силу своей концептуальной и физической централизации требуют глобальной целостности ссылок, исходят из предположения об "ограниченности мира". Это же было и с гипертекстовыми системами 70-90 годов, до появления Web. Обобщение KIF для Web должно быть во многом аналогично тому, как были обобщены первые гипертекстовые системы - следует "заменить" локальные идентификаторы на URI и убрать требование глобальной целостности. Кроме того, адаптированные к Semantic Web системы логики должны быть хорошо расширяемы и приспособлены к различными типами "противоречивости" данных.

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

Соотношение ИСИР и Semantic Web

ИСИР-технологии [ISIRn] ориентированы на формирование единой информационной среды из разнородных и распределенных источников информации, называемых репозиториями, содержащих ресурсы в реляционных и объектных базах данных, LDAP-каталогах, XML и RDF хранилищах, Z39.50-системах и т.п. ИСИР предоставляет ряд служб по поддержке репозиториев, например, репликацию и обмен данными, индексирование и поиск ресурсов, технологию построения Web-порталов для доступа к данным и манипулирования ими. В плане интеграции разнородных информационных источников ИСИР пытается в меру своих возможностей двигаться в направлении целей, намеченных Semantic Web, используя его технологии. Semantic Web предлагает стандартный механизм и унифицированную модель данных для интеграции информационных источников Web, и ожидает от них поддержки этого механизма. ИСИР предоставляет некоторое техническое решение для построения таких информационных источников, для организации их взаимодействия, как между собой, так и с другими независимыми источниками. ИСИР стремится к реализации идей Semantic Web в своей более узкой и более специализированной области - объектно-ориентированные информационные порталы и цифровые библиотеки.

ИСИР и Semantic Web могут и должны работать вместе. С одной стороны, ИСИР-репозитории служат источниками RDF-знаний для сторонних программных агентов Semantic Web, таких как поисковые системы. С другой стороны, Semantic Web может помочь ИСИР "добывать" информацию из сторонних источников - доступных в Web тезаурусов и классификаторов, баз знаний и пр. систем, с которыми может быть связана информация в информационном портале или цифровой библиотеке. Использование RDF для обмена данными позволяет обмениваться информацией как между репозиториями ИСИР, так и со сторонними заинтересованными системами.

Основой Java-архитектуры ИСИР является объектно-ориентированный подход к представлению данных. Для каждого типа хранилища поддерживается механизм отображения объектной модели данных во внутреннюю модель (реляционную, LDAP...). ИСИР-репозиторий не универсален - он не может, и не должен хранить, "что угодно". Каждый репозиторий способен хранить данные, соответствующие жёсткой замкнутой объектной схеме, описывающей допустимые классы, их свойства, которой сопоставлена система хранимых Java-классов и, например, система таблиц в реляционной БД. Такая объектная схема соответствует традиционной парадигме объектно-ориентированного программирования и объектных баз данных, то есть исходит из понятия "самодостаточности" схемы. Это естественно, так как пока мы находимся в контексте одного репозитория, нет никакой необходимости в "децентрализации" схемы, более того, как правило, модель данных расположенного под объектным уровнем хранилища требует замкнутости схем (реляционная, объектная БД, LDAP..).

Когда же мы выходим на Web-уровень и задаёмся задачей интеграции разнородных репозиториев в Web, мы сталкиваемся с "глобализацией" и "децентрализацией" информации, и логично воспользоваться в этой области парадигмой Semantic Web и языком RDFS. Элементы схемы репозитория становятся глобально-идентифицируемыми (с помощью URI), схемы разных репозиториев перестают быть независимыми. Например, может оказаться так, что некоторые репозитории хранят в себе объекты одного и того же класса, но разные наборы свойств, в соответствии с теми аспектами этого класса, которые им нужны в их специфической предметной области. Может выясниться, что репозитории хранят схожие (но не одинаковые) классы, и при их интеграции часть информации из одного репозитория может использоваться противоположными, например, для пополнения имеющейся у них информации или для установления требуемых взаимосвязей между ресурсами.

Возникает естественное желание как-то интегрировать эти две аспекта в рамках одной схемы данных. С этой целью в ИСИР сформировано расширение языка RDFS, пригодное для описания локального и глобального аспектов объектной схемы данных. Мы используем понятия RDFS-классов и свойств, идентифицируемых URI, понятия наследования классов и свойств, rdfs:range свойства, но добавляем к этим примитивам моделирования возможность четко описать класс в терминах его атрибутов, как это делается в ОО языках программирования. С этой целью введено специальное свойство schema:property - отношение, связывающее класс с его свойствами.

Каждый репозиторий рассматривает свою схему ресурсов как замкнутое описание, по которому можно получить, например, соответствующее ODL-описание или сгенерировать систему bean-подобных Java-классов. Он интерпретирует rdfs:range как ограничение на тип значений свойства, которому должны удовлетворять хранимые данные, schema:property - как ограничение, чётко задающее все присутствующие в классе атрибуты (которым будут соответствовать get/set методы в java-классах, поля в реляционной БД и т.п.). Репозиторий интерпретирует свою схему ресурсов в рамках традиционной объектной парадигмы, как требуется ИСИР при хранении данных. Это не противоречит идеям Semantic Web, поскольку приложения могут интерпретировать RDFS-описания по собственному усмотрению.

С другой стороны, при обмене данными между репозиториями и интеграции их информации, RDFS-описание объектной схемы каждого репозитория расценивается с позиции децентрализации, распределённости информации в Web. При загрузке сторонних RDF-данных, из них отбирается только та информация, которую репозиторий способен сопровождать согласно своей замкнутой схеме и своим ограничениям. При формировании результатов поисковых запросов поисковый сервис может возвращать пользователям описания ресурсов, интегрирующие свойства разных репозиториев, а, возможно, к тому же отфильтрованные в соответствии с предпочитаемой пользователем схемой ресурсов.

Рассмотрим пример совместной работы трёх информационных источников - корпоративного портала некоторой организации, базы данных налоговой службы и портала библиотеки. Схема объектных данных каждого из этих ИСИР-репозиториев содержит класс isir:Person, представляющий нужную в репозитории информацию о человеке. Пространство имён 'isir' соответствует базовой схеме метаданных ИСИР, находящей применение в большинстве приложений. В той же базовой схеме определено свойство isir:personName, указывающее ФИО человека на нужном языке.

Однако каждому репозиторию нужна более специфичная информация о данной личности - корпоративный портал содержит данные о должности человека и контактной информации, которая может быть полезна пользователю портала. Налоговая служба заинтересована, помимо этого, в паспортных данных этого лица, его ИНН и сведениях о доходах. Библиотечная система хранит лишь паспортные данные и информацию о взятых книгах. Соответственно, каждый репозиторий специализирует класс isir:Person под свои нужды, и связывает с ним только те свойства, которые представляют интерес в данной предметной области.

Таким образом, структура java-класса Person различна для разных репозиториев (на рисунке эти различные "взгляды" на isir:Person изображены в стиле UML). Тем не менее, часть информации в этих источниках пересекается, и один репозиторий может реплицировать нужную информацию из другого. Так, налоговая служба может позаимствовать информацию о месте работы непосредственно из корпоративного портала организации-работодателя, а библиотечная система - паспортные данные из налоговой. Репозитории обмениваются информацией в RDF/XML-представлении, что обеспечивает интероперабельность не только между собой, но и со сторонними системами Semantic Web.

Итак, ИСИР использует RDFS как фундамент для описания объектных схем за простую объектную модель, удобство расширения новыми примитивами и адаптированность к Web, а следовательно и к обмену RDF и XML данными. Онтологические языки, в частности OWL, слишком сложны в силу своей ориентации на системы логики, и не имеет смысла использовать их лишь для описания объектной схемы репозитория и простых ограничений на неё. Но многие онтологии могут быть легко адаптированы под требования ИСИР путём их упрощения, что позволяет создавать цифровые библиотеки, хранящие информацию в соответствии с системой классов и свойств данной онтологии. Приоритетное положение RDFS в ИСИР не мешает изначально описать объектную схему репозитория на ODL [ODMG], смоделировать на UML [UML], либо получить по существующей системе Java-классов. ИСИР предоставляет некоторые механизмы по отображению таких описаний объектной схемы друг в друга и их генерации.

ИСИР-технологии не поддерживают средства для хранения произвольных RDF-данных. Каждый репозиторий жёстко ограничен своей схемой предметной области, которая выражается не только в структуре хранимых Java-классов, но и в схеме скрытого под ним хранилища, например в структуре таблиц реляционной БД. Существуют продукты, нацеленные именно на хранение произвольного RDF (см. [SW RDBMS], [KAON], [RDFSUITE], Jena...), которые хранят в БД RDF-тройки (утверждения), и позволяют делать RDF-специфичные запросы к этому множеству троек. Эти системы следуют абсолютно иным целям, чем ИСИР, мало эффективны в работе с большими объёмами данных, более приближены к системам баз знаний, нежели к цифровым библиотекам. При необходимости данные ИСИР-репозитория посредством их RDF-представления могут быть перегружены в подобную систему.

Примитивы моделирования ИСИР RDFS

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

* schema:Class и schema:Property - подклассы соответственно rdfs:Class и rdf:Property. С этими метаклассами связаны дополнительные свойства.

* schema:AbstractClass - подкласс schema:Class, позволяющий выделить линию одиночного наследования во множественном наследовании классов rdfs:subClassOf. Понятие "абстрактного класса" используется при сопоставлении схемы с теми языками программирования, в которых запрещено множественное наследование, в частности Java. При генерации Java-кода, каждому schema:Class соответствует класс Java, а каждому schema:AbstractClass - Java-интерфейс. Соответственно, генератор не допускает наследования schema:Class от более чем одного не-абстрактного класса.

* schema:property - свойство класса schema:Class, сопоставляющее со schema:Class набор допустимых атрибутов schema:Property, таким образом определяя структуру хранимых Java-классов репозитория (согласно традиционной парадигме ООП).

* schema:inverseOf - свойство schema:Property, задающее "обратное отношение" к данному свойству. Например, "isir:job" имеет обратное отношение "isir:hired", а "isir:author" -обратное отношение "isir:authorOf". Аналогичное свойство имеется в языках описания онтологий - DAML+OIL, OWL.

* schema:minCardinality, schema:maxCardinality - минимальная и максимальная мощность свойства, то есть ограничения на минимальное и максимальное количество значений этого свойства. В DAML+OIL и OWL эти ограничения указываются в виде локальных ограничений на свойство в классе.

* schema:Attribute - подкласс schema:Property. Свойства, являющиеся экземплярами schema:Attribute, называются "ИСИР-атрибутами" и используются для связывания с объектами (ресурсами или зависимыми объектами) его составных частей, которые не могут существовать независимо от объекта. Такие свойства не могут принимать значения только примитивных типов данных или типов структур (kernel:DependentObject - см. ниже). Понятие "ИСИР-атрибута" соответствует UML-понятиям "атрибута" и "агрегации".

Ядро ИСИР предоставляет различные встроенные услуги по управлению хранимыми объектами, такие как автоматическая проверка прав доступа, аудит и пр. Для того, чтобы к хранимому классу была подключена некоторая услуга, он должен расширить соответствующий предопределённый "абстрактный класс". Так, для подключения системы безопасности и возможности конфигурации персональных прав доступа к объектам класса, достаточно сделать класс наследником kernel:SecureObject. Благодаря использованию множественного наследования, к классу можно подключить несколько услуг одновременно (например, "зависимый объект" и персональные права доступа). К RDFS-классам представляющим услуги ядра относятся следующие:

* kernel:ObjectWithId - такой объект имеет уникальный в пределах хранилища числовой идентификатор - id. Большинство сервисов ядра, такие как security, audit и пр., нуждаются в том, чтобы объект обладал таким id.

* kernel:SecureObject - такой объект обладает персональными правами доступа. Достаточно наследовать свой класс от SecureObject - и он попадёт под политику безопасности ядра.

* kernel:AuditedObject - наследование от этого "абстрактного класса" подключает автоматический аудит изменений объекта.

* kernel:DependentObject - экземпляры подклассов этого "абстрактного класса" расцениваются ядром как зависимые объекты. Такой объект имеет неявное обязательное поле scope - "контекст", связывающее его с объемлющим хранимым объектом. Зависимый объект не может существовать без контекста. При создании зависимый объект должен быть проассоциирован с допустимым объектом-контекстом, иначе он не получит статус хранимого. При удалении объекта-контекста автоматически удаляется и зависимый объект. Ассоциация происходит при присвоении зависимого объекта некоторому свойству объекта-контекста, принимающему только одно значение, либо при добавлении его в коллекцию значений многозначного свойства объекта-контекста. Свойства, проводящие ассоциацию зависимого и объемлющего объектов, называются ИСИР-атрибутами (schema:Attribute). На тип объекта-контекста не накладывается ограничений - он и сам может быть зависимым объектом от некоторого третьего хранимого объекта. Для чтения, модификации, удаления зависимого объекта необходимо иметь аналогичное право для объекта-контекста (чтение контекста для чтения зависимого, модификация контекста для модификации зависимого, модификация или удаление контекста для удаления зависимого). При изменении зависимого объекта меняется и дата модификации объекта-контекста.

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

Помимо указанных абстрактных классов, вводится два типичных не-абстрактных базовых класса, удобных для использования в большинстве информационных систем - это "ИСИР-ресурс" и "структура".

* kernel:Resource - логическая единица хранения, условная единица информации, наделенная "самостоятельностью", "индивидуальностью" в том смысле, что она может существовать вне зависимости от других информационных объектов, представлять первичный интерес пользователей системы. Каждый ресурс относится к некоторому типу ресурсов, который определяет некоторую совокупность сведений, внутренне присущих ресурсам этого типа, но не рассматривающих взаимосвязи с другими ресурсами. Ресурс обладает глобально уникальным идентификатором, относительно которого известен и поддерживается механизм разрешения идентификатора в протокол и адрес доступа к ресурсу, например, Handle System.

* kernel:Structure - структурное значение ("зависимый объект"), существующее только в контексте логических единиц хранения (ресурсов). Простой не-абстрактный подкласс kernel:DependentObject.

Базовая схема метаданных ИСИР РАН

При описании RDFS-схемы прикладных классов для ИСИР РАН был сформирован набор прикладных классов и свойств, характерных для многих информационных систем. Примеры включают базовую информацию о документах, организациях, людях и их деятельности.

Все типы информационных объектов в базовой схеме ИСИР делятся на "ресурсы" (kernel:Resource), такие как организации и подразделения, персоналии, проекты, публикации, и "структуры" - зависимые объекты, представляющие собой часть информации некоторого ресурса. Структуры используются для группировки атрибутов ресурсов в отдельные объекты, они связываются с ресурсами свойствами типа schema:Attribute. Отдельный тип информационных объектов - это "термы", объединяющиеся в "таксономии" - централизованные словари, классификаторы, тезаурусы ИСИР.

В базовой схеме вводится механизм для выражения многоязычной информации - такая информация выражается в виде отдельных "локализованных" объектов, содержащих текстовую информацию на конкретном языке. Так, имя персоны isir:personName представляет собой отношение один ко многим между isir:Person и локализованными объектами isir:PersonName, каждый из которых имеет свойство dc:language, отражающее язык локализованных данных, и значения isir:first (имя), isir:middle (отчество) и isir:last (фамилию) на этом языке. isir:PersonName является подклассом специального класса isir:Localized, обладающего свойством dc:language. Локализация данных широко используется более высокоуровневыми компонентами архитектуры ИСИР. Например, web-страницы отчётов и просмотра данных в случае отсутствия информации на требуемом пользователе языке могут выдавать ему информацию на другом языке согласно приоритетам языков, указанным в настройках браузера клиента. Если язык dc:language не указан, значение считается интернациональным (например, телефон, картинка). Например, если телефон содержит только цифры, это - интернациональное значение. Если же помимо цифр указан комментарий, например "рабочий", "домашний", то язык должен быть указан.

Класс isir:File базовой схемы предназначен для отражения длинной текстовой или бинарной информации. Конкретный способ хранения этой информации зависит от конфигурации системы и указанного "режима". Файл может представлять собой как web-ссылку (URL), по которой может быть получено его содержимое, так и CLOB или BLOB в реляционной БД (когда хранилищем является RDBMS), либо файл локальной файловой системы. С файлом может быть связана различная метаинформация, такая как размер, MIME-тип и пр. Описанная функциональность класса File обеспечивается за счёт скрытой в нём application-логики. "Файловая" информация широко используется в конкретных прикладных системах (документы). Компоненты Web-архитектуры в ИСИР обеспечивают загрузку файлов на сервер, организацию работы с zip-архивами, например, для хранения html-документа с картинками.

Ниже на рисунках показаны фрагменты иерархии классов и свойств ИСИР РАН, визуализированные редактором онтологий Protйgй (http://protege.stanford.edu/).

Полное описание RDF-схемы ИСИР представлено в соответствующей проектной документации.

Литература

1. Бездушный А.Н., Жижченко А.Б., Кулагин М.В., Серебряков В.А., Интегрированная система информационных ресурсов РАН и технология разработки цифровых библиотек. // Программирование V 26, N 4, 2000, pp. 177-185.
2. Бездушный А.А., Нестеренко А.К., Сысоев Т.М., Бездушный А.Н., Java и XML технологии новой версии системы ИСИР. // 2003, статья в данном сборнике
3. Semantic Web Activity. //
4. http://www.w3.org/2001/sw RDF Primer. W3C Working Draft. //
5. http://www.w3.org/TR/rdf-primer RDF/XML Syntax Specification (Revised). W3C Working Draft. //
6. http://www.w3.org/TR/rdf-syntax-grammar/
7. Resource Description Framework (RDF) Schema Specification // http://www.w3.org/TR/2000/CR-rdf-schema-20000327
8. Tim Berners-Lee. What the Semantic Web can represent., 1998 // http://www.w3.org/DesignIssues/RDFnot.html OWL Web Ontology Language 1.0 Reference. W3C Working Draft. //
9. http://www.w3.org/TR/owl-ref/ DAML Language.
10. http://www.darpa.mil/ixo/ //
11. http://www.daml.org/about.html DAML+OIL (March 2001) Reference Description. //
12. http://www.daml.org/2001/03/daml+oil-index.html Ontology Inference Layer. //
13. http://www.ontoknowledge.com/oil Dublin Core Activity. //
14. http://dublincore.org Dave Beckett, Jan Grant. Semantic Web Scalability and Storage: Mapping Semantic Web Data with RDBMSes. //
15. http://www.w3.org/2001/sw/Europe/reports/scalable_rdbms_mapping_report The Karlsruhe Ontology and Semantic Web Tool Suite (KAON). //
16. http://kaon.semanticWeb.org/ RDFSutie Project. //
17. http://139.91.183.30:9090/RDF/ Object Management Group. //
18. http://www.omg.org Object Database Management Group. //
19. http://www.odmg.org
20. Knowledge Interchange Format, Genesereth M. // draft proposed American National Standard NCITS.T2/98-004. http://logic.stanford.edu/kif/dpans.html OMG UML Resource Page. //
http://www.omg.org/uml/

Комментариев нет: