RDF for dummies
С этой статьи я начинаю совй цикл постов "для новичков" где максимально популярно растолкую понятия веб 3.0. В последствии все статьи перекочуют в вики и будут "изданы" мною в виде PDF книги.
Начнем со средств, и сегодня у нас основа основ - RDF.
Resource Description Framework — это разработанная консорциумом W3C модель для описания ресурсов, в особенности — метаданных о ресурсах.
RDF это язык описания знаний. Это не совсем XML. то есть совсем не XML, просто синтаксис похож. RDF содержит тройки данных "объект - предикат - субъект". ну пример "Столб имеетВысоту 15м". Вот простейший пример; RDF.:
Назовем это Документ #1, он потом нам пригодиться.
Пока понятно? Нет?
Такая вот себе семейка. Кстати, это короткая форма записи RDF, зовется она N3 (Нотация три). Как я понимаю, создана под влиянием ЛИСПа и после того, как поняли, что XML слишком большой. Она хороша в некоторых случаях и очень наглядна, будем использовать её в качестве примера. Но есть и XML-like версия, она и используется в вебе - RSS 0.9, (если я не ошибаюсь) тому пример. Вот XML-like пример про того же Джона:
Малопонятно и плохочитаемо. Согласен, но для компьютера удобнее, так как любой язык программирования может с легкостью разобрать XML-файл и получить данные.
Самое сильное отличие RDF от XML заключается в том, что RDF предназначен для распределенных данных. К примеру мой SIOС. Я перепечатывал посты Джона Бреслина, значит мой SIOC связан с его SIOCом и компьютер может легко, по ссылкам (ссылки главная опора Семантической Сети, помните?), собрать единое обсуждение. Роботы могут собрать разные RDF, написанные разными людьми и узнать вещи, которых не было явно ни в одном из документов, чувствуете приближение Матрицы?
Пример:
Из Документа #1 мы знаем, что у Джона есть отец, Генрих.
Вот второй документ (Документ #2):
Тут написано, что у Генрихаесть брат Хан. А нижняя строчка это правило, которое говорит, что если у отца некого человека А есть брат, то он дядя для персоны А. Объединяем Документ #1 и #2, соблюдаем правило, и вуаля: компьютер знает, что у Джона есть дядя Хан!
Ричард Сиганиак высказал основные места применения RDF.
В общем, это что-то вроде распределенного объединения иерархической и сетевой БД.
Имена в RDF бывают двух типов: литералы (просто текст) и URI. URI может быть ссылкой на веб сайт (http://futuri.us) но не обязательно. В целом URI это ссылка на какой-либо объект (не обязательно он имеет свое представление), к примеру urn:isbn:5-3180-0093-2. Это ссылка на книгу "Samba. Руководство системного администратора. Для профессионалов" Эда Бруксбэнка. У этой книги вряд ли есть страничка, но четко и ясно, что этот URI указывает на книгу, и ясно на какую. URI уникально. Потому позволяет привязывать RDF к какому-то единственному объекту.
В итоге:
Полезно:
Все это с моего блога
Начнем со средств, и сегодня у нас основа основ - RDF.
Resource Description Framework — это разработанная консорциумом W3C модель для описания ресурсов, в особенности — метаданных о ресурсах.
RDF это язык описания знаний. Это не совсем XML. то есть совсем не XML, просто синтаксис похож. RDF содержит тройки данных "объект - предикат - субъект". ну пример "Столб имеетВысоту 15м". Вот простейший пример; RDF.:
@prefix : <http: <a href="http://www.example.org" title="http://www.example.org">http://www.example.org</a>> .
:john a :Person .
:john :hasMother :helga .
:john :hasFather :henrich .
:richard :hasSister :jane . Назовем это Документ #1, он потом нам пригодиться.
Пока понятно? Нет?
<strong>@prefix</strong> - подгружаем пространство имен (тут хранятся условные всякие описания, которые понятны компьютеру, потом расскажу по-подробнее)
<strong> :john a :Person</strong> — некто Джон человек (безусловно)
:john :hasMother :helga — У Джона есть мама и её зовут Хельга.
:john :hasFather :henrich — а отца Джона зовут Генрих
:richard :hasSister :jane — у отца есть сестра - ДжейнТакая вот себе семейка. Кстати, это короткая форма записи RDF, зовется она N3 (Нотация три). Как я понимаю, создана под влиянием ЛИСПа и после того, как поняли, что XML слишком большой. Она хороша в некоторых случаях и очень наглядна, будем использовать её в качестве примера. Но есть и XML-like версия, она и используется в вебе - RSS 0.9, (если я не ошибаюсь) тому пример. Вот XML-like пример про того же Джона:
<rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns="http://www.example.org/#">
<ns:person rdf:about="http://www.example.org/#john">
<ns:hasmother rdf:resource="http://www.example.org/#helga" />
<ns:hasfather>
<rdf:description rdf:about="http://www.example.org/#henrich">
<ns:hassister rdf:resource="http://www.example.org/#jane">
</ns:hassister>
</rdf:description>
</ns:hasfather>
</ns:person>
</rdf:rdf>
Малопонятно и плохочитаемо. Согласен, но для компьютера удобнее, так как любой язык программирования может с легкостью разобрать XML-файл и получить данные.
Самое сильное отличие RDF от XML заключается в том, что RDF предназначен для распределенных данных. К примеру мой SIOС. Я перепечатывал посты Джона Бреслина, значит мой SIOC связан с его SIOCом и компьютер может легко, по ссылкам (ссылки главная опора Семантической Сети, помните?), собрать единое обсуждение. Роботы могут собрать разные RDF, написанные разными людьми и узнать вещи, которых не было явно ни в одном из документов, чувствуете приближение Матрицы?
Пример:
Из Документа #1 мы знаем, что у Джона есть отец, Генрих.
Вот второй документ (Документ #2):
@prefix : <http:> :</http:>henrich<http:> :hasBrother :han
{ ?a :hasFather ?b . ?b :hasBrother ?c . } => { ?a :hasUncle ?c }
</http:>Тут написано, что у Генрихаесть брат Хан. А нижняя строчка это правило, которое говорит, что если у отца некого человека А есть брат, то он дядя для персоны А. Объединяем Документ #1 и #2, соблюдаем правило, и вуаля: компьютер знает, что у Джона есть дядя Хан!
Ричард Сиганиак высказал основные места применения RDF.
- Вам нужно объединять данные из различных источников, не прибегая к созданию специализированных программ.
- Вам нужно дать другим доступ к вашим данным.
- Вам нужно децентрализовать ваши данные так, чтобы ими всеми не «владел» кто-то один.
- Вам нужно сделать что-то особенное с большими объёмами данных — вводить, извлекать, просматривать, анализировать, выполнять поиск, и т.д. Вы хотите создать (либо использовать готовый) универсальный инструмент, который бы позволял вам всё это делать, основываясь на модели данных RDF (имеющей то преимущество, что она не привязана к закрытым технологиям хранения и представления данных — в отличие от диалектов СУБД).
В общем, это что-то вроде распределенного объединения иерархической и сетевой БД.
Имена в RDF бывают двух типов: литералы (просто текст) и URI. URI может быть ссылкой на веб сайт (http://futuri.us) но не обязательно. В целом URI это ссылка на какой-либо объект (не обязательно он имеет свое представление), к примеру urn:isbn:5-3180-0093-2. Это ссылка на книгу "Samba. Руководство системного администратора. Для профессионалов" Эда Бруксбэнка. У этой книги вряд ли есть страничка, но четко и ясно, что этот URI указывает на книгу, и ясно на какую. URI уникально. Потому позволяет привязывать RDF к какому-то единственному объекту.
@prefix : <<a href="http://www.example.org/>" title="http://www.example.org/&gt;">http://www.example.org/></a>
<<a href="http://futuri.us/>" title="http://futuri.us/&gt;">http://futuri.us/></a> a :Website
<<a href="http://futuri.us/>" title="http://futuri.us/&gt;">http://futuri.us/></a> dc:title "Футуриус"
<<a href="http://futuri.us/>" title="http://futuri.us/&gt;">http://futuri.us/></a> dc:contributor "Коробко Ник"
<<a href="http://futuri.us/>" title="http://futuri.us/&gt;">http://futuri.us/></a> dc:creator "Коробко Ник"
<<a href="http://futuri.us/>" title="http://futuri.us/&gt;">http://futuri.us/></a> dc:language ru-RU
<<a href="http://futuri.us/>" title="http://futuri.us/&gt;">http://futuri.us/></a> dc:rights by-nc-sa
Краткое описание моего сайта при помощи пространства имен "Дублинское Ядро". Но о нем мы поговорим позднее.В итоге:
- RDF используется для описания знаний
- описывается тройками значений "подлежащие-сказуемое-объект"
- имеет несколько форм записи: XML и N3
- Использует для значение литералы или Уникальные Идентификаторы (URI)
Полезно:
Все это с моего блога



комментарии (67)