RDF (модель данных)
RDF (от англ. Resource Description Framework – среда описания ресурса), форма представления информации о ресурсах. Ресурсами может быть что угодно, включая документы, людей, физические объекты и абстрактные понятия. RDF предоставляет единую структуру для выражения этой информации, поэтому ею можно обмениваться между приложениями без потери смысла. Кроме того, разработчики приложений могут использовать доступные общие синтаксические анализаторы RDF и инструменты обработки. Возможность обмена информацией между различными приложениями означает, что информация может быть доступна не только приложениям, для которых она была изначально создана.
История
Resource Description Framework – это стандарт Консорциума Всемирной паутины (W3C), изначально разработанный как модель данных для метаданных. Он стал использоваться в качестве общего метода для описания и обмена графовыми данными. RDF предоставляет множество синтаксических обозначений и форматов сериализации данных.
RDF был принят в качестве рекомендации W3C в 1999 г. Спецификация RDF 1.0 была опубликована в 2004 г., спецификация RDF 1.1 – в 2014 г. RDF представляет собой инфраструктуру, позволяющую кодировать, обмениваться и повторно использовать структурированные метаданные. Эта инфраструктура обеспечивает совместимость метаданных за счёт разработки механизмов, поддерживающих общие соглашения о семантике, синтаксисе и структуре.
Модель данных RDF
Основой модели данных RDF являются тройки (триплеты), состоящие из следующих элементов:
имеется множество, называемое Ресурсы;
имеется множество, называемое Литералы;
имеется подмножество Ресурсов, называемое Свойства;
имеется множество, называемое Утверждения, каждый элемент которого – это тройка вида {субъект, предикат, объект}, где предикат – это свойство (элемент Свойств), субъект – это ресурс (элемент Ресурсов) и объект – либо ресурс, либо литерал (элемент Литералов).
Субъект и объект представляют два связанных ресурса, предикат представляет бинарное отношение между ними. Отношение ориентировано и называется RDF-свойством.
Тройку можно изобразить как связный граф. Субъекты и объекты троек составляют узлы графа, предикаты (свойства) образуют дуги (рис. 1).
Один и тот же ресурс может встречаться в нескольких тройках, а также находиться в позиции субъекта одной тройки и позиции объекта другой (рис. 2). Такой граф предназначен служить описанием структуры данных. Для доступа к хранилищу данных с такой структурой можно использовать язык SPARQL.
Типы данных RDF
В тройках RDF встречаются три типа данных: идентификаторы URI, литералы и пустые узлы.
URI – это символьная строка, позволяющая идентифицировать какой‐либо ресурс: документ, изображение, файл, службу, ящик электронной почты и т. д. Прежде всего, речь идёт, конечно, о ресурсах сети Интернет и Всемирной паутины (помимо идентификатора URI может использоваться идентификатор IRI, который позволяет избежать некоторых ограничений на символы). Идентификаторы URI могут стоять во всех трёх позициях тройки.
Литералы – это базовые значения, не являющиеся URI. Примеры литералов включают строки, даты и числа. Литералы могут быть нетипизированными, т. е. просто текстом с указанием языка, на котором он написан, а могут быть типизированными, т. е. содержать указание типа данных, позволяющих правильно анализировать и интерпретировать такие значения. Литералы могут появляться только в позиции объекта тройки.
Иногда удобно иметь возможность ссылаться на ресурсы, не используя глобальные идентификаторы. Ресурс без глобального идентификатора может быть представлен в RDF пустым узлом. Пустой узел – это узел, который не является ни URI-ссылкой, ни литералом.
Синтаксис RDF-графов
Модель данных RDF представлена в форме абстрактного синтаксиса, не зависящего от конкретного формата записи, т. е. синтаксиса, используемого для представления троек, хранящихся в текстовых файлах. Для записи RDF-графов существует ряд различных форматов сериализации, т. е. текстового представления. Разные способы записи одного и того же графа приводят к одним и тем же тройкам и, таким образом, логически эквивалентны. Основные из них: семейство языков Turtle (N-Triples, Turtle, TriG и N-Quads), JSON-LD, RDFa (XML синтаксис для RDF).
RDF Schema
Модель данных RDF не предоставляет механизмов ни для объявления свойств, ни для определения связей между свойствами и другими ресурсами. Для этого предназначена модель, которая называется RDF Schema, которая поддерживает:
объявление свойств и соответствующей им семантики;
определение вида ресурса, который описывается свойством (привязывание свойства ресурсу).
Спецификация RDF Schema задаёт не словарь, описывающий элементы, а механизмы, нужные для определения таких элементов, определения классов ресурсов, с которыми они могут быть использованы, а также задания ограничений на возможные комбинации классов и связей и обнаружения нарушения таких ограничений.
Т. о., речь идёт о языке спецификации схем. Механизм RDF Schema предоставляет базовую систему типов (англ. Type System) для создания RDF-моделей. RDF Schema использует понятие класса (Class) для определения категорий, которые можно использовать для классификации ресурсов. Отношение между экземпляром и его классом устанавливается через свойство типа (Type). С помощью RDF Schema можно создавать иерархии классов и подклассов (subClassOf), а также свойств (Property) и подсвойств (subProperty). Ограничения типа для субъектов и объектов определённых троек могут быть определены через ограничения домена – субъекта (Domain) и диапазона – объекта (Range). Взаимозависимость основных конструкций моделирования, предоставляемых RDF Schema, изображена на рис. 3.