Введение

Формальный язык для описания моделей данных. Ресурсная модель описания (RDF) — это стандарт консорциума World Wide Web Consortium (W3C), первоначально разработанный как модель данных для метаданных. Впоследствии RDF стал использоваться как общий метод описания и обмена данными в виде графов. RDF предоставляет различные синтаксические обозначения и форматы сериализации данных, при этом Turtle (Terse RDF Triple Language) в настоящее время является наиболее широко используемым обозначением. RDF представляет собой ориентированный граф, состоящий из троек. Утверждение (или трипл) RDF-графа представлено: 1) узлом для субъекта, 2) дугой, соединяющей субъект с объектом, представляющей предикат, и 3) узлом для объекта. Каждая из трех частей утверждения может быть идентифицирована с помощью универсального идентификатора ресурса (URI). Объект также может быть литеральным значением. Эта простая и гибкая модель данных обладает значительной выразительной силой для представления сложных ситуаций, взаимосвязей и других интересующих данных, оставаясь при этом достаточно абстрактной. RDF был принят в качестве рекомендации W3C в 1999 году. Спецификация RDF 1.0 была опубликована в 2004 году, а спецификация RDF 1.1 — в 2014 году. SPARQL — это стандартный язык запросов для RDF-графов. RDF Schema (RDFS), Web Ontology Language (OWL) и SHACL (Shapes Constraint Language) — это языки онтологий, используемые для описания данных RDF.

Обзор

Модель данных RDF аналогична классическим концептуальным подходам к моделированию (таким как модели «сущность-связь» или диаграммы классов). Она основана на идее представления утверждений о ресурсах (в частности, веб-ресурсах) в виде выражений типа «субъект-предикат-объект», известных как тройки. Субъект обозначает ресурс, а предикат – свойства или аспекты ресурса и выражает отношение между субъектом и объектом. Например, один из способов представить утверждение «Небо синего цвета» в RDF – это тройка: субъект, обозначающий «небо», предикат, обозначающий «имеет цвет», и объект, обозначающий «синий». Таким образом, RDF использует субъект вместо объекта (или сущности), в отличие от типичного подхода модели «сущность-атрибут-значение» в объектно-ориентированном проектировании: сущность (небо), атрибут (цвет) и значение (синий). RDF – это абстрактная модель, имеющая несколько форматов сериализации (по сути, это специализированные форматы файлов). Кроме того, конкретное кодирование ресурсов или троек может различаться в зависимости от формата. Этот механизм описания ресурсов является ключевым компонентом деятельности W3C по созданию Семантической сети: эволюционного этапа Всемирной паутины, на котором автоматизированное программное обеспечение может хранить, обмениваться и использовать машиночитаемую информацию, распределенную по всей сети, что, в свою очередь, позволяет пользователям более эффективно и уверенно работать с информацией. Простота модели данных RDF и способность моделировать различные абстрактные концепции также привели к ее растущему использованию в приложениях управления знаниями, не связанных с деятельностью Семантической сети. Набор RDF-утверждений по своей сути представляет собой помеченный, ориентированный мультиграф. Это делает модель данных RDF более подходящей для определенных видов представления знаний, чем другие реляционные или онтологические модели. Как показывают RDFS, OWL и SHACL, на основе RDF можно создавать дополнительные языки онтологий.

Определение ресурсов

