RDF

Материал из Российская школа по Semantic Web
Перейти к: навигация, поиск
RDF
Номер 4
Лектор Мамонтов И.А.
Prerequisites
Замечание слишком много xml-ных тонкостей и типов данных. Все примеры надо снабдить картинками-графами. Лекция слишком длинная.
Аннотация рассказ о том, как можно записать все на свете в виде троек "субьект-предикат-объект". Рассматриваются основные элементы RDF, а все примеры написаны синтаксисом Turtle

Содержание

План лекции

различные синтаксисы для предсталвния RDF
  1. Назначение RDF. Представление данных.
  2. Устройство RDF. Граф, где URI связаны друг с другом и с литеральными значениями посредством свойств.
  3. Фичи RDF. Рассмотрение синтаксиса Turtle
    1. Пример RDF-графа с URL и литералами
    2. Сокращение длинных URL с помощью префиксов
    3. Базовый URL.
    4. Blank nodes.
  4. Другие синтаксисы сериализации RDF. XML/RDF, json/RDF, N3, RDFa
  5. Связь с другими стандартами SW. (очень коротко)
    1. RDFS и OWL-описания предоставляют соглашение по URL'ам, которые использует определенное сообщество для записи данных
    2. SPARQL позволяет делать запросы по RDF-данным
  6. Инструменты работы с RDF. (перечисление, без углубления): RDF-валидаторы, RDF-хранилища, RDF-визуализаторы, RDF-браузеры, библиотеки для обработки RDF на всех языках.
  7. Прочие стандарты для структурированного представления данных.
    1. Microformats
    2. Microdata. Schema.org

Назначение

Представление в Сети метаданных об ресурсах

Основная задача решаемая SW - аннотирование ресурсов сети машиночитабельным способом. Соответственно RDF призван решить задачу на самом низком уровне: предоставить общий язык для таких аннотаций.

Важно отметить что аннотируемым объектом может являться также являться объект не представленный в Сети непосредственно. Стандартный пример: товар в каталоге магазина. Он не может быть получен непосредственно с помощью Сети, однако мы должны иметь возможность его идентифицировать и ссылаться на него.

В конечном итоге RDF должен предоставить возможность тысячам приложений использовать одни и те же опубликованные наборы данных и публиковать самим данные в понятном всем остальным формате. RDF для Semantic Web - это то же самое, что html для Web 1.0-2.0.

Идея

Идентификация всего посредством URI

Важнейшим условием решение озвученных ранее задач является возможность уникальной идентификации всего, что мы хотим описывать. В качестве идентификатора в мире SW выступают URI (Uniform Resource Identifier). Однако среди прочего его подмножеством являются всем нам хорошо знакомые URL (Uniform Resource Locator). Именно они преимущественно используются в SW для идентификации ресурсов.

Описание всего как графа URI, соединенных свойствами

Второй важной составляющей необходимого нам языка является модель данных: того как в принципе элементы могут быть связаны между собой. В RDF выбрана графовая модель, в которых каждому ресурсу сопоставляется узел графа, а каждое ребро указывает на связь и её характер между ресурсами. Связи в этой модели именованы и их имена также являются ресурсами, то есть в этом языке можно строить утверждения о связях.

Приведем пример переводом предложения на естественном языке

Мама мыла раму.

Табличная запись данных

Имя Курс Кафедра
Петров 1 МО
Васильев 3 ПКС

Запись табличных данных

Имя Предмет Оценка
Петров Физика 4
Васильев Математика 5

Запись очень сложных выражений А это старушка седая и строгая, которая доит корову безрогую, Лягнувшая старого пса без хвоста. Который за шиворот треплет кота. Который пугает и ловит синицу, Которая ловко ворует пшеницу, Которая в тёмном чулане хранится В доме, Который построил Джек.

Семантика

Понятие триплета. Роли в нём. В качестве основного представления такого графа выбрано перечисление всех рёбер. То есть элементарной составляющей набора данных является сочетание ресурса от которого идёт связь, ресурса к которому она идёт и имя самой связи. Такая комбинация называется triple. И все данные предлагается описывать с их помощью. В SW принята следующая терминология: ресурсы от которых исходит связь называются субъектами, ресурсы на которые направлена связь называются объектами, связь называется предикатом. Для записи триплетов мы будем использовать следующую нотацию:

<субъект> <предикат> <объект>.

Ресурсы и литералы

Ресурсы в этом языке представляются в виде их идентификаторов, записанных в угловых скобках, например <http://www.w3.org/People/Berners-Lee>. Существует также сокращённая форма записи <префикс>:<локальное имя>. Где префикс заранее определённая часть URL, а локальное имя его окончание. Например people:Berners-Lee. Как именно задаются префиксы мы увидим чуть позже.

