Общая структура Semantic Web
Десятилетиями создатели информационных технологий упускали из виду предмет своей деятельности – информацию. Точнее, информация присутствовала, но как-то неявно, обычно ее отождествляли с данными. Semantic Web – одно из тех явлений в мире ИТ, которые заставляют всерьез задуматься о различии между данными и информацией.
Но еще в начале 90-х годов ученые предполагали возможность включения метаданных в гиперсвязи, задумываясь о том, как дополнить их сведениями, относящимися к передаваемым данным. Практика показывает, что для общения между людьми метаданные критического значения не имеют: люди сами являются носителями контекста, в большинстве случаев им достаточного для понимания смысла сообщения, описывать переданное сообщение не требуется; правда, нередко неправильное понимание контекста приводит к ошибкам.
Иное дело машины. Здесь контекст должен быть зашит жестко, чтобы полученное сообщение однозначно интерпретировалось (например, способ кодировки двоичного числа – прямой код, дополнительный код, число без знака, число с плавающей точкой и т.п.). Если же это невозможно, то нужны дополнительные сведения о том, как следует интерпретировать полученное сообщение; такие дополнительные данные и называют метаданными. Эти метаданные могут интерпретироваться машинными средствами, а потому открывают возможность установить взаимоотношения не только между людьми, но и между сайтами, и между устройствами, включенными в Сеть. Встраивание метаданных в гиперсвязи – главное отличие второго поколения Всемирной Паутины, которое он называет Semantic Web, или Веб для машин.
Предшествующий опыт подсказывает, что для создания Semantic Web следует построить информационную коммуникационную модель, аналогичную семиуровневой модели OSI (но в приложении к Веб) и ориентированную на обмен информацией, а не данными. Именно так и поступили ученые. Начиная с 1998 года, набирает популярность многоуровневую модель Semantic Web. В наиболее наглядном виде она может быть оформлена в форме стека уже существующих и проектируемых стандартов. На рис. 1 и 2 представлены представления стека Semantic Web, датируемые 2000-м и 2005 годами соответственно. Используемые для построения модели понятия и конструкции достаточно сложны и специфичны, поэтому опишем эти модели на самом поверхностном уровне.
Рис. 1. Оригинальная модель Semantic Web (2001 г.)
Рис. 2. Стек стандартов Semantic Web в редакции 2005 года
Если проводить аналогию с моделью OSI, то нижние уровни – URI, кодировка Unicode, XML и XML Schema – соответствуют нижним уровням семиуровневой модели, они обеспечивают представление, но не налагают никаких семантических ограничений на содержание этих документов.
Основу модели составляет RDF (Resource Description Framework) – универсальный язык для представления знаний в Сети. Модель RDF представляет собой структуру метаданных, предназначенную для описания ресурсов в форме триады. Эту триаду называют субъектно-предикативно-объектным выражением на языке XML. В 1999 году работы по созданию RDF были инициированы компаниями Apple и Netscape, в 2004 году была опубликована совершенно новая редакция RDF 2.0.
Уровнем выше стоит RDF Schema, она служит средством для описания свойств и классов RDF-ресурсов, а также задает семантику для иерархий-обобщений таких свойств и классов.
Для представления модели данных, отражающей свойства реального мира, используется еще одно довольно непростое понятие – «онтология». Оно заимствовано из теории систем, в данном случае его можно интерпретировать как некоторый объем знаний. Для описания онтологий служит специальный язык OWL.
Развивая аналогию между моделью OSI и стеком стандартов Semantic Web, отметим, что в обеих моделях на нижнем уровне располагается «физическое представление», но в первом случае – представление данных, а во втором – информации. А на верхнем уровне – «очищенное» представление, готовое для использования. Различие состоит в том, что в модели OSI – это данные, а в модели Semantic Web – информация. Работа и той, и другой модели сводится к установлению соответствия между нижним и верхним уровнями.
Стек стандартов Semantic Web описывает интерфейсы между уровнями, не более того. Но кроме стандартов нужны еще и средства для реализации, поэтому кроме самого стека активно развиваются сервисы, обеспечивающие работу Semantic Web (Semantic Web Services). К сожалению, архитектура Semantic Web Services Architecture еще меньше проработана, чем Semantic Web, известны лишь отдельные исследования, выполненные в университетских лабораториях.