Предметом RDF-утверждения является либо универсальный идентификатор ресурса (URI), либо пустой узел, оба из которых обозначают ресурсы. Ресурсы, обозначенные пустыми узлами, называются анонимными ресурсами. Они не могут быть непосредственно идентифицированы из RDF-утверждения. Предикатом является URI, который также указывает на ресурс, представляющий отношение. Объект – это URI, пустой узел или строковый литерал Unicode. Начиная с RDF 1.1, ресурсы идентифицируются с помощью интернационализированных идентификаторов ресурсов (IRI); IRI является обобщением URI. В приложениях семантической сети и в относительно популярных приложениях RDF, таких как RSS и FOAF (Friend of a Friend), ресурсы обычно представляются URI, которые намеренно обозначают и могут использоваться для доступа к фактическим данным в World Wide Web. Однако RDF в целом не ограничивается описанием ресурсов, основанных на Интернете. Фактически, URI, который идентифицирует ресурс, не обязательно должен быть разрешимым. Например, URI, начинающийся с "http:" и используемый в качестве субъекта RDF-утверждения, не обязательно должен представлять ресурс, доступный по HTTP, и не должен представлять осязаемый, доступный по сети ресурс – такой URI может представлять абсолютно что угодно. Тем не менее, существует общее согласие, что "голый" URI (без символа #), возвращающий ответ с кодом 300 при использовании в HTTP GET-запросе, следует рассматривать как обозначающий интернет-ресурс, к которому он успешно обращается. Поэтому создатели и потребители RDF-утверждений должны согласовать семантику идентификаторов ресурсов. Такое соглашение не является неотъемлемой частью самого RDF, хотя существуют некоторые контролируемые словари, широко используемые, такие как Dublin Core Metadata, которые частично сопоставлены с URI-пространством для использования в RDF. Цель публикации RDF-основанных онтологий в Интернете часто заключается в установлении или ограничении предполагаемых значений идентификаторов ресурсов, используемых для представления данных в RDF. Например, URI: http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#Merlot предназначен его владельцами для обозначения класса всех красных вин Merlot, произведенных виноделом (то есть каждый из вышеуказанных URI представляет класс всех вин, произведенных одним виноделом), определение, которое выражается в онтологии OWL – самой RDF-документе, в котором оно содержится. Без тщательного анализа определения можно ошибочно заключить, что экземпляр вышеуказанного URI является чем-то физическим, а не типом вина. Обратите внимание, что это не "голый" идентификатор ресурса, а скорее ссылка на URI, содержащая символ "#" и заканчивающаяся идентификатором фрагмента.

Реализация и контекст заявления

Тело знаний, смоделированное набором утверждений, может подвергаться реификации, при которой каждому утверждению (то есть каждой тройке «субъект-предикат-объект» в целом) присваивается URI и оно рассматривается как ресурс, о котором можно делать дополнительные утверждения, например, в выражении «Джейн утверждает, что Джон является автором документа X». Реификация иногда важна для определения уровня достоверности или степени полезности каждого утверждения. В реифицированной RDF-базе данных каждое исходное утверждение, само по себе являясь ресурсом, скорее всего, имеет как минимум три дополнительных утверждения, связанных с ним: одно, утверждающее, что его субъект является некоторым ресурсом, одно, утверждающее, что его предикат является некоторым ресурсом, и одно, утверждающее, что его объект является ресурсом или литералом. В зависимости от потребностей приложения может существовать и больше утверждений об исходном утверждении. Заимствуя концепции из логики (и как это иллюстрируется в графических представлениях, таких как концептуальные графы и тематические карты), некоторые реализации RDF-модели признают, что иногда полезно группировать утверждения по различным критериям, называемым ситуациями, контекстами или областями видимости, как обсуждается в статьях соавтора спецификации RDF Грэма Клайна. Например, утверждение может быть связано с контекстом, идентифицируемым URI, чтобы установить отношение «истинно в». В качестве другого примера, иногда удобно группировать утверждения по их источнику, который может быть идентифицирован URI, например, URI конкретного RDF/XML-документа. Тогда, при внесении изменений в источник, соответствующие утверждения также могут быть изменены в модели. Реализация областей видимости не обязательно требует полной реификации утверждений. Некоторые реализации позволяют связать один идентификатор области видимости с утверждением, которому самому не присвоен URI. Аналогично, именованные графы, в которых набор троек идентифицируется URI, могут представлять контекст без необходимости реифицировать сами тройки.

Пример 1: Описание человека по имени Эрик Миллер

Следующий пример взят с веб-сайта W3C, описывающего ресурс утверждениями: "существует Лицо, идентифицированное по адресу http://www.w3.org/People/EM/contact#me, чье имя – Эрик Миллер, чей адрес электронной почты – e.miller123(at)example (изменен в целях безопасности), и чье звание – доктор" [[Изображение:Rdf граф для Эрика Миллера.png|миниатюра|RDF-граф, описывающий Эрика Миллера)], а "NY" – это строковый литерал. Обратите внимание, что URI, выбранные здесь, не являются стандартными и не обязаны ими быть, если их значение известно тому, кто их обрабатывает.