Общее определение понятия семантика - это изучение значений. (Слово семантика происходит от греческого понятия semantikos, т.е. "важное значение", а в основе последнего лежит слово sema, т.е. знак). Семантические технологии Web помогают выделять полезную информацию из данных, содержания документов или кодов приложений, опираясь на открытые стандарты. Если компьютер понимает семантику документа, то это не означает, что он просто интерпретирует набор символов, содержащихся в документе. Это значит, что компьютер понимает смысл документа.
Семантические технологии Web очерчивают общие рамки, позволяющие осуществлять обмен данными и их многократное использование в различных приложениях, корпорациях и даже сообществах. Семантические технологии Web - это эффективный способ представления данных в интернете. Такую структуру также можно символически отождествить с базой данных, которая связана в глобальном масштабе с содержанием документов в интенете. Причем эта связь осуществляется способом, понятным компьютерам. Семантические технологии представляют значения с помощью онтологии и обеспечивают аргументацию, используя связи, правила, логику и условия, оговоренные в онтологии.
К семантическим технологиям Web относятся следующие:
Ниже более подробно рассматривается каждая из этих технологий.
URI - это просто идентификатор Web, т.е. адреса, начинающиеся с http или ftp. Любой пользователь может создать URI, но права собственности на них четко организованы, поэтому они представляют идеальную базовую технологию для построения глобальной сети. Фактически, интернет является именно такой структурой: все, что имеет URI, считается находящимся в глобальной сети. Любой объект, схема или модель данных семантической сети должны иметь собственный уникальный адрес (URI).
Универсальный указатель ресурсов (Uniform Resource Locator, сокр. URL) - это URI, который, помимо идентификации ресурса, указывает на способ действия или представления ресурса путем описания основного механизма доступа к нему или его положения в сети. Например, URL http://www.webifysolutions.com - это URI, который идентифицирует ресурс (домашняя страница компании Webify Solutions) и указывает, что его представление (т.е. текущий код HTML домашней страницы как набор закодированных символов) можно получить по протоколу HTTP с сетевого узла www.webifysolutions.com.
Универсальное имя ресурса (Uniform Resource Name, сокр. URN) - это URI, который идентифицирует ресурс с помощью имени в определенном пространстве имен. Оно позволяет говорить о ресурсе без использования его местоположения или снятия ссылок на него. Например, URN urn:ISBN:1-0-7666-98-0 - это URI, который, аналогично номеру ISBN, позволяет упоминать книгу, но при этом не указывает, где и как ее можно приобрести.
RDF - это спецификация, которая определяет модель представления мира и синтаксис для сериализации и обмена этой модели. Консорциум всемирной сети (World Wide Web Consortium, сокр. W3C) разработал XML-сериализацию для RDF. RDF XML - это стандартный формат обмена для RDF в семантической сети, хотя он не является единственным. Например, Notation3 - это отличная тестовая альтернативная сериализация.
RDF обеспечивает последовательный стандартный способ описания и работы практически с любыми интернет-ресурсами: от текстовых страниц и графиков до аудио-файлов и видео-клипов. Он предлагает синтаксические возможности для взаимодействия сетей и формирует базовый слой для создания семантической сети. RDF определяет управляемые графы связей, представленные тройками объект-атрибут-значение. Например, объект О имеет атрибут А со значением V.
В листинге 1 представлен пример RDF XML.
Листинг 1. Пример RDF XML
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:contact="http://www.w3.org/2000/05/contact#">
<contact:Company rdf:about="http://www.w3.org/Organization/contact#WebifySolutions">
<contact:name>Webify Solutions</contact:name>
<contact:mailbox rdf:resource="mailto:info@webifysolutions.com"/>
<contact:phone>1-800-4WEBIFY</contact:phone>
</contact:Company>
</rdf:RDF>
Элемент RDF в листинге 1 несет информацию о ресурсе, в данном случае это компания http://www.w3.org/Organization/contact#WebifySolutions. Компания может быть идентифицирована по URI http://www.w3.org/Organization/contact#WebifySolutions, ее название - Webify Solutions, ее e-mail - info@webifysolutions.com, а номер телефона - 1-800-4WEBIFY.
На рис. 1 показан управляемый граф связей, представляющий ту же информацию.
Рис. 1. Граф RDF, описывающий контактную информацию компании Webify
Solutions
Схема RDF - это семантическое расширение RDF. Она обеспечивает механизмы описания связанных ресурсов, а также собственно этих связей.
Система классов и свойств схемы RDF похожа на систему типов языков объектно-ориентированного программирования, таких, например, как Java, но отличается от многих других систем. Так, описательный язык словаря RDF определяет свойства в терминах того класса ресурсов, к которому эти свойства относятся. Другие системы же описывают класс в терминах свойств его элементов.
RDF и схема RDF основаны на XML и схеме XML. Существование стандартов для описания данных (RDF) и их атрибутов (схема RDF) позволяет создавать пакеты легко доступных инструментов для чтения и использования данных из многочисленных источников. То, насколько глубоко различные приложения могут обмениваться данными и использовать их, иногда называется синтаксическим взаимодействием сетей (syntactic interoperability). Чем более стандартизированными и распространенными являются эти инструменты работы с данными, тем выше степень синтаксического взаимодействия сетей и тем легче и привлекательнее становится использование подхода на основе семантических сетей по сравнению с точечными интеграционными решениями.
Ссылку на полный пакет моделей данных и спецификаций схемы RDF консорциума W3C можно найти в разделе Ресурсы.
Синтаксическое взаимодействие сетей - необходимое условие для того, чтобы множественные приложения могли по-настоящему "понимать" данные и работать с ними как с информацией. Это также необходимое условие для корректной проверки данных. Синтаксическое взаимодействие сетей требует преобразования ("мэппирования") между терминами, для чего, в свою очередь, необходим контент-анализ.
Такой контент-анализ требует формальных и подробных спецификаций моделей доменов, которые определяют используемые термины и их связи. Подобные формальные модели доменов иногда называются онтологиями. Они определяют модели данных в терминах классов, подклассов и свойств.
Онтологический язык Web (Web Ontology Language), рекомендуемый консорциумом W3C, помогает в выражении онтологий. Рабочий онтологический язык (Ontology Working Language, сокр. OWL) добавляет больше словарных возможностей для описания свойств и классов, чем RDF или схема RDF. В частности, он позволяет описывать связи между классами (например, неперекрываемость), мощность множества (например, "ровно один"), равенство, более богатую типологию свойств и их характеристики (например, симметрия).
Онтологический язык Web на основе OWL разработан для использования приложениями, которые должны работать с содержанием информации, а не просто предоставлять ее пользователю. OWL улучшает возможности автоматической интерпретации содержимого интернета по сравнению с теми, что могут обеспечить XML, RDF и схема RDF. Это происходит благодаря тому, что OWL предоставляет дополнительные словарные возможности наряду с формальной семантикой. OWL включает три подъязыка: полный OWL (OWL Full), OWL DL и облегченный OWL (OWL Lite) (перечислены в порядке убывания их выразительных возможностей).
Примерами онтологий являются каталоги сайтов интерактивных покупок, таких как Amazon.com, стандартные терминологии той или иной области деятельности, например, UNSPSC - The United Nations Standard Products and Services Code (система стандартных продуктов и услуг ООН), или различные таксономические системы интернета, такие как категории сайта "My Yahoo".
В следующих разделах будет подробнее рассказано о различных компонентах OWL.
Основные компоненты OWL включают классы, свойства и индивидуальные элементы.
Классы
Классы - это основные блоки онтологии OWL. Класс - это концепция в домене. Классы обычно образуют таксономическую иерархию (т.е. систему подкласс-надкласс).
Классы определяются с помощью элемента owl:Class. В языке OWL существует два заранее определенных класса: owl:Thing и owl:Nothing. Первый из них является наиболее общим и включает все, второй - это пустой класс. Любой класс, определяемый пользователем, является подклассом класса owl:Thing и надклассом класса owl:Nothing. Примеры классов в области банковского дела могут включать классы Счет (Account) или Клиент (Customer).
В листинге 2 представлен пример класса OWL.
Листинг 2. Пример класса OWL
<owl:Class rdf:ID="SavingsAccount">
<rdfs:subclassOf rdf:resource="#Account"/>
</owl:Class>
Код в листинге 2 указывает, что элемент SavingAccount - это класс, являющийся подклассом класса Account.
OWL поддерживает шесть основных способов описания классов. Самый простой - это класс с именем (named). Другие типы - это классы пересечений (intersection), объединений (union), дополнений (complement), ограничений (restrictions) и классы перечислений (enumerated). В листинге 2 представлены два из этих способов описания классов: класс ограничений определяет SavingAccount как подкласс класса с именем Account. Ссылку на полный пакет спецификаций классов W3C OWL можно найти в разделе Ресурсы.
Свойства
Свойства включают две основные категории:
Свойство может включать домен и некоторую область, связанную с ним. Любое свойство попадает в одну из следующих категорий:
К классам и свойствам могут применяться различные ограничения. Например, ограничения мощности множества указывают на число связей, в которых может участвовать класс или индивидуальный элемент.
Ссылку на полный пакет спецификаций W3C OWL можно найти в разделе Ресурсы.
Индивидуальные элементы
Индивидуальные элементы - это элементы классов; свойства могут связывать их друг с другом. Например, индивидуальный элемент Smith может быть описан как элемент, принадлежащий классу Person (индивидуум). Свойство hasEmployer (имеет работодателя) может связывать его с другим индивидуальным элементом - Webify Solutions, указывая, таким образом, что Smith работает в компании Webify Solutions.
В листинге 3 приведен пример индивидуального элемента OWL.
Листинг 3. Индивидуальный элемент OWL
<owl:Thing rdf:about="SmithAccount">
<rdfs:type="#Account"/>
</owl:Class>
Элемент rdf:type - это свойство RDF, которое связывает индивидуальный элемент с тем классом, к которому он принадлежит. Листинг 3 указывает, что элемент SmithAccount принадлежит к типу Account.
На рисунке 2 показаны основные блоки онтологии OWL.
Рис. 2. Онтология OWL, описывающая организационную структуру
компании Webify Solutions
IT-системы организуют значения с помощью реляционных моделей данных, плоских файлов, объектно-ориентированных моделей или специально разработанных моделей данных. Время от времени, в связи с изменениями бизнес-требований, возникает необходимость добавления новых элементов и связей в реляционные модели данных или объектно-ориентированные модели.
Более того, если организация использует множественные приложения от различных поставщиков, то придется копировать одни и те же модели во все базы данных приложений. Например, банк предлагает набор различных продуктов для обслуживания разнообразных категорий клиентов. Корпоративному клиенту может потребоваться услуга по обнаружению мошенничества, а обычному потребителю окажется достаточно функциональных возможностей интерактивного осуществления банковских операций с помощью интернета. Обычно банк приобретает приложения у нескольких поставщиков, но каждое из них повторяет одну и ту же общую информацию - номера счетов, имена клиентов и т. д. - в своей базе данных. По мере того как организация добавляет новые продукты для удовлетворения растущих запросов бизнеса, одна и та же избыточная информация распространяется по всей корпорации.
Целый ряд услуг является общим для всех приложений, например, просмотр банковских транзакций и электронных переводов. Каждая из этих услуг также дублируется в формате, присущем тому или иному приложению, что ведет к необходимости осуществления точечной интеграции.
Если же банк принимает подход, основанный на онтологии, то он может собирать и представлять общую информацию о продуктах в нейтральной по отношению к языку форме и сохранять эту информацию в центральном репозитории. С помощью такой общей адаптированной онтологии организация может обеспечивать единое стандартизированное представление данных для всех приложений. Такое стандартизированное представление позволяет точно извлекать необходимую информацию и без проблем осуществлять корпоративную интеграцию, поскольку бизнес-процессы и различные источники данных могут быть связаны ("мэппированы") друг с другом с помощью общей мета-модели. Таким образом, общая онтология исключает необходимость в точечной интеграции и упрощает интеграцию приложений, сокращая избыточность данных и обеспечивая одно и то же семантическое значение для всех приложений, что облегчает поддержание функционирования банка и его обновление.
Интернет - это крупнейший из когда-либо существовавших информационных репозиториев, причем его содержание все время растет и представлено на самых разнообразных языках и практически во всех областях знаний. Но в конечном счете становится все труднее находить смысл во всем этом содержимом. Поисковые системы способны находить информацию, содержащую определенные слова, но эта информация не всегда оказывается именно той, что требуется. Какой-то элемент всегда оказывается упущенным. Поиск основан на содержании страниц, но не на семантическом значении этого содержания или информации о странице.
Как только будет создан семантический интернет, он даст возможность разметки всего содержания интернета, описания каждого элемента информации и обеспечения семантического значения этих элементов. Таким образом, поисковые системы становятся более эффективными, чем сейчас, а пользователи могут находить именно ту информацию, которая им необходима. Организации, оказывающие различные услуги, способны индексировать их с особым значением. А пользователи будут в состоянии оперативно находить эти услуги, используя программные средства на основе интернета, и использовать их для своей пользы или в сочетании с другими услугами.
Для того чтобы соответствующим образом моделировать и управлять СОА (сервис-ориентированной архитектурой), корпоративные архитекторы должны поддерживать активное представление услуг, доступных для корпорации. В частности, для выявления и организации своих услуг, архитекторы должны использовать передовой опыт в моделировании и объединении услуг с использованием метаданных, преобразовывать бизнес-логику в метаданные для динамического объединения и осуществлять управление с помощью метаданных. Онтология обеспечивает очень мощный и гибкий способ для агрегирования, визуализации и нормализации этого слоя услуг с помощью метаданных.
Онтология - это сеть концепций, связей и ограничений, которые обеспечивают контекст для данных и информации, а также для процессов. Онтология способствует улучшению обнаружения услуг, моделирования, объединения, посредничества и семантического взаимодействия сетей. Она усовершенствует для пользователей способы поиска, изучения и взаимодействия со сложными информационными пространствами метаданных. Бизнес-онтология - это формальная спецификация бизнес-концепций и их взаимосвязей, которая улучшает машинные причинно-следственные связи и взаимодействия. Бизнес-онтология связывает системы, используя метаданные, во многом аналогично тому, как база данных объединяет разрозненные данные. Такая абстракция обеспечивает гибкость и подвижность, поскольку позволяет легко менять интерфейсы, а также добавлять новые ресурсы и пользователей, причем даже во время работы системы.
Семантика - это будущее сервис-ориентированной интеграции. Семантические технологии обеспечивают существование определенного уровня абстракции над существующими IT-технологиями. Этот уровень позволяет осуществлять связь данных, содержания и процессов между различными видами бизнеса и изолированными IT-структурами. Наконец, с точки зрения взаимодействия людей, семантические технологии добавляют новый уровень семантических порталов, которые обеспечивают гораздо более аналитические, соответствующие теме и контексту взаимодействия, чем те, которые доступны с помощью традиционных точечных подходов к интеграции, использующихся в информационных порталах.
В данной статье были представлены основные стандарты, составляющие технологии семантических сетей, а также причины, побуждающие организации использовать эти технологии. С помощью данных технологий организации могут создавать единое унифицированное представление данных во всех приложениях, что позволяет точно находить необходимую информацию, упрощает корпоративную интеграцию и интеграцию СОА, сокращает избыточность данных и обеспечивает единство семантических значений во всех приложениях. Все это, в свою очередь, облегчает разработку, поддержку и обновление приложений в пределах корпорации.
Учебные
Продукты и технологии
Основная область деятельности Нэвина Бэлэни (Naveen Balani) - конструирование и разработка сетей и продуктов на основе J2EE. Он - автор многочисленных статей по ESB, СОА, JMS, архитектуре Web-сервисов, CICS, AXIS, DB2, XML Extender, WebSphere Studio, MQSeries, беспроводным устройствам Java и D2B Everyplace для Palm, J2ME, MIDP, Java-Nokia, Visual Studio .Net и беспроводной синхронизации данных. Большинство этих статей были опубликованы на портале IBM developerWorks. С Нэвином Бэлэни можно связаться по адресу naveenbalani@rediffmail.com.
1 SSN - индивидуальный номер, который присваивается каждому налогоплательщику в США (прим. переводчика).