Описанная схема имеет один существенный недостаток: мы можем выражать отношения между ресурсами, но не можем выражать простые факты о них. Такие как размер обуви или массу телефона. На самом деле в триплеты могу входить помимо ресурсов и так называемые литералы. Литерал - это конкретное значение, например число или строка. Применение литералов в триплетах строго ограничено - они могут выступать только в роли объектов. Записываются литералы просто как строка, заключённая в двойные кавычки.

Типизированные литералы

Иногда нам также может оказаться важным сказать как именно следует интерпретировать литерал. Для этого литералы могут снабжаться явным указанием их типа. При этом типом может выступать любой ресурс. Обычно используются типы определённые в xml schema, такие как http://www.w3.org/2001/XMLSchema#integer и http://www.w3.org/2001/XMLSchema#date. Важно понять, что множество типов никак не ограничивается так же как и не проверяется соответствие литерала объявленному типу. Типы литералов лишь ещё один уровень метаинформации, предназначенный для приложений.

example:Tom example:age "27"^^xsd:integer.
example:Tom example:birthday "yestarday"^^xsd:date.
example:Tom example:karma "50"^^habr:karma.

Blank nodes Однако такая модель порождает неудобство: мы должны выдавать идентификатор всему, о чём хотим сообщать факты. В то время как сам по себе объект может не требовать идентификации и связанных с эти расходов на её поддержку. Рассмотрим для примера запись о пользователе, у нас есть его почтовый адрес, имя, логин. И стоит задача опубликовать эти данные. Нам важно сообщить факт существования такого пользователя и комбинации его аттрибутов, но не важно иметь возможность впоследствии его идентифицировать. В таких случаях используются так называемые Blank nodes. Это воображаемые ресурсы, не имеющие идентификаторов, но находящиеся в известных связях с другими ресурсами и литералами. Для их записи будем использовать следующую форму: _:<name>.

_:user foaf:label "Tim Berners-Lee".
_:user foaf:mbox <timbl@w3.org>.
_:user foaf:nick "TimBL".

Также анонимные узлы хорошо подходят для описания структур, например структура описанная раньше будет выглядеть так:

Синтаксис Turtle

Директивы пространства имён В Turtle есть понятие префикса: сокращения для поределённого URI которое можно сипользовать в именах ресурсов для упрощения их записи. Они объявляеются так:

@prefix ex: <http://example.org/stuff/1.0/>.

Используются они следующим образом:

ex:dave <http://example.org/process/managerOf> ex:john.

Также важно понятие базового URL. Все относительные имена ресурсов (без корректного начала в виде имени схемы вроде http:) интерпретируются относительно него. По умолчанию он соответствует физическому расположению документа, однако это можно изменить специальной директивой.

@base <http://www.example.org/>.
<document1> <terms/editor> <http://www.w3.org/peoples/dave>.

@base <terms/>.
<http://www.example.org/document2> <editor> <http://www.w3.org/peoples/dave>.

Приведённый выше документ эквивалентен:

<http://www.example.org/> <http://www.example.org/terms/editor> <http://www.w3.org/peoples/dave>.

<http://www.example.org/document2> <http://www.example.org/terms/editor> <http://www.w3.org/peoples/dave>.

Сокращения предиката типа

a - сокращение для предиката <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> введённое в виду его собой популярности. Его можно использовать как любой другой идентификатор ресурса.

@prefix ex: <http://example.org/stuff/1.0/>.
<http://www.w3.org/peoples/dave> a ex:Author.

Сокращения записи триплетов

@prefix ex: <http://example.org/stuff/1.0/>.
<http://www.w3.org/TR/rdf-syntax-grammar> ex:editor
    <http://www.w3.org/peoples/dave>,
    <http://www.w3.org/peoples/stiv>.
@prefix ex: <http://example.org/stuff/1.0/>.

<http://www.w3.org/peoples/dave>
  ex:fullname "Dave Beckett";
  ex:homePage <http://purl.org/net/dajobe/>.

BNodes

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix ex: <http://example.org/stuff/1.0/> .

<http://www.w3.org/TR/rdf-syntax-grammar> ex:editor _:editor.

_:editor ex:fullname "Dave Beckett";
        ex:homePage <http://purl.org/net/dajobe/>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix ex: <http://example.org/stuff/1.0/> .

<http://www.w3.org/TR/rdf-syntax-grammar>
  ex:editor [
    ex:fullname "Dave Beckett";
    ex:homePage <http://purl.org/net/dajobe/>
  ].

Формы записи

Рассмотренный выше синтаксис, он называется Turtle, является лишь одним из возможных. Помимо него существует полностью стандартизированный и рекомендованный для использования. Также существует запись RDF в формате XML, популярном в среде корпоративных приложений.

Также идёт разработка стандарта на специальное расширение языка html - RDFa. Оно предоставляет возможность встраивать RDF документы непосредственно в тела веб-страниц.


Ссылки

Введения в RDF

Формы записи RDF

Вьюверы

Валидаторы

Источник — «http://test.wikivote.ru/index.php/RDF»
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты